Scalr\Service\Azure\Services\Compute\Api\VirtualMachines::saveImage PHP Method

saveImage() public method

Save an image that is associated with a generalized virtual machine.
public saveImage ( string $subscriptionId, string $resourceGroup, string $name, array | Scalr\Service\Azure\Services\Compute\DataType\SaveImage $requestData ) : string
$subscriptionId string Subscription Id
$resourceGroup string Name of Resource Group
$name string Name of the Virtual Machine
$requestData array | Scalr\Service\Azure\Services\Compute\DataType\SaveImage Request data
return string Returns image uri
    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;
    }