update go-aws-sdk to v1.12.71

This commit is contained in:
Matthew Hooker 2018-02-05 14:21:28 -08:00
parent 7d5d62d748
commit 8827df1ed2
No known key found for this signature in database
GPG Key ID: 7B5F933D9CE8C6A1
38 changed files with 5557 additions and 813 deletions

File diff suppressed because it is too large Load Diff

View File

@ -67,7 +67,7 @@ Please be aware of the following notes prior to opening a pull request:
5. The JSON files under the SDK's `models` folder are sourced from outside the SDK. 5. The JSON files under the SDK's `models` folder are sourced from outside the SDK.
Such as `models/apis/ec2/2016-11-15/api.json`. We will not accept pull requests Such as `models/apis/ec2/2016-11-15/api.json`. We will not accept pull requests
directly on these models. If you discover an issue with the models please directly on these models. If you discover an issue with the models please
create a Github [issue](issues) describing the issue. create a [GitHub issue][issues] describing the issue.
### Testing ### Testing

20
vendor/github.com/aws/aws-sdk-go/Gopkg.lock generated vendored Normal file
View File

@ -0,0 +1,20 @@
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
[[projects]]
name = "github.com/go-ini/ini"
packages = ["."]
revision = "300e940a926eb277d3901b20bdfcc54928ad3642"
version = "v1.25.4"
[[projects]]
name = "github.com/jmespath/go-jmespath"
packages = ["."]
revision = "0b12d6b5"
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "51a86a867df617990082dec6b868e4efe2fdb2ed0e02a3daa93cd30f962b5085"
solver-name = "gps-cdcl"
solver-version = 1

48
vendor/github.com/aws/aws-sdk-go/Gopkg.toml generated vendored Normal file
View File

@ -0,0 +1,48 @@
# Gopkg.toml example
#
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
# name = "github.com/user/project"
# version = "1.0.0"
#
# [[constraint]]
# name = "github.com/user/project2"
# branch = "dev"
# source = "github.com/myfork/project2"
#
# [[override]]
# name = "github.com/x/y"
# version = "2.4.0"
ignored = [
# Testing/Example/Codegen dependencies
"github.com/stretchr/testify",
"github.com/stretchr/testify/assert",
"github.com/stretchr/testify/require",
"github.com/go-sql-driver/mysql",
"github.com/gucumber/gucumber",
"github.com/pkg/errors",
"golang.org/x/net",
"golang.org/x/net/html",
"golang.org/x/net/http2",
"golang.org/x/text",
"golang.org/x/text/html",
"golang.org/x/tools",
"golang.org/x/tools/go/loader",
]
[[constraint]]
name = "github.com/go-ini/ini"
version = "1.25.4"
[[constraint]]
name = "github.com/jmespath/go-jmespath"
revision = "0b12d6b5"
#version = "0.2.2"

View File

@ -74,7 +74,7 @@ smoke-tests: get-deps-tests
performance: 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 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-go15 sandbox-test-go15-novendorexp sandbox-test-go16 sandbox-test-go17 sandbox-test-go18 sandbox-test-gotip sandbox-tests: sandbox-test-go15 sandbox-test-go15-novendorexp sandbox-test-go16 sandbox-test-go17 sandbox-test-go18 sandbox-test-go19 sandbox-test-gotip
sandbox-build-go15: sandbox-build-go15:
docker build -f ./awstesting/sandbox/Dockerfile.test.go1.5 -t "aws-sdk-go-1.5" . docker build -f ./awstesting/sandbox/Dockerfile.test.go1.5 -t "aws-sdk-go-1.5" .
@ -111,6 +111,13 @@ sandbox-go18: sandbox-build-go18
sandbox-test-go18: sandbox-build-go18 sandbox-test-go18: sandbox-build-go18
docker run -t aws-sdk-go-1.8 docker run -t aws-sdk-go-1.8
sandbox-build-go19:
docker build -f ./awstesting/sandbox/Dockerfile.test.go1.8 -t "aws-sdk-go-1.9" .
sandbox-go19: sandbox-build-go19
docker run -i -t aws-sdk-go-1.9 bash
sandbox-test-go19: sandbox-build-go19
docker run -t aws-sdk-go-1.9
sandbox-build-gotip: sandbox-build-gotip:
@echo "Run make update-aws-golang-tip, if this test fails because missing aws-golang:tip container" @echo "Run make update-aws-golang-tip, if this test fails because missing aws-golang:tip container"
docker build -f ./awstesting/sandbox/Dockerfile.test.gotip -t "aws-sdk-go-tip" . docker build -f ./awstesting/sandbox/Dockerfile.test.gotip -t "aws-sdk-go-tip" .

View File

@ -6,6 +6,8 @@ aws-sdk-go is the official AWS SDK for the Go programming language.
Checkout our [release notes](https://github.com/aws/aws-sdk-go/releases) for information about the latest bug fixes, updates, and features added to the SDK. Checkout our [release notes](https://github.com/aws/aws-sdk-go/releases) for information about the latest bug fixes, updates, and features added to the SDK.
We [announced](https://aws.amazon.com/blogs/developer/aws-sdk-for-go-2-0-developer-preview/) the Developer Preview for the [v2 AWS SDK for Go](). The v2 SDK is available at https://github.com/aws/aws-sdk-go-v2, and `go get github.com/aws/aws-sdk-go-v2` via `go get`. Check out the v2 SDK's [changes and updates](https://github.com/aws/aws-sdk-go-v2/blob/master/CHANGELOG.md), and let us know what you think. We want your feedback.
## Installing ## Installing
If you are using Go 1.5 with the `GO15VENDOREXPERIMENT=1` vendoring flag, or 1.6 and higher you can use the following command to retrieve the SDK. The SDK's non-testing dependencies will be included and are vendored in the `vendor` folder. If you are using Go 1.5 with the `GO15VENDOREXPERIMENT=1` vendoring flag, or 1.6 and higher you can use the following command to retrieve the SDK. The SDK's non-testing dependencies will be included and are vendored in the `vendor` folder.
@ -185,7 +187,7 @@ Option's SharedConfigState parameter.
})) }))
``` ```
[credentials_pkg]: ttps://docs.aws.amazon.com/sdk-for-go/api/aws/credentials [credentials_pkg]: https://docs.aws.amazon.com/sdk-for-go/api/aws/credentials
### Configuring AWS Region ### Configuring AWS Region
@ -305,7 +307,7 @@ documentation for the errors that could be returned.
// will leak connections. // will leak connections.
defer result.Body.Close() defer result.Body.Close()
fmt.Println("Object Size:", aws.StringValue(result.ContentLength)) fmt.Println("Object Size:", aws.Int64Value(result.ContentLength))
``` ```
### API Request Pagination and Resource Waiters ### API Request Pagination and Resource Waiters

View File

