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.
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
create a Github [issue](issues) describing the issue.
create a [GitHub issue][issues] describing the issue.
### 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
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:
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
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:
@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" .

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.
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
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
@ -305,7 +307,7 @@ documentation for the errors that could be returned.
// will leak connections.
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

View File

@ -2,6 +2,7 @@ package client
import (
"math/rand"
"strconv"
"sync"
"time"
@ -38,14 +39,18 @@ func (d DefaultRetryer) RetryRules(r *request.Request) time.Duration {
minTime := 30
throttle := d.shouldThrottle(r)
if throttle {
if delay, ok := getRetryDelay(r); ok {
return delay
}
minTime = 500
}
retryCount := r.RetryCount
if retryCount > 13 {
retryCount = 13
} else if throttle && retryCount > 8 {
if throttle && retryCount > 8 {
retryCount = 8
} else if retryCount > 13 {
retryCount = 13
}
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.
func (d DefaultRetryer) shouldThrottle(r *request.Request) bool {
if r.HTTPResponse.StatusCode == 502 ||
r.HTTPResponse.StatusCode == 503 ||
r.HTTPResponse.StatusCode == 504 {
return true
switch r.HTTPResponse.StatusCode {
case 429:
case 502:
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

View File

@ -168,7 +168,7 @@ type Config struct {
//
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
// both IPv4 and IPv6 addressing.
//

View File

@ -9,6 +9,7 @@ package defaults
import (
"fmt"
"net"
"net/http"
"net/url"
"os"
@ -118,14 +119,43 @@ func RemoteCredProvider(cfg aws.Config, handlers request.Handlers) credentials.P
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 {
var errMsg string
parsed, err := url.Parse(u)
if err != nil {
errMsg = fmt.Sprintf("invalid URL, %v", err)
} else if host := aws.URLHostname(parsed); !(host == "localhost" || host == "127.0.0.1") {
errMsg = fmt.Sprintf("invalid host address, %q, only localhost and 127.0.0.1 are valid.", host)
} else {
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 {

View File

@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"io"
"os"
"github.com/aws/aws-sdk-go/aws/awserr"
)
@ -84,11 +85,34 @@ func decodeV3Endpoints(modelDef modelDefinition, opts DecodeModelOptions) (Resol
custAddEC2Metadata(p)
custAddS3DualStack(p)
custRmIotDataService(p)
custFixCloudHSMv2SigningName(p)
}
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) {
if p.ID != "aws" {
return

File diff suppressed because it is too large Load Diff

View File

@ -28,6 +28,10 @@ const (
// during body reads.
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
// API request that was canceled. Requests given a aws.Context may
// return this error when canceled.
@ -42,7 +46,6 @@ type Request struct {
Retryer
Time time.Time
ExpireTime time.Duration
Operation *Operation
HTTPRequest *http.Request
HTTPResponse *http.Response
@ -60,6 +63,11 @@ type Request struct {
LastSignedAt time.Time
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
built bool
@ -104,6 +112,8 @@ func New(cfg aws.Config, clientInfo metadata.ClientInfo, handlers Handlers,
err = awserr.New("InvalidEndpointURL", "invalid endpoint uri", err)
}
SanitizeHostForHeader(httpReq)
r := &Request{
Config: cfg,
ClientInfo: clientInfo,
@ -250,34 +260,59 @@ func (r *Request) SetReaderBody(reader io.ReadSeeker) {
// Presign returns the request's signed URL. Error will be returned
// 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
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 {
r = r.copy()
err := r.Operation.BeforePresignFn(r)
if err != nil {
return "", err
if err := r.Operation.BeforePresignFn(r); err != nil {
return "", nil, err
}
}
r.Sign()
if r.Error != nil {
return "", r.Error
if err := r.Sign(); err != nil {
return "", nil, err
}
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
}
@ -573,3 +608,72 @@ func shouldRetryCancel(r *Request) bool {
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{}{}
tokenAdded := false
for _, outToken := range r.Operation.OutputTokens {
v, _ := awsutil.ValuesAtPath(r.Data, outToken)
if len(v) > 0 {
tokens = append(tokens, v[0])
tokenAdded = true
} else {
vs, _ := awsutil.ValuesAtPath(r.Data, outToken)
if len(vs) == 0 {
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 {
return nil

View File

@ -7,6 +7,9 @@ import (
"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
// setup config from. All environment values are optional. But some 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 {
cfg.Creds = credentials.Value{}
} else {
cfg.Creds.ProviderName = "EnvConfigCredentials"
cfg.Creds.ProviderName = EnvProviderName
}
regionKeys := regionEnvKeys

View File

@ -268,7 +268,7 @@ type signingCtx struct {
// "X-Amz-Content-Sha256" header with a precomputed value. The signer will
// 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) {
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
@ -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"
// 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) {
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
if currentTimeFn == nil {
currentTimeFn = time.Now
@ -317,7 +317,7 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi
Query: r.URL.Query(),
Time: signTime,
ExpireTime: exp,
isPresign: exp != 0,
isPresign: isPresign,
ServiceName: service,
Region: region,
DisableURIPathEscaping: v4.DisableURIPathEscaping,
@ -339,6 +339,7 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi
return http.Header{}, err
}
ctx.sanitizeHostForHeader()
ctx.assignAmzQueryValues()
ctx.build(v4.DisableHeaderHoisting)
@ -363,6 +364,10 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi
return ctx.SignedHeaderVals, nil
}
func (ctx *signingCtx) sanitizeHostForHeader() {
request.SanitizeHostForHeader(ctx.Request)
}
func (ctx *signingCtx) handlePresignRemoval() {
if !ctx.isPresign {
return
@ -467,7 +472,7 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time
}
signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.GetBody(),
name, region, req.ExpireTime, signingTime,
name, region, req.ExpireTime, req.ExpireTime > 0, signingTime,
)
if err != nil {
req.Error = err
@ -502,6 +507,8 @@ func (ctx *signingCtx) build(disableHeaderHoisting bool) {
ctx.buildTime() // no depends
ctx.buildCredentialString() // no depends
ctx.buildBodyDigest()
unsignedHeaders := ctx.Request.Header
if ctx.isPresign {
if !disableHeaderHoisting {
@ -513,7 +520,6 @@ func (ctx *signingCtx) build(disableHeaderHoisting bool) {
}
}
ctx.buildBodyDigest()
ctx.buildCanonicalHeaders(ignoredHeaders, unsignedHeaders)
ctx.buildCanonicalString() // depends on canon headers / signed headers
ctx.buildStringToSign() // depends on canon string

View File

@ -5,4 +5,4 @@ package aws
const SDKName = "aws-sdk-go"
// 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.
//
// 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

View File

@ -12,6 +12,7 @@ import (
"strconv"
"time"
"github.com/aws/aws-sdk-go/aws"
"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"
}
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))
default:
switch value.Type() {
case timeType:
converted := v.Interface().(*time.Time)
switch converted := value.Interface().(type) {
case time.Time:
buf.Write(strconv.AppendInt(scratch[:0], converted.UTC().Unix(), 10))
case byteSliceType:
case []byte:
if !value.IsNil() {
converted := value.Interface().([]byte)
buf.WriteByte('"')
if len(converted) < 1024 {
// 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('"')
}
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:
return fmt.Errorf("unsupported JSON value %v (%s)", value.Interface(), value.Type())
}

View File

@ -8,6 +8,9 @@ import (
"io/ioutil"
"reflect"
"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.
@ -50,7 +53,10 @@ func unmarshalAny(value reflect.Value, data interface{}, tag reflect.StructTag)
t = "list"
}
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
}
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:
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
}
if _, ok := value.Interface().([]byte); ok {
return q.parseScalar(v, value, prefix, tag)
}
// check for unflattened list member
if !q.isEC2 && tag.Get("flattened") == "" {
if listName := tag.Get("locationNameList"); listName == "" {

View File

@ -4,7 +4,6 @@ package rest
import (
"bytes"
"encoding/base64"
"encoding/json"
"fmt"
"io"
"net/http"
@ -18,6 +17,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"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
@ -252,13 +252,12 @@ func EscapePath(path string, encodeSep bool) 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)
if !v.IsValid() {
return "", errValueNotSet
}
var str string
switch value := v.Interface().(type) {
case string:
str = value
@ -273,17 +272,19 @@ func convertType(v reflect.Value, tag reflect.StructTag) (string, error) {
case time.Time:
str = value.UTC().Format(RFC822)
case aws.JSONValue:
b, err := json.Marshal(value)
if err != nil {
return "", err
if len(value) == 0 {
return "", errValueNotSet
}
escaping := protocol.NoEscape
if tag.Get("location") == "header" {
str = base64.StdEncoding.EncodeToString(b)
} else {
str = string(b)
escaping = protocol.Base64Escape
}
str, err = protocol.EncodeJSONValue(value, escaping)
if err != nil {
return "", fmt.Errorf("unable to encode JSONValue, %v", err)
}
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 str, nil

View File

@ -3,7 +3,6 @@ package rest
import (
"bytes"
"encoding/base64"
"encoding/json"
"fmt"
"io"
"io/ioutil"
@ -16,6 +15,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"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
@ -204,17 +204,11 @@ func unmarshalHeader(v reflect.Value, header string, tag reflect.StructTag) erro
}
v.Set(reflect.ValueOf(&t))
case aws.JSONValue:
b := []byte(header)
var err error
escaping := protocol.NoEscape
if tag.Get("location") == "header" {
b, err = base64.StdEncoding.DecodeString(header)
if err != nil {
return err
}
escaping = protocol.Base64Escape
}
m := aws.JSONValue{}
err = json.Unmarshal(b, &m)
m, err := protocol.DecodeJSONValue(header, escaping)
if err != nil {
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
// 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 peering connection. The VPC peering connection request expires after
// 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.
//
// Modifies the permissions for your VPC endpoint service. You can add or remove
// permissions for service consumers (IAM users, IAM roles, and AWS accounts)
// to discover your endpoint service.
// Modifies the permissions for your VPC endpoint service (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/endpoint-service.html).
// You can add or remove permissions for service consumers (IAM users, IAM roles,
// and AWS accounts) to connect to your endpoint service.
//
// 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
@ -29784,7 +29788,7 @@ type CreateVpcEndpointInput struct {
SecurityGroupIds []*string `locationName:"SecurityGroupId" locationNameList:"item" type:"list"`
// 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 *string `type:"string" required:"true"`
@ -33150,6 +33154,18 @@ type DescribeAddressesInput struct {
// 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"`
// [EC2-Classic] One or more Elastic IP addresses.
@ -36657,6 +36673,18 @@ type DescribeLaunchTemplatesInput struct {
// * create-time - The time the launch template was created.
//
// * 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"`
// One or more launch template IDs.
@ -40335,9 +40363,10 @@ type DescribeTagsInput struct {
// * resource-id - The resource ID.
//
// * resource-type - The resource type (customer-gateway | dhcp-options |
// image | instance | internet-gateway | network-acl | network-interface
// | reserved-instances | route-table | security-group | snapshot | spot-instances-request
// | subnet | volume | vpc | vpn-connection | vpn-gateway).
// elastic-ip | fpga-image | image | instance | internet-gateway | launch-template
// | natgateway | network-acl | network-interface | reserved-instances |
// route-table | security-group | snapshot | spot-instances-request | subnet
// | volume | vpc | vpc-peering-connection | vpn-connection | vpn-gateway).
//
// * value - The tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@ -49533,7 +49562,8 @@ func (s *InternetGateway) SetTags(v []*Tag) *InternetGateway {
type InternetGatewayAttachment struct {
_ 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"`
// The ID of the VPC.
@ -60763,7 +60793,9 @@ type RunInstancesInput struct {
// The IAM instance profile.
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"`
// 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
// group in EC2-Classic or a default VPC only. For a security group in a nondefault
// 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"`
// The status of a VPC peering connection, if applicable.
PeeringStatus *string `locationName:"peeringStatus" type:"string"`
// The ID of an AWS account. For a referenced security group in another VPC,
// the account ID of the referenced security group is returned.
// The ID of an AWS account.
//
// 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
// group in another AWS account.

View File

@ -4,9 +4,8 @@
// requests to Amazon Elastic Compute Cloud.
//
// Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity
// in the Amazon Web Services (AWS) cloud. Using Amazon EC2 eliminates your
// need to invest in hardware up front, so you can develop and deploy applications
// faster.
// in the AWS Cloud. Using Amazon EC2 eliminates your need to invest in hardware
// up front, so you can develop and deploy applications faster.
//
// 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
// requests to Amazon EC2 Container Registry.
//
// Amazon EC2 Container Registry (Amazon ECR) is a managed AWS Docker registry
// service. Customers can use the familiar Docker CLI to push, pull, and manage
// images. Amazon ECR provides a secure, scalable, and reliable registry. Amazon
// ECR supports private Docker repositories with resource-based permissions
// using AWS IAM so that specific users or Amazon EC2 instances can access repositories
// Amazon EC2 Container Registry (Amazon ECR) is a managed Docker registry service.
// Customers can use the familiar Docker CLI to push, pull, and manage images.
// Amazon ECR provides a secure, scalable, and reliable registry. Amazon ECR
// supports private Docker repositories with resource-based permissions using
// 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.
//
// 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
//
// 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.
// These clients are safe to use concurrently.
//

View File

@ -13,8 +13,8 @@ const (
// ErrCodeImageAlreadyExistsException for service response error code
// "ImageAlreadyExistsException".
//
// The specified image has already been pushed, and there are no changes to
// the manifest or image tag since the last push.
// The specified image has already been pushed, and there were no changes to
// the manifest or image tag after the last push.
ErrCodeImageAlreadyExistsException = "ImageAlreadyExistsException"
// ErrCodeImageNotFoundException for service response error code
@ -70,6 +70,25 @@ const (
// for this repository.
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
// "LimitExceededException".
//

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@
//
// 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.
// These clients are safe to use concurrently.
//

View File

@ -35,7 +35,7 @@
//
// The s3manager package's Downloader provides concurrently downloading of Objects
// 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.
//
// // The session the S3 Downloader will use
@ -56,7 +56,7 @@
// Key: aws.String(myString),
// })
// 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)
//

View File

@ -92,6 +92,10 @@ type S3API interface {
DeleteBucketCorsWithContext(aws.Context, *s3.DeleteBucketCorsInput, ...request.Option) (*s3.DeleteBucketCorsOutput, error)
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)
DeleteBucketInventoryConfigurationWithContext(aws.Context, *s3.DeleteBucketInventoryConfigurationInput, ...request.Option) (*s3.DeleteBucketInventoryConfigurationOutput, error)
DeleteBucketInventoryConfigurationRequest(*s3.DeleteBucketInventoryConfigurationInput) (*request.Request, *s3.DeleteBucketInventoryConfigurationOutput)
@ -148,6 +152,10 @@ type S3API interface {
GetBucketCorsWithContext(aws.Context, *s3.GetBucketCorsInput, ...request.Option) (*s3.GetBucketCorsOutput, error)
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)
GetBucketInventoryConfigurationWithContext(aws.Context, *s3.GetBucketInventoryConfigurationInput, ...request.Option) (*s3.GetBucketInventoryConfigurationOutput, error)
GetBucketInventoryConfigurationRequest(*s3.GetBucketInventoryConfigurationInput) (*request.Request, *s3.GetBucketInventoryConfigurationOutput)
@ -295,6 +303,10 @@ type S3API interface {
PutBucketCorsWithContext(aws.Context, *s3.PutBucketCorsInput, ...request.Option) (*s3.PutBucketCorsOutput, error)
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)
PutBucketInventoryConfigurationWithContext(aws.Context, *s3.PutBucketInventoryConfigurationInput, ...request.Option) (*s3.PutBucketInventoryConfigurationOutput, error)
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 {
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.
@ -206,7 +214,7 @@ type BatchDelete struct {
// },
// }
//
// if err := batcher.Delete(&s3manager.DeleteObjectsIterator{
// if err := batcher.Delete(aws.BackgroundContext(), &s3manager.DeleteObjectsIterator{
// Objects: objects,
// }); err != nil {
// 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,
// }); err != nil {
// return err

View File

@ -117,6 +117,9 @@ type UploadInput struct {
// The language the content is in.
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.
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.
PartSize int64
// The number of goroutines to spin up in parallel when sending parts.
// If this is set to zero, the DefaultUploadConcurrency value will be used.
// The number of goroutines to spin up in parallel per call to Upload when
// 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
// Setting this value to true will cause the SDK to avoid calling

View File

@ -35,7 +35,7 @@ const opAssumeRole = "AssumeRole"
// 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) {
op := &request.Operation{
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)
// 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) {
req, out := c.AssumeRoleRequest(input)
return out, req.Send()
@ -215,7 +215,7 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML"
// 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) {
op := &request.Operation{
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)
// 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) {
req, out := c.AssumeRoleWithSAMLRequest(input)
return out, req.Send()
@ -388,7 +388,7 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity"
// 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) {
op := &request.Operation{
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)
// 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) {
req, out := c.AssumeRoleWithWebIdentityRequest(input)
return out, req.Send()
@ -590,7 +590,7 @@ const opDecodeAuthorizationMessage = "DecodeAuthorizationMessage"
// 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) {
op := &request.Operation{
Name: opDecodeAuthorizationMessage,
@ -655,7 +655,7 @@ func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessag
// invalid. This can happen if the token contains invalid characters, such as
// 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) {
req, out := c.DecodeAuthorizationMessageRequest(input)
return out, req.Send()
@ -702,7 +702,7 @@ const opGetCallerIdentity = "GetCallerIdentity"
// 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) {
op := &request.Operation{
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
// 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) {
req, out := c.GetCallerIdentityRequest(input)
return out, req.Send()
@ -777,7 +777,7 @@ const opGetFederationToken = "GetFederationToken"
// 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) {
op := &request.Operation{
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)
// 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) {
req, out := c.GetFederationTokenRequest(input)
return out, req.Send()
@ -946,7 +946,7 @@ const opGetSessionToken = "GetSessionToken"
// 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) {
op := &request.Operation{
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)
// 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) {
req, out := c.GetSessionTokenRequest(input)
return out, req.Send()
@ -1049,7 +1049,7 @@ func (c *STS) GetSessionTokenWithContext(ctx aws.Context, input *GetSessionToken
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 {
_ struct{} `type:"structure"`
@ -1241,7 +1241,7 @@ func (s *AssumeRoleInput) SetTokenCode(v string) *AssumeRoleInput {
// Contains the response to a successful AssumeRole request, 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/AssumeRoleResponse
// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleResponse
type AssumeRoleOutput struct {
_ struct{} `type:"structure"`
@ -1295,7 +1295,7 @@ func (s *AssumeRoleOutput) SetPackedPolicySize(v int64) *AssumeRoleOutput {
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 {
_ struct{} `type:"structure"`
@ -1436,7 +1436,7 @@ func (s *AssumeRoleWithSAMLInput) SetSAMLAssertion(v string) *AssumeRoleWithSAML
// Contains the response to a successful AssumeRoleWithSAML request, 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/AssumeRoleWithSAMLResponse
// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLResponse
type AssumeRoleWithSAMLOutput struct {
_ struct{} `type:"structure"`
@ -1548,7 +1548,7 @@ func (s *AssumeRoleWithSAMLOutput) SetSubjectType(v string) *AssumeRoleWithSAMLO
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 {
_ struct{} `type:"structure"`
@ -1711,7 +1711,7 @@ func (s *AssumeRoleWithWebIdentityInput) SetWebIdentityToken(v string) *AssumeRo
// Contains the response to a successful AssumeRoleWithWebIdentity request,
// 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 {
_ struct{} `type:"structure"`
@ -1804,7 +1804,7 @@ func (s *AssumeRoleWithWebIdentityOutput) SetSubjectFromWebIdentityToken(v strin
// The identifiers for the temporary security credentials that the operation
// 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 {
_ struct{} `type:"structure"`
@ -1847,7 +1847,7 @@ func (s *AssumedRoleUser) SetAssumedRoleId(v string) *AssumedRoleUser {
}
// 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 {
_ struct{} `type:"structure"`
@ -1906,7 +1906,7 @@ func (s *Credentials) SetSessionToken(v string) *Credentials {
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 {
_ struct{} `type:"structure"`
@ -1951,7 +1951,7 @@ func (s *DecodeAuthorizationMessageInput) SetEncodedMessage(v string) *DecodeAut
// 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
// 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 {
_ 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.
// 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 {
_ struct{} `type:"structure"`
@ -2017,7 +2017,7 @@ func (s *FederatedUser) SetFederatedUserId(v string) *FederatedUser {
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 {
_ struct{} `type:"structure"`
}
@ -2034,7 +2034,7 @@ func (s GetCallerIdentityInput) GoString() string {
// Contains the response to a successful GetCallerIdentity request, including
// 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 {
_ struct{} `type:"structure"`
@ -2080,7 +2080,7 @@ func (s *GetCallerIdentityOutput) SetUserId(v string) *GetCallerIdentityOutput {
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 {
_ struct{} `type:"structure"`
@ -2189,7 +2189,7 @@ func (s *GetFederationTokenInput) SetPolicy(v string) *GetFederationTokenInput {
// Contains the response to a successful GetFederationToken request, 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/GetFederationTokenResponse
// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenResponse
type GetFederationTokenOutput struct {
_ struct{} `type:"structure"`
@ -2242,7 +2242,7 @@ func (s *GetFederationTokenOutput) SetPackedPolicySize(v int64) *GetFederationTo
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 {
_ struct{} `type:"structure"`
@ -2327,7 +2327,7 @@ func (s *GetSessionTokenInput) SetTokenCode(v string) *GetSessionTokenInput {
// Contains the response to a successful GetSessionToken request, 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/GetSessionTokenResponse
// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenResponse
type GetSessionTokenOutput struct {
_ struct{} `type:"structure"`

View File

@ -56,7 +56,7 @@
//
// 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.
// These clients are safe to use concurrently.
//

304
vendor/vendor.json vendored
View File

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