Add new elements for component-based application
[platform/core/appfw/pkgmgr-info.git] / include / pkgmgrinfo_type.h
1 /*
2  * pkgmgr-info
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>,
7  * Jaeho Lee <jaeho81.lee@samsung.com>, Shobhit Srivastava <shobhit.s@samsung.com>
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  */
22
23 #ifndef __PKGMGRINFO_TYPE_H__
24 #define __PKGMGRINFO_TYPE_H__
25
26 #include <sys/types.h>
27
28 /* app background category value */
29 #define APP_BG_CATEGORY_USER_DISABLE_FALSE_VAL          0x00000
30 #define APP_BG_CATEGORY_USER_DISABLE_TRUE_VAL           0x00001
31 #define APP_BG_CATEGORY_MEDIA_VAL                       0x00002
32 #define APP_BG_CATEGORY_DOWNLOAD_VAL                    0x00004
33 #define APP_BG_CATEGORY_BGNETWORK_VAL                   0x00008
34 #define APP_BG_CATEGORY_LOCATION_VAL                    0x00010
35 #define APP_BG_CATEGORY_SENSOR_VAL                      0x00020
36 #define APP_BG_CATEGORY_IOTCOMM_VAL                     0x00040
37 #define APP_BG_CATEGORY_SYSTEM_VAL                      0x00080
38
39 #define APP_BG_CATEGORY_USER_DISABLE_FALSE_STR          "enable"
40 #define APP_BG_CATEGORY_USER_DISABLE_TRUE_STR           "disable"
41 #define APP_BG_CATEGORY_MEDIA_STR                       "media"
42 #define APP_BG_CATEGORY_DOWNLOAD_STR                    "download"
43 #define APP_BG_CATEGORY_BGNETWORK_STR                   "background-network"
44 #define APP_BG_CATEGORY_LOCATION_STR                    "location"
45 #define APP_BG_CATEGORY_SENSOR_STR                      "sensor"
46 #define APP_BG_CATEGORY_IOTCOMM_STR                     "iot-communication"
47 #define APP_BG_CATEGORY_SYSTEM                          "system"
48
49 /* Integer property for support-mode */
50 #define APP_SUPPORT_MODE_ULTRA_POWER_SAVING_VAL         0x00001
51 #define APP_SUPPORT_MODE_COOL_DOWN_VAL                          0x00002
52 #define APP_SUPPORT_MODE_SCREEN_READER_VAL                      0x00004
53
54 /* String property for support-mode */
55 #define APP_SUPPORT_MODE_ULTRA_POWER_SAVING_STR         "ultra-power-saving"
56 #define APP_SUPPORT_MODE_COOL_DOWN_STR          "cool-down"
57 #define APP_SUPPORT_MODE_SCREEN_READER_STR              "screen-reader"
58
59 /**
60  * @brief A type to retrieve uid information from the manifest handle
61  */
62 typedef struct {
63         uid_t uid;
64 } pkgmgrinfo_uidinfo_t;
65
66 /**
67  * @brief A handle to insert certificate information
68  */
69 typedef void *pkgmgrinfo_instcertinfo_h;
70
71 /**
72  * @brief Certificate Types to be used for setting information
73  */
74 typedef enum {
75         PMINFO_SET_AUTHOR_ROOT_CERT = 0,                /**< Author Root Certificate*/
76         PMINFO_SET_AUTHOR_INTERMEDIATE_CERT = 1,                /**< Author Intermediate Certificate*/
77         PMINFO_SET_AUTHOR_SIGNER_CERT = 2,              /**< Author Signer Certificate*/
78         PMINFO_SET_DISTRIBUTOR_ROOT_CERT = 3,           /**< Distributor Root Certificate*/
79         PMINFO_SET_DISTRIBUTOR_INTERMEDIATE_CERT = 4,           /**< Distributor Intermediate Certificate*/
80         PMINFO_SET_DISTRIBUTOR_SIGNER_CERT = 5,         /**< Distributor Signer Certificate*/
81         PMINFO_SET_DISTRIBUTOR2_ROOT_CERT = 6,          /**< End Entity Root Certificate*/
82         PMINFO_SET_DISTRIBUTOR2_INTERMEDIATE_CERT = 7,          /**< End Entity Intermediate Certificate*/
83         PMINFO_SET_DISTRIBUTOR2_SIGNER_CERT = 8,                /**< End Entity Signer Certificate*/
84 } pkgmgrinfo_instcert_type;
85
86 typedef enum {
87         PMINFO_CERT_COMPARE_MATCH,
88         PMINFO_CERT_COMPARE_MISMATCH,
89         PMINFO_CERT_COMPARE_LHS_NO_CERT,
90         PMINFO_CERT_COMPARE_RHS_NO_CERT,
91         PMINFO_CERT_COMPARE_BOTH_NO_CERT,
92         PMINFO_CERT_COMPARE_ERROR,
93 } pkgmgrinfo_cert_compare_result_type_e;
94
95 typedef enum {
96         PMINFO_APPINFO_GET_BASICINFO = 0x0001,
97         PMINFO_APPINFO_GET_LABEL = 0x0002,
98         PMINFO_APPINFO_GET_ICON = 0x0004,
99         PMINFO_APPINFO_GET_CATEGORY = 0x0008,
100         PMINFO_APPINFO_GET_APP_CONTROL = 0x0010,
101         PMINFO_APPINFO_GET_METADATA = 0x0020,
102         PMINFO_APPINFO_GET_SPLASH_SCREEN = 0x0040,
103         PMINFO_APPINFO_GET_ALL = 0x007F
104 } pkgmgrinfo_appinfo_get_option;
105
106 typedef enum {
107         PMINFO_PKGINFO_GET_BASICINFO = 0x0001,
108         PMINFO_PKGINFO_GET_LABEL = 0x0002,
109         PMINFO_PKGINFO_GET_ICON = 0x0004,
110         PMINFO_PKGINFO_GET_AUTHOR = 0x0008,
111         PMINFO_PKGINFO_GET_DESCRIPTION = 0x0010,
112         PMINFO_PKGINFO_GET_PRIVILEGE = 0x0020,
113         PMINFO_PKGINFO_GET_APPDEFINED_PRIVILEGE = 0x0040,
114         PMINFO_PKGINFO_GET_DEPENDENCY = 0x0080,
115         PMINFO_PKGINFO_GET_ALL = 0x00FF
116 } pkgmgrinfo_pkginfo_get_option;
117
118 /**
119  * @brief API return values
120  */
121 enum {
122         PMINFO_R_ENOENT = -3,           /**< No result */
123         PMINFO_R_EINVAL = -2,           /**< Invalid argument */
124         PMINFO_R_ERROR = -1,            /**< General error */
125         PMINFO_R_OK = 0                 /**< General success */
126 };
127
128 /**
129  * @brief Value to be used when filtering based on install location
130  */
131 #define PMINFO_PKGINFO_INSTALL_LOCATION_AUTO            "LOCATION_AUTO"
132
133 /**
134  * @brief Value to be used when filtering based on install location
135  */
136 #define PMINFO_PKGINFO_INSTALL_LOCATION_INTERNAL        "LOCATION_INTERNAL"
137
138 /**
139  * @brief Value to be used when filtering based on install location
140  */
141 #define PMINFO_PKGINFO_INSTALL_LOCATION_EXTERNAL        "LOCATION_EXTERNAL"
142
143 /**
144  * @brief Value to be used when get/set update information
145  */
146 #define PMINFO_UPDATEINFO_TYPE_FORCE    "force"
147
148 /**
149  * @brief Value to be used when get/set update information
150  */
151 #define PMINFO_UPDATEINFO_TYPE_OPTIONAL "optional"
152
153 /**
154  * @brief Value to be used when get/set update information
155  */
156 #define PMINFO_UPDATEINFO_TYPE_NONE     "none"
157
158 typedef enum {
159         PMINFO_UPDATEINFO_NONE = 0,             /**<No update info exists*/
160         PMINFO_UPDATEINFO_FORCE,                /**<Don't launch application if it's not updated*/
161         PMINFO_UPDATEINFO_OPTIONAL              /**<Update exists but not force user to update it*/
162 } pkgmgrinfo_updateinfo_update_type;
163
164 typedef enum {
165         PMINFO_HWACCELERATION_OFF = 0,          /**< Don't use hardware acceleration*/
166         PMINFO_HWACCELERATION_ON = 1,           /**< Use hardware acceleration*/
167         PMINFO_HWACCELERATION_DEFAULT = 2               /**< Follow system setting for hardware acceleration */
168 } pkgmgrinfo_app_hwacceleration;
169
170 typedef enum {
171         PMINFO_SCREENREADER_OFF = 0,            /**< Don't use screen reader*/
172         PMINFO_SCREENREADER_ON = 1,             /**< Use screen reader*/
173         PMINFO_SCREENREADER_USE_SYSTEM_SETTING = 2              /**< Follow system setting for screen reader */
174 } pkgmgrinfo_app_screenreader;
175
176 typedef enum {
177         PMINFO_RECENTIMAGE_USE_ICON = 0,                /**<Use icon for recent image*/
178         PMINFO_RECENTIMAGE_USE_CAPTURE = 1,             /**< Use capture for recent image*/
179         PMINFO_RECENTIMAGE_USE_NOTHING = 2              /**< Don't use recent image */
180 } pkgmgrinfo_app_recentimage;
181
182 /**
183  * @brief A handle to get package information
184  */
185 typedef void *pkgmgrinfo_pkginfo_h;
186
187 /**
188  * @brief A handle to get application information
189  */
190 typedef void *pkgmgrinfo_appinfo_h;
191
192 /**
193  * @brief A handle to get certificate information
194  */
195 typedef void *pkgmgrinfo_certinfo_h;
196
197 /**
198  * @brief A handle to filter package information
199  */
200 typedef void *pkgmgrinfo_pkginfo_filter_h;
201
202 /**
203  * @brief A handle to get/set package update information
204  */
205 typedef void *pkgmgrinfo_updateinfo_h;
206
207 /**
208  * @brief A handle to filter application information
209  */
210 typedef void *pkgmgrinfo_appinfo_filter_h;
211
212 /**
213  * @brief A handle to filter application metadata  information
214  */
215 typedef void *pkgmgrinfo_appinfo_metadata_filter_h;
216
217 /**
218  * @brief A handle to get appcontrol information
219  */
220 typedef void *pkgmgrinfo_appcontrol_h;
221
222 /**
223  * @brief A handle to get package archive information
224  */
225 typedef void *pkgmgrinfo_archiveinfo_h;
226
227 /**
228  * @brief A handle to get component information
229  */
230 typedef void *pkgmgrinfo_compinfo_h;
231
232 /**
233  * @brief type definition.
234  */
235 typedef void pkgmgrinfo_client;
236
237 /**
238  * @fn int (*pkgmgrinfo_foreach_updateinfo_cb) (const pkgmgrinfo_updateinfo_h handle, void *user_data)
239  *
240  * @brief Specifies the type of function passed to pkgmgrinfo_updateinfo_foreach_updateinfo()
241  *
242  * @param[in] handle the package update info handle
243  * @param[in] user_data user data passed to pkgmgrinfo_foreach_pkg_update info()
244  *
245  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
246  *
247  * @see  pkgmgrinfo_updateinfo_foreach_updateinfo()
248  */
249 typedef int (*pkgmgrinfo_foreach_updateinfo_cb) (const pkgmgrinfo_updateinfo_h handle,
250                                                         void *user_data);
251
252 /**
253  * @fn int (*pkgmgrinfo_pkg_list_cb) (const pkgmgrinfo_pkginfo_h handle, void *user_data)
254  *
255  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
256  *
257  * @param[in] handle the pkginfo handle
258  * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
259  *
260  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
261  *
262  * @see  pkgmgrinfo_pkginfo_get_list()
263  * @see  pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
264  */
265 typedef int (*pkgmgrinfo_pkg_list_cb) (const pkgmgrinfo_pkginfo_h handle,
266                                                         void *user_data);
267
268 /**
269  * @fn int (*pkgmgrinfo_app_list_cb) (const pkgmgrinfo_appinfo_h handle, void *user_data)
270  *
271  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
272  *
273  * @param[in] handle the appinfo handle
274  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
275  *
276  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
277  *
278  * @see  pkgmgrinfo_appinfo_get_list()
279  * @see  pkgmgrinfo_appinfo_filter_foreach_appinfo()
280  * @see  pkgmgrinfo_appinfo_metadata_filter_foreach()
281  */
282 typedef int (*pkgmgrinfo_app_list_cb) (const pkgmgrinfo_appinfo_h handle,
283                                                         void *user_data);
284
285 /**
286  * @fn int (*pkgmgrinfo_app_category_list_cb) (const char *category_name, void *user_data)
287  *
288  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
289  *
290  * @param[in] category_name the name of the category
291  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
292  *
293  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
294  *
295  * @see  pkgmgrinfo_appinfo_foreach_category()
296  */
297 typedef int (*pkgmgrinfo_app_category_list_cb) (const char *category_name,
298                                                         void *user_data);
299
300 /**
301  * @fn int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name, void *user_data)
302  *
303  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_privilege()
304  *
305  * @param[in] privilege_name the name of the privilege
306  * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_privilege()
307  *
308  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
309  *
310  * @see  pkgmgrinfo_pkginfo_foreach_privilege()
311  */
312 typedef int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name,
313                                                         void *user_data);
314
315 /**
316  * @fn int (*pkgmgrinfo_pkg_appdefined_privilege_list_cb) (const char *privilege_name, const char *license_path, void *user_data)
317  *
318  * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
319  *
320  * @param[in] privilege_name the name of the privilege
321  * @param[in] license_path the path of the license
322  * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
323  *
324  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
325  *
326  * @see  pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
327  */
328 typedef int (*pkgmgrinfo_pkg_appdefined_privilege_list_cb) (const char *privilege_name,
329                                                         const char *license_path,
330                                                         void *user_data);
331 /**
332  * @fn int (*pkgmgrinfo_pkg_dependency_list_cb) (const char *pkgid, const char *type, const char *required_version, void *user_data)
333  *
334  * @brief Specifies the dependency info of given package passed to pkgmgrinfo_pkginfo_foreach_dependency() or pkgmgrinfo_pkginfo_foreach_required_by()
335  *
336  * @param[in] pkgid the pkgid which has dependency with given package
337  * @param[in] type type of dependency
338  * @param[in] required_version required version of dependency
339  * @param[in] user_data user data passed
340  *
341  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
342  *
343  * @see  pkgmgrinfo_pkginfo_foreach_dependency()
344  * @see  pkgmgrinfo_pkginfo_foreach_required_by()
345  */
346 typedef int (*pkgmgrinfo_pkg_dependency_list_cb) (const char *pkgid,
347                 const char *type, const char *required_version,
348                 void *user_data);
349
350 /**
351  * @fn int (*pkgmgrinfo_plugin_list_cb) (const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name, void *user_data);
352  *
353  * @brief Specifies the type of function passed to pkgmgrinfo_plugininfo_foreach_plugininfo()
354  *
355  * @param[in] pkgid the name of the package
356  * @param[in] appid the name of the application
357  * @param[in] plugin_type the type of the executed plugin
358  * @param[in] plugin_name the name of the executed plugin
359  * @param[in] user_data user data passed to pkgmgrinfo_plugininfo_foreach_plugininfo()
360  *
361  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
362  *
363  * @see  pkgmgrinfo_plugininfo_foreach_plugininfo()
364  */
365 typedef int (*pkgmgrinfo_plugin_list_cb) (const char *pkgid, const char *appid,
366                 const char *plugin_type, const char *plugin_name,
367                 void *user_data);
368
369 /**
370  * @fn int (*pkgmgrinfo_app_metadata_list_cb) (const char *metadata_key, const char *metadata_value, void *user_data)
371  *
372  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_metadata()
373  *
374  * @param[in] metadata_name the name of the metadata
375  * @param[in] metadata_value the value of the metadata
376  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_metadata()
377  *
378  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
379  *
380  * @see  pkgmgrinfo_appinfo_foreach_metadata()
381  */
382 typedef int (*pkgmgrinfo_app_metadata_list_cb) (const char *metadata_key,
383                                                         const char *metadata_value, void *user_data);
384
385 /**
386  * @fn int (*pkgmgrinfo_app_control_list_cb) (pkgmgrinfo_appcontrol_h handle, void *user_data)
387  *
388  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol()
389  *
390  * @param[in] handle the appcontrol handle to be used to get operation, uri and mime info
391  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_appcontrol()
392  *
393  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
394  *
395  * @see  pkgmgrinfo_appinfo_foreach_appcontrol()
396  */
397 typedef int (*pkgmgrinfo_app_control_list_cb) (const char *operation, const char *uri, const char *mime,
398                                                         void *user_data);
399 /**
400  * @fn int (*pkgmgrinfo_app_control_list_cb_v2) (const char *operation, const char *uri, const char *mime, const char *id, void *user_data)
401  *
402  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol_info()
403  *
404  * @param[in] operation The operation of the app-control
405  * @param[in] uri       The URI of the app-control
406  * @param[in] mime      The MIME-Type of the app-control
407  * @param[in] id        The ID of the app-control
408  * @param[in] user_data The user data passed from pkgmgrinfo_appinfo_foreach_appcontrol_v2()
409  *
410  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
411  *
412  * @see  pkgmgrinfo_appinfo_foreach_appcontrol_v2()
413  */
414 typedef int (*pkgmgrinfo_app_control_list_cb_v2) (const char *operation,
415                 const char *uri, const char *mime, const char *id,
416                 void *user_data);
417
418 /**
419  * @fn int (*pkgmgrinfo_app_background_category_list_cb) (const char *category_name, void *user_data)
420  *
421  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_background_category()
422  *
423  * @param[in] category_name retrieved background category name
424  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_background_category
425  *
426  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
427  *
428  * @see  pkgmgrinfo_appinfo_foreach_background_category()
429  */
430 typedef int (*pkgmgrinfo_app_background_category_list_cb) (const char *category_name, void *user_data);
431
432 /**
433  * @fn int (*pkgmgrinfo_app_splash_screen_list_cb)(const char *src,
434  *              const char *type, const char *orientation,
435  *              const char *indicatordisplay, const char *color_depth,
436  *              void *user_data);
437  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_splash_screen()
438  *
439  * @param[in] src the source of the splashscreen
440  * @param[in] type the type of the splashscreen
441  * @param[in] orientation the orientation of the splashscreen
442  * @param[in] indicatordisplay the indicator-display of the splashscreen
443  * @param[in] operation the app-control operation of the splashscreen
444  * @param[in] color_depth the color-depth of the splashscreen
445  * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_splash_screen()
446  *
447  * @return 0 if success, negative value(<0) if fail, Callback is not called if return value is negative.\n
448  *
449  * @see pkgmgrinfo_appinfo_foreach_splash_screen()
450  */
451 typedef int (*pkgmgrinfo_app_splash_screen_list_cb)(const char *src,
452                 const char *type, const char *orientation,
453                 const char *indicatordisplay, const char *operation,
454                 const char *color_depth, void *user_data);
455
456 /**
457  * @fn int (*pkgmgrinfo_component_info_list_cb)(
458  *              const pkgmgrinfo_compinfo_h handle, void *user_data);
459  * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_component_info()
460  *
461  * @param[in]   handle          The handle of the component info
462  * @param[in]   user_data       The user data passed from pkgmgrinfo_appinfo_foreach_component_info()
463  *
464  * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
465  *
466  * @see pkgmgrinfo_appinfo_foreach_component_info()
467  */
468 typedef int (*pkgmgrinfo_component_info_list_cb)(
469                 const pkgmgrinfo_compinfo_h handle, void *user_data);
470
471 /**
472  * @brief Install Location Types
473  */
474 typedef enum {
475         PMINFO_INSTALL_LOCATION_AUTO = 0,               /**< Auto*/
476         PMINFO_INSTALL_LOCATION_INTERNAL_ONLY,          /**< Internal Installation*/
477         PMINFO_INSTALL_LOCATION_PREFER_EXTERNAL,                /**< External Installation*/
478 } pkgmgrinfo_install_location;
479
480 /**
481  * @brief Application Component Types
482  */
483 typedef enum {
484         PMINFO_ALL_APP = 0,             /**< All Application*/
485         PMINFO_UI_APP,                  /**< UI Application*/
486         PMINFO_SVC_APP,                 /**< Service Application*/
487         PMINFO_WIDGET_APP,              /**< Widget Application*/
488         PMINFO_WATCH_APP,               /**< Watch Application*/
489         PMINFO_COMPONENT_BASED_APP,     /**< Component-based Application (Since 5.5)*/
490 } pkgmgrinfo_app_component;
491
492 /**
493  * @brief Application Storage Types
494  */
495 typedef enum {
496         PMINFO_INTERNAL_STORAGE = 0,            /**< Internal Storage*/
497         PMINFO_EXTERNAL_STORAGE = 1,            /**< External Storage*/
498         PMINFO_EXTENDED_STORAGE = 2,            /**< Extended Storage*/
499 } pkgmgrinfo_installed_storage;
500
501 /**
502  * @brief Certificate Types to be used for getting information
503  */
504 typedef enum {
505         PMINFO_AUTHOR_ROOT_CERT = 0,            /**< Author Root Certificate*/
506         PMINFO_AUTHOR_INTERMEDIATE_CERT = 1,            /**< Author Intermediate Certificate*/
507         PMINFO_AUTHOR_SIGNER_CERT = 2,          /**< Author Signer Certificate*/
508         PMINFO_DISTRIBUTOR_ROOT_CERT = 3,               /**< Distributor Root Certificate*/
509         PMINFO_DISTRIBUTOR_INTERMEDIATE_CERT = 4,               /**< Distributor Intermediate Certificate*/
510         PMINFO_DISTRIBUTOR_SIGNER_CERT = 5,             /**< Distributor Signer Certificate*/
511         PMINFO_DISTRIBUTOR2_ROOT_CERT = 6,              /**< End Entity Root Certificate*/
512         PMINFO_DISTRIBUTOR2_INTERMEDIATE_CERT = 7,              /**< End Entity Intermediate Certificate*/
513         PMINFO_DISTRIBUTOR2_SIGNER_CERT = 8,            /**< End Entity Signer Certificate*/
514 } pkgmgrinfo_cert_type;
515
516 /**
517  * @brief version comparison Types
518  */
519 typedef enum {
520         PMINFO_VERSION_OLD = -1,
521         PMINFO_VERSION_SAME,
522         PMINFO_VERSION_NEW,
523 } pkgmgrinfo_version_compare_type;
524
525 /**
526  * @brief Install Location Types to be used when setting data in DB
527  */
528 typedef enum {
529         INSTALL_INTERNAL = 0,           /**< Internal Installation*/
530         INSTALL_EXTERNAL,               /**< External Installation*/
531         INSTALL_EXTENDED,               /**< Extended Installation*/
532 } INSTALL_LOCATION;
533
534 /**
535  * @brief permission Types
536  */
537 typedef enum {
538         PMINFO_PERMISSION_NORMAL = 0,           /**< permission normal*/
539         PMINFO_PERMISSION_SIGNATURE,            /**< permission type is signature*/
540         PMINFO_PERMISSION_PRIVILEGE,            /**< permission type is privilege*/
541 } pkgmgrinfo_permission_type;
542
543 #endif