From 2666602ca4f9df5d85aec7282916ad120fcef0d4 Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Fri, 3 Jul 2026 13:40:00 -0400 Subject: [PATCH] Phase 1: Replace _getMain() with direct util/ imports --- src/gam/__init__.py | 3398 +++++++++---------- src/gam/cmd/admin.py | 246 +- src/gam/cmd/alerts.py | 168 +- src/gam/cmd/aliases.py | 333 +- src/gam/cmd/analytics.py | 64 +- src/gam/cmd/audit.py | 91 +- src/gam/cmd/browsers.py | 409 ++- src/gam/cmd/caa.py | 136 +- src/gam/cmd/calendar.py | 679 ++-- src/gam/cmd/chat/members.py | 447 +-- src/gam/cmd/chat/setup.py | 252 +- src/gam/cmd/chat/spaces.py | 185 +- src/gam/cmd/chromeapps.py | 382 ++- src/gam/cmd/chromepolicies.py | 350 +- src/gam/cmd/cidevices.py | 430 +-- src/gam/cmd/cigroups/groups.py | 237 +- src/gam/cmd/cigroups/members.py | 521 +-- src/gam/cmd/ciuserinvitations.py | 116 +- src/gam/cmd/cloudstorage.py | 167 +- src/gam/cmd/contacts.py | 396 ++- src/gam/cmd/courses/content.py | 186 +- src/gam/cmd/courses/courses.py | 402 ++- src/gam/cmd/courses/guardians.py | 620 ++-- src/gam/cmd/courses/participants.py | 279 +- src/gam/cmd/cros.py | 647 ++-- src/gam/cmd/customer.py | 147 +- src/gam/cmd/datatransfer.py | 162 +- src/gam/cmd/delegates.py | 82 +- src/gam/cmd/domains.py | 154 +- src/gam/cmd/drive/activity.py | 195 +- src/gam/cmd/drive/copymove/copymove_move.py | 131 +- src/gam/cmd/drive/copymove/copymove_util.py | 340 +- src/gam/cmd/drive/core.py | 315 +- src/gam/cmd/drive/fileinfo.py | 253 +- src/gam/cmd/drive/filelist.py | 322 +- src/gam/cmd/drive/filepaths.py | 110 +- src/gam/cmd/drive/files.py | 262 +- src/gam/cmd/drive/filetree.py | 121 +- src/gam/cmd/drive/labels.py | 249 +- src/gam/cmd/drive/looker.py | 92 +- src/gam/cmd/drive/permissions.py | 448 +-- src/gam/cmd/drive/revisions.py | 158 +- src/gam/cmd/drive/shareddrives.py | 573 ++-- src/gam/cmd/drive/transfer/fileops.py | 266 +- src/gam/cmd/drive/transfer/ownership.py | 495 +-- src/gam/cmd/gmail/cse.py | 190 +- src/gam/cmd/gmail/delegates.py | 118 +- src/gam/cmd/gmail/filters.py | 168 +- src/gam/cmd/gmail/forms.py | 154 +- src/gam/cmd/gmail/labels.py | 281 +- src/gam/cmd/gmail/messages.py | 556 +-- src/gam/cmd/gmail/profile.py | 81 +- src/gam/cmd/gmail/settings.py | 362 +- src/gam/cmd/gmail/signature.py | 140 +- src/gam/cmd/gmail/smime.py | 152 +- src/gam/cmd/groups/groups.py | 442 +-- src/gam/cmd/groups/members.py | 631 ++-- src/gam/cmd/licenses.py | 39 +- src/gam/cmd/meet.py | 167 +- src/gam/cmd/mobile.py | 174 +- src/gam/cmd/notes.py | 295 +- src/gam/cmd/oauth.py | 183 +- src/gam/cmd/orgunits.py | 504 +-- src/gam/cmd/people.py | 596 ++-- src/gam/cmd/printers.py | 192 +- src/gam/cmd/project.py | 675 ++-- src/gam/cmd/reports.py | 406 ++- src/gam/cmd/reseller.py | 277 +- src/gam/cmd/resources.py | 409 ++- src/gam/cmd/schemas.py | 123 +- src/gam/cmd/send_email.py | 234 +- src/gam/cmd/sites.py | 196 +- src/gam/cmd/sso.py | 350 +- src/gam/cmd/tasks.py | 292 +- src/gam/cmd/userop/licenses.py | 123 +- src/gam/cmd/userop/photos.py | 151 +- src/gam/cmd/userop/sheets.py | 235 +- src/gam/cmd/userop/tokens.py | 178 +- src/gam/cmd/userop/usergroups.py | 428 +-- src/gam/cmd/users/display.py | 392 ++- src/gam/cmd/users/manage.py | 607 ++-- src/gam/cmd/userservices.py | 765 +++-- src/gam/cmd/vault/holds.py | 577 ++-- src/gam/cmd/vault/matters.py | 366 +- 84 files changed, 15668 insertions(+), 12557 deletions(-) diff --git a/src/gam/__init__.py b/src/gam/__init__.py index 01f0db6a..3416ba4b 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -166,1716 +166,16 @@ from gam.util.access import ( # noqa: F401 # re-export from gam.util.email import ( # noqa: F401 # re-export _addAttachmentsToMessage, _addEmbeddedImagesToMessage, send_email, ) -from gam.cmd.oauth import ( # noqa: F401 # re-export - VALIDEMAIL_PATTERN, _getValidateLoginHint, getOAuthClientIDAndSecret, - getScopesFromUser, _localhost_to_ip, _waitForHttpClient, _waitForUserInput, - _GamOauthFlow, Credentials, doOAuthRequest, doOAuthCreate, exitIfNoOauth2Txt, - doOAuthDelete, doOAuthInfo, doOAuthUpdate, doOAuthRefresh, doOAuthExport, -) -from gam.cmd.project import ( # noqa: F401 # re-export - getCRMService, enableGAMProjectAPIs, doEnableAPIs, - _waitForSvcAcctCompletion, _grantRotateRights, - _createOauth2serviceJSON, _createClientSecretsOauth2service, - _getProjects, _checkProjectFound, convertGCPFolderNameToID, - PROJECTID_PATTERN, PROJECTID_FORMAT_REQUIRED, _checkProjectId, - PROJECTNAME_PATTERN, PROJECTNAME_FORMAT_REQUIRED, _checkProjectName, - _getSvcAcctInfo, _getAppInfo, _generateProjectSvcAcctId, - _getLoginHintProjectInfo, _getCurrentProjectId, - GAM_PROJECT_FILTER, PROJECTID_FILTER_REQUIRED, - PROJECTS_CREATESVCACCT_OPTIONS, PROJECTS_DELETESVCACCT_OPTIONS, - PROJECTS_PRINTSHOW_OPTIONS, - _getLoginHintProjects, _checkForExistingProjectFiles, - getCRMOrgId, doInfoCustomerId, doInfoGCPOrgId, getGCPOrgId, - doCreateGCPFolder, doCreateProject, doUseProject, doUpdateProject, - doDeleteProject, - PROJECT_TIMEOBJECTS, PROJECT_STATE_CHOICE_MAP, doPrintShowProjects, - doInfoCurrentProjectId, doCreateSvcAcct, doDeleteSvcAcct, - _getSvcAcctKeyProjectClientFields, checkServiceAccount, doCheckUpdateSvcAcct, - _getSAKeys, SVCACCT_KEY_TIME_OBJECTS, _showSAKeys, - SVCACCT_DISPLAY_FIELDS, SVCACCT_KEY_TYPE_CHOICE_MAP, doPrintShowSvcAccts, - _generatePrivateKeyAndPublicCert, _formatOAuth2ServiceData, - doProcessSvcAcctKeys, doCreateSvcAcctKeys, doUpdateSvcAcctKeys, - doReplaceSvcAcctKeys, doUploadSvcAcctKeys, doDeleteSvcAcctKeys, - doShowSvcAcctKeys, doCreateGCPServiceAccount, -) -from gam.cmd.audit import ( # noqa: F401 # re-export - _showMailboxMonitorRequestStatus, - doCreateMonitor, doDeleteMonitor, doShowMonitors, getAuditParameters, -) -from gam.cmd.reports import ( # noqa: F401 # re-export - CUSTOMER_REPORT_SERVICES, CUSTOMER_USER_CHOICES, - DISABLED_REASON_TIME_PATTERN, NL_SPACES_PATTERN, - REPORTS_PARAMETERS_SIMPLE_TYPES, - REPORT_ACTIVITIES_FILTER_MAP, REPORT_ACTIVITIES_TIME_OBJECTS, - REPORT_ACTIVITIES_UPPERCASE_EVENTS, REPORT_ALIASES_CHOICE_MAP, - REPORT_CHOICE_MAP, USER_REPORT_SERVICES, - _adjustTryDate, _checkDataRequiredServices, - convertReportMBtoGB, doReport, doReportUsage, - doReportUsageParameters, doWhatIs, getUserOrgUnits, -) -from gam.cmd.send_email import ( # noqa: F401 # re-export - ADDRESS_FIELDS_PRINT_ORDER, CASE_MARKERS, LC_PATTERN, PC_PATTERN, - RTL_PATTERN, RT_MARKERS, RT_PATTERN, SKIP_PATTERNS, UC_PATTERN, - TAG_ADDRESS_ARGUMENT_TO_FIELD_MAP, TAG_EMAIL_ARGUMENT_TO_FIELD_MAP, - TAG_EXTERNALID_ARGUMENT_TO_FIELD_MAP, TAG_FIELD_SUBFIELD_CHOICE_MAP, - TAG_GENDER_ARGUMENT_TO_FIELD_MAP, TAG_IM_ARGUMENT_TO_FIELD_MAP, - TAG_KEYWORD_ARGUMENT_TO_FIELD_MAP, TAG_LOCATION_ARGUMENT_TO_FIELD_MAP, - TAG_NAME_ARGUMENT_TO_FIELD_MAP, TAG_ORGANIZATION_ARGUMENT_TO_FIELD_MAP, - TAG_OTHEREMAIL_ARGUMENT_TO_FIELD_MAP, TAG_PHONE_ARGUMENT_TO_FIELD_MAP, - TAG_POSIXACCOUNT_ARGUMENT_TO_FIELD_MAP, TAG_RELATION_ARGUMENT_TO_FIELD_MAP, - TAG_REPLACE_PATTERN, TAG_SSHPUBLICKEY_ARGUMENT_TO_FIELD_MAP, - TAG_WEBSITE_ARGUMENT_TO_FIELD_MAP, - _getTagReplacement, _getTagReplacementFieldValues, _initTagReplacements, - _processTagReplacements, _substituteForUser, - doSendEmail, doSendReply, getRecipients, sendCreateUpdateUserNotification, -) -from gam.cmd.reseller import ( # noqa: F401 # re-export - ADDRESS_FIELDS_ARGUMENT_MAP, ANALYTIC_ENTITY_MAP, CHANNEL_ENTITY_MAP, - DELETION_TYPE_MAP, PLAN_NAME_MAP, PRINT_RESOLD_SUBSCRIPTIONS_TITLES, - RENEWAL_TYPE_MAP, SUBSCRIPTION_SKIP_OBJECTS, SUBSCRIPTION_TIME_OBJECTS, - _getResoldCustomerAttr, _getResoldSubscriptionAttr, - _showCustomerAddressPhoneNumber, _showSubscription, - doCreateResoldCustomer, doCreateResoldSubscription, - doDeleteResoldSubscription, doInfoResoldCustomer, doInfoResoldSubscription, - doPrintShowChannelCustomerEntitlements, doPrintShowChannelCustomers, - doPrintShowChannelItems, doPrintShowChannelOffers, - doPrintShowChannelProducts, doPrintShowChannelSKUs, - doPrintShowResoldSubscriptions, doUpdateResoldCustomer, - doUpdateResoldSubscription, getCustomerSubscription, - normalizeChannelCustomerID, normalizeChannelProductID, normalizeChannelResellerID, -) -from gam.cmd.analytics import ( # noqa: F401 # re-export - printShowAnalyticAccountSummaries, printShowAnalyticAccounts, - printShowAnalyticDatastreams, printShowAnalyticItems, printShowAnalyticProperties, -) -from gam.cmd.domains import ( # noqa: F401 # re-export - CUSTOMER_LICENSE_MAP, DOMAIN_ALIAS_PRINT_ORDER, DOMAIN_ALIAS_SKIP_OBJECTS, - DOMAIN_ALIAS_SORT_TITLES, DOMAIN_TIME_OBJECTS, - _printDomain, _showDomainAlias, - doCreateDomain, doCreateDomainAlias, doDeleteDomain, doDeleteDomainAlias, - doInfoDomainAlias, doPrintShowDomainAliases, doUpdateDomain, -) -from gam.cmd.customer import ( # noqa: F401 # re-export - DOMAIN_PRINT_ORDER, DOMAIN_SKIP_OBJECTS, DOMAIN_SORT_TITLES, - PRINT_PRIVILEGES_FIELDS, - _getCustomerId, _getCustomerIdNoC, _getCustomersCustomerIdNoC, - _getCustomersCustomerIdWithC, _getDomainList, _showCustomerLicenseInfo, - _showDomain, doInfoCustomer, doInfoDomain, doInfoInstance, - doPrintShowDomains, doUpdateCustomer, setTrueCustomerId, -) -from gam.cmd.admin import ( # noqa: F401 # re-export - ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP, ADMIN_CONDITION_CHOICE_MAP, - ADMIN_SCOPE_TYPE_CHOICE_MAP, ALL_ASSIGNEE_TYPES, - NONSECURITY_GROUP_CONDITION, PRINT_ADMIN_FIELDS, - PRINT_ADMIN_ROLES_FIELDS, PRINT_ADMIN_TITLES, SECURITY_GROUP_CONDITION, - _listPrivileges, _showAdminRole, - doCreateAdmin, doCreateUpdateAdminRoles, doDeleteAdmin, doDeleteAdminRole, - doInfoPrintShowAdminRoles, doPrintShowAdmins, doPrintShowPrivileges, - getRoleId, makeRoleIdNameMap, role_from_roleid, roleid_from_role, -) -from gam.cmd.datatransfer import ( # noqa: F401 # re-export - DATA_TRANSFER_SORT_TITLES, DATA_TRANSFER_STATUS_MAP, - DRIVE_AND_DOCS_APP_NAME, GOOGLE_LOOKER_STUDIO_APP_NAME, - PRIVACY_LEVEL_CHOICE_MAP, SERVICE_NAME_CHOICE_MAP, - _convertTransferAppIDtoName, _showTransfer, _validateTransferAppName, - doCreateDataTransfer, doInfoDataTransfer, doPrintShowDataTransfers, - doShowTransferApps, getTransferApplications, -) -from gam.cmd.orgunits import ( # noqa: F401 # re-export - ALIAS_TARGET_TYPES, ORG_ARGUMENT_TO_FIELD_MAP, ORG_FIELDS_WITH_CRS_NLS, - ORG_FIELD_INFO_ORDER, ORG_FIELD_PRINT_ORDER, ORG_ITEMS_FIELD_MAP, - ORG_UNIT_SELECTOR_FIELD, PRINT_ORGS_DEFAULT_FIELDS, - PRINT_OUS_SELECTOR_CHOICES, - _batchMoveCrOSesToOrgUnit, _batchMoveUsersToOrgUnit, - _doDeleteOrgs, _doInfoOrgs, _doUpdateOrgs, _getOrgUnits, - checkOrgUnitPathExists, doCheckOrgUnit, doCreateOrg, - doDeleteOrg, doDeleteOrgs, doInfoOrg, doInfoOrgs, - doPrintOrgs, doShowOrgTree, doUpdateOrg, doUpdateOrgs, - getOrgUnitIdToPathMap, -) -from gam.cmd.aliases import ( # noqa: F401 # re-export - _addUserAliases, deleteUsersAliases, doCreateUpdateAliases, - doDeleteAliases, doInfoAliases, doPrintAddresses, doPrintAliases, - doRemoveAliases, getUserGroupDomainQueryFilters, infoAliases, - initUserGroupDomainQueryFilters, makeUserGroupDomainQueryFilters, - userFilters, -) -from gam.cmd.contacts import ( # noqa: F401 # re-export - CONTACTS_ORDERBY_CHOICE_MAP, CONTACTS_PROJECTION_CHOICE_MAP, - CONTACT_ADDITIONAL_NAME, CONTACT_ADDRESSES, CONTACT_BILLING_INFORMATION, - CONTACT_BIRTHDAY, CONTACT_CALENDARS, CONTACT_DIRECTORY_SERVER, - CONTACT_EMAILS, CONTACT_EVENTS, CONTACT_EXTERNALIDS, CONTACT_FAMILY_NAME, - CONTACT_FIELDS_WITH_CRS_NLS, CONTACT_GENDER, CONTACT_GIVEN_NAME, - CONTACT_HOBBIES, CONTACT_ID, CONTACT_IMS, CONTACT_INITIALS, - CONTACT_JOTS, CONTACT_JSON, CONTACT_LANGUAGE, CONTACT_LOCATION, - CONTACT_MAIDENNAME, CONTACT_MILEAGE, CONTACT_NAME, CONTACT_NAME_PREFIX, - CONTACT_NAME_SUFFIX, CONTACT_NICKNAME, CONTACT_NOTES, CONTACT_OCCUPATION, - CONTACT_ORGANIZATIONS, CONTACT_PHONES, CONTACT_PRIORITY, - CONTACT_RELATIONS, CONTACT_SELECT_ARGUMENTS, CONTACT_SENSITIVITY, - CONTACT_SHORTNAME, CONTACT_SUBJECT, CONTACT_TIME_OBJECTS, - CONTACT_UPDATED, CONTACT_USER_DEFINED_FIELDS, CONTACT_WEBSITES, - ContactsManager, - PEOPLE_ADDRESSES, PEOPLE_ADD_GROUPS, PEOPLE_ADD_GROUPS_LIST, - PEOPLE_BIOGRAPHIES, PEOPLE_BIRTHDAYS, PEOPLE_CALENDAR_URLS, - PEOPLE_CLIENT_DATA, PEOPLE_COVER_PHOTOS, - PEOPLE_DIRECTORY_MERGE_SOURCES_CHOICE_MAP, - PEOPLE_DIRECTORY_SOURCES_CHOICE_MAP, - PEOPLE_EMAIL_ADDRESSES, PEOPLE_EVENTS, PEOPLE_EXTERNAL_IDS, - PEOPLE_FILE_ASES, PEOPLE_GENDERS, PEOPLE_GROUPS, PEOPLE_GROUPS_LIST, - PEOPLE_GROUP_CLIENT_DATA, PEOPLE_GROUP_NAME, PEOPLE_IM_CLIENTS, - PEOPLE_INTERESTS, PEOPLE_JSON, PEOPLE_LOCALES, PEOPLE_LOCATIONS, - PEOPLE_MEMBERSHIPS, PEOPLE_METADATA, PEOPLE_MISC_KEYWORDS, - PEOPLE_MISC_KEYWORDS_BILLING_INFORMATION, - PEOPLE_MISC_KEYWORDS_DIRECTORY_SERVER, PEOPLE_MISC_KEYWORDS_JOT, - PEOPLE_MISC_KEYWORDS_MILEAGE, PEOPLE_MISC_KEYWORDS_PRIORITY, - PEOPLE_MISC_KEYWORDS_SENSITIVITY, PEOPLE_MISC_KEYWORDS_SUBJECT, - PEOPLE_NAMES, PEOPLE_NAMES_FAMILY_NAME, PEOPLE_NAMES_GIVEN_NAME, - PEOPLE_NAMES_HONORIFIC_PREFIX, PEOPLE_NAMES_HONORIFIC_SUFFIX, - PEOPLE_NAMES_MIDDLE_NAME, PEOPLE_NAMES_PHONETIC_FAMILY_NAME, - PEOPLE_NAMES_PHONETIC_GIVEN_NAME, PEOPLE_NAMES_PHONETIC_HONORIFIC_PREFIX, - PEOPLE_NAMES_PHONETIC_HONORIFIC_SUFFIX, - PEOPLE_NAMES_PHONETIC_MIDDLE_NAME, PEOPLE_NAMES_UNSTRUCTURED_NAME, - PEOPLE_NICKNAMES, PEOPLE_NICKNAMES_INITIALS, - PEOPLE_NICKNAMES_MAIDENNAME, PEOPLE_NICKNAMES_NICKNAME, - PEOPLE_NICKNAMES_SHORTNAME, PEOPLE_OCCUPATIONS, PEOPLE_ORGANIZATIONS, - PEOPLE_PHONE_NUMBERS, PEOPLE_PHOTOS, PEOPLE_READ_SOURCES_CHOICE_MAP, - PEOPLE_RELATIONS, PEOPLE_REMOVE_GROUPS, PEOPLE_REMOVE_GROUPS_LIST, - PEOPLE_SIP_ADDRESSES, PEOPLE_SKILLS, PEOPLE_UPDATE_TIME, - PEOPLE_URLS, PEOPLE_USER_DEFINED, PeopleManager, - _clearUpdateContacts, _getContactEntityList, _getContactFieldsList, - _getContactQueryAttributes, _getCreateContactReturnOptions, - _initContactQueryAttributes, _showContact, - clearEmailAddressMatches, countLocalContactSelects, - dedupEmailAddressMatches, doClearDomainContacts, - doCreateDomainContact, doDedupDomainContacts, doDeleteDomainContacts, - doInfoDomainContacts, doPrintShowDomainContacts, doUpdateDomainContacts, - localContactSelects, normalizeContactGroupResourceName, - normalizeContactId, normalizeOtherContactsResourceName, - normalizePeopleResourceName, queryContacts, -) -from gam.cmd.people import ( # noqa: F401 # re-export - CONTACTGROUPS_MYCONTACTS_ID, - CONTACTGROUPS_MYCONTACTS_NAME, - PEOPLE_CONTACTGROUPS_DEFAULT_FIELDS, - PEOPLE_CONTACTGROUPS_FIELDS_CHOICE_MAP, - PEOPLE_CONTACTS_DEFAULT_FIELDS, - PEOPLE_CONTACT_DEPRECATED_SELECT_ARGUMENTS, - PEOPLE_CONTACT_OBJECT_KEYS, - PEOPLE_CONTACT_SELECT_ARGUMENTS, - PEOPLE_FIELDS_CHOICE_MAP, - PEOPLE_GROUP_TIME_OBJECTS, - PEOPLE_ORDERBY_CHOICE_MAP, - PEOPLE_OTHERCONTACT_SELECT_ARGUMENTS, - PEOPLE_OTHER_CONTACTS_FIELDS_CHOICE_MAP, - PEOPLE_PROFILE_SOURCETYPE_CHOICE_MAP, - _clearUpdatePeopleContacts, - _getPeopleContactEntityList, - _getPeopleContactQueryAttributes, - _getPeopleOtherContactEntityList, - _getPeopleOtherContactQueryAttributes, - _getPeopleOtherContacts, - _getPersonFields, - _infoPeople, - _initPeopleContactQueryAttributes, - _initPeopleOtherContactQueryAttributes, - _initPersonMetadataParameters, - _normalizeContactGroupMetadata, - _printContactGroup, - _printPerson, - _printPersonEntityList, - _printShowPeople, - _processPeopleContactPhotos, - _processPersonMetadata, - _showContactGroup, - _showPerson, - addContactGroupNamesToContacts, - clearPeopleEmailAddressMatches, - clearUserPeopleContacts, - copyUserPeopleOtherContacts, - countLocalPeopleContactSelects, - createUserPeopleContact, - createUserPeopleContactGroup, - dedupPeopleEmailAddressMatches, - dedupReplaceDomainUserPeopleContacts, - deleteUserPeopleContactGroups, - deleteUserPeopleContactPhoto, - deleteUserPeopleContacts, - doDeleteDomainContactPhoto, - doGetDomainContactPhoto, - doInfoDomainPeopleContacts, - doInfoDomainPeopleProfile, - doPrintShowDomainPeopleContacts, - doPrintShowDomainPeopleProfiles, - doUpdateDomainContactPhoto, - getPeopleContactGroupsInfo, - getPersonFieldsList, - getUserPeopleContactPhoto, - infoUserPeopleContactGroups, - infoUserPeopleContacts, - localPeopleContactSelects, - printShowUserPeopleContactGroups, - printShowUserPeopleContacts, - printShowUserPeopleOtherContacts, - printShowUserPeopleProfiles, - processUserPeopleOtherContacts, - queryPeopleContacts, - queryPeopleOtherContacts, - replaceDomainPeopleEmailAddressMatches, - updateUserPeopleContactGroup, - updateUserPeopleContactPhoto, - updateUserPeopleContacts, - validatePeopleContactGroup, - validatePeopleContactGroupsList, -) -from gam.cmd.delegates import ( # noqa: F401 # re-export - _getDelegateName, - _validateUserGetDelegateList, - printShowContactDelegates, - processContactDelegates, -) -from gam.cmd.cros import ( # noqa: F401 # re-export - CROS_ACTION_CHOICE_MAP, - CROS_ACTION_NAME_MAP, - CROS_ACTIVITY_LIST_FIELDS_CHOICE_MAP, - CROS_ACTIVITY_TIME_OBJECTS, - CROS_BASIC_FIELDS_LIST, - CROS_COMMAND_CHOICE_MAP, - CROS_COMMAND_FINAL_STATES, - CROS_COMMAND_TIME_OBJECTS, - CROS_DOIT_REQUIRED_COMMANDS, - CROS_END_ARGUMENTS, - CROS_ENTITIES_MAP, - CROS_FIELDS_CHOICE_MAP, - CROS_FIELDS_WITH_CRS_NLS, - CROS_INDEXED_TITLES, - CROS_KIOSK_COMMANDS, - CROS_LIST_FIELDS_CHOICE_MAP, - CROS_ORDERBY_CHOICE_MAP, - CROS_SCALAR_PROPERTY_PRINT_ORDER, - CROS_START_ARGUMENTS, - CROS_TELEMETRY_FIELDS_CHOICE_MAP, - CROS_TELEMETRY_LIST_FIELDS, - CROS_TELEMETRY_LIST_FIELDS_CHOICE_MAP, - CROS_TELEMETRY_SCALAR_FIELDS, - CROS_TELEMETRY_SCALAR_FIELDS_SET, - CROS_TELEMETRY_TIME_OBJECTS, - CROS_TIME_OBJECTS, - CROS_TPM_FIXED_VERSIONS, - CROS_TPM_VULN_VERSIONS, - UPDATE_CROS_ARGUMENT_TO_PROPERTY_MAP, - _computeDVRstorageFreePercentage, - _filterActiveTimeRanges, - _filterBasicList, - _filterCPUStatusReports, - _filterDeviceFiles, - _filterRecentUsers, - _filterScreenshotFiles, - _filterSystemRamFreeReports, - _getFilterDateTime, - _selectDeviceFiles, - checkTPMVulnerability, - displayCrOSCommandResult, - doGetCommandResultCrOSDevices, - doGetCrOSDeviceFiles, - doInfoCrOSDevices, - doInfoPrintShowCrOSTelemetry, - doIssueCommandCrOSDevices, - doPrintCrOSActivity, - doPrintCrOSDevices, - doPrintCrOSEntity, - doUpdateCrOSDevices, - getCfgCrOSEntities, - getCommandResultCrOSDevices, - getCrOSDeviceEntity, - getCrOSDeviceFiles, - getDeviceFilesEntity, - infoCrOSDevices, - issueCommandCrOSDevices, - substituteQueryTimes, - updateCrOSDevices, - writeCrOSCommandResults, -) -from gam.cmd.browsers import ( # noqa: F401 # re-export - BROWSER_ANNOTATED_FIELDS_LIST, BROWSER_DEVICEID_ANNOTATED_FIELDS, - BROWSER_FIELDS_CHOICE_MAP, BROWSER_FULL_ACCESS_FIELDS, - BROWSER_ORDERBY_CHOICE_MAP, BROWSER_TIME_OBJECTS, - BROWSER_TOKEN_FIELDS_CHOICE_MAP, BROWSER_TOKEN_TIME_OBJECTS, - CHROMEPROFILECOMMAND_TIME_OBJECTS, CHROMEPROFILE_FIELDS_CHOICE_MAP, - CHROMEPROFILE_ORDERBY_CHOICE_MAP, CHROMEPROFILE_TIME_OBJECTS, - UPDATE_BROWSER_ARGUMENT_TO_PROPERTY_MAP, - _getChromeProfileName, _getChromeProfileNameEntityForCommand, - _getChromeProfileNameList, _getChromeProfileNameParameters, - _initChromeProfileNameParameters, _printChromeProfileCommand, - _showBrowser, _showBrowserToken, _showChromeProfile, - _showChromeProfileCommand, doCreateBrowserToken, - doCreateChromeProfileCommand, doDeleteBrowsers, doDeleteChromeProfile, - doInfoBrowsers, doInfoChromeProfile, doInfoChromeProfileCommand, - doMoveBrowsers, doPrintShowBrowserTokens, doPrintShowBrowsers, - doPrintShowChromeProfileCommands, doPrintShowChromeProfiles, - doRevokeBrowserToken, doUpdateBrowsers, -) -from gam.cmd.chat import ( # noqa: F401 # re-export -CHAT_EMOJI_SHOW_CREATED_BY_CHOICE_MAP, CHAT_MEMBERS_FIELDS_CHOICE_MAP, - CHAT_MEMBER_ROLE_MAP, CHAT_MEMBER_TYPE_MAP, - CHAT_MESSAGES_FIELDS_CHOICE_MAP, CHAT_MESSAGES_ORDERBY_CHOICE_MAP, - CHAT_MESSAGE_REPLY_OPTION_MAP, CHAT_ROLE_ENTITY_TYPE_MAP, - CHAT_SEARCHMESSAGES_ORDERBY_CHOICE_MAP, - CHAT_SEARCHMESSAGES_VIEW_CHOICE_MAP, CHAT_SECTION_POSITION, - CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP, CHAT_SPACES_FIELDS_CHOICE_MAP, - CHAT_SPACE_MIN_MAX_MEMBERS, CHAT_SPACE_PREDEFINED_PERMS_MAP, - CHAT_SPACE_ROLE_PERMISSIONS_MAP, CHAT_SPACE_TYPE_MAP, - CHAT_SYNC_PREVIEW_TITLES, CHAT_TIME_OBJECTS, - CHAT_UPDATE_SPACE_PERMISSIONS_MAP, CHAT_UPDATE_SPACE_TYPE_MAP, - _chkChatAdminAccess, _cleanChatMessage, _cleanChatSpace, - _deleteChatMembers, _getChatAdminAccess, _getChatMemberEmail, - _getChatPageMessage, _getChatSenderEmail, _getChatSpaceDisplayName, - _getChatSpaceListParms, _getChatSpaceMembers, _getChatSpaceSearchParms, - _getValidateEmojiName, _printChatItem, _showChatItem, - buildChatServiceObject, createChatEmoji, createChatMember, - createChatMessage, createChatSpace, createUpdateChatSection, - deleteChatEmoji, deleteChatMessage, deleteChatSection, - deleteChatSpace, deleteUpdateChatMember, doCreateChatMessage, - doDeleteChatMessage, doInfoChatEvent, doInfoChatMember, - doInfoChatMessage, doInfoChatSpace, doPrintShowChatMembers, - doPrintShowChatSpaces, doSetupChat, doUpdateChatMessage, - exitIfChatNotConfigured, getChatSectionName, getChatSpaceParameters, - getEmojiName, getSpaceName, getGroupMemberID, getUserMemberID, - infoChatEmoji, infoChatEvent, infoChatMember, infoChatMessage, - infoChatSpace, infoChatSpaceDM, moveShowChatSectionItem, - normalizeUserMember, printShowChatEmojis, printShowChatEvents, - printShowChatMembers, printShowChatMessages, - printShowChatSearchMessages, printShowChatSectionItems, - printShowChatSections, printShowChatSpaces, setupChatURL, - syncChatMembers, trimChatMessageIfRequired, updateChatMessage, - updateChatSpace, -) -from gam.cmd.meet import ( # noqa: F401 # re-export - MEET_CONFERENCE_TIME_OBJECTS, MEET_SPACE_ACCESSTYPE_CHOICES, - MEET_SPACE_ARTIFACT_SUB_OPTIONS, MEET_SPACE_ENTRYPOINTACCESS_CHOICES_MAP, - MEET_SPACE_OPTIONS_MAP, MEET_SPACE_RESTRICTIONS_CHOICES_MAP, - _getMeetPageMessage, _getMeetSpaceParameters, _printMeetConfItem, - _printShowMeetItems, _showMeetConfItem, _showMeetItem, - buildMeetServiceObject, createMeetSpace, endMeetConference, - infoMeetSpace, printShowMeetConferences, printShowMeetParticipants, - printShowMeetRecordings, printShowMeetTranscripts, updateMeetSpace, -) -from gam.cmd.chromepolicies import ( # noqa: F401 # re-export - CHROME_IMAGE_SCHEMAS_MAP, CHROME_POLICY_INDEXED_TITLES, - CHROME_POLICY_SCHEMA_FIELDS_CHOICE_MAP, CHROME_POLICY_SHOW_ALL, - CHROME_POLICY_SHOW_CHOICE_MAP, CHROME_POLICY_SHOW_DIRECT, - CHROME_POLICY_SHOW_INHERITED, CHROME_SCHEMA_SPECIAL_CASES, - CHROME_TARGET_VERSION_CHANNEL_MINUS_PATTERN, CHROME_TARGET_VERSION_PATTERN, - SCHEMA_TYPE_MESSAGE_MAP, - _getChromePolicySchema, _getChromePolicySchemaName, - _getOrgunitsOrgUnitIdPath, _getPolicyGroupTarget, _getPolicyOrgUnitTarget, - _showChromePolicySchema, _showChromePolicySchemaStd, - checkPolicyArgs, commonprefix, doCreateChromeNetwork, - doCreateChromePolicyImage, doDeleteChromeNetwork, doDeleteChromePolicy, - doInfoChromePolicySchemas, doInfoChromePolicySchemasStd, - doPrintShowChromePolicies, doPrintShowChromePolicySchemas, - doShowChromePolicySchemasStd, doUpdateChromePolicy, - setPolicyKVList, simplifyChromeSchemaDisplay, simplifyChromeSchemaUpdate, - updatePolicyRequests, -) -from gam.cmd.cidevices import ( # noqa: F401 # re-export - DEVICEUSER_FIELDS_CHOICE_MAP, DEVICE_ACTION_CHOICES, - DEVICE_FIELDS_CHOICE_MAP, DEVICE_MISSING_ACTION_MAP, - DEVICE_ORDERBY_CHOICE_MAP, DEVICE_TIME_OBJECTS, DEVICE_TYPE_MAP, - DEVICE_USERNAME_CLIENT_STATE_PATTERN, DEVICE_USERNAME_FORMAT_REQUIRED, - DEVICE_USERNAME_PATTERN, DEVICE_USER_ACTION_CHOICES, - DEVICE_USER_COMPLIANCE_STATE_CHOICE_MAP, - DEVICE_USER_CUSTOM_VALUE_TYPE_CHOICE_MAP, - DEVICE_USER_HEALTH_SCORE_CHOICE_MAP, - DEVICE_USER_MANAGED_STATE_CHOICE_MAP, DEVICE_VIEW_CHOICE_MAP, - _makeDeviceId, _performCIDeviceAction, _performCIDeviceUserAction, - buildGAPICIDeviceServiceObject, doApproveCIDeviceUser, - doBlockCIDeviceUser, doCancelWipeCIDevice, doCancelWipeCIDeviceUser, - doCreateCIDevice, doDeleteCIDevice, doDeleteCIDeviceUser, - doInfoCIDevice, doInfoCIDeviceUser, doInfoCIDeviceUserState, - doPrintCIDeviceUsers, doPrintCIDevices, doSyncCIDevices, - doUpdateCIDevice, doUpdateCIDeviceUser, doUpdateCIDeviceUserState, - doWipeCIDevice, doWipeCIDeviceUser, getCIDeviceEntity, - getCIDeviceUserEntity, getUpdateDeleteCIDeviceOptions, -) -from gam.cmd.printers import ( # noqa: F401 # re-export - CHROME_APPS_TIME_OBJECTS, CHROME_APPS_TYPE_CHOICES, - CREATE_PRINTER_JSON_SKIP_FIELDS, ORGUNIT_ENTITIES_MAP, - PRINTER_FIELDS_CHOICE_MAP, PRINTER_TIME_OBJECTS, - UPDATE_PRINTER_JSON_SKIP_FIELDS, - _checkPrinterInheritance, _getPrinterAttributes, _getPrinterEntity, - _getPrinterID, _showPrinter, doCreatePrinter, doDeletePrinter, - doInfoPrinter, doPrintShowPrinterModels, doPrintShowPrinters, - doUpdatePrinter, isolatePrinterID, -) -from gam.cmd.chromeapps import ( # noqa: F401 # re-export - CHROME_APPS_ORDERBY_CHOICE_MAP, CHROME_APPS_TITLES, - CHROME_APP_DEVICES_APPTYPE_CHOICE_MAP, - CHROME_APP_DEVICES_ORDERBY_CHOICE_MAP, CHROME_APP_DEVICES_TITLES, - CHROME_AUE_TITLES, CHROME_DEVICE_COUNTS_MODE_CHOICES, - CHROME_DEVICE_COUNTS_MODE_CSV_TITLE, CHROME_DEVICE_COUNTS_MODE_FUNCTIONS, - CHROME_HISTORY_ENTITY_CHOICE_MAP, CHROME_NEEDSATTN_TITLES, - CHROME_VERSIONHISTORY_ITEMS, CHROME_VERSIONHISTORY_ORDERBY_CHOICE_MAP, - CHROME_VERSIONHISTORY_TIMEOBJECTS, CHROME_VERSIONHISTORY_TITLES, - CHROME_VERSIONS_TITLES, MOBILE_ACTION_CHOICE_MAP, - _getPrintChromeGetting, doInfoChromeApp, doPrintChromeSnValidity, - doPrintShowChromeAppDevices, doPrintShowChromeApps, - doPrintShowChromeAues, doPrintShowChromeDeviceCounts, - doPrintShowChromeHistory, doPrintShowChromeNeedsAttn, - doPrintShowChromeVersions, getPlatformChannelMap, getRelativeMilestone, -) -from gam.cmd.mobile import ( # noqa: F401 # re-export - GROUP_ALIAS_ATTRIBUTES, GROUP_ASSIST_CONTENT_ATTRIBUTES, - GROUP_ASSIST_CONTENT_CHOICES, GROUP_ATTRIBUTES_SET, - GROUP_BASIC_ATTRIBUTES, GROUP_DEPRECATED_ATTRIBUTES, - GROUP_DISCOVER_ATTRIBUTES, GROUP_DISCOVER_CHOICES, - GROUP_FIELDS_WITH_CRS_NLS, GROUP_MERGED_ATTRIBUTES, - GROUP_MERGED_ATTRIBUTES_PRINT_ORDER, GROUP_MERGED_TO_COMPONENT_MAP, - GROUP_MODERATE_CONTENT_ATTRIBUTES, GROUP_MODERATE_CONTENT_CHOICES, - GROUP_MODERATE_MEMBERS_ATTRIBUTES, GROUP_MODERATE_MEMBERS_CHOICES, - GROUP_SETTINGS_ATTRIBUTES, MOBILE_FIELDS_CHOICE_MAP, - MOBILE_ORDERBY_CHOICE_MAP, MOBILE_TIME_OBJECTS, - _getMobileDeviceUser, _getMobileFieldsArguments, - _getUpdateDeleteMobileOptions, _initMobileFieldsParameters, - doDeleteMobileDevices, doInfoMobileDevices, doPrintMobileDevices, - doUpdateMobileDevices, getMobileDeviceEntity, -) -from gam.cmd.groups import ( # noqa: F401 # re-export -ALL_GROUP_MEMBER_TYPES, CIGROUP_FIELDS_CHOICE_MAP, - CIGROUP_FIELDS_WITH_CRS_NLS, CIGROUP_FULL_FIELDS, - CIGROUP_INFO_ORDER, CIGROUP_PRINT_ORDER, CIGROUP_TIME_OBJECTS, - GROUPMEMBERS_DEFAULT_FIELDS, GROUPMEMBERS_FIELDS_CHOICE_MAP, - GROUPMEMBERS_SORT_FIELDS, GROUP_ACCESS_TYPE_CHOICE_MAP, - GROUP_CIGROUP_ENTITYTYPE_MAP, GROUP_CIGROUP_FIELDS_MAP, - GROUP_FIELDS_CHOICE_MAP, GROUP_INFO_PRINT_ORDER, - GROUP_JSON_SKIP_FIELDS, GROUP_MEMBER_TYPES_MAP, GROUP_PREVIEW_TITLES, - GroupIsAbuseOrPostmaster, INFO_GROUPMEMBERS_FIELDS, - INFO_GROUP_OPTIONS, MEMBEROPTION_DISPLAYMATCH, - MEMBEROPTION_GETDELIVERYSETTINGS, MEMBEROPTION_INCLUDEDERIVEDMEMBERSHIP, - MEMBEROPTION_ISARCHIVED, MEMBEROPTION_ISSUSPENDED, - MEMBEROPTION_MATCHPATTERN, MEMBEROPTION_MEMBERNAMES, - MEMBEROPTION_NODUPLICATES, MEMBEROPTION_RECURSIVE, MEMBERS_TITLES, - UPDATE_GROUP_SUBCMDS, _checkCIMemberMatch, _checkMemberMatch, - _showCIGroup, addJsonGroupParents, addMemberInfoToRow, - checkGroupMatchPatterns, checkGroupShowOwnedBy, checkReplyToCustom, - clearUnneededGroupMatchPatterns, doCreateGroup, doDeleteGroups, - doInfoGroupMembers, doInfoGroups, doPrintGroupMembers, doPrintGroups, - doPrintShowGroupTree, doShowGroupMembers, doUpdateGroups, - finalizeIPSGMGroupRolesMemberDisplayOptions, finalizeInternalDomains, - getGroupAllowExternalMembers, getGroupAttrProperties, getGroupAttrValue, - getGroupFilters, getGroupMatchPatterns, getGroupMemberTypes, - getGroupMembers, getGroupMembersEntityList, getGroupParents, - getGroupRoles, getIPSGMGroupRolesMemberDisplayOptions, - getMemberMatchOptions, getPGGroupRolesMemberDisplayOptions, - getSettingsFromGroup, getSyncOperation, groupFilters, infoGroupMembers, - infoGroups, initIPSGMGroupMemberDisplayOptions, initMemberOptions, - mapCIGroupFieldNames, mapCIGroupMemberFieldNames, - mapGroupEmailForSettings, printGroupParents, setMemberDisplaySortTitles, - setMemberDisplayTitles, showGroupParents, - updateFieldsForGroupMatchPatterns, verifyGroupPrimaryEmail, -) -from gam.cmd.cigroups import ( # noqa: F401 # re-export -ALL_CIGROUP_MEMBER_TYPES, CIGROUPMEMBERS_DEFAULT_FIELDS, - CIGROUPMEMBERS_FIELDS_CHOICE_MAP, CIGROUPMEMBERS_SORT_FIELDS, - CIGROUPMEMBERS_TIME_OBJECTS, CIGROUP_MEMBER_TYPES_MAP, - CIPOLICY_ADDITIONAL_WARNINGS, CIPOLICY_TIME_OBJECTS, - _checkPoliciesWithDASA, _cleanPolicy, _filterPolicies, - _getCIListGroupMembersArgs, _getPolicyAppNameFromId, _showPolicies, - _showPolicy, checkCIGroupShowOwnedBy, doCreateCIGroup, - doCreateUpdateCIPolicy, doDeleteCIGroups, doDeleteCIPolicies, - doInfoCIGroupMembers, doInfoCIGroups, doInfoCIPolicies, - doPrintCIGroupMembers, doPrintCIGroups, doPrintShowCIPolicies, - doShowCIGroupMembers, doUpdateCIGroups, getCIGroupMemberTypes, - getCIGroupMembers, getCIGroupMembersEntityList, - getCIGroupTransitiveMembers, infoCIGroupMembers, - updateFieldsForCIGroupMatchPatterns, -) -from gam.cmd.licenses import ( # noqa: F401 # re-export - doPrintLicenses, doShowLicenses, -) -from gam.cmd.alerts import ( # noqa: F401 # re-export - ALERT_FEEDBACK_ORDERBY_CHOICE_MAP, ALERT_ORDERBY_CHOICE_MAP, - ALERT_TIME_OBJECTS, ALERT_TYPE_MAP, _showAlert, _showAlertFeedback, - _showAlertSettings, doClearAlertSettings, doCreateAlertFeedback, - doDeleteOrUndeleteAlert, doInfoAlert, doPrintShowAlertFeedback, - doPrintShowAlerts, doShowAlertSettings, doUpdateAlertSettings, -) -from gam.cmd.resources import ( # noqa: F401 # re-export - BUILDINGS_FIELDS_CHOICE_MAP, BUILDINGS_SORT_TITLES, - BUILDING_ADDRESS_PRINT_ORDER, FEATURE_FIELDS_CHOICE_MAP, - RESOURCE_ADDTL_FIELDS, RESOURCE_ALL_FIELDS, RESOURCE_CATEGORY_MAP, - RESOURCE_DFLT_FIELDS, RESOURCE_FIELDS_CHOICE_MAP, - RESOURCE_FIELDS_WITH_CRS_NLS, - _doDeleteResourceCalendars, _doInfoResourceCalendars, - _doUpdateResourceCalendars, _getBuildingAttributes, - _getBuildingByNameOrId, _getBuildingNameById, _getFeatureAttributes, - _getResourceACLsCalSettings, _getResourceCalendarAttributes, - _makeBuildingIdNameMap, _showBuilding, _showResource, - doCreateBuilding, doCreateFeature, doCreateResourceCalendar, - doDeleteBuilding, doDeleteFeature, doDeleteResourceCalendar, - doDeleteResourceCalendars, doInfoBuilding, doInfoResourceCalendar, - doInfoResourceCalendars, doPrintShowBuildings, doPrintShowFeatures, - doPrintShowResourceCalendars, doUpdateBuilding, doUpdateFeature, - doUpdateResourceCalendar, doUpdateResourceCalendars, - updateAutoAcceptInvitations, -) -from gam.cmd.calendar import ( # noqa: F401 # re-export - ACL_SCOPE_CHOICES, CALENDAR_ACL_ROLES_MAP, - CALENDAR_ATTENDEE_OPTIONAL_CHOICE_MAP, - CALENDAR_ATTENDEE_STATUS_CHOICE_MAP, - CALENDAR_EVENT_MAX_COLOR_INDEX, CALENDAR_EVENT_MIN_COLOR_INDEX, - CALENDAR_EVENT_SENDUPDATES_CHOICE_MAP, - CALENDAR_EVENT_STATUS_CHOICES, CALENDAR_EVENT_TRANSPARENCY_CHOICES, - CALENDAR_EVENT_VISIBILITY_CHOICES, - CALENDAR_MAX_COLOR_INDEX, CALENDAR_MIN_COLOR_INDEX, - CALENDAR_SETTINGS_FIELDS_CHOICE_MAP, - EVENT_ATTACHMENTS_SUBFIELDS_CHOICE_MAP, - EVENT_ATTENDEES_SUBFIELDS_CHOICE_MAP, - EVENT_CONFERENCEDATA_SUBFIELDS_CHOICE_MAP, - EVENT_CREATOR_SUBFIELDS_CHOICE_MAP, EVENT_FIELDS_CHOICE_MAP, - EVENT_FOCUSTIME_SUBFIELDS_CHOICE_MAP, EVENT_INDEXED_TITLES, - EVENT_JSONATTENDEES_SUBFIELD_CLEAR_FIELDS, EVENT_JSON_CLEAR_FIELDS, - EVENT_JSON_INSERT_CLEAR_FIELDS, EVENT_JSON_SUBFIELD_CLEAR_FIELDS, - EVENT_JSON_UPDATE_CLEAR_FIELDS, EVENT_ORGANIZER_SUBFIELDS_CHOICE_MAP, - EVENT_OUTOFOFFICE_SUBFIELDS_CHOICE_MAP, EVENT_PRINT_ORDER, - EVENT_SHOW_ORDER, EVENT_SUBFIELDS_CHOICE_MAP, EVENT_TIME_OBJECTS, - EVENT_TYPES_CHOICE_MAP, EVENT_TYPE_BIRTHDAY, EVENT_TYPE_DEFAULT, - EVENT_TYPE_ENTITY_MAP, EVENT_TYPE_FOCUSTIME, EVENT_TYPE_FROMGMAIL, - EVENT_TYPE_OUTOFOFFICE, EVENT_TYPE_PROPERTIES_NAME_MAP, - EVENT_TYPE_WORKINGLOCATION, EVENT_WORKINGLOCATION_SUBFIELDS_CHOICE_MAP, - LIST_EVENTS_DISPLAY_PROPERTIES, LIST_EVENTS_MATCH_FIELDS, - LIST_EVENTS_SELECT_PROPERTIES, - _addEventEntitySelectFields, _createCalendarACLs, - _createCalendarEvents, _deleteCalendarEvents, - _doCalendarsCreateACLs, _doInfoCalendarACLs, - _doUpdateDeleteCalendarACLs, _emptyCalendarTrash, _eventMatches, - _getCalendarCreateImportUpdateEventOptions, - _getCalendarDeleteEventOptions, _getCalendarEventAttribute, - _getCalendarEventReminders, _getCalendarInfoACLOptions, - _getCalendarInfoEventOptions, _getCalendarListEventsDisplayProperty, - _getCalendarListEventsProperty, _getCalendarMoveEventsOptions, - _getCalendarPrintShowACLOptions, _getCalendarPrintShowEventOptions, - _getCalendarSendUpdates, _getCalendarSetting, _getEventDaysOfWeek, - _getEventFields, _getEventMatchFields, _getEventTypes, - _infoCalendarACLs, _infoCalendarEvents, _moveCalendarEvents, - _normalizeCalIdGetRuleIds, _normalizeResourceIdGetRuleIds, - _printCalendarEvent, _printShowCalendarACLs, - _printShowCalendarEvents, _processCalendarACLs, - _purgeCalendarEvents, _resourceUpdateDeleteCalendarACLs, - _setEventRecurrenceTimeZone, _showCalendarACL, _showCalendarEvent, - _showCalendarSettings, _updateCalendarEvents, - _updateDeleteCalendarACLs, _validateCalendarGetEventIDs, - _validateCalendarGetEvents, _validateResourceId, - _wipeCalendarEvents, checkCalendarExists, - 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, - getACLScope, getCalendarACLScope, getCalendarACLSendNotifications, - getCalendarCreateUpdateACLsOptions, getCalendarDeleteACLsOptions, - getCalendarEventEntity, getCalendarSettings, - getCalendarSiteACLScopeEntity, getNormalizedCalIdCal, - initCalendarEventEntity, normalizeCalendarId, validateCalendar, -) -from gam.cmd.schemas import ( # noqa: F401 # re-export - SCHEMAS_INDEXED_TITLES, SCHEMAS_SORT_TITLES, - SCHEMA_FIELDTYPE_CHOICE_MAP, _showSchema, - doCreateUpdateUserSchemas, doDeleteUserSchemas, - doInfoUserSchemas, doPrintShowUserSchemas, -) -from gam.cmd.cloudstorage import ( # noqa: F401 # re-export - TAKEOUT_EXPORT_PATTERN, _copyStorageObjects, - _getCloudStorageObject, doCopyCloudStorageBucket, - doDownloadCloudStorageBucket, doDownloadCloudStorageFile, - md5MatchesFile, -) -from gam.cmd.vault import ( # noqa: F401 # re-export -PRINT_USER_VAULT_HOLDS_TITLES, PRINT_VAULT_COUNTS_TITLES, - PRINT_VAULT_EXPORTS_TITLES, PRINT_VAULT_HOLDS_TITLES, - PRINT_VAULT_MATTERS_TITLES, PRINT_VAULT_QUERIES_TITLES, - VAULT_CORPUS_ARGUMENT_MAP, VAULT_CORPUS_EXPORT_FORMATS, - VAULT_CORPUS_OPTIONS_MAP, VAULT_CORPUS_QUERY_MAP, - VAULT_COUNTS_CORPUS_ARGUMENT_MAP, VAULT_CSE_OPTION_MAP, - VAULT_EXPORT_DATASCOPE_MAP, VAULT_EXPORT_FIELDS_CHOICE_MAP, - VAULT_EXPORT_FORMAT_MAP, VAULT_EXPORT_REGION_MAP, - VAULT_EXPORT_STATUS_MAP, VAULT_EXPORT_TIME_OBJECTS, - VAULT_HOLD_FIELDS_CHOICE_MAP, VAULT_HOLD_TIME_OBJECTS, - VAULT_MATTER_ACTIONS, VAULT_MATTER_FIELDS_CHOICE_MAP, - VAULT_MATTER_STATE_MAP, VAULT_QUERY_ARGS, - VAULT_QUERY_FIELDS_CHOICE_MAP, VAULT_QUERY_TIME_OBJECTS, - VAULT_RESPONSE_STATUS_MAP, VAULT_SEARCH_METHODS_MAP, - VAULT_SHARED_DRIVES_OPTION_MAP, VAULT_VOICE_COVERED_DATA_MAP, - ZIP_EXTENSION_PATTERN, - _buildVaultQuery, _cleanVaultExport, _cleanVaultHold, - _cleanVaultMatter, _cleanVaultQuery, _getHoldQueryParameters, - _setHoldQuery, _showVaultExport, _showVaultHold, - _showVaultMatter, _showVaultQuery, _useVaultQueryForHold, - _validateVaultQuery, convertExportNameToID, convertHoldNameToID, - convertMatterNameToID, convertQueryNameToID, doActionVaultMatter, - doCloseVaultMatter, doCopyVaultExport, doCopyVaultQuery, - doCreateCopyVaultQuery, doCreateVaultExport, doCreateVaultHold, - doCreateVaultMatter, doCreateVaultQuery, doDeleteVaultExport, - doDeleteVaultHold, doDeleteVaultMatter, doDeleteVaultQuery, - doDownloadVaultExport, doInfoVaultExport, doInfoVaultHold, - doInfoVaultMatter, doInfoVaultQuery, doPrintShowVaultExports, - doPrintShowVaultHolds, doPrintShowVaultMatters, - doPrintShowVaultQueries, doPrintVaultCounts, doReopenVaultMatter, - doUndeleteVaultMatter, doUpdateVaultHold, doUpdateVaultMatter, - formatVaultNameId, getMatterItem, printShowUserVaultHolds, - validateCollaborators, warnMatterNotOpen, -) -from gam.cmd.users import ( # noqa: F401 # re-export -ADDRESS_ARGUMENT_TO_FIELD_MAP, ALLOW_EMPTY_CUSTOM_TYPE, - INFO_USER_OPTIONS, ORGANIZATION_ARGUMENT_TO_FIELD_MAP, - PasswordOptions, SCHEMA_VALUE_PROCESS_MAP, - UPDATE_USER_ARGUMENT_TO_PROPERTY_MAP, USERS_INDEXED_TITLES, - USERS_ORDERBY_CHOICE_MAP, USER_ADDRESSES_PROPERTY_PRINT_ORDER, - USER_ARRAY_PROPERTY_PRINT_ORDER, USER_FIELDS_CHOICE_MAP, - USER_GUEST_PROPERTY_PRINT_ORDER, USER_JSON_SKIP_FIELDS, - USER_LANGUAGE_PROPERTY_PRINT_ORDER, - USER_LOCATIONS_PROPERTY_PRINT_ORDER, - USER_MULTI_ATTR_FILTER_CHOICE_MAP, USER_NAME_PROPERTY_PRINT_ORDER, - USER_ORGANIZATIONS_PROPERTY_PRINT_ORDER, - USER_POSIX_PROPERTY_PRINT_ORDER, USER_SCALAR_PROPERTY_PRINT_ORDER, - USER_SKIP_OBJECTS, USER_SSH_PROPERTY_PRINT_ORDER, USER_TIME_OBJECTS, - _filterSchemaFields, _filterUserMultiAttributes, - _formatLanguagesList, _getGroupOrgUnitMap, _getSchemaNameList, - _getUserMultiAttributeFilters, _initSchemaParms, - createUserAddAliases, createUserAddToGroups, deleteUsers, - doCheckUserSuspended, doCreateGuestUser, doCreateUser, - doDeleteUser, doDeleteUsers, doInfoUser, doInfoUsers, - doPrintUserCountsByOrgUnit, doPrintUserEntity, doPrintUserList, - doPrintUsers, doSuspendUnsuspendUser, doSuspendUnsuspendUsers, - doUndeleteUser, doUndeleteUsers, doUpdateUser, doUpdateUsers, - getNotifyArguments, getUserAttributes, getUserLicenses, - infoUsers, signoutTurnoff2SVUsers, suspendUnsuspendUsers, - undeleteUsers, updateUsers, verifyUserPrimaryEmail, waitForMailbox, -) -from gam.cmd.ciuserinvitations import ( # noqa: F401 # re-export - CI_USERINVITATION_ORDERBY_CHOICE_MAP, - CI_USERINVITATION_STATE_CHOICE_MAP, - CI_USERINVITATION_TIME_OBJECTS, - INBOUNDSSO_ALL_OIDC, INBOUNDSSO_ALL_SAML, - INBOUNDSSO_INPUT_MODE_CHOICE_MAP, INBOUNDSSO_MODE_CHOICE_MAP, - INBOUNDSSO_OUTPUT_MODE_CHOICE_MAP, - _getCIUserInvitationsEntity, _getIsInvitableUser, - _showUserInvitation, checkCIUserIsInvitable, - doCIUserInvitationsAction, doCheckCIUserInvitations, - doInfoCIUserInvitations, doPrintShowCIUserInvitations, - infoCIUserInvitations, isolateCIUserInvitatonsEmail, - quotedCIUserInvitatonsEmail, -) -from gam.cmd.sso import ( # noqa: F401 # re-export - INBOUNDSSO_CREDENTIALS_TIME_OBJECTS, - SITEVERIFICATION_METHOD_CHOICE_MAP, - _convertInboundSSOProfileDisplaynameToName, - _getInboundSSOAssignment, _getInboundSSOAssignmentArguments, - _getInboundSSOAssignmentByTarget, _getInboundSSOAssignmentName, - _getInboundSSOAssignments, _getInboundSSOModeService, - _getInboundSSOProfileArguments, _getInboundSSOProfileByName, - _getInboundSSOProfiles, _processInboundSSOAssignmentResult, - _processInboundSSOCredentialsResult, - _processInboundSSOProfileResult, _showInboundSSOAssignment, - _showInboundSSOCredentials, _showInboundSSOProfile, - _updateInboundAssignmentTargetNames, - doCreateInboundSSOAssignment, doCreateInboundSSOCredential, - doCreateInboundSSOProfile, doDeleteInboundSSOAssignment, - doDeleteInboundSSOCredential, doDeleteInboundSSOProfile, - doInfoInboundSSOAssignment, doInfoInboundSSOCredential, - doInfoInboundSSOProfile, doPrintShowInboundSSOAssignments, - doPrintShowInboundSSOCredentials, doPrintShowInboundSSOProfiles, - doUpdateInboundSSOAssignment, doUpdateInboundSSOProfile, - getCIOrgunitID, getInboundSSOCredentialsName, - getInboundSSOProfileCredentials, -) -from gam.cmd.sites import ( # noqa: F401 # re-export - deprecatedDomainSites, deprecatedUserSites, - DNS_ERROR_CODES_MAP, PROFILE_ACCOUNT_TYPE_MAP, - _showSiteVerificationInfo, doCreateSiteVerification, - doInfoSiteVerification, doUpdateSiteVerification, - printShowBusinessProfileAccounts, printShowWebMasterSites, - printShowWebResources, -) -from gam.cmd.courses import ( # noqa: F401 # re-export -ADD_REMOVE_UPDATE_ITEM_TYPES_MAP, - CLASSROOM_CREATE_ROLE_MAP, - CLASSROOM_ROLE_ALL, - CLASSROOM_ROLE_ENTITY_MAP, - CLASSROOM_ROLE_MAP, - CLASSROOM_ROLE_OWNER, - CLASSROOM_ROLE_STUDENT, - CLASSROOM_ROLE_TEACHER, - CLEAR_SYNC_PARTICIPANT_TYPES_MAP, - COURSE_ANNOUNCEMENTS_FIELDS_CHOICE_MAP, - COURSE_ANNOUNCEMENTS_INDEXED_TITLES, - COURSE_ANNOUNCEMENTS_ORDERBY_CHOICE_MAP, - COURSE_ANNOUNCEMENTS_SORT_TITLES, - COURSE_ANNOUNCEMENTS_TIME_OBJECTS, - COURSE_COUNTS_KEY_TITLE, - COURSE_COUNTS_MEMBER_ARGUMENTS, - COURSE_CUS_FILTER_FIELDS_MAP, - COURSE_CU_FILTER_FIELDS_MAP, - COURSE_END_ARGUMENTS, - COURSE_FIELDS_CHOICE_MAP, - COURSE_MATERIAL_FIELDS_CHOICE_MAP, - COURSE_MATERIAL_ID_ARGUMENTS, - COURSE_MATERIAL_INDEXED_TITLES, - COURSE_MATERIAL_ORDERBY_CHOICE_MAP, - COURSE_MATERIAL_SORT_TITLES, - COURSE_MATERIAL_STATE_ARGUMENTS, - COURSE_MATERIAL_TIME_OBJECTS, - COURSE_MEMBER_ARGUMENTS, - COURSE_NOLEN_OBJECTS, - COURSE_PARTICIPANTS_SORT_TITLES, - COURSE_PROPERTY_PRINT_ORDER, - COURSE_START_ARGUMENTS, - COURSE_STATE_MAPS, - COURSE_SUBMISSION_FIELDS_CHOICE_MAP, - COURSE_SUBMISSION_TIME_OBJECTS, - COURSE_TIME_OBJECTS, - COURSE_TOPICS_SORT_TITLES, - COURSE_TOPICS_TIME_OBJECTS, - COURSE_U_FILTER_FIELDS_MAP, - COURSE_WORK_FIELDS_CHOICE_MAP, - COURSE_WORK_ID_ARGUMENTS, - COURSE_WORK_INDEXED_TITLES, - COURSE_WORK_ORDERBY_CHOICE_MAP, - COURSE_WORK_SORT_TITLES, - COURSE_WORK_STATE_ARGUMENTS, - COURSE_WORK_TIME_OBJECTS, - CourseAttributes, - GUARDIAN_CLASS_ACCEPTED, - GUARDIAN_CLASS_ALL, - GUARDIAN_CLASS_ENTITY, - GUARDIAN_CLASS_INVITATIONS, - GUARDIAN_CLASS_MAP, - GUARDIAN_CLASS_UNDEFINED, - GUARDIAN_STATES, - GUARDIAN_TIME_OBJECTS, - PARTICIPANT_EN_MAP, - _batchAddItemsToCourse, - _batchRemoveItemsFromCourse, - _cancelGuardianInvitation, - _convertCourseUserIdToEmailName, - _courseItemPassesFilter, - _deleteGuardian, - _doDeleteCourses, - _doDeleteGuardian, - _doInfoCourses, - _doUpdateCourses, - _getClassroomEmail, - _getClassroomInvitationIds, - _getClassroomInvitations, - _getCourseAliasesMembers, - _getCourseItemFilter, - _getCourseName, - _getCourseOwnerSA, - _getCourseSelectionParameters, - _getCourseShowProperties, - _getCourseStates, - _getCourseWMSelectionParameters, - _getCoursesInfo, - _getCoursesOwnerInfo, - _gettingCourseEntityQuery, - _gettingCourseSubmissionQuery, - _gettingCoursesQuery, - _initCourseItemFilter, - _initCourseSelectionParameters, - _initCourseShowProperties, - _initCourseWMSelectionParameters, - _inviteGuardian, - _printCourseItemCount, - _printShowGuardians, - _setApplyCourseItemFilter, - _setCourseFields, - _updateCourseOwner, - acceptClassroomInvitations, - acceptDeleteClassroomInvitations, - cancelGuardianInvitations, - checkCourseExists, - 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, - doPrintCourseWM, - doPrintCourseWork, - doPrintCourses, - doPrintShowClassroomInvitations, - doPrintShowGuardians, - doProcessCourseStudentGroupMembers, - doUpdateCourse, - doUpdateCourseStudentGroups, - doUpdateCourses, - getCourseAnnouncement, - getGuardianEmails, - getGuardianEntity, - getGuardianInvitationEntity, - getGuardianInvitationIds, - inviteGuardians, - printShowClassroomInvitations, - printShowClassroomProfile, - printShowGuardians, - studentUnknownWarning, - syncGuardians, -) -from gam.cmd.userservices import ( # noqa: F401 # re-export - Act, - CALENDAR_EXCLUDE_DOMAINS, - CALENDAR_EXCLUDE_OPTIONS, - CALENDAR_LIST_FIELDS_CHOICE_MAP, - CALENDAR_NOTIFICATION_METHODS, - CALENDAR_NOTIFICATION_TYPES_MAP, - CALENDAR_SIMPLE_LISTS, - CORPORA_ALL_DRIVES, - CORPORA_CHOICE_MAP, - Cmd, - EVENT_AUTO_DECLINE_MODE_CHOICE_MAP, - EVENT_CHAT_STATUS_CHOICE_MAP, - Ent, - Ind, - QUERY_SHORTCUTS_MAP, - SHAREDDRIVE_QUERY_SHORTCUTS_MAP, - STATUS_EVENTS_DATETIME_CHOICES, - USER_CALENDAR_SETTINGS_FIELDS_CHOICE_MAP, - WORKING_LOCATION_CHOICE_MAP, - YOUTUBE_CHANNEL_FIELDS_CHOICE_MAP, - YOUTUBE_CHANNEL_TIME_OBJECTS, - _createImportCalendarEvent, - _getCalendarAttributes, - _getCalendarPermissions, - _getCalendarSelectProperty, - _getEntityMimeType, - _getMain, - _getTargetEntityMimeType, - _modifyRemoveCalendars, - _processCalendarList, - _showASPs, - _showBackupCodes, - _showCalendar, - _showCalendarStatusEvent, - _updateDeleteCalendars, - _validateUserGetCalendarIds, - addCalendars, - addCreateCalendars, - createCalendar, - createCalendarACLs, - createCalendarEvent, - createFocusTime, - createOutOfOffice, - createStatusEvent, - createWorkingLocation, - deleteASP, - deleteBackupCodes, - deleteCalendarACLs, - deleteCalendarEvents, - deleteCalendars, - deleteFocusTime, - deleteOutOfOffice, - deleteStatusEvent, - deleteWorkingLocation, - doCalendarsTransferOwnership, - emptyCalendarTrash, - getFocusTimeProperties, - getOutOfOfficeProperties, - getStatusEventDateTime, - getStatusEventProperties, - getStatusEventSummaryDecline, - getUserCalendarEntity, - getWorkingLocationProperties, - importCalendarEvent, - infoCalendarACLs, - infoCalendarEvents, - infoCalendars, - initUserCalendarEntity, - modifyCalendars, - moveCalendarEvents, - printShowASPs, - printShowBackupCodes, - printShowCalSettings, - printShowCalendarACLs, - printShowCalendarEvents, - printShowCalendars, - printShowFocusTime, - printShowOutOfOffice, - printShowStatusEvent, - printShowWorkingLocation, - printShowYouTubeChannel, - purgeCalendarEvents, - removeCalendars, - updateBackupCodes, - updateCalendarACLs, - updateCalendarAttendees, - updateCalendarEvents, - updateCalendars, - updateDeleteCalendarACLs, - wipeCalendarEvents, -) -from gam.cmd.drive import ( # noqa: F401 # re-export -CHECK_LOCATION_FIELDS_TITLES, - CONSOLIDATION_GROUPING_STRATEGY_CHOICE_MAP, - COPY_NONINHERITED_PERMISSIONS_ALWAYS, - COPY_NONINHERITED_PERMISSIONS_CHOICES_MAP, - COPY_NONINHERITED_PERMISSIONS_NEVER, - COPY_NONINHERITED_PERMISSIONS_SYNC_ALL_FOLDERS, - COPY_NONINHERITED_PERMISSIONS_SYNC_UPDATED_FOLDERS, - COPY_OWNED_BY_CHOICE_MAP, - DELETE_DRIVEFILE_CHOICE_MAP, - DELETE_DRIVEFILE_FUNCTION_TO_ACTION_MAP, - DELETE_DRIVEFILE_FUNCTION_TO_CAPABILITY_MAP, - DEST_PARENT_MYDRIVE_FOLDER, - DEST_PARENT_MYDRIVE_ROOT, - DEST_PARENT_SHAREDDRIVE_FOLDER, - DEST_PARENT_SHAREDDRIVE_ROOT, - DFA_ADD_PARENT_IDS, - DFA_ADD_PARENT_NAMES, - DFA_CREATED_TIME, - DFA_IGNORE_DEFAULT_VISIBILITY, - DFA_KEEP_REVISION_FOREVER, - DFA_KWARGS, - DFA_LOCALFILENAME, - DFA_LOCALFILEPATH, - DFA_LOCALMIMETYPE, - DFA_MODIFIED_TIME, - DFA_OCRLANGUAGE, - DFA_PARENTID, - DFA_PARENTQUERY, - DFA_PRESERVE_FILE_TIMES, - DFA_REMOVE_PARENT_IDS, - DFA_REMOVE_PARENT_NAMES, - DFA_REPLACEFILENAME, - DFA_SEARCHARGS, - DFA_SHAREDDRIVE_PARENT, - DFA_SHAREDDRIVE_PARENTID, - DFA_SHAREDDRIVE_PARENTQUERY, - DFA_STRIPNAMEPREFIX, - DFA_TIMEFORMAT, - DFA_TIMESTAMP, - DFA_URL, - DFA_USE_CONTENT_AS_INDEXABLE_TEXT, - DISKUSAGE_SHOW_CHOICES, - DOCUMENT_FORMATS_MAP, - DRIVEFILE_ACL_PERMISSION_DETAILS_TYPES, - DRIVEFILE_ACL_PERMISSION_TYPES, - DRIVEFILE_ACL_ROLES_MAP, - DRIVEFILE_BASIC_PERMISSION_FIELDS, - DRIVEFILE_ORDERBY_CHOICE_MAP, - DRIVEFILE_PERMISSIONS_FOR_VIEW_CHOICES, - DRIVEFILE_PROPERTY_VISIBILITY_CHOICE_MAP, - DRIVELABELS_PERMISSION_ROLE_MAP, - DRIVELABELS_PROJECTION_CHOICE_MAP, - DRIVELABELS_TIME_OBJECTS, - DRIVELABEL_FIELD_TYPE_MAP, - DRIVESETTINGS_FIELDS_CHOICE_MAP, - DRIVESETTINGS_SCALAR_FIELDS, - DRIVESETTINGS_USAGE_BYTES_FIELDS, - DRIVE_ACTIVITY_ACTION_MAP, - DRIVE_BY_NAME_CHOICE_MAP, - DRIVE_CAPABILITIES_SUBFIELDS_CHOICE_MAP, - DRIVE_CONTENT_RESTRICTIONS_SUBFIELDS_CHOICE_MAP, - DRIVE_DOWNLOAD_RESTRICTIONS_SUBFIELDS_CHOICE_MAP, - DRIVE_FIELDS_CHOICE_MAP, - DRIVE_FILE_CONTENT_RESTRICTIONS_CHOICE_MAP, - DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP, - DRIVE_INDEXED_TITLES, - DRIVE_LABELINFO_SUBFIELDS_CHOICE_MAP, - DRIVE_LABEL_CHOICE_MAP, - DRIVE_LIST_FIELDS, - DRIVE_OWNERS_SUBFIELDS_CHOICE_MAP, - DRIVE_PARENTS_SUBFIELDS_CHOICE_MAP, - DRIVE_PERMISSIONS_SUBFIELDS_CHOICE_MAP, - DRIVE_REVISIONS_INDEXED_TITLES, - DRIVE_SHARINGUSER_SUBFIELDS_CHOICE_MAP, - DRIVE_SHORTCUTDETAILS_SUBFIELDS_CHOICE_MAP, - DRIVE_SUBFIELDS_CHOICE_MAP, - DRIVE_TIME_OBJECTS, - DUPLICATE_FILE_CHOICES, - DUPLICATE_FILE_DUPLICATE_NAME, - DUPLICATE_FILE_OVERWRITE_ALL, - DUPLICATE_FILE_OVERWRITE_OLDER, - DUPLICATE_FILE_SKIP, - DUPLICATE_FILE_UNIQUE_NAME, - DUPLICATE_FOLDER_CHOICES, - DUPLICATE_FOLDER_DUPLICATE_NAME, - DUPLICATE_FOLDER_MERGE, - DUPLICATE_FOLDER_SKIP, - DUPLICATE_FOLDER_UNIQUE_NAME, - DriveFileFields, - DriveListParameters, - FILECOMMENTS_AUTHOR_SUBFIELDS_CHOICE_MAP, - FILECOMMENTS_FIELDS_CHOICE_MAP, - FILECOMMENTS_INDEXED_TITLES, - FILECOMMENTS_REPLIES_SUBFIELDS_CHOICE_MAP, - FILECOMMENTS_SUBFIELDS_CHOICE_MAP, - FILECOMMENTS_TIME_OBJECTS, - FILECOUNT_SUMMARY_CHOICE_MAP, - FILECOUNT_SUMMARY_NONE, - FILECOUNT_SUMMARY_ONLY, - FILECOUNT_SUMMARY_PLUS, - FILECOUNT_SUMMARY_USER, - FILEINFO_FIELDS_TITLES, - FILELIST_FIELDS_TITLES, - FILEPATH_FIELDS, - FILEPATH_FIELDS_TITLES, - FILEREVISIONS_FIELDS_CHOICE_MAP, - FILEREVISIONS_TIME_OBJECTS, - FILESHARECOUNTS_CATEGORIES, - FILESHARECOUNTS_OWNER, - FILESHARECOUNTS_SHARED, - FILESHARECOUNTS_SHARED_EXTERNAL, - FILESHARECOUNTS_SHARED_INTERNAL, - FILESHARECOUNTS_TOTAL, - FILESHARECOUNTS_ZEROCOUNTS, - FILETREE_FIELDS_CHOICE_MAP, - FILETREE_FIELDS_PRINT_ORDER, - FILE_SUBTOTAL_STATS, - FOLDER_SUBTOTAL_STATS, - GOOGLEDOC_VALID_EXTENSIONS_MAP, - HTTP_ERROR_PATTERN, - LOCATION_ALL_DRIVES, - LOCATION_CHOICE_MAP, - LOCATION_MYDRIVE, - LOCATION_ONLY_SHARED_DRIVES, - LOCATION_ORPHANS, - LOCATION_OWNEDBY_ANY, - LOCATION_OWNEDBY_OTHERS, - LOCATION_SHARED_WITHME, - LOOKERSTUDIO_ADD_UPDATE_PERMISSION_ROLE_CHOICE_MAP, - LOOKERSTUDIO_ASSETS_ORDERBY_CHOICE_MAP, - LOOKERSTUDIO_ASSETS_TIME_OBJECTS, - LOOKERSTUDIO_ASSETTYPE_CHOICE_MAP, - LOOKERSTUDIO_DELETE_PERMISSION_ROLE_CHOICE_MAP, - LOOKERSTUDIO_PERMISSION_MODIFIER_MAP, - LOOKERSTUDIO_VIEW_PERMISSION_ROLE_CHOICE_MAP, - MICROSOFT_FORMATS_LIST, - MIMETYPE_CHOICE_MAP, - MIMETYPE_EXTENSION_MAP, - MIMETYPE_TYPES, - MimeTypeCheck, - NON_DOWNLOADABLE_MIMETYPES, - OPENOFFICE_FORMATS_LIST, - OWNED_BY_ME_FIELDS_TITLES, - PRINT_ORGANIZER_TYPES, - PermissionMatch, - REVISIONS_FIELDS_CHOICE_MAP, - SHAREDDRIVE_ACL_ROLES_MAP, - SHAREDDRIVE_API_GUI_ROLES_MAP, - SHAREDDRIVE_DOWNLOAD_RESTRICTIONS_MAP, - SHAREDDRIVE_FIELDS_CHOICE_MAP, - SHAREDDRIVE_LIST_FIELDS_CHOICE_MAP, - SHAREDDRIVE_RESTRICTIONS_MAP, - SHAREDDRIVE_ROLES_CAPABILITIES_MAP, - SHAREDDRIVE_TIME_OBJECTS, - SHORTCUT_CODE_MIMETYPE_MISMATCH, - SHORTCUT_CODE_NOT_A_SHORTCUT, - SHORTCUT_CODE_SHORTCUT_NOT_FOUND, - SHORTCUT_CODE_TARGET_NOT_FOUND, - SHORTCUT_CODE_VALID, - SHOWLABELS_CHOICES, - SHOWWEBVIEWLINK_CHOICES, - SHOW_NO_PERMISSIONS_DRIVES_CHOICE_MAP, - SHOW_OWNED_BY_CHOICE_MAP, - SIZE_FIELD_CHOICE_MAP, - STAT_FILE_COPIED_MOVED, - STAT_FILE_DUPLICATE, - STAT_FILE_FAILED, - STAT_FILE_IN_SKIPIDS, - STAT_FILE_NOT_COPYABLE_MOVABLE, - STAT_FILE_PERMISSIONS_FAILED, - STAT_FILE_PROTECTEDRANGES_FAILED, - STAT_FILE_SHORTCUT_CREATED, - STAT_FILE_SHORTCUT_EXISTS, - STAT_FILE_TOTAL, - STAT_FOLDER_COPIED_MOVED, - STAT_FOLDER_DUPLICATE, - STAT_FOLDER_FAILED, - STAT_FOLDER_MERGED, - STAT_FOLDER_NOT_WRITABLE, - STAT_FOLDER_PERMISSIONS_FAILED, - STAT_FOLDER_SHORTCUT_CREATED, - STAT_FOLDER_SHORTCUT_EXISTS, - STAT_FOLDER_TOTAL, - STAT_LENGTH, - STAT_USER_NOT_ORGANIZER, - SUGGESTIONS_VIEW_MODE_CHOICE_MAP, - TITLE_QUERY_PATTERN, - TRANSFER_DRIVEFILE_ACL_ROLES_MAP, - UNIQUE_PREFIX_PATTERN, - _checkFileIdEntityDomainAccess, - _checkForDuplicateTargetFile, - _checkForExistingShortcut, - _checkSharedDriveRestrictions, - _checkUpdateLastModifiction, - _convertSharedDriveNameToId, - _copyPermissions, - _driveFileParentSpecified, - _finalizeIncludeLabels, - _finalizeIncludePermissionsForView, - _formatFileDriveLabels, - _getCommentFields, - _getCopyFolderNonInheritedPermissions, - _getCopyMoveParentInfo, - _getCopyMoveTargetInfo, - _getDisplayDriveLabelsParameters, - _getDriveFieldSubField, - _getDriveFileACLPrintKeysTimeObjects, - _getDriveFileAddRemoveParentInfo, - _getDriveFileDownloadRestrictions, - _getDriveFileNameFromId, - _getDriveFileParentInfo, - _getFileIdFromURL, - _getFilenameParts, - _getFilenamePrefix, - _getGettingEntity, - _getIncludeLabels, - _getIncludePermissionsForView, - _getLastModificationPath, - _getLookerStudioAssetByID, - _getLookerStudioAssets, - _getSharedDriveNameFromId, - _getSharedDriveRestrictions, - _getSharedDriveRole, - _getSharedDriveTheme, - _getSheetProtectedRanges, - _getUniqueFilename, - _identicalSourceTarget, - _incrStatistic, - _initLastModification, - _initStatistics, - _mapDrive2QueryToDrive3, - _mapDriveInfo, - _mapDrivePermissionNames, - _mapDriveUser, - _moveSharedDriveToOU, - _printStatistics, - _recursiveUpdateMovePermissions, - _selectRevisionIds, - _selectRevisionResults, - _setGetCheckFilePermissions, - _setGetPermissionsForMyDriveSharedDrives, - _setSkipObjects, - _showComment, - _showDriveFilePermission, - _showDriveFilePermissionJSON, - _showDriveFilePermissions, - _showDriveFilePermissionsJSON, - _showDriveLabel, - _showDriveLabelPermission, - _showLastModification, - _showLookerStudioPermissions, - _showRevision, - _showSharedDrive, - _showSharedDriveThemeSettings, - _simpleFileIdEntityList, - _stripCommentPhotoLinks, - _stripMeInOwners, - _stripNotMeInOwners, - _targetFilenameExists, - _updateAnyOwnerQuery, - _updateLastModificationRow, - _updateMoveFilePermissions, - _updateSheetProtectedRanges, - _updateSheetProtectedRangesACLchange, - _validateACLAttributes, - _validateACLOwnerType, - _validatePermissionAttributes, - _validatePermissionOwnerType, - _validateUserGetFileIDs, - _validateUserGetLookerStudioAssetIds, - _validateUserGetSharedDriveFileIDs, - _validateUserSharedDrive, - _verifyUserIsOrganizer, - addFilePathsToInfo, - addFilePathsToRow, - addTimestampToFilename, - buildFileTree, - checkDriveFileShortcut, - claimOwnership, - cleanFileIDsList, - 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, - doDriveSearch, - doHideUnhideSharedDrive, - doInfoDriveFileACLs, - doInfoDriveLabels, - doInfoSharedDrive, - doPrintSharedDriveOrganizers, - doPrintShowDriveFileACLs, - doPrintShowDriveLabelPermissions, - doPrintShowDriveLabels, - doPrintShowOrgunitSharedDrives, - doPrintShowOwnership, - doPrintShowSharedDriveACLs, - doPrintShowSharedDrives, - doSharedDriveSearch, - doShowSharedDriveThemes, - doUpdateDriveFileACLs, - doUpdateSharedDrive, - emptyDriveTrash, - escapeDriveFileName, - extendFileTree, - extendFileTreeParents, - getCopyMoveOptions, - getCreationModificationTimes, - getDriveFile, - getDriveFileAddRemoveParentAttribute, - getDriveFileAttribute, - getDriveFileCopyAttribute, - getDriveFileEntity, - getDriveFileEntitySharedDriveOnly, - getDriveFileParentAttribute, - getDriveFilePermissionsFields, - getDriveFileProperty, - getEscapedDriveFileName, - getEscapedDriveFolderName, - getFilePaths, - getGoogleDocument, - getLookerStudioAssetSelectionParameters, - getMediaBody, - getMimeType, - getPermissionIdForEmail, - getRevisionsEntity, - getSharedDriveEntity, - hideUnhideSharedDrive, - infoDriveFileACLs, - infoDriveLabels, - infoSharedDrive, - initCopyMoveOptions, - initDriveFileAttributes, - initDriveFileEntity, - initFilePathInfo, - initFileTree, - initLookerStudioAssetSelectionParameters, - moveDriveFile, - noFileSelectFileIdEntity, - normalizeDriveLabelID, - normalizeDriveLabelName, - printDiskUsage, - printDriveActivity, - printEmptyDriveFolders, - printFileList, - printFileParentTree, - printSharedDriveOrganizers, - printShowDriveFileACLs, - printShowDriveLabelPermissions, - printShowDriveLabels, - printShowDriveSettings, - printShowDrivelastModifications, - printShowFileComments, - printShowFileCounts, - printShowFilePaths, - printShowFileRevisions, - printShowFileShareCounts, - printShowFileTree, - printShowLookerStudioAssets, - printShowSharedDriveACLs, - printShowSharedDrives, - processFileDriveLabels, - processFilenameReplacements, - purgeDriveFile, - setPreservedFileTimes, - showFileInfo, - showSharedDriveThemes, - transferDrive, - transferOwnership, - trashDriveFile, - untrashDriveFile, - updateDriveFile, - updateDriveFileACLs, - updateFileRevisions, - updateGoogleDocument, - updateSharedDrive, - validateDriveLabelName, - validateMimeType, - validateUserGetPermissionId, - writeReturnIdLink, -) -from gam.cmd.gmail import ( # noqa: F401 # re-export - CSE_IDENTITY_ACTION_FUNCTION_MAP, - CSE_IDENTITY_TIME_OBJECTS, - CSE_KEYPAIR_ACTION_FUNCTION_MAP, - CSE_KEYPAIR_TIME_OBJECTS, - EMAILSETTINGS_FORWARD_POP_ACTION_CHOICE_MAP, - EMAILSETTINGS_IMAP_EXPUNGE_BEHAVIOR_CHOICE_MAP, - EMAILSETTINGS_IMAP_MAX_FOLDER_SIZE_CHOICES, - EMAILSETTINGS_OLD_NEW_OLD_FORWARD_ACTION_MAP, - EMAILSETTINGS_POP_ENABLE_FOR_CHOICE_MAP, - FILTER_ACTION_CHOICES, - FILTER_ACTION_LABEL_MAP, - FILTER_ADD_LABEL_ACTIONS, - FILTER_ADD_LABEL_TO_ARGUMENT_MAP, - FILTER_CATEGORY_CHOICE_MAP, - FILTER_CRITERIA_CHOICE_MAP, - FILTER_REMOVE_LABEL_ACTIONS, - FILTER_REMOVE_LABEL_TO_ARGUMENT_MAP, - FORM_RESPONSE_TIME_OBJECTS, - GMAIL_CATEGORY_LABELS, - GMAIL_SYSTEM_LABELS, - HEADER_ENCODE_PATTERN, - IMPORT_INSERT, - LABEL_COUNTS_FIELDS, - LABEL_COUNTS_FIELDS_LIST, - LABEL_DISPLAY_FIELDS_LIST, - LABEL_LABEL_LIST_VISIBILITY_CHOICE_MAP, - LABEL_MESSAGE_LIST_VISIBILITY_CHOICES, - LABEL_QUERY_REPLACEMENT_CHARACTERS, - LABEL_TYPE_SYSTEM, - LABEL_TYPE_USER, - MESSAGES_MAX_TO_KEYWORDS, - MESSAGE_TIME_QUERY_PATTERN, - PRINT_LABELS_TITLES, - SHOW_LABELS_DISPLAY_CHOICES, - SIG_REPLY_COMPACT, - SIG_REPLY_FORMAT, - SIG_REPLY_HTML, - SIG_REPLY_OPTIONS_MAP, - SIG_REPLY_TEMPLATE, - SMTPMSA_DISPLAY_FIELDS, - SMTPMSA_PORTS, - SMTPMSA_REQUIRED_FIELDS, - SMTPMSA_SECURITY_MODES, - SMTP_ADDRESS_HEADERS, - SMTP_DATE_HEADERS, - SMTP_HEADERS_MAP, - SMTP_NAME_ADDRESS_PATTERN, - VACATION_END_NOT_SPECIFIED, - VACATION_START_STARTED, - _convertLabelNamesToIds, - _decodeHeader, - _deleteInfoForwardingAddreses, - _draftImportInsertMessage, - _finalizeMessageSelectParameters, - _getLabelId, - _getLabelName, - _getLabelSet, - _getMessageSelectParameters, - _getPublishSettings, - _getSmimeIds, - _getUserGmailLabels, - _imapDefaults, - _initCSEKeyPairSkipObjects, - _initLabelNameMap, - _initMessageThreadParameters, - _initPublishSettings, - _mapFilterLabelIdsToNames, - _mapMessageQueryDates, - _popDefaults, - _printFilter, - _printShowCSEItems, - _processForwardingAddress, - _processMessagesThreads, - _processSendAs, - _processSignature, - _resetCSEKeyPairSkipObjects, - _setImap, - _setPop, - _showCSEItem, - _showFilter, - _showForward, - _showForwardingAddress, - _showImap, - _showPop, - _showSendAs, - _showVacation, - _stripCSEKeyPairSkipObjects, - _validateLabelList, - archiveMessages, - buildLabelPath, - checkLabelColor, - cleanLabelQuery, - createCSEKeyPair, - createFilter, - createForm, - createForwardingAddresses, - createLabel, - createLabelList, - createLabels, - createSmime, - createUpdateCSEIdentity, - createUpdateSendAs, - delegateTo, - deleteFilters, - deleteForwardingAddresses, - deleteInfoSendAs, - deleteLabel, - deleteLabelId, - deleteLabelIdList, - deleteLabelIds, - deleteLabelList, - deleteLabels, - deleteSmime, - draftMessage, - exportMessages, - exportMessagesThreads, - exportThreads, - findFormRequest, - forwardMessagesThreads, - getLabelAttributes, - getSendAsAttributes, - importMessage, - infoFilters, - infoForwardingAddresses, - insertMessage, - printShowCSEIdentities, - printShowCSEKeyPairs, - printShowDelegates, - printShowFilters, - printShowFormResponses, - printShowForms, - printShowForward, - printShowForwardingAddresses, - printShowGmailProfile, - printShowImap, - printShowLabels, - printShowLanguage, - printShowMessages, - printShowMessagesThreads, - printShowPop, - printShowSendAs, - printShowSignature, - printShowSmimes, - printShowThreads, - printShowVacation, - processCSEIdentity, - processCSEKeyPair, - processDelegates, - processMessages, - processThreads, - sendCreateDelegateNotification, - setForward, - setImap, - setLanguage, - setPop, - setSignature, - setVacation, - updateDelegates, - updateForm, - updateFormInfoRequest, - updateFormRequestUpdateMasks, - updateFormSettingsRequest, - updateLabelSettings, - updateLabelSettingsById, - updateLabels, - updateSmime, - watchGmail, -) -from gam.cmd.userop import ( # noqa: F401 # re-export - LICENSE_PREVIEW_TITLES, - LICENSE_PRODUCT_SKUIDS, - PROFILE_SHARING_CHOICE_MAP, - SHEET_DATETIME_RENDER_OPTIONS_MAP, - SHEET_DIMENSIONS_MAP, - SHEET_INSERT_DATA_OPTIONS_MAP, - SHEET_VALUE_INPUT_OPTIONS_MAP, - SHEET_VALUE_RENDER_OPTIONS_MAP, - SPREADSHEET_FIELDS_CHOICE_MAP, - SPREADSHEET_SHEETS_SUBFIELDS_CHOICE_MAP, - TOKENS_AGGREGATE_FIELDS_TITLES, - TOKENS_AGGREGATE_ORDERBY_CHOICE_MAP, - TOKENS_FIELDS_TITLES, - TOKENS_TITLE_MAP, - _addUserToGroups, - _createLicenses, - _deleteLicenses, - _deleteUserFromGroups, - _getSpreadsheetRangesValues, - _getUserGroupDomainCustomerId, - _getUserGroupOptionalDomainCustomerId, - _printShowTokens, - _setShowProfile, - _setUserGroupArgs, - _showUpdateValuesResponse, - _showValueRange, - _updateUserGroups, - _validateSubkeyRoleGetGroups, - _validateUserGetSpreadsheetIDs, - _writeLicenseAction, - addUserToGroups, - appendSheetRanges, - checkUserGroupMatchPattern, - checkUserInGroups, - clearSheetRanges, - commonClientIds, - createLicense, - createSheet, - deleteLicense, - deletePhoto, - deleteTokens, - deleteUserFromGroups, - deprovisionUser, - doPrintShowTokens, - getLicenseParameters, - getPhoto, - getProfilePhoto, - getUserPhoto, - infoPrintShowSheets, - printShowGroupTree, - printShowLookerStudioPermissions, - printShowSheetRanges, - printShowTokens, - printShowUserGroups, - printUserGroupsList, - processLookerStudioPermissions, - setProfile, - showProfile, - syncLicense, - syncUserWithGroups, - updateLicense, - updatePhoto, - updateSheetRanges, - updateSheets, - updateUserGroups, -) -from gam.cmd.notes import ( # noqa: F401 # re-export - Act, - Cmd, - Ent, - GET_NOTE_HTTP_ERROR_PATTERN, - Ind, - NOTES_COUNTS_MAP, - NOTES_FIELDS_CHOICE_MAP, - NOTES_ROLE_CHOICE_MAP, - NOTES_TIME_OBJECTS, - _assignNoteOwner, - _checkNoteUserRole, - _getMain, - _showNote, - _showNoteAttachments, - _showNoteListItems, - _showNotePermissions, - createNote, - createNotesACLs, - deleteInfoNotes, - deleteNotesACLs, - getNoteAttachments, - normalizeNoteName, - printShowNotes, -) -from gam.cmd.tasks import ( # noqa: F401 # re-export - Act, - Cmd, - Ent, - Ind, - TAGMANAGER_PARAMETERS, - TASKLIST_SKIP_OBJECTS, - TASKLIST_TIME_OBJECTS, - TASK_ORDERBY_CHOICE_MAP, - TASK_QUERY_STATE_MAP, - TASK_QUERY_TIME_MAP, - TASK_SKIP_OBJECTS, - TASK_STATUS_MAP, - TASK_TIME_OBJECTS, - _getMain, - _showTask, - _showTasklist, - getTaskAttribute, - getTaskListIDfromTitle, - getTaskLists, - getTaskMoveAttribute, - importTasklist, - printShowTagManagerAccounts, - printShowTagManagerContainers, - printShowTagManagerObjects, - printShowTagManagerPermissions, - printShowTagManagerTags, - printShowTagManagerWorkspaces, - printShowTasklists, - printShowTasks, - processTasklists, - processTasks, - verifyTasksServiceEnabled, -) -from gam.cmd.caa import ( # noqa: F401 # re-export - Act, - CAABuildBasicLevel, - CAABuildCondition, - CAABuildDevicePolicy, - CAABuildLevel, - CAABuildOsConstraints, - CAARoleErrorExit, - CAA_ALLOWED_DEVICE_MANAGEMENT_LEVELS_MAP, - CAA_ALLOWED_ENCRYPTIION_STATUS_MAP, - CAA_OS_TYPE_MAP, - Cmd, - Ent, - ISO3166_1_ALPHA_2_CODES, - Ind, - _getMain, - buildCAAServiceObject, - doCreateCAALevel, - doDeleteCAALevel, - doPrintShowCAALevels, - doUpdateCAALevel, - getAccessPolicy, - normalizeCAALevelName, - validateISO3166_1_alpha2_code, -) @@ -2516,6 +816,1704 @@ from util.batch import _showCount # noqa: E402 from util.batch import showCountCrOS # noqa: E402 from util.batch import showCountUser # noqa: E402 +# Command module re-exports for routing tables +from gam.cmd.oauth import ( # noqa: F401 # re-export + VALIDEMAIL_PATTERN, _getValidateLoginHint, getOAuthClientIDAndSecret, + getScopesFromUser, _localhost_to_ip, _waitForHttpClient, _waitForUserInput, + _GamOauthFlow, Credentials, doOAuthRequest, doOAuthCreate, exitIfNoOauth2Txt, + doOAuthDelete, doOAuthInfo, doOAuthUpdate, doOAuthRefresh, doOAuthExport, +) +from gam.cmd.project import ( # noqa: F401 # re-export + getCRMService, enableGAMProjectAPIs, doEnableAPIs, + _waitForSvcAcctCompletion, _grantRotateRights, + _createOauth2serviceJSON, _createClientSecretsOauth2service, + _getProjects, _checkProjectFound, convertGCPFolderNameToID, + PROJECTID_PATTERN, PROJECTID_FORMAT_REQUIRED, _checkProjectId, + PROJECTNAME_PATTERN, PROJECTNAME_FORMAT_REQUIRED, _checkProjectName, + _getSvcAcctInfo, _getAppInfo, _generateProjectSvcAcctId, + _getLoginHintProjectInfo, _getCurrentProjectId, + GAM_PROJECT_FILTER, PROJECTID_FILTER_REQUIRED, + PROJECTS_CREATESVCACCT_OPTIONS, PROJECTS_DELETESVCACCT_OPTIONS, + PROJECTS_PRINTSHOW_OPTIONS, + _getLoginHintProjects, _checkForExistingProjectFiles, + getCRMOrgId, doInfoCustomerId, doInfoGCPOrgId, getGCPOrgId, + doCreateGCPFolder, doCreateProject, doUseProject, doUpdateProject, + doDeleteProject, + PROJECT_TIMEOBJECTS, PROJECT_STATE_CHOICE_MAP, doPrintShowProjects, + doInfoCurrentProjectId, doCreateSvcAcct, doDeleteSvcAcct, + _getSvcAcctKeyProjectClientFields, checkServiceAccount, doCheckUpdateSvcAcct, + _getSAKeys, SVCACCT_KEY_TIME_OBJECTS, _showSAKeys, + SVCACCT_DISPLAY_FIELDS, SVCACCT_KEY_TYPE_CHOICE_MAP, doPrintShowSvcAccts, + _generatePrivateKeyAndPublicCert, _formatOAuth2ServiceData, + doProcessSvcAcctKeys, doCreateSvcAcctKeys, doUpdateSvcAcctKeys, + doReplaceSvcAcctKeys, doUploadSvcAcctKeys, doDeleteSvcAcctKeys, + doShowSvcAcctKeys, doCreateGCPServiceAccount, +) +from gam.cmd.audit import ( # noqa: F401 # re-export + _showMailboxMonitorRequestStatus, + doCreateMonitor, doDeleteMonitor, doShowMonitors, getAuditParameters, +) +from gam.cmd.reports import ( # noqa: F401 # re-export + CUSTOMER_REPORT_SERVICES, CUSTOMER_USER_CHOICES, + DISABLED_REASON_TIME_PATTERN, NL_SPACES_PATTERN, + REPORTS_PARAMETERS_SIMPLE_TYPES, + REPORT_ACTIVITIES_FILTER_MAP, REPORT_ACTIVITIES_TIME_OBJECTS, + REPORT_ACTIVITIES_UPPERCASE_EVENTS, REPORT_ALIASES_CHOICE_MAP, + REPORT_CHOICE_MAP, USER_REPORT_SERVICES, + _adjustTryDate, _checkDataRequiredServices, + convertReportMBtoGB, doReport, doReportUsage, + doReportUsageParameters, doWhatIs, getUserOrgUnits, +) +from gam.cmd.send_email import ( # noqa: F401 # re-export + ADDRESS_FIELDS_PRINT_ORDER, CASE_MARKERS, LC_PATTERN, PC_PATTERN, + RTL_PATTERN, RT_MARKERS, RT_PATTERN, SKIP_PATTERNS, UC_PATTERN, + TAG_ADDRESS_ARGUMENT_TO_FIELD_MAP, TAG_EMAIL_ARGUMENT_TO_FIELD_MAP, + TAG_EXTERNALID_ARGUMENT_TO_FIELD_MAP, TAG_FIELD_SUBFIELD_CHOICE_MAP, + TAG_GENDER_ARGUMENT_TO_FIELD_MAP, TAG_IM_ARGUMENT_TO_FIELD_MAP, + TAG_KEYWORD_ARGUMENT_TO_FIELD_MAP, TAG_LOCATION_ARGUMENT_TO_FIELD_MAP, + TAG_NAME_ARGUMENT_TO_FIELD_MAP, TAG_ORGANIZATION_ARGUMENT_TO_FIELD_MAP, + TAG_OTHEREMAIL_ARGUMENT_TO_FIELD_MAP, TAG_PHONE_ARGUMENT_TO_FIELD_MAP, + TAG_POSIXACCOUNT_ARGUMENT_TO_FIELD_MAP, TAG_RELATION_ARGUMENT_TO_FIELD_MAP, + TAG_REPLACE_PATTERN, TAG_SSHPUBLICKEY_ARGUMENT_TO_FIELD_MAP, + TAG_WEBSITE_ARGUMENT_TO_FIELD_MAP, + _getTagReplacement, _getTagReplacementFieldValues, _initTagReplacements, + _processTagReplacements, _substituteForUser, + doSendEmail, doSendReply, getRecipients, sendCreateUpdateUserNotification, +) +from gam.cmd.reseller import ( # noqa: F401 # re-export + ADDRESS_FIELDS_ARGUMENT_MAP, ANALYTIC_ENTITY_MAP, CHANNEL_ENTITY_MAP, + DELETION_TYPE_MAP, PLAN_NAME_MAP, PRINT_RESOLD_SUBSCRIPTIONS_TITLES, + RENEWAL_TYPE_MAP, SUBSCRIPTION_SKIP_OBJECTS, SUBSCRIPTION_TIME_OBJECTS, + _getResoldCustomerAttr, _getResoldSubscriptionAttr, + _showCustomerAddressPhoneNumber, _showSubscription, + doCreateResoldCustomer, doCreateResoldSubscription, + doDeleteResoldSubscription, doInfoResoldCustomer, doInfoResoldSubscription, + doPrintShowChannelCustomerEntitlements, doPrintShowChannelCustomers, + doPrintShowChannelItems, doPrintShowChannelOffers, + doPrintShowChannelProducts, doPrintShowChannelSKUs, + doPrintShowResoldSubscriptions, doUpdateResoldCustomer, + doUpdateResoldSubscription, getCustomerSubscription, + normalizeChannelCustomerID, normalizeChannelProductID, normalizeChannelResellerID, +) +from gam.cmd.analytics import ( # noqa: F401 # re-export + printShowAnalyticAccountSummaries, printShowAnalyticAccounts, + printShowAnalyticDatastreams, printShowAnalyticItems, printShowAnalyticProperties, +) +from gam.cmd.domains import ( # noqa: F401 # re-export + CUSTOMER_LICENSE_MAP, DOMAIN_ALIAS_PRINT_ORDER, DOMAIN_ALIAS_SKIP_OBJECTS, + DOMAIN_ALIAS_SORT_TITLES, DOMAIN_TIME_OBJECTS, + _printDomain, _showDomainAlias, + doCreateDomain, doCreateDomainAlias, doDeleteDomain, doDeleteDomainAlias, + doInfoDomainAlias, doPrintShowDomainAliases, doUpdateDomain, +) +from gam.cmd.customer import ( # noqa: F401 # re-export + DOMAIN_PRINT_ORDER, DOMAIN_SKIP_OBJECTS, DOMAIN_SORT_TITLES, + PRINT_PRIVILEGES_FIELDS, + _getCustomerId, _getCustomerIdNoC, _getCustomersCustomerIdNoC, + _getCustomersCustomerIdWithC, _getDomainList, _showCustomerLicenseInfo, + _showDomain, doInfoCustomer, doInfoDomain, doInfoInstance, + doPrintShowDomains, doUpdateCustomer, setTrueCustomerId, +) +from gam.cmd.admin import ( # noqa: F401 # re-export + ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP, ADMIN_CONDITION_CHOICE_MAP, + ADMIN_SCOPE_TYPE_CHOICE_MAP, ALL_ASSIGNEE_TYPES, + NONSECURITY_GROUP_CONDITION, PRINT_ADMIN_FIELDS, + PRINT_ADMIN_ROLES_FIELDS, PRINT_ADMIN_TITLES, SECURITY_GROUP_CONDITION, + _listPrivileges, _showAdminRole, + doCreateAdmin, doCreateUpdateAdminRoles, doDeleteAdmin, doDeleteAdminRole, + doInfoPrintShowAdminRoles, doPrintShowAdmins, doPrintShowPrivileges, + getRoleId, makeRoleIdNameMap, role_from_roleid, roleid_from_role, +) +from gam.cmd.datatransfer import ( # noqa: F401 # re-export + DATA_TRANSFER_SORT_TITLES, DATA_TRANSFER_STATUS_MAP, + DRIVE_AND_DOCS_APP_NAME, GOOGLE_LOOKER_STUDIO_APP_NAME, + PRIVACY_LEVEL_CHOICE_MAP, SERVICE_NAME_CHOICE_MAP, + _convertTransferAppIDtoName, _showTransfer, _validateTransferAppName, + doCreateDataTransfer, doInfoDataTransfer, doPrintShowDataTransfers, + doShowTransferApps, getTransferApplications, +) +from gam.cmd.orgunits import ( # noqa: F401 # re-export + ALIAS_TARGET_TYPES, ORG_ARGUMENT_TO_FIELD_MAP, ORG_FIELDS_WITH_CRS_NLS, + ORG_FIELD_INFO_ORDER, ORG_FIELD_PRINT_ORDER, ORG_ITEMS_FIELD_MAP, + ORG_UNIT_SELECTOR_FIELD, PRINT_ORGS_DEFAULT_FIELDS, + PRINT_OUS_SELECTOR_CHOICES, + _batchMoveCrOSesToOrgUnit, _batchMoveUsersToOrgUnit, + _doDeleteOrgs, _doInfoOrgs, _doUpdateOrgs, _getOrgUnits, + checkOrgUnitPathExists, doCheckOrgUnit, doCreateOrg, + doDeleteOrg, doDeleteOrgs, doInfoOrg, doInfoOrgs, + doPrintOrgs, doShowOrgTree, doUpdateOrg, doUpdateOrgs, + getOrgUnitIdToPathMap, +) +from gam.cmd.aliases import ( # noqa: F401 # re-export + _addUserAliases, deleteUsersAliases, doCreateUpdateAliases, + doDeleteAliases, doInfoAliases, doPrintAddresses, doPrintAliases, + doRemoveAliases, getUserGroupDomainQueryFilters, infoAliases, + initUserGroupDomainQueryFilters, makeUserGroupDomainQueryFilters, + userFilters, +) +from gam.cmd.contacts import ( # noqa: F401 # re-export + CONTACTS_ORDERBY_CHOICE_MAP, CONTACTS_PROJECTION_CHOICE_MAP, + CONTACT_ADDITIONAL_NAME, CONTACT_ADDRESSES, CONTACT_BILLING_INFORMATION, + CONTACT_BIRTHDAY, CONTACT_CALENDARS, CONTACT_DIRECTORY_SERVER, + CONTACT_EMAILS, CONTACT_EVENTS, CONTACT_EXTERNALIDS, CONTACT_FAMILY_NAME, + CONTACT_FIELDS_WITH_CRS_NLS, CONTACT_GENDER, CONTACT_GIVEN_NAME, + CONTACT_HOBBIES, CONTACT_ID, CONTACT_IMS, CONTACT_INITIALS, + CONTACT_JOTS, CONTACT_JSON, CONTACT_LANGUAGE, CONTACT_LOCATION, + CONTACT_MAIDENNAME, CONTACT_MILEAGE, CONTACT_NAME, CONTACT_NAME_PREFIX, + CONTACT_NAME_SUFFIX, CONTACT_NICKNAME, CONTACT_NOTES, CONTACT_OCCUPATION, + CONTACT_ORGANIZATIONS, CONTACT_PHONES, CONTACT_PRIORITY, + CONTACT_RELATIONS, CONTACT_SELECT_ARGUMENTS, CONTACT_SENSITIVITY, + CONTACT_SHORTNAME, CONTACT_SUBJECT, CONTACT_TIME_OBJECTS, + CONTACT_UPDATED, CONTACT_USER_DEFINED_FIELDS, CONTACT_WEBSITES, + ContactsManager, + PEOPLE_ADDRESSES, PEOPLE_ADD_GROUPS, PEOPLE_ADD_GROUPS_LIST, + PEOPLE_BIOGRAPHIES, PEOPLE_BIRTHDAYS, PEOPLE_CALENDAR_URLS, + PEOPLE_CLIENT_DATA, PEOPLE_COVER_PHOTOS, + PEOPLE_DIRECTORY_MERGE_SOURCES_CHOICE_MAP, + PEOPLE_DIRECTORY_SOURCES_CHOICE_MAP, + PEOPLE_EMAIL_ADDRESSES, PEOPLE_EVENTS, PEOPLE_EXTERNAL_IDS, + PEOPLE_FILE_ASES, PEOPLE_GENDERS, PEOPLE_GROUPS, PEOPLE_GROUPS_LIST, + PEOPLE_GROUP_CLIENT_DATA, PEOPLE_GROUP_NAME, PEOPLE_IM_CLIENTS, + PEOPLE_INTERESTS, PEOPLE_JSON, PEOPLE_LOCALES, PEOPLE_LOCATIONS, + PEOPLE_MEMBERSHIPS, PEOPLE_METADATA, PEOPLE_MISC_KEYWORDS, + PEOPLE_MISC_KEYWORDS_BILLING_INFORMATION, + PEOPLE_MISC_KEYWORDS_DIRECTORY_SERVER, PEOPLE_MISC_KEYWORDS_JOT, + PEOPLE_MISC_KEYWORDS_MILEAGE, PEOPLE_MISC_KEYWORDS_PRIORITY, + PEOPLE_MISC_KEYWORDS_SENSITIVITY, PEOPLE_MISC_KEYWORDS_SUBJECT, + PEOPLE_NAMES, PEOPLE_NAMES_FAMILY_NAME, PEOPLE_NAMES_GIVEN_NAME, + PEOPLE_NAMES_HONORIFIC_PREFIX, PEOPLE_NAMES_HONORIFIC_SUFFIX, + PEOPLE_NAMES_MIDDLE_NAME, PEOPLE_NAMES_PHONETIC_FAMILY_NAME, + PEOPLE_NAMES_PHONETIC_GIVEN_NAME, PEOPLE_NAMES_PHONETIC_HONORIFIC_PREFIX, + PEOPLE_NAMES_PHONETIC_HONORIFIC_SUFFIX, + PEOPLE_NAMES_PHONETIC_MIDDLE_NAME, PEOPLE_NAMES_UNSTRUCTURED_NAME, + PEOPLE_NICKNAMES, PEOPLE_NICKNAMES_INITIALS, + PEOPLE_NICKNAMES_MAIDENNAME, PEOPLE_NICKNAMES_NICKNAME, + PEOPLE_NICKNAMES_SHORTNAME, PEOPLE_OCCUPATIONS, PEOPLE_ORGANIZATIONS, + PEOPLE_PHONE_NUMBERS, PEOPLE_PHOTOS, PEOPLE_READ_SOURCES_CHOICE_MAP, + PEOPLE_RELATIONS, PEOPLE_REMOVE_GROUPS, PEOPLE_REMOVE_GROUPS_LIST, + PEOPLE_SIP_ADDRESSES, PEOPLE_SKILLS, PEOPLE_UPDATE_TIME, + PEOPLE_URLS, PEOPLE_USER_DEFINED, PeopleManager, + _clearUpdateContacts, _getContactEntityList, _getContactFieldsList, + _getContactQueryAttributes, _getCreateContactReturnOptions, + _initContactQueryAttributes, _showContact, + clearEmailAddressMatches, countLocalContactSelects, + dedupEmailAddressMatches, doClearDomainContacts, + doCreateDomainContact, doDedupDomainContacts, doDeleteDomainContacts, + doInfoDomainContacts, doPrintShowDomainContacts, doUpdateDomainContacts, + localContactSelects, normalizeContactGroupResourceName, + normalizeContactId, normalizeOtherContactsResourceName, + normalizePeopleResourceName, queryContacts, +) +from gam.cmd.people import ( # noqa: F401 # re-export + CONTACTGROUPS_MYCONTACTS_ID, + CONTACTGROUPS_MYCONTACTS_NAME, + PEOPLE_CONTACTGROUPS_DEFAULT_FIELDS, + PEOPLE_CONTACTGROUPS_FIELDS_CHOICE_MAP, + PEOPLE_CONTACTS_DEFAULT_FIELDS, + PEOPLE_CONTACT_DEPRECATED_SELECT_ARGUMENTS, + PEOPLE_CONTACT_OBJECT_KEYS, + PEOPLE_CONTACT_SELECT_ARGUMENTS, + PEOPLE_FIELDS_CHOICE_MAP, + PEOPLE_GROUP_TIME_OBJECTS, + PEOPLE_ORDERBY_CHOICE_MAP, + PEOPLE_OTHERCONTACT_SELECT_ARGUMENTS, + PEOPLE_OTHER_CONTACTS_FIELDS_CHOICE_MAP, + PEOPLE_PROFILE_SOURCETYPE_CHOICE_MAP, + _clearUpdatePeopleContacts, + _getPeopleContactEntityList, + _getPeopleContactQueryAttributes, + _getPeopleOtherContactEntityList, + _getPeopleOtherContactQueryAttributes, + _getPeopleOtherContacts, + _getPersonFields, + _infoPeople, + _initPeopleContactQueryAttributes, + _initPeopleOtherContactQueryAttributes, + _initPersonMetadataParameters, + _normalizeContactGroupMetadata, + _printContactGroup, + _printPerson, + _printPersonEntityList, + _printShowPeople, + _processPeopleContactPhotos, + _processPersonMetadata, + _showContactGroup, + _showPerson, + addContactGroupNamesToContacts, + clearPeopleEmailAddressMatches, + clearUserPeopleContacts, + copyUserPeopleOtherContacts, + countLocalPeopleContactSelects, + createUserPeopleContact, + createUserPeopleContactGroup, + dedupPeopleEmailAddressMatches, + dedupReplaceDomainUserPeopleContacts, + deleteUserPeopleContactGroups, + deleteUserPeopleContactPhoto, + deleteUserPeopleContacts, + doDeleteDomainContactPhoto, + doGetDomainContactPhoto, + doInfoDomainPeopleContacts, + doInfoDomainPeopleProfile, + doPrintShowDomainPeopleContacts, + doPrintShowDomainPeopleProfiles, + doUpdateDomainContactPhoto, + getPeopleContactGroupsInfo, + getPersonFieldsList, + getUserPeopleContactPhoto, + infoUserPeopleContactGroups, + infoUserPeopleContacts, + localPeopleContactSelects, + printShowUserPeopleContactGroups, + printShowUserPeopleContacts, + printShowUserPeopleOtherContacts, + printShowUserPeopleProfiles, + processUserPeopleOtherContacts, + queryPeopleContacts, + queryPeopleOtherContacts, + replaceDomainPeopleEmailAddressMatches, + updateUserPeopleContactGroup, + updateUserPeopleContactPhoto, + updateUserPeopleContacts, + validatePeopleContactGroup, + validatePeopleContactGroupsList, +) +from gam.cmd.delegates import ( # noqa: F401 # re-export + _getDelegateName, + _validateUserGetDelegateList, + printShowContactDelegates, + processContactDelegates, +) +from gam.cmd.cros import ( # noqa: F401 # re-export + CROS_ACTION_CHOICE_MAP, + CROS_ACTION_NAME_MAP, + CROS_ACTIVITY_LIST_FIELDS_CHOICE_MAP, + CROS_ACTIVITY_TIME_OBJECTS, + CROS_BASIC_FIELDS_LIST, + CROS_COMMAND_CHOICE_MAP, + CROS_COMMAND_FINAL_STATES, + CROS_COMMAND_TIME_OBJECTS, + CROS_DOIT_REQUIRED_COMMANDS, + CROS_END_ARGUMENTS, + CROS_ENTITIES_MAP, + CROS_FIELDS_CHOICE_MAP, + CROS_FIELDS_WITH_CRS_NLS, + CROS_INDEXED_TITLES, + CROS_KIOSK_COMMANDS, + CROS_LIST_FIELDS_CHOICE_MAP, + CROS_ORDERBY_CHOICE_MAP, + CROS_SCALAR_PROPERTY_PRINT_ORDER, + CROS_START_ARGUMENTS, + CROS_TELEMETRY_FIELDS_CHOICE_MAP, + CROS_TELEMETRY_LIST_FIELDS, + CROS_TELEMETRY_LIST_FIELDS_CHOICE_MAP, + CROS_TELEMETRY_SCALAR_FIELDS, + CROS_TELEMETRY_SCALAR_FIELDS_SET, + CROS_TELEMETRY_TIME_OBJECTS, + CROS_TIME_OBJECTS, + CROS_TPM_FIXED_VERSIONS, + CROS_TPM_VULN_VERSIONS, + UPDATE_CROS_ARGUMENT_TO_PROPERTY_MAP, + _computeDVRstorageFreePercentage, + _filterActiveTimeRanges, + _filterBasicList, + _filterCPUStatusReports, + _filterDeviceFiles, + _filterRecentUsers, + _filterScreenshotFiles, + _filterSystemRamFreeReports, + _getFilterDateTime, + _selectDeviceFiles, + checkTPMVulnerability, + displayCrOSCommandResult, + doGetCommandResultCrOSDevices, + doGetCrOSDeviceFiles, + doInfoCrOSDevices, + doInfoPrintShowCrOSTelemetry, + doIssueCommandCrOSDevices, + doPrintCrOSActivity, + doPrintCrOSDevices, + doPrintCrOSEntity, + doUpdateCrOSDevices, + getCfgCrOSEntities, + getCommandResultCrOSDevices, + getCrOSDeviceEntity, + getCrOSDeviceFiles, + getDeviceFilesEntity, + infoCrOSDevices, + issueCommandCrOSDevices, + substituteQueryTimes, + updateCrOSDevices, + writeCrOSCommandResults, +) +from gam.cmd.browsers import ( # noqa: F401 # re-export + BROWSER_ANNOTATED_FIELDS_LIST, BROWSER_DEVICEID_ANNOTATED_FIELDS, + BROWSER_FIELDS_CHOICE_MAP, BROWSER_FULL_ACCESS_FIELDS, + BROWSER_ORDERBY_CHOICE_MAP, BROWSER_TIME_OBJECTS, + BROWSER_TOKEN_FIELDS_CHOICE_MAP, BROWSER_TOKEN_TIME_OBJECTS, + CHROMEPROFILECOMMAND_TIME_OBJECTS, CHROMEPROFILE_FIELDS_CHOICE_MAP, + CHROMEPROFILE_ORDERBY_CHOICE_MAP, CHROMEPROFILE_TIME_OBJECTS, + UPDATE_BROWSER_ARGUMENT_TO_PROPERTY_MAP, + _getChromeProfileName, _getChromeProfileNameEntityForCommand, + _getChromeProfileNameList, _getChromeProfileNameParameters, + _initChromeProfileNameParameters, _printChromeProfileCommand, + _showBrowser, _showBrowserToken, _showChromeProfile, + _showChromeProfileCommand, doCreateBrowserToken, + doCreateChromeProfileCommand, doDeleteBrowsers, doDeleteChromeProfile, + doInfoBrowsers, doInfoChromeProfile, doInfoChromeProfileCommand, + doMoveBrowsers, doPrintShowBrowserTokens, doPrintShowBrowsers, + doPrintShowChromeProfileCommands, doPrintShowChromeProfiles, + doRevokeBrowserToken, doUpdateBrowsers, +) +from gam.cmd.chat import ( # noqa: F401 # re-export +CHAT_EMOJI_SHOW_CREATED_BY_CHOICE_MAP, CHAT_MEMBERS_FIELDS_CHOICE_MAP, + CHAT_MEMBER_ROLE_MAP, CHAT_MEMBER_TYPE_MAP, + CHAT_MESSAGES_FIELDS_CHOICE_MAP, CHAT_MESSAGES_ORDERBY_CHOICE_MAP, + CHAT_MESSAGE_REPLY_OPTION_MAP, CHAT_ROLE_ENTITY_TYPE_MAP, + CHAT_SEARCHMESSAGES_ORDERBY_CHOICE_MAP, + CHAT_SEARCHMESSAGES_VIEW_CHOICE_MAP, CHAT_SECTION_POSITION, + CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP, CHAT_SPACES_FIELDS_CHOICE_MAP, + CHAT_SPACE_MIN_MAX_MEMBERS, CHAT_SPACE_PREDEFINED_PERMS_MAP, + CHAT_SPACE_ROLE_PERMISSIONS_MAP, CHAT_SPACE_TYPE_MAP, + CHAT_SYNC_PREVIEW_TITLES, CHAT_TIME_OBJECTS, + CHAT_UPDATE_SPACE_PERMISSIONS_MAP, CHAT_UPDATE_SPACE_TYPE_MAP, + _chkChatAdminAccess, _cleanChatMessage, _cleanChatSpace, + _deleteChatMembers, _getChatAdminAccess, _getChatMemberEmail, + _getChatPageMessage, _getChatSenderEmail, _getChatSpaceDisplayName, + _getChatSpaceListParms, _getChatSpaceMembers, _getChatSpaceSearchParms, + _getValidateEmojiName, _printChatItem, _showChatItem, + buildChatServiceObject, createChatEmoji, createChatMember, + createChatMessage, createChatSpace, createUpdateChatSection, + deleteChatEmoji, deleteChatMessage, deleteChatSection, + deleteChatSpace, deleteUpdateChatMember, doCreateChatMessage, + doDeleteChatMessage, doInfoChatEvent, doInfoChatMember, + doInfoChatMessage, doInfoChatSpace, doPrintShowChatMembers, + doPrintShowChatSpaces, doSetupChat, doUpdateChatMessage, + exitIfChatNotConfigured, getChatSectionName, getChatSpaceParameters, + getEmojiName, getSpaceName, getGroupMemberID, getUserMemberID, + infoChatEmoji, infoChatEvent, infoChatMember, infoChatMessage, + infoChatSpace, infoChatSpaceDM, moveShowChatSectionItem, + normalizeUserMember, printShowChatEmojis, printShowChatEvents, + printShowChatMembers, printShowChatMessages, + printShowChatSearchMessages, printShowChatSectionItems, + printShowChatSections, printShowChatSpaces, setupChatURL, + syncChatMembers, trimChatMessageIfRequired, updateChatMessage, + updateChatSpace, +) +from gam.cmd.meet import ( # noqa: F401 # re-export + MEET_CONFERENCE_TIME_OBJECTS, MEET_SPACE_ACCESSTYPE_CHOICES, + MEET_SPACE_ARTIFACT_SUB_OPTIONS, MEET_SPACE_ENTRYPOINTACCESS_CHOICES_MAP, + MEET_SPACE_OPTIONS_MAP, MEET_SPACE_RESTRICTIONS_CHOICES_MAP, + _getMeetPageMessage, _getMeetSpaceParameters, _printMeetConfItem, + _printShowMeetItems, _showMeetConfItem, _showMeetItem, + buildMeetServiceObject, createMeetSpace, endMeetConference, + infoMeetSpace, printShowMeetConferences, printShowMeetParticipants, + printShowMeetRecordings, printShowMeetTranscripts, updateMeetSpace, +) +from gam.cmd.chromepolicies import ( # noqa: F401 # re-export + CHROME_IMAGE_SCHEMAS_MAP, CHROME_POLICY_INDEXED_TITLES, + CHROME_POLICY_SCHEMA_FIELDS_CHOICE_MAP, CHROME_POLICY_SHOW_ALL, + CHROME_POLICY_SHOW_CHOICE_MAP, CHROME_POLICY_SHOW_DIRECT, + CHROME_POLICY_SHOW_INHERITED, CHROME_SCHEMA_SPECIAL_CASES, + CHROME_TARGET_VERSION_CHANNEL_MINUS_PATTERN, CHROME_TARGET_VERSION_PATTERN, + SCHEMA_TYPE_MESSAGE_MAP, + _getChromePolicySchema, _getChromePolicySchemaName, + _getOrgunitsOrgUnitIdPath, _getPolicyGroupTarget, _getPolicyOrgUnitTarget, + _showChromePolicySchema, _showChromePolicySchemaStd, + checkPolicyArgs, commonprefix, doCreateChromeNetwork, + doCreateChromePolicyImage, doDeleteChromeNetwork, doDeleteChromePolicy, + doInfoChromePolicySchemas, doInfoChromePolicySchemasStd, + doPrintShowChromePolicies, doPrintShowChromePolicySchemas, + doShowChromePolicySchemasStd, doUpdateChromePolicy, + setPolicyKVList, simplifyChromeSchemaDisplay, simplifyChromeSchemaUpdate, + updatePolicyRequests, +) +from gam.cmd.cidevices import ( # noqa: F401 # re-export + DEVICEUSER_FIELDS_CHOICE_MAP, DEVICE_ACTION_CHOICES, + DEVICE_FIELDS_CHOICE_MAP, DEVICE_MISSING_ACTION_MAP, + DEVICE_ORDERBY_CHOICE_MAP, DEVICE_TIME_OBJECTS, DEVICE_TYPE_MAP, + DEVICE_USERNAME_CLIENT_STATE_PATTERN, DEVICE_USERNAME_FORMAT_REQUIRED, + DEVICE_USERNAME_PATTERN, DEVICE_USER_ACTION_CHOICES, + DEVICE_USER_COMPLIANCE_STATE_CHOICE_MAP, + DEVICE_USER_CUSTOM_VALUE_TYPE_CHOICE_MAP, + DEVICE_USER_HEALTH_SCORE_CHOICE_MAP, + DEVICE_USER_MANAGED_STATE_CHOICE_MAP, DEVICE_VIEW_CHOICE_MAP, + _makeDeviceId, _performCIDeviceAction, _performCIDeviceUserAction, + buildGAPICIDeviceServiceObject, doApproveCIDeviceUser, + doBlockCIDeviceUser, doCancelWipeCIDevice, doCancelWipeCIDeviceUser, + doCreateCIDevice, doDeleteCIDevice, doDeleteCIDeviceUser, + doInfoCIDevice, doInfoCIDeviceUser, doInfoCIDeviceUserState, + doPrintCIDeviceUsers, doPrintCIDevices, doSyncCIDevices, + doUpdateCIDevice, doUpdateCIDeviceUser, doUpdateCIDeviceUserState, + doWipeCIDevice, doWipeCIDeviceUser, getCIDeviceEntity, + getCIDeviceUserEntity, getUpdateDeleteCIDeviceOptions, +) +from gam.cmd.printers import ( # noqa: F401 # re-export + CHROME_APPS_TIME_OBJECTS, CHROME_APPS_TYPE_CHOICES, + CREATE_PRINTER_JSON_SKIP_FIELDS, ORGUNIT_ENTITIES_MAP, + PRINTER_FIELDS_CHOICE_MAP, PRINTER_TIME_OBJECTS, + UPDATE_PRINTER_JSON_SKIP_FIELDS, + _checkPrinterInheritance, _getPrinterAttributes, _getPrinterEntity, + _getPrinterID, _showPrinter, doCreatePrinter, doDeletePrinter, + doInfoPrinter, doPrintShowPrinterModels, doPrintShowPrinters, + doUpdatePrinter, isolatePrinterID, +) +from gam.cmd.chromeapps import ( # noqa: F401 # re-export + CHROME_APPS_ORDERBY_CHOICE_MAP, CHROME_APPS_TITLES, + CHROME_APP_DEVICES_APPTYPE_CHOICE_MAP, + CHROME_APP_DEVICES_ORDERBY_CHOICE_MAP, CHROME_APP_DEVICES_TITLES, + CHROME_AUE_TITLES, CHROME_DEVICE_COUNTS_MODE_CHOICES, + CHROME_DEVICE_COUNTS_MODE_CSV_TITLE, CHROME_DEVICE_COUNTS_MODE_FUNCTIONS, + CHROME_HISTORY_ENTITY_CHOICE_MAP, CHROME_NEEDSATTN_TITLES, + CHROME_VERSIONHISTORY_ITEMS, CHROME_VERSIONHISTORY_ORDERBY_CHOICE_MAP, + CHROME_VERSIONHISTORY_TIMEOBJECTS, CHROME_VERSIONHISTORY_TITLES, + CHROME_VERSIONS_TITLES, MOBILE_ACTION_CHOICE_MAP, + _getPrintChromeGetting, doInfoChromeApp, doPrintChromeSnValidity, + doPrintShowChromeAppDevices, doPrintShowChromeApps, + doPrintShowChromeAues, doPrintShowChromeDeviceCounts, + doPrintShowChromeHistory, doPrintShowChromeNeedsAttn, + doPrintShowChromeVersions, getPlatformChannelMap, getRelativeMilestone, +) +from gam.cmd.mobile import ( # noqa: F401 # re-export + GROUP_ALIAS_ATTRIBUTES, GROUP_ASSIST_CONTENT_ATTRIBUTES, + GROUP_ASSIST_CONTENT_CHOICES, GROUP_ATTRIBUTES_SET, + GROUP_BASIC_ATTRIBUTES, GROUP_DEPRECATED_ATTRIBUTES, + GROUP_DISCOVER_ATTRIBUTES, GROUP_DISCOVER_CHOICES, + GROUP_FIELDS_WITH_CRS_NLS, GROUP_MERGED_ATTRIBUTES, + GROUP_MERGED_ATTRIBUTES_PRINT_ORDER, GROUP_MERGED_TO_COMPONENT_MAP, + GROUP_MODERATE_CONTENT_ATTRIBUTES, GROUP_MODERATE_CONTENT_CHOICES, + GROUP_MODERATE_MEMBERS_ATTRIBUTES, GROUP_MODERATE_MEMBERS_CHOICES, + GROUP_SETTINGS_ATTRIBUTES, MOBILE_FIELDS_CHOICE_MAP, + MOBILE_ORDERBY_CHOICE_MAP, MOBILE_TIME_OBJECTS, + _getMobileDeviceUser, _getMobileFieldsArguments, + _getUpdateDeleteMobileOptions, _initMobileFieldsParameters, + doDeleteMobileDevices, doInfoMobileDevices, doPrintMobileDevices, + doUpdateMobileDevices, getMobileDeviceEntity, +) +from gam.cmd.groups import ( # noqa: F401 # re-export +ALL_GROUP_MEMBER_TYPES, CIGROUP_FIELDS_CHOICE_MAP, + CIGROUP_FIELDS_WITH_CRS_NLS, CIGROUP_FULL_FIELDS, + CIGROUP_INFO_ORDER, CIGROUP_PRINT_ORDER, CIGROUP_TIME_OBJECTS, + GROUPMEMBERS_DEFAULT_FIELDS, GROUPMEMBERS_FIELDS_CHOICE_MAP, + GROUPMEMBERS_SORT_FIELDS, GROUP_ACCESS_TYPE_CHOICE_MAP, + GROUP_CIGROUP_ENTITYTYPE_MAP, GROUP_CIGROUP_FIELDS_MAP, + GROUP_FIELDS_CHOICE_MAP, GROUP_INFO_PRINT_ORDER, + GROUP_JSON_SKIP_FIELDS, GROUP_MEMBER_TYPES_MAP, GROUP_PREVIEW_TITLES, + GroupIsAbuseOrPostmaster, INFO_GROUPMEMBERS_FIELDS, + INFO_GROUP_OPTIONS, MEMBEROPTION_DISPLAYMATCH, + MEMBEROPTION_GETDELIVERYSETTINGS, MEMBEROPTION_INCLUDEDERIVEDMEMBERSHIP, + MEMBEROPTION_ISARCHIVED, MEMBEROPTION_ISSUSPENDED, + MEMBEROPTION_MATCHPATTERN, MEMBEROPTION_MEMBERNAMES, + MEMBEROPTION_NODUPLICATES, MEMBEROPTION_RECURSIVE, MEMBERS_TITLES, + UPDATE_GROUP_SUBCMDS, _checkCIMemberMatch, _checkMemberMatch, + _showCIGroup, addJsonGroupParents, addMemberInfoToRow, + checkGroupMatchPatterns, checkGroupShowOwnedBy, checkReplyToCustom, + clearUnneededGroupMatchPatterns, doCreateGroup, doDeleteGroups, + doInfoGroupMembers, doInfoGroups, doPrintGroupMembers, doPrintGroups, + doPrintShowGroupTree, doShowGroupMembers, doUpdateGroups, + finalizeIPSGMGroupRolesMemberDisplayOptions, finalizeInternalDomains, + getGroupAllowExternalMembers, getGroupAttrProperties, getGroupAttrValue, + getGroupFilters, getGroupMatchPatterns, getGroupMemberTypes, + getGroupMembers, getGroupMembersEntityList, getGroupParents, + getGroupRoles, getIPSGMGroupRolesMemberDisplayOptions, + getMemberMatchOptions, getPGGroupRolesMemberDisplayOptions, + getSettingsFromGroup, getSyncOperation, groupFilters, infoGroupMembers, + infoGroups, initIPSGMGroupMemberDisplayOptions, initMemberOptions, + mapCIGroupFieldNames, mapCIGroupMemberFieldNames, + mapGroupEmailForSettings, printGroupParents, setMemberDisplaySortTitles, + setMemberDisplayTitles, showGroupParents, + updateFieldsForGroupMatchPatterns, verifyGroupPrimaryEmail, +) +from gam.cmd.cigroups import ( # noqa: F401 # re-export +ALL_CIGROUP_MEMBER_TYPES, CIGROUPMEMBERS_DEFAULT_FIELDS, + CIGROUPMEMBERS_FIELDS_CHOICE_MAP, CIGROUPMEMBERS_SORT_FIELDS, + CIGROUPMEMBERS_TIME_OBJECTS, CIGROUP_MEMBER_TYPES_MAP, + CIPOLICY_ADDITIONAL_WARNINGS, CIPOLICY_TIME_OBJECTS, + _checkPoliciesWithDASA, _cleanPolicy, _filterPolicies, + _getCIListGroupMembersArgs, _getPolicyAppNameFromId, _showPolicies, + _showPolicy, checkCIGroupShowOwnedBy, doCreateCIGroup, + doCreateUpdateCIPolicy, doDeleteCIGroups, doDeleteCIPolicies, + doInfoCIGroupMembers, doInfoCIGroups, doInfoCIPolicies, + doPrintCIGroupMembers, doPrintCIGroups, doPrintShowCIPolicies, + doShowCIGroupMembers, doUpdateCIGroups, getCIGroupMemberTypes, + getCIGroupMembers, getCIGroupMembersEntityList, + getCIGroupTransitiveMembers, infoCIGroupMembers, + updateFieldsForCIGroupMatchPatterns, +) +from gam.cmd.licenses import ( # noqa: F401 # re-export + doPrintLicenses, doShowLicenses, +) +from gam.cmd.alerts import ( # noqa: F401 # re-export + ALERT_FEEDBACK_ORDERBY_CHOICE_MAP, ALERT_ORDERBY_CHOICE_MAP, + ALERT_TIME_OBJECTS, ALERT_TYPE_MAP, _showAlert, _showAlertFeedback, + _showAlertSettings, doClearAlertSettings, doCreateAlertFeedback, + doDeleteOrUndeleteAlert, doInfoAlert, doPrintShowAlertFeedback, + doPrintShowAlerts, doShowAlertSettings, doUpdateAlertSettings, +) +from gam.cmd.resources import ( # noqa: F401 # re-export + BUILDINGS_FIELDS_CHOICE_MAP, BUILDINGS_SORT_TITLES, + BUILDING_ADDRESS_PRINT_ORDER, FEATURE_FIELDS_CHOICE_MAP, + RESOURCE_ADDTL_FIELDS, RESOURCE_ALL_FIELDS, RESOURCE_CATEGORY_MAP, + RESOURCE_DFLT_FIELDS, RESOURCE_FIELDS_CHOICE_MAP, + RESOURCE_FIELDS_WITH_CRS_NLS, + _doDeleteResourceCalendars, _doInfoResourceCalendars, + _doUpdateResourceCalendars, _getBuildingAttributes, + _getBuildingByNameOrId, _getBuildingNameById, _getFeatureAttributes, + _getResourceACLsCalSettings, _getResourceCalendarAttributes, + _makeBuildingIdNameMap, _showBuilding, _showResource, + doCreateBuilding, doCreateFeature, doCreateResourceCalendar, + doDeleteBuilding, doDeleteFeature, doDeleteResourceCalendar, + doDeleteResourceCalendars, doInfoBuilding, doInfoResourceCalendar, + doInfoResourceCalendars, doPrintShowBuildings, doPrintShowFeatures, + doPrintShowResourceCalendars, doUpdateBuilding, doUpdateFeature, + doUpdateResourceCalendar, doUpdateResourceCalendars, + updateAutoAcceptInvitations, +) +from gam.cmd.calendar import ( # noqa: F401 # re-export + ACL_SCOPE_CHOICES, CALENDAR_ACL_ROLES_MAP, + CALENDAR_ATTENDEE_OPTIONAL_CHOICE_MAP, + CALENDAR_ATTENDEE_STATUS_CHOICE_MAP, + CALENDAR_EVENT_MAX_COLOR_INDEX, CALENDAR_EVENT_MIN_COLOR_INDEX, + CALENDAR_EVENT_SENDUPDATES_CHOICE_MAP, + CALENDAR_EVENT_STATUS_CHOICES, CALENDAR_EVENT_TRANSPARENCY_CHOICES, + CALENDAR_EVENT_VISIBILITY_CHOICES, + CALENDAR_MAX_COLOR_INDEX, CALENDAR_MIN_COLOR_INDEX, + CALENDAR_SETTINGS_FIELDS_CHOICE_MAP, + EVENT_ATTACHMENTS_SUBFIELDS_CHOICE_MAP, + EVENT_ATTENDEES_SUBFIELDS_CHOICE_MAP, + EVENT_CONFERENCEDATA_SUBFIELDS_CHOICE_MAP, + EVENT_CREATOR_SUBFIELDS_CHOICE_MAP, EVENT_FIELDS_CHOICE_MAP, + EVENT_FOCUSTIME_SUBFIELDS_CHOICE_MAP, EVENT_INDEXED_TITLES, + EVENT_JSONATTENDEES_SUBFIELD_CLEAR_FIELDS, EVENT_JSON_CLEAR_FIELDS, + EVENT_JSON_INSERT_CLEAR_FIELDS, EVENT_JSON_SUBFIELD_CLEAR_FIELDS, + EVENT_JSON_UPDATE_CLEAR_FIELDS, EVENT_ORGANIZER_SUBFIELDS_CHOICE_MAP, + EVENT_OUTOFOFFICE_SUBFIELDS_CHOICE_MAP, EVENT_PRINT_ORDER, + EVENT_SHOW_ORDER, EVENT_SUBFIELDS_CHOICE_MAP, EVENT_TIME_OBJECTS, + EVENT_TYPES_CHOICE_MAP, EVENT_TYPE_BIRTHDAY, EVENT_TYPE_DEFAULT, + EVENT_TYPE_ENTITY_MAP, EVENT_TYPE_FOCUSTIME, EVENT_TYPE_FROMGMAIL, + EVENT_TYPE_OUTOFOFFICE, EVENT_TYPE_PROPERTIES_NAME_MAP, + EVENT_TYPE_WORKINGLOCATION, EVENT_WORKINGLOCATION_SUBFIELDS_CHOICE_MAP, + LIST_EVENTS_DISPLAY_PROPERTIES, LIST_EVENTS_MATCH_FIELDS, + LIST_EVENTS_SELECT_PROPERTIES, + _addEventEntitySelectFields, _createCalendarACLs, + _createCalendarEvents, _deleteCalendarEvents, + _doCalendarsCreateACLs, _doInfoCalendarACLs, + _doUpdateDeleteCalendarACLs, _emptyCalendarTrash, _eventMatches, + _getCalendarCreateImportUpdateEventOptions, + _getCalendarDeleteEventOptions, _getCalendarEventAttribute, + _getCalendarEventReminders, _getCalendarInfoACLOptions, + _getCalendarInfoEventOptions, _getCalendarListEventsDisplayProperty, + _getCalendarListEventsProperty, _getCalendarMoveEventsOptions, + _getCalendarPrintShowACLOptions, _getCalendarPrintShowEventOptions, + _getCalendarSendUpdates, _getCalendarSetting, _getEventDaysOfWeek, + _getEventFields, _getEventMatchFields, _getEventTypes, + _infoCalendarACLs, _infoCalendarEvents, _moveCalendarEvents, + _normalizeCalIdGetRuleIds, _normalizeResourceIdGetRuleIds, + _printCalendarEvent, _printShowCalendarACLs, + _printShowCalendarEvents, _processCalendarACLs, + _purgeCalendarEvents, _resourceUpdateDeleteCalendarACLs, + _setEventRecurrenceTimeZone, _showCalendarACL, _showCalendarEvent, + _showCalendarSettings, _updateCalendarEvents, + _updateDeleteCalendarACLs, _validateCalendarGetEventIDs, + _validateCalendarGetEvents, _validateResourceId, + _wipeCalendarEvents, checkCalendarExists, + 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, + getACLScope, getCalendarACLScope, getCalendarACLSendNotifications, + getCalendarCreateUpdateACLsOptions, getCalendarDeleteACLsOptions, + getCalendarEventEntity, getCalendarSettings, + getCalendarSiteACLScopeEntity, getNormalizedCalIdCal, + initCalendarEventEntity, normalizeCalendarId, validateCalendar, +) +from gam.cmd.schemas import ( # noqa: F401 # re-export + SCHEMAS_INDEXED_TITLES, SCHEMAS_SORT_TITLES, + SCHEMA_FIELDTYPE_CHOICE_MAP, _showSchema, + doCreateUpdateUserSchemas, doDeleteUserSchemas, + doInfoUserSchemas, doPrintShowUserSchemas, +) +from gam.cmd.cloudstorage import ( # noqa: F401 # re-export + TAKEOUT_EXPORT_PATTERN, _copyStorageObjects, + _getCloudStorageObject, doCopyCloudStorageBucket, + doDownloadCloudStorageBucket, doDownloadCloudStorageFile, + md5MatchesFile, +) +from gam.cmd.vault import ( # noqa: F401 # re-export +PRINT_USER_VAULT_HOLDS_TITLES, PRINT_VAULT_COUNTS_TITLES, + PRINT_VAULT_EXPORTS_TITLES, PRINT_VAULT_HOLDS_TITLES, + PRINT_VAULT_MATTERS_TITLES, PRINT_VAULT_QUERIES_TITLES, + VAULT_CORPUS_ARGUMENT_MAP, VAULT_CORPUS_EXPORT_FORMATS, + VAULT_CORPUS_OPTIONS_MAP, VAULT_CORPUS_QUERY_MAP, + VAULT_COUNTS_CORPUS_ARGUMENT_MAP, VAULT_CSE_OPTION_MAP, + VAULT_EXPORT_DATASCOPE_MAP, VAULT_EXPORT_FIELDS_CHOICE_MAP, + VAULT_EXPORT_FORMAT_MAP, VAULT_EXPORT_REGION_MAP, + VAULT_EXPORT_STATUS_MAP, VAULT_EXPORT_TIME_OBJECTS, + VAULT_HOLD_FIELDS_CHOICE_MAP, VAULT_HOLD_TIME_OBJECTS, + VAULT_MATTER_ACTIONS, VAULT_MATTER_FIELDS_CHOICE_MAP, + VAULT_MATTER_STATE_MAP, VAULT_QUERY_ARGS, + VAULT_QUERY_FIELDS_CHOICE_MAP, VAULT_QUERY_TIME_OBJECTS, + VAULT_RESPONSE_STATUS_MAP, VAULT_SEARCH_METHODS_MAP, + VAULT_SHARED_DRIVES_OPTION_MAP, VAULT_VOICE_COVERED_DATA_MAP, + ZIP_EXTENSION_PATTERN, + _buildVaultQuery, _cleanVaultExport, _cleanVaultHold, + _cleanVaultMatter, _cleanVaultQuery, _getHoldQueryParameters, + _setHoldQuery, _showVaultExport, _showVaultHold, + _showVaultMatter, _showVaultQuery, _useVaultQueryForHold, + _validateVaultQuery, convertExportNameToID, convertHoldNameToID, + convertMatterNameToID, convertQueryNameToID, doActionVaultMatter, + doCloseVaultMatter, doCopyVaultExport, doCopyVaultQuery, + doCreateCopyVaultQuery, doCreateVaultExport, doCreateVaultHold, + doCreateVaultMatter, doCreateVaultQuery, doDeleteVaultExport, + doDeleteVaultHold, doDeleteVaultMatter, doDeleteVaultQuery, + doDownloadVaultExport, doInfoVaultExport, doInfoVaultHold, + doInfoVaultMatter, doInfoVaultQuery, doPrintShowVaultExports, + doPrintShowVaultHolds, doPrintShowVaultMatters, + doPrintShowVaultQueries, doPrintVaultCounts, doReopenVaultMatter, + doUndeleteVaultMatter, doUpdateVaultHold, doUpdateVaultMatter, + formatVaultNameId, getMatterItem, printShowUserVaultHolds, + validateCollaborators, warnMatterNotOpen, +) +from gam.cmd.users import ( # noqa: F401 # re-export +ADDRESS_ARGUMENT_TO_FIELD_MAP, ALLOW_EMPTY_CUSTOM_TYPE, + INFO_USER_OPTIONS, ORGANIZATION_ARGUMENT_TO_FIELD_MAP, + PasswordOptions, SCHEMA_VALUE_PROCESS_MAP, + UPDATE_USER_ARGUMENT_TO_PROPERTY_MAP, USERS_INDEXED_TITLES, + USERS_ORDERBY_CHOICE_MAP, USER_ADDRESSES_PROPERTY_PRINT_ORDER, + USER_ARRAY_PROPERTY_PRINT_ORDER, USER_FIELDS_CHOICE_MAP, + USER_GUEST_PROPERTY_PRINT_ORDER, USER_JSON_SKIP_FIELDS, + USER_LANGUAGE_PROPERTY_PRINT_ORDER, + USER_LOCATIONS_PROPERTY_PRINT_ORDER, + USER_MULTI_ATTR_FILTER_CHOICE_MAP, USER_NAME_PROPERTY_PRINT_ORDER, + USER_ORGANIZATIONS_PROPERTY_PRINT_ORDER, + USER_POSIX_PROPERTY_PRINT_ORDER, USER_SCALAR_PROPERTY_PRINT_ORDER, + USER_SKIP_OBJECTS, USER_SSH_PROPERTY_PRINT_ORDER, USER_TIME_OBJECTS, + _filterSchemaFields, _filterUserMultiAttributes, + _formatLanguagesList, _getGroupOrgUnitMap, _getSchemaNameList, + _getUserMultiAttributeFilters, _initSchemaParms, + createUserAddAliases, createUserAddToGroups, deleteUsers, + doCheckUserSuspended, doCreateGuestUser, doCreateUser, + doDeleteUser, doDeleteUsers, doInfoUser, doInfoUsers, + doPrintUserCountsByOrgUnit, doPrintUserEntity, doPrintUserList, + doPrintUsers, doSuspendUnsuspendUser, doSuspendUnsuspendUsers, + doUndeleteUser, doUndeleteUsers, doUpdateUser, doUpdateUsers, + getNotifyArguments, getUserAttributes, getUserLicenses, + infoUsers, signoutTurnoff2SVUsers, suspendUnsuspendUsers, + undeleteUsers, updateUsers, verifyUserPrimaryEmail, waitForMailbox, +) +from gam.cmd.ciuserinvitations import ( # noqa: F401 # re-export + CI_USERINVITATION_ORDERBY_CHOICE_MAP, + CI_USERINVITATION_STATE_CHOICE_MAP, + CI_USERINVITATION_TIME_OBJECTS, + INBOUNDSSO_ALL_OIDC, INBOUNDSSO_ALL_SAML, + INBOUNDSSO_INPUT_MODE_CHOICE_MAP, INBOUNDSSO_MODE_CHOICE_MAP, + INBOUNDSSO_OUTPUT_MODE_CHOICE_MAP, + _getCIUserInvitationsEntity, _getIsInvitableUser, + _showUserInvitation, checkCIUserIsInvitable, + doCIUserInvitationsAction, doCheckCIUserInvitations, + doInfoCIUserInvitations, doPrintShowCIUserInvitations, + infoCIUserInvitations, isolateCIUserInvitatonsEmail, + quotedCIUserInvitatonsEmail, +) +from gam.cmd.sso import ( # noqa: F401 # re-export + INBOUNDSSO_CREDENTIALS_TIME_OBJECTS, + SITEVERIFICATION_METHOD_CHOICE_MAP, + _convertInboundSSOProfileDisplaynameToName, + _getInboundSSOAssignment, _getInboundSSOAssignmentArguments, + _getInboundSSOAssignmentByTarget, _getInboundSSOAssignmentName, + _getInboundSSOAssignments, _getInboundSSOModeService, + _getInboundSSOProfileArguments, _getInboundSSOProfileByName, + _getInboundSSOProfiles, _processInboundSSOAssignmentResult, + _processInboundSSOCredentialsResult, + _processInboundSSOProfileResult, _showInboundSSOAssignment, + _showInboundSSOCredentials, _showInboundSSOProfile, + _updateInboundAssignmentTargetNames, + doCreateInboundSSOAssignment, doCreateInboundSSOCredential, + doCreateInboundSSOProfile, doDeleteInboundSSOAssignment, + doDeleteInboundSSOCredential, doDeleteInboundSSOProfile, + doInfoInboundSSOAssignment, doInfoInboundSSOCredential, + doInfoInboundSSOProfile, doPrintShowInboundSSOAssignments, + doPrintShowInboundSSOCredentials, doPrintShowInboundSSOProfiles, + doUpdateInboundSSOAssignment, doUpdateInboundSSOProfile, + getCIOrgunitID, getInboundSSOCredentialsName, + getInboundSSOProfileCredentials, +) +from gam.cmd.sites import ( # noqa: F401 # re-export + deprecatedDomainSites, deprecatedUserSites, + DNS_ERROR_CODES_MAP, PROFILE_ACCOUNT_TYPE_MAP, + _showSiteVerificationInfo, doCreateSiteVerification, + doInfoSiteVerification, doUpdateSiteVerification, + printShowBusinessProfileAccounts, printShowWebMasterSites, + printShowWebResources, +) +from gam.cmd.courses import ( # noqa: F401 # re-export +ADD_REMOVE_UPDATE_ITEM_TYPES_MAP, + CLASSROOM_CREATE_ROLE_MAP, + CLASSROOM_ROLE_ALL, + CLASSROOM_ROLE_ENTITY_MAP, + CLASSROOM_ROLE_MAP, + CLASSROOM_ROLE_OWNER, + CLASSROOM_ROLE_STUDENT, + CLASSROOM_ROLE_TEACHER, + CLEAR_SYNC_PARTICIPANT_TYPES_MAP, + COURSE_ANNOUNCEMENTS_FIELDS_CHOICE_MAP, + COURSE_ANNOUNCEMENTS_INDEXED_TITLES, + COURSE_ANNOUNCEMENTS_ORDERBY_CHOICE_MAP, + COURSE_ANNOUNCEMENTS_SORT_TITLES, + COURSE_ANNOUNCEMENTS_TIME_OBJECTS, + COURSE_COUNTS_KEY_TITLE, + COURSE_COUNTS_MEMBER_ARGUMENTS, + COURSE_CUS_FILTER_FIELDS_MAP, + COURSE_CU_FILTER_FIELDS_MAP, + COURSE_END_ARGUMENTS, + COURSE_FIELDS_CHOICE_MAP, + COURSE_MATERIAL_FIELDS_CHOICE_MAP, + COURSE_MATERIAL_ID_ARGUMENTS, + COURSE_MATERIAL_INDEXED_TITLES, + COURSE_MATERIAL_ORDERBY_CHOICE_MAP, + COURSE_MATERIAL_SORT_TITLES, + COURSE_MATERIAL_STATE_ARGUMENTS, + COURSE_MATERIAL_TIME_OBJECTS, + COURSE_MEMBER_ARGUMENTS, + COURSE_NOLEN_OBJECTS, + COURSE_PARTICIPANTS_SORT_TITLES, + COURSE_PROPERTY_PRINT_ORDER, + COURSE_START_ARGUMENTS, + COURSE_STATE_MAPS, + COURSE_SUBMISSION_FIELDS_CHOICE_MAP, + COURSE_SUBMISSION_TIME_OBJECTS, + COURSE_TIME_OBJECTS, + COURSE_TOPICS_SORT_TITLES, + COURSE_TOPICS_TIME_OBJECTS, + COURSE_U_FILTER_FIELDS_MAP, + COURSE_WORK_FIELDS_CHOICE_MAP, + COURSE_WORK_ID_ARGUMENTS, + COURSE_WORK_INDEXED_TITLES, + COURSE_WORK_ORDERBY_CHOICE_MAP, + COURSE_WORK_SORT_TITLES, + COURSE_WORK_STATE_ARGUMENTS, + COURSE_WORK_TIME_OBJECTS, + CourseAttributes, + GUARDIAN_CLASS_ACCEPTED, + GUARDIAN_CLASS_ALL, + GUARDIAN_CLASS_ENTITY, + GUARDIAN_CLASS_INVITATIONS, + GUARDIAN_CLASS_MAP, + GUARDIAN_CLASS_UNDEFINED, + GUARDIAN_STATES, + GUARDIAN_TIME_OBJECTS, + PARTICIPANT_EN_MAP, + _batchAddItemsToCourse, + _batchRemoveItemsFromCourse, + _cancelGuardianInvitation, + _convertCourseUserIdToEmailName, + _courseItemPassesFilter, + _deleteGuardian, + _doDeleteCourses, + _doDeleteGuardian, + _doInfoCourses, + _doUpdateCourses, + _getClassroomEmail, + _getClassroomInvitationIds, + _getClassroomInvitations, + _getCourseAliasesMembers, + _getCourseItemFilter, + _getCourseName, + _getCourseOwnerSA, + _getCourseSelectionParameters, + _getCourseShowProperties, + _getCourseStates, + _getCourseWMSelectionParameters, + _getCoursesInfo, + _getCoursesOwnerInfo, + _gettingCourseEntityQuery, + _gettingCourseSubmissionQuery, + _gettingCoursesQuery, + _initCourseItemFilter, + _initCourseSelectionParameters, + _initCourseShowProperties, + _initCourseWMSelectionParameters, + _inviteGuardian, + _printCourseItemCount, + _printShowGuardians, + _setApplyCourseItemFilter, + _setCourseFields, + _updateCourseOwner, + acceptClassroomInvitations, + acceptDeleteClassroomInvitations, + cancelGuardianInvitations, + checkCourseExists, + 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, + doPrintCourseWM, + doPrintCourseWork, + doPrintCourses, + doPrintShowClassroomInvitations, + doPrintShowGuardians, + doProcessCourseStudentGroupMembers, + doUpdateCourse, + doUpdateCourseStudentGroups, + doUpdateCourses, + getCourseAnnouncement, + getGuardianEmails, + getGuardianEntity, + getGuardianInvitationEntity, + getGuardianInvitationIds, + inviteGuardians, + printShowClassroomInvitations, + printShowClassroomProfile, + printShowGuardians, + studentUnknownWarning, + syncGuardians, +) +from gam.cmd.userservices import ( # noqa: F401 # re-export + Act, + CALENDAR_EXCLUDE_DOMAINS, + CALENDAR_EXCLUDE_OPTIONS, + CALENDAR_LIST_FIELDS_CHOICE_MAP, + CALENDAR_NOTIFICATION_METHODS, + CALENDAR_NOTIFICATION_TYPES_MAP, + CALENDAR_SIMPLE_LISTS, + CORPORA_ALL_DRIVES, + CORPORA_CHOICE_MAP, + Cmd, + EVENT_AUTO_DECLINE_MODE_CHOICE_MAP, + EVENT_CHAT_STATUS_CHOICE_MAP, + Ent, + Ind, + QUERY_SHORTCUTS_MAP, + SHAREDDRIVE_QUERY_SHORTCUTS_MAP, + STATUS_EVENTS_DATETIME_CHOICES, + USER_CALENDAR_SETTINGS_FIELDS_CHOICE_MAP, + WORKING_LOCATION_CHOICE_MAP, + YOUTUBE_CHANNEL_FIELDS_CHOICE_MAP, + YOUTUBE_CHANNEL_TIME_OBJECTS, + _createImportCalendarEvent, + _getCalendarAttributes, + _getCalendarPermissions, + _getCalendarSelectProperty, + _getEntityMimeType, + _getTargetEntityMimeType, + _modifyRemoveCalendars, + _processCalendarList, + _showASPs, + _showBackupCodes, + _showCalendar, + _showCalendarStatusEvent, + _updateDeleteCalendars, + _validateUserGetCalendarIds, + addCalendars, + addCreateCalendars, + createCalendar, + createCalendarACLs, + createCalendarEvent, + createFocusTime, + createOutOfOffice, + createStatusEvent, + createWorkingLocation, + deleteASP, + deleteBackupCodes, + deleteCalendarACLs, + deleteCalendarEvents, + deleteCalendars, + deleteFocusTime, + deleteOutOfOffice, + deleteStatusEvent, + deleteWorkingLocation, + doCalendarsTransferOwnership, + emptyCalendarTrash, + getFocusTimeProperties, + getOutOfOfficeProperties, + getStatusEventDateTime, + getStatusEventProperties, + getStatusEventSummaryDecline, + getUserCalendarEntity, + getWorkingLocationProperties, + importCalendarEvent, + infoCalendarACLs, + infoCalendarEvents, + infoCalendars, + initUserCalendarEntity, + modifyCalendars, + moveCalendarEvents, + printShowASPs, + printShowBackupCodes, + printShowCalSettings, + printShowCalendarACLs, + printShowCalendarEvents, + printShowCalendars, + printShowFocusTime, + printShowOutOfOffice, + printShowStatusEvent, + printShowWorkingLocation, + printShowYouTubeChannel, + purgeCalendarEvents, + removeCalendars, + updateBackupCodes, + updateCalendarACLs, + updateCalendarAttendees, + updateCalendarEvents, + updateCalendars, + updateDeleteCalendarACLs, + wipeCalendarEvents, +) +from gam.cmd.drive import ( # noqa: F401 # re-export +CHECK_LOCATION_FIELDS_TITLES, + CONSOLIDATION_GROUPING_STRATEGY_CHOICE_MAP, + COPY_NONINHERITED_PERMISSIONS_ALWAYS, + COPY_NONINHERITED_PERMISSIONS_CHOICES_MAP, + COPY_NONINHERITED_PERMISSIONS_NEVER, + COPY_NONINHERITED_PERMISSIONS_SYNC_ALL_FOLDERS, + COPY_NONINHERITED_PERMISSIONS_SYNC_UPDATED_FOLDERS, + COPY_OWNED_BY_CHOICE_MAP, + DELETE_DRIVEFILE_CHOICE_MAP, + DELETE_DRIVEFILE_FUNCTION_TO_ACTION_MAP, + DELETE_DRIVEFILE_FUNCTION_TO_CAPABILITY_MAP, + DEST_PARENT_MYDRIVE_FOLDER, + DEST_PARENT_MYDRIVE_ROOT, + DEST_PARENT_SHAREDDRIVE_FOLDER, + DEST_PARENT_SHAREDDRIVE_ROOT, + DFA_ADD_PARENT_IDS, + DFA_ADD_PARENT_NAMES, + DFA_CREATED_TIME, + DFA_IGNORE_DEFAULT_VISIBILITY, + DFA_KEEP_REVISION_FOREVER, + DFA_KWARGS, + DFA_LOCALFILENAME, + DFA_LOCALFILEPATH, + DFA_LOCALMIMETYPE, + DFA_MODIFIED_TIME, + DFA_OCRLANGUAGE, + DFA_PARENTID, + DFA_PARENTQUERY, + DFA_PRESERVE_FILE_TIMES, + DFA_REMOVE_PARENT_IDS, + DFA_REMOVE_PARENT_NAMES, + DFA_REPLACEFILENAME, + DFA_SEARCHARGS, + DFA_SHAREDDRIVE_PARENT, + DFA_SHAREDDRIVE_PARENTID, + DFA_SHAREDDRIVE_PARENTQUERY, + DFA_STRIPNAMEPREFIX, + DFA_TIMEFORMAT, + DFA_TIMESTAMP, + DFA_URL, + DFA_USE_CONTENT_AS_INDEXABLE_TEXT, + DISKUSAGE_SHOW_CHOICES, + DOCUMENT_FORMATS_MAP, + DRIVEFILE_ACL_PERMISSION_DETAILS_TYPES, + DRIVEFILE_ACL_PERMISSION_TYPES, + DRIVEFILE_ACL_ROLES_MAP, + DRIVEFILE_BASIC_PERMISSION_FIELDS, + DRIVEFILE_ORDERBY_CHOICE_MAP, + DRIVEFILE_PERMISSIONS_FOR_VIEW_CHOICES, + DRIVEFILE_PROPERTY_VISIBILITY_CHOICE_MAP, + DRIVELABELS_PERMISSION_ROLE_MAP, + DRIVELABELS_PROJECTION_CHOICE_MAP, + DRIVELABELS_TIME_OBJECTS, + DRIVELABEL_FIELD_TYPE_MAP, + DRIVESETTINGS_FIELDS_CHOICE_MAP, + DRIVESETTINGS_SCALAR_FIELDS, + DRIVESETTINGS_USAGE_BYTES_FIELDS, + DRIVE_ACTIVITY_ACTION_MAP, + DRIVE_BY_NAME_CHOICE_MAP, + DRIVE_CAPABILITIES_SUBFIELDS_CHOICE_MAP, + DRIVE_CONTENT_RESTRICTIONS_SUBFIELDS_CHOICE_MAP, + DRIVE_DOWNLOAD_RESTRICTIONS_SUBFIELDS_CHOICE_MAP, + DRIVE_FIELDS_CHOICE_MAP, + DRIVE_FILE_CONTENT_RESTRICTIONS_CHOICE_MAP, + DRIVE_FILE_ITEM_DOWNLOAD_RESTRICTION_CHOICE_MAP, + DRIVE_INDEXED_TITLES, + DRIVE_LABELINFO_SUBFIELDS_CHOICE_MAP, + DRIVE_LABEL_CHOICE_MAP, + DRIVE_LIST_FIELDS, + DRIVE_OWNERS_SUBFIELDS_CHOICE_MAP, + DRIVE_PARENTS_SUBFIELDS_CHOICE_MAP, + DRIVE_PERMISSIONS_SUBFIELDS_CHOICE_MAP, + DRIVE_REVISIONS_INDEXED_TITLES, + DRIVE_SHARINGUSER_SUBFIELDS_CHOICE_MAP, + DRIVE_SHORTCUTDETAILS_SUBFIELDS_CHOICE_MAP, + DRIVE_SUBFIELDS_CHOICE_MAP, + DRIVE_TIME_OBJECTS, + DUPLICATE_FILE_CHOICES, + DUPLICATE_FILE_DUPLICATE_NAME, + DUPLICATE_FILE_OVERWRITE_ALL, + DUPLICATE_FILE_OVERWRITE_OLDER, + DUPLICATE_FILE_SKIP, + DUPLICATE_FILE_UNIQUE_NAME, + DUPLICATE_FOLDER_CHOICES, + DUPLICATE_FOLDER_DUPLICATE_NAME, + DUPLICATE_FOLDER_MERGE, + DUPLICATE_FOLDER_SKIP, + DUPLICATE_FOLDER_UNIQUE_NAME, + DriveFileFields, + DriveListParameters, + FILECOMMENTS_AUTHOR_SUBFIELDS_CHOICE_MAP, + FILECOMMENTS_FIELDS_CHOICE_MAP, + FILECOMMENTS_INDEXED_TITLES, + FILECOMMENTS_REPLIES_SUBFIELDS_CHOICE_MAP, + FILECOMMENTS_SUBFIELDS_CHOICE_MAP, + FILECOMMENTS_TIME_OBJECTS, + FILECOUNT_SUMMARY_CHOICE_MAP, + FILECOUNT_SUMMARY_NONE, + FILECOUNT_SUMMARY_ONLY, + FILECOUNT_SUMMARY_PLUS, + FILECOUNT_SUMMARY_USER, + FILEINFO_FIELDS_TITLES, + FILELIST_FIELDS_TITLES, + FILEPATH_FIELDS, + FILEPATH_FIELDS_TITLES, + FILEREVISIONS_FIELDS_CHOICE_MAP, + FILEREVISIONS_TIME_OBJECTS, + FILESHARECOUNTS_CATEGORIES, + FILESHARECOUNTS_OWNER, + FILESHARECOUNTS_SHARED, + FILESHARECOUNTS_SHARED_EXTERNAL, + FILESHARECOUNTS_SHARED_INTERNAL, + FILESHARECOUNTS_TOTAL, + FILESHARECOUNTS_ZEROCOUNTS, + FILETREE_FIELDS_CHOICE_MAP, + FILETREE_FIELDS_PRINT_ORDER, + FILE_SUBTOTAL_STATS, + FOLDER_SUBTOTAL_STATS, + GOOGLEDOC_VALID_EXTENSIONS_MAP, + HTTP_ERROR_PATTERN, + LOCATION_ALL_DRIVES, + LOCATION_CHOICE_MAP, + LOCATION_MYDRIVE, + LOCATION_ONLY_SHARED_DRIVES, + LOCATION_ORPHANS, + LOCATION_OWNEDBY_ANY, + LOCATION_OWNEDBY_OTHERS, + LOCATION_SHARED_WITHME, + LOOKERSTUDIO_ADD_UPDATE_PERMISSION_ROLE_CHOICE_MAP, + LOOKERSTUDIO_ASSETS_ORDERBY_CHOICE_MAP, + LOOKERSTUDIO_ASSETS_TIME_OBJECTS, + LOOKERSTUDIO_ASSETTYPE_CHOICE_MAP, + LOOKERSTUDIO_DELETE_PERMISSION_ROLE_CHOICE_MAP, + LOOKERSTUDIO_PERMISSION_MODIFIER_MAP, + LOOKERSTUDIO_VIEW_PERMISSION_ROLE_CHOICE_MAP, + MICROSOFT_FORMATS_LIST, + MIMETYPE_CHOICE_MAP, + MIMETYPE_EXTENSION_MAP, + MIMETYPE_TYPES, + MimeTypeCheck, + NON_DOWNLOADABLE_MIMETYPES, + OPENOFFICE_FORMATS_LIST, + OWNED_BY_ME_FIELDS_TITLES, + PRINT_ORGANIZER_TYPES, + PermissionMatch, + REVISIONS_FIELDS_CHOICE_MAP, + SHAREDDRIVE_ACL_ROLES_MAP, + SHAREDDRIVE_API_GUI_ROLES_MAP, + SHAREDDRIVE_DOWNLOAD_RESTRICTIONS_MAP, + SHAREDDRIVE_FIELDS_CHOICE_MAP, + SHAREDDRIVE_LIST_FIELDS_CHOICE_MAP, + SHAREDDRIVE_RESTRICTIONS_MAP, + SHAREDDRIVE_ROLES_CAPABILITIES_MAP, + SHAREDDRIVE_TIME_OBJECTS, + SHORTCUT_CODE_MIMETYPE_MISMATCH, + SHORTCUT_CODE_NOT_A_SHORTCUT, + SHORTCUT_CODE_SHORTCUT_NOT_FOUND, + SHORTCUT_CODE_TARGET_NOT_FOUND, + SHORTCUT_CODE_VALID, + SHOWLABELS_CHOICES, + SHOWWEBVIEWLINK_CHOICES, + SHOW_NO_PERMISSIONS_DRIVES_CHOICE_MAP, + SHOW_OWNED_BY_CHOICE_MAP, + SIZE_FIELD_CHOICE_MAP, + STAT_FILE_COPIED_MOVED, + STAT_FILE_DUPLICATE, + STAT_FILE_FAILED, + STAT_FILE_IN_SKIPIDS, + STAT_FILE_NOT_COPYABLE_MOVABLE, + STAT_FILE_PERMISSIONS_FAILED, + STAT_FILE_PROTECTEDRANGES_FAILED, + STAT_FILE_SHORTCUT_CREATED, + STAT_FILE_SHORTCUT_EXISTS, + STAT_FILE_TOTAL, + STAT_FOLDER_COPIED_MOVED, + STAT_FOLDER_DUPLICATE, + STAT_FOLDER_FAILED, + STAT_FOLDER_MERGED, + STAT_FOLDER_NOT_WRITABLE, + STAT_FOLDER_PERMISSIONS_FAILED, + STAT_FOLDER_SHORTCUT_CREATED, + STAT_FOLDER_SHORTCUT_EXISTS, + STAT_FOLDER_TOTAL, + STAT_LENGTH, + STAT_USER_NOT_ORGANIZER, + SUGGESTIONS_VIEW_MODE_CHOICE_MAP, + TITLE_QUERY_PATTERN, + TRANSFER_DRIVEFILE_ACL_ROLES_MAP, + UNIQUE_PREFIX_PATTERN, + _checkFileIdEntityDomainAccess, + _checkForDuplicateTargetFile, + _checkForExistingShortcut, + _checkSharedDriveRestrictions, + _checkUpdateLastModifiction, + _convertSharedDriveNameToId, + _copyPermissions, + _driveFileParentSpecified, + _finalizeIncludeLabels, + _finalizeIncludePermissionsForView, + _formatFileDriveLabels, + _getCommentFields, + _getCopyFolderNonInheritedPermissions, + _getCopyMoveParentInfo, + _getCopyMoveTargetInfo, + _getDisplayDriveLabelsParameters, + _getDriveFieldSubField, + _getDriveFileACLPrintKeysTimeObjects, + _getDriveFileAddRemoveParentInfo, + _getDriveFileDownloadRestrictions, + _getDriveFileNameFromId, + _getDriveFileParentInfo, + _getFileIdFromURL, + _getFilenameParts, + _getFilenamePrefix, + _getGettingEntity, + _getIncludeLabels, + _getIncludePermissionsForView, + _getLastModificationPath, + _getLookerStudioAssetByID, + _getLookerStudioAssets, + _getSharedDriveNameFromId, + _getSharedDriveRestrictions, + _getSharedDriveRole, + _getSharedDriveTheme, + _getSheetProtectedRanges, + _getUniqueFilename, + _identicalSourceTarget, + _incrStatistic, + _initLastModification, + _initStatistics, + _mapDrive2QueryToDrive3, + _mapDriveInfo, + _mapDrivePermissionNames, + _mapDriveUser, + _moveSharedDriveToOU, + _printStatistics, + _recursiveUpdateMovePermissions, + _selectRevisionIds, + _selectRevisionResults, + _setGetCheckFilePermissions, + _setGetPermissionsForMyDriveSharedDrives, + _setSkipObjects, + _showComment, + _showDriveFilePermission, + _showDriveFilePermissionJSON, + _showDriveFilePermissions, + _showDriveFilePermissionsJSON, + _showDriveLabel, + _showDriveLabelPermission, + _showLastModification, + _showLookerStudioPermissions, + _showRevision, + _showSharedDrive, + _showSharedDriveThemeSettings, + _simpleFileIdEntityList, + _stripCommentPhotoLinks, + _stripMeInOwners, + _stripNotMeInOwners, + _targetFilenameExists, + _updateAnyOwnerQuery, + _updateLastModificationRow, + _updateMoveFilePermissions, + _updateSheetProtectedRanges, + _updateSheetProtectedRangesACLchange, + _validateACLAttributes, + _validateACLOwnerType, + _validatePermissionAttributes, + _validatePermissionOwnerType, + _validateUserGetFileIDs, + _validateUserGetLookerStudioAssetIds, + _validateUserGetSharedDriveFileIDs, + _validateUserSharedDrive, + _verifyUserIsOrganizer, + addFilePathsToInfo, + addFilePathsToRow, + addTimestampToFilename, + buildFileTree, + checkDriveFileShortcut, + claimOwnership, + cleanFileIDsList, + 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, + doDriveSearch, + doHideUnhideSharedDrive, + doInfoDriveFileACLs, + doInfoDriveLabels, + doInfoSharedDrive, + doPrintSharedDriveOrganizers, + doPrintShowDriveFileACLs, + doPrintShowDriveLabelPermissions, + doPrintShowDriveLabels, + doPrintShowOrgunitSharedDrives, + doPrintShowOwnership, + doPrintShowSharedDriveACLs, + doPrintShowSharedDrives, + doSharedDriveSearch, + doShowSharedDriveThemes, + doUpdateDriveFileACLs, + doUpdateSharedDrive, + emptyDriveTrash, + escapeDriveFileName, + extendFileTree, + extendFileTreeParents, + getCopyMoveOptions, + getCreationModificationTimes, + getDriveFile, + getDriveFileAddRemoveParentAttribute, + getDriveFileAttribute, + getDriveFileCopyAttribute, + getDriveFileEntity, + getDriveFileEntitySharedDriveOnly, + getDriveFileParentAttribute, + getDriveFilePermissionsFields, + getDriveFileProperty, + getEscapedDriveFileName, + getEscapedDriveFolderName, + getFilePaths, + getGoogleDocument, + getLookerStudioAssetSelectionParameters, + getMediaBody, + getMimeType, + getPermissionIdForEmail, + getRevisionsEntity, + getSharedDriveEntity, + hideUnhideSharedDrive, + infoDriveFileACLs, + infoDriveLabels, + infoSharedDrive, + initCopyMoveOptions, + initDriveFileAttributes, + initDriveFileEntity, + initFilePathInfo, + initFileTree, + initLookerStudioAssetSelectionParameters, + moveDriveFile, + noFileSelectFileIdEntity, + normalizeDriveLabelID, + normalizeDriveLabelName, + printDiskUsage, + printDriveActivity, + printEmptyDriveFolders, + printFileList, + printFileParentTree, + printSharedDriveOrganizers, + printShowDriveFileACLs, + printShowDriveLabelPermissions, + printShowDriveLabels, + printShowDriveSettings, + printShowDrivelastModifications, + printShowFileComments, + printShowFileCounts, + printShowFilePaths, + printShowFileRevisions, + printShowFileShareCounts, + printShowFileTree, + printShowLookerStudioAssets, + printShowSharedDriveACLs, + printShowSharedDrives, + processFileDriveLabels, + processFilenameReplacements, + purgeDriveFile, + setPreservedFileTimes, + showFileInfo, + showSharedDriveThemes, + transferDrive, + transferOwnership, + trashDriveFile, + untrashDriveFile, + updateDriveFile, + updateDriveFileACLs, + updateFileRevisions, + updateGoogleDocument, + updateSharedDrive, + validateDriveLabelName, + validateMimeType, + validateUserGetPermissionId, + writeReturnIdLink, +) +from gam.cmd.gmail import ( # noqa: F401 # re-export + CSE_IDENTITY_ACTION_FUNCTION_MAP, + CSE_IDENTITY_TIME_OBJECTS, + CSE_KEYPAIR_ACTION_FUNCTION_MAP, + CSE_KEYPAIR_TIME_OBJECTS, + EMAILSETTINGS_FORWARD_POP_ACTION_CHOICE_MAP, + EMAILSETTINGS_IMAP_EXPUNGE_BEHAVIOR_CHOICE_MAP, + EMAILSETTINGS_IMAP_MAX_FOLDER_SIZE_CHOICES, + EMAILSETTINGS_OLD_NEW_OLD_FORWARD_ACTION_MAP, + EMAILSETTINGS_POP_ENABLE_FOR_CHOICE_MAP, + FILTER_ACTION_CHOICES, + FILTER_ACTION_LABEL_MAP, + FILTER_ADD_LABEL_ACTIONS, + FILTER_ADD_LABEL_TO_ARGUMENT_MAP, + FILTER_CATEGORY_CHOICE_MAP, + FILTER_CRITERIA_CHOICE_MAP, + FILTER_REMOVE_LABEL_ACTIONS, + FILTER_REMOVE_LABEL_TO_ARGUMENT_MAP, + FORM_RESPONSE_TIME_OBJECTS, + GMAIL_CATEGORY_LABELS, + GMAIL_SYSTEM_LABELS, + HEADER_ENCODE_PATTERN, + IMPORT_INSERT, + LABEL_COUNTS_FIELDS, + LABEL_COUNTS_FIELDS_LIST, + LABEL_DISPLAY_FIELDS_LIST, + LABEL_LABEL_LIST_VISIBILITY_CHOICE_MAP, + LABEL_MESSAGE_LIST_VISIBILITY_CHOICES, + LABEL_QUERY_REPLACEMENT_CHARACTERS, + LABEL_TYPE_SYSTEM, + LABEL_TYPE_USER, + MESSAGES_MAX_TO_KEYWORDS, + MESSAGE_TIME_QUERY_PATTERN, + PRINT_LABELS_TITLES, + SHOW_LABELS_DISPLAY_CHOICES, + SIG_REPLY_COMPACT, + SIG_REPLY_FORMAT, + SIG_REPLY_HTML, + SIG_REPLY_OPTIONS_MAP, + SIG_REPLY_TEMPLATE, + SMTPMSA_DISPLAY_FIELDS, + SMTPMSA_PORTS, + SMTPMSA_REQUIRED_FIELDS, + SMTPMSA_SECURITY_MODES, + SMTP_ADDRESS_HEADERS, + SMTP_DATE_HEADERS, + SMTP_HEADERS_MAP, + SMTP_NAME_ADDRESS_PATTERN, + VACATION_END_NOT_SPECIFIED, + VACATION_START_STARTED, + _convertLabelNamesToIds, + _decodeHeader, + _deleteInfoForwardingAddreses, + _draftImportInsertMessage, + _finalizeMessageSelectParameters, + _getLabelId, + _getLabelName, + _getLabelSet, + _getMessageSelectParameters, + _getPublishSettings, + _getSmimeIds, + _getUserGmailLabels, + _imapDefaults, + _initCSEKeyPairSkipObjects, + _initLabelNameMap, + _initMessageThreadParameters, + _initPublishSettings, + _mapFilterLabelIdsToNames, + _mapMessageQueryDates, + _popDefaults, + _printFilter, + _printShowCSEItems, + _processForwardingAddress, + _processMessagesThreads, + _processSendAs, + _processSignature, + _resetCSEKeyPairSkipObjects, + _setImap, + _setPop, + _showCSEItem, + _showFilter, + _showForward, + _showForwardingAddress, + _showImap, + _showPop, + _showSendAs, + _showVacation, + _stripCSEKeyPairSkipObjects, + _validateLabelList, + archiveMessages, + buildLabelPath, + checkLabelColor, + cleanLabelQuery, + createCSEKeyPair, + createFilter, + createForm, + createForwardingAddresses, + createLabel, + createLabelList, + createLabels, + createSmime, + createUpdateCSEIdentity, + createUpdateSendAs, + delegateTo, + deleteFilters, + deleteForwardingAddresses, + deleteInfoSendAs, + deleteLabel, + deleteLabelId, + deleteLabelIdList, + deleteLabelIds, + deleteLabelList, + deleteLabels, + deleteSmime, + draftMessage, + exportMessages, + exportMessagesThreads, + exportThreads, + findFormRequest, + forwardMessagesThreads, + getLabelAttributes, + getSendAsAttributes, + importMessage, + infoFilters, + infoForwardingAddresses, + insertMessage, + printShowCSEIdentities, + printShowCSEKeyPairs, + printShowDelegates, + printShowFilters, + printShowFormResponses, + printShowForms, + printShowForward, + printShowForwardingAddresses, + printShowGmailProfile, + printShowImap, + printShowLabels, + printShowLanguage, + printShowMessages, + printShowMessagesThreads, + printShowPop, + printShowSendAs, + printShowSignature, + printShowSmimes, + printShowThreads, + printShowVacation, + processCSEIdentity, + processCSEKeyPair, + processDelegates, + processMessages, + processThreads, + sendCreateDelegateNotification, + setForward, + setImap, + setLanguage, + setPop, + setSignature, + setVacation, + updateDelegates, + updateForm, + updateFormInfoRequest, + updateFormRequestUpdateMasks, + updateFormSettingsRequest, + updateLabelSettings, + updateLabelSettingsById, + updateLabels, + updateSmime, + watchGmail, +) +from gam.cmd.userop import ( # noqa: F401 # re-export + LICENSE_PREVIEW_TITLES, + LICENSE_PRODUCT_SKUIDS, + PROFILE_SHARING_CHOICE_MAP, + SHEET_DATETIME_RENDER_OPTIONS_MAP, + SHEET_DIMENSIONS_MAP, + SHEET_INSERT_DATA_OPTIONS_MAP, + SHEET_VALUE_INPUT_OPTIONS_MAP, + SHEET_VALUE_RENDER_OPTIONS_MAP, + SPREADSHEET_FIELDS_CHOICE_MAP, + SPREADSHEET_SHEETS_SUBFIELDS_CHOICE_MAP, + TOKENS_AGGREGATE_FIELDS_TITLES, + TOKENS_AGGREGATE_ORDERBY_CHOICE_MAP, + TOKENS_FIELDS_TITLES, + TOKENS_TITLE_MAP, + _addUserToGroups, + _createLicenses, + _deleteLicenses, + _deleteUserFromGroups, + _getSpreadsheetRangesValues, + _getUserGroupDomainCustomerId, + _getUserGroupOptionalDomainCustomerId, + _printShowTokens, + _setShowProfile, + _setUserGroupArgs, + _showUpdateValuesResponse, + _showValueRange, + _updateUserGroups, + _validateSubkeyRoleGetGroups, + _validateUserGetSpreadsheetIDs, + _writeLicenseAction, + addUserToGroups, + appendSheetRanges, + checkUserGroupMatchPattern, + checkUserInGroups, + clearSheetRanges, + commonClientIds, + createLicense, + createSheet, + deleteLicense, + deletePhoto, + deleteTokens, + deleteUserFromGroups, + deprovisionUser, + doPrintShowTokens, + getLicenseParameters, + getPhoto, + getProfilePhoto, + getUserPhoto, + infoPrintShowSheets, + printShowGroupTree, + printShowLookerStudioPermissions, + printShowSheetRanges, + printShowTokens, + printShowUserGroups, + printUserGroupsList, + processLookerStudioPermissions, + setProfile, + showProfile, + syncLicense, + syncUserWithGroups, + updateLicense, + updatePhoto, + updateSheetRanges, + updateSheets, + updateUserGroups, +) +from gam.cmd.notes import ( # noqa: F401 # re-export + Act, + Cmd, + Ent, + GET_NOTE_HTTP_ERROR_PATTERN, + Ind, + NOTES_COUNTS_MAP, + NOTES_FIELDS_CHOICE_MAP, + NOTES_ROLE_CHOICE_MAP, + NOTES_TIME_OBJECTS, + _assignNoteOwner, + _checkNoteUserRole, + _showNote, + _showNoteAttachments, + _showNoteListItems, + _showNotePermissions, + createNote, + createNotesACLs, + deleteInfoNotes, + deleteNotesACLs, + getNoteAttachments, + normalizeNoteName, + printShowNotes, +) +from gam.cmd.tasks import ( # noqa: F401 # re-export + Act, + Cmd, + Ent, + Ind, + TAGMANAGER_PARAMETERS, + TASKLIST_SKIP_OBJECTS, + TASKLIST_TIME_OBJECTS, + TASK_ORDERBY_CHOICE_MAP, + TASK_QUERY_STATE_MAP, + TASK_QUERY_TIME_MAP, + TASK_SKIP_OBJECTS, + TASK_STATUS_MAP, + TASK_TIME_OBJECTS, + _showTask, + _showTasklist, + getTaskAttribute, + getTaskListIDfromTitle, + getTaskLists, + getTaskMoveAttribute, + importTasklist, + printShowTagManagerAccounts, + printShowTagManagerContainers, + printShowTagManagerObjects, + printShowTagManagerPermissions, + printShowTagManagerTags, + printShowTagManagerWorkspaces, + printShowTasklists, + printShowTasks, + processTasklists, + processTasks, + verifyTasksServiceEnabled, +) +from gam.cmd.caa import ( # noqa: F401 # re-export + Act, + CAABuildBasicLevel, + CAABuildCondition, + CAABuildDevicePolicy, + CAABuildLevel, + CAABuildOsConstraints, + CAARoleErrorExit, + CAA_ALLOWED_DEVICE_MANAGEMENT_LEVELS_MAP, + CAA_ALLOWED_ENCRYPTIION_STATUS_MAP, + CAA_OS_TYPE_MAP, + Cmd, + Ent, + ISO3166_1_ALPHA_2_CODES, + Ind, + buildCAAServiceObject, + doCreateCAALevel, + doDeleteCAALevel, + doPrintShowCAALevels, + doUpdateCAALevel, + getAccessPolicy, + normalizeCAALevelName, + validateISO3166_1_alpha2_code, +) + class LazyLoader(types.ModuleType): """Lazily import a module, mainly to avoid pulling in large dependencies. diff --git a/src/gam/cmd/admin.py b/src/gam/cmd/admin.py index 182b021f..020a84a3 100644 --- a/src/gam/cmd/admin.py +++ b/src/gam/cmd/admin.py @@ -16,6 +16,48 @@ from gamlib import glgapi as GAPI from gamlib import glglobals as GM from gamlib import glindent from gamlib import glmsgs as Msg +from gam.util.access import accessErrorExit +from gam.util.api import buildGAPIObject, callGAPI, callGAPIitems, callGAPIpages +from gam.util.args import ( + UID_PATTERN, + checkForExtraneousArguments, + getAddCSVData, + getArgument, + getChoice, + getEmailAddress, + getJSON, + getString, +) +from gam.util.csv_pf import ( + CSVPrintFile, + FormatJSONQuoteChar, + cleanJSON, + flattenJSON, + getFieldsFromFieldsList, + getItemFieldsFromFieldsList, + getTodriveOnly, +) +from gam.util.display import ( + entityActionFailedWarning, + entityActionPerformed, + entityActionPerformedMessage, + getPageMessage, + performActionNumItems, + printEntity, + printGettingAllAccountEntities, + printKeyValueList, + printLine, +) +from gam.util.entity import ( + ALL_GROUP_ROLES, + convertEmailAddressToUID, + convertOrgUnitIDtoPath, + convertUIDtoEmailAddressWithType, + getEntityList, +) +from gam.util.errors import entityActionFailedExit, invalidChoiceExit, missingArgumentExit, unknownArgumentExit +from gam.util.fileio import UNKNOWN +from gam.util.orgunits import getOrgUnitId Act = glaction.GamAction() Ent = glentity.GamEntity() @@ -37,12 +79,12 @@ def __getattr__(name): def _listPrivileges(cd): fields = f'items({",".join(PRINT_PRIVILEGES_FIELDS)})' try: - return _getMain().callGAPIitems(cd.privileges(), 'list', 'items', + return callGAPIitems(cd.privileges(), 'list', 'items', throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED], customer=GC.Values[GC.CUSTOMER_ID], fields=fields) except (GAPI.badRequest, GAPI.customerNotFound): - _getMain().accessErrorExit(cd) + accessErrorExit(cd) except (GAPI.forbidden, GAPI.permissionDenied) as e: ClientAPIAccessDeniedExit(str(e)) @@ -50,14 +92,14 @@ def _listPrivileges(cd): # gam show privileges def doPrintShowPrivileges(): def _showPrivilege(privilege, i, count): - _getMain().printEntity([Ent.PRIVILEGE, privilege['privilegeName']], i, count) + printEntity([Ent.PRIVILEGE, privilege['privilegeName']], i, count) Ind.Increment() - _getMain().printKeyValueList(['serviceId', privilege['serviceId']]) - _getMain().printKeyValueList(['serviceName', privilege.get('serviceName', _getMain().UNKNOWN)]) - _getMain().printKeyValueList(['isOuScopable', privilege['isOuScopable']]) + printKeyValueList(['serviceId', privilege['serviceId']]) + printKeyValueList(['serviceName', privilege.get('serviceName', UNKNOWN)]) + printKeyValueList(['isOuScopable', privilege['isOuScopable']]) jcount = len(privilege.get('childPrivileges', [])) if jcount > 0: - _getMain().printKeyValueList(['childPrivileges', jcount]) + printKeyValueList(['childPrivileges', jcount]) Ind.Increment() j = 0 for childPrivilege in privilege['childPrivileges']: @@ -66,13 +108,13 @@ def doPrintShowPrivileges(): Ind.Decrement() Ind.Decrement() - cd = _getMain().buildGAPIObject(API.DIRECTORY) - csvPF = _getMain().CSVPrintFile(_getMain().PRINT_PRIVILEGES_FIELDS, 'sortall') if Act.csvFormat() else None - _getMain().getTodriveOnly(csvPF) + cd = buildGAPIObject(API.DIRECTORY) + csvPF = CSVPrintFile(_getMain().PRINT_PRIVILEGES_FIELDS, 'sortall') if Act.csvFormat() else None + getTodriveOnly(csvPF) privileges = _listPrivileges(cd) if not csvPF: count = len(privileges) - _getMain().performActionNumItems(count, Ent.PRIVILEGE) + performActionNumItems(count, Ent.PRIVILEGE) Ind.Increment() i = 0 for privilege in privileges: @@ -81,22 +123,22 @@ def doPrintShowPrivileges(): Ind.Decrement() else: for privilege in privileges: - csvPF.WriteRowTitles(_getMain().flattenJSON(privilege)) + csvPF.WriteRowTitles(flattenJSON(privilege)) if csvPF: csvPF.writeCSVfile('Privileges') def makeRoleIdNameMap(): GM.Globals[GM.MAKE_ROLE_ID_NAME_MAP] = False - cd = _getMain().buildGAPIObject(API.DIRECTORY) + cd = buildGAPIObject(API.DIRECTORY) try: - result = _getMain().callGAPIpages(cd.roles(), 'list', 'items', + result = callGAPIpages(cd.roles(), 'list', 'items', throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED], customer=GC.Values[GC.CUSTOMER_ID], fields='nextPageToken,items(roleId,roleName)', maxResults=100) except (GAPI.badRequest, GAPI.customerNotFound): - _getMain().accessErrorExit(cd) + accessErrorExit(cd) except (GAPI.forbidden, GAPI.permissionDenied) as e: ClientAPIAccessDeniedExit(str(e)) for role in result: @@ -114,14 +156,14 @@ def roleid_from_role(role): return GM.Globals[GM.MAP_ROLE_NAME_TO_ID].get(role.lower(), None) def getRoleId(): - role = _getMain().getString(Cmd.OB_ROLE_ITEM) - cg = _getMain().UID_PATTERN.match(role) + role = getString(Cmd.OB_ROLE_ITEM) + cg = UID_PATTERN.match(role) if cg: roleId = cg.group(1) else: roleId = roleid_from_role(role) if not roleId: - _getMain().invalidChoiceExit(role, GM.Globals[GM.MAP_ROLE_NAME_TO_ID], True) + invalidChoiceExit(role, GM.Globals[GM.MAP_ROLE_NAME_TO_ID], True) return (role, roleId) PRINT_ADMIN_ROLES_FIELDS = ['roleId', 'roleName', 'roleDescription', 'isSuperAdminRole', 'isSystemRole'] @@ -138,10 +180,10 @@ def doCreateUpdateAdminRoles(): childPrivileges[childPrivilege['privilegeName']] = childPrivilege['serviceId'] expandChildPrivileges(childPrivilege) - cd = _getMain().buildGAPIObject(API.DIRECTORY) + cd = buildGAPIObject(API.DIRECTORY) updateCmd = Act.Get() == Act.UPDATE if not updateCmd: - body = {'roleName': _getMain().getString(Cmd.OB_STRING)} + body = {'roleName': getString(Cmd.OB_STRING)} else: body = {} _, roleId = getRoleId() @@ -149,7 +191,7 @@ def doCreateUpdateAdminRoles(): ouPrivileges = {} childPrivileges = {} csvPF = None - FJQC = _getMain().FormatJSONQuoteChar(None) + FJQC = FormatJSONQuoteChar(None) addCSVData = {} for privilege in _listPrivileges(cd): allPrivileges[privilege['privilegeName']] = privilege['serviceId'] @@ -157,18 +199,18 @@ def doCreateUpdateAdminRoles(): ouPrivileges[privilege['privilegeName']] = privilege['serviceId'] expandChildPrivileges(privilege) while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if myarg == 'privileges': - privs = _getMain().getString(Cmd.OB_PRIVILEGE_LIST).upper() + privs = getString(Cmd.OB_PRIVILEGE_LIST).upper() if privs == 'ALL': body['rolePrivileges'] = [{'privilegeName': p, 'serviceId': v} for p, v in allPrivileges.items()] elif privs == 'ALL_OU': body['rolePrivileges'] = [{'privilegeName': p, 'serviceId': v} for p, v in ouPrivileges.items()] elif privs == 'JSON': - body['rolePrivileges'] = _getMain().getJSON(['roleId', 'roleName', 'isAdminRole', 'isSystemRole']).get('rolePrivileges', []) + body['rolePrivileges'] = getJSON(['roleId', 'roleName', 'isAdminRole', 'isSystemRole']).get('rolePrivileges', []) else: if privs == 'SELECT': - privsList = [p.upper() for p in _getMain().getEntityList(Cmd.OB_PRIVILEGE_LIST)] + privsList = [p.upper() for p in getEntityList(Cmd.OB_PRIVILEGE_LIST)] else: privsList = privs.replace(',', ' ').split() body.setdefault('rolePrivileges', []) @@ -185,22 +227,22 @@ def doCreateUpdateAdminRoles(): elif p == 'SUPPORT': pass else: - _getMain().invalidChoiceExit(p, list(allPrivileges.keys())+list(ouPrivileges.keys())+list(childPrivileges.keys()), True) + invalidChoiceExit(p, list(allPrivileges.keys())+list(ouPrivileges.keys())+list(childPrivileges.keys()), True) elif myarg == 'description': - body['roleDescription'] = _getMain().getString(Cmd.OB_STRING, minLen=0) + body['roleDescription'] = getString(Cmd.OB_STRING, minLen=0) elif myarg == 'name': - body['roleName'] = _getMain().getString(Cmd.OB_STRING) + body['roleName'] = getString(Cmd.OB_STRING) elif myarg == 'csv': - csvPF = _getMain().CSVPrintFile(PRINT_ADMIN_ROLES_FIELDS) + csvPF = CSVPrintFile(PRINT_ADMIN_ROLES_FIELDS) FJQC.SetCsvPF(csvPF) elif csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() elif csvPF and myarg == 'addcsvdata': - _getMain().getAddCSVData(addCSVData) + getAddCSVData(addCSVData) else: FJQC.GetFormatJSONQuoteChar(myarg, True) if not updateCmd and not body.get('rolePrivileges'): - _getMain().missingArgumentExit('privileges') + missingArgumentExit('privileges') if csvPF: if addCSVData: csvPF.AddTitles(sorted(addCSVData.keys())) @@ -214,18 +256,18 @@ def doCreateUpdateAdminRoles(): fieldsList = 'roleId,roleName' try: if not updateCmd: - result = _getMain().callGAPI(cd.roles(), 'insert', + result = callGAPI(cd.roles(), 'insert', throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED]+[GAPI.DUPLICATE, GAPI.INVALID, GAPI.REQUIRED], customer=GC.Values[GC.CUSTOMER_ID], body=body, fields=fieldsList) else: - result = _getMain().callGAPI(cd.roles(), 'patch', + result = callGAPI(cd.roles(), 'patch', throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED]+[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION, GAPI.CONFLICT, GAPI.INVALID, GAPI.REQUIRED], customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, body=body, fields=fieldsList) if not csvPF: - _getMain().entityActionPerformed([Ent.ADMIN_ROLE, f"{result['roleName']}({result['roleId']})"]) + entityActionPerformed([Ent.ADMIN_ROLE, f"{result['roleName']}({result['roleId']})"]) else: if not FJQC.formatJSON: if addCSVData: @@ -238,14 +280,14 @@ def doCreateUpdateAdminRoles(): row[field] = result[field] if addCSVData: row.update(addCSVData) - row['JSON'] = json.dumps(_getMain().cleanJSON(result), ensure_ascii=False, sort_keys=True) + row['JSON'] = json.dumps(cleanJSON(result), ensure_ascii=False, sort_keys=True) csvPF.WriteRowNoFilter(row) except (GAPI.duplicate, GAPI.invalid, GAPI.required) as e: - _getMain().entityActionFailedWarning([Ent.ADMIN_ROLE, f"{body['roleName']}"], str(e)) + entityActionFailedWarning([Ent.ADMIN_ROLE, f"{body['roleName']}"], str(e)) except (GAPI.notFound, GAPI.failedPrecondition, GAPI.conflict) as e: - _getMain().entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e)) + entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e)) except (GAPI.badRequest, GAPI.customerNotFound): - _getMain().accessErrorExit(cd) + accessErrorExit(cd) except (GAPI.forbidden, GAPI.permissionDenied) as e: ClientAPIAccessDeniedExit(str(e)) if csvPF: @@ -253,41 +295,41 @@ def doCreateUpdateAdminRoles(): # gam delete adminrole def doDeleteAdminRole(): - cd = _getMain().buildGAPIObject(API.DIRECTORY) + cd = buildGAPIObject(API.DIRECTORY) role, roleId = getRoleId() - _getMain().checkForExtraneousArguments() + checkForExtraneousArguments() try: - _getMain().callGAPI(cd.roles(), 'delete', + callGAPI(cd.roles(), 'delete', throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED]+[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION], customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId) - _getMain().entityActionPerformed([Ent.ADMIN_ROLE, f"{role}({roleId})"]) + entityActionPerformed([Ent.ADMIN_ROLE, f"{role}({roleId})"]) except (GAPI.notFound, GAPI.failedPrecondition) as e: - _getMain().entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e)) + entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e)) except (GAPI.badRequest, GAPI.customerNotFound): - _getMain().accessErrorExit(cd) + accessErrorExit(cd) except (GAPI.forbidden, GAPI.permissionDenied) as e: ClientAPIAccessDeniedExit(str(e)) def _showAdminRole(role, FJQC, i=0, count=0): if FJQC.formatJSON: - _getMain().printLine(json.dumps(_getMain().cleanJSON(role), ensure_ascii=False, sort_keys=True)) + printLine(json.dumps(cleanJSON(role), ensure_ascii=False, sort_keys=True)) return - _getMain().printEntity([Ent.ADMIN_ROLE, role['roleName']], i, count) + printEntity([Ent.ADMIN_ROLE, role['roleName']], i, count) Ind.Increment() for field in PRINT_ADMIN_ROLES_FIELDS: if field != 'roleName' and field in role: - _getMain().printKeyValueList([field, role[field]]) + printKeyValueList([field, role[field]]) jcount = len(role.get('rolePrivileges', [])) if jcount > 0: - _getMain().printKeyValueList(['rolePrivileges', jcount]) + printKeyValueList(['rolePrivileges', jcount]) Ind.Increment() j = 0 for rolePrivilege in role['rolePrivileges']: j += 1 - _getMain().printKeyValueList(['privilegeName', rolePrivilege['privilegeName']]) + printKeyValueList(['privilegeName', rolePrivilege['privilegeName']]) Ind.Increment() - _getMain().printKeyValueList(['serviceId', rolePrivilege['serviceId']]) + printKeyValueList(['serviceId', rolePrivilege['serviceId']]) Ind.Decrement() Ind.Decrement() Ind.Decrement() @@ -303,17 +345,17 @@ def _showAdminRole(role, FJQC, i=0, count=0): # [nosystemroles] # [formatjson] def doInfoPrintShowAdminRoles(): - cd = _getMain().buildGAPIObject(API.DIRECTORY) + cd = buildGAPIObject(API.DIRECTORY) fieldsList = PRINT_ADMIN_ROLES_FIELDS[:] - csvPF = _getMain().CSVPrintFile(fieldsList, PRINT_ADMIN_ROLES_FIELDS) if Act.csvFormat() else None - FJQC = _getMain().FormatJSONQuoteChar(csvPF) + csvPF = CSVPrintFile(fieldsList, PRINT_ADMIN_ROLES_FIELDS) if Act.csvFormat() else None + FJQC = FormatJSONQuoteChar(csvPF) noSystemRoles = oneItemPerRow = False if Act.Get() != Act.INFO: roleId = None else: _, roleId = getRoleId() while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() elif roleId is None and myarg == 'role': @@ -335,26 +377,26 @@ def doInfoPrintShowAdminRoles(): csvPF.AddTitles(['privilegeName', 'serviceId']) try: if roleId is None: - fields = _getMain().getItemFieldsFromFieldsList('items', fieldsList) - _getMain().printGettingAllAccountEntities(Ent.ADMIN_ROLE) - roles = _getMain().callGAPIpages(cd.roles(), 'list', 'items', - pageMessage=_getMain().getPageMessage(), + fields = getItemFieldsFromFieldsList('items', fieldsList) + printGettingAllAccountEntities(Ent.ADMIN_ROLE) + roles = callGAPIpages(cd.roles(), 'list', 'items', + pageMessage=getPageMessage(), throwReasons=[GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED], customer=GC.Values[GC.CUSTOMER_ID], fields=fields) if noSystemRoles: roles = [role for role in roles if not role.get('isSystemRole', False)] else: - fields = _getMain().getFieldsFromFieldsList(fieldsList) - roles = [_getMain().callGAPI(cd.roles(), 'get', + fields = getFieldsFromFieldsList(fieldsList) + roles = [callGAPI(cd.roles(), 'get', throwReasons=[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION, GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED], customer=GC.Values[GC.CUSTOMER_ID], roleId=roleId, fields=fields)] except (GAPI.notFound, GAPI.failedPrecondition) as e: - _getMain().entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e)) + entityActionFailedWarning([Ent.ADMIN_ROLE, roleId], str(e)) except (GAPI.badRequest, GAPI.customerNotFound): - _getMain().accessErrorExit(cd) + accessErrorExit(cd) except (GAPI.forbidden, GAPI.permissionDenied) as e: ClientAPIAccessDeniedExit(str(e)) for role in roles: @@ -363,7 +405,7 @@ def doInfoPrintShowAdminRoles(): if not csvPF: count = len(roles) if not FJQC.formatJSON: - _getMain().performActionNumItems(count, Ent.ADMIN_ROLE) + performActionNumItems(count, Ent.ADMIN_ROLE) Ind.Increment() i = 0 for role in roles: @@ -373,7 +415,7 @@ def doInfoPrintShowAdminRoles(): else: for role in roles: if not oneItemPerRow or 'rolePrivileges' not in role: - row = _getMain().flattenJSON(role) + row = flattenJSON(role) if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): @@ -381,18 +423,18 @@ def doInfoPrintShowAdminRoles(): for field in PRINT_ADMIN_ROLES_FIELDS: if field in role: row[field] = role[field] - row['JSON'] = json.dumps(_getMain().cleanJSON(role), ensure_ascii=False, sort_keys=True) + row['JSON'] = json.dumps(cleanJSON(role), ensure_ascii=False, sort_keys=True) csvPF.WriteRowNoFilter(row) else: privileges = role.pop('rolePrivileges') - baserow = _getMain().flattenJSON(role) + baserow = flattenJSON(role) for privilege in privileges: - row = _getMain().flattenJSON(privilege, flattened=baserow.copy()) + row = flattenJSON(privilege, flattened=baserow.copy()) if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): row = baserow.copy() - row['JSON'] = json.dumps(_getMain().cleanJSON(privilege), ensure_ascii=False, sort_keys=True) + row['JSON'] = json.dumps(cleanJSON(privilege), ensure_ascii=False, sort_keys=True) csvPF.WriteRowNoFilter(row) if csvPF: csvPF.writeCSVfile('Admin Roles') @@ -409,26 +451,26 @@ ADMIN_CONDITION_CHOICE_MAP = { # gam create admin | customer|(org_unit ) # [condition securitygroup|nonsecuritygroup] def doCreateAdmin(): - cd = _getMain().buildGAPIObject(API.DIRECTORY) - user = _getMain().getEmailAddress(returnUIDprefix='uid:') - body = {'assignedTo': _getMain().convertEmailAddressToUID(user, cd, emailType='any')} + cd = buildGAPIObject(API.DIRECTORY) + user = getEmailAddress(returnUIDprefix='uid:') + body = {'assignedTo': convertEmailAddressToUID(user, cd, emailType='any')} role, roleId = getRoleId() body['roleId'] = roleId - body['scopeType'] = _getMain().getChoice(ADMIN_SCOPE_TYPE_CHOICE_MAP, mapChoice=True) + body['scopeType'] = getChoice(ADMIN_SCOPE_TYPE_CHOICE_MAP, mapChoice=True) if body['scopeType'] == 'ORG_UNIT': - orgUnit, orgUnitId = _getMain().getOrgUnitId(cd) + orgUnit, orgUnitId = getOrgUnitId(cd) body['orgUnitId'] = orgUnitId[3:] scope = f'ORG_UNIT {orgUnit}' else: scope = 'CUSTOMER' while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if myarg == 'condition': - body['condition'] = _getMain().getChoice(ADMIN_CONDITION_CHOICE_MAP, mapChoice=True) + body['condition'] = getChoice(ADMIN_CONDITION_CHOICE_MAP, mapChoice=True) else: - _getMain().unknownArgumentExit() + unknownArgumentExit() try: - result = _getMain().callGAPI(cd.roleAssignments(), 'insert', + result = callGAPI(cd.roleAssignments(), 'insert', throwReasons=[GAPI.INTERNAL_ERROR, GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.CUSTOMER_EXCEEDED_ROLE_ASSIGNMENTS_LIMIT, GAPI.SERVICE_NOT_AVAILABLE, GAPI.INVALID_ORGUNIT, GAPI.DUPLICATE, GAPI.CONDITION_NOT_MET, @@ -442,40 +484,40 @@ def doCreateAdmin(): entityType = Ent.GROUP else: entityType = Ent.ADMINISTRATOR - _getMain().entityActionPerformedMessage([Ent.ADMIN_ROLE_ASSIGNMENT, result['roleAssignmentId']], + entityActionPerformedMessage([Ent.ADMIN_ROLE_ASSIGNMENT, result['roleAssignmentId']], f'{Ent.Singular(entityType)} {user}, {Ent.Singular(Ent.ADMIN_ROLE)} {role}, {Ent.Singular(Ent.SCOPE)} {scope}') except GAPI.internalError: pass except (GAPI.customerExceededRoleAssignmentsLimit, GAPI.serviceNotAvailable, GAPI.conditionNotMet) as e: - _getMain().entityActionFailedWarning([Ent.ADMINISTRATOR, user, Ent.ADMIN_ROLE, role], str(e)) + entityActionFailedWarning([Ent.ADMINISTRATOR, user, Ent.ADMIN_ROLE, role], str(e)) except GAPI.invalidOrgunit: - _getMain().entityActionFailedWarning([Ent.ADMINISTRATOR, user], Msg.INVALID_ORGUNIT) + entityActionFailedWarning([Ent.ADMINISTRATOR, user], Msg.INVALID_ORGUNIT) except GAPI.duplicate: - _getMain().entityActionFailedWarning([Ent.ADMINISTRATOR, user, Ent.ADMIN_ROLE, role], Msg.DUPLICATE) + entityActionFailedWarning([Ent.ADMINISTRATOR, user, Ent.ADMIN_ROLE, role], Msg.DUPLICATE) except (GAPI.badRequest, GAPI.customerNotFound): - _getMain().accessErrorExit(cd) + accessErrorExit(cd) except (GAPI.forbidden, GAPI.permissionDenied) as e: ClientAPIAccessDeniedExit(str(e)) # gam delete admin def doDeleteAdmin(): - cd = _getMain().buildGAPIObject(API.DIRECTORY) - roleAssignmentId = _getMain().getString(Cmd.OB_ROLE_ASSIGNMENT_ID) - _getMain().checkForExtraneousArguments() + cd = buildGAPIObject(API.DIRECTORY) + roleAssignmentId = getString(Cmd.OB_ROLE_ASSIGNMENT_ID) + checkForExtraneousArguments() try: - _getMain().callGAPI(cd.roleAssignments(), 'delete', + callGAPI(cd.roleAssignments(), 'delete', throwReasons=[GAPI.NOT_FOUND, GAPI.OPERATION_NOT_SUPPORTED, GAPI.INVALID_INPUT, GAPI.SERVICE_NOT_AVAILABLE, GAPI.RESOURCE_NOT_FOUND, GAPI.FAILED_PRECONDITION, GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED], retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS, customer=GC.Values[GC.CUSTOMER_ID], roleAssignmentId=roleAssignmentId) - _getMain().entityActionPerformed([Ent.ADMIN_ROLE_ASSIGNMENT, roleAssignmentId]) + entityActionPerformed([Ent.ADMIN_ROLE_ASSIGNMENT, roleAssignmentId]) except (GAPI.notFound, GAPI.operationNotSupported, GAPI.invalidInput, GAPI.serviceNotAvailable, GAPI.resourceNotFound, GAPI.failedPrecondition) as e: - _getMain().entityActionFailedWarning([Ent.ADMIN_ROLE_ASSIGNMENT, roleAssignmentId], str(e)) + entityActionFailedWarning([Ent.ADMIN_ROLE_ASSIGNMENT, roleAssignmentId], str(e)) except (GAPI.badRequest, GAPI.customerNotFound): - _getMain().accessErrorExit(cd) + accessErrorExit(cd) except (GAPI.forbidden, GAPI.permissionDenied) as e: ClientAPIAccessDeniedExit(str(e)) @@ -503,11 +545,11 @@ PRINT_ADMIN_TITLES = ['roleAssignmentId', 'roleId', 'role', def doPrintShowAdmins(): def _getAssigneeTypes(myarg): if myarg in {'type', 'types'}: - for gtype in _getMain().getString(Cmd.OB_ADMIN_ASSIGNEE_TYPE_LIST).lower().replace(',', ' ').split(): + for gtype in getString(Cmd.OB_ADMIN_ASSIGNEE_TYPE_LIST).lower().replace(',', ' ').split(): if gtype in ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP: typesSet.add(ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP[gtype]) else: - _getMain().invalidChoiceExit(gtype, ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP, True) + invalidChoiceExit(gtype, ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP, True) else: return False return True @@ -517,7 +559,7 @@ def doPrintShowAdmins(): roleId = admin['roleId'] if roleId not in rolePrivileges: try: - rolePrivileges[roleId] = _getMain().callGAPI(cd.roles(), 'get', + rolePrivileges[roleId] = callGAPI(cd.roles(), 'get', throwReasons=[GAPI.NOT_FOUND, GAPI.FAILED_PRECONDITION, GAPI.SERVICE_NOT_AVAILABLE, GAPI.BAD_REQUEST, GAPI.CUSTOMER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PERMISSION_DENIED], @@ -526,10 +568,10 @@ def doPrintShowAdmins(): roleId=roleId, fields='rolePrivileges') except (GAPI.notFound, GAPI.failedPrecondition, GAPI.serviceNotAvailable) as e: - _getMain().entityActionFailedExit([Ent.USER, userKey, Ent.ADMIN_ROLE, admin['roleId']], str(e)) + entityActionFailedExit([Ent.USER, userKey, Ent.ADMIN_ROLE, admin['roleId']], str(e)) rolePrivileges[roleId] = None except (GAPI.badRequest, GAPI.customerNotFound): - _getMain().accessErrorExit(cd) + accessErrorExit(cd) except (GAPI.forbidden, GAPI.permissionDenied) as e: ClientAPIAccessDeniedExit(str(e)) return rolePrivileges[roleId] @@ -540,7 +582,7 @@ def doPrintShowAdmins(): admin['assignedToUnknown'] = False if assignedTo not in assignedToIdEmailMap: emailTypes = ALL_ASSIGNEE_TYPES if admin.get('assigneeType', '') != 'group' else ['group'] - assigneeEmail, assigneeType = _getMain().convertUIDtoEmailAddressWithType(f'uid:{assignedTo}', cd, sal, emailTypes=emailTypes) + assigneeEmail, assigneeType = convertUIDtoEmailAddressWithType(f'uid:{assignedTo}', cd, sal, emailTypes=emailTypes) assignedToField = ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP.get(assigneeType, 'assignedToUnknown') if assignedToField == 'assignedToUnknown': assigneeEmail = True @@ -550,7 +592,7 @@ def doPrintShowAdmins(): if privileges is not None: admin.update(privileges) if 'orgUnitId' in admin: - admin['orgUnit'] = _getMain().convertOrgUnitIDtoPath(cd, f'id:{admin["orgUnitId"]}') + admin['orgUnit'] = convertOrgUnitIDtoPath(cd, f'id:{admin["orgUnitId"]}') if 'condition' in admin: if admin['condition'] == SECURITY_GROUP_CONDITION: admin['condition'] = 'securitygroup' @@ -561,9 +603,9 @@ def doPrintShowAdmins(): # admin['assignedToField'], not typesSet or admin['assignedToField'] in typesSet) return not typesSet or admin['assignedToField'] in typesSet - cd = _getMain().buildGAPIObject(API.DIRECTORY) - sal = _getMain().buildGAPIObject(API.SERVICEACCOUNTLOOKUP) - csvPF = _getMain().CSVPrintFile(PRINT_ADMIN_TITLES) if Act.csvFormat() else None + cd = buildGAPIObject(API.DIRECTORY) + sal = buildGAPIObject(API.SERVICEACCOUNTLOOKUP) + csvPF = CSVPrintFile(PRINT_ADMIN_TITLES) if Act.csvFormat() else None roleId = None userKey = None # debug = False @@ -571,12 +613,12 @@ def doPrintShowAdmins(): typesSet = set() kwargs = {} rolePrivileges = {} - allGroupRoles = ','.join(sorted(_getMain().ALL_GROUP_ROLES)) + allGroupRoles = ','.join(sorted(ALL_GROUP_ROLES)) fieldsList = PRINT_ADMIN_FIELDS+['assigneeType'] assignedToIdEmailMap = {} while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() elif myarg in {'user', 'group'}: - userKey = kwargs['userKey'] = _getMain().getEmailAddress() + userKey = kwargs['userKey'] = getEmailAddress() diff --git a/src/gam/cmd/alerts.py b/src/gam/cmd/alerts.py index 1e7334f5..0d2e1eb2 100644 --- a/src/gam/cmd/alerts.py +++ b/src/gam/cmd/alerts.py @@ -14,6 +14,31 @@ from gamlib import glgapi as GAPI from gamlib import glglobals as GM from gamlib import glindent from gamlib import glmsgs as Msg +from gam.util.api import _getAdminEmail, buildGAPIServiceObject, callGAPI, callGAPIpages +from gam.util.args import ( + OrderBy, + checkForExtraneousArguments, + getArgument, + getChoice, + getString, +) +from gam.util.csv_pf import ( + CSVPrintFile, + FormatJSONQuoteChar, + cleanJSON, + flattenJSON, + showJSON, +) +from gam.util.display import ( + entityActionFailedWarning, + entityActionPerformed, + entityPerformAction, + performActionNumItems, + printEntity, + printKeyValueList, + printLine, + userAlertsServiceNotEnabledWarning, +) Act = glaction.GamAction() Ent = glentity.GamEntity() @@ -21,81 +46,70 @@ Ind = glindent.GamIndent() Cmd = glclargs.GamCLArgs() -def _getMain(): - return sys.modules['gam'] - -def __getattr__(name): - """Fall back to gam module for any undefined names.""" - main = _getMain() - try: - return getattr(main, name) - except AttributeError: - raise AttributeError(f"module {__name__!r} has no attribute {name!r}") - def doDeleteOrUndeleteAlert(): - alertId = _getMain().getString(Cmd.OB_ALERT_ID) + alertId = getString(Cmd.OB_ALERT_ID) if Act.Get() == Act.DELETE: action = 'delete' kwargs = {} else: action = 'undelete' kwargs = {'body': {}} - user, ac = _getMain().buildGAPIServiceObject(API.ALERTCENTER, _getMain()._getAdminEmail()) + user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail()) if not ac: return try: - _getMain().callGAPI(ac.alerts(), action, + callGAPI(ac.alerts(), action, throwReasons=GAPI.ALERT_THROW_REASONS+[GAPI.NOT_FOUND], alertId=alertId, **kwargs) - _getMain().entityActionPerformed([Ent.ALERT, alertId]) + entityActionPerformed([Ent.ALERT, alertId]) except GAPI.notFound as e: - _getMain().entityActionFailedWarning([Ent.ALERT_ID, alertId], str(e)) + entityActionFailedWarning([Ent.ALERT_ID, alertId], str(e)) except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied): - _getMain().userAlertsServiceNotEnabledWarning(user) + userAlertsServiceNotEnabledWarning(user) def _showAlertSettings(settings): notifications = settings.get('notifications', []) count = len(notifications) - _getMain().entityPerformAction([Ent.ALERT_SETTINGS, None]) + entityPerformAction([Ent.ALERT_SETTINGS, None]) i = 0 for notification in notifications: i += 1 - _getMain().printEntity([Ent.NOTIFICATION, None], i, count) + printEntity([Ent.NOTIFICATION, None], i, count) Ind.Increment() - _getMain().showJSON(None, notification) + showJSON(None, notification) Ind.Decrement() # gam show alertsettings def doShowAlertSettings(): - _getMain().checkForExtraneousArguments() - user, ac = _getMain().buildGAPIServiceObject(API.ALERTCENTER, _getMain()._getAdminEmail()) + checkForExtraneousArguments() + user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail()) if not ac: return try: - settings = _getMain().callGAPI(ac.v1beta1(), 'getSettings', + settings = callGAPI(ac.v1beta1(), 'getSettings', throwReasons=GAPI.ALERT_THROW_REASONS) _showAlertSettings(settings) except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied): - _getMain().userAlertsServiceNotEnabledWarning(user) + userAlertsServiceNotEnabledWarning(user) # gam update alertsettings def doUpdateAlertSettings(clear=False): if not clear: body = {'notifications': - [{'cloudPubsubTopic': {'topicName': _getMain().getString(Cmd.OB_PUBSUB_TOPIC_NAME)}}]} + [{'cloudPubsubTopic': {'topicName': getString(Cmd.OB_PUBSUB_TOPIC_NAME)}}]} else: body = {'notifications': []} - _getMain().checkForExtraneousArguments() - user, ac = _getMain().buildGAPIServiceObject(API.ALERTCENTER, _getMain()._getAdminEmail()) + checkForExtraneousArguments() + user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail()) if not ac: return try: - settings = _getMain().callGAPI(ac.v1beta1(), 'updateSettings', + settings = callGAPI(ac.v1beta1(), 'updateSettings', throwReasons=GAPI.ALERT_THROW_REASONS, body=body) _showAlertSettings(settings) except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied): - _getMain().userAlertsServiceNotEnabledWarning(user) + userAlertsServiceNotEnabledWarning(user) # gam clear alertsettings def doClearAlertSettings(): @@ -105,39 +119,39 @@ ALERT_TIME_OBJECTS = {'createTime', 'startTime', 'endTime'} def _showAlert(alert, FJQC, i=0, count=0): if FJQC.formatJSON: - _getMain().printLine(json.dumps(_getMain().cleanJSON(alert, timeObjects=ALERT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)) + printLine(json.dumps(cleanJSON(alert, timeObjects=ALERT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)) return - _getMain().printEntity([Ent.ALERT_ID, alert['alertId']], i, count) + printEntity([Ent.ALERT_ID, alert['alertId']], i, count) Ind.Increment() for field in ['createTime', 'startTime', 'endTime']: if field in alert: - _getMain().printKeyValueList([field, _getMain().formatLocalTime(alert[field])]) + printKeyValueList([field, formatLocalTime(alert[field])]) for field in ['customerId', 'type', 'source', 'deleted', 'securityInvestigationToolLink']: if field in alert: - _getMain().printKeyValueList([field, alert[field]]) + printKeyValueList([field, alert[field]]) if 'data' in alert: - _getMain().showJSON('data', alert['data']) + showJSON('data', alert['data']) Ind.Decrement() # gam info alert [formatjson] def doInfoAlert(): - alertId = _getMain().getString(Cmd.OB_ALERT_ID) - FJQC = _getMain().FormatJSONQuoteChar() + alertId = getString(Cmd.OB_ALERT_ID) + FJQC = FormatJSONQuoteChar() while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() FJQC.GetFormatJSON(myarg) - user, ac = _getMain().buildGAPIServiceObject(API.ALERTCENTER, _getMain()._getAdminEmail()) + user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail()) if not ac: return try: - alert = _getMain().callGAPI(ac.alerts(), 'get', + alert = callGAPI(ac.alerts(), 'get', throwReasons=GAPI.ALERT_THROW_REASONS+[GAPI.NOT_FOUND], alertId=alertId) _showAlert(alert, FJQC) except GAPI.notFound as e: - _getMain().entityActionFailedWarning([Ent.ALERT_ID, alertId], str(e)) + entityActionFailedWarning([Ent.ALERT_ID, alertId], str(e)) except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied): - _getMain().userAlertsServiceNotEnabledWarning(user) + userAlertsServiceNotEnabledWarning(user) ALERT_ORDERBY_CHOICE_MAP = { 'createdate': 'create_time', @@ -149,39 +163,39 @@ ALERT_ORDERBY_CHOICE_MAP = { # gam print alerts [todrive *] [filter ] [orderby createtime [ascending|descending]] # [formatjson [quotechar ]] def doPrintShowAlerts(): - csvPF = _getMain().CSVPrintFile(['alertId', 'createTime']) if Act.csvFormat() else None - FJQC = _getMain().FormatJSONQuoteChar(csvPF) + csvPF = CSVPrintFile(['alertId', 'createTime']) if Act.csvFormat() else None + FJQC = FormatJSONQuoteChar(csvPF) kwargs = {} - OBY = _getMain().OrderBy(ALERT_ORDERBY_CHOICE_MAP) + OBY = OrderBy(ALERT_ORDERBY_CHOICE_MAP) while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() elif myarg == 'filter': - kwargs['filter'] = _getMain().getString(Cmd.OB_STRING).replace("'", '"') + kwargs['filter'] = getString(Cmd.OB_STRING).replace("'", '"') elif myarg == 'orderby': OBY.GetChoice() else: FJQC.GetFormatJSONQuoteChar(myarg, True) if csvPF and not FJQC.formatJSON: csvPF.SetSortTitles(['alertId', 'createTime', 'startTime', 'endTime', 'customerId', 'type', 'source', 'deleted']) - user, ac = _getMain().buildGAPIServiceObject(API.ALERTCENTER, _getMain()._getAdminEmail()) + user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail()) if not ac: return try: - alerts = _getMain().callGAPIpages(ac.alerts(), 'list', 'alerts', + alerts = callGAPIpages(ac.alerts(), 'list', 'alerts', throwReasons=GAPI.ALERT_THROW_REASONS+[GAPI.BAD_REQUEST, GAPI.INVALID_ARGUMENT], orderBy=OBY.orderBy, **kwargs) except (GAPI.badRequest, GAPI.invalidArgument) as e: - _getMain().entityActionFailedWarning([Ent.ALERT, None], str(e)) + entityActionFailedWarning([Ent.ALERT, None], str(e)) return except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied): - _getMain().userAlertsServiceNotEnabledWarning(user) + userAlertsServiceNotEnabledWarning(user) return if not csvPF: jcount = len(alerts) if not FJQC.formatJSON: - _getMain().performActionNumItems(jcount, Ent.ALERT) + performActionNumItems(jcount, Ent.ALERT) Ind.Increment() j = 0 for alert in alerts: @@ -190,13 +204,13 @@ def doPrintShowAlerts(): Ind.Decrement() else: for alert in alerts: - row = _getMain().flattenJSON(alert, timeObjects=ALERT_TIME_OBJECTS) + row = flattenJSON(alert, timeObjects=ALERT_TIME_OBJECTS) if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): csvPF.WriteRowNoFilter({'alertId': alert['alertId'], 'createTime': formatLocalTime(alert['createTime']), - 'JSON': json.dumps(_getMain().cleanJSON(alert, timeObjects=ALERT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)}) + 'JSON': json.dumps(cleanJSON(alert, timeObjects=ALERT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)}) if csvPF: csvPF.writeCSVfile('Alerts') @@ -208,33 +222,33 @@ ALERT_TYPE_MAP = { # gam create alertfeedback not_useful|somewhat_useful|very_useful def doCreateAlertFeedback(): - user, ac = _getMain().buildGAPIServiceObject(API.ALERTCENTER, _getMain()._getAdminEmail()) + user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail()) if not ac: return - alertId = _getMain().getString(Cmd.OB_ALERT_ID) - body = {'type': _getMain().getChoice(ALERT_TYPE_MAP, mapChoice=True)} + alertId = getString(Cmd.OB_ALERT_ID) + body = {'type': getChoice(ALERT_TYPE_MAP, mapChoice=True)} try: - result = _getMain().callGAPI(ac.alerts().feedback(), 'create', + result = callGAPI(ac.alerts().feedback(), 'create', throwReasons=GAPI.ALERT_THROW_REASONS+[GAPI.NOT_FOUND], alertId=alertId, body=body) - _getMain().entityActionPerformed([Ent.ALERT, alertId, Ent.ALERT_FEEDBACK_ID, result['feedbackId']]) + entityActionPerformed([Ent.ALERT, alertId, Ent.ALERT_FEEDBACK_ID, result['feedbackId']]) except GAPI.notFound as e: - _getMain().entityActionFailedWarning([Ent.ALERT_ID, alertId], str(e)) + entityActionFailedWarning([Ent.ALERT_ID, alertId], str(e)) except (GAPI.serviceNotAvailable, GAPI.authError): - _getMain().userAlertsServiceNotEnabledWarning(user) + userAlertsServiceNotEnabledWarning(user) def _showAlertFeedback(feedback, FJQC, i=0, count=0): if FJQC.formatJSON: - _getMain().printLine(json.dumps(_getMain().cleanJSON(feedback, timeObjects=ALERT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)) + printLine(json.dumps(cleanJSON(feedback, timeObjects=ALERT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)) return - _getMain().printEntity([Ent.ALERT_FEEDBACK_ID, feedback['feedbackId']], i, count) + printEntity([Ent.ALERT_FEEDBACK_ID, feedback['feedbackId']], i, count) Ind.Increment() for field in ['createTime']: if field in feedback: - _getMain().printKeyValueList([field, _getMain().formatLocalTime(feedback[field])]) + printKeyValueList([field, formatLocalTime(feedback[field])]) for field in ['alertId', 'customerId', 'type', 'email']: if field in feedback: - _getMain().printKeyValueList([field, feedback[field]]) + printKeyValueList([field, feedback[field]]) Ind.Decrement() ALERT_FEEDBACK_ORDERBY_CHOICE_MAP = { @@ -247,37 +261,37 @@ ALERT_FEEDBACK_ORDERBY_CHOICE_MAP = { # gam print alertfeedback [todrive *] [alert ] [filter ] [orderby createtime [ascending|descending]] # [formatjson [quotechar ]] def doPrintShowAlertFeedback(): - csvPF = _getMain().CSVPrintFile(['feedbackId', 'createTime']) if Act.csvFormat() else None - FJQC = _getMain().FormatJSONQuoteChar(csvPF) + csvPF = CSVPrintFile(['feedbackId', 'createTime']) if Act.csvFormat() else None + FJQC = FormatJSONQuoteChar(csvPF) kwargs = {} alertId = '-' - OBY = _getMain().OrderBy(ALERT_FEEDBACK_ORDERBY_CHOICE_MAP) + OBY = OrderBy(ALERT_FEEDBACK_ORDERBY_CHOICE_MAP) while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() elif myarg == 'alertid': - alertId = _getMain().getString(Cmd.OB_ALERT_ID) + alertId = getString(Cmd.OB_ALERT_ID) elif myarg == 'filter': - kwargs['filter'] = _getMain().getString(Cmd.OB_STRING).replace("'", '"') + kwargs['filter'] = getString(Cmd.OB_STRING).replace("'", '"') elif myarg == 'orderby': OBY.GetChoice() else: FJQC.GetFormatJSONQuoteChar(myarg, True) if csvPF and not FJQC.formatJSON: csvPF.SetSortTitles(['feedbackId', 'createTime', 'alertId', 'customerId', 'type', 'email']) - user, ac = _getMain().buildGAPIServiceObject(API.ALERTCENTER, _getMain()._getAdminEmail()) + user, ac = buildGAPIServiceObject(API.ALERTCENTER, _getAdminEmail()) if not ac: return try: - feedbacks = _getMain().callGAPIpages(ac.alerts().feedback(), 'list', 'feedback', + feedbacks = callGAPIpages(ac.alerts().feedback(), 'list', 'feedback', throwReasons=GAPI.ALERT_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.BAD_REQUEST], alertId=alertId, **kwargs) except (GAPI.notFound, GAPI.badRequest) as e: - _getMain().entityActionFailedWarning([Ent.ALERT_ID, alertId], str(e)) + entityActionFailedWarning([Ent.ALERT_ID, alertId], str(e)) return except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.permissionDenied): - _getMain().userAlertsServiceNotEnabledWarning(user) + userAlertsServiceNotEnabledWarning(user) return for sk in OBY.items: if sk.endswith(' desc'): @@ -290,7 +304,7 @@ def doPrintShowAlertFeedback(): if not csvPF: jcount = len(feedbacks) if not FJQC.formatJSON: - _getMain().performActionNumItems(jcount, Ent.ALERT_FEEDBACK) + performActionNumItems(jcount, Ent.ALERT_FEEDBACK) Ind.Increment() j = 0 for feedback in feedbacks: @@ -299,13 +313,13 @@ def doPrintShowAlertFeedback(): Ind.Decrement() else: for feedback in feedbacks: - row = _getMain().flattenJSON(feedback, timeObjects=ALERT_TIME_OBJECTS) + row = flattenJSON(feedback, timeObjects=ALERT_TIME_OBJECTS) if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): csvPF.WriteRowNoFilter({'feedbackId': feedback['feedbackId'], 'createTime': formatLocalTime(feedback['createTime']), - 'JSON': json.dumps(_getMain().cleanJSON(feedback, timeObjects=ALERT_TIME_OBJECTS), + 'JSON': json.dumps(cleanJSON(feedback, timeObjects=ALERT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)}) if csvPF: csvPF.writeCSVfile('Alert Feedbacks') diff --git a/src/gam/cmd/aliases.py b/src/gam/cmd/aliases.py index 94d1f620..59a320b2 100644 --- a/src/gam/cmd/aliases.py +++ b/src/gam/cmd/aliases.py @@ -13,6 +13,45 @@ from gamlib import glgapi as GAPI from gamlib import glglobals as GM from gamlib import glindent from gamlib import glmsgs as Msg +from gam.util.access import entityUnknownWarning +from gam.util.api import buildGAPIObject, callGAPI, callGAPIpages +from gam.util.args import ( + checkForExtraneousArguments, + getAddCSVData, + getArgument, + getBoolean, + getCharacter, + getChoice, + getEmailAddress, + getInteger, + getREPattern, + getString, + normalizeEmailAddressOrUID, +) +from gam.util.csv_pf import CSVPrintFile +from gam.util.display import ( + entityActionFailedWarning, + entityActionNotPerformedWarning, + entityActionPerformed, + entityPerformActionNumItems, + getPageMessage, + invalidMember, + invalidQuery, + printEntity, + printEntityKVList, + printGettingAllAccountEntities, + printGettingEntityItemForWhom, +) +from gam.util.entity import ( + convertEntityToList, + getEntityArgument, + getEntityList, + getEntityToModify, + getQueries, +) +from gam.util.errors import entityActionFailedExit, unknownArgumentExit +from gam.util.orgunits import getOrgUnitItem +from gam.util.output import setSysExitRC Act = glaction.GamAction() Ent = glentity.GamEntity() @@ -35,7 +74,7 @@ def doCreateUpdateAliases(): def verifyAliasTargetExists(): if targetType != 'group': try: - _getMain().callGAPI(cd.users(), 'get', + callGAPI(cd.users(), 'get', throwReasons=GAPI.USER_GET_THROW_REASONS, userKey=targetEmail, fields='primaryEmail') return 'user' @@ -44,7 +83,7 @@ def doCreateUpdateAliases(): if targetType == 'user': return None try: - _getMain().callGAPI(cd.groups(), 'get', + callGAPI(cd.groups(), 'get', throwReasons=GAPI.GROUP_GET_THROW_REASONS, retryReasons=GAPI.GROUP_GET_RETRY_REASONS, groupKey=targetEmail, fields='email') return 'group' @@ -56,317 +95,317 @@ def doCreateUpdateAliases(): # User alias if targetType != 'group': try: - _getMain().callGAPI(cd.users().aliases(), 'delete', + callGAPI(cd.users().aliases(), 'delete', throwReasons=[GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], userKey=aliasEmail, alias=aliasEmail) - _getMain().printEntityKVList([Ent.USER_ALIAS, aliasEmail], [Act.PerformedName(Act.DELETE)], i, count) + printEntityKVList([Ent.USER_ALIAS, aliasEmail], [Act.PerformedName(Act.DELETE)], i, count) time.sleep(waitAfterDelete) return True except GAPI.conditionNotMet as e: - _getMain().entityActionFailedWarning([Ent.USER_ALIAS, aliasEmail], str(e), i, count) + entityActionFailedWarning([Ent.USER_ALIAS, aliasEmail], str(e), i, count) return False except (GAPI.userNotFound, GAPI.badRequest, GAPI.invalid, GAPI.forbidden, GAPI.invalidResource): if targetType == 'user': - _getMain().entityUnknownWarning(Ent.USER_ALIAS, aliasEmail, i, count) + entityUnknownWarning(Ent.USER_ALIAS, aliasEmail, i, count) return False # Group alias try: - _getMain().callGAPI(cd.groups().aliases(), 'delete', + callGAPI(cd.groups().aliases(), 'delete', throwReasons=[GAPI.GROUP_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], groupKey=aliasEmail, alias=aliasEmail) time.sleep(waitAfterDelete) return True except GAPI.conditionNotMet as e: - _getMain().entityActionFailedWarning([Ent.GROUP_ALIAS, aliasEmail], str(e), i, count) + entityActionFailedWarning([Ent.GROUP_ALIAS, aliasEmail], str(e), i, count) return False except GAPI.forbidden: - _getMain().entityUnknownWarning(Ent.GROUP_ALIAS, aliasEmail, i, count) + entityUnknownWarning(Ent.GROUP_ALIAS, aliasEmail, i, count) return False except (GAPI.groupNotFound, GAPI.badRequest, GAPI.invalid, GAPI.invalidResource): - _getMain().entityUnknownWarning(Ent.GROUP_ALIAS, aliasEmail, i, count) + entityUnknownWarning(Ent.GROUP_ALIAS, aliasEmail, i, count) return False - cd = _getMain().buildGAPIObject(API.DIRECTORY) + cd = buildGAPIObject(API.DIRECTORY) ci = None updateCmd = Act.Get() == Act.UPDATE - aliasList = _getMain().getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY) - targetType = _getMain().getChoice(_getMain().ALIAS_TARGET_TYPES) - targetEmails = _getMain().getEntityList(Cmd.OB_GROUP_ENTITY) + aliasList = getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY) + targetType = getChoice(_getMain().ALIAS_TARGET_TYPES) + targetEmails = getEntityList(Cmd.OB_GROUP_ENTITY) entityLists = targetEmails if isinstance(targetEmails, dict) else None verifyNotInvitable = False verifyTarget = updateCmd waitAfterDelete = 2 while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if (not updateCmd) and myarg == 'verifynotinvitable': verifyNotInvitable = True elif updateCmd and myarg == 'notargetverify': verifyTarget = False elif updateCmd and myarg == 'waitafterdelete': - waitAfterDelete = _getMain().getInteger(minVal=2, maxVal=10) + waitAfterDelete = getInteger(minVal=2, maxVal=10) else: - _getMain().unknownArgumentExit() + unknownArgumentExit() i = 0 count = len(aliasList) for aliasEmail in aliasList: i += 1 if entityLists: targetEmails = entityLists[aliasEmail] - aliasEmail = _getMain().normalizeEmailAddressOrUID(aliasEmail, noUid=True, noLower=True) + aliasEmail = normalizeEmailAddressOrUID(aliasEmail, noUid=True, noLower=True) if verifyNotInvitable: isInvitableUser, ci = _getMain()._getIsInvitableUser(ci, aliasEmail) if isInvitableUser: - _getMain().entityActionNotPerformedWarning([Ent.ALIAS_EMAIL, aliasEmail], Msg.EMAIL_ADDRESS_IS_UNMANAGED_ACCOUNT) + entityActionNotPerformedWarning([Ent.ALIAS_EMAIL, aliasEmail], Msg.EMAIL_ADDRESS_IS_UNMANAGED_ACCOUNT) continue body = {'alias': aliasEmail} jcount = len(targetEmails) if jcount > 0: # Only process first target - targetEmail = _getMain().normalizeEmailAddressOrUID(targetEmails[0]) + targetEmail = normalizeEmailAddressOrUID(targetEmails[0]) if verifyTarget: targetType = verifyAliasTargetExists() if targetType is None: - _getMain().entityUnknownWarning(Ent.ALIAS_TARGET, targetEmail, i, count) + entityUnknownWarning(Ent.ALIAS_TARGET, targetEmail, i, count) continue if updateCmd and not deleteAliasOnUpdate(): continue # User alias if targetType != 'group': try: - _getMain().callGAPI(cd.users().aliases(), 'insert', + callGAPI(cd.users().aliases(), 'insert', throwReasons=[GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.INVALID_INPUT, GAPI.FORBIDDEN, GAPI.DUPLICATE, GAPI.CONDITION_NOT_MET, GAPI.LIMIT_EXCEEDED], userKey=targetEmail, body=body, fields='') - _getMain().entityActionPerformed([Ent.USER_ALIAS, aliasEmail, Ent.USER, targetEmail], i, count) + entityActionPerformed([Ent.USER_ALIAS, aliasEmail, Ent.USER, targetEmail], i, count) continue except (GAPI.conditionNotMet, GAPI.limitExceeded) as e: - _getMain().entityActionFailedWarning([Ent.USER_ALIAS, aliasEmail, Ent.USER, targetEmail], str(e), i, count) + entityActionFailedWarning([Ent.USER_ALIAS, aliasEmail, Ent.USER, targetEmail], str(e), i, count) continue except GAPI.duplicate: duplicateAliasGroupUserWarning(cd, [Ent.USER_ALIAS, aliasEmail, Ent.USER, targetEmail], i, count) continue except (GAPI.invalid, GAPI.invalidInput): - _getMain().entityActionFailedWarning([Ent.USER_ALIAS, aliasEmail, Ent.USER, targetEmail], Msg.INVALID_ALIAS, i, count) + entityActionFailedWarning([Ent.USER_ALIAS, aliasEmail, Ent.USER, targetEmail], Msg.INVALID_ALIAS, i, count) continue except (GAPI.userNotFound, GAPI.badRequest, GAPI.forbidden): if targetType == 'user': - _getMain().entityUnknownWarning(Ent.ALIAS_TARGET, targetEmail, i, count) + entityUnknownWarning(Ent.ALIAS_TARGET, targetEmail, i, count) continue # Group alias try: - _getMain().callGAPI(cd.groups().aliases(), 'insert', + callGAPI(cd.groups().aliases(), 'insert', throwReasons=[GAPI.GROUP_NOT_FOUND, GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.INVALID_INPUT, GAPI.FORBIDDEN, GAPI.DUPLICATE, GAPI.CONDITION_NOT_MET, GAPI.LIMIT_EXCEEDED], groupKey=targetEmail, body=body, fields='') - _getMain().entityActionPerformed([Ent.GROUP_ALIAS, aliasEmail, Ent.GROUP, targetEmail], i, count) + entityActionPerformed([Ent.GROUP_ALIAS, aliasEmail, Ent.GROUP, targetEmail], i, count) except (GAPI.conditionNotMet, GAPI.limitExceeded) as e: - _getMain().entityActionFailedWarning([Ent.GROUP_ALIAS, aliasEmail, Ent.GROUP, targetEmail], str(e), i, count) + entityActionFailedWarning([Ent.GROUP_ALIAS, aliasEmail, Ent.GROUP, targetEmail], str(e), i, count) except GAPI.duplicate: duplicateAliasGroupUserWarning(cd, [Ent.GROUP_ALIAS, aliasEmail, Ent.GROUP, targetEmail], i, count) except (GAPI.invalid, GAPI.invalidInput): - _getMain().entityActionFailedWarning([Ent.GROUP_ALIAS, aliasEmail, Ent.GROUP, targetEmail], Msg.INVALID_ALIAS, i, count) + entityActionFailedWarning([Ent.GROUP_ALIAS, aliasEmail, Ent.GROUP, targetEmail], Msg.INVALID_ALIAS, i, count) except (GAPI.groupNotFound, GAPI.userNotFound, GAPI.badRequest, GAPI.forbidden): - _getMain().entityUnknownWarning(Ent.ALIAS_TARGET, targetEmail, i, count) + entityUnknownWarning(Ent.ALIAS_TARGET, targetEmail, i, count) # gam delete aliases|nicknames [user|group|target] def doDeleteAliases(): - cd = _getMain().buildGAPIObject(API.DIRECTORY) - targetType = _getMain().getChoice(_getMain().ALIAS_TARGET_TYPES, defaultChoice='target') - entityList = _getMain().getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY) - _getMain().checkForExtraneousArguments() + cd = buildGAPIObject(API.DIRECTORY) + targetType = getChoice(_getMain().ALIAS_TARGET_TYPES, defaultChoice='target') + entityList = getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY) + checkForExtraneousArguments() i = 0 count = len(entityList) for aliasEmail in entityList: i += 1 - aliasEmail = _getMain().normalizeEmailAddressOrUID(aliasEmail, noUid=True) + aliasEmail = normalizeEmailAddressOrUID(aliasEmail, noUid=True) aliasDeleted = False if targetType != 'group': try: - result = _getMain().callGAPI(cd.users().aliases(), 'list', + result = callGAPI(cd.users().aliases(), 'list', throwReasons=[GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], userKey=aliasEmail, fields='aliases(alias)') for aliasEntry in result.get('aliases', []): if aliasEmail == aliasEntry['alias'].lower(): aliasEmail = aliasEntry['alias'] - _getMain().callGAPI(cd.users().aliases(), 'delete', + callGAPI(cd.users().aliases(), 'delete', throwReasons=[GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], userKey=aliasEmail, alias=aliasEmail) - _getMain().entityActionPerformed([Ent.USER_ALIAS, aliasEmail], i, count) + entityActionPerformed([Ent.USER_ALIAS, aliasEmail], i, count) aliasDeleted = True break if aliasDeleted: continue except GAPI.conditionNotMet as e: - _getMain().entityActionFailedWarning([Ent.USER_ALIAS, aliasEmail], str(e), i, count) + entityActionFailedWarning([Ent.USER_ALIAS, aliasEmail], str(e), i, count) continue except (GAPI.userNotFound, GAPI.badRequest, GAPI.invalid, GAPI.forbidden, GAPI.invalidResource): pass if targetType == 'user': - _getMain().entityUnknownWarning(Ent.USER_ALIAS, aliasEmail, i, count) + entityUnknownWarning(Ent.USER_ALIAS, aliasEmail, i, count) continue try: - result = _getMain().callGAPI(cd.groups().aliases(), 'list', + result = callGAPI(cd.groups().aliases(), 'list', throwReasons=[GAPI.GROUP_NOT_FOUND, GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], groupKey=aliasEmail, fields='aliases(alias)') for aliasEntry in result.get('aliases', []): if aliasEmail == aliasEntry['alias'].lower(): aliasEmail = aliasEntry['alias'] - _getMain().callGAPI(cd.groups().aliases(), 'delete', + callGAPI(cd.groups().aliases(), 'delete', throwReasons=[GAPI.GROUP_NOT_FOUND, GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], groupKey=aliasEmail, alias=aliasEmail) - _getMain().entityActionPerformed([Ent.GROUP_ALIAS, aliasEmail], i, count) + entityActionPerformed([Ent.GROUP_ALIAS, aliasEmail], i, count) aliasDeleted = True break if aliasDeleted: continue except GAPI.conditionNotMet as e: - _getMain().entityActionFailedWarning([Ent.GROUP_ALIAS, aliasEmail], str(e), i, count) + entityActionFailedWarning([Ent.GROUP_ALIAS, aliasEmail], str(e), i, count) continue except (GAPI.groupNotFound, GAPI.userNotFound, GAPI.badRequest, GAPI.invalid, GAPI.forbidden, GAPI.invalidResource): pass if targetType == 'group': - _getMain().entityUnknownWarning(Ent.GROUP_ALIAS, aliasEmail, i, count) + entityUnknownWarning(Ent.GROUP_ALIAS, aliasEmail, i, count) continue - _getMain().entityUnknownWarning(Ent.ALIAS, aliasEmail, i, count) + entityUnknownWarning(Ent.ALIAS, aliasEmail, i, count) # gam remove aliases|nicknames user|group def doRemoveAliases(): - cd = _getMain().buildGAPIObject(API.DIRECTORY) - targetEmail = _getMain().getEmailAddress() - targetType = _getMain().getChoice(['user', 'group']) - entityList = _getMain().getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY) - _getMain().checkForExtraneousArguments() + cd = buildGAPIObject(API.DIRECTORY) + targetEmail = getEmailAddress() + targetType = getChoice(['user', 'group']) + entityList = getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY) + checkForExtraneousArguments() count = len(entityList) i = 0 if targetType == 'user': try: for aliasEmail in entityList: i += 1 - aliasEmail = _getMain().normalizeEmailAddressOrUID(aliasEmail, noUid=True) - _getMain().callGAPI(cd.users().aliases(), 'delete', + aliasEmail = normalizeEmailAddressOrUID(aliasEmail, noUid=True) + callGAPI(cd.users().aliases(), 'delete', throwReasons=[GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], userKey=targetEmail, alias=aliasEmail) - _getMain().entityActionPerformed([Ent.USER, targetEmail, Ent.USER_ALIAS, aliasEmail], i, count) + entityActionPerformed([Ent.USER, targetEmail, Ent.USER_ALIAS, aliasEmail], i, count) except (GAPI.userNotFound, GAPI.badRequest, GAPI.invalid, GAPI.forbidden, GAPI.conditionNotMet) as e: - _getMain().entityActionFailedWarning([Ent.USER, targetEmail, Ent.USER_ALIAS, aliasEmail], str(e), i, count) + entityActionFailedWarning([Ent.USER, targetEmail, Ent.USER_ALIAS, aliasEmail], str(e), i, count) except GAPI.invalidResource: - _getMain().entityActionFailedWarning([Ent.USER, targetEmail, Ent.USER_ALIAS, aliasEmail], Msg.DOES_NOT_EXIST, i, count) + entityActionFailedWarning([Ent.USER, targetEmail, Ent.USER_ALIAS, aliasEmail], Msg.DOES_NOT_EXIST, i, count) else: try: for aliasEmail in entityList: i += 1 - aliasEmail = _getMain().normalizeEmailAddressOrUID(aliasEmail, noUid=True) - _getMain().callGAPI(cd.groups().aliases(), 'delete', + aliasEmail = normalizeEmailAddressOrUID(aliasEmail, noUid=True) + callGAPI(cd.groups().aliases(), 'delete', throwReasons=[GAPI.GROUP_NOT_FOUND, GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], groupKey=targetEmail, alias=aliasEmail) - _getMain().entityActionPerformed([Ent.GROUP, targetEmail, Ent.GROUP_ALIAS, aliasEmail], i, count) + entityActionPerformed([Ent.GROUP, targetEmail, Ent.GROUP_ALIAS, aliasEmail], i, count) except (GAPI.groupNotFound, GAPI.userNotFound, GAPI.badRequest, GAPI.invalid, GAPI.forbidden, GAPI.conditionNotMet) as e: - _getMain().entityActionFailedWarning([Ent.GROUP, targetEmail, Ent.GROUP_ALIAS, aliasEmail], str(e), i, count) + entityActionFailedWarning([Ent.GROUP, targetEmail, Ent.GROUP_ALIAS, aliasEmail], str(e), i, count) except GAPI.invalidResource: - _getMain().entityActionFailedWarning([Ent.GROUP, targetEmail, Ent.GROUP_ALIAS, aliasEmail], Msg.DOES_NOT_EXIST, i, count) + entityActionFailedWarning([Ent.GROUP, targetEmail, Ent.GROUP_ALIAS, aliasEmail], Msg.DOES_NOT_EXIST, i, count) def _addUserAliases(cd, user, aliasList, i, count): jcount = len(aliasList) - _getMain().entityPerformActionNumItems([Ent.USER, user], jcount, Ent.USER_ALIAS, i, count) + entityPerformActionNumItems([Ent.USER, user], jcount, Ent.USER_ALIAS, i, count) Ind.Increment() j = 0 for aliasEmail in aliasList: j += 1 - aliasEmail = _getMain().normalizeEmailAddressOrUID(aliasEmail, noUid=True, noLower=True) + aliasEmail = normalizeEmailAddressOrUID(aliasEmail, noUid=True, noLower=True) body = {'alias': aliasEmail} try: - _getMain().callGAPI(cd.users().aliases(), 'insert', + callGAPI(cd.users().aliases(), 'insert', throwReasons=[GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.INVALID_INPUT, GAPI.FORBIDDEN, GAPI.DUPLICATE, GAPI.CONDITION_NOT_MET, GAPI.LIMIT_EXCEEDED], userKey=user, body=body, fields='') - _getMain().entityActionPerformed([Ent.USER, user, Ent.USER_ALIAS, aliasEmail], j, jcount) + entityActionPerformed([Ent.USER, user, Ent.USER_ALIAS, aliasEmail], j, jcount) except (GAPI.conditionNotMet, GAPI.limitExceeded) as e: - _getMain().entityActionFailedWarning([Ent.USER, user, Ent.USER_ALIAS, aliasEmail], str(e), j, jcount) + entityActionFailedWarning([Ent.USER, user, Ent.USER_ALIAS, aliasEmail], str(e), j, jcount) except GAPI.duplicate: duplicateAliasGroupUserWarning(cd, [Ent.USER, user, Ent.USER_ALIAS, aliasEmail], j, jcount) except (GAPI.invalid, GAPI.invalidInput): - _getMain().entityActionFailedWarning([Ent.USER, user, Ent.USER_ALIAS, aliasEmail], Msg.INVALID_ALIAS, j, jcount) + entityActionFailedWarning([Ent.USER, user, Ent.USER_ALIAS, aliasEmail], Msg.INVALID_ALIAS, j, jcount) except (GAPI.userNotFound, GAPI.badRequest, GAPI.forbidden): - _getMain().entityUnknownWarning(Ent.USER, user, i, count) + entityUnknownWarning(Ent.USER, user, i, count) Ind.Decrement() # gam delete alias|aliases def deleteUsersAliases(users): - cd = _getMain().buildGAPIObject(API.DIRECTORY) - _getMain().checkForExtraneousArguments() - i, count, users = _getMain().getEntityArgument(users) + cd = buildGAPIObject(API.DIRECTORY) + checkForExtraneousArguments() + i, count, users = getEntityArgument(users) for user in users: i += 1 - user = _getMain().normalizeEmailAddressOrUID(user) + user = normalizeEmailAddressOrUID(user) try: - user_aliases = _getMain().callGAPI(cd.users(), 'get', + user_aliases = callGAPI(cd.users(), 'get', throwReasons=GAPI.USER_GET_THROW_REASONS, userKey=user, fields='id,primaryEmail,aliases') user_id = user_aliases['id'] user_primary = user_aliases['primaryEmail'] jcount = len(user_aliases['aliases']) if ('aliases' in user_aliases) else 0 - _getMain().entityPerformActionNumItems([Ent.USER, user_primary], jcount, Ent.ALIAS, i, count) + entityPerformActionNumItems([Ent.USER, user_primary], jcount, Ent.ALIAS, i, count) if jcount == 0: - _getMain().setSysExitRC(_getMain().NO_ENTITIES_FOUND_RC) + setSysExitRC(_getMain().NO_ENTITIES_FOUND_RC) continue Ind.Increment() j = 0 for an_alias in user_aliases['aliases']: j += 1 try: - _getMain().callGAPI(cd.users().aliases(), 'delete', + callGAPI(cd.users().aliases(), 'delete', throwReasons=[GAPI.RESOURCE_ID_NOT_FOUND], userKey=user_id, alias=an_alias) - _getMain().entityActionPerformed([Ent.USER, user_primary, Ent.ALIAS, an_alias], j, jcount) + entityActionPerformed([Ent.USER, user_primary, Ent.ALIAS, an_alias], j, jcount) except GAPI.resourceIdNotFound: - _getMain().entityActionFailedWarning([Ent.USER, user_primary, Ent.ALIAS, an_alias], Msg.DOES_NOT_EXIST, j, jcount) + entityActionFailedWarning([Ent.USER, user_primary, Ent.ALIAS, an_alias], Msg.DOES_NOT_EXIST, j, jcount) Ind.Decrement() except (GAPI.userNotFound, GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden, GAPI.badRequest, GAPI.backendError, GAPI.systemError): - _getMain().entityUnknownWarning(Ent.USER, user, i, count) + entityUnknownWarning(Ent.USER, user, i, count) def infoAliases(entityList): def _showAliasInfo(uid, email, aliasEmail, entityType, aliasEntityType, i, count): if email.lower() != aliasEmail: - _getMain().printEntity([aliasEntityType, aliasEmail], i, count) + printEntity([aliasEntityType, aliasEmail], i, count) Ind.Increment() - _getMain().printEntity([entityType, email]) - _getMain().printEntity([Ent.UNIQUE_ID, uid]) + printEntity([entityType, email]) + printEntity([Ent.UNIQUE_ID, uid]) Ind.Decrement() else: - _getMain().setSysExitRC(_getMain().ENTITY_IS_NOT_AN_ALIAS_RC) - _getMain().printEntityKVList([Ent.EMAIL, aliasEmail], + setSysExitRC(_getMain().ENTITY_IS_NOT_AN_ALIAS_RC) + printEntityKVList([Ent.EMAIL, aliasEmail], [f'Is a {Ent.Singular(entityType)}, not a {Ent.Singular(aliasEntityType)}'], i, count) - cd = _getMain().buildGAPIObject(API.DIRECTORY) + cd = buildGAPIObject(API.DIRECTORY) while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() # Ignore info group/user arguments that may have come from whatis if (myarg in _getMain().INFO_GROUP_OPTIONS) or (myarg in _getMain().INFO_USER_OPTIONS): if myarg == 'schemas': - _getMain().getString(Cmd.OB_SCHEMA_NAME_LIST) + getString(Cmd.OB_SCHEMA_NAME_LIST) else: - _getMain().unknownArgumentExit() + unknownArgumentExit() i = 0 count = len(entityList) for aliasEmail in entityList: i += 1 - aliasEmail = _getMain().normalizeEmailAddressOrUID(aliasEmail, noUid=True, noLower=True) + aliasEmail = normalizeEmailAddressOrUID(aliasEmail, noUid=True, noLower=True) try: - result = _getMain().callGAPI(cd.users(), 'get', + result = callGAPI(cd.users(), 'get', throwReasons=GAPI.USER_GET_THROW_REASONS, userKey=aliasEmail, fields='id,primaryEmail') _showAliasInfo(result['id'], result['primaryEmail'], aliasEmail, Ent.USER_EMAIL, Ent.USER_ALIAS, i, count) @@ -375,10 +414,10 @@ def infoAliases(entityList): pass except (GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden, GAPI.backendError, GAPI.systemError): - _getMain().entityUnknownWarning(Ent.USER_ALIAS, aliasEmail, i, count) + entityUnknownWarning(Ent.USER_ALIAS, aliasEmail, i, count) continue try: - result = _getMain().callGAPI(cd.groups(), 'get', + result = callGAPI(cd.groups(), 'get', throwReasons=GAPI.GROUP_GET_THROW_REASONS, groupKey=aliasEmail, fields='id,email') _showAliasInfo(result['id'], result['email'], aliasEmail, Ent.GROUP_EMAIL, Ent.GROUP_ALIAS, i, count) @@ -386,13 +425,13 @@ def infoAliases(entityList): except GAPI.groupNotFound: pass except (GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden, GAPI.badRequest): - _getMain().entityUnknownWarning(Ent.GROUP_ALIAS, aliasEmail, i, count) + entityUnknownWarning(Ent.GROUP_ALIAS, aliasEmail, i, count) continue - _getMain().entityUnknownWarning(Ent.EMAIL, aliasEmail, i, count) + entityUnknownWarning(Ent.EMAIL, aliasEmail, i, count) # gam info aliases|nicknames def doInfoAliases(): - infoAliases(_getMain().getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY)) + infoAliases(getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY)) def initUserGroupDomainQueryFilters(): if not GC.Values[GC.PRINT_AGU_DOMAINS]: @@ -401,9 +440,9 @@ def initUserGroupDomainQueryFilters(): def getUserGroupDomainQueryFilters(myarg, kwargsDict): if myarg in {'domain', 'domains'}: - kwargsDict['list'] = [{'domain': domain.lower()} for domain in _getMain().getEntityList(Cmd.OB_DOMAIN_NAME_ENTITY)] + kwargsDict['list'] = [{'domain': domain.lower()} for domain in getEntityList(Cmd.OB_DOMAIN_NAME_ENTITY)] elif myarg in {'query', 'queries'}: - kwargsDict['queries'] = _getMain().getQueries(myarg) + kwargsDict['queries'] = getQueries(myarg) else: return False return True @@ -494,8 +533,8 @@ def doPrintAliases(): row.update(addCSVData) csvPF.WriteRow(row) - cd = _getMain().buildGAPIObject(API.DIRECTORY) - csvPF = _getMain().CSVPrintFile() + cd = buildGAPIObject(API.DIRECTORY) + csvPF = CSVPrintFile() userFields = ['primaryEmail', 'aliases'] groupFields = ['email', 'aliases'] oneRowPerTarget = showNonEditable = suppressNoAliasRows = False @@ -508,7 +547,7 @@ def doPrintAliases(): addCSVData = {} delimiter = GC.Values[GC.CSV_OUTPUT_FIELD_DELIMITER] while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if myarg == 'todrive': csvPF.GetTodriveParameters() elif myarg == 'shownoneditable': @@ -520,34 +559,34 @@ def doPrintAliases(): elif myarg == 'nousers': getUsers = False elif myarg == 'limittoou': - orgUnitPath = _getMain().getOrgUnitItem(pathOnly=True, cd=cd) + orgUnitPath = getOrgUnitItem(pathOnly=True, cd=cd) orgUnitPathLower = orgUnitPath.lower() userFields.append('orgUnitPath') getGroups = False elif getUserGroupDomainQueryFilters(myarg, kwargsDict): pass elif myarg == 'select': - _, users = _getMain().getEntityToModify(defaultEntityType=Cmd.ENTITY_USERS) + _, users = getEntityToModify(defaultEntityType=Cmd.ENTITY_USERS) elif myarg == 'issuspended': - isSuspended = _getMain().getBoolean() + isSuspended = getBoolean() elif myarg == 'isarchived': - isArchived = _getMain().getBoolean() + isArchived = getBoolean() elif myarg in {'user','users'}: - users.extend(_getMain().convertEntityToList(_getMain().getString(Cmd.OB_EMAIL_ADDRESS_LIST, minLen=0))) + users.extend(convertEntityToList(getString(Cmd.OB_EMAIL_ADDRESS_LIST, minLen=0))) elif myarg in {'group', 'groups'}: - groups.extend(_getMain().convertEntityToList(_getMain().getString(Cmd.OB_EMAIL_ADDRESS_LIST, minLen=0))) + groups.extend(convertEntityToList(getString(Cmd.OB_EMAIL_ADDRESS_LIST, minLen=0))) elif myarg == 'aliasmatchpattern': - aliasMatchPattern = _getMain().getREPattern(re.IGNORECASE) + aliasMatchPattern = getREPattern(re.IGNORECASE) elif myarg == 'onerowpertarget': oneRowPerTarget = True elif myarg == 'suppressnoaliasrows': suppressNoAliasRows = True elif myarg == 'addcsvdata': - _getMain().getAddCSVData(addCSVData) + getAddCSVData(addCSVData) elif myarg == 'delimiter': - delimiter = _getMain().getCharacter() + delimiter = getCharacter() else: - _getMain().unknownArgumentExit() + unknownArgumentExit() if (users or groups) and kwargsDict['queries'][0] is None: getUsers = getGroups = False if not oneRowPerTarget: @@ -566,10 +605,10 @@ def doPrintAliases(): kwargs = kwargsQuery[0] query = kwargsQuery[1] query, pquery = userFilters(kwargs, query, orgUnitPath) - _getMain().printGettingAllAccountEntities(Ent.USER, pquery) + printGettingAllAccountEntities(Ent.USER, pquery) try: - entityList = _getMain().callGAPIpages(cd.users(), 'list', 'users', - pageMessage=_getMain().getPageMessage(showFirstLastItems=True), messageAttribute='primaryEmail', + entityList = callGAPIpages(cd.users(), 'list', 'users', + pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute='primaryEmail', throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.INVALID_INPUT, GAPI.DOMAIN_NOT_FOUND, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST, GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], @@ -581,39 +620,39 @@ def doPrintAliases(): if orgUnitPath is None or orgUnitPathLower == user.get('orgUnitPath', '').lower(): writeAliases(user, user['primaryEmail'], 'User') except (GAPI.invalidOrgunit, GAPI.invalidInput): - _getMain().entityActionFailedWarning([Ent.ALIAS, None], _getMain().invalidQuery(query)) + entityActionFailedWarning([Ent.ALIAS, None], invalidQuery(query)) continue except GAPI.domainNotFound as e: - _getMain().entityActionFailedWarning([Ent.ALIAS, None, Ent.DOMAIN, kwargs['domain']], str(e)) + entityActionFailedWarning([Ent.ALIAS, None, Ent.DOMAIN, kwargs['domain']], str(e)) continue except (GAPI.unknownError, GAPI.failedPrecondition) as e: - _getMain().entityActionFailedExit([Ent.USER, None], str(e)) + entityActionFailedExit([Ent.USER, None], str(e)) except (GAPI.resourceNotFound, GAPI.forbidden, GAPI.badRequest): accessErrorExit(cd) count = len(users) i = 0 for user in users: i += 1 - user = _getMain().normalizeEmailAddressOrUID(user) - _getMain().printGettingEntityItemForWhom(Ent.USER_ALIAS, user, i, count) + user = normalizeEmailAddressOrUID(user) + printGettingEntityItemForWhom(Ent.USER_ALIAS, user, i, count) try: - result = _getMain().callGAPI(cd.users().aliases(), 'list', + result = callGAPI(cd.users().aliases(), 'list', throwReasons=[GAPI.USER_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], userKey=user, fields='aliases(alias)') aliases = {'aliases': [alias['alias'] for alias in result.get('aliases', [])]} writeAliases(aliases, user, 'User') except (GAPI.userNotFound, GAPI.badRequest, GAPI.invalid, GAPI.forbidden, GAPI.invalidResource, GAPI.conditionNotMet) as e: - _getMain().entityActionFailedWarning([Ent.USER, user], str(e), i, count) + entityActionFailedWarning([Ent.USER, user], str(e), i, count) if getGroups: for kwargsQuery in makeUserGroupDomainQueryFilters(kwargsDict, None, None, None): kwargs = kwargsQuery[0] query = kwargsQuery[1] query, pquery = _getMain().groupFilters(kwargs, query) - _getMain().printGettingAllAccountEntities(Ent.GROUP, pquery) + printGettingAllAccountEntities(Ent.GROUP, pquery) try: - entityList = _getMain().callGAPIpages(cd.groups(), 'list', 'groups', - pageMessage=_getMain().getPageMessage(showFirstLastItems=True), messageAttribute='email', + entityList = callGAPIpages(cd.groups(), 'list', 'groups', + pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute='email', throwReasons=GAPI.GROUP_LIST_USERKEY_THROW_REASONS, retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS, query=query, orderBy='email', @@ -621,10 +660,10 @@ def doPrintAliases(): for group in entityList: writeAliases(group, group['email'], 'Group') except (GAPI.invalidMember, GAPI.invalidInput) as e: - if not _getMain().invalidMember(query): - _getMain().entityActionFailedExit([Ent.GROUP, None], str(e)) + if not invalidMember(query): + entityActionFailedExit([Ent.GROUP, None], str(e)) except GAPI.domainNotFound as e: - _getMain().entityActionFailedWarning([Ent.ALIAS, None, Ent.DOMAIN, kwargs['domain']], str(e)) + entityActionFailedWarning([Ent.ALIAS, None, Ent.DOMAIN, kwargs['domain']], str(e)) continue except (GAPI.resourceNotFound, GAPI.forbidden, GAPI.badRequest): accessErrorExit(cd) @@ -632,51 +671,51 @@ def doPrintAliases(): i = 0 for group in groups: i += 1 - group = _getMain().normalizeEmailAddressOrUID(group) - _getMain().printGettingEntityItemForWhom(Ent.GROUP_ALIAS, group, i, count) + group = normalizeEmailAddressOrUID(group) + printGettingEntityItemForWhom(Ent.GROUP_ALIAS, group, i, count) try: - result = _getMain().callGAPI(cd.groups().aliases(), 'list', + result = callGAPI(cd.groups().aliases(), 'list', throwReasons=[GAPI.GROUP_NOT_FOUND, GAPI.BAD_REQUEST, GAPI.INVALID, GAPI.FORBIDDEN, GAPI.INVALID_RESOURCE, GAPI.CONDITION_NOT_MET], groupKey=group, fields='aliases(alias)') aliases = {'aliases': [alias['alias'] for alias in result.get('aliases', [])]} writeAliases(aliases, group, 'Group') except (GAPI.groupNotFound, GAPI.badRequest, GAPI.invalid, GAPI.forbidden, GAPI.invalidResource, GAPI.conditionNotMet) as e: - _getMain().entityActionFailedWarning([Ent.GROUP, group], str(e), i, count) + entityActionFailedWarning([Ent.GROUP, group], str(e), i, count) csvPF.writeCSVfile('Aliases') # gam print addresses [todrive *] # [domain ] def doPrintAddresses(): - cd = _getMain().buildGAPIObject(API.DIRECTORY) + cd = buildGAPIObject(API.DIRECTORY) kwargs = {'customer': GC.Values[GC.CUSTOMER_ID]} - csvPF = _getMain().CSVPrintFile() + csvPF = CSVPrintFile() titlesList = ['Type', 'Email', 'Target'] userFields = ['primaryEmail', 'aliases', 'nonEditableAliases', 'suspended'] groupFields = ['email', 'aliases', 'nonEditableAliases'] domainFields = ['domainName', 'isPrimary', 'domainAliases'] resourceFields = ['resourceEmail'] while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if myarg == 'todrive': csvPF.GetTodriveParameters() elif myarg == 'domain': - kwargs['domain'] = _getMain().getString(Cmd.OB_DOMAIN_NAME).lower() + kwargs['domain'] = getString(Cmd.OB_DOMAIN_NAME).lower() kwargs.pop('customer', None) else: - _getMain().unknownArgumentExit() + unknownArgumentExit() csvPF.SetTitles(titlesList) - _getMain().printGettingAllAccountEntities(Ent.USER) + printGettingAllAccountEntities(Ent.USER) try: - entityList = _getMain().callGAPIpages(cd.users(), 'list', 'users', - pageMessage=_getMain().getPageMessage(showFirstLastItems=True), messageAttribute='primaryEmail', + entityList = callGAPIpages(cd.users(), 'list', 'users', + pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute='primaryEmail', throwReasons=[GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.BAD_REQUEST, GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS+[GAPI.UNKNOWN_ERROR, GAPI.FAILED_PRECONDITION], orderBy='email', fields=f'nextPageToken,users({",".join(userFields)})', maxResults=GC.Values[GC.USER_MAX_RESULTS], **kwargs) except (GAPI.unknownError, GAPI.failedPrecondition) as e: - _getMain().entityActionFailedExit([Ent.USER, None], str(e)) + entityActionFailedExit([Ent.USER, None], str(e)) except (GAPI.resourceNotFound, GAPI.forbidden, GAPI.badRequest): accessErrorExit(cd) for user in entityList: @@ -687,10 +726,10 @@ def doPrintAddresses(): csvPF.WriteRow({'Type': f'{prefix}UserAlias', 'Email': alias, 'Target': userEmail}) for alias in user.get('nonEditableAliases', []): csvPF.WriteRow({'Type': f'{prefix}UserNEAlias', 'Email': alias, 'Target': userEmail}) - _getMain().printGettingAllAccountEntities(Ent.GROUP) + printGettingAllAccountEntities(Ent.GROUP) try: - entityList = _getMain().callGAPIpages(cd.groups(), 'list', 'groups', - pageMessage=_getMain().getPageMessage(showFirstLastItems=True), messageAttribute='email', + entityList = callGAPIpages(cd.groups(), 'list', 'groups', + pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute='email', throwReasons=GAPI.GROUP_LIST_THROW_REASONS, retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS, orderBy='email', fields=f'nextPageToken,groups({",".join(groupFields)})', **kwargs) @@ -703,16 +742,16 @@ def doPrintAddresses(): csvPF.WriteRow({'Type': 'GroupAlias', 'Email': alias, 'Target': groupEmail}) for alias in group.get('nonEditableAliases', []): csvPF.WriteRow({'Type': 'GroupNEAlias', 'Email': alias, 'Target': groupEmail}) - _getMain().printGettingAllAccountEntities(Ent.RESOURCE_CALENDAR) + printGettingAllAccountEntities(Ent.RESOURCE_CALENDAR) try: - entityList = _getMain().callGAPIpages(cd.resources().calendars(), 'list', 'items', - pageMessage=_getMain().getPageMessage(showFirstLastItems=True), messageAttribute='resourceEmail', + entityList = callGAPIpages(cd.resources().calendars(), 'list', 'items', + pageMessage=getPageMessage(showFirstLastItems=True), messageAttribute='resourceEmail', throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN, GAPI.INVALID_INPUT], customer=GC.Values[GC.CUSTOMER_ID], fields=f'nextPageToken,items({",".join(resourceFields)})') except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden): accessErrorExit(cd) except GAPI.invalidInput as e: - _getMain().entityActionFailedWarning([Ent.RESOURCE_CALENDAR, ''], str(e)) + entityActionFailedWarning([Ent.RESOURCE_CALENDAR, ''], str(e)) return for resource in entityList: csvPF.WriteRow({'Type': 'Resource', 'Email': resource['resourceEmail']}) diff --git a/src/gam/cmd/analytics.py b/src/gam/cmd/analytics.py index 35133391..09cb4895 100644 --- a/src/gam/cmd/analytics.py +++ b/src/gam/cmd/analytics.py @@ -12,6 +12,26 @@ from gamlib import glgapi as GAPI from gamlib import glglobals as GM from gamlib import glindent from gamlib import glmsgs as Msg +from gam.util.api import buildGAPIServiceObject, callGAPIpages +from gam.util.args import getArgument, getBoolean, getInteger, getString +from gam.util.csv_pf import ( + CSVPrintFile, + FormatJSONQuoteChar, + cleanJSON, + flattenJSON, + showJSON, +) +from gam.util.display import ( + entityActionFailedWarning, + entityPerformActionNumItems, + getPageMessageForWhom, + printEntity, + printGettingAllEntityItemsForWhom, + printLine, + userAnalyticsServiceNotEnabledWarning, +) +from gam.util.entity import getEntityArgument +from gam.util.errors import missingArgumentExit Act = glaction.GamAction() Ent = glentity.GamEntity() @@ -32,35 +52,35 @@ def __getattr__(name): def printShowAnalyticItems(users, entityType): analyticEntityMap = _getMain().ANALYTIC_ENTITY_MAP[entityType] - csvPF = _getMain().CSVPrintFile(analyticEntityMap['titles'], 'sortall') if Act.csvFormat() else None - FJQC = _getMain().FormatJSONQuoteChar(csvPF) + csvPF = CSVPrintFile(analyticEntityMap['titles'], 'sortall') if Act.csvFormat() else None + FJQC = FormatJSONQuoteChar(csvPF) kwargs = {'pageSize': analyticEntityMap['pageSize']} if entityType in {Ent.ANALYTIC_ACCOUNT, Ent.ANALYTIC_PROPERTY}: kwargs['showDeleted'] = False while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() elif myarg == 'maxresults': - kwargs['pageSize'] = _getMain().getInteger(minVal=1, maxVal=analyticEntityMap['maxPageSize']) + kwargs['pageSize'] = getInteger(minVal=1, maxVal=analyticEntityMap['maxPageSize']) elif entityType in {Ent.ANALYTIC_ACCOUNT, Ent.ANALYTIC_PROPERTY} and myarg == 'showdeleted': - kwargs['showDeleted'] = _getMain().getBoolean() + kwargs['showDeleted'] = getBoolean() elif entityType == Ent.ANALYTIC_PROPERTY and myarg == 'filter': - kwargs['filter'] = _getMain().getString(Cmd.OB_STRING) + kwargs['filter'] = getString(Cmd.OB_STRING) elif entityType == Ent.ANALYTIC_DATASTREAM and myarg == 'parent': - kwargs['parent'] = _getMain().getString(Cmd.OB_STRING) + kwargs['parent'] = getString(Cmd.OB_STRING) else: FJQC.GetFormatJSONQuoteChar(myarg, True) if entityType == Ent.ANALYTIC_PROPERTY and 'filter' not in kwargs: - _getMain().missingArgumentExit('filter') + missingArgumentExit('filter') if entityType == Ent.ANALYTIC_DATASTREAM and 'parent' not in kwargs: - _getMain().missingArgumentExit('parent') + missingArgumentExit('parent') if csvPF and FJQC.formatJSON: csvPF.SetJSONTitles(analyticEntityMap['JSONtitles']) - i, count, users = _getMain().getEntityArgument(users) + i, count, users = getEntityArgument(users) for user in users: i += 1 - user, analytics = _getMain().buildGAPIServiceObject(API.ANALYTICS_ADMIN, user, i, count) + user, analytics = buildGAPIServiceObject(API.ANALYTICS_ADMIN, user, i, count) if not analytics: continue if entityType == Ent.ANALYTIC_ACCOUNT: @@ -72,49 +92,49 @@ def printShowAnalyticItems(users, entityType): else: # entityType == Ent.ANALYTIC_PROPERTY: service = analytics.properties() if csvPF: - _getMain().printGettingAllEntityItemsForWhom(entityType, user, i, count) - pageMessage = _getMain().getPageMessageForWhom() + printGettingAllEntityItemsForWhom(entityType, user, i, count) + pageMessage = getPageMessageForWhom() else: pageMessage = None try: - results = _getMain().callGAPIpages(service, 'list', analyticEntityMap['items'], + results = callGAPIpages(service, 'list', analyticEntityMap['items'], pageMessage=pageMessage, throwReasons=[GAPI.PERMISSION_DENIED, GAPI.INVALID_ARGUMENT, GAPI.BAD_REQUEST, GAPI.INTERNAL_ERROR, GAPI.SERVICE_NOT_AVAILABLE], **kwargs) except (GAPI.permissionDenied, GAPI.invalidArgument, GAPI.badRequest, GAPI.internalError) as e: - _getMain().entityActionFailedWarning([Ent.USER, user, entityType, None], str(e), i, count) + entityActionFailedWarning([Ent.USER, user, entityType, None], str(e), i, count) continue except GAPI.serviceNotAvailable: - _getMain().userAnalyticsServiceNotEnabledWarning(user, i, count) + userAnalyticsServiceNotEnabledWarning(user, i, count) continue if not csvPF: jcount = len(results) if not FJQC.formatJSON: - _getMain().entityPerformActionNumItems([Ent.USER, user], jcount, entityType) + entityPerformActionNumItems([Ent.USER, user], jcount, entityType) Ind.Increment() j = 0 for item in results: j += 1 if not FJQC.formatJSON: - _getMain().printEntity([entityType, item['name']], j, jcount) + printEntity([entityType, item['name']], j, jcount) Ind.Increment() - _getMain().showJSON(None, item, timeObjects=analyticEntityMap['timeObjects']) + showJSON(None, item, timeObjects=analyticEntityMap['timeObjects']) Ind.Decrement() else: - _getMain().printLine(json.dumps(_getMain().cleanJSON(item, timeObjects=analyticEntityMap['timeObjects']), + printLine(json.dumps(cleanJSON(item, timeObjects=analyticEntityMap['timeObjects']), ensure_ascii=False, sort_keys=False)) Ind.Decrement() elif results: for item in results: - row = _getMain().flattenJSON(item, flattened={'User': user}, timeObjects=analyticEntityMap['timeObjects']) + row = flattenJSON(item, flattened={'User': user}, timeObjects=analyticEntityMap['timeObjects']) if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): row = {'User': user, 'name': item['name'], 'displayName': item['displayName']} for field in analyticEntityMap['JSONtitles'][2:-1]: row[field] = item[field] - row['JSON'] = json.dumps(_getMain().cleanJSON(item, timeObjects=analyticEntityMap['timeObjects']), + row['JSON'] = json.dumps(cleanJSON(item, timeObjects=analyticEntityMap['timeObjects']), ensure_ascii=False, sort_keys=True) csvPF.WriteRowNoFilter(row) elif GC.Values[GC.CSV_OUTPUT_USERS_AUDIT]: diff --git a/src/gam/cmd/audit.py b/src/gam/cmd/audit.py index 73c4f27a..0e36047e 100644 --- a/src/gam/cmd/audit.py +++ b/src/gam/cmd/audit.py @@ -12,6 +12,27 @@ from gamlib import glgapi as GAPI from gamlib import glglobals as GM from gamlib import glindent from gamlib import glmsgs as Msg +from gam.util.access import entityUnknownWarning +from gam.util.api import callGData, getEmailAuditObject +from gam.util.args import ( + YYYYMMDD_HHMM_FORMAT, + checkForExtraneousArguments, + getArgument, + getEmailAddress, + getString, + getYYYYMMDD_HHMM, + normalizeEmailAddressOrUID, + splitEmailAddress, +) +from gam.util.display import ( + entityActionFailedWarning, + entityActionPerformed, + entityPerformActionNumItems, + printKeyValueList, + printKeyValueListWithCount, +) +from gam.util.errors import invalidArgumentExit, unknownArgumentExit +from gam.util.output import setSysExitRC Act = glaction.GamAction() Ent = glentity.GamEntity() @@ -31,49 +52,49 @@ def __getattr__(name): raise AttributeError(f"module {__name__!r} has no attribute {name!r}") def getAuditParameters(emailAddressRequired=True, requestIdRequired=True, destUserRequired=False): - auditObject = _getMain().getEmailAuditObject() - emailAddress = _getMain().getEmailAddress(noUid=True, optional=not emailAddressRequired) + auditObject = getEmailAuditObject() + emailAddress = getEmailAddress(noUid=True, optional=not emailAddressRequired) parameters = {} if emailAddress: parameters['auditUser'] = emailAddress - parameters['auditUserName'], auditObject.domain = _getMain().splitEmailAddress(emailAddress) + parameters['auditUserName'], auditObject.domain = splitEmailAddress(emailAddress) if requestIdRequired: - parameters['requestId'] = _getMain().getString(Cmd.OB_REQUEST_ID) + parameters['requestId'] = getString(Cmd.OB_REQUEST_ID) if destUserRequired: - destEmailAddress = _getMain().getEmailAddress(noUid=True) + destEmailAddress = getEmailAddress(noUid=True) parameters['auditDestUser'] = destEmailAddress - parameters['auditDestUserName'], destDomain = _getMain().splitEmailAddress(destEmailAddress) + parameters['auditDestUserName'], destDomain = splitEmailAddress(destEmailAddress) if auditObject.domain != destDomain: Cmd.Backup() - _getMain().invalidArgumentExit(f'{parameters["auditDestUserName"]}@{auditObject.domain}') + invalidArgumentExit(f'{parameters["auditDestUserName"]}@{auditObject.domain}') return (auditObject, parameters) # Audit monitor command utilities def _showMailboxMonitorRequestStatus(request, i=0, count=0): - _getMain().printKeyValueListWithCount(['Destination', _getMain().normalizeEmailAddressOrUID(request['destUserName'])], i, count) + printKeyValueListWithCount(['Destination', normalizeEmailAddressOrUID(request['destUserName'])], i, count) Ind.Increment() - _getMain().printKeyValueList(['Begin', request.get('beginDate', 'immediately')]) - _getMain().printKeyValueList(['End', request['endDate']]) - _getMain().printKeyValueList(['Monitor Incoming', request['outgoingEmailMonitorLevel']]) - _getMain().printKeyValueList(['Monitor Outgoing', request['incomingEmailMonitorLevel']]) - _getMain().printKeyValueList(['Monitor Chats', request.get('chatMonitorLevel', 'NONE')]) - _getMain().printKeyValueList(['Monitor Drafts', request.get('draftMonitorLevel', 'NONE')]) + printKeyValueList(['Begin', request.get('beginDate', 'immediately')]) + printKeyValueList(['End', request['endDate']]) + printKeyValueList(['Monitor Incoming', request['outgoingEmailMonitorLevel']]) + printKeyValueList(['Monitor Outgoing', request['incomingEmailMonitorLevel']]) + printKeyValueList(['Monitor Chats', request.get('chatMonitorLevel', 'NONE')]) + printKeyValueList(['Monitor Drafts', request.get('draftMonitorLevel', 'NONE')]) Ind.Decrement() # gam audit monitor create [begin ] [end ] [incoming_headers] [outgoing_headers] [nochats] [nodrafts] [chat_headers] [draft_headers] def doCreateMonitor(): auditObject, parameters = getAuditParameters(emailAddressRequired=True, requestIdRequired=False, destUserRequired=True) #end_date defaults to 30 days in the future... - end_date = GM.Globals[GM.DATETIME_NOW].shift(days=30).strftime(_getMain().YYYYMMDD_HHMM_FORMAT) + end_date = GM.Globals[GM.DATETIME_NOW].shift(days=30).strftime(YYYYMMDD_HHMM_FORMAT) begin_date = None incoming_headers_only = outgoing_headers_only = drafts_headers_only = chats_headers_only = False drafts = chats = True while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if myarg == 'begin': - begin_date = _getMain().getYYYYMMDD_HHMM() + begin_date = getYYYYMMDD_HHMM() elif myarg == 'end': - end_date = _getMain().getYYYYMMDD_HHMM() + end_date = getYYYYMMDD_HHMM() elif myarg == 'incomingheaders': incoming_headers_only = True elif myarg == 'outgoingheaders': @@ -87,54 +108,54 @@ def doCreateMonitor(): elif myarg == 'draftheaders': drafts_headers_only = True else: - _getMain().unknownArgumentExit() + unknownArgumentExit() try: - request = _getMain().callGData(auditObject, 'createEmailMonitor', + request = callGData(auditObject, 'createEmailMonitor', throwErrors=[GDATA.INVALID_VALUE, GDATA.INVALID_INPUT, GDATA.DOES_NOT_EXIST, GDATA.INVALID_DOMAIN], source_user=parameters['auditUserName'], destination_user=parameters['auditDestUserName'], end_date=end_date, begin_date=begin_date, incoming_headers_only=incoming_headers_only, outgoing_headers_only=outgoing_headers_only, drafts=drafts, drafts_headers_only=drafts_headers_only, chats=chats, chats_headers_only=chats_headers_only) - _getMain().entityActionPerformed([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None]) + entityActionPerformed([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None]) Ind.Increment() _showMailboxMonitorRequestStatus(request) Ind.Decrement() except (GDATA.invalidValue, GDATA.invalidInput) as e: - _getMain().entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e)) + entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e)) except (GDATA.doesNotExist, GDATA.invalidDomain) as e: if str(e).find(parameters['auditUser']) != -1: - _getMain().entityUnknownWarning(Ent.USER, parameters['auditUser']) + entityUnknownWarning(Ent.USER, parameters['auditUser']) else: - _getMain().entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e)) + entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e)) # gam audit monitor delete def doDeleteMonitor(): auditObject, parameters = getAuditParameters(emailAddressRequired=True, requestIdRequired=False, destUserRequired=True) - _getMain().checkForExtraneousArguments() + checkForExtraneousArguments() try: - _getMain().callGData(auditObject, 'deleteEmailMonitor', + callGData(auditObject, 'deleteEmailMonitor', throwErrors=[GDATA.INVALID_INPUT, GDATA.DOES_NOT_EXIST, GDATA.INVALID_DOMAIN], source_user=parameters['auditUserName'], destination_user=parameters['auditDestUserName']) - _getMain().entityActionPerformed([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, parameters['auditDestUser']]) + entityActionPerformed([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, parameters['auditDestUser']]) except GDATA.invalidInput as e: - _getMain().entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e)) + entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e)) except (GDATA.doesNotExist, GDATA.invalidDomain) as e: if str(e).find(parameters['auditUser']) != -1: - _getMain().entityUnknownWarning(Ent.USER, parameters['auditUser']) + entityUnknownWarning(Ent.USER, parameters['auditUser']) else: - _getMain().entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e)) + entityActionFailedWarning([Ent.USER, parameters['auditUser'], Ent.AUDIT_MONITOR_REQUEST, None], str(e)) # gam audit monitor list def doShowMonitors(): auditObject, parameters = getAuditParameters(emailAddressRequired=True, requestIdRequired=False, destUserRequired=False) - _getMain().checkForExtraneousArguments() + checkForExtraneousArguments() try: - results = _getMain().callGData(auditObject, 'getEmailMonitors', + results = callGData(auditObject, 'getEmailMonitors', throwErrors=[GDATA.DOES_NOT_EXIST, GDATA.INVALID_DOMAIN], user=parameters['auditUserName']) jcount = len(results) if (results) else 0 - _getMain().entityPerformActionNumItems([Ent.USER, parameters['auditUser']], jcount, Ent.AUDIT_MONITOR_REQUEST) + entityPerformActionNumItems([Ent.USER, parameters['auditUser']], jcount, Ent.AUDIT_MONITOR_REQUEST) if jcount == 0: - _getMain().setSysExitRC(_getMain().NO_ENTITIES_FOUND_RC) + setSysExitRC(_getMain().NO_ENTITIES_FOUND_RC) return Ind.Increment() j = 0 @@ -143,6 +164,6 @@ def doShowMonitors(): _showMailboxMonitorRequestStatus(request, j, jcount) Ind.Decrement() except (GDATA.doesNotExist, GDATA.invalidDomain): - _getMain().entityUnknownWarning(Ent.USER, parameters['auditUser']) + entityUnknownWarning(Ent.USER, parameters['auditUser']) # gam whatis [noinfo] [noinvitablecheck] diff --git a/src/gam/cmd/browsers.py b/src/gam/cmd/browsers.py index 8778eb45..5a58bfd4 100644 --- a/src/gam/cmd/browsers.py +++ b/src/gam/cmd/browsers.py @@ -12,6 +12,53 @@ from gamlib import glgapi as GAPI from gamlib import glglobals as GM from gamlib import glindent from gamlib import glmsgs as Msg +from gam.util.access import checkEntityAFDNEorAccessErrorExit +from gam.util.api import buildGAPIObject, callGAPI, callGAPIpages, yieldGAPIpages +from gam.util.args import ( + OrderBy, + checkForExtraneousArguments, + getArgument, + getBoolean, + getChoice, + getInteger, + getOrderBySortOrder, + getString, + getStringWithCRsNLs, + getTimeOrDeltaFromNow, +) +from gam.util.csv_pf import ( + CSVPrintFile, + FormatJSONQuoteChar, + _getRawFields, + cleanJSON, + flattenJSON, + getFieldsFromFieldsList, + getFieldsList, + getItemFieldsFromFieldsList, + showJSON, +) +from gam.util.display import ( + entityActionFailedWarning, + entityActionPerformed, + getPageMessage, + invalidQuery, + performActionNumItems, + printEntity, + printGettingAllAccountEntities, + printGettingEntityItemForWhom, + printLine, +) +from gam.util.entity import ( + convertEntityToList, + getDeviceQueries, + getEntitiesFromCSVFile, + getEntitiesFromFile, + getEntityList, + getEntityToModify, + getItemsToModify, +) +from gam.util.errors import entityActionFailedExit, missingArgumentExit, unknownArgumentExit +from gam.util.orgunits import getOrgUnitItem Act = glaction.GamAction() Ent = glentity.GamEntity() @@ -31,27 +78,27 @@ def __getattr__(name): raise AttributeError(f"module {__name__!r} has no attribute {name!r}") def doDeleteBrowsers(): - cbcm = _getMain().buildGAPIObject(API.CBCM) + cbcm = buildGAPIObject(API.CBCM) customerId = _getMain()._getCustomerIdNoC() - deviceId = _getMain().getString(Cmd.OB_DEVICE_ID) - _getMain().checkForExtraneousArguments() + deviceId = getString(Cmd.OB_DEVICE_ID) + checkForExtraneousArguments() try: - _getMain().callGAPI(cbcm.chromebrowsers(), 'delete', + callGAPI(cbcm.chromebrowsers(), 'delete', throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN], customer=customerId, deviceId=deviceId) - _getMain().entityActionPerformed([Ent.CHROME_BROWSER, deviceId]) + entityActionPerformed([Ent.CHROME_BROWSER, deviceId]) except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden): - _getMain().checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId) + checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId) BROWSER_TIME_OBJECTS = {'firstRecordTime', 'lastActivityTime', 'lastPolicyFetchTime', 'lastRegistrationTime', 'lastStatusReportTime', 'safeBrowsingWarningsResetTime'} def _showBrowser(browser, FJQC, i=0, count=0): if FJQC.formatJSON: - _getMain().printLine(json.dumps(_getMain().cleanJSON(browser), ensure_ascii=False, sort_keys=True)) + printLine(json.dumps(cleanJSON(browser), ensure_ascii=False, sort_keys=True)) return - _getMain().printEntity([Ent.CHROME_BROWSER, browser['deviceId']], i, count) + printEntity([Ent.CHROME_BROWSER, browser['deviceId']], i, count) Ind.Increment() - _getMain().showJSON(None, browser, timeObjects=BROWSER_TIME_OBJECTS, dictObjectsKey={'machinePolicies': 'name'}) + showJSON(None, browser, timeObjects=BROWSER_TIME_OBJECTS, dictObjectsKey={'machinePolicies': 'name'}) Ind.Decrement() BROWSER_FIELDS_CHOICE_MAP = { @@ -100,40 +147,40 @@ BROWSER_FULL_ACCESS_FIELDS = {'browsers', 'lastDeviceUsers', 'lastStatusReportTi # (rawfields )) # [formatjson] def doInfoBrowsers(): - cbcm = _getMain().buildGAPIObject(API.CBCM) + cbcm = buildGAPIObject(API.CBCM) customerId = _getMain()._getCustomerIdNoC() - deviceId = _getMain().getString(Cmd.OB_DEVICE_ID) + deviceId = getString(Cmd.OB_DEVICE_ID) projection = 'BASIC' fieldsList = [] rawFields = None - FJQC = _getMain().FormatJSONQuoteChar() + FJQC = FormatJSONQuoteChar() while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if myarg == 'annotated': projection = 'BASIC' fieldsList = BROWSER_ANNOTATED_FIELDS_LIST elif myarg in _getMain().PROJECTION_CHOICE_MAP: projection = _getMain().PROJECTION_CHOICE_MAP[myarg] fieldsList = [] - elif _getMain().getFieldsList(myarg, BROWSER_FIELDS_CHOICE_MAP, fieldsList, initialField='deviceId'): + elif getFieldsList(myarg, BROWSER_FIELDS_CHOICE_MAP, fieldsList, initialField='deviceId'): pass elif myarg == 'rawfields': projection = 'FULL' - rawFields = _getMain()._getRawFields('deviceId') + rawFields = _getRawFields('deviceId') else: FJQC.GetFormatJSON(myarg) if projection == 'BASIC' and set(fieldsList).intersection(BROWSER_FULL_ACCESS_FIELDS): projection = 'FULL' - fields = _getMain().getFieldsFromFieldsList(fieldsList) if not rawFields else rawFields + fields = getFieldsFromFieldsList(fieldsList) if not rawFields else rawFields try: - browser = _getMain().callGAPI(cbcm.chromebrowsers(), 'get', + browser = callGAPI(cbcm.chromebrowsers(), 'get', throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.FORBIDDEN], customer=customerId, deviceId=deviceId, projection=projection, fields=fields) _showBrowser(browser, FJQC) except GAPI.invalidArgument as e: - _getMain().entityActionFailedWarning([Ent.CHROME_BROWSER, deviceId], str(e)) + entityActionFailedWarning([Ent.CHROME_BROWSER, deviceId], str(e)) except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden): - _getMain().checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId) + checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId) # gam move browsers ou|org|orgunit # ((ids ) | @@ -142,7 +189,7 @@ def doInfoBrowsers(): # | ) # [batchsize ] def doMoveBrowsers(): - cbcm = _getMain().buildGAPIObject(API.CBCM) + cbcm = buildGAPIObject(API.CBCM) customerId = _getMain()._getCustomerIdNoC() deviceIds = [] batch_size = GC.Values[GC.BATCH_SIZE] @@ -150,32 +197,32 @@ def doMoveBrowsers(): queries = [] queryTimes = {} while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if myarg in {'ou', 'org', 'orgunit'}: - orgUnitPath = _getMain().getOrgUnitItem() + orgUnitPath = getOrgUnitItem() elif myarg == 'ids': - deviceIds.extend(_getMain().convertEntityToList(_getMain().getString(Cmd.OB_DEVICE_ID_LIST, minLen=0))) + deviceIds.extend(convertEntityToList(getString(Cmd.OB_DEVICE_ID_LIST, minLen=0))) elif myarg == 'file': - deviceIds.extend(_getMain().getEntitiesFromFile(False)) + deviceIds.extend(getEntitiesFromFile(False)) elif myarg in {'csv', 'csvfile'}: - deviceIds.extend(_getMain().getEntitiesFromCSVFile(False)) + deviceIds.extend(getEntitiesFromCSVFile(False)) elif myarg in {'query', 'queries'}: - queries = _getMain().getDeviceQueries(myarg, Ent.CHROME_BROWSER) + queries = getDeviceQueries(myarg, Ent.CHROME_BROWSER) elif myarg.startswith('querytime'): - queryTimes[myarg] = _getMain().getTimeOrDeltaFromNow()[0:19] + queryTimes[myarg] = getTimeOrDeltaFromNow()[0:19] elif myarg == 'browserou': - deviceIds.extend(_getMain().getItemsToModify(Cmd.ENTITY_BROWSER_OU, _getMain().getOrgUnitItem(pathOnly=True, absolutePath=True))) + deviceIds.extend(getItemsToModify(Cmd.ENTITY_BROWSER_OU, getOrgUnitItem(pathOnly=True, absolutePath=True))) elif myarg == 'browserous': - deviceIds.extend(_getMain().getItemsToModify(Cmd.ENTITY_BROWSER_OUS, _getMain().getEntityList(Cmd.OB_ORGUNIT_ENTITY, shlexSplit=True))) + deviceIds.extend(getItemsToModify(Cmd.ENTITY_BROWSER_OUS, getEntityList(Cmd.OB_ORGUNIT_ENTITY, shlexSplit=True))) elif myarg == 'batchsize': - batch_size = _getMain().getInteger(minVal=1, maxVal=600) + batch_size = getInteger(minVal=1, maxVal=600) else: - _getMain().unknownArgumentExit() + unknownArgumentExit() if not orgUnitPath: - _getMain().missingArgumentExit('orgunit') + missingArgumentExit('orgunit') _getMain().substituteQueryTimes(queries, queryTimes) if queries: - deviceIds.extend(_getMain().getItemsToModify(Cmd.ENTITY_BROWSER_QUERIES, queries)) + deviceIds.extend(getItemsToModify(Cmd.ENTITY_BROWSER_QUERIES, queries)) body = {'org_unit_path': orgUnitPath} bcount = 0 jcount = len(deviceIds) @@ -184,19 +231,19 @@ def doMoveBrowsers(): kcount = min(jcount-bcount, batch_size) try: body['resource_ids'] = deviceIds[bcount:bcount+kcount] - _getMain().callGAPI(cbcm.chromebrowsers(), 'moveChromeBrowsersToOu', + callGAPI(cbcm.chromebrowsers(), 'moveChromeBrowsersToOu', mapNotFound=False, throwReasons=[GAPI.INVALID_ORGUNIT, GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN], customer=customerId, body=body) for deviceId in deviceIds: j += 1 - _getMain().entityActionPerformed([Ent.ORGANIZATIONAL_UNIT, orgUnitPath, Ent.CHROME_BROWSER, deviceId], j, jcount) + entityActionPerformed([Ent.ORGANIZATIONAL_UNIT, orgUnitPath, Ent.CHROME_BROWSER, deviceId], j, jcount) bcount += kcount except GAPI.invalidOrgunit: - _getMain().entityActionFailedWarning([Ent.ORGANIZATIONAL_UNIT, orgUnitPath], Msg.INVALID_ORGUNIT) + entityActionFailedWarning([Ent.ORGANIZATIONAL_UNIT, orgUnitPath], Msg.INVALID_ORGUNIT) break except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden) as e: - _getMain().entityActionFailedWarning([Ent.ORGANIZATIONAL_UNIT, orgUnitPath, Ent.CHROME_BROWSER, f'IDs: {deviceIds[bcount]} - {deviceIds[bcount+kcount-1]}'], str(e)) + entityActionFailedWarning([Ent.ORGANIZATIONAL_UNIT, orgUnitPath, Ent.CHROME_BROWSER, f'IDs: {deviceIds[bcount]} - {deviceIds[bcount+kcount-1]}'], str(e)) bcount += kcount UPDATE_BROWSER_ARGUMENT_TO_PROPERTY_MAP = { @@ -216,44 +263,44 @@ BROWSER_DEVICEID_ANNOTATED_FIELDS = 'deviceId,annotatedAssetId,annotatedLocation # gam update browser + [updatenotes ] def doUpdateBrowsers(): - cbcm = _getMain().buildGAPIObject(API.CBCM) + cbcm = buildGAPIObject(API.CBCM) customerId = _getMain()._getCustomerIdNoC() - _, entityList = _getMain().getEntityToModify(defaultEntityType=Cmd.ENTITY_BROWSER, browserAllowed=True, crosAllowed=False, userAllowed=False) + _, entityList = getEntityToModify(defaultEntityType=Cmd.ENTITY_BROWSER, browserAllowed=True, crosAllowed=False, userAllowed=False) body = {} updateNotes = None while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if myarg in UPDATE_BROWSER_ARGUMENT_TO_PROPERTY_MAP: up = UPDATE_BROWSER_ARGUMENT_TO_PROPERTY_MAP[myarg] if up == 'annotatedNotes': - body[up] = _getMain().getStringWithCRsNLs() + body[up] = getStringWithCRsNLs() updateNotes = body[up] if myarg == 'updatenotes' and body[up].find('#notes#') != -1 else None else: - body[up] = _getMain().getString(Cmd.OB_STRING) + body[up] = getString(Cmd.OB_STRING) else: - _getMain().unknownArgumentExit() + unknownArgumentExit() i = 0 count = len(entityList) for deviceId in entityList: i += 1 try: - browser = _getMain().callGAPI(cbcm.chromebrowsers(), 'get', + browser = callGAPI(cbcm.chromebrowsers(), 'get', throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN], customer=customerId, deviceId=deviceId, projection='BASIC', fields=BROWSER_DEVICEID_ANNOTATED_FIELDS) if updateNotes: body['annotatedNotes'] = updateNotes.replace('#notes#', browser['annotatedNotes']) browser.update(body) - _getMain().callGAPI(cbcm.chromebrowsers(), 'update', + callGAPI(cbcm.chromebrowsers(), 'update', throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.FORBIDDEN], customer=customerId, deviceId=deviceId, body=browser, projection='BASIC', fields="deviceId") - _getMain().entityActionPerformed([Ent.CHROME_BROWSER, deviceId], i, count) + entityActionPerformed([Ent.CHROME_BROWSER, deviceId], i, count) except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden): - _getMain().checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId, i, count) + checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId, i, count) def _getChromeProfileName(): - profileName = _getMain().getString(Cmd.OB_CHROMEPROFILE_NAME) + profileName = getString(Cmd.OB_CHROMEPROFILE_NAME) if not profileName.startswith('customers'): customerId = _getMain()._getCustomerId() profileName = f'customers/{customerId}/profiles/{profileName}' @@ -261,16 +308,16 @@ def _getChromeProfileName(): # gam delete chromeprofile def doDeleteChromeProfile(): - cm = _getMain().buildGAPIObject(API.CHROMEMANAGEMENT) + cm = buildGAPIObject(API.CHROMEMANAGEMENT) profileName = _getChromeProfileName() - _getMain().checkForExtraneousArguments() + checkForExtraneousArguments() try: - _getMain().callGAPI(cm.customers().profiles(), 'delete', + callGAPI(cm.customers().profiles(), 'delete', throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED], name=profileName) - _getMain().entityActionPerformed([Ent.CHROME_PROFILE, profileName]) + entityActionPerformed([Ent.CHROME_PROFILE, profileName]) except (GAPI.invalidArgument, GAPI.notFound, GAPI.permissionDenied) as e: - _getMain().entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e)) + entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e)) CHROMEPROFILE_TIME_OBJECTS = { 'firstEnrollmentTime', @@ -282,12 +329,12 @@ CHROMEPROFILE_TIME_OBJECTS = { def _showChromeProfile(profile, FJQC, i=0, count=0): if FJQC.formatJSON: - _getMain().printLine(json.dumps(_getMain().cleanJSON(profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS), + printLine(json.dumps(cleanJSON(profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)) return - _getMain().printEntity([Ent.CHROME_PROFILE, profile['name']], i, count) + printEntity([Ent.CHROME_PROFILE, profile['name']], i, count) Ind.Increment() - _getMain().showJSON(None, profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS) + showJSON(None, profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS) Ind.Decrement() CHROMEPROFILE_FIELDS_CHOICE_MAP = { @@ -322,24 +369,24 @@ CHROMEPROFILE_FIELDS_CHOICE_MAP = { # * [fields ] # [formatjson] def doInfoChromeProfile(): - cm = _getMain().buildGAPIObject(API.CHROMEMANAGEMENT) + cm = buildGAPIObject(API.CHROMEMANAGEMENT) profileName = _getChromeProfileName() fieldsList = [] - FJQC = _getMain().FormatJSONQuoteChar() + FJQC = FormatJSONQuoteChar() while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() - if _getMain().getFieldsList(myarg, CHROMEPROFILE_FIELDS_CHOICE_MAP, fieldsList, initialField='name'): + myarg = getArgument() + if getFieldsList(myarg, CHROMEPROFILE_FIELDS_CHOICE_MAP, fieldsList, initialField='name'): pass else: FJQC.GetFormatJSON(myarg) - fields = _getMain().getFieldsFromFieldsList(fieldsList) + fields = getFieldsFromFieldsList(fieldsList) try: - profile = _getMain().callGAPI(cm.customers().profiles(), 'get', + profile = callGAPI(cm.customers().profiles(), 'get', throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED], name=profileName, fields=fields) _showChromeProfile(profile, FJQC) except (GAPI.invalidArgument, GAPI.notFound, GAPI.permissionDenied) as e: - _getMain().entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e)) + entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e)) CHROMEPROFILE_ORDERBY_CHOICE_MAP = { 'affiliationstate': 'affiliationState', @@ -371,34 +418,34 @@ CHROMEPROFILE_ORDERBY_CHOICE_MAP = { # [formatjson [quotechar ]] def doPrintShowChromeProfiles(): def _printProfile(profile): - row = _getMain().flattenJSON(profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS) + row = flattenJSON(profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS) if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): csvPF.WriteRowNoFilter({'name': profile['name'], 'profileId': profile['profileId'], - 'JSON': json.dumps(_getMain().cleanJSON(profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS), + 'JSON': json.dumps(cleanJSON(profile, timeObjects=CHROMEPROFILE_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)}) - cm = _getMain().buildGAPIObject(API.CHROMEMANAGEMENT) - csvPF = _getMain().CSVPrintFile(['name', 'profileId']) if Act.csvFormat() else None - FJQC = _getMain().FormatJSONQuoteChar(csvPF) - OBY = _getMain().OrderBy(CHROMEPROFILE_ORDERBY_CHOICE_MAP) + cm = buildGAPIObject(API.CHROMEMANAGEMENT) + csvPF = CSVPrintFile(['name', 'profileId']) if Act.csvFormat() else None + FJQC = FormatJSONQuoteChar(csvPF) + OBY = OrderBy(CHROMEPROFILE_ORDERBY_CHOICE_MAP) sortHeaders = False fieldsList = [] cbfilter = None filterTimes = {} while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() - elif _getMain().getFieldsList(myarg, CHROMEPROFILE_FIELDS_CHOICE_MAP, fieldsList, initialField=['name', 'profileId']): + elif getFieldsList(myarg, CHROMEPROFILE_FIELDS_CHOICE_MAP, fieldsList, initialField=['name', 'profileId']): pass elif myarg == 'orderby': OBY.GetChoice() elif myarg.startswith('filtertime'): - filterTimes[myarg] = _getMain().getTimeOrDeltaFromNow() + filterTimes[myarg] = getTimeOrDeltaFromNow() elif myarg in {'filter', 'filters'}: - cbfilter = _getMain().getString(Cmd.OB_STRING) + cbfilter = getString(Cmd.OB_STRING) elif myarg == 'sortheaders': sortHeaders = True else: @@ -406,13 +453,13 @@ def doPrintShowChromeProfiles(): if filterTimes and cbfilter is not None: for filterTimeName, filterTimeValue in filterTimes.items(): cbfilter = cbfilter.replace(f'#{filterTimeName}#', filterTimeValue) - fields = _getMain().getItemFieldsFromFieldsList('chromeBrowserProfiles', fieldsList) + fields = getItemFieldsFromFieldsList('chromeBrowserProfiles', fieldsList) customerId = _getMain()._getCustomerId() parent = f'customers/{customerId}' - _getMain().printGettingAllAccountEntities(Ent.CHROME_PROFILE, cbfilter) - pageMessage = _getMain().getPageMessage() + printGettingAllAccountEntities(Ent.CHROME_PROFILE, cbfilter) + pageMessage = getPageMessage() try: - feed = _getMain().yieldGAPIpages(cm.customers().profiles(), 'list', 'chromeBrowserProfiles', + feed = yieldGAPIpages(cm.customers().profiles(), 'list', 'chromeBrowserProfiles', pageMessage=pageMessage, throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED], parent=parent, pageSize=200, @@ -421,7 +468,7 @@ def doPrintShowChromeProfiles(): if not csvPF: jcount = len(profiles) if not FJQC.formatJSON: - _getMain().performActionNumItems(jcount, Ent.CHROME_PROFILE) + performActionNumItems(jcount, Ent.CHROME_PROFILE) Ind.Increment() j = 0 for profile in profiles: @@ -432,7 +479,7 @@ def doPrintShowChromeProfiles(): for profile in profiles: _printProfile(profile) except (GAPI.invalidArgument, GAPI.permissionDenied) as e: - _getMain().entityActionFailedExit([Ent.CHROME_PROFILE, cbfilter], str(e)) + entityActionFailedExit([Ent.CHROME_PROFILE, cbfilter], str(e)) if csvPF: if sortHeaders: csvPF.SetSortTitles(['name', 'profileId']) @@ -440,28 +487,28 @@ def doPrintShowChromeProfiles(): def _getChromeProfileNameList(): if not Cmd.PeekArgumentPresent(['select', 'commands', 'filter', 'filters']): - return _getMain().getString(Cmd.OB_CHROMEPROFILE_NAME_LIST).replace(',', ' ').split() + return getString(Cmd.OB_CHROMEPROFILE_NAME_LIST).replace(',', ' ').split() return [] def _initChromeProfileNameParameters(): - cm = _getMain().buildGAPIObject(API.CHROMEMANAGEMENT) + cm = buildGAPIObject(API.CHROMEMANAGEMENT) return (cm, {'profileNameList': _getChromeProfileNameList(), 'commandNameList': [], 'customerId': _getMain()._getCustomerId(), 'cbfilter': None, 'filterTimes': {}, - 'OBY': _getMain().OrderBy(CHROMEPROFILE_ORDERBY_CHOICE_MAP)}) + 'OBY': OrderBy(CHROMEPROFILE_ORDERBY_CHOICE_MAP)}) def _getChromeProfileNameParameters(myarg, parameters): if not parameters['cbfilter'] and not parameters['commandNameList'] and myarg == 'select': - parameters['profileNameList'].extend(_getMain().getEntityList(Cmd.OB_CHROMEPROFILE_NAME_LIST)) + parameters['profileNameList'].extend(getEntityList(Cmd.OB_CHROMEPROFILE_NAME_LIST)) elif not parameters['cbfilter'] and not parameters['profileNameList'] and myarg == 'commands': - parameters['commandNameList'].extend(_getMain().getEntityList(Cmd.OB_CHROMEPROFILE_COMMAND_NAME_LIST)) + parameters['commandNameList'].extend(getEntityList(Cmd.OB_CHROMEPROFILE_COMMAND_NAME_LIST)) elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg == 'orderby': parameters['OBY'].GetChoice() elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg.startswith('filtertime'): - parameters['filterTimes'][myarg] = _getMain().getTimeOrDeltaFromNow() + parameters['filterTimes'][myarg] = getTimeOrDeltaFromNow() elif not parameters['profileNameList'] and not parameters['commandNameList'] and myarg in {'filter', 'filters'}: - parameters['cbfilter'] = _getMain().getString(Cmd.OB_STRING) + parameters['cbfilter'] = getString(Cmd.OB_STRING) else: return False return True @@ -481,10 +528,10 @@ def _getChromeProfileNameEntityForCommand(cm, parameters): if parameters['filterTimes']: for filterTimeName, filterTimeValue in parameters['filterTimes'].items(): parameters['cbfilter'] = parameters['cbfilter'].replace(f'#{filterTimeName}#', filterTimeValue) - _getMain().printGettingAllAccountEntities(Ent.CHROME_PROFILE, parameters['cbfilter']) - pageMessage = _getMain().getPageMessage() + printGettingAllAccountEntities(Ent.CHROME_PROFILE, parameters['cbfilter']) + pageMessage = getPageMessage() try: - feed = _getMain().yieldGAPIpages(cm.customers().profiles(), 'list', 'chromeBrowserProfiles', + feed = yieldGAPIpages(cm.customers().profiles(), 'list', 'chromeBrowserProfiles', pageMessage=pageMessage, throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED], parent=f'customers/{parameters["customerId"]}', pageSize=200, @@ -494,7 +541,7 @@ def _getChromeProfileNameEntityForCommand(cm, parameters): for profile in profiles: parameters['profileNameList'].append(profile['name']) except (GAPI.invalidArgument, GAPI.permissionDenied) as e: - _getMain().entityActionFailedExit([Ent.CHROME_PROFILE, parameters['cbfilter']], str(e)) + entityActionFailedExit([Ent.CHROME_PROFILE, parameters['cbfilter']], str(e)) CHROMEPROFILECOMMAND_TIME_OBJECTS = { 'clientExecutionTime', @@ -503,21 +550,21 @@ CHROMEPROFILECOMMAND_TIME_OBJECTS = { def _showChromeProfileCommand(profcmd, FJQC, i=0, count=0): if FJQC.formatJSON: - _getMain().printLine(json.dumps(_getMain().cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS), + printLine(json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)) return - _getMain().printEntity([Ent.CHROME_PROFILE_COMMAND, profcmd['name']], i, count) + printEntity([Ent.CHROME_PROFILE_COMMAND, profcmd['name']], i, count) Ind.Increment() - _getMain().showJSON(None, profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS) + showJSON(None, profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS) Ind.Decrement() def _printChromeProfileCommand(profcmd, csvPF, FJQC): - row = _getMain().flattenJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS) + row = flattenJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS) if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): csvPF.WriteRowNoFilter({'name': profcmd['name'], - 'JSON': json.dumps(_getMain().cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS), + 'JSON': json.dumps(cleanJSON(profcmd, timeObjects=CHROMEPROFILECOMMAND_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)}) # gam create chromeprofilecommand @@ -527,17 +574,17 @@ def doCreateChromeProfileCommand(): cm, parameters = _initChromeProfileNameParameters() body = {'commandType': 'clearBrowsingData', 'payload': {}} csvPF = None - FJQC = _getMain().FormatJSONQuoteChar(None) + FJQC = FormatJSONQuoteChar(None) while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if _getChromeProfileNameParameters(myarg, parameters): pass elif myarg == 'clearcache': - body['payload']['clearCache'] = _getMain().getBoolean() + body['payload']['clearCache'] = getBoolean() elif myarg == 'clearcookies': - body['payload']['clearCookies'] = _getMain().getBoolean() + body['payload']['clearCookies'] = getBoolean() elif myarg == 'csv': - csvPF = _getMain().CSVPrintFile(['name'], 'sortall') + csvPF = CSVPrintFile(['name'], 'sortall') FJQC.SetCsvPF(csvPF) elif csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() @@ -549,7 +596,7 @@ def doCreateChromeProfileCommand(): for profileName in parameters['profileNameList']: i +=1 try: - profcmd = _getMain().callGAPI(cm.customers().profiles().commands(), 'create', + profcmd = callGAPI(cm.customers().profiles().commands(), 'create', throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED], parent=profileName, body=body) if csvPF is None: @@ -557,39 +604,39 @@ def doCreateChromeProfileCommand(): else: _printChromeProfileCommand(profcmd, csvPF, FJQC) except (GAPI.notFound) as e: - _getMain().entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileName], str(e), i, count) + entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileName], str(e), i, count) except (GAPI.invalidArgument, GAPI.permissionDenied) as e: - _getMain().entityActionFailedExit([Ent.CHROME_PROFILE_COMMAND, profileName], str(e)) + entityActionFailedExit([Ent.CHROME_PROFILE_COMMAND, profileName], str(e)) if csvPF: csvPF.writeCSVfile('Chrome Profile Commands') # gam info chromeprofilecommand # [formatjson] def doInfoChromeProfileCommand(): - cm = _getMain().buildGAPIObject(API.CHROMEMANAGEMENT) + cm = buildGAPIObject(API.CHROMEMANAGEMENT) profileCommandName = _getChromeProfileName() - FJQC = _getMain().FormatJSONQuoteChar() + FJQC = FormatJSONQuoteChar() while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() FJQC.GetFormatJSON(myarg) try: - profcmd = _getMain().callGAPI(cm.customers().profiles().commands(), 'get', + profcmd = callGAPI(cm.customers().profiles().commands(), 'get', throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED], name=profileCommandName) _showChromeProfileCommand(profcmd, FJQC) except (GAPI.invalidArgument, GAPI.notFound, GAPI.permissionDenied) as e: - _getMain().entityActionFailedExit([Ent.CHROME_PROFILE, profileCommandName], str(e)) + entityActionFailedExit([Ent.CHROME_PROFILE, profileCommandName], str(e)) # gam show chromeprofilecommands # [formatjson] # gam print chromeprofilecommands [todrive *] # [formatjson [quotechar ]] def doPrintShowChromeProfileCommands(): - csvPF = _getMain().CSVPrintFile(['name']) if Act.csvFormat() else None - FJQC = _getMain().FormatJSONQuoteChar(csvPF) + csvPF = CSVPrintFile(['name']) if Act.csvFormat() else None + FJQC = FormatJSONQuoteChar(csvPF) cm, parameters = _initChromeProfileNameParameters() while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() elif _getChromeProfileNameParameters(myarg, parameters): @@ -602,10 +649,10 @@ def doPrintShowChromeProfileCommands(): i = 0 for profileName in parameters['profileNameList']: i +=1 - _getMain().printGettingEntityItemForWhom(Ent.CHROME_PROFILE_COMMAND, profileName, i, count) - pageMessage = _getMain().getPageMessage() + printGettingEntityItemForWhom(Ent.CHROME_PROFILE_COMMAND, profileName, i, count) + pageMessage = getPageMessage() try: - profcmds = _getMain().callGAPIpages(cm.customers().profiles().commands(), 'list', 'chromeBrowserProfileCommands', + profcmds = callGAPIpages(cm.customers().profiles().commands(), 'list', 'chromeBrowserProfileCommands', pageMessage=pageMessage, throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED], parent=profileName, pageSize=100) @@ -621,16 +668,16 @@ def doPrintShowChromeProfileCommands(): for profcmd in profcmds: _printChromeProfileCommand(profcmd, csvPF, FJQC) except GAPI.notFound as e: - _getMain().entityActionFailedWarning([Ent.CHROME_PROFILE, profileName], str(e), i, count) + entityActionFailedWarning([Ent.CHROME_PROFILE, profileName], str(e), i, count) except (GAPI.invalidArgument, GAPI.permissionDenied) as e: - _getMain().entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e)) + entityActionFailedExit([Ent.CHROME_PROFILE, profileName], str(e)) elif parameters['commandNameList']: count = len(parameters['commandNameList']) i = 0 for profileCommandName in parameters['commandNameList']: i +=1 try: - profcmd = _getMain().callGAPI(cm.customers().profiles().commands(), 'get', + profcmd = callGAPI(cm.customers().profiles().commands(), 'get', throwReasons=[GAPI.INVALID_ARGUMENT, GAPI.NOT_FOUND, GAPI.PERMISSION_DENIED], name=profileCommandName) if not csvPF: @@ -638,9 +685,9 @@ def doPrintShowChromeProfileCommands(): else: _printChromeProfileCommand(profcmd, csvPF, FJQC) except GAPI.notFound as e: - _getMain().entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileCommandName], str(e), i, count) + entityActionFailedWarning([Ent.CHROME_PROFILE_COMMAND, profileCommandName], str(e), i, count) except (GAPI.invalidArgument, GAPI.permissionDenied) as e: - _getMain().entityActionFailedExit([Ent.CHROME_PROFILE, profileCommandName], str(e)) + entityActionFailedExit([Ent.CHROME_PROFILE, profileCommandName], str(e)) if csvPF: csvPF.writeCSVfile('Chrome Profile Commands') @@ -686,18 +733,18 @@ BROWSER_ORDERBY_CHOICE_MAP = { # [sortheaders] [formatjson [quotechar ]] def doPrintShowBrowsers(): def _printBrowser(browser): - row = _getMain().flattenJSON(browser, timeObjects=BROWSER_TIME_OBJECTS) + row = flattenJSON(browser, timeObjects=BROWSER_TIME_OBJECTS) if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): csvPF.WriteRowNoFilter({'deviceId': browser['deviceId'], - 'JSON': json.dumps(_getMain().cleanJSON(browser, timeObjects=BROWSER_TIME_OBJECTS), + 'JSON': json.dumps(cleanJSON(browser, timeObjects=BROWSER_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)}) - cbcm = _getMain().buildGAPIObject(API.CBCM) + cbcm = buildGAPIObject(API.CBCM) customerId = _getMain()._getCustomerIdNoC() - csvPF = _getMain().CSVPrintFile(['deviceId']) if Act.csvFormat() else None - FJQC = _getMain().FormatJSONQuoteChar(csvPF) + csvPF = CSVPrintFile(['deviceId']) if Act.csvFormat() else None + FJQC = FormatJSONQuoteChar(csvPF) fieldsList = [] rawFields = None projection = 'BASIC' @@ -708,25 +755,25 @@ def doPrintShowBrowsers(): queryTimes = {} sortHeaders = sortRows = False while Cmd.ArgumentsRemaining(): - myarg = _getMain().getArgument() + myarg = getArgument() if csvPF and myarg == 'todrive': csvPF.GetTodriveParameters() elif myarg in {'query', 'queries'}: - queries = _getMain().getDeviceQueries(myarg, Ent.CHROME_BROWSER) + queries = getDeviceQueries(myarg, Ent.CHROME_BROWSER) elif myarg.startswith('querytime'): - queryTimes[myarg] = _getMain().getTimeOrDeltaFromNow()[0:19] + queryTimes[myarg] = getTimeOrDeltaFromNow()[0:19] elif myarg in {'ou', 'org', 'orgunit', 'browserou'}: - orgUnitPath = _getMain().getOrgUnitItem(pathOnly=True, absolutePath=True) + orgUnitPath = getOrgUnitItem(pathOnly=True, absolutePath=True) elif myarg == 'select': - _, entityList = _getMain().getEntityToModify(defaultEntityType=Cmd.ENTITY_BROWSER, browserAllowed=True, crosAllowed=False, userAllowed=False) + _, entityList = getEntityToModify(defaultEntityType=Cmd.ENTITY_BROWSER, browserAllowed=True, crosAllowed=False, userAllowed=False) elif myarg == 'orderby': - orderBy, sortOrder = _getMain().getOrderBySortOrder(BROWSER_ORDERBY_CHOICE_MAP, 'DESCENDING', True) + orderBy, sortOrder = getOrderBySortOrder(BROWSER_ORDERBY_CHOICE_MAP, 'DESCENDING', True) elif myarg == 'annotated': projection = 'BASIC' fieldsList = BROWSER_ANNOTATED_FIELDS_LIST elif (myarg == 'projection') or myarg in _getMain().PROJECTION_CHOICE_MAP: if myarg == 'projection': - projection = _getMain().getChoice(_getMain().PROJECTION_CHOICE_MAP, mapChoice=True) + projection = getChoice(_getMain().PROJECTION_CHOICE_MAP, mapChoice=True) else: projection = _getMain().PROJECTION_CHOICE_MAP[myarg] fieldsList = [] @@ -736,11 +783,11 @@ def doPrintShowBrowsers(): fieldsList = [] elif myarg == 'sortheaders': sortHeaders = True - elif _getMain().getFieldsList(myarg, BROWSER_FIELDS_CHOICE_MAP, fieldsList, initialField='deviceId'): + elif getFieldsList(myarg, BROWSER_FIELDS_CHOICE_MAP, fieldsList, initialField='deviceId'): pass elif myarg == 'rawfields': projection = 'FULL' - rawFields = _getMain()._getRawFields('deviceId') + rawFields = _getRawFields('deviceId') else: FJQC.GetFormatJSONQuoteChar(myarg, True) if projection == 'BASIC' and set(fieldsList).intersection(BROWSER_FULL_ACCESS_FIELDS): @@ -749,12 +796,12 @@ def doPrintShowBrowsers(): sortHeaders = False _getMain().substituteQueryTimes(queries, queryTimes) if entityList is None: - fields = _getMain().getItemFieldsFromFieldsList('browsers', fieldsList) if not rawFields else f'nextPageToken,browsers({rawFields})' + fields = getItemFieldsFromFieldsList('browsers', fieldsList) if not rawFields else f'nextPageToken,browsers({rawFields})' for query in queries: - _getMain().printGettingAllAccountEntities(Ent.CHROME_BROWSER, query) - pageMessage = _getMain().getPageMessage() + printGettingAllAccountEntities(Ent.CHROME_BROWSER, query) + pageMessage = getPageMessage() try: - feed = _getMain().yieldGAPIpages(cbcm.chromebrowsers(), 'list', 'browsers', + feed = yieldGAPIpages(cbcm.chromebrowsers(), 'list', 'browsers', pageMessage=pageMessage, messageAttribute='deviceId', throwReasons=[GAPI.INVALID_INPUT, GAPI.BAD_REQUEST, GAPI.INVALID_ARGUMENT, GAPI.INVALID_ORGUNIT, GAPI.FORBIDDEN], retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS, @@ -764,7 +811,7 @@ def doPrintShowBrowsers(): if not csvPF: jcount = len(browsers) if not FJQC.formatJSON: - _getMain().performActionNumItems(jcount, Ent.CHROME_BROWSER) + performActionNumItems(jcount, Ent.CHROME_BROWSER) Ind.Increment() j = 0 for browser in browsers: @@ -776,31 +823,31 @@ def doPrintShowBrowsers(): _printBrowser(browser) except GAPI.invalidInput as e: if query: - _getMain().entityActionFailedWarning([Ent.CHROME_BROWSER, None], _getMain().invalidQuery(query)) + entityActionFailedWarning([Ent.CHROME_BROWSER, None], invalidQuery(query)) else: - _getMain().entityActionFailedWarning([Ent.CHROME_BROWSER, None], str(e)) + entityActionFailedWarning([Ent.CHROME_BROWSER, None], str(e)) return except (GAPI.invalidArgument, GAPI.invalidOrgunit, GAPI.forbidden) as e: - _getMain().entityActionFailedWarning([Ent.CHROME_BROWSER, None], str(e)) + entityActionFailedWarning([Ent.CHROME_BROWSER, None], str(e)) return except (GAPI.badRequest, GAPI.resourceNotFound): accessErrorExit(None) else: sortRows = True jcount = len(entityList) - fields = _getMain().getFieldsFromFieldsList(fieldsList) if not rawFields else rawFields + fields = getFieldsFromFieldsList(fieldsList) if not rawFields else rawFields j = 0 for deviceId in entityList: j += 1 try: - browser = _getMain().callGAPI(cbcm.chromebrowsers(), 'get', + browser = callGAPI(cbcm.chromebrowsers(), 'get', throwReasons=[GAPI.BAD_REQUEST, GAPI.RESOURCE_NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.FORBIDDEN], customer=customerId, deviceId=deviceId, projection=projection, fields=fields) _printBrowser(browser) except GAPI.invalidArgument as e: - _getMain().entityActionFailedWarning([Ent.CHROME_BROWSER, deviceId], str(e)) + entityActionFailedWarning([Ent.CHROME_BROWSER, deviceId], str(e)) except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden): - _getMain().checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId) + checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId) if csvPF: if sortRows and orderBy: csvPF.SortRows(orderBy, reverse=sortOrder == 'DESCENDING') @@ -812,56 +859,56 @@ BROWSER_TOKEN_TIME_OBJECTS = {'createTime', 'expireTime', 'revokeTime'} def _showBrowserToken(browser, FJQC, i=0, count=0): if FJQC.formatJSON: - _getMain().printLine(json.dumps(_getMain().cleanJSON(browser), ensure_ascii=False, sort_keys=True)) + printLine(json.dumps(cleanJSON(browser), ensure_ascii=False, sort_keys=True)) return - _getMain().printEntity([Ent.CHROME_BROWSER_ENROLLMENT_TOKEN, browser['token']], i, count) + printEntity([Ent.CHROME_BROWSER_ENROLLMENT_TOKEN, browser['token']], i, count) Ind.Increment() - _getMain().showJSON(None, browser, timeObjects=BROWSER_TOKEN_TIME_OBJECTS) + showJSON(None, browser, timeObjects=BROWSER_TOKEN_TIME_OBJECTS) Ind.Decrement() # gam create browsertoken # [ou|org|orgunit|browserou ] [expire|expires