All Classes Files Functions Variables Enumerations Enumerator Groups Pages
AdvancedOptions.idl
Go to the documentation of this file.
1 /**
2  * @file AdvancedOptions.idl
3  * @brief Set custom options for store directories, fulltext search, webmail, security policy, software updates, master authentication, http proxy.
4  *
5  * @author Dusan Juhas, Frantisek Boranek
6  *
7  * @copyright Copyright © 2011-2012 Kerio Technologies s.r.o.
8  */
9 
10 #import <kerio/web/idl/SharedStructures.idl>
11 #import <AdminStructures.idl> //DistanceOrNull
12 
13 module kerio {
14 module jsonapi {
15 module admin {
16 
18  boolean logHostNames; ///< Log hostnames for incoming connections
19  boolean showProgramNameAndVersion; ///< Show program name and version in network communication for non-authenticated users
20  boolean insertXEnvelopeTo; ///< Insert X-Envelope-To header to locally delivered messages
21  boolean enableTNEFDecoding; ///< Enable decoding of TNEF messages (winmail.dat attachments)
22  boolean enableUUEncodedConversion; ///< Enable conversion of uuencoded messages to MIME
23  boolean allowUnsupportedActiveSyncDevices; ///< Allow access for unsupported activeSync devices
24 };
25 
27  string storePath; ///< Path to the store directory
28  string archivePath; ///< Path to the archive
29  string backupPath; ///< Path to the backup
30  kerio::web::ByteValueWithUnits watchdogSoftLimit; ///< If the available disk space falls below this value, a warning message is displayed
31  kerio::web::ByteValueWithUnits watchdogHardLimit; ///< If the available disk space falls below this value, Kerio MailServer is stopped and an error message is displayed. Administrator's action is required.
32 };
33 
35  boolean isEnabled; ///< Enable master authentication to this server
36  kerio::web::KId groupRestriction; ///< Allow master authentication only from IP address group
37  string password; ///< [WriteOnly] Master password
38 };
39 
41  boolean isEnabled; ///< Use HTTP proxy for antivirus updates, Kerio update checker and other web services
42  string address;
43  long port;
44 
45  boolean requiresAuthentication; ///< Proxy requires authentication
46  string userName;
47  string password;
48 };
49 
51  boolean isEnabled;
52  string address;
53 };
54 
55 enum UpdateCheckerStatus {
56  updNoUpdate, ///< Update status: No update
57  updNewVersion, ///< Update status: New version
58  updError ///< Update status: Error
59 };
60 
61 struct UpdateInfo {
62  UpdateCheckerStatus result;
63  string description;
64  string downloadUrl;
65  string infoUrl;
66 };
67 
69  boolean autoCheck; ///< Automatically check for new versions
70  boolean checkBetaVersion; ///< Check also for beta versions
71 
73  string downloadedFile; ///< [ReadOnly]
74  UpdateInfo updateInfo; ///< [ReadOnly]
75 
76  string kocVersion; ///< [ReadOnly]
77  string koffVersion; ///< [ReadOnly]
78  string kspVersion; ///< [ReadOnly]
79  string kscVersion; ///< [ReadOnly]
80 };
81 
82 enum KoffUpgradePolicy {
83  KoffUPolicyAskVoluntary, ///< Ask user for each version change and do not allow the update.
84  KoffUPolicyAskRequired, ///< Ask user for each version change and require the update.
85  KoffUPolicyAlwaysSilent, ///< Do update for each version change. Update silently when Outlook starts. Ask users when Outlook is running and require update.
86  KoffUPolicyOnStartSilent, ///< default, available in WebAdmin. Do update for each version change. Update silently when Outlook starts. When Outlook is running do nothing and wait for next Outlook start.
87  KoffUPolicyOnlyIfNecessaryAsk, ///< Update only if necessary. Ask users and require the update.
88  KoffUPolicyOnlyIfNecessarySilent ///< available in WebAdmin, Update only if necessary. Update silently when Outlook starts. Ask users when Outlook is running and require update.
89 };
90 
91 struct KoffOptions {
92  KoffUpgradePolicy upgradePolicy;
93 };
94 
95 /** State of index */
96 enum FulltextStatus {
97  IndexRebuilding, ///< reindexing is in progress
98  IndexMessages, ///< indexing new delivered messages
99  IndexFinished, ///< reindexing is finnished, it also mean "Up To Date"
100  IndexDisabled, ///< indexing is disabled
101  IndexError, ///< some error occured
102  IndexErrorLowSpace ///< available disk space is below Soft Limit
103 };
104 
105 /** [READ ONLY] progres of index */
107  FulltextStatus status; ///< [READ ONLY] state of rebuild process
108  long usersLeft; ///< [status IndexRebuilding] - the current number of user re-indexed mailboxes
109  long messagesLeft; ///< [status IndexMessages] - number of new delivered messages to index
110  long size; ///< index size or estimate size in status IndexMessages or IndexRebuilding
111  long freeSpace; ///< free space in path for index files
112 };
113 
115  boolean enabled; ///< enabled/disabled
116  string path; ///< path to directory where are indexes
117 };
118 
119 /** Scope of reindex */
120 enum FulltextScope {
121  IndexAll, ///< all users to reindex
122  IndexDomain, ///< only users from domain to reindex
123  IndexUser ///< only user to reindex
124 };
125 
127  FulltextScope scope;
128  kerio::web::KId id; ///< domain id for scope 'IndexDomain' or user id for scope 'IndexUser'
129 };
130 
131 enum WebmailLoginMode {
132  DefaultOldWebmail,
133  DefaultConnectClient,
134  UserPreferred
135 };
136 
137 struct CustomImage {
138  boolean isEnabled; ///< Use custom image in WebMail
139  string url; ///< [READ ONLY]
140  string id; ///< [WRITE ONCE] Id of uploaded image.
141 };
142 
144  long messageSizeLimit; ///< Maximum size of message that can be sent from the WebMail interface (HTTP POST size)
145 
146  TimeLimit sessionExpireTimeout; ///< Session expire timeout
147  TimeLimit maximumSessionDuration; ///< Maximum session duration
148  boolean forceLogout; ///< Force WebMail logout if user's IP address changes (prevents session hijacking and session fixation attacks)
149 
150  boolean useCustomLogo; ///< Use custom logo in WebMail
151  string logoUrl; ///< [ReadOnly]
152 
153  CustomImage customLoginLogo; ///< Use custom logo in WebMail login page
154 
155  WebmailLoginMode loginMode; ///< Determine whether is used old Webmail as default web client. Property is valid only for this version of API. It will be removed in the next version.
156 };
157 
158 enum NotificationType {
159  notifyOnce,
160  notifyEvery
161 };
162 
164  NotificationType type;
165  TimeLimit period;
166 };
167 
168 struct UserQuota {
169  QuotaNotification notification; ///< option for notification
170  long warningLimit; ///< limit in per cent
171  string email; ///< if quota is exceeded the notification will be sent to this address
172 };
173 
175  MiscellaneousOptions miscellaneous;
176  StoreDirectoryOptions storeDirectory;
177  MasterAuthenticationOptions masterAuthentication;
178  HttpProxyOptions httpProxy;
179  UpdateCheckerOptions updateChecker;
180  WebMailOptions webMail;
181  UserQuota userQuota;
182  FulltextSetting fulltext;
183  KoffOptions koffOptions;
184  OperatorOptions operatorOptions;
185 };
186 
187 
188 interface AdvancedOptions {
189  /**
190  * Check for updates.
191  *
192  * @param options - new version details
193  */
194  void checkUpdates(out UpdateCheckerOptions options);
195 
196  /**
197  * Obtain Advanced options.
198  *
199  * @param options - current advanced options
200  */
201  void get(out AdvancedOptionsSetting options);
202 
203  /**
204  * Get information about index status.
205  *
206  * @param info - structure with information
207  */
208  void getFulltextStatus(out FulltextRebuildStatus info);
209 
210  /**
211  * Save a new logo.
212  *
213  * @param logoUrl - path to the saved file
214  * @param fileId - ID of the uploaded file
215  */
216  void saveWebMailLogo(out string logoUrl, in string fileId);
217 
218  /**
219  * Set advanced options.
220  *
221  * @param options - options to be updated
222  */
223  void set(in AdvancedOptionsSetting options);
224 
225  /**
226  * Launch re-index according parameters.
227  *
228  * @param parameters - parameters for launching re-index
229  */
230  void startRebuildFulltext(in FulltextRebuildingCommand parameters);
231 };
232 
233 }; }; };//end of namespace