1 <?php
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17
18 namespace OpenCloud\CloudMonitoring\Resource;
19
20 use OpenCloud\CloudMonitoring\Exception;
21
22 23 24
25 class AgentTarget extends ReadOnlyResource
26 {
27 private $type = 'agent.filesystem';
28
29 protected static $json_name = 'targets';
30 protected static $json_collection_name = 'targets';
31 protected static $url_resource = 'targets';
32
33 protected $allowedTypes = array(
34 'agent.filesystem',
35 'agent.memory',
36 'agent.load_average',
37 'agent.cpu',
38 'agent.disk',
39 'agent.network',
40 'agent.plugin'
41 );
42
43 public function getUrl($path = null, array $query = array())
44 {
45 $path = "agent/check_types/{$this->type}/{$this->resourceName()}";
46
47 return $this->getParent()->getUrl($path);
48 }
49
50 public function setType($type)
51 {
52 if (!in_array($type, $this->allowedTypes)) {
53 throw new Exception\AgentException(sprintf(
54 'Incorrect target type. Please specify one of the following: %s',
55 implode(', ', $this->allowedTypes)
56 ));
57 }
58
59 $this->type = $type;
60 }
61
62 public function getType()
63 {
64 return $this->type;
65 }
66 }
67