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 92 93
<?php
namespace OpenCloud\Database\Resource;
use OpenCloud\Common\Lang;
use OpenCloud\Common\Exceptions;
use OpenCloud\Common\Resource\PersistentResource;
use OpenCloud\Database\Service;
class Backup extends PersistentResource
{
public $id;
public $name;
public $description;
public $created;
public $datastore;
public $updated;
public $instance;
public $instanceId;
public $locationRef;
protected static $json_name = 'backup';
protected static $url_resource = 'backups';
protected $createKeys = array(
'name',
'instanceId',
'description'
);
protected $associatedResources = array(
'instance' => 'Instance'
);
protected $aliases = array(
'instance_id' => 'instanceId'
);
public function __construct(Service $service, $info = null)
{
$this->instance = new \stdClass;
return parent::__construct($service, $info);
}
protected function createJson()
{
if (!isset($this->instanceId)) {
throw new Exceptions\BackupInstanceError(
Lang::translate('The `instanceId` attribute is required and must be a string')
);
}
if (!isset($this->name)) {
throw new Exceptions\BackupNameError(
Lang::translate('Backup name is required')
);
}
$out = [
'backup' => [
'name' => $this->name,
'instance' => $this->instanceId
]
];
if (isset($this->description)) {
$out['backup']['description'] = $this->description;
}
return (object) $out;
}
}