Overview

Namespaces

  • OpenCloud
    • Autoscale
      • Resource
    • CloudMonitoring
      • Exception
      • Resource
    • Common
      • Collection
      • Constants
      • Exceptions
      • Http
        • Message
      • Log
      • Resource
      • Service
    • Compute
      • Constants
      • Exception
      • Resource
    • Database
      • Resource
    • DNS
      • Collection
      • Resource
    • Identity
      • Constants
      • Resource
    • Image
      • Enum
      • Resource
        • JsonPatch
        • Schema
    • LoadBalancer
      • Enum
      • Resource
    • ObjectStore
      • Constants
      • Exception
      • Resource
      • Upload
    • Orchestration
    • Queues
      • Exception
      • Resource
    • Volume
      • Resource
  • PHP

Classes

  • Snapshot
  • Volume
  • VolumeType
  • Overview
  • Namespace
  • Class
  • Tree
  • Download
 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\Volume\Resource;
19: 
20: use OpenCloud\Common\Resource\PersistentResource;
21: 
22: /**
23:  * The Snapshot class represents a single block storage snapshot
24:  */
25: class Snapshot extends PersistentResource
26: {
27:     public $id;
28:     public $display_name;
29:     public $display_description;
30:     public $volume_id;
31:     public $status;
32:     public $size;
33:     public $created_at;
34:     public $metadata;
35: 
36:     protected $force = false;
37: 
38:     protected static $json_name = 'snapshot';
39:     protected static $url_resource = 'snapshots';
40: 
41:     protected $createKeys = array(
42:         'display_name',
43:         'display_description',
44:         'volume_id',
45:         'force'
46:     );
47: 
48:     /**
49:      * Rename either the `display_description` or the `display_name` properties
50:      *
51:      * @param array $params
52:      * @return \Guzzle\Http\Message\Response
53:      * @throws \InvalidArgumentException
54:      */
55:     public function rename(array $params = array())
56:     {
57:         $data = array();
58: 
59:         $keys = array('display_description' => true, 'display_name' => true);
60: 
61:         foreach ($params as $key => $value) {
62:             if (isset($keys[$key])) {
63:                 $data[$key] = $value;
64:             } else {
65:                 throw new \InvalidArgumentException(sprintf(
66:                     'You cannot update the %s snapshot property. Valid keys are: %s',
67:                     $key, implode($keys, ',')
68:                 ));
69:             }
70:         }
71: 
72:         $json = json_encode(array(
73:            'snapshot' => $data
74:         ));
75: 
76:         return $this->getClient()
77:             ->put($this->getUrl(), self::getJsonHeader(), $json)
78:             ->send();
79:     }
80: 
81:     public function update($params = array())
82:     {
83:         return $this->noUpdate();
84:     }
85: 
86:     public function name()
87:     {
88:         return $this->display_name;
89:     }
90: }
91: 
PHP OpenCloud API API documentation generated by ApiGen 2.8.0