1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
17:
18: namespace OpenCloud\Orchestration\Resource;
19:
20: use OpenCloud\Common\Http\Message\Formatter;
21: use OpenCloud\Common\Resource\ReadOnlyResource;
22:
23: 24: 25: 26: 27: 28:
29: class Resource extends ReadOnlyResource
30: {
31: protected static $url_resource = 'resources';
32: protected static $json_name = 'resource';
33:
34: protected $name;
35: protected $description;
36: protected $status;
37: protected $statusReason;
38: protected $logicalId;
39: protected $physicalId;
40: protected $requiredBy;
41: protected $updatedTime;
42: protected $type;
43: protected $links;
44:
45: protected $aliases = array(
46: 'resource_name' => 'name',
47: 'resource_status' => 'status',
48: 'resource_status_reason' => 'statusReason',
49: 'logical_resource_id' => 'logicalId',
50: 'physical_resource_id' => 'physicalId',
51: 'required_by' => 'requiredBy',
52: 'updated_time' => 'updatedTime',
53: 'resource_type' => 'type'
54: );
55:
56: public function primaryKeyField()
57: {
58: return 'name';
59: }
60:
61: 62: 63: 64: 65:
66: public function getMetadata()
67: {
68: $url = clone $this->getUrl();
69: $url->addPath('metadata');
70:
71: $response = $this->getClient()->get($url)->send();
72: $json = Formatter::decode($response);
73:
74: return $json->metadata;
75: }
76:
77: 78: 79: 80: 81: 82:
83: public function listEvents(array $params = array())
84: {
85: $url = clone $this->getUrl();
86: $url->addPath(Event::resourceName())->setQuery($params);
87:
88: return $this->getService()->resourceList('Event', $url, $this);
89: }
90:
91: public function getEvent($id)
92: {
93: return $this->getService()->resource('Event', $id, $this);
94: }
95: }
96: