1/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
2
3#include "remote/i2-remote.hpp"
4#include "base/configobject.hpp"
5#include "base/application.hpp"
6#include "base/tlsutility.hpp"
7
8library remote;
9
10namespace icinga
11{
12
13class ApiListener : ConfigObject
14{
15	activation_priority 50;
16
17	[config, deprecated] String cert_path;
18	[config, deprecated] String key_path;
19	[config, deprecated] String ca_path;
20	[config] String crl_path;
21	[config] String cipher_list {
22		default {{{ return DEFAULT_TLS_CIPHERS; }}}
23	};
24	[config] String tls_protocolmin {
25		default {{{ return DEFAULT_TLS_PROTOCOLMIN; }}}
26	};
27
28	[config] String bind_host {
29		default {{{ return Configuration::ApiBindHost; }}}
30	};
31	[config] String bind_port {
32		default {{{ return Configuration::ApiBindPort; }}}
33	};
34
35	[config] bool accept_config;
36	[config] bool accept_commands;
37	[config] int max_anonymous_clients {
38		default {{{ return -1; }}}
39	};
40
41	[config, deprecated] double tls_handshake_timeout {
42		get;
43		set;
44		default {{{ return Configuration::TlsHandshakeTimeout; }}}
45	};
46
47	[config] double connect_timeout {
48		default {{{ return DEFAULT_CONNECT_TIMEOUT; }}}
49	};
50
51	[config, no_user_view, no_user_modify] String ticket_salt;
52
53	[config] Array::Ptr access_control_allow_origin;
54	[config, deprecated] bool access_control_allow_credentials;
55	[config, deprecated] String access_control_allow_headers;
56	[config, deprecated] String access_control_allow_methods;
57
58
59	[state, no_user_modify] Timestamp log_message_timestamp;
60
61	[no_user_modify] String identity;
62
63	[state, no_user_modify] Dictionary::Ptr last_failed_zones_stage_validation;
64};
65
66}
67