@ -2,6 +2,7 @@ package client
import ( import (
"math/rand" "math/rand"
"strconv"
"sync" "sync"
"time" "time"
@ -38,14 +39,18 @@ func (d DefaultRetryer) RetryRules(r *request.Request) time.Duration {
minTime := 30 minTime := 30
throttle := d.shouldThrottle(r) throttle := d.shouldThrottle(r)
if throttle { if throttle {
if delay, ok := getRetryDelay(r); ok {
return delay
}
minTime = 500 minTime = 500
} }
retryCount := r.RetryCount retryCount := r.RetryCount
if retryCount > 13 { if throttle && retryCount > 8 {
retryCount = 13
} else if throttle && retryCount > 8 {
retryCount = 8 retryCount = 8
} else if retryCount > 13 {
retryCount = 13
} }
delay := (1 << uint(retryCount)) * (seededRand.Intn(minTime) + minTime) delay := (1 << uint(retryCount)) * (seededRand.Intn(minTime) + minTime)
@ -68,12 +73,49 @@ func (d DefaultRetryer) ShouldRetry(r *request.Request) bool {
// ShouldThrottle returns true if the request should be throttled. // ShouldThrottle returns true if the request should be throttled.
func (d DefaultRetryer) shouldThrottle(r *request.Request) bool { func (d DefaultRetryer) shouldThrottle(r *request.Request) bool {
if r.HTTPResponse.StatusCode == 502 || switch r.HTTPResponse.StatusCode {
r.HTTPResponse.StatusCode == 503 || case 429:
r.HTTPResponse.StatusCode == 504 { case 502:
return true case 503:
case 504:
default:
return r.IsErrorThrottle()
} }
return r.IsErrorThrottle()
return true
}
// This will look in the Retry-After header, RFC 7231, for how long
// it will wait before attempting another request
func getRetryDelay(r *request.Request) (time.Duration, bool) {
if !canUseRetryAfterHeader(r) {
return 0, false
}
delayStr := r.HTTPResponse.Header.Get("Retry-After")
if len(delayStr) == 0 {
return 0, false
}
delay, err := strconv.Atoi(delayStr)
if err != nil {
return 0, false
}
return time.Duration(delay) * time.Second, true
}
// Will look at the status code to see if the retry header pertains to
// the status code.
func canUseRetryAfterHeader(r *request.Request) bool {
switch r.HTTPResponse.StatusCode {
case 429:
case 503:
default:
return false
}
return true
} }
// lockedSource is a thread-safe implementation of rand.Source // lockedSource is a thread-safe implementation of rand.Source

View File

@ -168,7 +168,7 @@ type Config struct {
// //
EC2MetadataDisableTimeoutOverride *bool EC2MetadataDisableTimeoutOverride *bool
// Instructs the endpiont to be generated for a service client to // Instructs the endpoint to be generated for a service client to
// be the dual stack endpoint. The dual stack endpoint will support // be the dual stack endpoint. The dual stack endpoint will support
// both IPv4 and IPv6 addressing. // both IPv4 and IPv6 addressing.
// //

View File

@ -9,6 +9,7 @@ package defaults
import ( import (
"fmt" "fmt"
"net"
"net/http" "net/http"
"net/url" "net/url"
"os" "os"
@ -118,14 +119,43 @@ func RemoteCredProvider(cfg aws.Config, handlers request.Handlers) credentials.P
return ec2RoleProvider(cfg, handlers) return ec2RoleProvider(cfg, handlers)
} }
var lookupHostFn = net.LookupHost
func isLoopbackHost(host string) (bool, error) {
ip := net.ParseIP(host)
if ip != nil {
return ip.IsLoopback(), nil
}
// Host is not an ip, perform lookup
addrs, err := lookupHostFn(host)
if err != nil {
return false, err
}
for _, addr := range addrs {
if !net.ParseIP(addr).IsLoopback() {
return false, nil
}
}
return true, nil
}
func localHTTPCredProvider(cfg aws.Config, handlers request.Handlers, u string) credentials.Provider { func localHTTPCredProvider(cfg aws.Config, handlers request.Handlers, u string) credentials.Provider {
var errMsg string var errMsg string
parsed, err := url.Parse(u) parsed, err := url.Parse(u)
if err != nil { if err != nil {
errMsg = fmt.Sprintf("invalid URL, %v", err) errMsg = fmt.Sprintf("invalid URL, %v", err)
} else if host := aws.URLHostname(parsed); !(host == "localhost" || host == "127.0.0.1") { } else {
errMsg = fmt.Sprintf("invalid host address, %q, only localhost and 127.0.0.1 are valid.", host) host := aws.URLHostname(parsed)
if len(host) == 0 {
errMsg = "unable to parse host from local HTTP cred provider URL"
} else if isLoopback, loopbackErr := isLoopbackHost(host); loopbackErr != nil {
errMsg = fmt.Sprintf("failed to resolve host %q, %v", host, loopbackErr)
} else if !isLoopback {
errMsg = fmt.Sprintf("invalid endpoint host, %q, only loopback hosts are allowed.", host)
}
} }
if len(errMsg) > 0 { if len(errMsg) > 0 {

View File

@ -4,6 +4,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"io" "io"
"os"
"github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/awserr"
) )
@ -84,11 +85,34 @@ func decodeV3Endpoints(modelDef modelDefinition, opts DecodeModelOptions) (Resol
custAddEC2Metadata(p) custAddEC2Metadata(p)
custAddS3DualStack(p) custAddS3DualStack(p)
custRmIotDataService(p) custRmIotDataService(p)
custFixCloudHSMv2SigningName(p)
} }
return ps, nil return ps, nil
} }
func custFixCloudHSMv2SigningName(p *partition) {
// Workaround for aws/aws-sdk-go#1745 until the endpoint model can be
// fixed upstream. TODO remove this once the endpoints model is updated.
s, ok := p.Services["cloudhsmv2"]
if !ok {
return
}
if len(s.Defaults.CredentialScope.Service) != 0 {
fmt.Fprintf(os.Stderr, "cloudhsmv2 signing name already set, ignoring override.\n")
// If the value is already set don't override
return
}
s.Defaults.CredentialScope.Service = "cloudhsm"
fmt.Fprintf(os.Stderr, "cloudhsmv2 signing name not set, overriding.\n")
p.Services["cloudhsmv2"] = s
}
func custAddS3DualStack(p *partition) { func custAddS3DualStack(p *partition) {
if p.ID != "aws" { if p.ID != "aws" {
return return

File diff suppressed because it is too large Load Diff

View File

@ -28,6 +28,10 @@ const (
// during body reads. // during body reads.
ErrCodeResponseTimeout = "ResponseTimeout" ErrCodeResponseTimeout = "ResponseTimeout"
// ErrCodeInvalidPresignExpire is returned when the expire time provided to
// presign is invalid
ErrCodeInvalidPresignExpire = "InvalidPresignExpireError"
// CanceledErrorCode is the error code that will be returned by an // CanceledErrorCode is the error code that will be returned by an
// API request that was canceled. Requests given a aws.Context may // API request that was canceled. Requests given a aws.Context may
// return this error when canceled. // return this error when canceled.
@ -42,7 +46,6 @@ type Request struct {
Retryer Retryer
Time time.Time Time time.Time
ExpireTime time.Duration
Operation *Operation Operation *Operation
HTTPRequest *http.Request HTTPRequest *http.Request
HTTPResponse *http.Response HTTPResponse *http.Response
@ -60,6 +63,11 @@ type Request struct {
LastSignedAt time.Time LastSignedAt time.Time
DisableFollowRedirects bool DisableFollowRedirects bool
// A value greater than 0 instructs the request to be signed as Presigned URL
// You should not set this field directly. Instead use Request's
// Presign or PresignRequest methods.
ExpireTime time.Duration
context aws.Context context aws.Context
built bool built bool
@ -104,6 +112,8 @@ func New(cfg aws.Config, clientInfo metadata.ClientInfo, handlers Handlers,
err = awserr.New("InvalidEndpointURL", "invalid endpoint uri", err) err = awserr.New("InvalidEndpointURL", "invalid endpoint uri", err)
} }
SanitizeHostForHeader(httpReq)
r := &Request{ r := &Request{
Config: cfg, Config: cfg,
ClientInfo: clientInfo, ClientInfo: clientInfo,
@ -250,34 +260,59 @@ func (r *Request) SetReaderBody(reader io.ReadSeeker) {
// Presign returns the request's signed URL. Error will be returned // Presign returns the request's signed URL. Error will be returned
// if the signing fails. // if the signing fails.
func (r *Request) Presign(expireTime time.Duration) (string, error) { //
r.ExpireTime = expireTime // It is invalid to create a presigned URL with a expire duration 0 or less. An
// error is returned if expire duration is 0 or less.
func (r *Request) Presign(expire time.Duration) (string, error) {
r = r.copy()
// Presign requires all headers be hoisted. There is no way to retrieve
// the signed headers not hoisted without this. Making the presigned URL
// useless.
r.NotHoist = false r.NotHoist = false
u, _, err := getPresignedURL(r, expire)
return u, err
}
// PresignRequest behaves just like presign, with the addition of returning a
// set of headers that were signed.
//
// It is invalid to create a presigned URL with a expire duration 0 or less. An
// error is returned if expire duration is 0 or less.
//
// Returns the URL string for the API operation with signature in the query string,
// and the HTTP headers that were included in the signature. These headers must
// be included in any HTTP request made with the presigned URL.
//
// To prevent hoisting any headers to the query string set NotHoist to true on
// this Request value prior to calling PresignRequest.
func (r *Request) PresignRequest(expire time.Duration) (string, http.Header, error) {
r = r.copy()
return getPresignedURL(r, expire)
}
func getPresignedURL(r *Request, expire time.Duration) (string, http.Header, error) {
if expire <= 0 {
return "", nil, awserr.New(
ErrCodeInvalidPresignExpire,
"presigned URL requires an expire duration greater than 0",
nil,
)
}
r.ExpireTime = expire
if r.Operation.BeforePresignFn != nil { if r.Operation.BeforePresignFn != nil {
r = r.copy() if err := r.Operation.BeforePresignFn(r); err != nil {
err := r.Operation.BeforePresignFn(r) return "", nil, err
if err != nil {
return "", err
} }
} }
r.Sign() if err := r.Sign(); err != nil {
if r.Error != nil { return "", nil, err
return "", r.Error
} }
return r.HTTPRequest.URL.String(), nil
}
// PresignRequest behaves just like presign, but hoists all headers and signs them.
// Also returns the signed hash back to the user
func (r *Request) PresignRequest(expireTime time.Duration) (string, http.Header, error) {
r.ExpireTime = expireTime
r.NotHoist = true
r.Sign()
if r.Error != nil {
return "", nil, r.Error
}
return r.HTTPRequest.URL.String(), r.SignedHeaderVals, nil return r.HTTPRequest.URL.String(), r.SignedHeaderVals, nil
} }
@ -573,3 +608,72 @@ func shouldRetryCancel(r *Request) bool {
errStr != "net/http: request canceled while waiting for connection") errStr != "net/http: request canceled while waiting for connection")
} }
// SanitizeHostForHeader removes default port from host and updates request.Host
func SanitizeHostForHeader(r *http.Request) {
host := getHost(r)
port := portOnly(host)
if port != "" && isDefaultPort(r.URL.Scheme, port) {
r.Host = stripPort(host)
}
}
// Returns host from request
func getHost(r *http.Request) string {
if r.Host != "" {
return r.Host
}
return r.URL.Host
}
// Hostname returns u.Host, without any port number.
//
// If Host is an IPv6 literal with a port number, Hostname returns the
// IPv6 literal without the square brackets. IPv6 literals may include
// a zone identifier.
//
// Copied from the Go 1.8 standard library (net/url)
func stripPort(hostport string) string {
colon := strings.IndexByte(hostport, ':')
if colon == -1 {
return hostport
}
if i := strings.IndexByte(hostport, ']'); i != -1 {
return strings.TrimPrefix(hostport[:i], "[")
}
return hostport[:colon]
}
// Port returns the port part of u.Host, without the leading colon.
// If u.Host doesn't contain a port, Port returns an empty string.
//
// Copied from the Go 1.8 standard library (net/url)
func portOnly(hostport string) string {
colon := strings.IndexByte(hostport, ':')
if colon == -1 {
return ""
}
if i := strings.Index(hostport, "]:"); i != -1 {
return hostport[i+len("]:"):]
}
if strings.Contains(hostport, "]") {
return ""
}
return hostport[colon+len(":"):]
}
// Returns true if the specified URI is using the standard port
// (i.e. port 80 for HTTP URIs or 443 for HTTPS URIs)
func isDefaultPort(scheme, port string) bool {
if port == "" {
return true
}
lowerCaseScheme := strings.ToLower(scheme)
if (lowerCaseScheme == "http" && port == "80") || (lowerCaseScheme == "https" && port == "443") {
return true
}
return false
}

View File

@ -142,13 +142,28 @@ func (r *Request) nextPageTokens() []interface{} {
tokens := []interface{}{} tokens := []interface{}{}
tokenAdded := false tokenAdded := false
for _, outToken := range r.Operation.OutputTokens { for _, outToken := range r.Operation.OutputTokens {
v, _ := awsutil.ValuesAtPath(r.Data, outToken) vs, _ := awsutil.ValuesAtPath(r.Data, outToken)
if len(v) > 0 { if len(vs) == 0 {
tokens = append(tokens, v[0])
tokenAdded = true
} else {
tokens = append(tokens, nil) tokens = append(tokens, nil)
continue
} }
v := vs[0]
switch tv := v.(type) {
case *string:
if len(aws.StringValue(tv)) == 0 {
tokens = append(tokens, nil)
continue
}
case string:
if len(tv) == 0 {
tokens = append(tokens, nil)
continue
}
}
tokenAdded = true
tokens = append(tokens, v)
} }
if !tokenAdded { if !tokenAdded {
return nil return nil

View File

@ -7,6 +7,9 @@ import (
"github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/credentials"
) )
// EnvProviderName provides a name of the provider when config is loaded from environment.
const EnvProviderName = "EnvConfigCredentials"
// envConfig is a collection of environment values the SDK will read // envConfig is a collection of environment values the SDK will read
// setup config from. All environment values are optional. But some values // setup config from. All environment values are optional. But some values
// such as credentials require multiple values to be complete or the values // such as credentials require multiple values to be complete or the values
@ -157,7 +160,7 @@ func envConfigLoad(enableSharedConfig bool) envConfig {
if len(cfg.Creds.AccessKeyID) == 0 || len(cfg.Creds.SecretAccessKey) == 0 { if len(cfg.Creds.AccessKeyID) == 0 || len(cfg.Creds.SecretAccessKey) == 0 {
cfg.Creds = credentials.Value{} cfg.Creds = credentials.Value{}
} else { } else {
cfg.Creds.ProviderName = "EnvConfigCredentials" cfg.Creds.ProviderName = EnvProviderName
} }
regionKeys := regionEnvKeys regionKeys := regionEnvKeys

View File

@ -268,7 +268,7 @@ type signingCtx struct {
// "X-Amz-Content-Sha256" header with a precomputed value. The signer will // "X-Amz-Content-Sha256" header with a precomputed value. The signer will
// only compute the hash if the request header value is empty. // only compute the hash if the request header value is empty.
func (v4 Signer) Sign(r *http.Request, body io.ReadSeeker, service, region string, signTime time.Time) (http.Header, error) { func (v4 Signer) Sign(r *http.Request, body io.ReadSeeker, service, region string, signTime time.Time) (http.Header, error) {
return v4.signWithBody(r, body, service, region, 0, signTime) return v4.signWithBody(r, body, service, region, 0, false, signTime)
} }
// Presign signs AWS v4 requests with the provided body, service name, region // Presign signs AWS v4 requests with the provided body, service name, region
@ -302,10 +302,10 @@ func (v4 Signer) Sign(r *http.Request, body io.ReadSeeker, service, region strin
// presigned request's signature you can set the "X-Amz-Content-Sha256" // presigned request's signature you can set the "X-Amz-Content-Sha256"
// HTTP header and that will be included in the request's signature. // HTTP header and that will be included in the request's signature.
func (v4 Signer) Presign(r *http.Request, body io.ReadSeeker, service, region string, exp time.Duration, signTime time.Time) (http.Header, error) { func (v4 Signer) Presign(r *http.Request, body io.ReadSeeker, service, region string, exp time.Duration, signTime time.Time) (http.Header, error) {
return v4.signWithBody(r, body, service, region, exp, signTime) return v4.signWithBody(r, body, service, region, exp, true, signTime)
} }
func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, region string, exp time.Duration, signTime time.Time) (http.Header, error) { func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, region string, exp time.Duration, isPresign bool, signTime time.Time) (http.Header, error) {
currentTimeFn := v4.currentTimeFn currentTimeFn := v4.currentTimeFn
if currentTimeFn == nil { if currentTimeFn == nil {
currentTimeFn = time.Now currentTimeFn = time.Now
@ -317,7 +317,7 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi
Query: r.URL.Query(), Query: r.URL.Query(),
Time: signTime, Time: signTime,
ExpireTime: exp, ExpireTime: exp,
isPresign: exp != 0, isPresign: isPresign,
ServiceName: service, ServiceName: service,
Region: region, Region: region,
DisableURIPathEscaping: v4.DisableURIPathEscaping, DisableURIPathEscaping: v4.DisableURIPathEscaping,
@ -339,6 +339,7 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi
return http.Header{}, err return http.Header{}, err
} }
ctx.sanitizeHostForHeader()
ctx.assignAmzQueryValues() ctx.assignAmzQueryValues()
ctx.build(v4.DisableHeaderHoisting) ctx.build(v4.DisableHeaderHoisting)
@ -363,6 +364,10 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi
return ctx.SignedHeaderVals, nil return ctx.SignedHeaderVals, nil
} }
func (ctx *signingCtx) sanitizeHostForHeader() {
request.SanitizeHostForHeader(ctx.Request)
}
func (ctx *signingCtx) handlePresignRemoval() { func (ctx *signingCtx) handlePresignRemoval() {
if !ctx.isPresign { if !ctx.isPresign {
return return
@ -467,7 +472,7 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time
} }
signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.GetBody(), signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.GetBody(),
name, region, req.ExpireTime, signingTime, name, region, req.ExpireTime, req.ExpireTime > 0, signingTime,
) )
if err != nil { if err != nil {
req.Error = err req.Error = err
@ -502,6 +507,8 @@ func (ctx *signingCtx) build(disableHeaderHoisting bool) {
ctx.buildTime() // no depends ctx.buildTime() // no depends
ctx.buildCredentialString() // no depends ctx.buildCredentialString() // no depends
ctx.buildBodyDigest()
unsignedHeaders := ctx.Request.Header unsignedHeaders := ctx.Request.Header
if ctx.isPresign { if ctx.isPresign {
if !disableHeaderHoisting { if !disableHeaderHoisting {
@ -513,7 +520,6 @@ func (ctx *signingCtx) build(disableHeaderHoisting bool) {
} }
} }
ctx.buildBodyDigest()
ctx.buildCanonicalHeaders(ignoredHeaders, unsignedHeaders) ctx.buildCanonicalHeaders(ignoredHeaders, unsignedHeaders)
ctx.buildCanonicalString() // depends on canon headers / signed headers ctx.buildCanonicalString() // depends on canon headers / signed headers
ctx.buildStringToSign() // depends on canon string ctx.buildStringToSign() // depends on canon string

View File

@ -5,4 +5,4 @@ package aws
const SDKName = "aws-sdk-go" const SDKName = "aws-sdk-go"
// SDKVersion is the version of this SDK // SDKVersion is the version of this SDK
const SDKVersion = "1.10.23" const SDKVersion = "1.12.71"

21
vendor/github.com/aws/aws-sdk-go/buildspec.yml generated vendored Normal file
View File

@ -0,0 +1,21 @@
version: 0.2
phases:
build:
commands:
- echo Build started on `date`
- export GOPATH=/go
- export SDK_CB_ROOT=`pwd`
- export SDK_GO_ROOT=/go/src/github.com/aws/aws-sdk-go
- mkdir -p /go/src/github.com/aws
- ln -s $SDK_CB_ROOT $SDK_GO_ROOT
- cd $SDK_GO_ROOT
- make unit
- cd $SDK_CB_ROOT
- #echo Compiling the Go code...
post_build:
commands:
- echo Build completed on `date`
#artifacts:
# files:
# - hello

View File

@ -197,7 +197,7 @@
// regions different from the Session's region. // regions different from the Session's region.
// //
// svc := s3.New(sess, &aws.Config{ // svc := s3.New(sess, &aws.Config{
// Region: aws.String(ednpoints.UsWest2RegionID), // Region: aws.String(endpoints.UsWest2RegionID),
// }) // })
// //
// See the Config type in the aws package for more information and additional // See the Config type in the aws package for more information and additional

View File

@ -12,6 +12,7 @@ import (
"strconv" "strconv"
"time" "time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/private/protocol" "github.com/aws/aws-sdk-go/private/protocol"
) )
@ -49,7 +50,10 @@ func buildAny(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) err
t = "list" t = "list"
} }
case reflect.Map: case reflect.Map:
t = "map" // cannot be a JSONValue map
if _, ok := value.Interface().(aws.JSONValue); !ok {
t = "map"
}
} }
} }
@ -210,14 +214,11 @@ func buildScalar(v reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) erro
} }
buf.Write(strconv.AppendFloat(scratch[:0], f, 'f', -1, 64)) buf.Write(strconv.AppendFloat(scratch[:0], f, 'f', -1, 64))
default: default:
switch value.Type() { switch converted := value.Interface().(type) {
case timeType: case time.Time:
converted := v.Interface().(*time.Time)
buf.Write(strconv.AppendInt(scratch[:0], converted.UTC().Unix(), 10)) buf.Write(strconv.AppendInt(scratch[:0], converted.UTC().Unix(), 10))
case byteSliceType: case []byte:
if !value.IsNil() { if !value.IsNil() {
converted := value.Interface().([]byte)
buf.WriteByte('"') buf.WriteByte('"')
if len(converted) < 1024 { if len(converted) < 1024 {
// for small buffers, using Encode directly is much faster. // for small buffers, using Encode directly is much faster.
@ -233,6 +234,12 @@ func buildScalar(v reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) erro
} }
buf.WriteByte('"') buf.WriteByte('"')
} }
case aws.JSONValue:
str, err := protocol.EncodeJSONValue(converted, protocol.QuotedEscape)
if err != nil {
return fmt.Errorf("unable to encode JSONValue, %v", err)
}
buf.WriteString(str)
default: default:
return fmt.Errorf("unsupported JSON value %v (%s)", value.Interface(), value.Type()) return fmt.Errorf("unsupported JSON value %v (%s)", value.Interface(), value.Type())
} }

View File

@ -8,6 +8,9 @@ import (
"io/ioutil" "io/ioutil"
"reflect" "reflect"
"time" "time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/private/protocol"
) )
// UnmarshalJSON reads a stream and unmarshals the results in object v. // UnmarshalJSON reads a stream and unmarshals the results in object v.
@ -50,7 +53,10 @@ func unmarshalAny(value reflect.Value, data interface{}, tag reflect.StructTag)
t = "list" t = "list"
} }
case reflect.Map: case reflect.Map:
t = "map" // cannot be a JSONValue map
if _, ok := value.Interface().(aws.JSONValue); !ok {
t = "map"
}
} }
} }
@ -183,6 +189,13 @@ func unmarshalScalar(value reflect.Value, data interface{}, tag reflect.StructTa
return err return err
} }
value.Set(reflect.ValueOf(b)) value.Set(reflect.ValueOf(b))
case aws.JSONValue:
// No need to use escaping as the value is a non-quoted string.
v, err := protocol.DecodeJSONValue(d, protocol.NoEscape)
if err != nil {
return err
}
value.Set(reflect.ValueOf(v))
default: default:
return errf() return errf()
} }

