b848276fb8
With the recent release of IAM roles for service accounts the AWS sdk needs to be updated to at least 1.23.13 in order to utilize this feature.
37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
// Package query provides serialization of AWS query requests, and responses.
|
|
package query
|
|
|
|
//go:generate go run -tags codegen ../../../models/protocol_tests/generate.go ../../../models/protocol_tests/input/query.json build_test.go
|
|
|
|
import (
|
|
"net/url"
|
|
|
|
"github.com/aws/aws-sdk-go/aws/awserr"
|
|
"github.com/aws/aws-sdk-go/aws/request"
|
|
"github.com/aws/aws-sdk-go/private/protocol/query/queryutil"
|
|
)
|
|
|
|
// BuildHandler is a named request handler for building query protocol requests
|
|
var BuildHandler = request.NamedHandler{Name: "awssdk.query.Build", Fn: Build}
|
|
|
|
// Build builds a request for an AWS Query service.
|
|
func Build(r *request.Request) {
|
|
body := url.Values{
|
|
"Action": {r.Operation.Name},
|
|
"Version": {r.ClientInfo.APIVersion},
|
|
}
|
|
if err := queryutil.Parse(body, r.Params, false); err != nil {
|
|
r.Error = awserr.New(request.ErrCodeSerialization, "failed encoding Query request", err)
|
|
return
|
|
}
|
|
|
|
if !r.IsPresigned() {
|
|
r.HTTPRequest.Method = "POST"
|
|
r.HTTPRequest.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=utf-8")
|
|
r.SetBufferBody([]byte(body.Encode()))
|
|
} else { // This is a pre-signed request
|
|
r.HTTPRequest.Method = "GET"
|
|
r.HTTPRequest.URL.RawQuery = body.Encode()
|
|
}
|
|
}
|