1 /*
2 ** Zabbix
3 ** Copyright (C) 2001-2021 Zabbix SIA
4 **
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
9 **
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details.
14 **
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software
17 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 **/
19 
20 #ifndef ZABBIX_ZBXVAULT_H
21 #define ZABBIX_ZBXVAULT_H
22 
23 #include "common.h"
24 #include "zbxalgo.h"
25 
26 typedef struct
27 {
28 	char	*key;
29 	char	*value;
30 }
31 zbx_kv_t;
32 
33 zbx_hash_t	zbx_vault_kv_hash(const void *data);
34 int		zbx_vault_kv_compare(const void *d1, const void *d2);
35 void		zbx_vault_kv_clean(void *data);
36 
37 int	zbx_vault_init_token_from_env(char **error);
38 int	zbx_vault_init_db_credentials(char **error);
39 int	zbx_vault_kvs_get(const char *path, zbx_hashset_t *kvs, char **error);
40 int	zbx_vault_json_kvs_get(const char *path, const struct zbx_json_parse *jp_kvs_paths, zbx_hashset_t *kvs,
41 		char **error);
42 
43 #endif
44