Merge "Modified enumeration of cellular PDN type" into tizen
[platform/core/api/connection.git] / include / connection_profile.h
1 /*
2  * Copyright (c) 2011-2013 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17
18 #ifndef __TIZEN_NETWORK_CONNECTION_PROFILE_H__
19 #define __TIZEN_NETWORK_CONNECTION_PROFILE_H__
20
21
22 #include <tizen.h>
23
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29
30 /**
31  * @file connection_profile.h
32  */
33
34
35 /**
36 * @addtogroup CAPI_NETWORK_CONNECTION_WIFI_PROFILE_MODULE
37 * @{
38 */
39
40
41 /**
42  * @brief Enumeration for security type of Wi-Fi.
43  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
44 */
45 typedef enum {
46         CONNECTION_WIFI_SECURITY_TYPE_NONE = 0, /**< Security disabled */
47         CONNECTION_WIFI_SECURITY_TYPE_WEP = 1, /**< WEP */
48         CONNECTION_WIFI_SECURITY_TYPE_WPA_PSK = 2, /**< WPA-PSK */
49         CONNECTION_WIFI_SECURITY_TYPE_WPA2_PSK = 3, /**< WPA2-PSK */
50         CONNECTION_WIFI_SECURITY_TYPE_EAP = 4, /**< EAP */
51 } connection_wifi_security_type_e;
52
53
54 /**
55  * @brief Enumeration for encryption modes.
56  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
57 */
58 typedef enum {
59         CONNECTION_WIFI_ENCRYPTION_TYPE_NONE = 0, /**< Encryption disabled */
60         CONNECTION_WIFI_ENCRYPTION_TYPE_WEP = 1, /**< WEP */
61         CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP = 2, /**< TKIP */
62         CONNECTION_WIFI_ENCRYPTION_TYPE_AES = 3, /**< AES */
63         CONNECTION_WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED = 4, /**< TKIP and AES are both supported */
64 } connection_wifi_encryption_type_e;
65
66
67 /**
68 * @}
69 */
70
71
72 /**
73 * @addtogroup CAPI_NETWORK_CONNECTION_CELLULAR_PROFILE_MODULE
74 * @{
75 */
76
77
78 /**
79  * @brief Enumeration for cellular service type.
80  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
81 */
82 typedef enum {
83         CONNECTION_CELLULAR_SERVICE_TYPE_UNKNOWN = 0, /**< Unknown */
84         CONNECTION_CELLULAR_SERVICE_TYPE_INTERNET = 1, /**< Internet */
85         CONNECTION_CELLULAR_SERVICE_TYPE_MMS = 2, /**< MMS */
86         CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_INTERNET = 3, /**< Prepaid internet */
87         CONNECTION_CELLULAR_SERVICE_TYPE_PREPAID_MMS = 4, /**< Prepaid MMS */
88         CONNECTION_CELLULAR_SERVICE_TYPE_TETHERING = 5, /**< Tethering */
89         CONNECTION_CELLULAR_SERVICE_TYPE_APPLICATION = 6, /**< Specific application */
90 } connection_cellular_service_type_e;
91
92
93 /**
94  * @brief Enumeration for cellular pdn type.
95  * @since_tizen 3.0
96  * @remarks Use CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPV6 instead of
97  *          CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPv6.
98  */
99 typedef enum {
100         CONNECTION_CELLULAR_PDN_TYPE_UNKNOWN = 0,    /**> Unknown */
101         CONNECTION_CELLULAR_PDN_TYPE_IPV4 = 1,       /**> IPv4 */
102         CONNECTION_CELLULAR_PDN_TYPE_IPV6 = 2,       /**> IPv6 */
103         CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPv6 = 3,  /**> IPv4 and IPv6 (Deprecated since 4.0)*/
104         CONNECTION_CELLULAR_PDN_TYPE_IPV4_IPV6 = 4,  /**> IPv4 and IPv6 (Since 4.0)*/
105 } connection_cellular_pdn_type_e;
106
107
108 /**
109  * @brief Enumeration for cellular authentication type.
110  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
111 */
112 typedef enum {
113         CONNECTION_CELLULAR_AUTH_TYPE_NONE = 0, /**< No authentication */
114         CONNECTION_CELLULAR_AUTH_TYPE_PAP  = 1, /**< PAP authentication */
115         CONNECTION_CELLULAR_AUTH_TYPE_CHAP = 2, /**< CHAP authentication */
116 } connection_cellular_auth_type_e;
117
118
119 /**
120 * @}
121 */
122
123
124 /**
125 * @addtogroup CAPI_NETWORK_CONNECTION_PROFILE_MODULE
126 * @{
127 */
128
129
130 /**
131  * @brief The profile handle.
132  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
133 */
134 typedef void* connection_profile_h;
135
136
137 /**
138  * @brief Enumeration for profile state type.
139  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
140 */
141 typedef enum {
142         CONNECTION_PROFILE_STATE_DISCONNECTED = 0, /**< Disconnected state */
143         CONNECTION_PROFILE_STATE_ASSOCIATION = 1, /**< Association state */
144         CONNECTION_PROFILE_STATE_CONFIGURATION = 2, /**< Configuration state */
145         CONNECTION_PROFILE_STATE_CONNECTED = 3, /**< Connected state */
146 } connection_profile_state_e;
147
148
149 /**
150  * @brief Enumeration for address family.
151  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
152 */
153 typedef enum {
154         CONNECTION_ADDRESS_FAMILY_IPV4 = 0, /**< IPV4 Address type */
155         CONNECTION_ADDRESS_FAMILY_IPV6 = 1, /**< IPV6 Address type */
156 } connection_address_family_e;
157
158
159 /**
160  * @brief Enumeration for IP configuration type.
161  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
162 */
163 typedef enum {
164         CONNECTION_IP_CONFIG_TYPE_NONE = 0, /**< Not defined */
165         CONNECTION_IP_CONFIG_TYPE_STATIC  = 1, /**< Manual IP configuration */
166         CONNECTION_IP_CONFIG_TYPE_DYNAMIC = 2, /**< Config IP using DHCP client*/
167         CONNECTION_IP_CONFIG_TYPE_AUTO = 3, /**< Config IP from Auto IP pool (169.254/16). Later with DHCP client, if available */
168         CONNECTION_IP_CONFIG_TYPE_FIXED = 4, /**< Indicates an IP address that can not be modified */
169 } connection_ip_config_type_e;
170
171
172 /**
173  * @brief Enumeration for proxy method type.
174  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
175 */
176 typedef enum {
177         CONNECTION_PROXY_TYPE_DIRECT = 0, /**< Direct connection */
178         CONNECTION_PROXY_TYPE_AUTO = 1, /**< Auto configuration(Use PAC file). If URL property is not set, DHCP/WPAD auto-discover will be tried */
179         CONNECTION_PROXY_TYPE_MANUAL  = 2, /**< Manual configuration */
180 } connection_proxy_type_e;
181
182 /**
183  * @brief Enumeration for DNS configuration type.
184  * @since_tizen 4.0
185  */
186 typedef enum {
187         CONNECTION_DNS_CONFIG_TYPE_NONE = 0,     /**< Not defined */
188         CONNECTION_DNS_CONFIG_TYPE_STATIC = 1,   /**< Manual DNS configuration */
189         CONNECTION_DNS_CONFIG_TYPE_DYNAMIC = 2,  /**< Config DNS using DHCP client*/
190 } connection_dns_config_type_e;
191
192 /**
193  * @brief Enumeration for network connection type.
194  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
195 */
196 typedef enum {
197         CONNECTION_PROFILE_TYPE_CELLULAR = 0, /**< Cellular type */
198         CONNECTION_PROFILE_TYPE_WIFI = 1, /**< Wi-Fi type */
199         CONNECTION_PROFILE_TYPE_ETHERNET = 2, /**< Ethernet type */
200         CONNECTION_PROFILE_TYPE_BT = 3, /**< Bluetooth type */
201 } connection_profile_type_e;
202
203
204 /**
205  * @brief Creates a profile handle.
206  * @details The profile name, which you get from connection_profile_get_name(), will include the keyword you set.
207  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
208  * @privlevel public
209  * @privilege %http://tizen.org/privilege/network.get
210  * @remarks You must release @a profile using connection_profile_destroy().
211  * @param[in] type The type of profile \n
212  *                         #CONNECTION_PROFILE_TYPE_CELLULAR and #CONNECTION_PROFILE_TYPE_WIFI are supported
213  * @param[in] keyword The keyword included in profile name
214  * @param[out] profile The handle of the profile
215  * @return @c 0 on success,
216  *         otherwise negative error value
217  * @retval #CONNECTION_ERROR_NONE Successful
218  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
219  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
220  * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission Denied
221  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
222  * @see connection_profile_destroy()
223  * @see connection_profile_get_name()
224 */
225 int connection_profile_create(connection_profile_type_e type, const char* keyword, connection_profile_h* profile);
226
227
228 /**
229  * @brief Destroys a profile handle.
230  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
231  * @param[out] profile The handle to the profile
232  * @return @c 0 on success,
233  *         otherwise a negative error value
234  * @retval #CONNECTION_ERROR_NONE Successful
235  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
236  * @see connection_profile_create()
237 */
238 int connection_profile_destroy(connection_profile_h profile);
239
240
241 /**
242  * @brief Clones a profile handle.
243  * @since_tizen 2.3
244  * @remarks You must release @a cloned_profile using connection_profile_destroy().
245  * @param[out] cloned_profile The handle of the cloned profile
246  * @param[in] origin_profile The handle of the origin profile
247  * @return @c 0 on success,
248  *         otherwise a negative error value
249  * @retval #CONNECTION_ERROR_NONE Successful
250  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
251  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
252  * @see connection_profile_destroy()
253 */
254 int connection_profile_clone(connection_profile_h* cloned_profile, connection_profile_h origin_profile);
255
256
257 /**
258  * @brief Gets the profile ID.
259  * @details The separate profiles can have the same name.
260  *          So, you must use this API instead of connection_profile_get_name() if you want to get the unique identification.
261  *          In case you create a profile, this value will be determined when you add the profile.
262  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
263  * @remarks You must release @a profile_id using free().
264  * @param[in] profile The profile handle
265  * @param[out] profile_id The ID of the profile
266  * @return @c 0 on success,
267  *         otherwise a negative error value
268  * @retval #CONNECTION_ERROR_NONE Successful
269  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
270  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
271  * @see connection_profile_get_name()
272  * @see connection_add_profile()
273 */
274 int connection_profile_get_id(connection_profile_h profile, char** profile_id);
275
276
277 /**
278  * @brief Gets the profile name.
279  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
280  * @remarks You must release @a profile_name using free().
281  * @param[in] profile The profile handle
282  * @param[out] profile_name The name of the profile
283  * @return @c 0 on success,
284  *         otherwise a negative error value
285  * @retval #CONNECTION_ERROR_NONE Successful
286  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
287  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
288  * @see connection_profile_get_id()
289 */
290 int connection_profile_get_name(connection_profile_h profile, char** profile_name);
291
292
293 /**
294  * @brief Gets the network type.
295  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
296  * @param[in] profile The profile handle
297  * @param[out] type The type of the profile
298  * @return @c 0 on success,
299  *         otherwise a negative error value
300  * @retval #CONNECTION_ERROR_NONE Successful
301  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
302  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
303 */
304 int connection_profile_get_type(connection_profile_h profile, connection_profile_type_e* type);
305
306
307 /**
308  * @brief Gets the name of the network interface, e.g. eth0 and pdp0.
309  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
310  * @remarks You must release @a interface_name using free().
311  * @param[in] profile The profile handle
312  * @param[out] interface_name The name of the network interface
313  * @return @c 0 on success,
314  *         otherwise a negative error value
315  * @retval #CONNECTION_ERROR_NONE Successful
316  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
317  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
318 */
319 int connection_profile_get_network_interface_name(connection_profile_h profile, char** interface_name);
320
321
322 /**
323  * @brief Refreshes the profile information.
324  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
325  * @privlevel public
326  * @privilege %http://tizen.org/privilege/network.get
327  * @remarks You should call this function in order to get the current information because the profile information can be changed.
328  * @param[in] profile The profile handle
329  * @return @c 0 on success,
330  *         otherwise a negative error value
331  * @retval #CONNECTION_ERROR_NONE Successful
332  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
333  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
334  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
335  * @retval #CONNECTION_ERROR_PERMISSION_DENIED Permission Denied
336 */
337 int connection_profile_refresh(connection_profile_h profile);
338
339
340 /**
341  * @brief Gets the network type.
342  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
343  * @param[in] profile The profile handle
344  * @param[out] state The state of the profile
345  * @return @c 0 on success,
346  *         otherwise a negative error value
347  * @retval #CONNECTION_ERROR_NONE Successful
348  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
349  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
350 */
351 int connection_profile_get_state(connection_profile_h profile, connection_profile_state_e* state);
352
353
354 /**
355  * @brief Gets the IP config type.
356  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
357  * @param[in] profile The profile handle
358  * @param[in] address_family The address family
359  * @param[out] type The type of the IP config
360  * @return @c 0 on success,
361  *         otherwise a negative error value
362  * @retval #CONNECTION_ERROR_NONE Successful
363  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
364  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
365 */
366 int connection_profile_get_ip_config_type(connection_profile_h profile, connection_address_family_e address_family, connection_ip_config_type_e* type);
367
368
369 /**
370  * @brief Gets the IP address.
371  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
372  * @remarks You must release @a ip_address using free().
373  * @param[in] profile The profile handle
374  * @param[in] address_family The address family
375  * @param[out] ip_address The IP address
376  * @return @c 0 on success,
377  *         otherwise a negative error value
378  * @retval #CONNECTION_ERROR_NONE Successful
379  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
380  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
381  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
382  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
383 */
384 int connection_profile_get_ip_address(connection_profile_h profile, connection_address_family_e address_family, char** ip_address);
385
386
387 /**
388  * @brief Gets the Subnet Mask.
389  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
390  * @remarks You must release @a subnet_mask using free().
391  * @param[in] profile The profile handle
392  * @param[in] address_family The address family
393  * @param[out] subnet_mask The subnet mask
394  * @return @c 0 on success,
395  *         otherwise a negative error value
396  * @retval #CONNECTION_ERROR_NONE Successful
397  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
398  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
399  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
400  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
401 */
402 int connection_profile_get_subnet_mask(connection_profile_h profile, connection_address_family_e address_family, char** subnet_mask);
403
404
405 /**
406  * @brief Gets the Gateway address.
407  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
408  * @remarks You must release @a gateway_address using free().
409  * @param[in] profile The profile handle
410  * @param[in] address_family The address family
411  * @param[out] gateway_address The gateway address
412  * @return @c 0 on success,
413  *         otherwise a negative error value
414  * @retval #CONNECTION_ERROR_NONE Successful
415  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
416  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
417  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
418  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
419 */
420 int connection_profile_get_gateway_address(connection_profile_h profile, connection_address_family_e address_family, char** gateway_address);
421
422
423 /**
424  * @brief Gets the DNS address.
425  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
426  * @remarks The allowance of the DNS address is @c 2. You must release @a dns_address using free().
427  * @param[in] profile The profile handle
428  * @param[in] order The order of DNS address \n
429  *                          it starts from 1, which means first DNS address
430  * @param[in] address_family The address family
431  * @param[out] dns_address The DNS address
432  * @return @c 0 on success,
433  *         otherwise a negative error value
434  * @retval #CONNECTION_ERROR_NONE Successful
435  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
436  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
437  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
438  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
439 */
440 int connection_profile_get_dns_address(connection_profile_h profile, int order, connection_address_family_e address_family, char** dns_address);
441
442
443 /**
444  * @brief Gets the Proxy type.
445  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
446  * @param[in] profile The profile handle
447  * @param[out] type The type of the proxy
448  * @return @c 0 on success,
449  *         otherwise a negative error value
450  * @retval #CONNECTION_ERROR_NONE Successful
451  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
452  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
453 */
454 int connection_profile_get_proxy_type(connection_profile_h profile, connection_proxy_type_e* type);
455
456
457 /**
458  * @brief Gets the Proxy address.
459  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
460  * @remarks You must release @a proxy_address using free().
461  * @param[in] profile The profile handle
462  * @param[in] address_family The address family
463  * @param[out] proxy_address The proxy address
464  * @return @c 0 on success,
465  *         otherwise a negative error value
466  * @retval #CONNECTION_ERROR_NONE Successful
467  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
468  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
469  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
470  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
471 */
472 int connection_profile_get_proxy_address(connection_profile_h profile, connection_address_family_e address_family, char** proxy_address);
473
474
475 /**
476  * @brief Sets the IP config type.
477  * @details If you set IP config type to #CONNECTION_IP_CONFIG_TYPE_STATIC,
478  *          then IP address, Gateway and Subnet mask will be set to the initial value "0.0.0.0".
479  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
480  * @param[in] profile The profile handle
481  * @param[in] address_family The address family
482  * @param[in] type The type of the IP config
483  * @return @c 0 on success,
484  *         otherwise a negative error value
485  * @retval #CONNECTION_ERROR_NONE Successful
486  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
487  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
488 */
489 int connection_profile_set_ip_config_type(connection_profile_h profile, connection_address_family_e address_family, connection_ip_config_type_e type);
490
491
492 /**
493  * @brief Sets the IP address.
494  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
495  * @param[in] profile The profile handle
496  * @param[in] address_family The address family
497  * @param[in] ip_address The IP address. \n
498  *                                   If you set this value to @c NULL, then the existing value will be deleted
499  * @return @c 0 on success,
500  *         otherwise a negative error value
501  * @retval #CONNECTION_ERROR_NONE Successful
502  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
503  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED  Not supported address family
504  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
505  * @see connection_update_profile()
506 */
507 int connection_profile_set_ip_address(connection_profile_h profile, connection_address_family_e address_family, const char* ip_address);
508
509
510 /**
511  * @brief Sets the Subnet Mask.
512  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
513  * @param[in] profile The profile handle
514  * @param[in] address_family The address family
515  * @param[in] subnet_mask The subnet mask. \n
516  *                                    If you set this value to @c NULL, then the existing value will be deleted
517  * @return @c 0 on success,
518  *         otherwise a negative error value
519  * @retval #CONNECTION_ERROR_NONE Successful
520  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
521  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
522  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
523  * @see connection_update_profile()
524 */
525 int connection_profile_set_subnet_mask(connection_profile_h profile, connection_address_family_e address_family, const char* subnet_mask);
526
527
528 /**
529  * @brief Sets the Gateway address.
530  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
531  * @param[in] profile The profile handle
532  * @param[in] address_family The address family
533  * @param[in] gateway_address The gateway address. \n
534  *                                        If you set this value to @c NULL, then the existing value will be deleted
535  * @return @c 0 on success,
536  *         otherwise a negative error value
537  * @retval #CONNECTION_ERROR_NONE Successful
538  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
539  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
540  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
541  * @see connection_update_profile()
542 */
543 int connection_profile_set_gateway_address(connection_profile_h profile, connection_address_family_e address_family, const char* gateway_address);
544
545
546 /**
547  * @brief Sets the DNS address.
548  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
549  * @remarks The allowance of the DNS address is @c 2.
550  * @param[in] profile The profile handle
551  * @param[in] order The order of the DNS address. \n
552  *                          It starts from @c 1, which means first DNS address
553  * @param[in] address_family The address family
554  * @param[in] dns_address The DNS address; if you set this value to NULL, then the existing value will be deleted
555  * @return @c 0 on success,
556  *         otherwise a negative error value
557  * @retval #CONNECTION_ERROR_NONE Successful
558  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
559  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
560  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
561  * @see connection_update_profile()
562 */
563 int connection_profile_set_dns_address(connection_profile_h profile, int order, connection_address_family_e address_family, const char* dns_address);
564
565
566 /**
567  * @brief Sets the Proxy type.
568  * @details If you set the Proxy type to #CONNECTION_PROXY_TYPE_AUTO or #CONNECTION_PROXY_TYPE_MANUAL, then Proxy will be restored.
569  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
570  * @param[in] profile The profile handle
571  * @param[in] type The type of the proxy
572  * @return @c 0 on success,
573  *         otherwise a negative error value
574  * @retval #CONNECTION_ERROR_NONE Successful
575  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
576  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
577  * @see connection_update_profile()
578 */
579 int connection_profile_set_proxy_type(connection_profile_h profile, connection_proxy_type_e type);
580
581
582 /**
583  * @brief Sets the Proxy address.
584  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
585  * @param[in] profile The profile handle
586  * @param[in] address_family The address family
587  * @param[in] proxy_address The proxy address. \n
588  *                                      If you set this value to @c NULL, then the existing value will be deleted
589  * @return @c 0 on success,
590  *         otherwise a negative error value
591  * @retval #CONNECTION_ERROR_NONE Successful
592  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
593  * @retval #CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED Not supported address family
594  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
595  * @see connection_update_profile()
596 */
597 int connection_profile_set_proxy_address(connection_profile_h profile, connection_address_family_e address_family, const char* proxy_address);
598
599
600 /**
601  * @brief Called when the state of the profile is changed.
602  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
603  * @param[in] state The state
604  * @param[in] user_data The user data passed from the callback registration function
605  * @see connection_profile_set_state_changed_cb()
606  * @see connection_profile_unset_state_changed_cb()
607 */
608 typedef void(*connection_profile_state_changed_cb)(connection_profile_state_e state, void* user_data);
609
610
611 /**
612  * @brief Registers the callback that is called when the state of profile is changed.
613  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
614  * @param[in] profile The profile handle
615  * @param[in] callback The callback function to be called
616  * @param[in] user_data The user data passed to the callback function
617  * @return @c 0 on success,
618  *         otherwise a negative error value
619  * @retval #CONNECTION_ERROR_NONE Successful
620  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
621  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
622  * @post connection_opened_cb() is invoked when the state of profile is changed.
623  * @see connection_profile_state_changed_cb()
624  * @see connection_profile_unset_state_changed_cb()
625 */
626 int connection_profile_set_state_changed_cb(connection_profile_h profile, connection_profile_state_changed_cb callback, void* user_data);
627
628
629 /**
630  * @brief Unregisters the callback that is called when the state of profile is changed.
631  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
632  * @param[in] profile The profile handle
633  * @return @c 0 on success,
634  *         otherwise a negative error value
635  * @retval #CONNECTION_ERROR_NONE Successful
636  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
637  * @see connection_profile_state_changed_cb()
638  * @see connection_profile_set_state_changed_cb()
639 */
640 int connection_profile_unset_state_changed_cb(connection_profile_h profile);
641
642 /**
643  * @brief Gets the IPv6 network state.
644  * @since_tizen 4.0
645  * @param[in] profile The profile handle
646  * @param[out] state  The profile state
647  * @return 0 on success, otherwise negative error value.
648  * @retval #CONNECTION_ERROR_NONE               Successful
649  * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
650  * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
651  * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
652  */
653 int connection_profile_get_ipv6_state(connection_profile_h profile, connection_profile_state_e *state);
654
655 /**
656  * @brief Sets the DNS config type.
657  * @since_tizen 4.0
658  * @param[in] profile         The profile handle
659  * @param[in] address_family  The address family
660  * @param[in] type            The DNS config type
661  * @return 0 on success, otherwise negative error value.
662  * @retval #CONNECTION_ERROR_NONE               Successful
663  * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
664  * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
665  * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
666  */
667 int connection_profile_set_dns_config_type(connection_profile_h profile,
668                 connection_address_family_e address_family, connection_dns_config_type_e type);
669
670 /**
671  * @brief Gets the DNS config type.
672  * @since_tizen 4.0
673  * @param[in] profile         The profile handle
674  * @param[in] address_family  The address family
675  * @param[out] type           The DNS config type
676  * @return 0 on success, otherwise negative error value.
677  * @retval #CONNECTION_ERROR_NONE               Successful
678  * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
679  * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
680  * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
681  */
682 int connection_profile_get_dns_config_type(connection_profile_h profile,
683                 connection_address_family_e address_family, connection_dns_config_type_e *type);
684
685 /**
686  * @brief Gets the network prefix length.
687  * @since_tizen 4.0
688  * @param[in] profile         The profile handle
689  * @param[in] address_family  The address family
690  * @param[out] prefix_len     The network prefix length.
691  *                            In case of IPv4, it means netmask length
692  *                            (also called a prefix, e.g. 8, 16, 24, 32)
693  * @return 0 on success, otherwise negative error value.
694  * @retval #CONNECTION_ERROR_NONE               Successful
695  * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
696  * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
697  * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
698  */
699 int connection_profile_get_prefix_length(connection_profile_h profile,
700                 connection_address_family_e address_family, int *prefix_len);
701
702 /**
703  * @brief Sets the network prefix length.
704  * @since_tizen 4.0
705  * @param[in] profile         The profile handle
706  * @param[in] address_family  The address family
707  * @param[in] prefix_len      The network prefix length.
708  *                            In case of IPv4, it means netmask length
709  *                            (also called a prefix, e.g. 8, 16, 24, 32)
710  * @return 0 on success, otherwise negative error value.
711  * @retval #CONNECTION_ERROR_NONE               Successful
712  * @retval #CONNECTION_ERROR_INVALID_PARAMETER  Invalid parameter
713  * @retval #CONNECTION_ERROR_OPERATION_FAILED   Operation failed
714  * @retval #CONNECTION_ERROR_NOT_SUPPORTED      Not supported
715  * @see connection_update_profile()
716  */
717 int connection_profile_set_prefix_length(connection_profile_h profile,
718                 connection_address_family_e address_family, int prefix_len);
719
720 /**
721 * @}
722 */
723
724
725 /**
726 * @addtogroup CAPI_NETWORK_CONNECTION_WIFI_PROFILE_MODULE
727 * @{
728 */
729
730
731 /**
732  * @brief Gets the ESSID (Extended Service Set Identifier).
733  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
734  * @remarks You must release @a essid using free().
735  * @param[in] profile The profile handle
736  * @param[out] essid The ESSID
737  * @return @c 0 on success,
738  *         otherwise a negative error value
739  * @retval #CONNECTION_ERROR_NONE Successful
740  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
741  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
742  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
743 */
744 int connection_profile_get_wifi_essid(connection_profile_h profile, char** essid);
745
746
747 /**
748  * @brief Gets the BSSID (Basic Service Set Identifier).
749  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
750  * @remarks You must release @a bssid using free().
751  * @param[in] profile The profile handle
752  * @param[out] bssid The BSSID
753  * @return @c 0 on success,
754  *         otherwise a negative error value
755  * @retval #CONNECTION_ERROR_NONE Successful
756  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
757  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
758  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
759 */
760 int connection_profile_get_wifi_bssid(connection_profile_h profile, char** bssid);
761
762
763 /**
764  * @brief Gets the RSSI.
765  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
766  * @param[in] profile The profile handle
767  * @param[out] rssi The RSSI
768  * @return @c 0 on success,
769  *         otherwise a negative error value
770  * @retval #CONNECTION_ERROR_NONE Successful
771  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
772  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
773 */
774 int connection_profile_get_wifi_rssi(connection_profile_h profile, int* rssi);
775
776
777 /**
778  * @brief Gets the frequency (MHz).
779  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
780  * @param[in] profile The profile handle
781  * @param[out] frequency The frequency
782  * @return @c 0 on success,
783  *         otherwise a negative error value
784  * @retval #CONNECTION_ERROR_NONE Successful
785  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
786  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
787 */
788 int connection_profile_get_wifi_frequency(connection_profile_h profile, int* frequency);
789
790
791 /**
792  * @brief Gets the max speed (Mbps).
793  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
794  * @param[in] profile The profile handle
795  * @param[out] max_speed The max speed
796  * @return @c 0 on success,
797  *         otherwise a negative error value
798  * @retval #CONNECTION_ERROR_NONE Successful
799  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
800  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
801 */
802 int connection_profile_get_wifi_max_speed(connection_profile_h profile, int* max_speed);
803
804
805 /**
806  * @brief Gets the security mode of Wi-Fi.
807  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
808  * @param[in] profile The profile handle
809  * @param[out] type The type of Wi-Fi security
810  * @return @c 0 on success,
811  *         otherwise a negative error value
812  * @retval #CONNECTION_ERROR_NONE Successful
813  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
814  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
815  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
816 */
817 int connection_profile_get_wifi_security_type(connection_profile_h profile, connection_wifi_security_type_e* type);
818
819
820 /**
821  * @brief Gets the security mode of Wi-Fi.
822  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
823  * @param[in] profile The profile handle
824  * @param[out] type The type of Wi-Fi security
825  * @return @c 0 on success,
826  *         otherwise a negative error value
827  * @retval #CONNECTION_ERROR_NONE Successful
828  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
829  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
830  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
831 */
832 int connection_profile_get_wifi_encryption_type(connection_profile_h profile, connection_wifi_encryption_type_e* type);
833
834
835 /**
836  * @brief Checks whether passphrase is required.
837  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
838  * @remarks This function is not valid if security type is #CONNECTION_WIFI_SECURITY_TYPE_EAP.
839  * @param[in] profile The profile handle
840  * @param[out] required @c true if a passphrase is required,
841  *                      otherwise @c false if a passphrase is not required
842  * @return @c 0 on success,
843  *         otherwise a negative error value
844  * @retval #CONNECTION_ERROR_NONE Successful
845  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
846  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
847 */
848 int connection_profile_is_wifi_passphrase_required(connection_profile_h profile, bool* required);
849
850
851 /**
852  * @brief Sets the passphrase of the Wi-Fi WPA.
853  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
854  * @param[in] profile The profile handle
855  * @param[in] passphrase The passphrase of Wi-Fi security
856  * @return @c 0 on success,
857  *         otherwise a negative error value
858  * @retval #CONNECTION_ERROR_NONE Successful
859  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
860  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
861  * @see connection_update_profile()
862 */
863 int connection_profile_set_wifi_passphrase(connection_profile_h profile, const char* passphrase);
864
865
866 /**
867  * @brief Checks whether the WPS (Wi-Fi Protected Setup) is supported.
868  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
869  * @remarks If WPS is supported, you can connect the access point with WPS by wifi_connect_with_wps().
870  * @param[in] profile The profile handle
871  * @param[out] supported @c true if WPS is supported,
872  *                       otherwise @c false if WPS is not supported
873  * @return @c 0 on success,
874  *         otherwise negative error value
875  * @retval #CONNECTION_ERROR_NONE Successful
876  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
877  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
878 */
879 int connection_profile_is_wifi_wps_supported(connection_profile_h profile, bool* supported);
880
881
882 /**
883 * @}
884 */
885
886
887 /**
888 * @addtogroup CAPI_NETWORK_CONNECTION_CELLULAR_PROFILE_MODULE
889 * @{
890 */
891
892
893 /**
894  * @brief Gets the service type.
895  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
896  * @param[in] profile The profile handle
897  * @param[out] type The type of the cellular service
898  * @return @c 0 on success,
899  *         otherwise a negative error value
900  * @retval #CONNECTION_ERROR_NONE Successful
901  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
902  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
903  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
904 */
905 int connection_profile_get_cellular_service_type(connection_profile_h profile, connection_cellular_service_type_e* type);
906
907
908 /**
909  * @brief Gets the APN (access point name).
910  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
911  * @remarks You must release @a apn using free().
912  * @param[in] profile The profile handle
913  * @param[out] apn The name of the APN
914  * @return @c 0 on success,
915  *         otherwise a negative error value
916  * @retval #CONNECTION_ERROR_NONE Successful
917  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
918  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
919  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
920 */
921 int connection_profile_get_cellular_apn(connection_profile_h profile, char** apn);
922
923
924 /**
925  * @brief Gets the authentication information.
926  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
927  * @remarks You must release @a user_name and @a password using free().
928  * @param[in] profile The profile handle
929  * @param[out] type The type of the authentication
930  * @param[out] user_name The user name
931  * @param[out] password The password
932  * @return @c 0 on success,
933  *         otherwise a negative error value
934  * @retval #CONNECTION_ERROR_NONE Successful
935  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
936  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
937  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
938  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
939 */
940 int connection_profile_get_cellular_auth_info(connection_profile_h profile, connection_cellular_auth_type_e* type, char** user_name, char** password);
941
942
943 /**
944  * @brief Gets the home URL.
945  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
946  * @remarks You must release @a home_url using free().
947  * @param[in] profile The profile handle
948  * @param[out] home_url The home URL
949  * @return @c 0 on success,
950  *         otherwise a negative error value
951  * @retval #CONNECTION_ERROR_NONE Successful
952  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
953  * @retval #CONNECTION_ERROR_OUT_OF_MEMORY Out of memory
954  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
955 */
956 int connection_profile_get_cellular_home_url(connection_profile_h profile, char** home_url);
957
958
959 /**
960  * @brief Gets the cellular pdn type.
961  * @since_tizen 3.0
962  * @param[in] profile The profile handle
963  * @param[out] type The cellular pdn type
964  * @return @c 0 on success,
965  *         otherwise negative error value
966  * @retval #CONNECTION_ERROR_NONE Successful
967  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
968  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
969  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
970 */
971 int connection_profile_get_cellular_pdn_type(connection_profile_h profile, connection_cellular_pdn_type_e* type);
972
973
974 /**
975  * @brief Gets the cellular roam pdn type.
976  * @since_tizen 3.0
977  * @param[in] profile The profile handle
978  * @param[out] type The cellular pdn type
979  * @return @c 0 on success,
980  *         otherwise negative error value
981  * @retval #CONNECTION_ERROR_NONE Successful
982  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
983  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
984  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
985 */
986 int connection_profile_get_cellular_roam_pdn_type(connection_profile_h profile, connection_cellular_pdn_type_e* type);
987
988
989 /**
990  * @brief Checks whether the connection is in roaming state.
991  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
992  * @param[in] profile The profile handle
993  * @param[out] is_roaming @c true if the cellular is roaming,
994  *                        otherwise @c false if it is not roaming
995  * @return @c 0 on success,
996  *         otherwise a negative error value
997  * @retval #CONNECTION_ERROR_NONE Successful
998  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
999  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
1000 */
1001 int connection_profile_is_cellular_roaming(connection_profile_h profile, bool* is_roaming);
1002
1003
1004 /**
1005  * @brief Checks whether the profile is hidden.
1006  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1007  * @param[in] profile The profile handle
1008  * @param[out] is_hidden @c true if the profile is in hidden,
1009  *                       otherwise @c false if the profile is not hidden
1010  * @return @c 0 on success,
1011  *         otherwise a negative error value
1012  * @retval #CONNECTION_ERROR_NONE Successful
1013  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1014  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
1015 */
1016 int connection_profile_is_cellular_hidden(connection_profile_h profile, bool* is_hidden);
1017
1018
1019 /**
1020  * @brief Checks whether the profile is editable.
1021  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1022  * @param[in] profile  The profile handle
1023  * @param[out] is_editable @c true if the profile is editable,
1024  *                         otherwise @c false if the profile is not editable
1025  * @return @c 0 on success,
1026  *         otherwise a negative error value
1027  * @retval #CONNECTION_ERROR_NONE Successful
1028  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1029  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
1030 */
1031 int connection_profile_is_cellular_editable(connection_profile_h profile, bool* is_editable);
1032
1033
1034 /**
1035  * @brief Checks whether the profile is default.
1036  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1037  * @param[in] profile The profile handle
1038  * @param[out] is_default @c true if the profile is default,
1039  *                        otherwise @c false if the profile is not default
1040  * @return @c 0 on success,
1041  *         otherwise a negative error value
1042  * @retval #CONNECTION_ERROR_NONE Successful
1043  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1044  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
1045 */
1046 int connection_profile_is_cellular_default(connection_profile_h profile, bool* is_default);
1047
1048
1049 /**
1050  * @brief Sets the service type.
1051  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1052  * @param[in] profile The profile handle
1053  * @param[in] service_type The type of cellular service
1054  * @return @c 0 on success,
1055  *         otherwise a negative error value
1056  * @retval #CONNECTION_ERROR_NONE Successful
1057  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1058  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
1059  * @see connection_update_profile()
1060 */
1061 int connection_profile_set_cellular_service_type(connection_profile_h profile, connection_cellular_service_type_e service_type);
1062
1063
1064 /**
1065  * @brief Sets the APN (Access Point Name).
1066  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1067  * @param[in] profile The profile handle
1068  * @param[in] apn The name of APN
1069  * @return @c 0 on success,
1070  *         otherwise a negative error value
1071  * @retval #CONNECTION_ERROR_NONE Successful
1072  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1073  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
1074  * @see connection_update_profile()
1075 */
1076 int connection_profile_set_cellular_apn(connection_profile_h profile, const char* apn);
1077
1078
1079 /**
1080  * @brief Sets the Authentication information.
1081  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1082  * @param[in] profile The profile handle
1083  * @param[in] type The type of the authentication
1084  * @param[in] user_name The user name
1085  * @param[in] password The password
1086  * @return @c 0 on success,
1087  *         otherwise a negative error value
1088  * @retval #CONNECTION_ERROR_NONE Successful
1089  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1090  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
1091  * @see connection_update_profile()
1092 */
1093 int connection_profile_set_cellular_auth_info(connection_profile_h profile, connection_cellular_auth_type_e type, const char* user_name, const char* password);
1094
1095
1096 /**
1097  * @brief Sets the home URL.
1098  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1099  * @param[in] profile The profile handle
1100  * @param[in] home_url The home URL
1101  * @return @c 0 on success,
1102  *         otherwise a negative error value
1103  * @retval #CONNECTION_ERROR_NONE Successful
1104  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1105  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not supported
1106  * @see connection_update_profile()
1107 */
1108 int connection_profile_set_cellular_home_url(connection_profile_h profile, const char* home_url);
1109
1110
1111 /**
1112  * @brief Sets the cellular pdn type.
1113  * @since_tizen 3.0
1114  * @param[in] profile The profile handle
1115  * @param[in] type The cellular pdn type
1116  * @return @c 0 on success,
1117  *         otherwise negative error value
1118  * @retval #CONNECTION_ERROR_NONE Successful
1119  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1120  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
1121  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
1122 */
1123 int connection_profile_set_cellular_pdn_type(connection_profile_h profile, connection_cellular_pdn_type_e type);
1124
1125
1126 /**
1127  * @brief Sets the cellular roam pdn type.
1128  * @since_tizen 3.0
1129  * @param[in] profile The profile handle
1130  * @param[in] type The cellular pdn type
1131  * @return @c 0 on success,
1132  *         otherwise negative error value
1133  * @retval #CONNECTION_ERROR_NONE Successful
1134  * @retval #CONNECTION_ERROR_INVALID_PARAMETER Invalid parameter
1135  * @retval #CONNECTION_ERROR_OPERATION_FAILED Operation failed
1136  * @retval #CONNECTION_ERROR_NOT_SUPPORTED Not Supported
1137 */
1138 int connection_profile_set_cellular_roam_pdn_type(connection_profile_h profile, connection_cellular_pdn_type_e type);
1139
1140
1141 /**
1142 * @}
1143 */
1144
1145
1146 #ifdef __cplusplus
1147 }
1148
1149
1150 #endif
1151
1152
1153 #endif /* __TIZEN_NETWORK_CONNECTION_PROFILE_H__ */