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