All Classes Namespaces Files Functions Variables Groups
Principals.idl
1 /**
2  * @file Pricipals.idl
3  * @brief Access server principals.
4  *
5  * @author Martin Hosna
6  *
7  * @copyright Copyright © 2017 Kerio Technologies s.r.o.
8  */
9 
10 /**
11  * @defgroup PRINCIPALS Accessing server principals
12  * @{
13  */
14 #import <Structures.idl>
15 
16 module kerio {
17 module jsonapi {
18 module webmail {
19 module principals {
20 
21 
22 enum PrincipalType {
23  ptUser,
24  ptResource,
25  ptGroup,
26  ptDomain,
27  ptAnonymous, ///< Special type without ID: anyone
28  ptAuthUser ///< Special type without ID: every authenticated user
29 };
30 
31 struct Principal {
32  kerio::web::KId id; ///< global identification
33  PrincipalType type;
34  string displayName;
35  string mailAddress;
36 };
37 
38 typedef sequence<Principal> PrincipalList;
39 
40 interface Principals {
41 
42  /**
43  * Get list of principals from server.
44  *
45  * @param list - principals
46  * @param types - requested principal types
47  */
48  void get(out PrincipalList list, in boolean users, in boolean groups, in boolean domains);
49 
50  /**
51  * Find principal according his primary email (login name) on server.
52  *
53  * @param principal - principal
54  * @param email - email/login name
55  */
56  void getByEmail(out Principal principal, in string email);
57 
58 };
59 
60 }; }; }; }; // end of namespace
61 
62 /**
63  * @}
64  */