summaryrefslogtreecommitdiff
path: root/libedataserver/e-source-enums.h
blob: a13b578430480c6c6e6f5d85807397f19c17dcc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
/*
 * e-source-enums.h
 *
 * This library is free software: you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation.
 *
 * This library is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
 * for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library. If not, see <http://www.gnu.org/licenses/>.
 *
 */

#if !defined (__LIBEDATASERVER_H_INSIDE__) && !defined (LIBEDATASERVER_COMPILATION)
#error "Only <libedataserver/libedataserver.h> should be included directly."
#endif

#ifndef E_SOURCE_ENUMS_H
#define E_SOURCE_ENUMS_H

/**
 * EMdnResponsePolicy:
 * @E_MDN_RESPONSE_POLICY_NEVER:
 *   Never respond to an MDN request.
 * @E_MDN_RESPONSE_POLICY_ALWAYS:
 *   Always respond to an MDN request.
 * @E_MDN_RESPONSE_POLICY_ASK:
 *   Ask the user before responding to an MDN request.
 *
 * Policy for responding to Message Disposition Notification requests
 * (i.e. a Disposition-Notification-To header) when receiving messages.
 * See RFC 2298 for more information about MDN requests.
 *
 * Since: 3.6
 **/
typedef enum {
	E_MDN_RESPONSE_POLICY_NEVER,
	E_MDN_RESPONSE_POLICY_ALWAYS,
	E_MDN_RESPONSE_POLICY_ASK
} EMdnResponsePolicy;

/**
 * EProxyMethod:
 * @E_PROXY_METHOD_DEFAULT:
 *   Use the default #GProxyResolver (see g_proxy_resolver_get_default()).
 * @E_PROXY_METHOD_MANUAL:
 *   Use the FTP/HTTP/HTTPS/SOCKS settings defined in #ESourceProxy.
 * @E_PROXY_METHOD_AUTO:
 *   Use the autoconfiguration URL defined in #ESourceProxy.
 * @E_PROXY_METHOD_NONE:
 *   Direct connection; do not use a network proxy.
 *
 * Network proxy configuration methods.
 *
 * Since: 3.12
 **/
typedef enum {
	E_PROXY_METHOD_DEFAULT,
	E_PROXY_METHOD_MANUAL,
	E_PROXY_METHOD_AUTO,
	E_PROXY_METHOD_NONE
} EProxyMethod;

/**
 * ESourceAuthenticationResult:
 * @E_SOURCE_AUTHENTICATION_ERROR:
 *   An error occurred while authenticating.
 * @E_SOURCE_AUTHENTICATION_ERROR_SSL_FAILED:
 *   An SSL certificate check failed. Since: 3.16.
 * @E_SOURCE_AUTHENTICATION_ACCEPTED:
 *   Server requesting authentication accepted password.
 * @E_SOURCE_AUTHENTICATION_REJECTED:
 *   Server requesting authentication rejected password.
 * @E_SOURCE_AUTHENTICATION_REQUIRED:
 *   Server requesting authentication, but none was given.
 *
 * Status codes used by the #EBackend authentication wrapper.
 *
 * Since: 3.6
 **/
typedef enum {
	E_SOURCE_AUTHENTICATION_ERROR,
	E_SOURCE_AUTHENTICATION_ERROR_SSL_FAILED,
	E_SOURCE_AUTHENTICATION_ACCEPTED,
	E_SOURCE_AUTHENTICATION_REJECTED,
	E_SOURCE_AUTHENTICATION_REQUIRED
} ESourceAuthenticationResult;

/**
 * ETrustPromptResponse:
 *
 * XXX Document me!
 *
 * Since: 3.8
 **/
typedef enum {
	E_TRUST_PROMPT_RESPONSE_UNKNOWN = -1,
	E_TRUST_PROMPT_RESPONSE_REJECT = 0,
	E_TRUST_PROMPT_RESPONSE_ACCEPT = 1,
	E_TRUST_PROMPT_RESPONSE_ACCEPT_TEMPORARILY = 2,
	E_TRUST_PROMPT_RESPONSE_REJECT_TEMPORARILY = 3
} ETrustPromptResponse;

/**
 * ESourceConnectionStatus:
 * @E_SOURCE_CONNECTION_STATUS_DISCONNECTED:
 *   The source is currently disconnected from its (possibly remote) data store.
 * @E_SOURCE_CONNECTION_STATUS_AWAITING_CREDENTIALS:
 *   The source asked for credentials with a 'credentials-required' signal and
 *   is currently awaiting for them.
 * @E_SOURCE_CONNECTION_STATUS_SSL_FAILED:
 *   A user rejected SSL certificate trust for the connection.
 * @E_SOURCE_CONNECTION_STATUS_CONNECTING:
 *   The source is currently connecting to its (possibly remote) data store.
 * @E_SOURCE_CONNECTION_STATUS_CONNECTED:
 *   The source is currently connected to its (possibly remote) data store.
 *
 * Connection status codes used by the #ESource to indicate its connection state.
 * This is used in combination with authentication of the ESource. For example,
 * if there are multiple clients asking for a password and a user enters the password
 * in one of them, then the status will change into 'connecting', which is a signal
 * do close the password prompt in the other client, because the credentials had
 * been already provided.
 *
 * Since: 3.16
 **/
