UNPKG

@ovh-api/email-exchange

Version:

Add typing to to ovh api email-exchange

1,056 lines (1,054 loc) 139 kB
import type { CacheAction, ICacheOptions, OvhRequestable } from '@ovh-api/common'; /** * START API /email/exchange Models * Source: https://eu.api.ovh.com/1.0/email/exchange.json */ export namespace email { export namespace exchange { /** * Exchange mailbox * interface fullName: email.exchange.Account.Account */ export interface Account { SAMAccountName?: string; accountLicense: email.exchange.OvhLicenceEnum; city?: string; company?: string; configured: boolean; countryCode?: email.exchange.CountryCodeEnum; creationDate?: string; currentUsage?: number; customIsolationId?: number; deleteAtExpiration?: boolean; deleteOutlookAtExpiration?: boolean; description?: string; displayName?: string; domain: string; exchangeGuid?: string; expirationDate?: string; expirationOutlookDate?: string; fax?: string; firstName?: string; forwardingEmail?: string; guid?: string; hiddenFromGAL: boolean; id: number; initial?: string; jobDepartment?: string; jobTitle?: string; lastLogoffDate?: string; lastLogonDate?: string; lastName?: string; lastUpdateDate?: string; litigation: boolean; litigationPeriod?: number; login: string; mailSenderDisplay?: string; mailingFilter?: email.exchange.MailingFilterEnum[]; mobile?: string; numberOfAliases: number; office?: string; outlookLicense: boolean; owaLimited: boolean; passwordLastUpdate?: string; phone?: string; postalCode?: string; primaryEmailAddress: string; quota: number; region?: string; renewOutlookPeriod?: email.exchange.renewPeriodEnum; renewPeriod?: email.exchange.renewPeriodEnum; sbrDestination?: string; sendConnectorId?: number; spamAndVirusConfiguration: email.exchange.spamAndVirusConfiguration; spamDetected: boolean; spamTicketNumber?: number; state: email.exchange.ObjectStateEnum; storeCopyOfEmail: boolean; streetAddress?: string; taskPendingId?: number; } /** * Exchange account license * interface fullName: email.exchange.AccountLicense.AccountLicense */ export interface AccountLicense { license: email.exchange.OvhLicenceEnum; licenseQuantity: number; } /** * Activesync action * type fullname: email.exchange.ActiveSyncPolicyEnum */ export type ActiveSyncPolicyEnum = "allow" | "block" | "quarantine" /** * Country Code iso * type fullname: email.exchange.CountryCodeEnum */ export type CountryCodeEnum = "AC" | "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AO" | "AQ" | "AR" | "AS" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DG" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EA" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" | "HN" | "HR" | "HT" | "HU" | "IC" | "ID" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO" | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TA" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN" | "VU" | "WF" | "WS" | "XK" | "YE" | "YT" | "ZA" | "ZM" | "ZW" /** * Exchange account license per day * interface fullName: email.exchange.DailyLicense.DailyLicense */ export interface DailyLicense { accountLicense: email.exchange.AccountLicense[]; date: string; outlookQuantity: number; } /** * Device ActiveSync state * type fullname: email.exchange.DeviceActiveSyncStateEnum */ export type DeviceActiveSyncStateEnum = "allowed" | "blocked" | "deviceDiscovery" | "quarantined" /** * Disclaimer attributes list * type fullname: email.exchange.DisclaimerAttributeEnum */ export type DisclaimerAttributeEnum = "City" | "Company" | "Country" | "Department" | "DisplayName" | "Email" | "FaxNumber" | "FirstName" | "HomePhoneNumber" | "Initials" | "LastName" | "Manager" | "MobileNumber" | "Notes" | "Office" | "OtherFaxNumber" | "OtherHomePhoneNumber" | "OtherPhoneNumber" | "PagerNumber" | "PhoneNumber" | "State" | "Street" | "Title" | "UserLogonName" | "ZipCode" /** * Exchange domain * interface fullName: email.exchange.Domain.Domain */ export interface Domain { cnameToCheck?: string; dkimDiagnostics: email.exchange.DomainDkimDiagnostics; domainAliases: string[]; domainValidated: boolean; expectedAutodiscoverSRV: string; expectedMX: string[]; expectedSPF: string; isAliasDomain: boolean; main?: boolean; mxIsValid: boolean; mxRecord?: string[]; mxRelay?: string; name: string; organization2010?: string; sbrDefault?: string; sendConnectorIdDefault?: number; spfIsValid: boolean; spfRecord?: string[]; srvIsValid: boolean; srvRecord?: string[]; state: email.exchange.ObjectStateEnum; taskPendingId: number; type: email.exchange.DomainTypeEnum; } /** * DKIM diagnostics information for domain * interface fullName: email.exchange.DomainDkimDiagnostics.DomainDkimDiagnostics */ export interface DomainDkimDiagnostics { errorCode?: number; message?: string; state: email.exchange.DomainDkimDiagnosticsStateEnum; } /** * Domain DKIM state * type fullname: email.exchange.DomainDkimDiagnosticsStateEnum */ export type DomainDkimDiagnosticsStateEnum = "active" | "disabled" | "error" | "inProgress" | "toConfigure" /** * Domain type * type fullname: email.exchange.DomainTypeEnum */ export type DomainTypeEnum = "authoritative" | "nonAuthoritative" /** * Exchange service * interface fullName: email.exchange.ExchangeService.ExchangeService */ export interface ExchangeService { adfsChangePassword: boolean; complexityEnabled: boolean; displayName?: string; domain: string; hostname?: string; lastUpdateDate?: string; lockoutDuration: number; lockoutObservationWindow: number; lockoutThreshold?: number; maxPasswordAge?: number; maxReceiveSize: number; maxSendSize: number; minPasswordAge?: number; minPasswordLength?: number; offer: email.exchange.ServiceOfferEnum; passwordHistoryCount?: number; spamAndVirusConfiguration: email.exchange.spamAndVirusConfiguration; sslExpirationDate?: string; state: email.exchange.ServiceStateEnum; taskPendingId: number; webUrl?: string; } /** * Exchange service * interface fullName: email.exchange.ExchangeServiceWithIAM.ExchangeServiceWithIAM */ export interface ExchangeServiceWithIAM { adfsChangePassword: boolean; complexityEnabled: boolean; displayName?: string; domain: string; hostname?: string; iam?: iam.ResourceMetadata; lastUpdateDate?: string; lockoutDuration: number; lockoutObservationWindow: number; lockoutThreshold?: number; maxPasswordAge?: number; maxReceiveSize: number; maxSendSize: number; minPasswordAge?: number; minPasswordLength?: number; offer: email.exchange.ServiceOfferEnum; passwordHistoryCount?: number; spamAndVirusConfiguration: email.exchange.spamAndVirusConfiguration; sslExpirationDate?: string; state: email.exchange.ServiceStateEnum; taskPendingId: number; webUrl?: string; } /** * Export PST file request * interface fullName: email.exchange.Export.Export */ export interface Export { creationDate: string; percentComplete: number; taskPendingId: number; } /** * Export PST file url * interface fullName: email.exchange.ExportUrl.ExportUrl */ export interface ExportUrl { expiration: string; url: string; } /** * Outlook language * type fullname: email.exchange.LanguageEnum */ export type LanguageEnum = "ar" | "bg" | "cz" | "da" | "de" | "el" | "en" | "es" | "et" | "fi" | "fr" | "he" | "hr" | "hu" | "id" | "in" | "it" | "ja" | "ko" | "kz" | "lt" | "lv" | "ms" | "nb" | "nl" | "pl" | "pt" | "pt-BR" | "ro" | "rs" | "ru" | "sk" | "sl" | "sv" | "th" | "tr" | "uk" | "vi" | "zh-CN" /** * Mailing filter options availlable * type fullname: email.exchange.MailingFilterEnum */ export type MailingFilterEnum = "vaderetro" /** * Depart distribution group restriction status * type fullname: email.exchange.MailingListDepartRestrictionEnum */ export type MailingListDepartRestrictionEnum = "closed" | "open" /** * Join distribution group restriction status * type fullname: email.exchange.MailingListJoinRestrictionEnum */ export type MailingListJoinRestrictionEnum = "approvalRequired" | "closed" | "open" /** * Current object state * type fullname: email.exchange.ObjectStateEnum */ export type ObjectStateEnum = "creating" | "deleting" | "internalMigration" | "ok" | "reopening" | "suspended" | "suspending" /** * Outlook url * interface fullName: email.exchange.OutlookUrl.OutlookUrl */ export interface OutlookUrl { expiration: string; serial: string; url: string; } /** * Outlook version * type fullname: email.exchange.OutlookVersionEnum */ export type OutlookVersionEnum = "mac_x86_2016" | "mac_x86_2019" | "mac_x86_2021" | "windows_x64_2016" | "windows_x64_2019" | "windows_x64_2021" | "windows_x86_2016" | "windows_x86_2019" | "windows_x86_2021" /** * Availability of outlook version * interface fullName: email.exchange.OutlookVersions.OutlookVersions */ export interface OutlookVersions { outlookLanguage: email.exchange.LanguageEnum; outlookVersion: email.exchange.OutlookVersionEnum; status: boolean; } /** * custom exchange isolation field * type fullname: email.exchange.OvhCustomIsolationFieldEnum */ export type OvhCustomIsolationFieldEnum = "company" | "country" /** * OVH licence account * type fullname: email.exchange.OvhLicenceEnum */ export type OvhLicenceEnum = "basic" | "enterprise" | "standard" /** * Get public folder quota usage in total available space * interface fullName: email.exchange.PublicFolderQuota.PublicFolderQuota */ export interface PublicFolderQuota { quotaLimit: number; quotaReserved: number; quotaUsed: number; } /** * Public folder right type * type fullname: email.exchange.PublicFolderRightTypeEnum */ export type PublicFolderRightTypeEnum = "editor" | "none" | "reviewer" /** * Public folder type * type fullname: email.exchange.PublicFolderTypeEnum */ export type PublicFolderTypeEnum = "calendar" | "contacts" | "plain" | "tasks" /** * Resource Type * type fullname: email.exchange.ResourceTypeEnum */ export type ResourceTypeEnum = "equipment" | "room" /** * Exchange server * interface fullName: email.exchange.Server.Server */ export interface Server { commercialVersion: email.exchange.exchangeCommercialVersionEnum; currentDiskUsage?: number; diskSize?: number; individual2010: boolean; ip: string; ipV6?: string; isAValid: boolean; isAaaaValid: boolean; isPtrV6Valid: boolean; isPtrValid: boolean; owaMfa: boolean; state: email.exchange.ServerStateEnum; taskPendingId: number; version?: number; } /** * Server State * type fullname: email.exchange.ServerStateEnum */ export type ServerStateEnum = "configurationError" | "configurationPending" | "notConfigured" | "ok" /** * Service Offer name * type fullname: email.exchange.ServiceOfferEnum */ export type ServiceOfferEnum = "dedicated" | "dedicatedCluster" | "hosted" | "provider" /** * Exchange Service State * type fullname: email.exchange.ServiceStateEnum */ export type ServiceStateEnum = "inMaintenance" | "ok" | "suspended" /** * Get shared account quota usage in total available space * interface fullName: email.exchange.SharedAccountQuota.SharedAccountQuota */ export interface SharedAccountQuota { quotaLimit: number; quotaReserved: number; quotaUsed: number; singleMailboxQuotaLimit: number; } /** * Level of access to calendar of Resource Mailbox * type fullname: email.exchange.ShowMeetingDetailsEnum */ export type ShowMeetingDetailsEnum = "availabilityOnly" | "limitedDetails" | "reviewer" /** * Exchange task details * interface fullName: email.exchange.Task.Task */ export interface Task { finishDate?: string; function: email.exchange.TaskFunctionEnum; id: number; status: email.exchange.TaskStatusEnum; todoDate: string; } /** * function enumeration for exchange task * type fullname: email.exchange.TaskFunctionEnum */ export type TaskFunctionEnum = "activateSharepoint" | "addAccount" | "addAccountArchive" | "addAccountImpersonation" | "addActiveSyncMailNotification" | "addAlias" | "addDistributionGroup" | "addDistributionGroupManager" | "addDistributionGroupMember" | "addDistributionGroupSendAs" | "addDistributionGroupSendOnBehalfTo" | "addDomain" | "addDomainDisclaimer" | "addExchangeCustomIsolation" | "addExchangeDomainDKIM" | "addExchangeServiceAuthorizedIp" | "addExportPstRequest" | "addExternalContact" | "addFullAccess" | "addOutlookLicense" | "addPublicFolder" | "addPublicFolderPermission" | "addResourceAccount" | "addResourceDelegate" | "addSendAs" | "addSendConnector" | "addSendOnBehalfTo" | "addSharedAccount" | "addSharedAccountFullAccess" | "addSharedAccountSendAs" | "addSharedAccountSendOnBehalfTo" | "changeHostname" | "changePassword" | "clearDataOnDevice" | "cloneTemplateExchangePrivate" | "configureExchangeCustomer" | "configureExchangeOwaMfa" | "deleteAccount" | "deleteAccountArchive" | "deleteAccountImpersonation" | "deleteActiveSyncMailNotification" | "deleteAlias" | "deleteDistributionGroup" | "deleteDistributionGroupManager" | "deleteDistributionGroupMember" | "deleteDistributionGroupSendAs" | "deleteDistributionGroupSendOnBehalfTo" | "deleteDomain" | "deleteDomainDisclaimer" | "deleteExchangeCustomIsolation" | "deleteExchangeDomainDKIM" | "deleteExchangeService" | "deleteExchangeServiceAuthorizedIp" | "deleteExportPstRequest" | "deleteExternalContact" | "deleteFullAccess" | "deleteOutlookLicense" | "deletePublicFolder" | "deletePublicFolderPermission" | "deleteResourceAccount" | "deleteResourceDelegate" | "deleteSendAs" | "deleteSendConnector" | "deleteSendOnBehalfTo" | "deleteSharedAccount" | "deleteSharedAccountFullAccess" | "deleteSharedAccountSendAs" | "deleteSharedAccountSendOnBehalfTo" | "destroyPrivateVm" | "diagnoseAccount" | "disableExchangeDKIM" | "enableExchangeDKIM" | "expandDrive" | "generateOutlookUrl" | "generatePstUrl" | "installExchange" | "installSSL" | "maintenance" | "migrationAccount" | "migrationDisclaimer" | "migrationExternalContact" | "migrationHistory" | "migrationMailingList" | "migrationResourceAccount" | "migrationService" | "reOpenHostedAccount" | "reOpenOutlookLicense" | "reOpenPrivateAccount" | "reOpenPrivateVm" | "setAccount" | "setAccountArchive" | "setAlias" | "setDistributionGroup" | "setDns" | "setDomain" | "setDomainDisclaimer" | "setExchangeAccountProtocol" | "setExchangeServiceDevice" | "setExternalContact" | "setPublicFolder" | "setPublicFolderPermission" | "setResourceAccount" | "setSendConnector" | "setService" | "setSharedAccount" | "suspendAccount" | "suspendExchangeService" | "suspendHostedAccount" | "suspendOutlookLicense" | "suspendPrivateAccount" | "suspendPrivateVm" | "unsuspendAccount" | "unsuspendExchangeService" | "unsuspendHostedAccount" | "updateExchangeServiceDevice" | "upgrade2016" /** * Exchange task status * type fullname: email.exchange.TaskStatusEnum */ export type TaskStatusEnum = "cancelled" | "doing" | "done" | "error" | "todo" /** * Subscription state * type fullname: email.exchange.activeSyncNotificationStateEnum */ export type activeSyncNotificationStateEnum = "creating" | "deleting" | "ok" /** * Authorized IP State * type fullname: email.exchange.authorizedIpStatusEnum */ export type authorizedIpStatusEnum = "creating" | "deleting" | "ok" /** * Exchange organization disclaimer * interface fullName: email.exchange.disclaimer.disclaimer */ export interface disclaimer { content: string; creationDate: string; name: string; outsideOnly: boolean; taskPendingId: number; } /** * DKIM for a domain * interface fullName: email.exchange.dkim.dkim */ export interface dkim { cnameIsValid: boolean; customerRecord: string; header: string; lastUpdate?: string; recordType: string; selectorName: string; status: email.exchange.dkimStatusEnum; targetRecord?: string; taskPendingId?: number; } /** * dkim status * type fullname: email.exchange.dkimStatusEnum */ export type dkimStatusEnum = "deleting" | "disabling" | "enabling" | "inProduction" | "ready" | "todo" | "waitingRecord" /** * Aliases on this mailbox * interface fullName: email.exchange.exchangeAccountAlias.exchangeAccountAlias */ export interface exchangeAccountAlias { alias: string; creationDate: string; taskPendingId: number; } /** * Exchange Account Archive * interface fullName: email.exchange.exchangeAccountArchive.exchangeAccountArchive */ export interface exchangeAccountArchive { creationDate: string; currentUsage?: number; guid?: string; quota: number; state: email.exchange.ObjectStateEnum; taskPendingId?: number; } /** * Exchange Account Diagnosis * interface fullName: email.exchange.exchangeAccountDiagnosis.exchangeAccountDiagnosis */ export interface exchangeAccountDiagnosis { canReceiveEmail: boolean; canSendEmail: boolean; connectiveOWA: boolean; isLocked: boolean; isMxValid: boolean; isSpammer: boolean; isSrvValid: boolean; isSuspended: boolean; lastCheck: string; } /** * Users having full access on this mailbox * interface fullName: email.exchange.exchangeAccountFullAccess.exchangeAccountFullAccess */ export interface exchangeAccountFullAccess { allowedAccountId: number; creationDate: string; taskPendingId: number; } /** * Get user that has an impersonation right on all that mailboxes * interface fullName: email.exchange.exchangeAccountImpersonation.exchangeAccountImpersonation */ export interface exchangeAccountImpersonation { creationDate: string; lastPasswordChange?: string; state: email.exchange.ObjectStateEnum; taskPendingId?: number; upn: string; } /** * Get protocol status on that mailbox * interface fullName: email.exchange.exchangeAccountProtocol.exchangeAccountProtocol */ export interface exchangeAccountProtocol { IMAP: boolean; POP: boolean; activeSync: boolean; creationDate: string; lastUpdate?: string; taskPendingId: number; webMail: boolean; } /** * Users authorized to send mails from this mailbox * interface fullName: email.exchange.exchangeAccountSendAs.exchangeAccountSendAs */ export interface exchangeAccountSendAs { allowedAccountId: number; creationDate: string; taskPendingId: number; } /** * Get users authorized to Send On Behalf To mails from this mailbox * interface fullName: email.exchange.exchangeAccountSendOnBehalfTo.exchangeAccountSendOnBehalfTo */ export interface exchangeAccountSendOnBehalfTo { allowedAccountId: number; creationDate: string; taskPendingId: number; } /** * Exchange commercial version * type fullname: email.exchange.exchangeCommercialVersionEnum */ export type exchangeCommercialVersionEnum = "2010" | "2013" | "2016" | "2019" /** * custom exchange isolation * interface fullName: email.exchange.exchangeCustomIsolation.exchangeCustomIsolation */ export interface exchangeCustomIsolation { creationDate: string; isolationField: email.exchange.OvhCustomIsolationFieldEnum; isolationValue: string; name: string; status: email.exchange.ObjectStateEnum; } /** * Mailing list managers * interface fullName: email.exchange.exchangeDistributionGroupManager.exchangeDistributionGroupManager */ export interface exchangeDistributionGroupManager { creationDate: string; managerAccountId: number; managerEmailAddress: string; taskPendingId: number; } /** * Mailing list members * interface fullName: email.exchange.exchangeDistributionGroupMember.exchangeDistributionGroupMember */ export interface exchangeDistributionGroupMember { creationDate: string; memberAccountId?: number; memberContactId?: number; memberEmailAddress: string; taskPendingId: number; } /** * Get users authorized to Send On Behalf To mails from this mailbox * interface fullName: email.exchange.exchangeDistributionGroupSendAs.exchangeDistributionGroupSendAs */ export interface exchangeDistributionGroupSendAs { allowedAccountId: number; creationDate: string; taskPendingId: number; } /** * Get users authorized to Send On Behalf To mails from this mailing list * interface fullName: email.exchange.exchangeDistributionGroupSendOnBehalfTo.exchangeDistributionGroupSendOnBehalfTo */ export interface exchangeDistributionGroupSendOnBehalfTo { allowedAccountId: number; creationDate: string; taskPendingId: number; } /** * External contact for this exchange service * interface fullName: email.exchange.exchangeExternalContact.exchangeExternalContact */ export interface exchangeExternalContact { creationDate: string; displayName: string; externalEmailAddress: string; firstName?: string; hiddenFromGAL: boolean; id: number; initials?: string; lastName?: string; organization2010?: string; state: email.exchange.ObjectStateEnum; taskPendingId: number; } /** * Get aliases on this mailingList * interface fullName: email.exchange.exchangeMailingListAlias.exchangeMailingListAlias */ export interface exchangeMailingListAlias { alias: string; creationDate: string; taskPendingId: number; } /** * Exchange organization public folder permission * interface fullName: email.exchange.exchangePublicFolderPermission.exchangePublicFolderPermission */ export interface exchangePublicFolderPermission { accessRights: email.exchange.PublicFolderRightTypeEnum; allowedAccountId: number; creationDate: string; state: email.exchange.ObjectStateEnum; taskPendingId: number; } /** * Resource accounts delegates * interface fullName: email.exchange.exchangeResourceAccountDelegate.exchangeResourceAccountDelegate */ export interface exchangeResourceAccountDelegate { allowedAccountId: number; creationDate?: string; delegateEmailAddress: string; taskPendingId: number; } /** * Get email addresses subscribed to ActiveSync quarantine notifications * interface fullName: email.exchange.exchangeServiceActiveSyncNotification.exchangeServiceActiveSyncNotification */ export interface exchangeServiceActiveSyncNotification { creationDate: string; notifiedAccountId: number; primaryEmailAddress: string; state: email.exchange.activeSyncNotificationStateEnum; } /** * Get authorized IPs for POP(s),IMAP(s), SMTP(s) and HTTP(s) * interface fullName: email.exchange.exchangeServiceAuthorizedIp.exchangeServiceAuthorizedIp */ export interface exchangeServiceAuthorizedIp { HTTPS: boolean; IMAP: boolean; IMAPS: boolean; POP: boolean; POPS: boolean; SMTP: boolean; SMTPS: boolean; creationDate: string; displayName: string; ip: string; status: email.exchange.authorizedIpStatusEnum; updateDate?: string; } /** * Get the list of your ActiveSync devices registered on this Exchange service * interface fullName: email.exchange.exchangeServiceDevice.exchangeServiceDevice */ export interface exchangeServiceDevice { IMEI: string; creationDate: string; deviceId: string; deviceModel: string; deviceState: email.exchange.DeviceActiveSyncStateEnum; guid: string; identity: string; lastUpdate?: string; taskPendingId: number; } /** * Protocol access policy for this Exchange service * interface fullName: email.exchange.exchangeServiceProtocol.exchangeServiceProtocol */ export interface exchangeServiceProtocol { IMAP: boolean; POP: boolean; activeSync: boolean; activeSyncPolicy: email.exchange.ActiveSyncPolicyEnum; creationDate: string; lastUpdate?: string; taskPendingId: number; webMail: boolean; } /** * Aliases on this shared mailbox * interface fullName: email.exchange.exchangeSharedAccountAlias.exchangeSharedAccountAlias */ export interface exchangeSharedAccountAlias { alias: string; creationDate: string; taskPendingId: number; } /** * Users having full access on this shared mailbox * interface fullName: email.exchange.exchangeSharedAccountFullAccess.exchangeSharedAccountFullAccess */ export interface exchangeSharedAccountFullAccess { allowedAccountId: number; creationDate: string; taskPendingId: number; } /** * Users authorized to send mails from this shared mailbox * interface fullName: email.exchange.exchangeSharedAccountSendAs.exchangeSharedAccountSendAs */ export interface exchangeSharedAccountSendAs { allowedAccountId: number; creationDate: string; taskPendingId: number; } /** * Get users authorized to Send On Behalf To mails from this shared mailbox * interface fullName: email.exchange.exchangeSharedAccountSendOnBehalfTo.exchangeSharedAccountSendOnBehalfTo */ export interface exchangeSharedAccountSendOnBehalfTo { allowedAccountId: number; creationDate: string; taskPendingId: number; } /** * Mailing list * interface fullName: email.exchange.mailingList.mailingList */ export interface mailingList { company?: string; creationDate: string; departRestriction: email.exchange.MailingListDepartRestrictionEnum; displayName?: string; hiddenFromGAL: boolean; joinRestriction: email.exchange.MailingListJoinRestrictionEnum; lastUpdateDate?: string; mailingListAddress: string; maxReceiveSize?: number; maxSendSize?: number; senderAuthentification: boolean; spamDetected: boolean; spamTicketNumber?: number; state: email.exchange.ObjectStateEnum; taskPendingId: number; } /** * Password policy used for impersonated account * interface fullName: email.exchange.passwordPolicy.passwordPolicy */ export interface passwordPolicy { complexityEnabled: boolean; lockoutDuration: number; lockoutThreshold: number; maxPasswordAge: number; minPasswordAge: number; minPasswordLength: number; passwordHistoryCount: number; } /** * Exchange organization public folder * interface fullName: email.exchange.publicFolder.publicFolder */ export interface publicFolder { anonymousPermission: email.exchange.PublicFolderRightTypeEnum; creationDate?: string; defaultPermission: email.exchange.PublicFolderRightTypeEnum; hasSubFolders?: boolean; itemCount?: number; lastAccessTime?: string; lastModificationTime?: string; lastUserAccessTime?: string; lastUserModificationTime?: string; path: string; quota: number; state: email.exchange.ObjectStateEnum; taskPendingId: number; totalItemSize?: number; type: email.exchange.PublicFolderTypeEnum; } /** * Renew period * type fullname: email.exchange.renewPeriodEnum */ export type renewPeriodEnum = "monthly" | "yearly" /** * Exchange resource account * interface fullName: email.exchange.resourceAccount.resourceAccount */ export interface resourceAccount { addOrganizerToSubject: boolean; allowConflict: boolean; bookingWindow: number; capacity: number; company?: string; creationDate?: string; deleteComments: boolean; deleteSubject: boolean; displayName: string; location: string; maximumDuration: number; resourceEmailAddress: string; showMeetingDetails: email.exchange.ShowMeetingDetailsEnum; state: email.exchange.ObjectStateEnum; taskPendingId: number; type: email.exchange.ResourceTypeEnum; } /** * Exchange Send Connector * interface fullName: email.exchange.sendConnector.sendConnector */ export interface sendConnector { creationDate: string; displayName: string; id?: number; lastUpdateDate?: string; maxSendSize: number; port: number; requireTLS: boolean; smartHost: string; smartHostAuthMechanism: email.exchange.smartHostAuthMechanismEnum; state: email.exchange.ObjectStateEnum; taskPendingId?: number; } /** * Exchange shared mailbox * interface fullName: email.exchange.sharedAccount.sharedAccount */ export interface sharedAccount { creationDate?: string; currentUsage?: number; displayName?: string; firstName?: string; hiddenFromGAL: boolean; id: number; initials?: string; lastLogoffDate?: string; lastLogonDate?: string; lastName?: string; mailingFilter?: email.exchange.MailingFilterEnum[]; quota: number; sharedEmailAddress: string; spamDetected: boolean; spamTicketNumber?: number; state: email.exchange.ObjectStateEnum; taskPendingId: number; } /** * Smart host authentication mechanism * type fullname: email.exchange.smartHostAuthMechanismEnum */ export type smartHostAuthMechanismEnum = "basicAuth" | "basicAuthRequireTLS" | "none" /** * Spam and Antyvirus configuration * interface fullName: email.exchange.spamAndVirusConfiguration.spamAndVirusConfiguration */ export interface spamAndVirusConfiguration { checkDKIM: boolean; checkSPF: boolean; deleteSpam: boolean; deleteVirus: boolean; putInJunk: boolean; tagSpam: boolean; tagVirus: boolean; } } } export namespace iam { /** * IAM resource metadata embedded in services models * interface fullName: iam.ResourceMetadata.ResourceMetadata */ export interface ResourceMetadata { displayName?: string; id: string; tags?: { [key: string]: string }; urn: string; } export namespace resource { /** * Resource tag filter * interface fullName: iam.resource.TagFilter.TagFilter */ export interface TagFilter { operator?: iam.resource.TagFilter.OperatorEnum; value: string; } export namespace TagFilter { /** * Operator that can be used in order to filter resources tags * type fullname: iam.resource.TagFilter.OperatorEnum */ export type OperatorEnum = "EQ" } } } export namespace service { /** * Map a possible renew for a specific service * interface fullName: service.RenewType.RenewType */ export interface RenewType { automatic: boolean; deleteAtExpiration: boolean; forced: boolean; manualPayment?: boolean; period?: number; } /** * Detailed renewal type of a service * type fullname: service.RenewalTypeEnum */ export type RenewalTypeEnum = "automaticForcedProduct" | "automaticV2012" | "automaticV2014" | "automaticV2016" | "manual" | "oneShot" | "option" /** * type fullname: service.StateEnum */ export type StateEnum = "expired" | "inCreation" | "ok" | "pendingDebt" | "unPaid" } export namespace services { /** * Details about a Service * interface fullName: services.Service.Service */ export interface Service { canDeleteAtExpiration: boolean; contactAdmin: string; contactBilling: string; contactTech: string; creation: string; domain: string; engagedUpTo?: string; expiration: string; possibleRenewPeriod?: number[]; renew?: service.RenewType; renewalType: service.RenewalTypeEnum; serviceId: number; status: service.StateEnum; } } /** * Api model for /email/exchange */ export interface Email { exchange: { /** * List available services * GET /email/exchange */ $get(): Promise<string[]>; /** * Controle cache */ $cache(param?: ICacheOptions | CacheAction): Promise<any>; $(organizationName: string | number): { service: { /** * List available services * GET /email/exchange/{organizationName}/service */ $get(params?: { iamTags?: any }): Promise<string[]>; /** * Controle cache */ $cache(param?: ICacheOptions | CacheAction): Promise<any>; $(exchangeService: string): { /** * Get this object properties * GET /email/exchange/{organizationName}/service/{exchangeService} */ $get(): Promise<email.exchange.ExchangeService>; /** * Alter this object properties * PUT /email/exchange/{organizationName}/service/{exchangeService} */ $put(params?: { adfsChangePassword?: boolean, complexityEnabled?: boolean, displayName?: string, domain?: string, hostname?: string, lastUpdateDate?: string, lockoutDuration?: number, lockoutObservationWindow?: number, lockoutThreshold?: number, maxPasswordAge?: number, maxReceiveSize?: number, maxSendSize?: number, minPasswordAge?: number, minPasswordLength?: number, offer?: email.exchange.ServiceOfferEnum, passwordHistoryCount?: number, spamAndVirusConfiguration?: email.exchange.spamAndVirusConfiguration, sslExpirationDate?: string, state?: email.exchange.ServiceStateEnum, taskPendingId?: number, webUrl?: string }): Promise<void>; /** * Controle cache */ $cache(param?: ICacheOptions | CacheAction): Promise<any>; account: { /** * Accounts associated to this exchange service * GET /email/exchange/{organizationName}/service/{exchangeService}/account */ $get(params?: { accountLicense?: email.exchange.OvhLicenceEnum, company?: string, id?: number, primaryEmailAddress?: string }): Promise<string[]>; /** * Create new mailbox in exchange server * POST /email/exchange/{organizationName}/service/{exchangeService}/account */ $post(params: { city?: string, company?: string, countryCode?: email.exchange.CountryCodeEnum, description?: string, displayName?: string, domain: string, fax?: string, firstName?: string, forwardingEmail?: string, hiddenFromGAL?: boolean, initials?: string, jobDepartment?: string, jobTitle?: string, lastName?: string, license: email.exchange.OvhLicenceEnum, litigation?: boolean, litigationPeriod?: number, login: string, mailingFilter?: email.exchange.MailingFilterEnum[], mailSenderDisplay?: string, mobile?: string, office?: string, outlookLicense?: boolean, password: string, phone?: string, postalCode?: string, quota?: number, region?: string, SAMAccountName?: string, sbrDestination?: string, sendConnectorId?: number, spamAndVirusConfiguration?: email.exchange.spamAndVirusConfiguration, storeCopyOfEmail?: boolean, streetAddress?: string }): Promise<email.exchange.Task>; /** * Controle cache */ $cache(param?: ICacheOptions | CacheAction): Promise<any>; $(primaryEmailAddress: string): { /** * Delete existing mailbox in exchange server * DELETE /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress} */ $delete(): Promise<email.exchange.Task>; /** * Get this object properties * GET /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress} */ $get(): Promise<email.exchange.Account>; /** * Alter this object properties * PUT /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress} */ $put(params?: { SAMAccountName?: string, accountLicense?: email.exchange.OvhLicenceEnum, city?: string, company?: string, configured?: boolean, countryCode?: email.exchange.CountryCodeEnum, creationDate?: string, currentUsage?: number, customIsolationId?: number, deleteAtExpiration?: boolean, deleteOutlookAtExpiration?: boolean, description?: string, displayName?: string, domain?: string, exchangeGuid?: string, expirationDate?: string, expirationOutlookDate?: string, fax?: string, firstName?: string, forwardingEmail?: string, guid?: string, hiddenFromGAL?: boolean, id?: number, initial?: string, jobDepartment?: string, jobTitle?: string, lastLogoffDate?: string, lastLogonDate?: string, lastName?: string, lastUpdateDate?: string, litigation?: boolean, litigationPeriod?: number, login?: string, mailSenderDisplay?: string, mailingFilter?: email.exchange.MailingFilterEnum[], mobile?: string, numberOfAliases?: number, office?: string, outlookLicense?: boolean, owaLimited?: boolean, passwordLastUpdate?: string, phone?: string, postalCode?: string, primaryEmailAddress?: string, quota?: number, region?: string, renewOutlookPeriod?: email.exchange.renewPeriodEnum, renewPeriod?: email.exchange.renewPeriodEnum, sbrDestination?: string, sendConnectorId?: number, spamAndVirusConfiguration?: email.exchange.spamAndVirusConfiguration, spamDetected?: boolean, spamTicketNumber?: number, state?: email.exchange.ObjectStateEnum, storeCopyOfEmail?: boolean, streetAddress?: string, taskPendingId?: number }): Promise<void>; /** * Controle cache */ $cache(param?: ICacheOptions | CacheAction): Promise<any>; alias: { /** * Aliases associated to this mailbox * GET /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/alias */ $get(): Promise<string[]>; /** * Create new alias * POST /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/alias */ $post(params: { alias: string }): Promise<email.exchange.Task>; /** * Controle cache */ $cache(param?: ICacheOptions | CacheAction): Promise<any>; $(alias: string): { /** * Delete existing alias * DELETE /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/alias/{alias} */ $delete(): Promise<email.exchange.Task>; /** * Get this object properties * GET /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/alias/{alias} */ $get(): Promise<email.exchange.exchangeAccountAlias>; /** * Controle cache */ $cache(param?: ICacheOptions | CacheAction): Promise<any>; }; } archive: { /** * Delete existing archive mailbox * DELETE /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/archive */ $delete(): Promise<email.exchange.Task>; /** * Get this object properties * GET /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/archive */ $get(): Promise<email.exchange.exchangeAccountArchive>; /** * Create new archive mailbox * POST /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/archive */ $post(params?: { quota?: number }): Promise<email.exchange.Task>; /** * Alter this object properties * PUT /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/archive */ $put(params?: { creationDate?: string, currentUsage?: number, guid?: string, quota?: number, state?: email.exchange.ObjectStateEnum, taskPendingId?: number }): Promise<void>; /** * Controle cache */ $cache(param?: ICacheOptions | CacheAction): Promise<any>; } changePassword: { /** * Change mailbox password * POST /email/exchange/{organizationName}/service/{exchangeService}/account/{primaryEmailAddress}/changePassword