All Classes Files Functions Variables Enumerations Enumerator Groups Pages
Init.idl
1 /**
2  * @file init.idl
3  * @brief Initial configuration of Kerio Connect after installation.
4  *
5  * @author Miroslav Kroc
6  *
7  * @copyright Copyright © 2017 Kerio Technologies s.r.o.
8  */
9 
10 #import <kerio/web/idl/SharedStructures.idl>
11 #import <common.idl>
12 #import <AdminStructures.idl> // DirectoryAccessResult, DirectoryList
13 #import <DistributedDomain.idl>
14 
15 
16 module kerio {
17 module jsonapi {
18 module admin {
19 
20 interface Init {
21 
22  /**
23  * Returns FQDN (fully qualified domain name) of the server (e.g. mail.companyname.com).
24  *
25  * @param hostname - name of the server
26  */
27  void getHostname(out string hostname);
28 
29  /**
30  * Check existence of domain name in the DNS. Existence of DN record with type "A" in appropriate DNS zone.
31  *
32  * @param hostname - fully qualified domain name of the server
33  */
34  void checkHostname(in string hostname);
35 
36  /**
37  * Check existence of MX record in the DNS for specified domain.
38  *
39  * @param domainName - fully qualified domain name
40  */
41  void checkMxRecord(in string domainName);
42 
43  /**
44  * Set Internet hostname of the server. This name is used for server identification in SMTP, POP3 and similar protocols.
45  *
46  * @param hostname - new fully qualified domain name of the server
47  */
48  void setHostname(in string hostname);
49 
50  /**
51  * Retrieve domains, which can be distributed, from the master server as a standalone server.
52  *
53  * @param domainNames - List of domains which can be distributed (they have a directory service set).
54  * @param authentication - Structure with a credential. Credential will be used when connected is false.
55  */
56  void getDistributableDomains(out kerio::web::StringList domainNames, in ClusterAuthentication authentication);
57 
58  /**
59  * Connect server to cluster as slave and create distributable domain.
60  *
61  * @param result - if ClusterErrorType is not clSuccess, error argument contains additional error info
62  * @param domainName - domain which can be distributed (they have a directory service set) and exist on master server.
63  * @param authentication - Structure with a credential. Credential will be used when connected is false.
64  */
65  void createDistributableDomain(out ClusterError result, in string domainName, in ClusterAuthentication authentication);
66 
67  /**
68  * Creates the primary email domain.
69  *
70  * @param domainName - fully qualified name of the domain
71  */
72  void createPrimaryDomain(in string domainName);
73 
74  /**
75  * Creates the administrator account. This account will be created in primary domain.
76  *
77  * @param loginName - login name for administrator (without domain name)
78  * @param password - administrator password
79  */
80  void createAdministratorAccount(in string loginName, in string password);
81 
82  /**
83  * Get current path to message store. Default path is "store" subdirectory in installation directory.
84  *
85  * @param path - full path to message store directory
86  * @param freeSpace - amount of free space in the directory
87  */
88  void getMessageStorePath(out string path, out LongNumber freeSpace);
89 
90  /**
91  * Set path to message store directory.
92  *
93  * @param path - full path to message store directory
94  */
95  void setMessageStorePath(in string path);
96 
97  /**
98  * Obtain a list of directories in a particular path.
99  *
100  * @param dirList - List of directories
101  * @param fullPath - directory for listing, if full path is empty logical drives will be listed
102  */
103  void getDirs(out DirectoryList dirList, in string fullPath);
104 
105  /**
106  * Check if message store path is correct and can be created in the file system.
107  *
108  * @param result - result of the check
109  * @param freeSpace - amount of free space in the directory
110  * @param path - full path to message store directory
111  */
112  void checkMessageStorePath(out DirectoryAccessResult result, out LongNumber freeSpace, in string path);
113 
114  /**
115  * Set client statistics settings.
116  *
117  * @param isEnabled - flag if statistics are enabled
118  */
119  void setClientStatistics(in boolean isEnabled);
120 
121  /**
122  * Finish initial configuration of Kerio Connect.
123  */
124  void finish();
125 
126  /**
127  * Server side list of constants.
128  *
129  * @param constants - list of constants
130  */
131  void getNamedConstantList(out NamedConstantList constants);
132 
133  /**
134  * Returns a list of user-preferred languages set in browser.
135  *
136  * @param calculatedLanguage - a list of 2-character language codes
137  */
138  void getBrowserLanguages(out kerio::web::StringList calculatedLanguage);
139 
140  /**
141  * Get basic information about product and its version.
142  *
143  * @param info - structure with basic information about product
144  */
145  void getProductInfo(out ProductInfo info);
146 
147  /**
148  * Obtain EULA.
149  *
150  * @param content - plain text of EULA
151  */
152  void getEula(out string content);
153 };
154 
155 }; }; };//end of namespace