docs: func ConvertFromMap(item map[string]*dynamodb.AttributeValue, v interface{}) (err error) {
  	defer func() {
  		if r := recover(); r != nil {
  			if e, ok := r.(runtime.Error); ok {
  				err = e
  			} else if s, ok := r.(string); ok {
  				err = fmt.Errorf(s)
  			} else {
  				err = r.(error)
  			}
  			item = nil
  		}
  	}()
  
  	rv := reflect.ValueOf(v)
  	if rv.Kind() != reflect.Ptr || rv.IsNil() {
  		return awserr.New("SerializationError",
  			fmt.Sprintf("v must be a non-nil pointer to a map[string]interface{} or struct, got %s",
  				rv.Type()),
  			nil)
  	}
  	if rv.Elem().Kind() != reflect.Struct && !(rv.Elem().Kind() == reflect.Map && rv.Elem().Type().Key().Kind() == reflect.String) {
  		return awserr.New("SerializationError",
  			fmt.Sprintf("v must be a non-nil pointer to a map[string]interface{} or struct, got %s",
  				rv.Type()),
  			nil)
  	}
  
  	m := make(map[string]interface{})
  	for k, v := range item {
  		m[k] = convertFrom(v)
  	}
  
  	if isTyped(reflect.TypeOf(v)) {
  		err = convertToTyped(m, v)
  	} else {
  		rv.Elem().Set(reflect.ValueOf(m))
  	}
  
  	return err
  }