View File

@ -0,0 +1,76 @@
package protocol
import (
"encoding/base64"
"encoding/json"
"fmt"
"strconv"
"github.com/aws/aws-sdk-go/aws"
)
// EscapeMode is the mode that should be use for escaping a value
type EscapeMode uint
// The modes for escaping a value before it is marshaled, and unmarshaled.
const (
NoEscape EscapeMode = iota
Base64Escape
QuotedEscape
)
// EncodeJSONValue marshals the value into a JSON string, and optionally base64
// encodes the string before returning it.
//
// Will panic if the escape mode is unknown.
func EncodeJSONValue(v aws.JSONValue, escape EscapeMode) (string, error) {
b, err := json.Marshal(v)
if err != nil {
return "", err
}
switch escape {
case NoEscape:
return string(b), nil
case Base64Escape:
return base64.StdEncoding.EncodeToString(b), nil
case QuotedEscape:
return strconv.Quote(string(b)), nil
}
panic(fmt.Sprintf("EncodeJSONValue called with unknown EscapeMode, %v", escape))
}
// DecodeJSONValue will attempt to decode the string input as a JSONValue.
// Optionally decoding base64 the value first before JSON unmarshaling.
//
// Will panic if the escape mode is unknown.
func DecodeJSONValue(v string, escape EscapeMode) (aws.JSONValue, error) {
var b []byte
var err error
switch escape {
case NoEscape:
b = []byte(v)
case Base64Escape:
b, err = base64.StdEncoding.DecodeString(v)
case QuotedEscape:
var u string
u, err = strconv.Unquote(v)
b = []byte(u)
default:
panic(fmt.Sprintf("DecodeJSONValue called with unknown EscapeMode, %v", escape))
}
if err != nil {
return nil, err
}
m := aws.JSONValue{}
err = json.Unmarshal(b, &m)
if err != nil {
return nil, err
}
return m, nil
}

