code: func (r *Request) Send() error {
  	// Always run Complete handlers
  	defer func() {
  		r.Handlers.Complete.Run(r)
  	}()
  
  	// Build and Sign the request.
  	r.Build()
  	if r.Error != nil {
  		return r.Error
  	}
  
  	// Send the request. r.HTTPResponse should be populated after these handlers run.
  	r.Handlers.Send.Run(r)
  	if r.Error != nil {
  		return r.Error
  	}
  
  	// Validate the response. This is a good place to create a r.Error if
  	// the response is not a 2xx status code.
  	r.Handlers.ValidateResponse.Run(r)
  	if r.Error != nil {
  		// Run DecodeError handlers. This is a good place to add custom error response
  		// parsing.
  		r.Handlers.DecodeError.Run(r)
  		return r.Error
  	}
  
  	// Decode the response. Commonly will populate r.Data variable with a parsed response body.
  	r.Handlers.Decode.Run(r)
  	return r.Error
  }
docs: // Send sends a request. Send manages the execution of the Handlers.
  // If an error occurs during any phase, request processing stops.