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 © 2017 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 };
24 
26  string storePath; ///< Path to the store directory
27  string archivePath; ///< Path to the archive
28  string backupPath; ///< Path to the backup
29  kerio::web::ByteValueWithUnits watchdogSoftLimit; ///< If the available disk space falls below this value, a warning message is displayed
30  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.
31 };
32 
34  boolean isEnabled; ///< Enable master authentication to this server
35  kerio::web::KId groupRestriction; ///< Allow master authentication only from IP address group
36  string password; ///< [WriteOnly] Master password
37 };
38 
40  boolean isEnabled; ///< Use HTTP proxy for antivirus updates, Kerio update checker and other web services
41  string address;
42  long port;
43 
44  boolean requiresAuthentication; ///< Proxy requires authentication
45  string userName;
46  string password;
47 };
48 
50  boolean isEnabled;
51  string address;
52 };
53 
55  boolean autoCheck; ///< Automatically check for new versions
56  boolean checkBetaVersion; ///< Check also for beta versions
57 
59  string downloadedFile; ///< [ReadOnly]
60  UpdateInfo updateInfo; ///< [ReadOnly]
61 
62  string kocVersion; ///< [ReadOnly]
63  string koffVersion; ///< [ReadOnly]
64  string kspVersion; ///< [ReadOnly]
65  string kscVersion; ///< [ReadOnly]
66 };
67 
68 enum KoffUpgradePolicy {
69  KoffUPolicyAskVoluntary, ///< Ask user for each version change and do not allow the update.
70  KoffUPolicyAskRequired, ///< Ask user for each version change and require the update.
71  KoffUPolicyAlwaysSilent, ///< Do update for each version change. Update silently when Outlook starts. Ask users when Outlook is running and require update.
72  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.
73  KoffUPolicyOnlyIfNecessaryAsk, ///< Update only if necessary. Ask users and require the update.
74  KoffUPolicyOnlyIfNecessarySilent ///< available in WebAdmin, Update only if necessary. Update silently when Outlook starts. Ask users when Outlook is running and require update.
75 };
76 
77 struct KoffOptions {
78  KoffUpgradePolicy upgradePolicy;
79 };
80 
81 /** State of index */
82 enum FulltextStatus {
83  IndexRebuilding, ///< reindexing is in progress
84  IndexMessages, ///< indexing new delivered messages
85  IndexFinished, ///< reindexing is finnished, it also mean "Up To Date"
86  IndexDisabled, ///< indexing is disabled
87  IndexError, ///< some error occured
88  IndexErrorLowSpace ///< available disk space is below Soft Limit
89 };
90 
91 /** [READ ONLY] progres of index */
93  FulltextStatus status; ///< [READ ONLY] state of rebuild process
94  long usersLeft; ///< [status IndexRebuilding] - the current number of user re-indexed mailboxes
95  long messagesLeft; ///< [status IndexMessages] - number of new delivered messages to index
96  long size; ///< index size or estimate size in status IndexMessages or IndexRebuilding
97  long freeSpace; ///< free space in path for index files
98 };
99 
101  boolean enabled; ///< enabled/disabled
102  string path; ///< path to directory where are indexes
103 };
104 
105 /** Scope of reindex */
106 enum FulltextScope {
107  IndexAll, ///< all users to reindex
108  IndexDomain, ///< only users from domain to reindex
109  IndexUser ///< only user to reindex
110 };
111 
113  FulltextScope scope;
114  kerio::web::KId id; ///< domain id for scope 'IndexDomain' or user id for scope 'IndexUser'
115 };
116 
117 struct ButtonColor {
118  boolean isEnabled; ///< Is used
119  string textColor;
120  string backgroundColor;
121 };
122 
124  boolean isEnabled; ///< Is used
125  string text;
126 };
127 
129  CustomImage logo;
130  ButtonColor buttonColor;
131  AdditionalInfo additionalInfo;
132 };
133 
135  long messageSizeLimit; ///< Maximum size of message that can be sent from the WebMail interface (HTTP POST size)
136 
137  TimeLimit sessionExpireTimeout; ///< Session expire timeout
138  TimeLimit maximumSessionDuration; ///< Maximum session duration
139  boolean forceLogout; ///< Force WebMail logout if user's IP address changes (prevents session hijacking and session fixation attacks)
140 
141  WebmailCustomLoginPage customLoginPage; ///< Use custom logo in WebMail login page
142  CustomImage customClientLogo; ///< Use custom logo in Kerio Connect Client
143 };
144 
145 struct UserQuota {
146  QuotaNotification notification; ///< option for notification
147  long warningLimit; ///< limit in per cent
148  string email; ///< if quota is exceeded the notification will be sent to this address
149 };
150 
152  MiscellaneousOptions miscellaneous;
153  StoreDirectoryOptions storeDirectory;
154  MasterAuthenticationOptions masterAuthentication;
155  HttpProxyOptions httpProxy;
156  UpdateCheckerOptions updateChecker;
157  WebMailOptions webMail;
158  UserQuota userQuota;
159  FulltextSetting fulltext;
160  KoffOptions koffOptions;
161  OperatorOptions operatorOptions;
162 };
163 
164 
165 interface AdvancedOptions {
166  /**
167  * Check for updates.
168  *
169  * @param options - new version details
170  */
171  void checkUpdates(out UpdateCheckerOptions options);
172 
173  /**
174  * Obtain Advanced options.
175  *
176  * @param options - current advanced options
177  */
178  void get(out AdvancedOptionsSetting options);
179 
180  /**
181  * Get information about index status.
182  *
183  * @param info - structure with information
184  */
185  void getFulltextStatus(out FulltextRebuildStatus info);
186 
187  /**
188  * Set advanced options.
189  *
190  * @param options - options to be updated
191  */
192  void set(in AdvancedOptionsSetting options);
193 
194  /**
195  * Launch re-index according parameters.
196  *
197  * @param parameters - parameters for launching re-index
198  */
199  void startRebuildFulltext(in FulltextRebuildingCommand parameters);
200 };
201 
202 }; }; };//end of namespace