/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */

#include "base/configobject.hpp"
#include "base/tlsutility.hpp"

library icingadb;

namespace icinga
{

class IcingaDB : ConfigObject
{
	activation_priority 100;

	[config, no_user_modify] String host {
		default {{{ return "127.0.0.1"; }}}
	};
	[config, no_user_modify] int port {
		default {{{ return 6380; }}}
	};
	[config, no_user_modify] String path;
	[config, no_user_modify] String username;
	[config, no_user_view, no_user_modify] String password;
	[config, no_user_modify] int db_index;

	[config, no_user_modify] bool enable_tls {
		default {{{ return false; }}}
	};

	[config, no_user_modify] bool insecure_noverify {
		default {{{ return false; }}}
	};

	[config, no_user_modify] String cert_path;
	[config, no_user_modify] String key_path;
	[config, no_user_modify] String ca_path;
	[config, no_user_modify] String crl_path;
	[config, no_user_modify] String cipher_list {
		default {{{ return DEFAULT_TLS_CIPHERS; }}}
	};
	[config, no_user_modify] String tls_protocolmin {
		default {{{ return DEFAULT_TLS_PROTOCOLMIN; }}}
	};

	[config, no_user_modify] double connect_timeout {
		default {{{ return DEFAULT_CONNECT_TIMEOUT; }}}
	};

	[no_storage] String environment_id {
			get;
	};

	[set_protected] double ongoing_dump_start {
		default {{{ return 0; }}}
	};
	[state, set_protected] double lastdump_end {
		default {{{ return 0; }}}
	};
	[state, set_protected] double lastdump_took {
		default {{{ return 0; }}}
	};
};

}
