function eventSourceObjects(): array {
['source' => EVENT_SOURCE_TRIGGERS, 'object' => EVENT_OBJECT_TRIGGER],
['source' => EVENT_SOURCE_DISCOVERY, 'object' => EVENT_OBJECT_DHOST],
['source' => EVENT_SOURCE_DISCOVERY, 'object' => EVENT_OBJECT_DSERVICE],
['source' => EVENT_SOURCE_AUTOREGISTRATION, 'object' => EVENT_OBJECT_AUTOREGHOST],
['source' => EVENT_SOURCE_INTERNAL, 'object' => EVENT_OBJECT_TRIGGER],
['source' => EVENT_SOURCE_INTERNAL, 'object' => EVENT_OBJECT_ITEM],
['source' => EVENT_SOURCE_INTERNAL, 'object' => EVENT_OBJECT_LLDRULE],
['source' => EVENT_SOURCE_SERVICE, 'object' => EVENT_OBJECT_SERVICE]
function get_events_unacknowledged($db_element, $value_trigger = null, $value_event = null, $ack = false) {
$elements = ['hosts' => [], 'hosts_groups' => [], 'triggers' => []];
get_map_elements($db_element, $elements);
if (empty($elements['hosts_groups']) && empty($elements['hosts']) && empty($elements['triggers'])) {
'output' => ['triggerid'],
'limit' => CSettingsHelper::get(CSettingsHelper::SEARCH_LIMIT) + 1
if (!is_null($value_trigger)) {
$options['filter'] = ['value' => $value_trigger];
if (!empty($elements['hosts_groups'])) {
$options['groupids'] = array_unique($elements['hosts_groups']);
if (!empty($elements['hosts'])) {
$options['hostids'] = array_unique($elements['hosts']);
if (!empty($elements['triggers'])) {
$options['triggerids'] = array_unique($elements['triggers']);
$triggerids = API::Trigger()->get($options);
return API::Event()->get([
'source' => EVENT_SOURCE_TRIGGERS,
'object' => EVENT_OBJECT_TRIGGER,