code: func (bt *BaseTask) additionalParams() map[string]interface{} {
  	additionalParams := make(map[string]interface{})
  
  	if bt.TimeoutSeconds.Seconds() != 0 {
  		additionalParams["TimeoutSeconds"] = bt.TimeoutSeconds.Seconds()
  	}
  	if bt.HeartbeatSeconds.Seconds() != 0 {
  		additionalParams["HeartbeatSeconds"] = bt.HeartbeatSeconds.Seconds()
  	}
  	if bt.ResultPath != "" {
  		additionalParams["ResultPath"] = bt.ResultPath
  	}
  	if len(bt.Retriers) != 0 {
  		additionalParams["Retry"] = make([]map[string]interface{}, 0)
  	}
  	if bt.Catchers != nil {
  		catcherMap := make([]map[string]interface{}, len(bt.Catchers))
  		for index, eachCatcher := range bt.Catchers {
  			catcherMap[index] = map[string]interface{}{
  				"ErrorEquals": eachCatcher.errorEquals,
  				"Next":        eachCatcher.next.Name(),
  			}
  		}
  		additionalParams["Catch"] = catcherMap
  	}
  	return additionalParams
  }
docs: // attributeMap returns the map of attributes necessary
  // for JSON serialization