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:
28: private $type = 'agent.filesystem';
29:
30: protected static $json_name = 'targets';
31: protected static $json_collection_name = 'targets';
32: protected static $url_resource = 'targets';
33:
34: protected $allowedTypes = array(
35: 'agent.filesystem',
36: 'agent.memory',
37: 'agent.load_average',
38: 'agent.cpu',
39: 'agent.disk',
40: 'agent.network',
41: 'agent.plugin'
42: );
43:
44: public function getUrl($path = null, array $query = array())
45: {
46: $path = "agent/check_types/{$this->type}/{$this->resourceName()}";
47:
48: return $this->getParent()->getUrl($path);
49: }
50:
51: public function setType($type)
52: {
53: if (!in_array($type, $this->allowedTypes)) {
54: throw new Exception\AgentException(sprintf(
55: 'Incorrect target type. Please specify one of the following: %s',
56: implode(', ', $this->allowedTypes)
57: ));
58: }
59:
60: $this->type = $type;
61: }
62:
63: public function getType()
64: {
65: return $this->type;
66: }
67: }
68: