vsphere/datastore_structure.go
func resourceVSphereDatastoreApplyFolderOrStorageClusterPath(d *schema.ResourceData, meta interface{}) (string, error) {
	var path string
	fvalue, fok := d.GetOk("folder")
	cvalue, cok := d.GetOk("datastore_cluster_id")
	switch {
	case fok:
		path = fvalue.(string)
	case cok:
		return resourceVSphereDatastoreStorageClusterPathNormalized(meta, cvalue.(string))
	}
	return path, nil
}
func resourceVSphereDatastoreApplyFolderOrStorageClusterPath(d *schema.ResourceData, meta interface{}) (string, error) {
	var path string
	fvalue, fok := d.GetOk("folder")
	cvalue, cok := d.GetOk("datastore_cluster_id")
	switch {
	case fok:
		path = fvalue.(string)
	case cok:
		return resourceVSphereDatastoreStorageClusterPathNormalized(meta, cvalue.(string))
	}
	return path, nil
}
// resourceVSphereDatastoreApplyFolderOrStorageClusterPath returns a path to a
// folder or a datastore cluster, depending on what has been selected in the
// resource.