1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
<?php
namespace OpenCloud\Volume\Resource;
use OpenCloud\Common\Resource\PersistentResource;
class Snapshot extends PersistentResource
{
public $id;
public $display_name;
public $display_description;
public $volume_id;
public $status;
public $size;
public $created_at;
public $metadata;
protected $force = false;
protected static $json_name = 'snapshot';
protected static $url_resource = 'snapshots';
protected $createKeys = array(
'display_name',
'display_description',
'volume_id',
'force'
);
public function rename(array $params = array())
{
$data = array();
$keys = array('display_description' => true, 'display_name' => true);
foreach ($params as $key => $value) {
if (isset($keys[$key])) {
$data[$key] = $value;
} else {
throw new \InvalidArgumentException(sprintf(
'You cannot update the %s snapshot property. Valid keys are: %s',
$key, implode($keys, ',')
));
}
}
$json = json_encode(array(
'snapshot' => $data
));
return $this->getClient()
->put($this->getUrl(), self::getJsonHeader(), $json)
->send();
}
public function update($params = array())
{
return $this->noUpdate();
}
public function name()
{
return $this->display_name;
}
}