// SPDX-License-Identifier: GPL-3.0-or-later namespace Icinga\Module\Icingadb\Command\Object; /** * Submit a passive check result for a host or service */ class ProcessCheckResultCommand extends ObjectsCommand { /** * Host up */ public const HOST_UP = 0; /** * Host down */ public const HOST_DOWN = 1; /** * Service ok */ public const SERVICE_OK = 0; /** * Service warning */ public const SERVICE_WARNING = 1; /** * Service critical */ public const SERVICE_CRITICAL = 2; /** * Service unknown */ public const SERVICE_UNKNOWN = 3; /** * Status code of the host or service check result * * @var int */ protected $status; /** * Text output of the host or service check result * * @var string */ protected $output; /** * Optional performance data of the host or service check result * * @var string */ protected $performanceData; /** * Set the status code of the host or service check result * * @param int $status * * @return $this */ public function setStatus(int $status): self { $this->status = $status; return $this; } /** * Get the status code of the host or service check result * * @return int */ public function getStatus(): int { if ($this->status === null) { throw new \LogicException( 'You are accessing an unset property. Please make sure to set it beforehand.' ); } return $this->status; } /** * Set the text output of the host or service check result * * @param string $output * * @return $this */ public function setOutput(string $output): self { $this->output = $output; return $this; } /** * Get the text output of the host or service check result * * @return ?string */ public function getOutput() { return $this->output; } /** * Set the performance data of the host or service check result * * @param ?string $performanceData * * @return $this */ public function setPerformanceData(?string $performanceData = null): self { $this->performanceData = $performanceData; return $this; } /** * Get the performance data of the host or service check result * * @return ?string */ public function getPerformanceData() { return $this->performanceData; } }