@ovh-api/email-exchange
Version:
Add typing to to ovh api email-exchange
1,056 lines (1,054 loc) • 139 kB
TypeScript
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