input: Write a python function to validate VDI information based on expected types.
  assert validate_vdi_info({"vdi": "123", "name_label": "test", "name_description": "", "ty": "type1", "metadata_of_pool": "", "is_a_snapshot": "false", "snapshot_time": "", "snapshot_of": "", "read_only": "true", "cbt_enabled": "false", "virtual_size": "1000", "physical_utilisation": "500"}) == True
  assert validate_vdi_info({"vdi": 123, "name_label": "test", "name_description": "", "ty": "type1", "metadata_of_pool": "", "is_a_snapshot": "false", "snapshot_time": "", "snapshot_of": "", "read_only": "true", "cbt_enabled": "false", "virtual_size": "1000", "physical_utilisation": "500"}) == False
  assert validate_vdi_info({"vdi": "123", "name_label": "test", "name_description": "", "ty": "type1", "metadata_of_pool": "", "is_a_snapshot": "false", "snapshot_time": "", "snapshot_of": "", "read_only": "true", "cbt_enabled": "false", "virtual_size": "1000"}) == False
output: def validate_vdi_info(vdi_info):
      expected_types = {
          "vdi": str,
          "name_label": str,
          "name_description": str,
          "ty": str,
          "metadata_of_pool": str,
          "is_a_snapshot": str,
          "snapshot_time": str,
          "snapshot_of": str,
          "read_only": str,
          "cbt_enabled": str,
          "virtual_size": str,
          "physical_utilisation": str
      }
      
      for key, expected_type in expected_types.items():
          if key not in vdi_info or not isinstance(vdi_info[key], expected_type):
              return False
      
      return True