docs: func ConvertToMap(in interface{}) (item map[string]*dynamodb.AttributeValue, 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
  		}
  	}()
  
  	if in == nil {
  		return nil, awserr.New("SerializationError",
  			"in must be a map[string]interface{} or struct, got <nil>", nil)
  	}
  
  	v := reflect.ValueOf(in)
  	if v.Kind() != reflect.Struct && !(v.Kind() == reflect.Map && v.Type().Key().Kind() == reflect.String) {
  		return nil, awserr.New("SerializationError",
  			fmt.Sprintf("in must be a map[string]interface{} or struct, got %s",
  				v.Type().String()),
  			nil)
  	}
  
  	if isTyped(reflect.TypeOf(in)) {
  		var out map[string]interface{}
  		in = convertToUntyped(in, out)
  	}
  
  	item = make(map[string]*dynamodb.AttributeValue)
  	for k, v := range in.(map[string]interface{}) {
  		item[k] = convertTo(v)
  	}
  
  	return item, nil
  }