All Classes Files Functions Variables Enumerations Enumerator Groups Pages
MobileCommon.idl
1 /**
2  * @file Session.idl
3  * @brief Currently logged user manager
4  *
5  * @author Frantisek Boranek, Dusan Juhas
6  *
7  * @copyright Copyright © 2017 Kerio Technologies s.r.o.
8  *
9  * @defgroup Server
10  * @{
11  */
12 
13 #import <kerio/web/idl/SharedStructures.idl>
14 #import <common.idl>
15 
16 module kerio {
17 module jsonapi {
18 module mobile {
19  /**
20  * Mobile device status.
21  */
22 enum DeviceStatus {
23  OK, ///< no wipe
24  DeviceNotProvisioned, ///< not (fully) provisioned (yet)
25  DeviceWipeInitiated, ///< wipe process submitted
26  DeviceWipeInProgress, ///< wipe process in progress
27  DeviceWipeFinished, ///< wipe process finished
28  DeviceConnected,
29  DeviceDisconnected
30 };
31 
32 /**
33  * Folder icon enumeration.
34  */
35 enum FolderIcon {
36  FIMail,
37  FIContact,
38  FICalendar,
39  FITodo,
40  FIJournal,
41  FINote,
42  FIInbox,
43  FIDeleted
44 };
45 
46 /**
47  * Synchronized folder.
48  */
49 struct SyncFolder {
50  string folderName; ///< folder name
51  FolderIcon folderTypeIcon; ///< mail,contact...
52  DateTimeStamp lastSyncDate; ///< date of last synchronization
53  UtcDateTime lastSyncDateIso; ///< date of last synchronization
54 };
55 
56 typedef sequence<SyncFolder> SyncFolderList;
57 
58 /**
59  * Used synchronization method.
60  */
61 enum SyncMethod {
62  ServerWins,
63  ClientWins
64 };
65 
66 enum ProtocolType {
67  protocolASync,
68  protocolKBC
69 };
70 
71 /**
72  * Mobile device properties.
73  */
74 struct MobileDevice {
75  ProtocolType protocolType;
76  string deviceId;
77  string protocolVersion; ///< used ActiveSync protocol version
78  DateTimeStamp registrationDate; ///< date of registration
79  UtcDateTime registrationDateIso; ///< date of registration
80  DateTimeStamp lastSyncDate; ///< date of last synchronization
81  UtcDateTime lastSyncDateIso; ///< date of last synchronization
82  SyncFolderList folderList; ///< list of synchronized folders
83  DeviceStatus status; ///< wipe status
84  SyncMethod method; ///< synchronization method
85  string remoteHost; ///< typically IP address of device
86  string os; ///< operating system - eg. Windows Mobile(R) 2003
87  string platform; ///< PocketPC
88  string deviceIcon; ///< Device icon Eg. 'pocketpc' or 'unknown'
89 };
90 
91 /**
92  * List of mobile devices.
93  */
94 typedef sequence<MobileDevice> MobileDeviceList;
95 
96 }; }; }; // end of namespace
97 
98 /**
99  * @}
100  */