All Classes Files Functions Variables Enumerations Enumerator Groups Pages
AdminStructures.idl
Go to the documentation of this file.
1 /**
2  * @file AdminStructures.idl
3  * @brief Data structures used by multiple IDL files among web administration
4  *
5  * @author Dusan Juhas
6  *
7  * @copyright Copyright © 2017 Kerio Technologies s.r.o.
8  */
9 
10 #import <kerio/web/idl/SharedStructures.idl>
11 #include <kerio/web/idl/IpAddressGroups.idl>
12 #include <kerio/web/idl/TimeRanges.idl>
13 
14 module kerio {
15 module jsonapi {
16 module admin {
17 
18 /**
19  * Type of authorization
20  */
21 enum UserAuthType {
22  UInternalAuth, ///< Internal authorization
23  UWindowsNTAuth, ///< Windows NT domain authorization
24  UPamAuth, ///< Authorization for linux
25  UKerberosAuth, ///< Kerberos authorization
26  UAppleAuth, ///< Apple authorization
27  ULDAPAuth ///< LDAP authorization
28 };
29 
30 /**
31  * Type for returning authorization type supported by server
32  */
33 typedef sequence<UserAuthType> AuthTypeList;
34 
35 /**
36 * Type of deleting a user
37 */
38 enum DirectoryServiceDeleteMode {
39  DSModeDeactivate, ///< User is deactivated but not deleted
40  DSModeDelete ///< User is deleted
41 };
42 
43 /**
44  * Enum type for determine which web component is in use in session
45  */
46 enum WebComponent {
47  WebComponentWEBMAIL, ///< WebMail
48  WebComponentADMIN, ///< Web Administration
49  WebComponentMINI ///< WebMail mini
50 };
51 
52 /**
53  * Message clean out setting
54  * Note: all fields must be assigned if used in set methods
55  */
57  boolean isEnabled; ///< is action on/off?
58  long days; ///< after how many days is an action performed?
59 };
60 
61 /**
62  * Note: all fields must be assigned if used in set methods
63  */
64 struct Distance {
65  long days;
66  long hours;
67  long minutes;
68 };
69 
70 enum DistanceType {
71  dtNull,
72  dtTimeSpan
73 };
74 
76  DistanceType type;
77  Distance timeSpan;
78 };
79 
80 struct Directories {
81  string storePath; ///< Path to the store directory
82  string archivePath; ///< Path to the archive directory
83  string backupPath; ///< Path to the backup directory
84 };
85 
86 struct Credentials {
87  string username;
88  string password;
89 };
90 
91 typedef string FileId;
92 
93 /**
94  * source of user data
95  */
96 enum DataSource {
97  DSInternalSource, ///< internal source of user data
98  DSLDAPSource ///< LDAP source of user data
99 };
100 
101 /**
102  *
103  * Note: all fields must be assigned if used in set methods
104  */
105 struct TimeHMS {
106  long hours;
107  long minutes;
108  long seconds;
109 };
110 
111 enum TimeUnit {
112  Minutes,
113  Hours,
114  Days,
115  Weeks
116 };
117 
118 
119 /**
120  *
121  * Note: all fields must be assigned if used in set methods
122  */
123 struct TimeLimit {
124  long value; ///< how many
125  TimeUnit units; ///< in which units
126 };
127 
128 typedef string UtcDateTime; ///< Date+Time according RFC 2445, eg. 19970714T173000Z
129 
130 /**
131 * A way how to say client that the server has a constant
132 */
134  string name; ///< constant name
135  string value; ///< a value of constant
136 };
137 
138 typedef sequence<NamedConstant> NamedConstantList;
139 
140 
141 /**
142 * Except getAboutInfo() all methods are available for non-authenticated users
143 */
144 
145 enum DirectoryAccessResult {
146  directoryExists, ///< Directory exist, read/write allowed
147  directoryDoesNotExist, ///< Directory does not exist (or unable to create)
148  directoryExistAccessDenied, ///< Directory exist, read or write permission not granted
149  directoryUnaccessible ///< Unable to connect network device
150 };
151 
152 /**
153 * Information about directory
154 */
155 struct Directory {
156  string name;
157  boolean hasSubdirectory;
158 };
159 
160 /**
161 * List of restrictions
162 */
163 typedef sequence<Directory> DirectoryList;
164 
165 
166 enum BuildType {
167  Alpha,
168  Beta,
169  Rc,
170  Final,
171  Patch
172 };
173 
174 enum DeployedType {
175  DeployedStandalone, ///< Normal instalation
176  DeployedCloud, ///< Kerio Connect is running in a cloud
177  DeployedKerioVA ///< Kerio Connect VMWare Virtual Appliance
178 };
179 
180 /**
181  * Operating System Family
182  */
183 enum ServerOs {
184  Windows,
185  MacOs,
186  Linux
187 };
188 
189 enum UpdateCheckerStatus {
190  updNoUpdate, ///< Update status: No update
191  updNewVersion, ///< Update status: New version
192  updError ///< Update status: Error
193 };
194 
195 struct UpdateInfo {
196  UpdateCheckerStatus result;
197  string description;
198  string downloadUrl;
199  string infoUrl;
200 };
201 
202 struct ProductInfo {
203  string productName;
204  string version;
205  string buildNumber;
206  string osName;
207  ServerOs os;
208  BuildType releaseType;
209  DeployedType deployedType;
210  UpdateInfo updateInfo;
211 };
212 
213 struct CustomImage {
214  boolean isEnabled; ///< Is used
215  string url; ///< [READ ONLY]
216  string id; ///< [WRITE ONCE] Id of uploaded image.
217 };
218 
219 enum NotificationType {
220  notifyOnce,
221  notifyEvery
222 };
223 
225  NotificationType type;
226  TimeLimit period;
227 };
228 
229 }; }; };//end of namespace
230 
231 /**
232  * @}
233  */