View File

@ -121,6 +121,10 @@ func (q *queryParser) parseList(v url.Values, value reflect.Value, prefix string
return nil return nil
} }
if _, ok := value.Interface().([]byte); ok {
return q.parseScalar(v, value, prefix, tag)
}
// check for unflattened list member // check for unflattened list member
if !q.isEC2 && tag.Get("flattened") == "" { if !q.isEC2 && tag.Get("flattened") == "" {
if listName := tag.Get("locationNameList"); listName == "" { if listName := tag.Get("locationNameList"); listName == "" {

View File

@ -4,7 +4,6 @@ package rest
import ( import (
"bytes" "bytes"
"encoding/base64" "encoding/base64"
"encoding/json"
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
@ -18,6 +17,7 @@ import (
"github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/private/protocol"
) )
// RFC822 returns an RFC822 formatted timestamp for AWS protocols // RFC822 returns an RFC822 formatted timestamp for AWS protocols
@ -252,13 +252,12 @@ func EscapePath(path string, encodeSep bool) string {
return buf.String() return buf.String()
} }
func convertType(v reflect.Value, tag reflect.StructTag) (string, error) { func convertType(v reflect.Value, tag reflect.StructTag) (str string, err error) {
v = reflect.Indirect(v) v = reflect.Indirect(v)
if !v.IsValid() { if !v.IsValid() {
return "", errValueNotSet return "", errValueNotSet
} }
var str string
switch value := v.Interface().(type) { switch value := v.Interface().(type) {
case string: case string:
str = value str = value
@ -273,17 +272,19 @@ func convertType(v reflect.Value, tag reflect.StructTag) (string, error) {
case time.Time: case time.Time:
str = value.UTC().Format(RFC822) str = value.UTC().Format(RFC822)
case aws.JSONValue: case aws.JSONValue:
b, err := json.Marshal(value) if len(value) == 0 {
if err != nil { return "", errValueNotSet
return "", err
} }
escaping := protocol.NoEscape
if tag.Get("location") == "header" { if tag.Get("location") == "header" {
str = base64.StdEncoding.EncodeToString(b) escaping = protocol.Base64Escape
} else { }
str = string(b) str, err = protocol.EncodeJSONValue(value, escaping)
if err != nil {
return "", fmt.Errorf("unable to encode JSONValue, %v", err)
} }
default: default:
err := fmt.Errorf("Unsupported value for param %v (%s)", v.Interface(), v.Type()) err := fmt.Errorf("unsupported value for param %v (%s)", v.Interface(), v.Type())
return "", err return "", err
} }
return str, nil return str, nil

View File

@ -3,7 +3,6 @@ package rest
import ( import (
"bytes" "bytes"
"encoding/base64" "encoding/base64"
"encoding/json"
"fmt" "fmt"
"io" "io"
"io/ioutil" "io/ioutil"
@ -16,6 +15,7 @@ import (
"github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/private/protocol"
) )
// UnmarshalHandler is a named request handler for unmarshaling rest protocol requests // UnmarshalHandler is a named request handler for unmarshaling rest protocol requests
@ -204,17 +204,11 @@ func unmarshalHeader(v reflect.Value, header string, tag reflect.StructTag) erro
} }
v.Set(reflect.ValueOf(&t)) v.Set(reflect.ValueOf(&t))
case aws.JSONValue: case aws.JSONValue:
b := []byte(header) escaping := protocol.NoEscape
var err error
if tag.Get("location") == "header" { if tag.Get("location") == "header" {
b, err = base64.StdEncoding.DecodeString(header) escaping = protocol.Base64Escape
if err != nil {
return err
}
} }
m, err := protocol.DecodeJSONValue(header, escaping)
m := aws.JSONValue{}
err = json.Unmarshal(b, &m)
if err != nil { if err != nil {
return err return err
} }

View File

@ -5428,6 +5428,10 @@ func (c *EC2) CreateVpcPeeringConnectionRequest(input *CreateVpcPeeringConnectio
// the requester VPC. The requester VPC and accepter VPC cannot have overlapping // the requester VPC. The requester VPC and accepter VPC cannot have overlapping
// CIDR blocks. // CIDR blocks.
// //
// Limitations and rules apply to a VPC peering connection. For more information,
// see the limitations (http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/vpc-peering-basics.html#vpc-peering-limitations)
// section in the VPC Peering Guide.
//
// The owner of the accepter VPC must accept the peering request to activate // The owner of the accepter VPC must accept the peering request to activate
// the peering connection. The VPC peering connection request expires after // the peering connection. The VPC peering connection request expires after
// 7 days, after which it cannot be accepted or rejected. // 7 days, after which it cannot be accepted or rejected.
@ -18933,9 +18937,9 @@ func (c *EC2) ModifyVpcEndpointServicePermissionsRequest(input *ModifyVpcEndpoin
// ModifyVpcEndpointServicePermissions API operation for Amazon Elastic Compute Cloud. // ModifyVpcEndpointServicePermissions API operation for Amazon Elastic Compute Cloud.
// //
// Modifies the permissions for your VPC endpoint service. You can add or remove // Modifies the permissions for your VPC endpoint service (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/endpoint-service.html).
// permissions for service consumers (IAM users, IAM roles, and AWS accounts) // You can add or remove permissions for service consumers (IAM users, IAM roles,
// to discover your endpoint service. // and AWS accounts) to connect to your endpoint service.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // 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 // with awserr.Error's Code and Message methods to get detailed information about
@ -29784,7 +29788,7 @@ type CreateVpcEndpointInput struct {
SecurityGroupIds []*string `locationName:"SecurityGroupId" locationNameList:"item" type:"list"` SecurityGroupIds []*string `locationName:"SecurityGroupId" locationNameList:"item" type:"list"`
// The service name. To get a list of available services, use the DescribeVpcEndpointServices // The service name. To get a list of available services, use the DescribeVpcEndpointServices
// request. // request, or get the name from the service provider.
// //
// ServiceName is a required field // ServiceName is a required field
ServiceName *string `type:"string" required:"true"` ServiceName *string `type:"string" required:"true"`
@ -33150,6 +33154,18 @@ type DescribeAddressesInput struct {
// the Elastic IP address. // the Elastic IP address.
// //
// * public-ip - The Elastic IP address. // * public-ip - The Elastic IP address.
//
// * tag:key=value - The key/value combination of a tag assigned to the resource.
// Specify the key of the tag in the filter name and the value of the tag
// in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
// for the filter name and X for the filter value.
//
// * tag-key - The key of a tag assigned to the resource. This filter is
// independent of the tag-value filter. For example, if you use both the
// filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
// assigned both the tag key Purpose (regardless of what the tag's value
// is), and the tag value X (regardless of the tag's key). If you want to
// list only resources where Purpose is X, see the tag:key=value filter.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// [EC2-Classic] One or more Elastic IP addresses. // [EC2-Classic] One or more Elastic IP addresses.
@ -36657,6 +36673,18 @@ type DescribeLaunchTemplatesInput struct {
// * create-time - The time the launch template was created. // * create-time - The time the launch template was created.
// //
// * launch-template-name - The name of the launch template. // * launch-template-name - The name of the launch template.
//
// * tag:key=value - The key/value combination of a tag assigned to the resource.
// Specify the key of the tag in the filter name and the value of the tag
// in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
// for the filter name and X for the filter value.
//
// * tag-key - The key of a tag assigned to the resource. This filter is
// independent of the tag-value filter. For example, if you use both the
// filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
// assigned both the tag key Purpose (regardless of what the tag's value
// is), and the tag value X (regardless of the tag's key). If you want to
// list only resources where Purpose is X, see the tag:key=value filter.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// One or more launch template IDs. // One or more launch template IDs.
@ -40335,9 +40363,10 @@ type DescribeTagsInput struct {
// * resource-id - The resource ID. // * resource-id - The resource ID.
// //
// * resource-type - The resource type (customer-gateway | dhcp-options | // * resource-type - The resource type (customer-gateway | dhcp-options |
// image | instance | internet-gateway | network-acl | network-interface // elastic-ip | fpga-image | image | instance | internet-gateway | launch-template
// | reserved-instances | route-table | security-group | snapshot | spot-instances-request // | natgateway | network-acl | network-interface | reserved-instances |
// | subnet | volume | vpc | vpn-connection | vpn-gateway). // route-table | security-group | snapshot | spot-instances-request | subnet
// | volume | vpc | vpc-peering-connection | vpn-connection | vpn-gateway).
// //
// * value - The tag value. // * value - The tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@ -49533,7 +49562,8 @@ func (s *InternetGateway) SetTags(v []*Tag) *InternetGateway {
type InternetGatewayAttachment struct { type InternetGatewayAttachment struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
// The current state of the attachment. // The current state of the attachment. For an Internet gateway, the state is
// available when attached to a VPC; otherwise, this value is not returned.
State *string `locationName:"state" type:"string" enum:"AttachmentStatus"` State *string `locationName:"state" type:"string" enum:"AttachmentStatus"`
// The ID of the VPC. // The ID of the VPC.
@ -60763,7 +60793,9 @@ type RunInstancesInput struct {
// The IAM instance profile. // The IAM instance profile.
IamInstanceProfile *IamInstanceProfileSpecification `locationName:"iamInstanceProfile" type:"structure"` IamInstanceProfile *IamInstanceProfileSpecification `locationName:"iamInstanceProfile" type:"structure"`
// The ID of the AMI, which you can get by calling DescribeImages. // The ID of the AMI, which you can get by calling DescribeImages. An AMI is
// required to launch an instance and must be specified here or in a launch
// template.
ImageId *string `type:"string"` ImageId *string `type:"string"`
// Indicates whether an instance stops or terminates when you initiate shutdown // Indicates whether an instance stops or terminates when you initiate shutdown
@ -66149,13 +66181,19 @@ type UserIdGroupPair struct {
// The name of the security group. In a request, use this parameter for a security // The name of the security group. In a request, use this parameter for a security
// group in EC2-Classic or a default VPC only. For a security group in a nondefault // group in EC2-Classic or a default VPC only. For a security group in a nondefault
// VPC, use the security group ID. // VPC, use the security group ID.
//
// For a referenced security group in another VPC, this value is not returned
// if the referenced security group is deleted.
GroupName *string `locationName:"groupName" type:"string"` GroupName *string `locationName:"groupName" type:"string"`
// The status of a VPC peering connection, if applicable. // The status of a VPC peering connection, if applicable.
PeeringStatus *string `locationName:"peeringStatus" type:"string"` PeeringStatus *string `locationName:"peeringStatus" type:"string"`
// The ID of an AWS account. For a referenced security group in another VPC, // The ID of an AWS account.
// the account ID of the referenced security group is returned. //
// For a referenced security group in another VPC, the account ID of the referenced
// security group is returned in the response. If the referenced security group
// is deleted, this value is not returned.
// //
// [EC2-Classic] Required when adding or removing rules that reference a security // [EC2-Classic] Required when adding or removing rules that reference a security
// group in another AWS account. // group in another AWS account.

View File

@ -4,9 +4,8 @@
// requests to Amazon Elastic Compute Cloud. // requests to Amazon Elastic Compute Cloud.
// //
// Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity // Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity
// in the Amazon Web Services (AWS) cloud. Using Amazon EC2 eliminates your // in the AWS Cloud. Using Amazon EC2 eliminates your need to invest in hardware
// need to invest in hardware up front, so you can develop and deploy applications // up front, so you can develop and deploy applications faster.
// faster.
// //
// See https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15 for more information on this service. // See https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15 for more information on this service.
// //

File diff suppressed because it is too large Load Diff

View File

@ -3,11 +3,11 @@
// Package ecr provides the client and types for making API // Package ecr provides the client and types for making API
// requests to Amazon EC2 Container Registry. // requests to Amazon EC2 Container Registry.
// //
// Amazon EC2 Container Registry (Amazon ECR) is a managed AWS Docker registry // Amazon EC2 Container Registry (Amazon ECR) is a managed Docker registry service.
// service. Customers can use the familiar Docker CLI to push, pull, and manage // Customers can use the familiar Docker CLI to push, pull, and manage images.
// images. Amazon ECR provides a secure, scalable, and reliable registry. Amazon // Amazon ECR provides a secure, scalable, and reliable registry. Amazon ECR
// ECR supports private Docker repositories with resource-based permissions // supports private Docker repositories with resource-based permissions using
// using AWS IAM so that specific users or Amazon EC2 instances can access repositories // IAM so that specific users or Amazon EC2 instances can access repositories
// and images. Developers can use the Docker CLI to author and manage images. // and images. Developers can use the Docker CLI to author and manage images.
// //
// See https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21 for more information on this service. // See https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21 for more information on this service.
@ -17,7 +17,7 @@
// //
// Using the Client // Using the Client
// //
// To Amazon EC2 Container Registry with the SDK use the New function to create // To contact Amazon EC2 Container Registry with the SDK use the New function to create
// a new service client. With that client you can make API requests to the service. // a new service client. With that client you can make API requests to the service.
// These clients are safe to use concurrently. // These clients are safe to use concurrently.
// //

View File

@ -13,8 +13,8 @@ const (
// ErrCodeImageAlreadyExistsException for service response error code // ErrCodeImageAlreadyExistsException for service response error code
// "ImageAlreadyExistsException". // "ImageAlreadyExistsException".
// //
// The specified image has already been pushed, and there are no changes to // The specified image has already been pushed, and there were no changes to
// the manifest or image tag since the last push. // the manifest or image tag after the last push.
ErrCodeImageAlreadyExistsException = "ImageAlreadyExistsException" ErrCodeImageAlreadyExistsException = "ImageAlreadyExistsException"
// ErrCodeImageNotFoundException for service response error code // ErrCodeImageNotFoundException for service response error code
@ -70,6 +70,25 @@ const (
// for this repository. // for this repository.
ErrCodeLayersNotFoundException = "LayersNotFoundException" ErrCodeLayersNotFoundException = "LayersNotFoundException"
// ErrCodeLifecyclePolicyNotFoundException for service response error code
// "LifecyclePolicyNotFoundException".
//
// The lifecycle policy could not be found, and no policy is set to the repository.
ErrCodeLifecyclePolicyNotFoundException = "LifecyclePolicyNotFoundException"
// ErrCodeLifecyclePolicyPreviewInProgressException for service response error code
// "LifecyclePolicyPreviewInProgressException".
//
// The previous lifecycle policy preview request has not completed. Please try
// again later.
ErrCodeLifecyclePolicyPreviewInProgressException = "LifecyclePolicyPreviewInProgressException"
// ErrCodeLifecyclePolicyPreviewNotFoundException for service response error code
// "LifecyclePolicyPreviewNotFoundException".
//
// There is no dry run for this repository.
ErrCodeLifecyclePolicyPreviewNotFoundException = "LifecyclePolicyPreviewNotFoundException"
// ErrCodeLimitExceededException for service response error code // ErrCodeLimitExceededException for service response error code
// "LimitExceededException". // "LimitExceededException".
// //

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
// //
// Using the Client // Using the Client
// //
// To Amazon Simple Storage Service with the SDK use the New function to create // To contact Amazon Simple Storage Service with the SDK use the New function to create
// a new service client. With that client you can make API requests to the service. // a new service client. With that client you can make API requests to the service.
// These clients are safe to use concurrently. // These clients are safe to use concurrently.
// //

View File

@ -35,7 +35,7 @@
// //
// The s3manager package's Downloader provides concurrently downloading of Objects // The s3manager package's Downloader provides concurrently downloading of Objects
// from S3. The Downloader will write S3 Object content with an io.WriterAt. // from S3. The Downloader will write S3 Object content with an io.WriterAt.
// Once the Downloader instance is created you can call Upload concurrently from // Once the Downloader instance is created you can call Download concurrently from
// multiple goroutines safely. // multiple goroutines safely.
// //
// // The session the S3 Downloader will use // // The session the S3 Downloader will use
@ -56,7 +56,7 @@
// Key: aws.String(myString), // Key: aws.String(myString),
// }) // })
// if err != nil { // if err != nil {
// return fmt.Errorf("failed to upload file, %v", err) // return fmt.Errorf("failed to download file, %v", err)
// } // }
// fmt.Printf("file downloaded, %d bytes\n", n) // fmt.Printf("file downloaded, %d bytes\n", n)
// //

View File

@ -92,6 +92,10 @@ type S3API interface {
DeleteBucketCorsWithContext(aws.Context, *s3.DeleteBucketCorsInput, ...request.Option) (*s3.DeleteBucketCorsOutput, error) DeleteBucketCorsWithContext(aws.Context, *s3.DeleteBucketCorsInput, ...request.Option) (*s3.DeleteBucketCorsOutput, error)
DeleteBucketCorsRequest(*s3.DeleteBucketCorsInput) (*request.Request, *s3.DeleteBucketCorsOutput) DeleteBucketCorsRequest(*s3.DeleteBucketCorsInput) (*request.Request, *s3.DeleteBucketCorsOutput)
DeleteBucketEncryption(*s3.DeleteBucketEncryptionInput) (*s3.DeleteBucketEncryptionOutput, error)
DeleteBucketEncryptionWithContext(aws.Context, *s3.DeleteBucketEncryptionInput, ...request.Option) (*s3.DeleteBucketEncryptionOutput, error)
DeleteBucketEncryptionRequest(*s3.DeleteBucketEncryptionInput) (*request.Request, *s3.DeleteBucketEncryptionOutput)
DeleteBucketInventoryConfiguration(*s3.DeleteBucketInventoryConfigurationInput) (*s3.DeleteBucketInventoryConfigurationOutput, error) DeleteBucketInventoryConfiguration(*s3.DeleteBucketInventoryConfigurationInput) (*s3.DeleteBucketInventoryConfigurationOutput, error)
DeleteBucketInventoryConfigurationWithContext(aws.Context, *s3.DeleteBucketInventoryConfigurationInput, ...request.Option) (*s3.DeleteBucketInventoryConfigurationOutput, error) DeleteBucketInventoryConfigurationWithContext(aws.Context, *s3.DeleteBucketInventoryConfigurationInput, ...request.Option) (*s3.DeleteBucketInventoryConfigurationOutput, error)
DeleteBucketInventoryConfigurationRequest(*s3.DeleteBucketInventoryConfigurationInput) (*request.Request, *s3.DeleteBucketInventoryConfigurationOutput) DeleteBucketInventoryConfigurationRequest(*s3.DeleteBucketInventoryConfigurationInput) (*request.Request, *s3.DeleteBucketInventoryConfigurationOutput)
@ -148,6 +152,10 @@ type S3API interface {
GetBucketCorsWithContext(aws.Context, *s3.GetBucketCorsInput, ...request.Option) (*s3.GetBucketCorsOutput, error) GetBucketCorsWithContext(aws.Context, *s3.GetBucketCorsInput, ...request.Option) (*s3.GetBucketCorsOutput, error)
GetBucketCorsRequest(*s3.GetBucketCorsInput) (*request.Request, *s3.GetBucketCorsOutput) GetBucketCorsRequest(*s3.GetBucketCorsInput) (*request.Request, *s3.GetBucketCorsOutput)
GetBucketEncryption(*s3.GetBucketEncryptionInput) (*s3.GetBucketEncryptionOutput, error)
GetBucketEncryptionWithContext(aws.Context, *s3.GetBucketEncryptionInput, ...request.Option) (*s3.GetBucketEncryptionOutput, error)
GetBucketEncryptionRequest(*s3.GetBucketEncryptionInput) (*request.Request, *s3.GetBucketEncryptionOutput)
GetBucketInventoryConfiguration(*s3.GetBucketInventoryConfigurationInput) (*s3.GetBucketInventoryConfigurationOutput, error) GetBucketInventoryConfiguration(*s3.GetBucketInventoryConfigurationInput) (*s3.GetBucketInventoryConfigurationOutput, error)
GetBucketInventoryConfigurationWithContext(aws.Context, *s3.GetBucketInventoryConfigurationInput, ...request.Option) (*s3.GetBucketInventoryConfigurationOutput, error) GetBucketInventoryConfigurationWithContext(aws.Context, *s3.GetBucketInventoryConfigurationInput, ...request.Option) (*s3.GetBucketInventoryConfigurationOutput, error)
GetBucketInventoryConfigurationRequest(*s3.GetBucketInventoryConfigurationInput) (*request.Request, *s3.GetBucketInventoryConfigurationOutput) GetBucketInventoryConfigurationRequest(*s3.GetBucketInventoryConfigurationInput) (*request.Request, *s3.GetBucketInventoryConfigurationOutput)
@ -295,6 +303,10 @@ type S3API interface {
PutBucketCorsWithContext(aws.Context, *s3.PutBucketCorsInput, ...request.Option) (*s3.PutBucketCorsOutput, error) PutBucketCorsWithContext(aws.Context, *s3.PutBucketCorsInput, ...request.Option) (*s3.PutBucketCorsOutput, error)
PutBucketCorsRequest(*s3.PutBucketCorsInput) (*request.Request, *s3.PutBucketCorsOutput) PutBucketCorsRequest(*s3.PutBucketCorsInput) (*request.Request, *s3.PutBucketCorsOutput)
PutBucketEncryption(*s3.PutBucketEncryptionInput) (*s3.PutBucketEncryptionOutput, error)
PutBucketEncryptionWithContext(aws.Context, *s3.PutBucketEncryptionInput, ...request.Option) (*s3.PutBucketEncryptionOutput, error)
PutBucketEncryptionRequest(*s3.PutBucketEncryptionInput) (*request.Request, *s3.PutBucketEncryptionOutput)
PutBucketInventoryConfiguration(*s3.PutBucketInventoryConfigurationInput) (*s3.PutBucketInventoryConfigurationOutput, error) PutBucketInventoryConfiguration(*s3.PutBucketInventoryConfigurationInput) (*s3.PutBucketInventoryConfigurationOutput, error)
PutBucketInventoryConfigurationWithContext(aws.Context, *s3.PutBucketInventoryConfigurationInput, ...request.Option) (*s3.PutBucketInventoryConfigurationOutput, error) PutBucketInventoryConfigurationWithContext(aws.Context, *s3.PutBucketInventoryConfigurationInput, ...request.Option) (*s3.PutBucketInventoryConfigurationOutput, error)
PutBucketInventoryConfigurationRequest(*s3.PutBucketInventoryConfigurationInput) (*request.Request, *s3.PutBucketInventoryConfigurationOutput) PutBucketInventoryConfigurationRequest(*s3.PutBucketInventoryConfigurationInput) (*request.Request, *s3.PutBucketInventoryConfigurationOutput)

View File

@ -60,7 +60,15 @@ func newError(err error, bucket, key *string) Error {
} }
func (err *Error) Error() string { func (err *Error) Error() string {
return fmt.Sprintf("failed to upload %q to %q:\n%s", err.Key, err.Bucket, err.OrigErr.Error()) origErr := ""
if err.OrigErr != nil {
origErr = ":\n" + err.OrigErr.Error()
}
return fmt.Sprintf("failed to upload %q to %q%s",
aws.StringValue(err.Key),
aws.StringValue(err.Bucket),
origErr,
)
} }
// NewBatchError will return a BatchError that satisfies the awserr.Error interface. // NewBatchError will return a BatchError that satisfies the awserr.Error interface.
@ -206,7 +214,7 @@ type BatchDelete struct {
// }, // },
// } // }
// //
// if err := batcher.Delete(&s3manager.DeleteObjectsIterator{ // if err := batcher.Delete(aws.BackgroundContext(), &s3manager.DeleteObjectsIterator{
// Objects: objects, // Objects: objects,
// }); err != nil { // }); err != nil {
// return err // return err
@ -239,7 +247,7 @@ func NewBatchDeleteWithClient(client s3iface.S3API, options ...func(*BatchDelete
// }, // },
// } // }
// //
// if err := batcher.Delete(&s3manager.DeleteObjectsIterator{ // if err := batcher.Delete(aws.BackgroundContext(), &s3manager.DeleteObjectsIterator{
// Objects: objects, // Objects: objects,
// }); err != nil { // }); err != nil {
// return err // return err

View File

@ -117,6 +117,9 @@ type UploadInput struct {
// The language the content is in. // The language the content is in.
ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"`
// The base64-encoded 128-bit MD5 digest of the part data.
ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"`
// A standard MIME type describing the format of the object data. // A standard MIME type describing the format of the object data.
ContentType *string `location:"header" locationName:"Content-Type" type:"string"` ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
@ -218,8 +221,11 @@ type Uploader struct {
// if this value is set to zero, the DefaultUploadPartSize value will be used. // if this value is set to zero, the DefaultUploadPartSize value will be used.
PartSize int64 PartSize int64
// The number of goroutines to spin up in parallel when sending parts. // The number of goroutines to spin up in parallel per call to Upload when
// If this is set to zero, the DefaultUploadConcurrency value will be used. // sending parts. If this is set to zero, the DefaultUploadConcurrency value
// will be used.
//
// The concurrency pool is not shared between calls to Upload.
Concurrency int Concurrency int
// Setting this value to true will cause the SDK to avoid calling // Setting this value to true will cause the SDK to avoid calling

View File

@ -35,7 +35,7 @@ const opAssumeRole = "AssumeRole"
// fmt.Println(resp) // fmt.Println(resp)
// } // }
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole
func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, output *AssumeRoleOutput) { func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, output *AssumeRoleOutput) {
op := &request.Operation{ op := &request.Operation{
Name: opAssumeRole, Name: opAssumeRole,
@ -168,7 +168,7 @@ func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, o
// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the IAM User Guide. // in the IAM User Guide.
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole
func (c *STS) AssumeRole(input *AssumeRoleInput) (*AssumeRoleOutput, error) { func (c *STS) AssumeRole(input *AssumeRoleInput) (*AssumeRoleOutput, error) {
req, out := c.AssumeRoleRequest(input) req, out := c.AssumeRoleRequest(input)
return out, req.Send() return out, req.Send()
@ -215,7 +215,7 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML"
// fmt.Println(resp) // fmt.Println(resp)
// } // }
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML
func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *request.Request, output *AssumeRoleWithSAMLOutput) { func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *request.Request, output *AssumeRoleWithSAMLOutput) {
op := &request.Operation{ op := &request.Operation{
Name: opAssumeRoleWithSAML, Name: opAssumeRoleWithSAML,
@ -341,7 +341,7 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re
// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the IAM User Guide. // in the IAM User Guide.
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML
func (c *STS) AssumeRoleWithSAML(input *AssumeRoleWithSAMLInput) (*AssumeRoleWithSAMLOutput, error) { func (c *STS) AssumeRoleWithSAML(input *AssumeRoleWithSAMLInput) (*AssumeRoleWithSAMLOutput, error) {
req, out := c.AssumeRoleWithSAMLRequest(input) req, out := c.AssumeRoleWithSAMLRequest(input)
return out, req.Send() return out, req.Send()
@ -388,7 +388,7 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity"
// fmt.Println(resp) // fmt.Println(resp)
// } // }
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity
func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityInput) (req *request.Request, output *AssumeRoleWithWebIdentityOutput) { func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityInput) (req *request.Request, output *AssumeRoleWithWebIdentityOutput) {
op := &request.Operation{ op := &request.Operation{
Name: opAssumeRoleWithWebIdentity, Name: opAssumeRoleWithWebIdentity,
@ -543,7 +543,7 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI
// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the IAM User Guide. // in the IAM User Guide.
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity
func (c *STS) AssumeRoleWithWebIdentity(input *AssumeRoleWithWebIdentityInput) (*AssumeRoleWithWebIdentityOutput, error) { func (c *STS) AssumeRoleWithWebIdentity(input *AssumeRoleWithWebIdentityInput) (*AssumeRoleWithWebIdentityOutput, error) {
req, out := c.AssumeRoleWithWebIdentityRequest(input) req, out := c.AssumeRoleWithWebIdentityRequest(input)
return out, req.Send() return out, req.Send()
@ -590,7 +590,7 @@ const opDecodeAuthorizationMessage = "DecodeAuthorizationMessage"
// fmt.Println(resp) // fmt.Println(resp)
// } // }
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage
func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessageInput) (req *request.Request, output *DecodeAuthorizationMessageOutput) { func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessageInput) (req *request.Request, output *DecodeAuthorizationMessageOutput) {
op := &request.Operation{ op := &request.Operation{
Name: opDecodeAuthorizationMessage, Name: opDecodeAuthorizationMessage,
@ -655,7 +655,7 @@ func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessag
// invalid. This can happen if the token contains invalid characters, such as // invalid. This can happen if the token contains invalid characters, such as
// linebreaks. // linebreaks.
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage
func (c *STS) DecodeAuthorizationMessage(input *DecodeAuthorizationMessageInput) (*DecodeAuthorizationMessageOutput, error) { func (c *STS) DecodeAuthorizationMessage(input *DecodeAuthorizationMessageInput) (*DecodeAuthorizationMessageOutput, error) {
req, out := c.DecodeAuthorizationMessageRequest(input) req, out := c.DecodeAuthorizationMessageRequest(input)
return out, req.Send() return out, req.Send()
@ -702,7 +702,7 @@ const opGetCallerIdentity = "GetCallerIdentity"
// fmt.Println(resp) // fmt.Println(resp)
// } // }
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity
func (c *STS) GetCallerIdentityRequest(input *GetCallerIdentityInput) (req *request.Request, output *GetCallerIdentityOutput) { func (c *STS) GetCallerIdentityRequest(input *GetCallerIdentityInput) (req *request.Request, output *GetCallerIdentityOutput) {
op := &request.Operation{ op := &request.Operation{
Name: opGetCallerIdentity, Name: opGetCallerIdentity,
@ -730,7 +730,7 @@ func (c *STS) GetCallerIdentityRequest(input *GetCallerIdentityInput) (req *requ
// //
// See the AWS API reference guide for AWS Security Token Service's // See the AWS API reference guide for AWS Security Token Service's
// API operation GetCallerIdentity for usage and error information. // API operation GetCallerIdentity for usage and error information.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity
func (c *STS) GetCallerIdentity(input *GetCallerIdentityInput) (*GetCallerIdentityOutput, error) { func (c *STS) GetCallerIdentity(input *GetCallerIdentityInput) (*GetCallerIdentityOutput, error) {
req, out := c.GetCallerIdentityRequest(input) req, out := c.GetCallerIdentityRequest(input)
return out, req.Send() return out, req.Send()
@ -777,7 +777,7 @@ const opGetFederationToken = "GetFederationToken"
// fmt.Println(resp) // fmt.Println(resp)
// } // }
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken
func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *request.Request, output *GetFederationTokenOutput) { func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *request.Request, output *GetFederationTokenOutput) {
op := &request.Operation{ op := &request.Operation{
Name: opGetFederationToken, Name: opGetFederationToken,
@ -899,7 +899,7 @@ func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *re
// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the IAM User Guide. // in the IAM User Guide.
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken
func (c *STS) GetFederationToken(input *GetFederationTokenInput) (*GetFederationTokenOutput, error) { func (c *STS) GetFederationToken(input *GetFederationTokenInput) (*GetFederationTokenOutput, error) {
req, out := c.GetFederationTokenRequest(input) req, out := c.GetFederationTokenRequest(input)
return out, req.Send() return out, req.Send()
@ -946,7 +946,7 @@ const opGetSessionToken = "GetSessionToken"
// fmt.Println(resp) // fmt.Println(resp)
// } // }
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken
func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request.Request, output *GetSessionTokenOutput) { func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request.Request, output *GetSessionTokenOutput) {
op := &request.Operation{ op := &request.Operation{
Name: opGetSessionToken, Name: opGetSessionToken,
@ -1027,7 +1027,7 @@ func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request.
// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the IAM User Guide. // in the IAM User Guide.
// //
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken
func (c *STS) GetSessionToken(input *GetSessionTokenInput) (*GetSessionTokenOutput, error) { func (c *STS) GetSessionToken(input *GetSessionTokenInput) (*GetSessionTokenOutput, error) {
req, out := c.GetSessionTokenRequest(input) req, out := c.GetSessionTokenRequest(input)
return out, req.Send() return out, req.Send()
@ -1049,7 +1049,7 @@ func (c *STS) GetSessionTokenWithContext(ctx aws.Context, input *GetSessionToken
return out, req.Send() return out, req.Send()
} }
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleRequest // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleRequest
type AssumeRoleInput struct { type AssumeRoleInput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1241,7 +1241,7 @@ func (s *AssumeRoleInput) SetTokenCode(v string) *AssumeRoleInput {
// Contains the response to a successful AssumeRole request, including temporary // Contains the response to a successful AssumeRole request, including temporary
// AWS credentials that can be used to make AWS requests. // AWS credentials that can be used to make AWS requests.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleResponse // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleResponse
type AssumeRoleOutput struct { type AssumeRoleOutput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1295,7 +1295,7 @@ func (s *AssumeRoleOutput) SetPackedPolicySize(v int64) *AssumeRoleOutput {
return s return s
} }
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLRequest // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLRequest
type AssumeRoleWithSAMLInput struct { type AssumeRoleWithSAMLInput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1436,7 +1436,7 @@ func (s *AssumeRoleWithSAMLInput) SetSAMLAssertion(v string) *AssumeRoleWithSAML
// Contains the response to a successful AssumeRoleWithSAML request, including // Contains the response to a successful AssumeRoleWithSAML request, including
// temporary AWS credentials that can be used to make AWS requests. // temporary AWS credentials that can be used to make AWS requests.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLResponse // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLResponse
type AssumeRoleWithSAMLOutput struct { type AssumeRoleWithSAMLOutput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1548,7 +1548,7 @@ func (s *AssumeRoleWithSAMLOutput) SetSubjectType(v string) *AssumeRoleWithSAMLO
return s return s
} }
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityRequest // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityRequest
type AssumeRoleWithWebIdentityInput struct { type AssumeRoleWithWebIdentityInput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1711,7 +1711,7 @@ func (s *AssumeRoleWithWebIdentityInput) SetWebIdentityToken(v string) *AssumeRo
// Contains the response to a successful AssumeRoleWithWebIdentity request, // Contains the response to a successful AssumeRoleWithWebIdentity request,
// including temporary AWS credentials that can be used to make AWS requests. // including temporary AWS credentials that can be used to make AWS requests.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityResponse // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityResponse
type AssumeRoleWithWebIdentityOutput struct { type AssumeRoleWithWebIdentityOutput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1804,7 +1804,7 @@ func (s *AssumeRoleWithWebIdentityOutput) SetSubjectFromWebIdentityToken(v strin
// The identifiers for the temporary security credentials that the operation // The identifiers for the temporary security credentials that the operation
// returns. // returns.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumedRoleUser // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumedRoleUser
type AssumedRoleUser struct { type AssumedRoleUser struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1847,7 +1847,7 @@ func (s *AssumedRoleUser) SetAssumedRoleId(v string) *AssumedRoleUser {
} }
// AWS credentials for API authentication. // AWS credentials for API authentication.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/Credentials // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/Credentials
type Credentials struct { type Credentials struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1906,7 +1906,7 @@ func (s *Credentials) SetSessionToken(v string) *Credentials {
return s return s
} }
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageRequest // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageRequest
type DecodeAuthorizationMessageInput struct { type DecodeAuthorizationMessageInput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1951,7 +1951,7 @@ func (s *DecodeAuthorizationMessageInput) SetEncodedMessage(v string) *DecodeAut
// A document that contains additional information about the authorization status // A document that contains additional information about the authorization status
// of a request from an encoded message that is returned in response to an AWS // of a request from an encoded message that is returned in response to an AWS
// request. // request.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageResponse // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageResponse
type DecodeAuthorizationMessageOutput struct { type DecodeAuthorizationMessageOutput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -1976,7 +1976,7 @@ func (s *DecodeAuthorizationMessageOutput) SetDecodedMessage(v string) *DecodeAu
} }
// Identifiers for the federated user that is associated with the credentials. // Identifiers for the federated user that is associated with the credentials.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/FederatedUser // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/FederatedUser
type FederatedUser struct { type FederatedUser struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -2017,7 +2017,7 @@ func (s *FederatedUser) SetFederatedUserId(v string) *FederatedUser {
return s return s
} }
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityRequest // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityRequest
type GetCallerIdentityInput struct { type GetCallerIdentityInput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
} }
@ -2034,7 +2034,7 @@ func (s GetCallerIdentityInput) GoString() string {
// Contains the response to a successful GetCallerIdentity request, including // Contains the response to a successful GetCallerIdentity request, including
// information about the entity making the request. // information about the entity making the request.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityResponse // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityResponse
type GetCallerIdentityOutput struct { type GetCallerIdentityOutput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -2080,7 +2080,7 @@ func (s *GetCallerIdentityOutput) SetUserId(v string) *GetCallerIdentityOutput {
return s return s
} }
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenRequest // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenRequest
type GetFederationTokenInput struct { type GetFederationTokenInput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -2189,7 +2189,7 @@ func (s *GetFederationTokenInput) SetPolicy(v string) *GetFederationTokenInput {
// Contains the response to a successful GetFederationToken request, including // Contains the response to a successful GetFederationToken request, including
// temporary AWS credentials that can be used to make AWS requests. // temporary AWS credentials that can be used to make AWS requests.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenResponse // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenResponse
type GetFederationTokenOutput struct { type GetFederationTokenOutput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -2242,7 +2242,7 @@ func (s *GetFederationTokenOutput) SetPackedPolicySize(v int64) *GetFederationTo
return s return s
} }
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenRequest // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenRequest
type GetSessionTokenInput struct { type GetSessionTokenInput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -2327,7 +2327,7 @@ func (s *GetSessionTokenInput) SetTokenCode(v string) *GetSessionTokenInput {
// Contains the response to a successful GetSessionToken request, including // Contains the response to a successful GetSessionToken request, including
// temporary AWS credentials that can be used to make AWS requests. // temporary AWS credentials that can be used to make AWS requests.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenResponse // See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenResponse
type GetSessionTokenOutput struct { type GetSessionTokenOutput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`

View File

@ -56,7 +56,7 @@
// //
// Using the Client // Using the Client
// //
// To AWS Security Token Service with the SDK use the New function to create // To contact AWS Security Token Service with the SDK use the New function to create
// a new service client. With that client you can make API requests to the service. // a new service client. With that client you can make API requests to the service.
// These clients are safe to use concurrently. // These clients are safe to use concurrently.
// //

304
vendor/vendor.json vendored
View File

@ -248,244 +248,244 @@
"revision": "4239b77079c7b5d1243b7b4736304ce8ddb6f0f2" "revision": "4239b77079c7b5d1243b7b4736304ce8ddb6f0f2"
}, },
{ {
"checksumSHA1": "7vSTKBRZq6azJnhm1k6XmNxu97M=", "checksumSHA1": "tN8pbihy8mw+m0UVqNNFJmx7p+Y=",
"path": "github.com/aws/aws-sdk-go", "path": "github.com/aws/aws-sdk-go",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "BRgDFkYJonSbN+/ugKMUuSXkS4c=", "checksumSHA1": "NQu/L+9CIJLpgrZt3UMlbma9Pk0=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws", "path": "github.com/aws/aws-sdk-go/aws",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=", "checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/awserr", "path": "github.com/aws/aws-sdk-go/aws/awserr",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=", "checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/awsutil", "path": "github.com/aws/aws-sdk-go/aws/awsutil",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "n98FANpNeRT5kf6pizdpI7nm6Sw=", "checksumSHA1": "9nE/FjZ4pYrT883KtV2/aI+Gayo=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/client", "path": "github.com/aws/aws-sdk-go/aws/client",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=", "checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/client/metadata", "path": "github.com/aws/aws-sdk-go/aws/client/metadata",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "7/8j/q0TWtOgXyvEcv4B2Dhl00o=", "checksumSHA1": "7/8j/q0TWtOgXyvEcv4B2Dhl00o=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/corehandlers", "path": "github.com/aws/aws-sdk-go/aws/corehandlers",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "Y+cPwQL0dZMyqp3wI+KJWmA9KQ8=", "checksumSHA1": "Y+cPwQL0dZMyqp3wI+KJWmA9KQ8=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/credentials", "path": "github.com/aws/aws-sdk-go/aws/credentials",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "u3GOAJLmdvbuNUeUEcZSEAOeL/0=", "checksumSHA1": "u3GOAJLmdvbuNUeUEcZSEAOeL/0=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", "path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=", "checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", "path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "JEYqmF83O5n5bHkupAzA6STm0no=", "checksumSHA1": "JEYqmF83O5n5bHkupAzA6STm0no=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", "path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "ZdtYh3ZHSgP/WEIaqwJHTEhpkbs=", "checksumSHA1": "OnU/n7R33oYXiB4SAGd5pK7I0Bs=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/defaults", "path": "github.com/aws/aws-sdk-go/aws/defaults",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "/EXbk/z2TWjWc1Hvb4QYs3Wmhb8=", "checksumSHA1": "/EXbk/z2TWjWc1Hvb4QYs3Wmhb8=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/ec2metadata", "path": "github.com/aws/aws-sdk-go/aws/ec2metadata",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "W45tSKW4ZVgBk9H4lx5RbGi9OVg=", "checksumSHA1": "bV8wC0xzF08ztv57EXbeLjNxmsI=",
"path": "github.com/aws/aws-sdk-go/aws/endpoints", "path": "github.com/aws/aws-sdk-go/aws/endpoints",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "Rdm9v0vpqsO1Ka9rwktfL19D8A8=", "checksumSHA1": "JZ49s4cNe3nIttx3hWp04CQif4o=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/request", "path": "github.com/aws/aws-sdk-go/aws/request",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "SK5Mn4Ga9+equOQTYA1DTSb3LWY=", "checksumSHA1": "HcGL4e6Uep4/80eCUI5xkcWjpQ0=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/session", "path": "github.com/aws/aws-sdk-go/aws/session",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "1+ZxEwzc1Vz8X2l+kXkS2iATtas=", "checksumSHA1": "iU00ZjhAml/13g+1YXT21IqoXqg=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/aws/signer/v4", "path": "github.com/aws/aws-sdk-go/aws/signer/v4",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "04ypv4x12l4q0TksA1zEVsmgpvw=", "checksumSHA1": "04ypv4x12l4q0TksA1zEVsmgpvw=",
"path": "github.com/aws/aws-sdk-go/internal/shareddefaults", "path": "github.com/aws/aws-sdk-go/internal/shareddefaults",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "wk7EyvDaHwb5qqoOP/4d3cV0708=", "checksumSHA1": "NStHCXEvYqG72GknZyv1jaKaeH0=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol", "path": "github.com/aws/aws-sdk-go/private/protocol",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "1QmQ3FqV37w0Zi44qv8pA1GeR0A=", "checksumSHA1": "1QmQ3FqV37w0Zi44qv8pA1GeR0A=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol/ec2query", "path": "github.com/aws/aws-sdk-go/private/protocol/ec2query",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "O6hcK24yI6w7FA+g4Pbr+eQ7pys=", "checksumSHA1": "yHfT5DTbeCLs4NE2Rgnqrhe15ls=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", "path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=", "checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", "path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "ZqY5RWavBLWTo6j9xqdyBEaNFRk=", "checksumSHA1": "ZqY5RWavBLWTo6j9xqdyBEaNFRk=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol/query", "path": "github.com/aws/aws-sdk-go/private/protocol/query",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "Drt1JfLMa0DQEZLWrnMlTWaIcC8=", "checksumSHA1": "9V1PvtFQ9MObZTc3sa86WcuOtOU=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", "path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "VCTh+dEaqqhog5ncy/WTt9+/gFM=", "checksumSHA1": "pkeoOfZpHRvFG/AOZeTf0lwtsFg=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol/rest", "path": "github.com/aws/aws-sdk-go/private/protocol/rest",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=", "checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol/restxml", "path": "github.com/aws/aws-sdk-go/private/protocol/restxml",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "0qYPUga28aQVkxZgBR3Z86AbGUQ=", "checksumSHA1": "0qYPUga28aQVkxZgBR3Z86AbGUQ=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", "path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "Eo9yODN5U99BK0pMzoqnBm7PCrY=", "checksumSHA1": "Eo9yODN5U99BK0pMzoqnBm7PCrY=",
@ -493,62 +493,62 @@
"path": "github.com/aws/aws-sdk-go/private/waiter", "path": "github.com/aws/aws-sdk-go/private/waiter",
"revision": "1bd588c8b2dba4da57dd4664b2b2750d260a5915", "revision": "1bd588c8b2dba4da57dd4664b2b2750d260a5915",
"revisionTime": "2017-02-24T22:28:38Z", "revisionTime": "2017-02-24T22:28:38Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "INaeHZ2L5x6RlrcQBm4q1hFqNRM=", "checksumSHA1": "4igS6faf4hrhDj6Jj9ErVcN1qKo=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/service/ec2", "path": "github.com/aws/aws-sdk-go/service/ec2",
"revision": "5177d71d80f123f6d82aaf762387e39b88c5ba23", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2018-01-09T00:04:15Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.12.57", "version": "v1.12.71",
"versionExact": "v1.12.57" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "YNq7YhasHn9ceelWX2aG0Cg0Ga0=", "checksumSHA1": "uEv9kkBsVIjg7K4+Y8TVlU0Cc8o=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/service/ecr", "path": "github.com/aws/aws-sdk-go/service/ecr",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "SEKg+cGyOj6dKdK5ltUHsoL4R4Y=", "checksumSHA1": "sCaHoPWsJXRHFbilUKwN71qFTOI=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/service/s3", "path": "github.com/aws/aws-sdk-go/service/s3",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "RVrBBPDYg3ViwQDLBanFehkdqkM=", "checksumSHA1": "ZP6QI0X9BNKk8o1p3AyLfjabS20=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/service/s3/s3iface", "path": "github.com/aws/aws-sdk-go/service/s3/s3iface",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "LlIpD3fzngPXshFh/5tuCWlrYzI=", "checksumSHA1": "g6Eo2gEoj6YEZ+tLwydnfhwo7zg=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/service/s3/s3manager", "path": "github.com/aws/aws-sdk-go/service/s3/s3manager",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "MerduaV3PxtZAWvOGpgoBIglo38=", "checksumSHA1": "W1oFtpaT4TWIIJrAvFcn/XdcT7g=",
"comment": "v1.7.1", "comment": "v1.7.1",
"path": "github.com/aws/aws-sdk-go/service/sts", "path": "github.com/aws/aws-sdk-go/service/sts",
"revision": "dd3acff9dc16f9a6fd87f6b4501590a532e7206a", "revision": "0cbaf57ea311890e62f0b01652529295079e9e95",
"revisionTime": "2017-08-10T20:40:06Z", "revisionTime": "2018-02-05T21:18:42Z",
"version": "v1.10.23", "version": "v1.12.71",
"versionExact": "v1.10.23" "versionExact": "v1.12.71"
}, },
{ {
"checksumSHA1": "7SbTaY0kaYxgQrG3/9cjrI+BcyU=", "checksumSHA1": "7SbTaY0kaYxgQrG3/9cjrI+BcyU=",