Example #1
0
 /**
  * Create or update a virtual machine in a given subscription.
  * In the update scenario, these APIs will be specifically used for
  * detaching a data disk from a VM.
  *
  * @param string $subscriptionId    Subscription Id
  * @param string $resourceGroup     Name of Resource Group
  * @param array|CreateVirtualMachine|VirtualMachineData $requestData       Request data
  * @param bool   $validating        optional Validating
  * @return VirtualMachineData
  */
 public function create($subscriptionId, $resourceGroup, $requestData, $validating = false)
 {
     $result = null;
     if (!$requestData instanceof CreateVirtualMachine && !$requestData instanceof VirtualMachineData) {
         $requestData = CreateVirtualMachine::initArray($requestData);
     }
     $path = '/subscriptions/' . $subscriptionId . '/resourceGroups/' . $resourceGroup . ComputeService::ENDPOINT_MICROSOFT_COMPUTE . '/virtualMachines/' . $requestData->name;
     if (empty($requestData->id)) {
         $requestData->id = $path;
     }
     $request = $this->getClient()->prepareRequest($path, 'PUT', $this->getApiVersion(), $this->getServiceUrl(), ['validating' => $validating], $requestData->toArray());
     $response = $this->getClient()->call($request);
     if (!$response->hasError()) {
         $result = VirtualMachineData::initArray($response->getResult());
     }
     return $result;
 }