public function saveImage($subscriptionId, $resourceGroup, $name, $requestData)
{
if (!$requestData instanceof SaveImage) {
$requestData = SaveImage::initArray($requestData);
}
$path = '/subscriptions/' . $subscriptionId . '/resourceGroups/' . $resourceGroup . ComputeService::ENDPOINT_MICROSOFT_COMPUTE . '/virtualMachines/' . $name . '/capture';
$request = $this->getClient()->prepareRequest($path, 'POST', $this->getApiVersion(), $this->getServiceUrl(), [], $requestData->toArray());
$response = $this->getClient()->call($request);
$response = $this->getClient()->waitFinishingProcess($response, $this->getServiceUrl(), $this->getApiVersion());
$imageUri = null;
if (!$response->hasError()) {
$resource = $response->getResult();
if (!empty($resource['resources'])) {
$vmData = VirtualMachineData::initArray(reset($resource['resources']));
/* @var $vmData VirtualMachineData */
if (!empty($vmData->properties->storageProfile->osDisk->image)) {
$imageUri = $vmData->properties->storageProfile->osDisk->image['uri'];
}
}
}
return $imageUri;
}