diff --git a/builtin/providers/azurerm/resource_arm_virtual_machine.go b/builtin/providers/azurerm/resource_arm_virtual_machine.go index c2d1f4d9c..817b757ac 100644 --- a/builtin/providers/azurerm/resource_arm_virtual_machine.go +++ b/builtin/providers/azurerm/resource_arm_virtual_machine.go @@ -197,6 +197,12 @@ func resourceArmVirtualMachine() *schema.Resource { Required: true, }, + "caching": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "disk_size_gb": { Type: schema.TypeInt, Optional: true, @@ -864,6 +870,7 @@ func flattenAzureRmVirtualMachineDataDisk(disks *[]compute.DataDisk) interface{} l["name"] = *disk.Name l["vhd_uri"] = *disk.Vhd.URI l["create_option"] = disk.CreateOption + l["caching"] = string(disk.Caching) if disk.DiskSizeGB != nil { l["disk_size_gb"] = *disk.DiskSizeGB } @@ -1197,6 +1204,10 @@ func expandAzureRmVirtualMachineDataDisk(d *schema.ResourceData) ([]compute.Data CreateOption: compute.DiskCreateOptionTypes(createOption), } + if v := config["caching"].(string); v != "" { + data_disk.Caching = compute.CachingTypes(v) + } + if v := config["disk_size_gb"]; v != nil { diskSize := int32(config["disk_size_gb"].(int)) data_disk.DiskSizeGB = &diskSize diff --git a/builtin/providers/azurerm/resource_arm_virtual_machine_test.go b/builtin/providers/azurerm/resource_arm_virtual_machine_test.go index bbd0fb989..a00a4f6d0 100644 --- a/builtin/providers/azurerm/resource_arm_virtual_machine_test.go +++ b/builtin/providers/azurerm/resource_arm_virtual_machine_test.go @@ -1019,6 +1019,7 @@ resource "azurerm_virtual_machine" "test" { vhd_uri = "${azurerm_storage_account.test.primary_blob_endpoint}${azurerm_storage_container.test.name}/mydatadisk1.vhd" disk_size_gb = "1023" create_option = "Empty" + caching = "ReadWrite" lun = 0 } diff --git a/website/source/docs/providers/azurerm/r/virtual_machine.html.markdown b/website/source/docs/providers/azurerm/r/virtual_machine.html.markdown index da18b10ab..5bb4d2670 100644 --- a/website/source/docs/providers/azurerm/r/virtual_machine.html.markdown +++ b/website/source/docs/providers/azurerm/r/virtual_machine.html.markdown @@ -258,6 +258,7 @@ For more information on the different example configurations, please check out t * `vhd_uri` - (Required) Specifies the uri of the location in storage where the vhd for the virtual machine should be placed. * `create_option` - (Required) Specifies how the data disk should be created. * `disk_size_gb` - (Required) Specifies the size of the data disk in gigabytes. +* `caching` - (Optional) Specifies the caching requirements. * `lun` - (Required) Specifies the logical unit number of the data disk. `os_profile` supports the following: