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\Compute\Resource;
19
20 use OpenCloud\Common\PersistentObject;
21 use OpenCloud\Image\Resource\ImageInterface;
22
23 /**
24 * A collection of files for a specific operating system (OS) that you use to
25 * create or rebuild a server. Rackspace provides pre-built images. You can also
26 * create custom images from servers that you have launched. Custom images can
27 * be used for data backups or as "gold" images for additional servers.
28 *
29 * @note In the future, this may be abstracted to access Glance (the OpenStack
30 * image store) directly, but it is currently not available to Rackspace
31 * customers, so we're using the /images resource on the servers API endpoint.
32 */
33
34 class Image extends PersistentObject implements ImageInterface
35 {
36 public $status;
37 public $updated;
38 public $links;
39 public $minDisk;
40 public $id;
41 public $name;
42 public $created;
43 public $progress;
44 public $minRam;
45 public $metadata;
46 public $server;
47
48 protected static $json_name = 'image';
49 protected static $url_resource = 'images';
50
51 public function setId($id)
52 {
53 $this->id = $id;
54 }
55
56 public function getId()
57 {
58 return $this->id;
59 }
60
61 public function create($params = array())
62 {
63 return $this->noCreate();
64 }
65
66 public function update($params = array())
67 {
68 return $this->noUpdate();
69 }
70 }
71