public async Task <bool> WaitForComputeResourceDeploymentAsync(string resourceGroupName, string resourceName, string resourceType) { bool resourceExists = false; while (!resourceExists) { resourceExists = _resourceManager.GenericResources.CheckExistence(resourceGroupName, "Microsoft.Compute", String.Empty, resourceType, resourceName, "2016-04-30-preview"); await Task.Delay(TimeSpan.FromSeconds(5)); } IGenericResource computeResource = GetComputeResource(resourceGroupName, resourceName, resourceType); ProvisioningState provisioningState = ProvisioningState.Parse((string)JObject.FromObject(computeResource.Properties)["provisioningState"]); while (!provisioningState.DeploymentEnded()) { await SdkContext.DelayProvider.DelayAsync(DeploymentDelayMilliseconds, CancellationToken.None); computeResource = GetComputeResource(resourceGroupName, resourceName, resourceType); provisioningState = ProvisioningState.Parse( (string)JObject.FromObject(computeResource.Properties)["provisioningState"]); } return(provisioningState.DeploymentSucceeded()); }