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: