summaryrefslogtreecommitdiffstats
path: root/modules/monitoring/library/Monitoring/Command/Object/AcknowledgeProblemCommand.php
blob: 2001e78759497b14314452ac8056b06189978f1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php
/* Icinga Web 2 | (c) 2014 Icinga Development Team | GPLv2+ */

namespace Icinga\Module\Monitoring\Command\Object;

/**
 * Acknowledge a host or service problem
 */
class AcknowledgeProblemCommand extends WithCommentCommand
{
    /**
     * (non-PHPDoc)
     * @see \Icinga\Module\Monitoring\Command\Object\ObjectCommand::$allowedObjects For the property documentation.
     */
    protected $allowedObjects = array(
        self::TYPE_HOST,
        self::TYPE_SERVICE
    );

    /**
     * Whether the acknowledgement is sticky
     *
     * Sticky acknowledgements remain until the host or service recovers. Non-sticky acknowledgements will be
     * automatically removed when the host or service state changes.
     *
     * @var bool
     */
    protected $sticky = false;

    /**
     * Whether to send a notification about the acknowledgement

     * @var bool
     */
    protected $notify = false;

    /**
     * Whether the comment associated with the acknowledgement is persistent
     *
     * Persistent comments are not lost the next time the monitoring host restarts.
     *
     * @var bool
     */
    protected $persistent = false;

    /**
     * Optional time when the acknowledgement should expire
     *
     * @var int|null
     */
    protected $expireTime;

    /**
     * Set whether the acknowledgement is sticky
     *
     * @param   bool $sticky
     *
     * @return  $this
     */
    public function setSticky($sticky = true)
    {
        $this->sticky = (bool) $sticky;
        return $this;
    }

    /**
     * Is the acknowledgement sticky?
     *
     * @return bool
     */
    public function getSticky()
    {
        return $this->sticky;
    }

    /**
     * Set whether to send a notification about the acknowledgement
     *
     * @param   bool $notify
     *
     * @return  $this
     */
    public function setNotify($notify = true)
    {
        $this->notify = (bool) $notify;
        return $this;
    }

    /**
     * Get whether to send a notification about the acknowledgement
     *
     * @return bool
     */
    public function getNotify()
    {
        return $this->notify;
    }

    /**
     * Set whether the comment associated with the acknowledgement is persistent
     *
     * @param   bool $persistent
     *
     * @return  $this
     */
    public function setPersistent($persistent = true)
    {
        $this->persistent = (bool) $persistent;
        return $this;
    }

    /**
     * Is the comment associated with the acknowledgement is persistent?
     *
     * @return bool
     */
    public function getPersistent()
    {
        return $this->persistent;
    }

    /**
     * Set the time when the acknowledgement should expire
     *
     * @param   int $expireTime
     *
     * @return  $this
     */
    public function setExpireTime($expireTime)
    {
        $this->expireTime = (int) $expireTime;
        return $this;
    }

    /**
     * Get the time when the acknowledgement should expire
     *
     * @return int|null
     */
    public function getExpireTime()
    {
        return $this->expireTime;
    }
}