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

  • Flavor
  • Image
  • Network
  • Server
  • ServerMetadata
  • VolumeAttachment
  • 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\Compute\Resource;
19: 
20: use OpenCloud\Common\Exceptions;
21: use OpenCloud\Common\Lang;
22: use OpenCloud\Common\PersistentObject;
23: 
24: /**
25:  * The VolumeAttachment class represents a volume that is attached to a server.
26:  */
27: class VolumeAttachment extends PersistentObject
28: {
29: 
30:     public $id;
31:     public $device;
32:     public $serverId;
33:     public $volumeId;
34: 
35:     public static $json_name = 'volumeAttachment';
36:     public static $url_resource = 'os-volume_attachments';
37: 
38:     private $createKeys = array('volumeId', 'device');
39: 
40:     /**
41:      * updates are not permitted
42:      *
43:      * @throws OpenCloud\UpdateError always
44:      */
45:     public function update($params = array())
46:     {
47:         throw new Exceptions\UpdateError(Lang::translate('Updates are not permitted'));
48:     }
49: 
50:     /**
51:      * returns a readable name for the attachment
52:      *
53:      * Since there is no 'name' attribute, we'll hardcode something
54:      *
55:      * @api
56:      * @return string
57:      */
58:     public function name()
59:     {
60:         return sprintf('Attachment [%s]', $this->volumeId ? : 'N/A');
61:     }
62: 
63:     /**
64:      * returns the JSON object for Create()
65:      *
66:      * @return stdClass
67:      */
68:     protected function createJson()
69:     {
70:         $object = new \stdClass;
71: 
72:         foreach ($this->createKeys as $key) {
73:             if (isset($this->$key)) {
74:                 $object->$key = $this->$key;
75:             }
76:         }
77: 
78:         return (object) array(
79:             $this->jsonName() => $object
80:         );
81:     }
82: }
83: 
PHP OpenCloud API API documentation generated by ApiGen 2.8.0