anchor.diff:  [Example configure_networks.go](https://github.com/cppforlife/bosh-warden-cpi-release/blob/master/src/github.com/cppforlife/bosh-warden-cpi/action/configure_networks.go)
   
   ---
  +### <a id="calculate-vm-cloud-properties"></a> `calculate_vm_cloud_properties`
  +
  +Returns a hash that can be used in a Cloud Config's `vm_types`'s
  +`cloud_properties` section; it describes the IaaS instance type closest to the
  +arguments passed.
  +
  +The cloud_properties returned are IaaS-specific. For example, when querying the
  +AWS CPI for a VM with the parameters `{ cpu: 1, ram: 512, ephemeral_disk_size:
  +1024 }`, it will return the following, which includes a `t2.nano` instance
  +type which has 1 CPU and 512MB RAM:
  +
  +```yaml
  +{ 'instance_type' => 't2.nano',
  +  'ephemeral_disk' =>
  +    {
  +      'size' => 1024
  +    }
  +}
  +```
  +
  +`calculate_vm_cloud_properties` returns the minimum resources that satisfy the
  +parameters, which may result in a larger machine than expected. For example,
  +when querying the AWS CPI for a VM with the parameters `{ cpu: 1, ram: 8192,
  +ephemeral_disk_size: 4096}`, it will return an `m4.large` instance type (which
  +has 2 CPUs) because it is the smallest instance type which has at least 8 GiB
  +RAM.
  +
  +If a parameter is set to a value greater than what is available (e.g. 1024
  +CPUs), an error is raised.
  +
  +#### Arguments
  +
  +- **desired_instance_size** [Hash]: Parameters of the desired size of the VM
  +  consisting of the following keys:
  +  - **cpu** [Integer]: Number of virtual cores desired
  +  - **ram** [Integer]: Amount of RAM, in MiB (i.e. `4096` for 4 GiB)
  +  - **ephemeral_disk_size** [Integer]: Size of ephemeral disk, in MB
  +
  +##### Example
  +
  +```yaml
  +{
  +  'ram' => 1024,
  +  'cpu' => 2,
  +  'ephemeral_disk_size' => 2048
  +}
  +```
  +
  +#### Returned
  +
  +- **cloud_properties** [Hash]: an IaaS-specific set of cloud properties that define
  +  the size of the VM.
  +
  +[Example configure_networks.go](https://github.com/cppforlife/bosh-warden-cpi-release/blob/master/src/github.com/cppforlife/bosh-warden-cpi/action/configure_networks.go)
  +
  +---
   ## <a id="disk"></a> Disk management
   
   ### <a id="create-disk"></a> `create_disk`
  
positive.code: ---
  ### <a id="configure-networks"></a> `configure_networks`
  
  Recommened implementation is to raise `Bosh::Clouds::NotSupported` error. This method will be deprecated in API v2.
  
  After the Director received NotSupported error, it will delete the VM (via `delete_vm`) and create a new VM with desired network configuration (via `create_vm`).
  
  
negative.code: 
  Detaches disk from the VM.
  
  If the persistent disk is attached to a VM that will be deleted, it's more likely `delete_vm` CPI method will be called without a call to `detach_disk` with an expectation that `delete_vm` will make sure disks are disassociated from the VM upon its deletion.
  
  Agent settings should have been updated to remove information about given disk.
  
  