update go-aws-sdk to v1.12.71
This commit is contained in:
parent
7d5d62d748
commit
8827df1ed2
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
@ -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"
|
|
@ -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" .
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
//
|
//
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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
|
@ -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
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
|
@ -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
|
||||||
|
|
|
@ -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())
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
}
|
|
@ -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 == "" {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
@ -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.
|
||||||
//
|
//
|
||||||
|
|
|
@ -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
|
@ -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.
|
||||||
//
|
//
|
||||||
|
|
|
@ -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)
|
||||||
//
|
//
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"`
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
//
|
//
|
||||||
|
|
|
@ -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=",
|
||||||
|
|
Loading…
Reference in New Issue