code: func (c *Athena) ListWorkGroupsRequest(input *ListWorkGroupsInput) (req *request.Request, output *ListWorkGroupsOutput) {
  	op := &request.Operation{
  		Name:       opListWorkGroups,
  		HTTPMethod: "POST",
  		HTTPPath:   "/",
  		Paginator: &request.Paginator{
  			InputTokens:     []string{"NextToken"},
  			OutputTokens:    []string{"NextToken"},
  			LimitToken:      "MaxResults",
  			TruncationToken: "",
  		},
  	}
  
  	if input == nil {
  		input = &ListWorkGroupsInput{}
  	}
  
  	output = &ListWorkGroupsOutput{}
  	req = c.newRequest(op, input, output)
  	return
  }
docs: // ListWorkGroupsRequest generates a "aws/request.Request" representing the
  // client's request for the ListWorkGroups operation. The "output" return
  // value will be populated with the request's response once the request completes
  // successfully.
  //
  // Use "Send" method on the returned Request to send the API call to the service.
  // the "output" return value is not valid until after Send returns without error.
  //
  // See ListWorkGroups for more information on using the ListWorkGroups
  // API call, and error handling.
  //
  // This method is useful when you want to inject custom logic or configuration
  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  //
  //
  //    // Example sending a request using the ListWorkGroupsRequest method.
  //    req, resp := client.ListWorkGroupsRequest(params)
  //
  //    err := req.Send()
  //    if err == nil { // resp is now filled
  //        fmt.Println(resp)
  //    }
  //
  // See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListWorkGroups