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: