1: <?php
2: /**
3: * Copyright 2012-2014 Rackspace US, Inc.
4: *
5: * Licensed under the Apache License, Version 2.0 (the "License");
6: * you may not use this file except in compliance with the License.
7: * You may obtain a copy of the License at
8: *
9: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: namespace OpenCloud\Orchestration\Resource;
19:
20: use OpenCloud\Common\Resource\ReadOnlyResource;
21:
22: /**
23: * Class that represents a type of resource that can be managed by the Orchestration service.
24: * @see http://developer.openstack.org/api-ref-orchestration-v1.html#stack-resources
25: *
26: * @package OpenCloud\Orchestration\Resource
27: */
28: class ResourceType extends ReadOnlyResource
29: {
30: protected static $url_resource = 'resource_types';
31: protected static $json_name = '';
32: protected static $json_collection_name = 'resource_types';
33:
34: protected $resourceType;
35: protected $attributes;
36: protected $resourceTypeProperties; // Named so because the Base class has a $properties member.
37:
38: protected $aliases = array(
39: 'resource_type' => 'resourceType',
40: 'properties' => 'resourceTypeProperties'
41: );
42:
43: /**
44: * Returns the template representation for this resource type.
45: *
46: * @return String template representation
47: */
48: public function getTemplate()
49: {
50: $url = clone $this->getUrl();
51: $url->addPath('template');
52:
53: $response = $this->getClient()->get($url)->send();
54: return $response->getBody(true);
55: }
56:
57: protected function primaryKeyField()
58: {
59: return 'resourceType';
60: }
61: }
62: