code: func ObjectValueIDOrName(obj cty.Value) (k, v string) {
  	k, v = ObjectValueID(obj)
  	if k != "" {
  		return
  	}
  	k, v = ObjectValueName(obj)
  	return
  }
docs: // ObjectValueIDOrName is a convenience wrapper around both ObjectValueID
  // and ObjectValueName (in that preference order) to try to extract some sort
  // of human-friendly descriptive string value for an object as additional
  // context about an object when it is being displayed in a compact way (where
  // not all of the attributes are visible.)
  //
  // Just as with the two functions it wraps, it is a best-effort and may return
  // two empty strings if no suitable attribute can be found for a given object.