From b215e7e9e6057f3b60d58925dd24c1a71770e723 Mon Sep 17 00:00:00 2001 From: Paul Stack Date: Thu, 15 Dec 2016 15:18:11 +0000 Subject: [PATCH] provider/aws: Bump AWS SDK to 1.6.3 (#10757) --- vendor/github.com/aws/aws-sdk-go/CHANGELOG.md | 31 + vendor/github.com/aws/aws-sdk-go/Makefile | 9 +- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 39 ++ .../aws/aws-sdk-go/aws/request/request.go | 103 ++- .../aws/aws-sdk-go/aws/request/request_1_7.go | 21 + .../aws/aws-sdk-go/aws/request/request_1_8.go | 9 + .../aws-sdk-go/aws/signer/v4/uri_path_1_4.go | 24 - .../aws/aws-sdk-go/aws/signer/v4/v4.go | 24 +- vendor/github.com/aws/aws-sdk-go/aws/types.go | 14 +- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws-sdk-go/private/protocol/rest/build.go | 44 +- .../private/protocol/rest/unmarshal.go | 14 +- .../aws-sdk-go/service/cloudwatchlogs/api.go | 505 ++++++++++++++- .../service/elasticbeanstalk/api.go | 82 ++- .../aws/aws-sdk-go/service/rds/api.go | 7 +- .../service/route53/customizations.go | 4 +- .../aws-sdk-go/service/s3/statusok_error.go | 5 +- .../aws/aws-sdk-go/service/sts/api.go | 42 +- vendor/vendor.json | 608 +++++++++--------- 19 files changed, 1162 insertions(+), 425 deletions(-) create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go create mode 100644 vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go delete mode 100644 vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path_1_4.go diff --git a/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md index 5d04aef38..d2b95a01c 100644 --- a/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go/CHANGELOG.md @@ -1,3 +1,34 @@ +Release v1.6.3 (2016-12-14) +=== + +Service Client Updates +--- +* `service/batch`: Adds new service + * AWS Batch is a batch computing service that lets customers define queues and compute environments and then submit work as batch jobs. +* `service/databasemigrationservice`: Updates service API and documentation + * Adds support for SSL enabled Oracle endpoints and task modification. +* `service/elasticbeanstalk`: Updates service documentation +* `aws/endpoints`: Updated Regions and Endpoints metadata. +* `service/cloudwatchlogs`: Updates service API and documentation + * Add support for associating LogGroups with AWSTagris tags +* `service/marketplacecommerceanalytics`: Updates service API and documentation + * Add new enum to DataSetType: sales_compensation_billed_revenue +* `service/rds`: Updates service documentation + * Doc-only Update for RDS: New versions available in CreateDBInstance +* `service/sts`: Updates service documentation + * Adding Code Snippet Examples for SDKs for STS + +SDK Bug Fixes +--- +* `aws/request`: Fix retrying timeout requests (#981) + * Fixes: Requests Retrying is broken if the error was caused due to a client timeout #947 +* `aws/request`: Fix for Go 1.8 request incorrectly sent with body (#991) + * Fixes: service/route53: ListHostedZones hangs and then fails with go1.8 #984 +* private/protocol/rest: Use RawPath instead of Opaque (#993) + * Fixes: HTTP2 request failing with REST protocol services, e.g AWS X-Ray +* private/model/api: Generate REST-JSON JSONVersion correctly (#998) + * Fixes: REST-JSON protocol service code missing JSONVersion metadata. + Release v1.6.2 (2016-12-08) === diff --git a/vendor/github.com/aws/aws-sdk-go/Makefile b/vendor/github.com/aws/aws-sdk-go/Makefile index b41626ab8..6e2966317 100644 --- a/vendor/github.com/aws/aws-sdk-go/Makefile +++ b/vendor/github.com/aws/aws-sdk-go/Makefile @@ -70,14 +70,7 @@ smoke-tests: get-deps-tests performance: get-deps-tests AWS_TESTING_LOG_RESULTS=${log-detailed} AWS_TESTING_REGION=$(region) AWS_TESTING_DB_TABLE=$(table) gucumber -go-tags "integration" ./awstesting/performance -sandbox-tests: sandbox-test-go14 sandbox-test-go15 sandbox-test-go15-novendorexp sandbox-test-go16 sandbox-test-go17 sandbox-test-go18 sandbox-test-gotip - -sandbox-build-go14: - docker build -f ./awstesting/sandbox/Dockerfile.test.go1.4 -t "aws-sdk-go-1.4" . -sandbox-go14: sandbox-build-go14 - docker run -i -t aws-sdk-go-1.4 bash -sandbox-test-go14: sandbox-build-go14 - docker run -t aws-sdk-go-1.4 +sandbox-tests: sandbox-test-go15 sandbox-test-go15-novendorexp sandbox-test-go16 sandbox-test-go17 sandbox-test-go18 sandbox-test-gotip sandbox-build-go15: docker build -f ./awstesting/sandbox/Dockerfile.test.go1.5 -t "aws-sdk-go-1.5" . diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index c78817070..e42f4572a 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -23,6 +23,7 @@ const ( CaCentral1RegionID = "ca-central-1" // Canada (Central). EuCentral1RegionID = "eu-central-1" // EU (Frankfurt). EuWest1RegionID = "eu-west-1" // EU (Ireland). + EuWest2RegionID = "eu-west-2" // EU (London). SaEast1RegionID = "sa-east-1" // South America (Sao Paulo). UsEast1RegionID = "us-east-1" // US East (N. Virginia). UsEast2RegionID = "us-east-2" // US East (Ohio). @@ -198,6 +199,9 @@ var awsPartition = partition{ "eu-west-1": region{ Description: "EU (Ireland)", }, + "eu-west-2": region{ + Description: "EU (London)", + }, "sa-east-1": region{ Description: "South America (Sao Paulo)", }, @@ -226,6 +230,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -265,6 +270,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -306,6 +312,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -337,6 +344,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -399,6 +407,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -434,6 +443,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -444,10 +454,12 @@ var awsPartition = partition{ "codepipeline": service{ Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-2": endpoint{}, @@ -497,6 +509,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -531,6 +544,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -555,6 +569,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -587,6 +602,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "local": endpoint{ Hostname: "localhost:8000", Protocols: []string{"http"}, @@ -614,6 +630,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -641,6 +658,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -656,6 +674,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -673,6 +692,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -691,6 +711,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -720,6 +741,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -743,6 +765,7 @@ var awsPartition = partition{ SSLCommonName: "{service}.{region}.{dnsSuffix}", }, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{ SSLCommonName: "{service}.{region}.{dnsSuffix}", @@ -841,6 +864,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -921,6 +945,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -947,6 +972,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -986,6 +1012,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1032,6 +1059,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1049,6 +1077,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1094,6 +1123,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{ SSLCommonName: "{service}.{dnsSuffix}", @@ -1114,6 +1144,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1179,6 +1210,7 @@ var awsPartition = partition{ Hostname: "s3-eu-west-1.amazonaws.com", SignatureVersions: []string{"s3", "s3v4"}, }, + "eu-west-2": endpoint{}, "s3-external-1": endpoint{ Hostname: "s3-external-1.amazonaws.com", SignatureVersions: []string{"s3", "s3v4"}, @@ -1262,6 +1294,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-1": endpoint{}, @@ -1281,6 +1314,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1302,6 +1336,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{ SSLCommonName: "queue.{dnsSuffix}", @@ -1346,6 +1381,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1369,6 +1405,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "local": endpoint{ Hostname: "localhost:8000", Protocols: []string{"http"}, @@ -1406,6 +1443,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1430,6 +1468,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go index 3c8851a11..77312bb66 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "io" + "net" "net/http" "net/url" "reflect" @@ -245,7 +246,82 @@ func (r *Request) ResetBody() { } r.safeBody = newOffsetReader(r.Body, r.BodyStart) - r.HTTPRequest.Body = r.safeBody + + // Go 1.8 tightened and clarified the rules code needs to use when building + // requests with the http package. Go 1.8 removed the automatic detection + // of if the Request.Body was empty, or actually had bytes in it. The SDK + // always sets the Request.Body even if it is empty and should not actually + // be sent. This is incorrect. + // + // Go 1.8 did add a http.NoBody value that the SDK can use to tell the http + // client that the request really should be sent without a body. The + // Request.Body cannot be set to nil, which is preferable, because the + // field is exported and could introduce nil pointer dereferences for users + // of the SDK if they used that field. + // + // Related golang/go#18257 + l, err := computeBodyLength(r.Body) + if err != nil { + r.Error = awserr.New("SerializationError", "failed to compute request body size", err) + return + } + + if l == 0 { + r.HTTPRequest.Body = noBodyReader + } else if l > 0 { + r.HTTPRequest.Body = r.safeBody + } else { + // Hack to prevent sending bodies for methods where the body + // should be ignored by the server. Sending bodies on these + // methods without an associated ContentLength will cause the + // request to socket timeout because the server does not handle + // Transfer-Encoding: chunked bodies for these methods. + // + // This would only happen if a aws.ReaderSeekerCloser was used with + // a io.Reader that was not also an io.Seeker. + switch r.Operation.HTTPMethod { + case "GET", "HEAD", "DELETE": + r.HTTPRequest.Body = noBodyReader + default: + r.HTTPRequest.Body = r.safeBody + } + } +} + +// Attempts to compute the length of the body of the reader using the +// io.Seeker interface. If the value is not seekable because of being +// a ReaderSeekerCloser without an unerlying Seeker -1 will be returned. +// If no error occurs the length of the body will be returned. +func computeBodyLength(r io.ReadSeeker) (int64, error) { + seekable := true + // Determine if the seeker is actually seekable. ReaderSeekerCloser + // hides the fact that a io.Readers might not actually be seekable. + switch v := r.(type) { + case aws.ReaderSeekerCloser: + seekable = v.IsSeeker() + case *aws.ReaderSeekerCloser: + seekable = v.IsSeeker() + } + if !seekable { + return -1, nil + } + + curOffset, err := r.Seek(0, 1) + if err != nil { + return 0, err + } + + endOffset, err := r.Seek(0, 2) + if err != nil { + return 0, err + } + + _, err = r.Seek(curOffset, 0) + if err != nil { + return 0, err + } + + return endOffset - curOffset, nil } // GetBody will return an io.ReadSeeker of the Request's underlying @@ -297,7 +373,7 @@ func (r *Request) Send() error { r.Handlers.Send.Run(r) if r.Error != nil { - if strings.Contains(r.Error.Error(), "net/http: request canceled") { + if !shouldRetryCancel(r) { return r.Error } @@ -364,3 +440,26 @@ func AddToUserAgent(r *Request, s string) { } r.HTTPRequest.Header.Set("User-Agent", s) } + +func shouldRetryCancel(r *Request) bool { + awsErr, ok := r.Error.(awserr.Error) + timeoutErr := false + errStr := r.Error.Error() + if ok { + err := awsErr.OrigErr() + netErr, netOK := err.(net.Error) + timeoutErr = netOK && netErr.Temporary() + if urlErr, ok := err.(*url.Error); !timeoutErr && ok { + errStr = urlErr.Err.Error() + } + } + + // There can be two types of canceled errors here. + // The first being a net.Error and the other being an error. + // If the request was timed out, we want to continue the retry + // process. Otherwise, return the canceled error. + return timeoutErr || + (errStr != "net/http: request canceled" && + errStr != "net/http: request canceled while waiting for connection") + +} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go new file mode 100644 index 000000000..1323af900 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_7.go @@ -0,0 +1,21 @@ +// +build !go1.8 + +package request + +import "io" + +// NoBody is an io.ReadCloser with no bytes. Read always returns EOF +// and Close always returns nil. It can be used in an outgoing client +// request to explicitly signal that a request has zero bytes. +// An alternative, however, is to simply set Request.Body to nil. +// +// Copy of Go 1.8 NoBody type from net/http/http.go +type noBody struct{} + +func (noBody) Read([]byte) (int, error) { return 0, io.EOF } +func (noBody) Close() error { return nil } +func (noBody) WriteTo(io.Writer) (int64, error) { return 0, nil } + +// Is an empty reader that will trigger the Go HTTP client to not include +// and body in the HTTP request. +var noBodyReader = noBody{} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go new file mode 100644 index 000000000..8b963f4de --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/request_1_8.go @@ -0,0 +1,9 @@ +// +build go1.8 + +package request + +import "net/http" + +// Is a http.NoBody reader instructing Go HTTP client to not include +// and body in the HTTP request. +var noBodyReader = http.NoBody diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path_1_4.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path_1_4.go deleted file mode 100644 index 796604121..000000000 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/uri_path_1_4.go +++ /dev/null @@ -1,24 +0,0 @@ -// +build !go1.5 - -package v4 - -import ( - "net/url" - "strings" -) - -func getURIPath(u *url.URL) string { - var uri string - - if len(u.Opaque) > 0 { - uri = "/" + strings.Join(strings.Split(u.Opaque, "/")[3:], "/") - } else { - uri = u.Path - } - - if len(uri) == 0 { - uri = "/" - } - - return uri -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go index 90fe1ffaf..c12a56991 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go @@ -42,6 +42,14 @@ // the URL.Opaque or URL.RawPath. The SDK will use URL.Opaque first and then // call URL.EscapedPath() if Opaque is not set. // +// If signing a request intended for HTTP2 server, and you're using Go 1.6.2 +// through 1.7.4 you should use the URL.RawPath as the pre-escaped form of the +// request URL. https://github.com/golang/go/issues/16847 points to a bug in +// Go pre 1.8 that failes to make HTTP2 requests using absolute URL in the HTTP +// message. URL.Opaque generally will force Go to make requests with absolute URL. +// URL.RawPath does not do this, but RawPath must be a valid escaping of Path +// or url.EscapedPath will ignore the RawPath escaping. +// // Test `TestStandaloneSign` provides a complete example of using the signer // outside of the SDK and pre-escaping the URI path. package v4 @@ -171,6 +179,16 @@ type Signer struct { // http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html DisableURIPathEscaping bool + // Disales the automatical setting of the HTTP request's Body field with the + // io.ReadSeeker passed in to the signer. This is useful if you're using a + // custom wrapper around the body for the io.ReadSeeker and want to preserve + // the Body value on the Request.Body. + // + // This does run the risk of signing a request with a body that will not be + // sent in the request. Need to ensure that the underlying data of the Body + // values are the same. + DisableRequestBodyOverwrite bool + // currentTimeFn returns the time value which represents the current time. // This value should only be used for testing. If it is nil the default // time.Now will be used. @@ -321,7 +339,7 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi // If the request is not presigned the body should be attached to it. This // prevents the confusion of wanting to send a signed request without // the body the request was signed for attached. - if !ctx.isPresign { + if !(v4.DisableRequestBodyOverwrite || ctx.isPresign) { var reader io.ReadCloser if body != nil { var ok bool @@ -416,6 +434,10 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time // S3 service should not have any escaping applied v4.DisableURIPathEscaping = true } + // Prevents setting the HTTPRequest's Body. Since the Body could be + // wrapped in a custom io.Closer that we do not want to be stompped + // on top of by the signer. + v4.DisableRequestBodyOverwrite = true }) signingTime := req.Time diff --git a/vendor/github.com/aws/aws-sdk-go/aws/types.go b/vendor/github.com/aws/aws-sdk-go/aws/types.go index fa014b49e..9ca685e90 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/types.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/types.go @@ -5,7 +5,13 @@ import ( "sync" ) -// ReadSeekCloser wraps a io.Reader returning a ReaderSeekerCloser +// ReadSeekCloser wraps a io.Reader returning a ReaderSeekerCloser. Should +// only be used with an io.Reader that is also an io.Seeker. Doing so may +// cause request signature errors, or request body's not sent for GET, HEAD +// and DELETE HTTP methods. +// +// Deprecated: Should only be used with io.ReadSeeker. If using for +// S3 PutObject to stream content use s3manager.Uploader instead. func ReadSeekCloser(r io.Reader) ReaderSeekerCloser { return ReaderSeekerCloser{r} } @@ -44,6 +50,12 @@ func (r ReaderSeekerCloser) Seek(offset int64, whence int) (int64, error) { return int64(0), nil } +// IsSeeker returns if the underlying reader is also a seeker. +func (r ReaderSeekerCloser) IsSeeker() bool { + _, ok := r.r.(io.Seeker) + return ok +} + // Close closes the ReaderSeekerCloser. // // If the ReaderSeekerCloser is not an io.Closer nothing will be done. diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index ca04ad669..f368f7e49 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.6.2" +const SDKVersion = "1.6.3" diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go index 03ae45194..2dc50ca0e 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go @@ -65,6 +65,11 @@ func BuildAsGET(r *request.Request) { func buildLocationElements(r *request.Request, v reflect.Value, buildGETQuery bool) { query := r.HTTPRequest.URL.Query() + // Setup the raw path to match the base path pattern. This is needed + // so that when the path is mutated a custom escaped version can be + // stored in RawPath that will be used by the Go client. + r.HTTPRequest.URL.RawPath = r.HTTPRequest.URL.Path + for i := 0; i < v.NumField(); i++ { m := v.Field(i) if n := v.Type().Field(i).Name; n[0:1] == strings.ToLower(n[0:1]) { @@ -107,7 +112,9 @@ func buildLocationElements(r *request.Request, v reflect.Value, buildGETQuery bo } r.HTTPRequest.URL.RawQuery = query.Encode() - updatePath(r.HTTPRequest.URL, r.HTTPRequest.URL.Path, aws.BoolValue(r.Config.DisableRestProtocolURICleaning)) + if !aws.BoolValue(r.Config.DisableRestProtocolURICleaning) { + cleanPath(r.HTTPRequest.URL) + } } func buildBody(r *request.Request, v reflect.Value) { @@ -171,10 +178,11 @@ func buildURI(u *url.URL, v reflect.Value, name string) error { return awserr.New("SerializationError", "failed to encode REST request", err) } - uri := u.Path - uri = strings.Replace(uri, "{"+name+"}", EscapePath(value, true), -1) - uri = strings.Replace(uri, "{"+name+"+}", EscapePath(value, false), -1) - u.Path = uri + u.Path = strings.Replace(u.Path, "{"+name+"}", value, -1) + u.Path = strings.Replace(u.Path, "{"+name+"+}", value, -1) + + u.RawPath = strings.Replace(u.RawPath, "{"+name+"}", EscapePath(value, true), -1) + u.RawPath = strings.Replace(u.RawPath, "{"+name+"+}", EscapePath(value, false), -1) return nil } @@ -208,27 +216,17 @@ func buildQueryString(query url.Values, v reflect.Value, name string) error { return nil } -func updatePath(url *url.URL, urlPath string, disableRestProtocolURICleaning bool) { - scheme, query := url.Scheme, url.RawQuery +func cleanPath(u *url.URL) { + hasSlash := strings.HasSuffix(u.Path, "/") - hasSlash := strings.HasSuffix(urlPath, "/") + // clean up path, removing duplicate `/` + u.Path = path.Clean(u.Path) + u.RawPath = path.Clean(u.RawPath) - // clean up path - if !disableRestProtocolURICleaning { - urlPath = path.Clean(urlPath) + if hasSlash && !strings.HasSuffix(u.Path, "/") { + u.Path += "/" + u.RawPath += "/" } - if hasSlash && !strings.HasSuffix(urlPath, "/") { - urlPath += "/" - } - - // get formatted URL minus scheme so we can build this into Opaque - url.Scheme, url.Path, url.RawQuery = "", "", "" - s := url.String() - url.Scheme = scheme - url.RawQuery = query - - // build opaque URI - url.Opaque = s + urlPath } // EscapePath escapes part of a URL path in Amazon style diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go index 2cba1d9aa..9c00921c0 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go @@ -1,6 +1,7 @@ package rest import ( + "bytes" "encoding/base64" "fmt" "io" @@ -11,7 +12,6 @@ import ( "strings" "time" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" ) @@ -70,10 +70,16 @@ func unmarshalBody(r *request.Request, v reflect.Value) { } default: switch payload.Type().String() { - case "io.ReadSeeker": - payload.Set(reflect.ValueOf(aws.ReadSeekCloser(r.HTTPResponse.Body))) - case "aws.ReadSeekCloser", "io.ReadCloser": + case "io.ReadCloser": payload.Set(reflect.ValueOf(r.HTTPResponse.Body)) + case "io.ReadSeeker": + b, err := ioutil.ReadAll(r.HTTPResponse.Body) + if err != nil { + r.Error = awserr.New("SerializationError", + "failed to read response body", err) + return + } + payload.Set(reflect.ValueOf(ioutil.NopCloser(bytes.NewReader(b)))) default: io.Copy(ioutil.Discard, r.HTTPResponse.Body) defer r.HTTPResponse.Body.Close() diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go index 72d28986a..ac9ba1bb3 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go @@ -1235,7 +1235,7 @@ func (c *CloudWatchLogs) DescribeMetricFiltersRequest(input *DescribeMetricFilte // DescribeMetricFilters API operation for Amazon CloudWatch Logs. // // Lists the specified metric filters. You can list all the metric filters or -// filter the results by log name, prefix, metric name, or metric namespace. +// filter the results by log name, prefix, metric name, and metric namespace. // The results are ASCII-sorted by filter name. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -1605,6 +1605,75 @@ func (c *CloudWatchLogs) GetLogEventsPages(input *GetLogEventsInput, fn func(p * }) } +const opListTagsLogGroup = "ListTagsLogGroup" + +// ListTagsLogGroupRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsLogGroup operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See ListTagsLogGroup for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the ListTagsLogGroup method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the ListTagsLogGroupRequest method. +// req, resp := client.ListTagsLogGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *CloudWatchLogs) ListTagsLogGroupRequest(input *ListTagsLogGroupInput) (req *request.Request, output *ListTagsLogGroupOutput) { + op := &request.Operation{ + Name: opListTagsLogGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListTagsLogGroupInput{} + } + + req = c.newRequest(op, input, output) + output = &ListTagsLogGroupOutput{} + req.Data = output + return +} + +// ListTagsLogGroup API operation for Amazon CloudWatch Logs. +// +// Lists the tags for the specified log group. +// +// To add tags, use TagLogGroup. To remove tags, use UntagLogGroup. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation ListTagsLogGroup for usage and error information. +// +// Returned Error Codes: +// * ResourceNotFoundException +// The specified resource does not exist. +// +// * ServiceUnavailableException +// The service cannot complete the request. +// +func (c *CloudWatchLogs) ListTagsLogGroup(input *ListTagsLogGroupInput) (*ListTagsLogGroupOutput, error) { + req, out := c.ListTagsLogGroupRequest(input) + err := req.Send() + return out, err +} + const opPutDestination = "PutDestination" // PutDestinationRequest generates a "aws/request.Request" representing the @@ -1824,12 +1893,13 @@ func (c *CloudWatchLogs) PutLogEventsRequest(input *PutLogEventsInput) (req *req // retention period of the log group. // // * The log events in the batch must be in chronological ordered by their -// timestamp. +// timestamp (the time the event occurred, expressed as the number of milliseconds +// since Jan 1, 1970 00:00:00 UTC). // // * The maximum number of log events in a batch is 10,000. // -// * A batch of log events in a single PutLogEvents request cannot span more -// than 24 hours. Otherwise, the PutLogEvents operation will fail. +// * A batch of log events in a single request cannot span more than 24 hours. +// Otherwise, the operation fails. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2115,6 +2185,82 @@ func (c *CloudWatchLogs) PutSubscriptionFilter(input *PutSubscriptionFilterInput return out, err } +const opTagLogGroup = "TagLogGroup" + +// TagLogGroupRequest generates a "aws/request.Request" representing the +// client's request for the TagLogGroup operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See TagLogGroup for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the TagLogGroup method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the TagLogGroupRequest method. +// req, resp := client.TagLogGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *CloudWatchLogs) TagLogGroupRequest(input *TagLogGroupInput) (req *request.Request, output *TagLogGroupOutput) { + op := &request.Operation{ + Name: opTagLogGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TagLogGroupInput{} + } + + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output = &TagLogGroupOutput{} + req.Data = output + return +} + +// TagLogGroup API operation for Amazon CloudWatch Logs. +// +// Adds or updates the specified tags for the specified log group. +// +// To list the tags for a log group, use ListTagsLogGroup. To remove tags, use +// UntagLogGroup. +// +// For more information about tags, see Tag Log Groups in Amazon CloudWatch +// Logs (http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/log-group-tagging.html) +// in the Amazon CloudWatch Logs User Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation TagLogGroup for usage and error information. +// +// Returned Error Codes: +// * ResourceNotFoundException +// The specified resource does not exist. +// +// * InvalidParameterException +// A parameter is specified incorrectly. +// +func (c *CloudWatchLogs) TagLogGroup(input *TagLogGroupInput) (*TagLogGroupOutput, error) { + req, out := c.TagLogGroupRequest(input) + err := req.Send() + return out, err +} + const opTestMetricFilter = "TestMetricFilter" // TestMetricFilterRequest generates a "aws/request.Request" representing the @@ -2184,6 +2330,75 @@ func (c *CloudWatchLogs) TestMetricFilter(input *TestMetricFilterInput) (*TestMe return out, err } +const opUntagLogGroup = "UntagLogGroup" + +// UntagLogGroupRequest generates a "aws/request.Request" representing the +// client's request for the UntagLogGroup operation. The "output" return +// value can be used to capture response data after the request's "Send" method +// is called. +// +// See UntagLogGroup for usage and error information. +// +// Creating a request object using this method should be used when you want to inject +// custom logic into the request's lifecycle using a custom handler, or if you want to +// access properties on the request object before or after sending the request. If +// you just want the service response, call the UntagLogGroup method directly +// instead. +// +// Note: You must call the "Send" method on the returned request object in order +// to execute the request. +// +// // Example sending a request using the UntagLogGroupRequest method. +// req, resp := client.UntagLogGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +func (c *CloudWatchLogs) UntagLogGroupRequest(input *UntagLogGroupInput) (req *request.Request, output *UntagLogGroupOutput) { + op := &request.Operation{ + Name: opUntagLogGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UntagLogGroupInput{} + } + + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output = &UntagLogGroupOutput{} + req.Data = output + return +} + +// UntagLogGroup API operation for Amazon CloudWatch Logs. +// +// Removes the specified tags from the specified log group. +// +// To list the tags for a log group, use ListTagsLogGroup. To add tags, use +// UntagLogGroup. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon CloudWatch Logs's +// API operation UntagLogGroup for usage and error information. +// +// Returned Error Codes: +// * ResourceNotFoundException +// The specified resource does not exist. +// +func (c *CloudWatchLogs) UntagLogGroup(input *UntagLogGroupInput) (*UntagLogGroupOutput, error) { + req, out := c.UntagLogGroupRequest(input) + err := req.Send() + return out, err +} + type CancelExportTaskInput struct { _ struct{} `type:"structure"` @@ -2395,6 +2610,9 @@ type CreateLogGroupInput struct { // // LogGroupName is a required field LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"` + + // The key-value pairs to use for the tags. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` } // String returns the string representation @@ -2416,6 +2634,9 @@ func (s *CreateLogGroupInput) Validate() error { if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -2429,6 +2650,12 @@ func (s *CreateLogGroupInput) SetLogGroupName(v string) *CreateLogGroupInput { return s } +// SetTags sets the Tags field's value. +func (s *CreateLogGroupInput) SetTags(v map[string]*string) *CreateLogGroupInput { + s.Tags = v + return s +} + type CreateLogGroupOutput struct { _ struct{} `type:"structure"` } @@ -3652,7 +3879,8 @@ type ExportTask struct { // Execution info about the export task. ExecutionInfo *ExportTaskExecutionInfo `locationName:"executionInfo" type:"structure"` - // The start time. Events with a timestamp prior to this time are not exported. + // The start time, expressed as the number of milliseconds since Jan 1, 1970 + // 00:00:00 UTC. Events with a timestamp prior to this time are not exported. From *int64 `locationName:"from" type:"long"` // The name of the log group from which logs data was exported. @@ -3667,7 +3895,8 @@ type ExportTask struct { // The name of the export task. TaskName *string `locationName:"taskName" min:"1" type:"string"` - // The end time. Events with a timestamp later than this time are not exported. + // The end time, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 + // UTC. Events with a timestamp later than this time are not exported. To *int64 `locationName:"to" type:"long"` } @@ -3804,7 +4033,8 @@ func (s *ExportTaskStatus) SetMessage(v string) *ExportTaskStatus { type FilterLogEventsInput struct { _ struct{} `type:"structure"` - // The end of the time range. Events with a timestamp later than this time are + // The end of the time range, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are // not returned. EndTime *int64 `locationName:"endTime" type:"long"` @@ -3833,7 +4063,8 @@ type FilterLogEventsInput struct { // from a previous call.) NextToken *string `locationName:"nextToken" min:"1" type:"string"` - // The start of the time range. Events with a timestamp prior to this time are + // The start of the time range, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. Events with a timestamp prior to this time are // not returned. StartTime *int64 `locationName:"startTime" type:"long"` } @@ -3980,7 +4211,8 @@ type FilteredLogEvent struct { // The data contained in the log event. Message *string `locationName:"message" min:"1" type:"string"` - // The time the event occurred. + // The time the event occurred, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. Timestamp *int64 `locationName:"timestamp" type:"long"` } @@ -4027,7 +4259,8 @@ func (s *FilteredLogEvent) SetTimestamp(v int64) *FilteredLogEvent { type GetLogEventsInput struct { _ struct{} `type:"structure"` - // The end of the time range. Events with a timestamp later than this time are + // The end of the time range, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are // not included. EndTime *int64 `locationName:"endTime" type:"long"` @@ -4055,7 +4288,8 @@ type GetLogEventsInput struct { // is false. StartFromHead *bool `locationName:"startFromHead" type:"boolean"` - // The start of the time range. Events with a timestamp earlier than this time + // The start of the time range, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time // are not included. StartTime *int64 `locationName:"startTime" type:"long"` } @@ -4193,7 +4427,8 @@ type InputLogEvent struct { // Message is a required field Message *string `locationName:"message" min:"1" type:"string" required:"true"` - // The time the event occurred. + // The time the event occurred, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. // // Timestamp is a required field Timestamp *int64 `locationName:"timestamp" type:"long" required:"true"` @@ -4240,6 +4475,70 @@ func (s *InputLogEvent) SetTimestamp(v int64) *InputLogEvent { return s } +type ListTagsLogGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the log group. + // + // LogGroupName is a required field + LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsLogGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsLogGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsLogGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsLogGroupInput"} + if s.LogGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("LogGroupName")) + } + if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLogGroupName sets the LogGroupName field's value. +func (s *ListTagsLogGroupInput) SetLogGroupName(v string) *ListTagsLogGroupInput { + s.LogGroupName = &v + return s +} + +type ListTagsLogGroupOutput struct { + _ struct{} `type:"structure"` + + // The tags. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation +func (s ListTagsLogGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsLogGroupOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsLogGroupOutput) SetTags(v map[string]*string) *ListTagsLogGroupOutput { + s.Tags = v + return s +} + // Represents a log group. type LogGroup struct { _ struct{} `type:"structure"` @@ -4322,10 +4621,12 @@ type LogStream struct { // The creation time of the stream. CreationTime *int64 `locationName:"creationTime" type:"long"` - // The time of the first event. + // The time of the first event, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. FirstEventTimestamp *int64 `locationName:"firstEventTimestamp" type:"long"` - // The time of the last event. + // The time of the last event, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. LastEventTimestamp *int64 `locationName:"lastEventTimestamp" type:"long"` // The ingestion time. @@ -4595,7 +4896,8 @@ type OutputLogEvent struct { // The data contained in the log event. Message *string `locationName:"message" min:"1" type:"string"` - // The time the event occurred. + // The time the event occurred, expressed as the number of milliseconds since + // Jan 1, 1970 00:00:00 UTC. Timestamp *int64 `locationName:"timestamp" type:"long"` } @@ -5133,6 +5435,11 @@ type PutSubscriptionFilterInput struct { // DestinationArn is a required field DestinationArn *string `locationName:"destinationArn" min:"1" type:"string" required:"true"` + // The method used to distribute log data to the destination, when the destination + // is an Amazon Kinesis stream. By default, log data is grouped by log stream. + // For a more even distribution, you can group log data randomly. + Distribution *string `locationName:"distribution" type:"string" enum:"Distribution"` + // A name for the subscription filter. // // FilterName is a required field @@ -5205,6 +5512,12 @@ func (s *PutSubscriptionFilterInput) SetDestinationArn(v string) *PutSubscriptio return s } +// SetDistribution sets the Distribution field's value. +func (s *PutSubscriptionFilterInput) SetDistribution(v string) *PutSubscriptionFilterInput { + s.Distribution = &v + return s +} + // SetFilterName sets the FilterName field's value. func (s *PutSubscriptionFilterInput) SetFilterName(v string) *PutSubscriptionFilterInput { s.FilterName = &v @@ -5328,6 +5641,10 @@ type SubscriptionFilter struct { // The Amazon Resource Name (ARN) of the destination. DestinationArn *string `locationName:"destinationArn" min:"1" type:"string"` + // The method used to distribute log data to the destination, when the destination + // is an Amazon Kinesis stream. + Distribution *string `locationName:"distribution" type:"string" enum:"Distribution"` + // The name of the subscription filter. FilterName *string `locationName:"filterName" min:"1" type:"string"` @@ -5365,6 +5682,12 @@ func (s *SubscriptionFilter) SetDestinationArn(v string) *SubscriptionFilter { return s } +// SetDistribution sets the Distribution field's value. +func (s *SubscriptionFilter) SetDistribution(v string) *SubscriptionFilter { + s.Distribution = &v + return s +} + // SetFilterName sets the FilterName field's value. func (s *SubscriptionFilter) SetFilterName(v string) *SubscriptionFilter { s.FilterName = &v @@ -5389,6 +5712,78 @@ func (s *SubscriptionFilter) SetRoleArn(v string) *SubscriptionFilter { return s } +type TagLogGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the log group. + // + // LogGroupName is a required field + LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"` + + // The key-value pairs to use for the tags. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"` +} + +// String returns the string representation +func (s TagLogGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagLogGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagLogGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagLogGroupInput"} + if s.LogGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("LogGroupName")) + } + if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLogGroupName sets the LogGroupName field's value. +func (s *TagLogGroupInput) SetLogGroupName(v string) *TagLogGroupInput { + s.LogGroupName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagLogGroupInput) SetTags(v map[string]*string) *TagLogGroupInput { + s.Tags = v + return s +} + +type TagLogGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagLogGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagLogGroupOutput) GoString() string { + return s.String() +} + type TestMetricFilterInput struct { _ struct{} `type:"structure"` @@ -5470,6 +5865,86 @@ func (s *TestMetricFilterOutput) SetMatches(v []*MetricFilterMatchRecord) *TestM return s } +type UntagLogGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the log group. + // + // LogGroupName is a required field + LogGroupName *string `locationName:"logGroupName" min:"1" type:"string" required:"true"` + + // The tag keys. The corresponding tags are removed from the log group. + // + // Tags is a required field + Tags []*string `locationName:"tags" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagLogGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagLogGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagLogGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagLogGroupInput"} + if s.LogGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("LogGroupName")) + } + if s.LogGroupName != nil && len(*s.LogGroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLogGroupName sets the LogGroupName field's value. +func (s *UntagLogGroupInput) SetLogGroupName(v string) *UntagLogGroupInput { + s.LogGroupName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *UntagLogGroupInput) SetTags(v []*string) *UntagLogGroupInput { + s.Tags = v + return s +} + +type UntagLogGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagLogGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagLogGroupOutput) GoString() string { + return s.String() +} + +const ( + // DistributionRandom is a Distribution enum value + DistributionRandom = "Random" + + // DistributionByLogStream is a Distribution enum value + DistributionByLogStream = "ByLogStream" +) + const ( // ExportTaskStatusCodeCancelled is a ExportTaskStatusCode enum value ExportTaskStatusCodeCancelled = "CANCELLED" diff --git a/vendor/github.com/aws/aws-sdk-go/service/elasticbeanstalk/api.go b/vendor/github.com/aws/aws-sdk-go/service/elasticbeanstalk/api.go index 5d481072c..e2a1168fe 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elasticbeanstalk/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elasticbeanstalk/api.go @@ -393,7 +393,18 @@ func (c *ElasticBeanstalk) CreateApplicationVersionRequest(input *CreateApplicat // CreateApplicationVersion API operation for AWS Elastic Beanstalk. // -// Creates an application version for the specified application. +// Creates an application version for the specified application. You can create +// an application version from a source bundle in Amazon S3, a commit in AWS +// CodeCommit, or the output of an AWS CodeBuild build as follows: +// +// Specify a commit in an AWS CodeCommit repository with SourceBuildInformation. +// +// Specify a build in an AWS CodeBuild with SourceBuildInformation and BuildConfiguration. +// +// Specify a source bundle in S3 with SourceBundle +// +// Omit both SourceBuildInformation and SourceBundle to use the default sample +// application. // // Once you create an application version with a specified Amazon S3 bucket // and key location, you cannot change that Amazon S3 location. If you change @@ -420,10 +431,16 @@ func (c *ElasticBeanstalk) CreateApplicationVersionRequest(input *CreateApplicat // // * S3LocationNotInServiceRegionException // The specified S3 bucket does not belong to the S3 region in which the service -// is running. +// is running. The following regions are supported: +// +// * IAD/us-east-1 +// +// * PDX/us-west-2 +// +// * DUB/eu-west-1 // // * CodeBuildNotInServiceRegionException -// The CodeBuild service is not supported in this region. +// AWS CodeBuild is not available in the specified region. // func (c *ElasticBeanstalk) CreateApplicationVersion(input *CreateApplicationVersionInput) (*ApplicationVersionDescriptionMessage, error) { req, out := c.CreateApplicationVersionRequest(input) @@ -799,7 +816,13 @@ func (c *ElasticBeanstalk) DeleteApplicationVersionRequest(input *DeleteApplicat // // * S3LocationNotInServiceRegionException // The specified S3 bucket does not belong to the S3 region in which the service -// is running. +// is running. The following regions are supported: +// +// * IAD/us-east-1 +// +// * PDX/us-west-2 +// +// * DUB/eu-west-1 // func (c *ElasticBeanstalk) DeleteApplicationVersion(input *DeleteApplicationVersionInput) (*DeleteApplicationVersionOutput, error) { req, out := c.DeleteApplicationVersionRequest(input) @@ -2711,6 +2734,7 @@ type ApplicationVersionDescription struct { // The name of the application to which the application version belongs. ApplicationName *string `min:"1" type:"string"` + // Reference to the artifact from the AWS CodeBuild build. BuildArn *string `type:"string"` // The creation date of the application version. @@ -2957,19 +2981,40 @@ func (s *AutoScalingGroup) SetName(v string) *AutoScalingGroup { return s } +// Settings for an AWS CodeBuild build. type BuildConfiguration struct { _ struct{} `type:"structure"` + // The name of the artifact of the CodeBuild build. If provided, Elastic Beanstalk + // stores the build artifact in the S3 location S3-bucket/resources/application-name/codebuild/codebuild-version-label-artifact-name.zip. + // If not provided, Elastic Beanstalk stores the build artifact in the S3 location + // S3-bucket/resources/application-name/codebuild/codebuild-version-label.zip. ArtifactName *string `type:"string"` + // The Amazon Resource Name (ARN) of the AWS Identity and Access Management + // (IAM) role that enables AWS CodeBuild to interact with dependent AWS services + // on behalf of the AWS account. + // // CodeBuildServiceRole is a required field CodeBuildServiceRole *string `type:"string" required:"true"` + // Information about the compute resources the build project will use. + // + // * BUILD_GENERAL1_SMALL: Use up to 3 GB memory and 2 vCPUs for builds + // + // * BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for builds + // + // * BUILD_GENERAL1_LARGE: Use up to 15 GB memory and 8 vCPUs for builds ComputeType *string `type:"string" enum:"ComputeType"` + // The ID of the Docker image to use for this build project. + // // Image is a required field Image *string `type:"string" required:"true"` + // How long in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait until + // timing out any related build that does not get marked as completed. The default + // is 60 minutes. TimeoutInMinutes *int64 `type:"integer"` } @@ -3656,6 +3701,7 @@ type CreateApplicationVersionInput struct { // already exist. AutoCreateApplication *bool `type:"boolean"` + // Settings for an AWS CodeBuild build. BuildConfiguration *BuildConfiguration `type:"structure"` // Describes this version. @@ -3668,15 +3714,13 @@ type CreateApplicationVersionInput struct { // Specify a commit in an AWS CodeCommit Git repository to use as the source // code for the application version. - // - // Specify a commit in an AWS CodeCommit repository or a source bundle in S3 - // (with SourceBundle), but not both. If neither SourceBundle nor SourceBuildInformation - // are provided, Elastic Beanstalk uses a sample application. SourceBuildInformation *SourceBuildInformation `type:"structure"` // The Amazon S3 bucket and key that identify the location of the source bundle // for this version. // + // The Amazon S3 bucket must be in the same region as the environment. + // // Specify a source bundle in S3 or a commit in an AWS CodeCommit repository // (with SourceBuildInformation), but not both. If neither SourceBundle nor // SourceBuildInformation are provided, Elastic Beanstalk uses a sample application. @@ -7421,18 +7465,32 @@ func (s *SolutionStackDescription) SetSolutionStackName(v string) *SolutionStack type SourceBuildInformation struct { _ struct{} `type:"structure"` - // The repository name and commit ID, separated by a forward slash. For example, - // my-repo/265cfa0cf6af46153527f55d6503ec030551f57a. + // The location of the source code, as a formatted string, depending on the + // value of SourceRepository + // + // * For CodeCommit, the format is the repository name and commit ID, separated + // by a forward slash. For example, my-git-repo/265cfa0cf6af46153527f55d6503ec030551f57a. + // + // * For S3, the format is the S3 bucket name and object key, separated by + // a forward slash. For example, my-s3-bucket/Folders/my-source-file. // // SourceLocation is a required field SourceLocation *string `min:"3" type:"string" required:"true"` - // Location where the repository is stored, such as CodeCommit. + // Location where the repository is stored. + // + // * CodeCommit + // + // * S3 // // SourceRepository is a required field SourceRepository *string `type:"string" required:"true" enum:"SourceRepository"` - // The type of repository, such as Git. + // The type of repository. + // + // * Git + // + // * Zip // // SourceType is a required field SourceType *string `type:"string" required:"true" enum:"SourceType"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go index 31cacb068..af2fec3f5 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go @@ -9428,9 +9428,12 @@ type CreateDBInstanceInput struct { // // Oracle 12c // - // 12.1.0.2.v5 (supported for EE in all AWS regions, and SE2 in all AWS regions + // 12.1.0.2.v6 (supported for EE in all AWS regions, and SE2 in all AWS regions // except us-gov-west-1) // + // * 12.1.0.2.v5 (supported for EE in all AWS regions, and SE2 in all AWS + // regions except us-gov-west-1) + // // * 12.1.0.2.v4 (supported for EE in all AWS regions, and SE2 in all AWS // regions except us-gov-west-1) // @@ -9463,6 +9466,8 @@ type CreateDBInstanceInput struct { // // Oracle 11g // + // * 11.2.0.4.v10 (supported for EE, SE1, and SE, in all AWS regions) + // // * 11.2.0.4.v9 (supported for EE, SE1, and SE, in all AWS regions) // // * 11.2.0.4.v8 (supported for EE, SE1, and SE, in all AWS regions) diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/route53/customizations.go index 91af196e2..13d3d65bb 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53/customizations.go +++ b/vendor/github.com/aws/aws-sdk-go/service/route53/customizations.go @@ -25,6 +25,6 @@ func init() { var reSanitizeURL = regexp.MustCompile(`\/%2F\w+%2F`) func sanitizeURL(r *request.Request) { - r.HTTPRequest.URL.Opaque = - reSanitizeURL.ReplaceAllString(r.HTTPRequest.URL.Opaque, "/") + r.HTTPRequest.URL.RawPath = + reSanitizeURL.ReplaceAllString(r.HTTPRequest.URL.RawPath, "/") } diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go index ce65fcdaf..5a78fd337 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go @@ -5,7 +5,6 @@ import ( "io/ioutil" "net/http" - "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" ) @@ -17,8 +16,8 @@ func copyMultipartStatusOKUnmarhsalError(r *request.Request) { return } body := bytes.NewReader(b) - r.HTTPResponse.Body = aws.ReadSeekCloser(body) - defer r.HTTPResponse.Body.(aws.ReaderSeekerCloser).Seek(0, 0) + r.HTTPResponse.Body = ioutil.NopCloser(body) + defer body.Seek(0, 0) if body.Len() == 0 { // If there is no body don't attempt to parse the body. diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go index fb8947cb0..b2586a647 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go @@ -970,10 +970,9 @@ type AssumeRoleInput struct { // External ID When Granting Access to Your AWS Resources to a Third Party (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) // in the IAM User Guide. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters consisting of upper- and lower-case alphanumeric characters - // with no spaces. You can also include underscores or any of the following - // characters: =,.@:\/- + // The regex used to validated this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can + // also include underscores or any of the following characters: =,.@:\/- ExternalId *string `min:"2" type:"string"` // An IAM policy in JSON format. @@ -1017,10 +1016,9 @@ type AssumeRoleInput struct { // requests using the temporary security credentials will expose the role session // name to the external account in their CloudTrail logs. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters consisting of upper- and lower-case alphanumeric characters - // with no spaces. You can also include underscores or any of the following - // characters: =,.@- + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can + // also include underscores or any of the following characters: =,.@- // // RoleSessionName is a required field RoleSessionName *string `min:"2" type:"string" required:"true"` @@ -1031,10 +1029,9 @@ type AssumeRoleInput struct { // The value is either the serial number for a hardware device (such as GAHT12345678) // or an Amazon Resource Name (ARN) for a virtual device (such as arn:aws:iam::123456789012:mfa/user). // - // The format for this parameter, as described by its regex pattern, is a string - // of characters consisting of upper- and lower-case alphanumeric characters - // with no spaces. You can also include underscores or any of the following - // characters: =,.@- + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can + // also include underscores or any of the following characters: =,.@- SerialNumber *string `min:"9" type:"string"` // The value provided by the MFA device, if the trust policy of the role being @@ -1503,10 +1500,9 @@ type AssumeRoleWithWebIdentityInput struct { // are associated with that user. This session name is included as part of the // ARN and assumed role ID in the AssumedRoleUser response element. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters consisting of upper- and lower-case alphanumeric characters - // with no spaces. You can also include underscores or any of the following - // characters: =,.@- + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can + // also include underscores or any of the following characters: =,.@- // // RoleSessionName is a required field RoleSessionName *string `min:"2" type:"string" required:"true"` @@ -1983,10 +1979,9 @@ type GetFederationTokenInput struct { // the federated user name in a resource-based policy, such as in an Amazon // S3 bucket policy. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters consisting of upper- and lower-case alphanumeric characters - // with no spaces. You can also include underscores or any of the following - // characters: =,.@- + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can + // also include underscores or any of the following characters: =,.@- // // Name is a required field Name *string `min:"2" type:"string" required:"true"` @@ -2146,10 +2141,9 @@ type GetSessionTokenInput struct { // You can find the device for an IAM user by going to the AWS Management Console // and viewing the user's security credentials. // - // The format for this parameter, as described by its regex pattern, is a string - // of characters consisting of upper- and lower-case alphanumeric characters - // with no spaces. You can also include underscores or any of the following - // characters: =,.@- + // The regex used to validate this parameter is a string of characters consisting + // of upper- and lower-case alphanumeric characters with no spaces. You can + // also include underscores or any of the following characters: =,.@- SerialNumber *string `min:"9" type:"string"` // The value provided by the MFA device, if MFA is required. If any policy requires diff --git a/vendor/vendor.json b/vendor/vendor.json index 500ecafb6..947aa3204 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -385,140 +385,140 @@ "revision": "4239b77079c7b5d1243b7b4736304ce8ddb6f0f2" }, { - "checksumSHA1": "Y32T4+W6A22f/T+k5oWBu1ksZG8=", + "checksumSHA1": "nd9+foddMTPda0cIkF6765KMBcs=", "path": "github.com/aws/aws-sdk-go", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "4xOksgb6+UlSj06NdNOOw//S4hw=", + "checksumSHA1": "ahGFj5RgC5Joefht/5p5cMhzHUA=", "path": "github.com/aws/aws-sdk-go/aws", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=", "path": "github.com/aws/aws-sdk-go/aws/awserr", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=", "path": "github.com/aws/aws-sdk-go/aws/awsutil", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "7cQU8tU9hBgsG23XZmko1GePqjQ=", "path": "github.com/aws/aws-sdk-go/aws/client", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=", "path": "github.com/aws/aws-sdk-go/aws/client/metadata", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "Fl8vRSCY0MbM04cmiz/0MID+goA=", "path": "github.com/aws/aws-sdk-go/aws/corehandlers", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "zu5C95rmCZff6NYZb62lEaT5ibE=", "path": "github.com/aws/aws-sdk-go/aws/credentials", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "u3GOAJLmdvbuNUeUEcZSEAOeL/0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "4Ipx+5xN0gso+cENC2MHMWmQlR4=", "path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "lqh3fG7wCochvB4iHAZJuhhEJW0=", "path": "github.com/aws/aws-sdk-go/aws/defaults", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "/EXbk/z2TWjWc1Hvb4QYs3Wmhb8=", "path": "github.com/aws/aws-sdk-go/aws/ec2metadata", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "Lqo3kG7oU3dkZwQ5LPINQtrVL+s=", + "checksumSHA1": "MDLZrTWsMnIsV7QQ2/EihyUIhD4=", "path": "github.com/aws/aws-sdk-go/aws/endpoints", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "yVSL6yhjj0Pozx4NVrWA3aguENg=", + "checksumSHA1": "FKHrq0EqTXjYx0EpqsKjg/RkPlQ=", "path": "github.com/aws/aws-sdk-go/aws/request", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "HynfxYegMG8sq9MpFfPu7h1EOvI=", "path": "github.com/aws/aws-sdk-go/aws/session", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "bjf3WCqht846AsRh85c8d7iLmsk=", + "checksumSHA1": "Yb1r9w4+sfvUoOilac1Z80jRCSA=", "path": "github.com/aws/aws-sdk-go/aws/signer/v4", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "Esab5F8KswqkTdB4TtjSvZgs56k=", @@ -531,450 +531,450 @@ { "checksumSHA1": "wk7EyvDaHwb5qqoOP/4d3cV0708=", "path": "github.com/aws/aws-sdk-go/private/protocol", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "1QmQ3FqV37w0Zi44qv8pA1GeR0A=", "path": "github.com/aws/aws-sdk-go/private/protocol/ec2query", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "pNeF0Ey7TfBArH5LBQhKOQXQbLY=", "path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=", "path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "ZqY5RWavBLWTo6j9xqdyBEaNFRk=", "path": "github.com/aws/aws-sdk-go/private/protocol/query", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "5xzix1R8prUyWxgLnzUQoxTsfik=", "path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "dUpGLm7IHo6A40vuaEKwaCLbqu8=", + "checksumSHA1": "H8iGbMgbw4bn+UN+dcsDpP8koxc=", "path": "github.com/aws/aws-sdk-go/private/protocol/rest", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "Rpu8KBtHZgvhkwHxUfaky+qW+G4=", "path": "github.com/aws/aws-sdk-go/private/protocol/restjson", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=", "path": "github.com/aws/aws-sdk-go/private/protocol/restxml", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "gEJLFS3ltnGYsfm2kXEPpxC1r0w=", "path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "F6mth+G7dXN1GI+nktaGo8Lx8aE=", "path": "github.com/aws/aws-sdk-go/private/signer/v2", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "Eo9yODN5U99BK0pMzoqnBm7PCrY=", "path": "github.com/aws/aws-sdk-go/private/waiter", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "TDz2yddSHFPJc/C22iNs4878PHM=", "path": "github.com/aws/aws-sdk-go/service/acm", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "P64s704ATrUQRxVBFZqJOAYMjjI=", "path": "github.com/aws/aws-sdk-go/service/apigateway", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "1Pd+tSJCCgCOOfaep0R8ULeFcps=", "path": "github.com/aws/aws-sdk-go/service/applicationautoscaling", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "YP2elni/MgVN2Y6zsYpdFTmeqhI=", "path": "github.com/aws/aws-sdk-go/service/autoscaling", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "lCpOwC1fXad6ryDTypq0F4JtaS0=", "path": "github.com/aws/aws-sdk-go/service/cloudformation", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "Mh4SHt8v6TpcInltokbNmyrPjmM=", "path": "github.com/aws/aws-sdk-go/service/cloudfront", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "BLNtHos7msi3UgPBabM5aGFBQLE=", "path": "github.com/aws/aws-sdk-go/service/cloudtrail", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "WMY04nOx+iSSqUvzhhXK0VQSMyo=", "path": "github.com/aws/aws-sdk-go/service/cloudwatch", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "ylJusOEGXzgULSm4HJxizIVv9C4=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchevents", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "+yi+erDoYK8na5KSqvmThSJAUuc=", + "checksumSHA1": "om/aeTKkJTlbcO0KF6hinM3xmgw=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchlogs", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "Jng3vw4P9MUVqz9DEtpKtkE+NzY=", "path": "github.com/aws/aws-sdk-go/service/codecommit", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "C/9H+tfWy7SYZjnKRSVpVKtuq5U=", "path": "github.com/aws/aws-sdk-go/service/codedeploy", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "EZp2Hsz9AePGNEJj6UXTOrjgZ7E=", "path": "github.com/aws/aws-sdk-go/service/directoryservice", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "1UC9irawr68ulnNczZ2He1hprIk=", "path": "github.com/aws/aws-sdk-go/service/dynamodb", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "YA/T7rrQeSok3Hvq14HezMXVdgM=", "path": "github.com/aws/aws-sdk-go/service/ec2", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "GoO3KLWKTC69nWtcLFd6I+0BviE=", "path": "github.com/aws/aws-sdk-go/service/ecr", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "HiXiiX/5C6GA3E2/4QGIjcX9Ph0=", "path": "github.com/aws/aws-sdk-go/service/ecs", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "rhCpeCHIb7gHMG3AzaeJ9gj90Ss=", "path": "github.com/aws/aws-sdk-go/service/efs", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "xnolozwEtUYa0ve4MhDECFP89E0=", "path": "github.com/aws/aws-sdk-go/service/elasticache", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "8kPGuxiLTDyU9qhpKqCGMu0uXh0=", + "checksumSHA1": "PDdjF1KoxDPp+YaLLdVqR55Up68=", "path": "github.com/aws/aws-sdk-go/service/elasticbeanstalk", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "P/fyidKJvpLRYkQ/kPI+TwR8mho=", "path": "github.com/aws/aws-sdk-go/service/elasticsearchservice", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "IS6CjupSEiS74a+CE4oNVPa5KCA=", "path": "github.com/aws/aws-sdk-go/service/elastictranscoder", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "pJ3cqQyo+6DmScOAGzoN/AbBN0I=", "path": "github.com/aws/aws-sdk-go/service/elb", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "0/6y8+qPnDY9Dt2rNSzXyZwBDZ8=", "path": "github.com/aws/aws-sdk-go/service/elbv2", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "qF4j44Lj+8bQyN4JtFnLC/rdQQU=", "path": "github.com/aws/aws-sdk-go/service/emr", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "V5X1oCT01nRtG9IJR7vme1uEy6M=", "path": "github.com/aws/aws-sdk-go/service/firehose", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "0T1k3TvEF9NGsDBYstyQ0EfML5U=", "path": "github.com/aws/aws-sdk-go/service/glacier", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "iZwFeUHpehkIRTnJW15F0U+vXy4=", "path": "github.com/aws/aws-sdk-go/service/iam", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "YDO2aF3ENw9aAqR2S3I1cVzu5Ys=", "path": "github.com/aws/aws-sdk-go/service/kinesis", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "CVgX/hDnfMt97xblJSD6doFKQX0=", "path": "github.com/aws/aws-sdk-go/service/kms", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "ym8DU7gjdHNjr82Yv+B7/Ba9nak=", "path": "github.com/aws/aws-sdk-go/service/lambda", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "Jo8pWTgFDpH3UjUFH8vYuNRHliM=", "path": "github.com/aws/aws-sdk-go/service/lightsail", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "CBDFLQpRfZtB9Symsz75x+rvX+8=", "path": "github.com/aws/aws-sdk-go/service/opsworks", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "U1L9GpoLI0wS0A/HXsA22fq6iSE=", + "checksumSHA1": "ztQJeRw3JSTenyyGXJe/ofpg13k=", "path": "github.com/aws/aws-sdk-go/service/rds", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "gaVND3Q/AISc7O5XpvEs6N0jBPQ=", "path": "github.com/aws/aws-sdk-go/service/redshift", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "IUqMex8vm/eplN5SnhqEBsNvIfA=", + "checksumSHA1": "VLCTFZCbH5+lsb//FBtHpksCf+U=", "path": "github.com/aws/aws-sdk-go/service/route53", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "u52HRY/P/tJnAPDG+PvAAaiYZvM=", + "checksumSHA1": "P4zlIUVrFx5kaMA8OZHsjgNekiM=", "path": "github.com/aws/aws-sdk-go/service/s3", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "UB+GbtUsEGWDtBi9CRgkQr5EMJU=", "path": "github.com/aws/aws-sdk-go/service/ses", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "lTQe5o+2c+Xsp40wjYzLtgmgRqE=", "path": "github.com/aws/aws-sdk-go/service/simpledb", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "eLaZeCUS3hDQ+zzsFZb0CJBMKfQ=", "path": "github.com/aws/aws-sdk-go/service/sns", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "axR50MilXNLES2LyS4JZvINO6E8=", "path": "github.com/aws/aws-sdk-go/service/sqs", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "VJ3ESVb5RvAGkY4zPETJ3ia4v38=", "path": "github.com/aws/aws-sdk-go/service/ssm", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { - "checksumSHA1": "Y14Bai6CkzS0FI97MtC5XjQt8Iw=", + "checksumSHA1": "2GbOcDpIXjtkoQVOfWv7E4DAUbY=", "path": "github.com/aws/aws-sdk-go/service/sts", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "s0hZKoL3y62JP2/3+ciUU3hhLW4=", "path": "github.com/aws/aws-sdk-go/service/waf", - "revision": "1355b456f6ba4a8453249e0dc7743f16ccac362d", - "revisionTime": "2016-12-09T00:47:51Z", - "version": "v1.6.2", - "versionExact": "v1.6.2" + "revision": "ad048b5f9e1187bee316f6919971c0e122d701e4", + "revisionTime": "2016-12-15T00:21:09Z", + "version": "v1.6.3", + "versionExact": "v1.6.3" }, { "checksumSHA1": "nqw2Qn5xUklssHTubS5HDvEL9L4=",