typedef enum {
	E_SOURCE_CONNECTION_STATUS_DISCONNECTED,
	E_SOURCE_CONNECTION_STATUS_AWAITING_CREDENTIALS,
	E_SOURCE_CONNECTION_STATUS_SSL_FAILED,
	E_SOURCE_CONNECTION_STATUS_CONNECTING,
	E_SOURCE_CONNECTION_STATUS_CONNECTED
} ESourceConnectionStatus;

/**
 * ESourceCredentialsReason:
 * @E_SOURCE_CREDENTIALS_REASON_UNKNOWN:
 *   A return value when there was no 'credentials-required' signal emitted yet,
 *   or a pair 'authenticate' signal had been received. This value should not
 *   be used in the call of 'credentials-required'.
 * @E_SOURCE_CREDENTIALS_REASON_REQUIRED:
 *   This is the first attempt to get credentials for the source. It's usually
 *   used right after the source is opened and the authentication continues with
 *   a stored credentials, if any.
 * @E_SOURCE_CREDENTIALS_REASON_REJECTED:
 *   The previously used credentials had been rejected by the server. That
 *   usually means that the user should be asked to provide/correct the credentials.
 * @E_SOURCE_CREDENTIALS_REASON_SSL_FAILED:
 *   A secured connection failed due to some server-side certificate issues.
 * @E_SOURCE_CREDENTIALS_REASON_ERROR:
 *   The server returned an error. It is not possible to connect to it
 *   at the moment usually.
 *
 * An ESource's authentication reason, used by an ESource::CredentialsRequired method.
 *
 * Since: 3.16
 **/
typedef enum {
	E_SOURCE_CREDENTIALS_REASON_UNKNOWN,
	E_SOURCE_CREDENTIALS_REASON_REQUIRED,
	E_SOURCE_CREDENTIALS_REASON_REJECTED,
	E_SOURCE_CREDENTIALS_REASON_SSL_FAILED,
	E_SOURCE_CREDENTIALS_REASON_ERROR
} ESourceCredentialsReason;

/**
 * ESourceLDAPAuthentication:
 * @E_SOURCE_LDAP_AUTHENTICATION_NONE:
 *   Use none authentication type.
 * @E_SOURCE_LDAP_AUTHENTICATION_EMAIL:
 *   Use an email address for authentication.
 * @E_SOURCE_LDAP_AUTHENTICATION_BINDDN:
 *   Use a bind DN for authentication.
 *
 * Defines authentication types for LDAP sources.
 *
 * Since: 3.18
 **/
typedef enum {
	E_SOURCE_LDAP_AUTHENTICATION_NONE,
	E_SOURCE_LDAP_AUTHENTICATION_EMAIL,
	E_SOURCE_LDAP_AUTHENTICATION_BINDDN
} ESourceLDAPAuthentication;

/**
 * ESourceLDAPScope:
 * @E_SOURCE_LDAP_SCOPE_ONELEVEL:
 *   One level search scope.
 * @E_SOURCE_LDAP_SCOPE_SUBTREE:
 *   Sub-tree search scope.
 *
 * Defines search scope for LDAP sources.
 *
 * Since: 3.18
 **/
typedef enum {
	E_SOURCE_LDAP_SCOPE_ONELEVEL,
	E_SOURCE_LDAP_SCOPE_SUBTREE
} ESourceLDAPScope;

/**
 * ESourceLDAPSecurity:
 * @E_SOURCE_LDAP_SECURITY_NONE:
 *   Connect insecurely.
 * @E_SOURCE_LDAP_SECURITY_LDAPS:
 *   Connect using secure LDAP (LDAPS).
 * @E_SOURCE_LDAP_SECURITY_STARTTLS:
 *   Connect using STARTTLS.
 *
 * Defines what connection security should be used for LDAP sources.
 *
 * Since: 3.18
 **/
typedef enum {
	E_SOURCE_LDAP_SECURITY_NONE,
	E_SOURCE_LDAP_SECURITY_LDAPS,
	E_SOURCE_LDAP_SECURITY_STARTTLS
} ESourceLDAPSecurity;

/**
 * ESourceWeatherUnits:
 * @E_SOURCE_WEATHER_UNITS_FAHRENHEIT:
 *   Fahrenheit units
 * @E_SOURCE_WEATHER_UNITS_CENTIGRADE:
 *   Centigrade units
 * @E_SOURCE_WEATHER_UNITS_KELVIN:
 *   Kelvin units
 *
 * Units to be used in an #ESourceWeather extension.
 *
 * Since: 3.18
 **/
typedef enum {
	E_SOURCE_WEATHER_UNITS_FAHRENHEIT = 0,
	E_SOURCE_WEATHER_UNITS_CENTIGRADE,
	E_SOURCE_WEATHER_UNITS_KELVIN
} ESourceWeatherUnits;

#endif /* E_SOURCE_ENUMS_H */