Merge pull request #9275 from hashicorp/aws-sdk-1.4.15

provider/aws: Bump version of AWS SDK to 1.4.15
This commit is contained in:
Paul Stack 2016-10-07 14:22:49 +01:00 committed by GitHub
commit 4f8685b3ea
21 changed files with 2105 additions and 1029 deletions

32
vendor/github.com/aws/aws-sdk-go/CHANGELOG.md generated vendored Normal file
View File

@ -0,0 +1,32 @@
Release v1.4.15
===
Service Model Updates
---
`service/cognitoidentityprovider`: Update Amazon Cognito Identity Provider service model
`service/devicefarm`: Update AWS Device Farm documentation
`service/opsworks`: Update AWS OpsWorks service model
`service/s3`: Update Amazon Simple Storage Service model
`service/waf`: Update AWS WAF service model
SDK Bug Fixes
---
`aws/request`: Fix HTTP Request Body race condition #874
SDK Feature Updates
---
`aws/ec2metadata`: Add support for EC2 User Data #872
`aws/signer/v4`: Remove logic determining if request needs to be resigned #876
Release v1.4.14 (2016-09-29)
===
* `service/ec2`: api, documentation, and paginators updates.
* `service/s3`: api and documentation updates.
Release v1.4.13 (2016-09-27)
===
* `service/codepipeline`: documentation updates.
* `service/cloudformation`: api and documentation updates.
* `service/kms`: documentation updates.
* `service/elasticfilesystem`: documentation updates.
* `service/snowball`: documentation updates.

View File

@ -9,6 +9,7 @@ LINTIGNOREDEPS='vendor/.+\.go'
SDK_WITH_VENDOR_PKGS=$(shell go list ./... | grep -v "/vendor/src")
SDK_ONLY_PKGS=$(shell go list ./... | grep -v "/vendor/")
SDK_GO_1_4=$(shell go version | grep "go1.4")
SDK_GO_1_5=$(shell go version | grep "go1.5")
SDK_GO_VERSION=$(shell go version | awk '''{print $$3}''' | tr -d '''\n''')
all: get-deps generate unit
@ -101,7 +102,7 @@ verify: get-deps-verify lint vet
lint:
@echo "go lint SDK and vendor packages"
@lint=`if [ -z "${SDK_GO_1_4}" ]; then golint ./...; else echo "skipping golint"; fi`; \
@lint=`if [ \( -z "${SDK_GO_1_4}" \) -a \( -z "${SDK_GO_1_5}" \) ]; then golint ./...; else echo "skipping golint"; fi`; \
lint=`echo "$$lint" | grep -E -v -e ${LINTIGNOREDOT} -e ${LINTIGNOREDOC} -e ${LINTIGNORECONST} -e ${LINTIGNORESTUTTER} -e ${LINTIGNOREINFLECT} -e ${LINTIGNOREDEPS} -e ${LINTIGNOREINFLECTS3UPLOAD}`; \
echo "$$lint"; \
if [ "$$lint" != "" ] && [ "$$lint" != "skipping golint" ]; then exit 1; fi
@ -130,7 +131,7 @@ get-deps-tests:
get-deps-verify:
@echo "go get SDK verification utilities"
@if [ -z "${SDK_GO_1_4}" ]; then go get github.com/golang/lint/golint; else echo "skipped getting golint"; fi
@if [ \( -z "${SDK_GO_1_4}" \) -a \( -z "${SDK_GO_1_5}" \) ]; then go get github.com/golang/lint/golint; else echo "skipped getting golint"; fi
bench:
@echo "go bench SDK packages"

View File

@ -2,7 +2,6 @@ package client
import (
"fmt"
"io/ioutil"
"net/http/httputil"
"github.com/aws/aws-sdk-go/aws"
@ -104,8 +103,7 @@ func logRequest(r *request.Request) {
// Reset the request body because dumpRequest will re-wrap the r.HTTPRequest's
// Body as a NoOpCloser and will not be reset after read by the HTTP
// client reader.
r.Body.Seek(r.BodyStart, 0)
r.HTTPRequest.Body = ioutil.NopCloser(r.Body)
r.ResetBody()
}
r.Config.Logger.Log(fmt.Sprintf(logReqMsg, r.ClientInfo.ServiceName, r.Operation.Name, string(dumpedBody)))

View File

@ -10,9 +10,11 @@ import (
"regexp"
"runtime"
"strconv"
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/request"
)
@ -67,6 +69,34 @@ var SDKVersionUserAgentHandler = request.NamedHandler{
var reStatusCode = regexp.MustCompile(`^(\d{3})`)
// ValidateReqSigHandler is a request handler to ensure that the request's
// signature doesn't expire before it is sent. This can happen when a request
// is built and signed signficantly before it is sent. Or signficant delays
// occur whne retrying requests that would cause the signature to expire.
var ValidateReqSigHandler = request.NamedHandler{
Name: "core.ValidateReqSigHandler",
Fn: func(r *request.Request) {
// Unsigned requests are not signed
if r.Config.Credentials == credentials.AnonymousCredentials {
return
}
signedTime := r.Time
if !r.LastSignedAt.IsZero() {
signedTime = r.LastSignedAt
}
// 10 minutes to allow for some clock skew/delays in transmission.
// Would be improved with aws/aws-sdk-go#423
if signedTime.Add(10 * time.Minute).After(time.Now()) {
return
}
fmt.Println("request expired, resigning")
r.Sign()
},
}
// SendHandler is a request handler to send service request using HTTP client.
var SendHandler = request.NamedHandler{Name: "core.SendHandler", Fn: func(r *request.Request) {
var err error

View File

@ -72,6 +72,7 @@ func Handlers() request.Handlers {
handlers.Build.PushBackNamed(corehandlers.SDKVersionUserAgentHandler)
handlers.Build.AfterEachFn = request.HandlerListStopOnError
handlers.Sign.PushBackNamed(corehandlers.BuildContentLengthHandler)
handlers.Send.PushBackNamed(corehandlers.ValidateReqSigHandler)
handlers.Send.PushBackNamed(corehandlers.SendHandler)
handlers.AfterRetry.PushBackNamed(corehandlers.AfterRetryHandler)
handlers.ValidateResponse.PushBackNamed(corehandlers.ValidateResponseHandler)

View File

@ -3,6 +3,7 @@ package ec2metadata
import (
"encoding/json"
"fmt"
"net/http"
"path"
"strings"
"time"
@ -27,6 +28,27 @@ func (c *EC2Metadata) GetMetadata(p string) (string, error) {
return output.Content, req.Send()
}
// GetUserData returns the userdata that was configured for the service. If
// there is no user-data setup for the EC2 instance a "NotFoundError" error
// code will be returned.
func (c *EC2Metadata) GetUserData() (string, error) {
op := &request.Operation{
Name: "GetUserData",
HTTPMethod: "GET",
HTTPPath: path.Join("/", "user-data"),
}
output := &metadataOutput{}
req := c.NewRequest(op, nil, output)
req.Handlers.UnmarshalError.PushBack(func(r *request.Request) {
if r.HTTPResponse.StatusCode == http.StatusNotFound {
r.Error = awserr.New("NotFoundError", "user-data not found", r.Error)
}
})
return output.Content, req.Send()
}
// GetDynamicData uses the path provided to request information from the EC2
// instance metadata service for dynamic data. The content will be returned
// as a string, or error if the request failed.

View File

@ -9,7 +9,7 @@ import (
// with retrying requests
type offsetReader struct {
buf io.ReadSeeker
lock sync.RWMutex
lock sync.Mutex
closed bool
}
@ -21,7 +21,8 @@ func newOffsetReader(buf io.ReadSeeker, offset int64) *offsetReader {
return reader
}
// Close is a thread-safe close. Uses the write lock.
// Close will close the instance of the offset reader's access to
// the underlying io.ReadSeeker.
func (o *offsetReader) Close() error {
o.lock.Lock()
defer o.lock.Unlock()
@ -29,10 +30,10 @@ func (o *offsetReader) Close() error {
return nil
}
// Read is a thread-safe read using a read lock.
// Read is a thread-safe read of the underlying io.ReadSeeker
func (o *offsetReader) Read(p []byte) (int, error) {
o.lock.RLock()
defer o.lock.RUnlock()
o.lock.Lock()
defer o.lock.Unlock()
if o.closed {
return 0, io.EOF
@ -41,6 +42,14 @@ func (o *offsetReader) Read(p []byte) (int, error) {
return o.buf.Read(p)
}
// Seek is a thread-safe seeking operation.
func (o *offsetReader) Seek(offset int64, whence int) (int64, error) {
o.lock.Lock()
defer o.lock.Unlock()
return o.buf.Seek(offset, whence)
}
// CloseAndCopy will return a new offsetReader with a copy of the old buffer
// and close the old buffer.
func (o *offsetReader) CloseAndCopy(offset int64) *offsetReader {

View File

@ -4,7 +4,6 @@ import (
"bytes"
"fmt"
"io"
"io/ioutil"
"net/http"
"net/url"
"reflect"
@ -42,6 +41,12 @@ type Request struct {
LastSignedAt time.Time
built bool
// Need to persist an intermideant body betweend the input Body and HTTP
// request body because the HTTP Client's transport can maintain a reference
// to the HTTP request's body after the client has returned. This value is
// safe to use concurrently and rewraps the input Body for each HTTP request.
safeBody *offsetReader
}
// An Operation is the service API operation to be made.
@ -135,8 +140,8 @@ func (r *Request) SetStringBody(s string) {
// SetReaderBody will set the request's body reader.
func (r *Request) SetReaderBody(reader io.ReadSeeker) {
r.HTTPRequest.Body = newOffsetReader(reader, 0)
r.Body = reader
r.ResetBody()
}
// Presign returns the request's signed URL. Error will be returned
@ -220,6 +225,24 @@ func (r *Request) Sign() error {
return r.Error
}
// ResetBody rewinds the request body backto its starting position, and
// set's the HTTP Request body reference. When the body is read prior
// to being sent in the HTTP request it will need to be rewound.
func (r *Request) ResetBody() {
if r.safeBody != nil {
r.safeBody.Close()
}
r.safeBody = newOffsetReader(r.Body, r.BodyStart)
r.HTTPRequest.Body = r.safeBody
}
// GetBody will return an io.ReadSeeker of the Request's underlying
// input body with a concurrency safe wrapper.
func (r *Request) GetBody() io.ReadSeeker {
return r.safeBody
}
// Send will send the request returning error if errors are encountered.
//
// Send will sign the request prior to sending. All Send Handlers will
@ -231,6 +254,8 @@ func (r *Request) Sign() error {
//
// readLoop() and getConn(req *Request, cm connectMethod)
// https://github.com/golang/go/blob/master/src/net/http/transport.go
//
// Send will not close the request.Request's body.
func (r *Request) Send() error {
for {
if aws.BoolValue(r.Retryable) {
@ -239,21 +264,15 @@ func (r *Request) Send() error {
r.ClientInfo.ServiceName, r.Operation.Name, r.RetryCount))
}
var body io.ReadCloser
if reader, ok := r.HTTPRequest.Body.(*offsetReader); ok {
body = reader.CloseAndCopy(r.BodyStart)
} else {
if r.Config.Logger != nil {
r.Config.Logger.Log("Request body type has been overwritten. May cause race conditions")
}
r.Body.Seek(r.BodyStart, 0)
body = ioutil.NopCloser(r.Body)
}
// The previous http.Request will have a reference to the r.Body
// and the HTTP Client's Transport may still be reading from
// the request's body even though the Client's Do returned.
r.HTTPRequest = copyHTTPRequest(r.HTTPRequest, nil)
r.ResetBody()
r.HTTPRequest = copyHTTPRequest(r.HTTPRequest, body)
// Closing response body to ensure that no response body is leaked
// between retry attempts.
if r.HTTPResponse != nil && r.HTTPResponse.Body != nil {
// Closing response body. Since we are setting a new request to send off, this
// response will get squashed and leaked.
r.HTTPResponse.Body.Close()
}
}
@ -281,7 +300,6 @@ func (r *Request) Send() error {
debugLogReqError(r, "Send Request", true, err)
continue
}
r.Handlers.UnmarshalMeta.Run(r)
r.Handlers.ValidateResponse.Run(r)
if r.Error != nil {

View File

@ -179,7 +179,12 @@ type Options struct {
// SharedConfigState: SharedConfigEnable,
// })
func NewSessionWithOptions(opts Options) (*Session, error) {
envCfg := loadEnvConfig()
var envCfg envConfig
if opts.SharedConfigState == SharedConfigEnable {
envCfg = loadSharedEnvConfig()
} else {
envCfg = loadEnvConfig()
}
if len(opts.Profile) > 0 {
envCfg.Profile = opts.Profile

View File

@ -247,11 +247,6 @@ func (v4 Signer) signWithBody(r *http.Request, body io.ReadSeeker, service, regi
}
if ctx.isRequestSigned() {
if !v4.Credentials.IsExpired() && currentTimeFn().Before(ctx.Time.Add(10*time.Minute)) {
// If the request is already signed, and the credentials have not
// expired, and the request is not too old ignore the signing request.
return ctx.SignedHeaderVals, nil
}
ctx.Time = currentTimeFn()
ctx.handlePresignRemoval()
}
@ -366,7 +361,9 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time
signingTime = req.LastSignedAt
}
signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.Body, name, region, req.ExpireTime, signingTime)
signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.GetBody(),
name, region, req.ExpireTime, signingTime,
)
if err != nil {
req.Error = err
req.SignedHeaderVals = nil
@ -377,7 +374,7 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time
req.LastSignedAt = curTimeFn()
}
const logSignInfoMsg = `DEBUG: Request Signiture:
const logSignInfoMsg = `DEBUG: Request Signature:
---[ CANONICAL STRING ]-----------------------------
%s
---[ STRING TO SIGN ]--------------------------------

View File

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

View File

@ -8267,7 +8267,11 @@ type Integration struct {
// value.
RequestTemplates map[string]*string `locationName:"requestTemplates" type:"map"`
// Specifies the integration's type. The valid value is HTTP, AWS, or MOCK.
// Specifies the integration's type. The valid value is HTTP for integrating
// with an HTTP back end, AWS for any AWS service endpoints, MOCK for testing
// without actually invoking the back end, HTTP_PROXY for integrating with the
// HTTP proxy integration, or AWS_PROXY for integrating with the Lambda proxy
// integration type.
Type *string `locationName:"type" type:"string" enum:"IntegrationType"`
// Specifies the integration's Uniform Resource Identifier (URI). For HTTP integrations,
@ -8730,7 +8734,7 @@ type PatchOperation struct {
// for a given resource. Support of the operations depends on specific operational
// contexts. Attempts to apply an unsupported operation on a resource will return
// an error message.
Op *string `locationName:"op" type:"string" enum:"op"`
Op *string `locationName:"op" type:"string" enum:"Op"`
// The op operation's target, as identified by a JSON Pointer (https://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-08)
// value that references a location within the targeted resource. For example,
@ -9294,8 +9298,7 @@ type Stage struct {
// A map that defines the method settings for a Stage resource. Keys (designated
// as /{method_setting_key below) are method paths defined as {resource_path}/{http_method}
// for an individual method override, or /\*/\* for overriding all methods in
// the stage. Any forward slash ("/") characters in the resource_path part must
// be encoded as "~1" as in, for example, ~1resource~1sub-resource/GET.
// the stage.
MethodSettings map[string]*MethodSetting `locationName:"methodSettings" type:"map"`
// The name of the stage is the first path segment in the Uniform Resource Identifier
@ -10392,7 +10395,10 @@ const (
CacheClusterStatusFlushInProgress = "FLUSH_IN_PROGRESS"
)
// The integration type. The valid value is HTTP, AWS, or MOCK.
// The integration type. The valid value is HTTP for integrating with an HTTP
// back end, AWS for any AWS service endpoints, MOCK for testing without actually
// invoking the back end, HTTP_PROXY for integrating with the HTTP proxy integration,
// or AWS_PROXY for integrating with the Lambda proxy integration type.
const (
// @enum IntegrationType
IntegrationTypeHttp = "HTTP"
@ -10400,6 +10406,25 @@ const (
IntegrationTypeAws = "AWS"
// @enum IntegrationType
IntegrationTypeMock = "MOCK"
// @enum IntegrationType
IntegrationTypeHttpProxy = "HTTP_PROXY"
// @enum IntegrationType
IntegrationTypeAwsProxy = "AWS_PROXY"
)
const (
// @enum Op
OpAdd = "add"
// @enum Op
OpRemove = "remove"
// @enum Op
OpReplace = "replace"
// @enum Op
OpMove = "move"
// @enum Op
OpCopy = "copy"
// @enum Op
OpTest = "test"
)
const (
@ -10426,18 +10451,3 @@ const (
// @enum UnauthorizedCacheControlHeaderStrategy
UnauthorizedCacheControlHeaderStrategySucceedWithoutResponseHeader = "SUCCEED_WITHOUT_RESPONSE_HEADER"
)
const (
// @enum op
OpAdd = "add"
// @enum op
OpRemove = "remove"
// @enum op
OpReplace = "replace"
// @enum op
OpMove = "move"
// @enum op
OpCopy = "copy"
// @enum op
OpTest = "test"
)

View File

@ -689,6 +689,8 @@ func (c *CloudFormation) DescribeStacksRequest(input *DescribeStacksInput) (req
// Returns the description for the specified stack; if no stack name was specified,
// then it returns the description for all the stacks created.
//
// If the stack does not exist, an AmazonCloudFormationException is returned.
func (c *CloudFormation) DescribeStacks(input *DescribeStacksInput) (*DescribeStacksOutput, error) {
req, out := c.DescribeStacksRequest(input)
err := req.Send()
@ -1406,7 +1408,10 @@ func (c *CloudFormation) ValidateTemplateRequest(input *ValidateTemplateInput) (
return
}
// Validates a specified template.
// Validates a specified template. AWS CloudFormation first checks if the template
// is valid JSON. If it isn't, AWS CloudFormation checks if the template is
// valid YAML. If both these checks fail, AWS CloudFormation returns a template
// validation error.
func (c *CloudFormation) ValidateTemplate(input *ValidateTemplateInput) (*ValidateTemplateOutput, error) {
req, out := c.ValidateTemplateRequest(input)
err := req.Send()
@ -1556,6 +1561,19 @@ func (s ChangeSetSummary) GoString() string {
type ContinueUpdateRollbackInput struct {
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
// role that AWS CloudFormation assumes to roll back the stack. AWS CloudFormation
// uses the role's credentials to make calls on your behalf. AWS CloudFormation
// always uses this role for all future operations on the stack. As long as
// users have permission to operate on the stack, AWS CloudFormation uses this
// role even if the users don't have permission to pass it. Ensure that the
// role grants least privilege.
//
// If you don't specify a value, AWS CloudFormation uses the role that was
// previously associated with the stack. If no role is available, AWS CloudFormation
// uses a temporary session that is generated from your user credentials.
RoleARN *string `min:"20" type:"string"`
// The name or the unique ID of the stack that you want to continue rolling
// back.
StackName *string `min:"1" type:"string" required:"true"`
@ -1574,6 +1592,9 @@ func (s ContinueUpdateRollbackInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *ContinueUpdateRollbackInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "ContinueUpdateRollbackInput"}
if s.RoleARN != nil && len(*s.RoleARN) < 20 {
invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
}
if s.StackName == nil {
invalidParams.Add(request.NewErrParamRequired("StackName"))
}
@ -1672,6 +1693,19 @@ type CreateChangeSetInput struct {
// in the AWS CloudFormation User Guide.
ResourceTypes []*string `type:"list"`
// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
// role that AWS CloudFormation assumes when executing the change set. AWS CloudFormation
// uses the role's credentials to make calls on your behalf. AWS CloudFormation
// always uses this role for all future operations on the stack. As long as
// users have permission to operate on the stack, AWS CloudFormation uses this
// role even if the users don't have permission to pass it. Ensure that the
// role grants least privilege.
//
// If you don't specify a value, AWS CloudFormation uses the role that was
// previously associated with the stack. If no role is available, AWS CloudFormation
// uses a temporary session that is generated from your user credentials.
RoleARN *string `min:"20" type:"string"`
// The name or the unique ID of the stack for which you are creating a change
// set. AWS CloudFormation generates the change set by comparing this stack's
// information with the information that you submit, such as a modified template
@ -1728,6 +1762,9 @@ func (s *CreateChangeSetInput) Validate() error {
if s.Description != nil && len(*s.Description) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Description", 1))
}
if s.RoleARN != nil && len(*s.RoleARN) < 20 {
invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
}
if s.StackName == nil {
invalidParams.Add(request.NewErrParamRequired("StackName"))
}
@ -1834,6 +1871,19 @@ type CreateStackInput struct {
// Management (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
ResourceTypes []*string `type:"list"`
// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
// role that AWS CloudFormation assumes to create the stack. AWS CloudFormation
// uses the role's credentials to make calls on your behalf. AWS CloudFormation
// always uses this role for all future operations on the stack. As long as
// users have permission to operate on the stack, AWS CloudFormation uses this
// role even if the users don't have permission to pass it. Ensure that the
// role grants least privilege.
//
// If you don't specify a value, AWS CloudFormation uses the role that was
// previously associated with the stack. If no role is available, AWS CloudFormation
// uses a temporary session that is generated from your user credentials.
RoleARN *string `min:"20" type:"string"`
// The name that is associated with the stack. The name must be unique in the
// region in which you are creating the stack.
//
@ -1849,7 +1899,7 @@ type CreateStackInput struct {
StackPolicyBody *string `min:"1" type:"string"`
// Location of a file containing the stack policy. The URL must point to a policy
// (max size: 16KB) located in an S3 bucket in the same region as the stack.
// (maximum size: 16 KB) located in an S3 bucket in the same region as the stack.
// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
// but not both.
StackPolicyURL *string `min:"1" type:"string"`
@ -1896,6 +1946,9 @@ func (s CreateStackInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateStackInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
if s.RoleARN != nil && len(*s.RoleARN) < 20 {
invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
}
if s.StackName == nil {
invalidParams.Add(request.NewErrParamRequired("StackName"))
}
@ -2008,6 +2061,15 @@ type DeleteStackInput struct {
// a non-empty S3 bucket, but you want to delete the stack.
RetainResources []*string `type:"list"`
// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
// role that AWS CloudFormation assumes to delete the stack. AWS CloudFormation
// uses the role's credentials to make calls on your behalf.
//
// If you don't specify a value, AWS CloudFormation uses the role that was
// previously associated with the stack. If no role is available, AWS CloudFormation
// uses a temporary session that is generated from your user credentials.
RoleARN *string `min:"20" type:"string"`
// The name or the unique stack ID that is associated with the stack.
StackName *string `type:"string" required:"true"`
}
@ -2025,6 +2087,9 @@ func (s DeleteStackInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteStackInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
if s.RoleARN != nil && len(*s.RoleARN) < 20 {
invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
}
if s.StackName == nil {
invalidParams.Add(request.NewErrParamRequired("StackName"))
}
@ -2712,6 +2777,9 @@ type GetTemplateOutput struct {
// Structure containing the template body. (For more information, go to Template
// Anatomy (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
// in the AWS CloudFormation User Guide.)
//
// AWS CloudFormation returns the same template that was used when the stack
// was created.
TemplateBody *string `min:"1" type:"string"`
}
@ -3454,6 +3522,11 @@ type Stack struct {
// A list of Parameter structures.
Parameters []*Parameter `type:"list"`
// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
// role that is associated with the stack. During a stack operation, AWS CloudFormation
// uses this role's credentials to make calls on your behalf.
RoleARN *string `min:"20" type:"string"`
// Unique identifier of the stack.
StackId *string `type:"string"`
@ -3589,8 +3662,8 @@ type StackResourceDetail struct {
// The logical name of the resource specified in the template.
LogicalResourceId *string `type:"string" required:"true"`
// The JSON format content of the Metadata attribute declared for the resource.
// For more information, see Metadata Attribute (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
// The content of the Metadata attribute declared for the resource. For more
// information, see Metadata Attribute (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
// in the AWS CloudFormation User Guide.
Metadata *string `type:"string"`
@ -3806,6 +3879,19 @@ type UpdateStackInput struct {
// Management (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
ResourceTypes []*string `type:"list"`
// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
// role that AWS CloudFormation assumes to update the stack. AWS CloudFormation
// uses the role's credentials to make calls on your behalf. AWS CloudFormation
// always uses this role for all future operations on the stack. As long as
// users have permission to operate on the stack, AWS CloudFormation uses this
// role even if the users don't have permission to pass it. Ensure that the
// role grants least privilege.
//
// If you don't specify a value, AWS CloudFormation uses the role that was
// previously associated with the stack. If no role is available, AWS CloudFormation
// uses a temporary session that is generated from your user credentials.
RoleARN *string `min:"20" type:"string"`
// The name or unique stack ID of the stack to update.
StackName *string `type:"string" required:"true"`
@ -3891,6 +3977,9 @@ func (s UpdateStackInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateStackInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
if s.RoleARN != nil && len(*s.RoleARN) < 20 {
invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
}
if s.StackName == nil {
invalidParams.Add(request.NewErrParamRequired("StackName"))
}

View File

@ -13,6 +13,55 @@ import (
"github.com/aws/aws-sdk-go/private/protocol/ec2query"
)
const opAcceptReservedInstancesExchangeQuote = "AcceptReservedInstancesExchangeQuote"
// AcceptReservedInstancesExchangeQuoteRequest generates a "aws/request.Request" representing the
// client's request for the AcceptReservedInstancesExchangeQuote operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the AcceptReservedInstancesExchangeQuote method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the AcceptReservedInstancesExchangeQuoteRequest method.
// req, resp := client.AcceptReservedInstancesExchangeQuoteRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *EC2) AcceptReservedInstancesExchangeQuoteRequest(input *AcceptReservedInstancesExchangeQuoteInput) (req *request.Request, output *AcceptReservedInstancesExchangeQuoteOutput) {
op := &request.Operation{
Name: opAcceptReservedInstancesExchangeQuote,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &AcceptReservedInstancesExchangeQuoteInput{}
}
req = c.newRequest(op, input, output)
output = &AcceptReservedInstancesExchangeQuoteOutput{}
req.Data = output
return
}
// Purchases Convertible Reserved Instance offerings described in the GetReservedInstancesExchangeQuote
// call.
func (c *EC2) AcceptReservedInstancesExchangeQuote(input *AcceptReservedInstancesExchangeQuoteInput) (*AcceptReservedInstancesExchangeQuoteOutput, error) {
req, out := c.AcceptReservedInstancesExchangeQuoteRequest(input)
err := req.Send()
return out, err
}
const opAcceptVpcPeeringConnection = "AcceptVpcPeeringConnection"
// AcceptVpcPeeringConnectionRequest generates a "aws/request.Request" representing the
@ -2184,23 +2233,23 @@ func (c *EC2) CreateReservedInstancesListingRequest(input *CreateReservedInstanc
return
}
// Creates a listing for Amazon EC2 Reserved Instances to be sold in the Reserved
// Instance Marketplace. You can submit one Reserved Instance listing at a time.
// To get a list of your Reserved Instances, you can use the DescribeReservedInstances
// operation.
// Creates a listing for Amazon EC2 Standard Reserved Instances to be sold in
// the Reserved Instance Marketplace. You can submit one Standard Reserved Instance
// listing at a time. To get a list of your Standard Reserved Instances, you
// can use the DescribeReservedInstances operation.
//
// The Reserved Instance Marketplace matches sellers who want to resell Reserved
// Instance capacity that they no longer need with buyers who want to purchase
// additional capacity. Reserved Instances bought and sold through the Reserved
// Instance Marketplace work like any other Reserved Instances.
// The Reserved Instance Marketplace matches sellers who want to resell Standard
// Reserved Instance capacity that they no longer need with buyers who want
// to purchase additional capacity. Reserved Instances bought and sold through
// the Reserved Instance Marketplace work like any other Reserved Instances.
//
// To sell your Reserved Instances, you must first register as a seller in
// the Reserved Instance Marketplace. After completing the registration process,
// To sell your Standard Reserved Instances, you must first register as a seller
// in the Reserved Instance Marketplace. After completing the registration process,
// you can create a Reserved Instance Marketplace listing of some or all of
// your Reserved Instances, and specify the upfront price to receive for them.
// Your Reserved Instance listings then become available for purchase. To view
// the details of your Reserved Instance listing, you can use the DescribeReservedInstancesListings
// operation.
// your Standard Reserved Instances, and specify the upfront price to receive
// for them. Your Standard Reserved Instance listings then become available
// for purchase. To view the details of your Standard Reserved Instance listing,
// you can use the DescribeReservedInstancesListings operation.
//
// For more information, see Reserved Instance Marketplace (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-market-general.html)
// in the Amazon Elastic Compute Cloud User Guide.
@ -7072,6 +7121,9 @@ func (c *EC2) DescribeSpotFleetRequestsRequest(input *DescribeSpotFleetRequestsI
}
// Describes your Spot fleet requests.
//
// Spot fleet requests are deleted 48 hours after they are canceled and their
// instances are terminated.
func (c *EC2) DescribeSpotFleetRequests(input *DescribeSpotFleetRequestsInput) (*DescribeSpotFleetRequestsOutput, error) {
req, out := c.DescribeSpotFleetRequestsRequest(input)
err := req.Send()
@ -7156,6 +7208,9 @@ func (c *EC2) DescribeSpotInstanceRequestsRequest(input *DescribeSpotInstanceReq
// the instance ID appears in the response and contains the identifier of the
// instance. Alternatively, you can use DescribeInstances with a filter to look
// for instances where the instance lifecycle is spot.
//
// Spot instance requests are deleted 4 hours after they are canceled and their
// instances are terminated.
func (c *EC2) DescribeSpotInstanceRequests(input *DescribeSpotInstanceRequestsInput) (*DescribeSpotInstanceRequestsOutput, error) {
req, out := c.DescribeSpotInstanceRequestsRequest(input)
err := req.Send()
@ -9109,6 +9164,56 @@ func (c *EC2) GetPasswordData(input *GetPasswordDataInput) (*GetPasswordDataOutp
return out, err
}
const opGetReservedInstancesExchangeQuote = "GetReservedInstancesExchangeQuote"
// GetReservedInstancesExchangeQuoteRequest generates a "aws/request.Request" representing the
// client's request for the GetReservedInstancesExchangeQuote operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the GetReservedInstancesExchangeQuote method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the GetReservedInstancesExchangeQuoteRequest method.
// req, resp := client.GetReservedInstancesExchangeQuoteRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *EC2) GetReservedInstancesExchangeQuoteRequest(input *GetReservedInstancesExchangeQuoteInput) (req *request.Request, output *GetReservedInstancesExchangeQuoteOutput) {
op := &request.Operation{
Name: opGetReservedInstancesExchangeQuote,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &GetReservedInstancesExchangeQuoteInput{}
}
req = c.newRequest(op, input, output)
output = &GetReservedInstancesExchangeQuoteOutput{}
req.Data = output
return
}
// Returns details about the values and term of your specified Convertible Reserved
// Instances. When an offering ID is specified it returns information about
// whether the exchange is valid and can be performed.
func (c *EC2) GetReservedInstancesExchangeQuote(input *GetReservedInstancesExchangeQuoteInput) (*GetReservedInstancesExchangeQuoteOutput, error) {
req, out := c.GetReservedInstancesExchangeQuoteRequest(input)
err := req.Send()
return out, err
}
const opImportImage = "ImportImage"
// ImportImageRequest generates a "aws/request.Request" representing the
@ -9825,9 +9930,9 @@ func (c *EC2) ModifyReservedInstancesRequest(input *ModifyReservedInstancesInput
}
// Modifies the Availability Zone, instance count, instance type, or network
// platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved
// Instances to be modified must be identical, except for Availability Zone,
// network platform, and instance type.
// platform (EC2-Classic or EC2-VPC) of your Standard Reserved Instances. The
// Reserved Instances to be modified must be identical, except for Availability
// Zone, network platform, and instance type.
//
// For more information, see Modifying Reserved Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html)
// in the Amazon Elastic Compute Cloud User Guide.
@ -10439,9 +10544,7 @@ func (c *EC2) PurchaseReservedInstancesOfferingRequest(input *PurchaseReservedIn
}
// Purchases a Reserved Instance for use with your account. With Reserved Instances,
// you obtain a capacity reservation for a certain instance configuration over
// a specified period of time and pay a lower hourly rate compared to On-Demand
// instance pricing.
// you pay a lower hourly rate compared to On-Demand instance pricing.
//
// Use DescribeReservedInstancesOfferings to get a list of Reserved Instance
// offerings that match your specifications. After you've purchased a Reserved
@ -11941,6 +12044,9 @@ func (c *EC2) TerminateInstancesRequest(input *TerminateInstancesInput) (req *re
// Shuts down one or more instances. This operation is idempotent; if you terminate
// an instance more than once, each call succeeds.
//
// If you specify multiple instances and the request fails (for example, because
// of a single incorrect instance ID), none of the instances are terminated.
//
// Terminated instances remain visible after termination (for approximately
// one hour).
//
@ -12066,6 +12172,76 @@ func (c *EC2) UnmonitorInstances(input *UnmonitorInstancesInput) (*UnmonitorInst
return out, err
}
// Contains the parameters for accepting the quote.
type AcceptReservedInstancesExchangeQuoteInput struct {
_ struct{} `type:"structure"`
// Checks whether you have the required permissions for the action, without
// actually making the request, and provides an error response. If you have
// the required permissions, the error response is DryRunOperation. Otherwise,
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
// The IDs of the Convertible Reserved Instances that you want to exchange for
// other Convertible Reserved Instances of the same or higher value.
ReservedInstanceIds []*string `locationName:"ReservedInstanceId" locationNameList:"ReservedInstanceId" type:"list" required:"true"`
// The configurations of the Convertible Reserved Instance offerings you are
// purchasing in this exchange.
TargetConfigurations []*TargetConfigurationRequest `locationName:"TargetConfiguration" locationNameList:"TargetConfigurationRequest" type:"list"`
}
// String returns the string representation
func (s AcceptReservedInstancesExchangeQuoteInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s AcceptReservedInstancesExchangeQuoteInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *AcceptReservedInstancesExchangeQuoteInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "AcceptReservedInstancesExchangeQuoteInput"}
if s.ReservedInstanceIds == nil {
invalidParams.Add(request.NewErrParamRequired("ReservedInstanceIds"))
}
if s.TargetConfigurations != nil {
for i, v := range s.TargetConfigurations {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetConfigurations", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The result of the exchange and whether it was successful.
type AcceptReservedInstancesExchangeQuoteOutput struct {
_ struct{} `type:"structure"`
// The ID of the successful exchange.
ExchangeId *string `locationName:"exchangeId" type:"string"`
}
// String returns the string representation
func (s AcceptReservedInstancesExchangeQuoteOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s AcceptReservedInstancesExchangeQuoteOutput) GoString() string {
return s.String()
}
// Contains the parameters for AcceptVpcPeeringConnection.
type AcceptVpcPeeringConnectionInput struct {
_ struct{} `type:"structure"`
@ -15009,11 +15185,11 @@ type CreateReservedInstancesListingInput struct {
// ID specified in this call.
InstanceCount *int64 `locationName:"instanceCount" type:"integer" required:"true"`
// A list specifying the price of the Reserved Instance for each month remaining
// in the Reserved Instance term.
// A list specifying the price of the Standard Reserved Instance for each month
// remaining in the Reserved Instance term.
PriceSchedules []*PriceScheduleSpecification `locationName:"priceSchedules" locationNameList:"item" type:"list" required:"true"`
// The ID of the active Reserved Instance.
// The ID of the active Standard Reserved Instance.
ReservedInstancesId *string `locationName:"reservedInstancesId" type:"string" required:"true"`
}
@ -15053,7 +15229,7 @@ func (s *CreateReservedInstancesListingInput) Validate() error {
type CreateReservedInstancesListingOutput struct {
_ struct{} `type:"structure"`
// Information about the Reserved Instance listing.
// Information about the Standard Reserved Instance listing.
ReservedInstancesListings []*ReservedInstancesListing `locationName:"reservedInstancesListingsSet" locationNameList:"item" type:"list"`
}
@ -17654,9 +17830,6 @@ type DescribeConversionTasksInput struct {
// the required permissions, the error response is DryRunOperation. Otherwise,
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
// One or more filters.
Filters []*Filter `locationName:"filter" locationNameList:"Filter" type:"list"`
}
// String returns the string representation
@ -19788,6 +19961,8 @@ type DescribeReservedInstancesInput struct {
//
// instance-type - The instance type that is covered by the reservation.
//
// scope - The scope of the Reserved Instance (Region or Availability Zone).
//
// product-description - The Reserved Instance product platform description.
// Instances that include (Amazon VPC) in the product platform description will
// only be displayed to EC2-Classic account holders and are for use with Amazon
@ -19822,6 +19997,9 @@ type DescribeReservedInstancesInput struct {
// example, 0.84).
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// Describes whether the Reserved Instance is Standard or Convertible.
OfferingClass *string `type:"string" enum:"OfferingClassType"`
// The Reserved Instance offering type. If you are using tools that predate
// the 2011-11-01 API version, you only have access to the Medium Utilization
// Reserved Instance offering type.
@ -19858,7 +20036,7 @@ type DescribeReservedInstancesListingsInput struct {
// | cancelled | closed).
//
// status-message - The reason for the status.
Filters []*Filter `locationName:"filters" locationNameList:"Filter" type:"list"`
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// One or more Reserved Instance IDs.
ReservedInstancesId *string `locationName:"reservedInstancesId" type:"string"`
@ -20016,6 +20194,8 @@ type DescribeReservedInstancesOfferingsInput struct {
//
// reserved-instances-offering-id - The Reserved Instances offering ID.
//
// scope - The scope of the Reserved Instance (Availability Zone or Region).
//
// usage-price - The usage price of the Reserved Instance, per hour (for
// example, 0.84).
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@ -20060,6 +20240,9 @@ type DescribeReservedInstancesOfferingsInput struct {
// The token to retrieve the next page of results.
NextToken *string `locationName:"nextToken" type:"string"`
// The offering class of the Reserved Instance. Can be standard or convertible.
OfferingClass *string `type:"string" enum:"OfferingClassType"`
// The Reserved Instance offering type. If you are using tools that predate
// the 2011-11-01 API version, you only have access to the Medium Utilization
// Reserved Instance offering type.
@ -23828,6 +24011,99 @@ func (s GetPasswordDataOutput) GoString() string {
return s.String()
}
// Contains the parameters for GetReservedInstanceExchangeQuote.
type GetReservedInstancesExchangeQuoteInput struct {
_ struct{} `type:"structure"`
// Checks whether you have the required permissions for the action, without
// actually making the request, and provides an error response. If you have
// the required permissions, the error response is DryRunOperation. Otherwise,
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
// The ID/s of the Convertible Reserved Instances you want to exchange.
ReservedInstanceIds []*string `locationName:"ReservedInstanceId" locationNameList:"ReservedInstanceId" type:"list" required:"true"`
// The configuration requirements of the Convertible Reserved Instances you
// want in exchange for your current Convertible Reserved Instances.
TargetConfigurations []*TargetConfigurationRequest `locationName:"TargetConfiguration" locationNameList:"TargetConfigurationRequest" type:"list"`
}
// String returns the string representation
func (s GetReservedInstancesExchangeQuoteInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s GetReservedInstancesExchangeQuoteInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *GetReservedInstancesExchangeQuoteInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "GetReservedInstancesExchangeQuoteInput"}
if s.ReservedInstanceIds == nil {
invalidParams.Add(request.NewErrParamRequired("ReservedInstanceIds"))
}
if s.TargetConfigurations != nil {
for i, v := range s.TargetConfigurations {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetConfigurations", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Contains the output of GetReservedInstancesExchangeQuote.
type GetReservedInstancesExchangeQuoteOutput struct {
_ struct{} `type:"structure"`
// The currency of the transaction.
CurrencyCode *string `locationName:"currencyCode" type:"string"`
// If true, the exchange is valid. If false, the exchange cannot be performed.
IsValidExchange *bool `locationName:"isValidExchange" type:"boolean"`
// The new end date of the reservation term.
OutputReservedInstancesWillExpireAt *time.Time `locationName:"outputReservedInstancesWillExpireAt" type:"timestamp" timestampFormat:"iso8601"`
// The total true upfront charge for the exchange.
PaymentDue *string `locationName:"paymentDue" type:"string"`
// The cost associated with the Reserved Instance.
ReservedInstanceValueRollup *ReservationValue `locationName:"reservedInstanceValueRollup" type:"structure"`
// The configuration of your Convertible Reserved Instances.
ReservedInstanceValueSet []*ReservedInstanceReservationValue `locationName:"reservedInstanceValueSet" locationNameList:"item" type:"list"`
// The cost associated with the Reserved Instance.
TargetConfigurationValueRollup *ReservationValue `locationName:"targetConfigurationValueRollup" type:"structure"`
// The values of the target Convertible Reserved Instances.
TargetConfigurationValueSet []*TargetReservationValue `locationName:"targetConfigurationValueSet" locationNameList:"item" type:"list"`
// Describes the reason why the exchange can not be completed.
ValidationFailureReason *string `locationName:"validationFailureReason" type:"string"`
}
// String returns the string representation
func (s GetReservedInstancesExchangeQuoteOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s GetReservedInstancesExchangeQuoteOutput) GoString() string {
return s.String()
}
// Describes a security group.
type GroupIdentifier struct {
_ struct{} `type:"structure"`
@ -25329,16 +25605,19 @@ type InstanceNetworkInterfaceSpecification struct {
NetworkInterfaceId *string `locationName:"networkInterfaceId" type:"string"`
// The private IP address of the network interface. Applies only if creating
// a network interface when launching an instance.
// a network interface when launching an instance. You cannot specify this option
// if you're launching more than one instance in a RunInstances request.
PrivateIpAddress *string `locationName:"privateIpAddress" type:"string"`
// One or more private IP addresses to assign to the network interface. Only
// one private IP address can be designated as primary.
// one private IP address can be designated as primary. You cannot specify this
// option if you're launching more than one instance in a RunInstances request.
PrivateIpAddresses []*PrivateIpAddressSpecification `locationName:"privateIpAddressesSet" queryName:"PrivateIpAddresses" locationNameList:"item" type:"list"`
// The number of secondary private IP addresses. You can't specify this option
// and specify more than one private IP address using the private IP addresses
// option.
// option. You cannot specify this option if you're launching more than one
// instance in a RunInstances request.
SecondaryPrivateIpAddressCount *int64 `locationName:"secondaryPrivateIpAddressCount" type:"integer"`
// The ID of the subnet associated with the network string. Applies only if
@ -29112,6 +29391,31 @@ func (s Reservation) GoString() string {
return s.String()
}
// The cost associated with the Reserved Instance.
type ReservationValue struct {
_ struct{} `type:"structure"`
// The hourly rate of the reservation.
HourlyPrice *string `locationName:"hourlyPrice" type:"string"`
// The balance of the total value (the sum of remainingUpfrontValue + hourlyPrice
// * number of hours remaining).
RemainingTotalValue *string `locationName:"remainingTotalValue" type:"string"`
// The remaining upfront cost of the reservation.
RemainingUpfrontValue *string `locationName:"remainingUpfrontValue" type:"string"`
}
// String returns the string representation
func (s ReservationValue) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s ReservationValue) GoString() string {
return s.String()
}
// Describes the limit price of a Reserved Instance offering.
type ReservedInstanceLimitPrice struct {
_ struct{} `type:"structure"`
@ -29135,6 +29439,27 @@ func (s ReservedInstanceLimitPrice) GoString() string {
return s.String()
}
// The total value of the Convertible Reserved Instance.
type ReservedInstanceReservationValue struct {
_ struct{} `type:"structure"`
// The total value of the Convertible Reserved Instance that you are exchanging.
ReservationValue *ReservationValue `locationName:"reservationValue" type:"structure"`
// The ID of the Convertible Reserved Instance that you are exchanging.
ReservedInstanceId *string `locationName:"reservedInstanceId" type:"string"`
}
// String returns the string representation
func (s ReservedInstanceReservationValue) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s ReservedInstanceReservationValue) GoString() string {
return s.String()
}
// Describes a Reserved Instance.
type ReservedInstances struct {
_ struct{} `type:"structure"`
@ -29164,6 +29489,9 @@ type ReservedInstances struct {
// The instance type on which the Reserved Instance can be used.
InstanceType *string `locationName:"instanceType" type:"string" enum:"InstanceType"`
// The offering class of the Reserved Instance.
OfferingClass *string `locationName:"offeringClass" type:"string" enum:"OfferingClassType"`
// The Reserved Instance offering type.
OfferingType *string `locationName:"offeringType" type:"string" enum:"OfferingTypeValues"`
@ -29176,6 +29504,9 @@ type ReservedInstances struct {
// The ID of the Reserved Instance.
ReservedInstancesId *string `locationName:"reservedInstancesId" type:"string"`
// The scope of the Reserved Instance.
Scope *string `locationName:"scope" type:"string" enum:"scope"`
// The date and time the Reserved Instance started.
Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"`
@ -29215,6 +29546,9 @@ type ReservedInstancesConfiguration struct {
// The network platform of the modified Reserved Instances, which is either
// EC2-Classic or EC2-VPC.
Platform *string `locationName:"platform" type:"string"`
// Whether the Reserved Instance is standard or convertible.
Scope *string `locationName:"scope" type:"string" enum:"scope"`
}
// String returns the string representation
@ -29388,6 +29722,11 @@ type ReservedInstancesOffering struct {
// this is true.
Marketplace *bool `locationName:"marketplace" type:"boolean"`
// If convertible it can be exchanged for Reserved Instances of the same or
// higher monetary value, with different configurations. If standard, it is
// not possible to perform an exchange.
OfferingClass *string `locationName:"offeringClass" type:"string" enum:"OfferingClassType"`
// The Reserved Instance offering type.
OfferingType *string `locationName:"offeringType" type:"string" enum:"OfferingTypeValues"`
@ -29400,9 +29739,14 @@ type ReservedInstancesOffering struct {
// The recurring charge tag assigned to the resource.
RecurringCharges []*RecurringCharge `locationName:"recurringCharges" locationNameList:"item" type:"list"`
// The ID of the Reserved Instance offering.
// The ID of the Reserved Instance offering. This is the offering ID used in
// GetReservedInstancesExchangeQuote to confirm that an exchange can be made.
ReservedInstancesOfferingId *string `locationName:"reservedInstancesOfferingId" type:"string"`
// Whether the Reserved Instance is applied to instances in a region or an Availability
// Zone.
Scope *string `locationName:"scope" type:"string" enum:"scope"`
// The usage price of the Reserved Instance, per hour.
UsagePrice *float64 `locationName:"usagePrice" type:"float"`
}
@ -30094,6 +30438,9 @@ type RunInstancesInput struct {
// can't specify this parameter if PrivateIpAddresses.n.Primary is set to true
// and PrivateIpAddresses.n.PrivateIpAddress is set to an IP address.
//
// You cannot specify this option if you're launching more than one instance
// in the request.
//
// Default: We select an IP address from the IP address range of the subnet.
PrivateIpAddress *string `locationName:"privateIpAddress" type:"string"`
@ -31951,6 +32298,89 @@ func (s TagDescription) GoString() string {
return s.String()
}
// Information about the Convertible Reserved Instance offering.
type TargetConfiguration struct {
_ struct{} `type:"structure"`
// The number of instances the Convertible Reserved Instance offering can be
// applied to. This parameter is reserved and cannot be specified in a request
InstanceCount *int64 `locationName:"instanceCount" type:"integer"`
// The ID of the Convertible Reserved Instance offering.
OfferingId *string `locationName:"offeringId" type:"string"`
}
// String returns the string representation
func (s TargetConfiguration) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s TargetConfiguration) GoString() string {
return s.String()
}
// Details about the target configuration.
type TargetConfigurationRequest struct {
_ struct{} `type:"structure"`
// The number of instances the Covertible Reserved Instance offering can be
// applied to. This parameter is reserved and cannot be specified in a request
InstanceCount *int64 `type:"integer"`
// The Convertible Reserved Instance offering ID. If this isn't included in
// the request, the response lists your current Convertible Reserved Instance/s
// and their value/s.
OfferingId *string `type:"string" required:"true"`
}
// String returns the string representation
func (s TargetConfigurationRequest) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s TargetConfigurationRequest) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *TargetConfigurationRequest) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "TargetConfigurationRequest"}
if s.OfferingId == nil {
invalidParams.Add(request.NewErrParamRequired("OfferingId"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The total value of the new Convertible Reserved Instances.
type TargetReservationValue struct {
_ struct{} `type:"structure"`
// The total value of the Convertible Reserved Instances that make up the exchange.
// This is the sum of the list value, remaining upfront price, and additional
// upfront cost of the exchange.
ReservationValue *ReservationValue `locationName:"reservationValue" type:"structure"`
// The configuration of the Convertible Reserved Instances that make up the
// exchange.
TargetConfiguration *TargetConfiguration `locationName:"targetConfiguration" type:"structure"`
}
// String returns the string representation
func (s TargetReservationValue) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s TargetReservationValue) GoString() string {
return s.String()
}
// Contains the parameters for TerminateInstances.
type TerminateInstancesInput struct {
_ struct{} `type:"structure"`
@ -31962,6 +32392,9 @@ type TerminateInstancesInput struct {
DryRun *bool `locationName:"dryRun" type:"boolean"`
// One or more instance IDs.
//
// Constraints: Up to 1000 instance IDs. We recommend breaking up this request
// into smaller batches.
InstanceIds []*string `locationName:"InstanceId" locationNameList:"InstanceId" type:"list" required:"true"`
}
@ -33330,6 +33763,8 @@ const (
// @enum InstanceType
InstanceTypeM410xlarge = "m4.10xlarge"
// @enum InstanceType
InstanceTypeM416xlarge = "m4.16xlarge"
// @enum InstanceType
InstanceTypeM2Xlarge = "m2.xlarge"
// @enum InstanceType
InstanceTypeM22xlarge = "m2.2xlarge"
@ -33348,10 +33783,6 @@ const (
// @enum InstanceType
InstanceTypeR38xlarge = "r3.8xlarge"
// @enum InstanceType
InstanceTypeX14xlarge = "x1.4xlarge"
// @enum InstanceType
InstanceTypeX18xlarge = "x1.8xlarge"
// @enum InstanceType
InstanceTypeX116xlarge = "x1.16xlarge"
// @enum InstanceType
InstanceTypeX132xlarge = "x1.32xlarge"
@ -33402,6 +33833,12 @@ const (
// @enum InstanceType
InstanceTypeCg14xlarge = "cg1.4xlarge"
// @enum InstanceType
InstanceTypeP2Xlarge = "p2.xlarge"
// @enum InstanceType
InstanceTypeP28xlarge = "p2.8xlarge"
// @enum InstanceType
InstanceTypeP216xlarge = "p2.16xlarge"
// @enum InstanceType
InstanceTypeD2Xlarge = "d2.xlarge"
// @enum InstanceType
InstanceTypeD22xlarge = "d2.2xlarge"
@ -33493,6 +33930,13 @@ const (
NetworkInterfaceTypeNatGateway = "natGateway"
)
const (
// @enum OfferingClassType
OfferingClassTypeStandard = "standard"
// @enum OfferingClassType
OfferingClassTypeConvertible = "convertible"
)
const (
// @enum OfferingTypeValues
OfferingTypeValuesHeavyUtilization = "Heavy Utilization"
@ -33931,3 +34375,10 @@ const (
// @enum VpnStaticRouteSource
VpnStaticRouteSourceStatic = "Static"
)
const (
// @enum scope
ScopeAvailabilityZone = "Availability Zone"
// @enum scope
ScopeRegion = "Region"
)

View File

@ -54,7 +54,7 @@ func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegio
ServiceName: ServiceName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2016-04-01",
APIVersion: "2016-09-15",
},
handlers,
),

View File

@ -11,6 +11,11 @@ import (
"github.com/aws/aws-sdk-go/private/protocol/restjson"
)
// Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage
// for use with Amazon EC2 instances in the AWS Cloud. With Amazon EFS, storage
// capacity is elastic, growing and shrinking automatically as you add and remove
// files, so your applications have the storage they need, when they need it.
// For more information, see the User Guide (http://docs.aws.amazon.com/efs/latest/ug/api-reference.html).
//The service client's operations are safe to be used concurrently.
// It is not safe to mutate any of the client's properties though.
type EFS struct {

View File

@ -770,38 +770,50 @@ func (c *KMS) GenerateDataKeyRequest(input *GenerateDataKeyInput) (req *request.
return
}
// Generates a data key that you can use in your application to locally encrypt
// data. This call returns a plaintext version of the key in the Plaintext field
// of the response object and an encrypted copy of the key in the CiphertextBlob
// field. The key is encrypted by using the master key specified by the KeyId
// field. To decrypt the encrypted key, pass it to the Decrypt API.
// Returns a data encryption key that you can use in your application to encrypt
// data locally.
//
// We recommend that you use the following pattern to locally encrypt data:
// call the GenerateDataKey API, use the key returned in the Plaintext response
// field to locally encrypt data, and then erase the plaintext data key from
// memory. Store the encrypted data key (contained in the CiphertextBlob field)
// alongside of the locally encrypted data.
// You must specify the customer master key (CMK) under which to generate the
// data key. You must also specify the length of the data key using either the
// KeySpec or NumberOfBytes field. You must specify one field or the other,
// but not both. For common key lengths (128-bit and 256-bit symmetric keys),
// we recommend that you use KeySpec.
//
// You should not call the Encrypt function to re-encrypt your data keys within
// a region. GenerateDataKey always returns the data key encrypted and tied
// to the customer master key that will be used to decrypt it. There is no need
// to decrypt it twice.
// This operation returns a plaintext copy of the data key in the Plaintext
// field of the response, and an encrypted copy of the data key in the CiphertextBlob
// field. The data key is encrypted under the CMK specified in the KeyId field
// of the request.
//
// If you decide to use the optional EncryptionContext parameter, you must
// also store the context in full or at least store enough information along
// with the encrypted data to be able to reconstruct the context when submitting
// the ciphertext to the Decrypt API. It is a good practice to choose a context
// that you can reconstruct on the fly to better secure the ciphertext. For
// more information about how this parameter is used, see Encryption Context
// (http://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html).
// We recommend that you use the following pattern to encrypt data locally
// in your application:
//
// To decrypt data, pass the encrypted data key to the Decrypt API. Decrypt
// uses the associated master key to decrypt the encrypted data key and returns
// it as plaintext. Use the plaintext data key to locally decrypt your data
// and then erase the key from memory. You must specify the encryption context,
// if any, that you specified when you generated the key. The encryption context
// is logged by CloudTrail, and you can use this log to help track the use of
// particular data.
// Use this operation (GenerateDataKey) to retrieve a data encryption key.
//
// Use the plaintext data encryption key (returned in the Plaintext field
// of the response) to encrypt data locally, then erase the plaintext data key
// from memory.
//
// Store the encrypted data key (returned in the CiphertextBlob field of
// the response) alongside the locally encrypted data.
//
// To decrypt data locally:
//
// Use the Decrypt operation to decrypt the encrypted data key into a plaintext
// copy of the data key.
//
// Use the plaintext data key to decrypt data locally, then erase the plaintext
// data key from memory.
//
// To return only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext.
// To return an arbitrary unpredictable byte string, use GenerateRandom.
//
// If you use the optional EncryptionContext field, you must store at least
// enough information to be able to reconstruct the full encryption context
// when you later send the ciphertext to the Decrypt operation. It is a good
// practice to choose an encryption context that you can reconstruct on the
// fly to better secure the ciphertext. For more information, see Encryption
// Context (http://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html)
// in the AWS Key Management Service Developer Guide.
func (c *KMS) GenerateDataKey(input *GenerateDataKeyInput) (*GenerateDataKeyOutput, error) {
req, out := c.GenerateDataKeyRequest(input)
err := req.Send()
@ -849,11 +861,21 @@ func (c *KMS) GenerateDataKeyWithoutPlaintextRequest(input *GenerateDataKeyWitho
return
}
// Returns a data key encrypted by a customer master key without the plaintext
// copy of that key. Otherwise, this API functions exactly like GenerateDataKey.
// You can use this API to, for example, satisfy an audit requirement that an
// encrypted key be made available without exposing the plaintext copy of that
// key.
// Returns a data encryption key encrypted under a customer master key (CMK).
// This operation is identical to GenerateDataKey but returns only the encrypted
// copy of the data key.
//
// This operation is useful in a system that has multiple components with different
// degrees of trust. For example, consider a system that stores encrypted data
// in containers. Each container stores the encrypted data and an encrypted
// copy of the data key. One component of the system, called the control plane,
// creates new containers. When it creates a new container, it uses this operation
// (GenerateDataKeyWithoutPlaintext) to get an encrypted data key and then stores
// it in the container. Later, a different component of the system, called the
// data plane, puts encrypted data into the containers. To do this, it passes
// the encrypted data key to the Decrypt operation, then uses the returned plaintext
// data key to encrypt data, and finally stores the encrypted data in the container.
// In this system, the control plane never sees the plaintext data key.
func (c *KMS) GenerateDataKeyWithoutPlaintext(input *GenerateDataKeyWithoutPlaintextInput) (*GenerateDataKeyWithoutPlaintextOutput, error) {
req, out := c.GenerateDataKeyWithoutPlaintextRequest(input)
err := req.Send()
@ -2062,7 +2084,7 @@ type CreateGrantInput struct {
//
// You can use this value to allow the operations permitted by the grant only
// when a specified encryption context is present. For more information, see
// Encryption Context (http://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html)
// Encryption Context (http://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html)
// in the AWS Key Management Service Developer Guide.
Constraints *GrantConstraints `type:"structure"`
@ -2323,7 +2345,7 @@ type DecryptInput struct {
// The encryption context. If this was specified in the Encrypt function, it
// must be specified here or the decryption operation will fail. For more information,
// see Encryption Context (http://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html).
// see Encryption Context (http://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html).
EncryptionContext map[string]*string `type:"map"`
// A list of grant tokens.
@ -2764,10 +2786,10 @@ func (s EnableKeyRotationOutput) GoString() string {
type EncryptInput struct {
_ struct{} `type:"structure"`
// Name/value pair that specifies the encryption context to be used for authenticated
// Name-value pair that specifies the encryption context to be used for authenticated
// encryption. If used here, the same value must be supplied to the Decrypt
// API or decryption will fail. For more information, see Encryption Context
// (http://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html).
// (http://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html).
EncryptionContext map[string]*string `type:"map"`
// A list of grant tokens.
@ -2853,9 +2875,10 @@ func (s EncryptOutput) GoString() string {
type GenerateDataKeyInput struct {
_ struct{} `type:"structure"`
// Name/value pair that contains additional data to be authenticated during
// the encryption and decryption processes that use the key. This value is logged
// by AWS CloudTrail to provide context around the data encrypted by the key.
// A set of key-value pairs that represents additional authenticated data.
//
// For more information, see Encryption Context (http://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html)
// in the AWS Key Management Service Developer Guide.
EncryptionContext map[string]*string `type:"map"`
// A list of grant tokens.
@ -2864,26 +2887,30 @@ type GenerateDataKeyInput struct {
// in the AWS Key Management Service Developer Guide.
GrantTokens []*string `type:"list"`
// A unique identifier for the customer master key. This value can be a globally
// unique identifier, a fully specified ARN to either an alias or a key, or
// an alias name prefixed by "alias/".
// The identifier of the CMK under which to generate and encrypt the data encryption
// key.
//
// Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
// A valid identifier is the unique key ID or the Amazon Resource Name (ARN)
// of the CMK, or the alias name or ARN of an alias that points to the CMK.
// Examples:
//
// Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
// Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
//
// Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
// CMK ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
//
// Alias Name Example - alias/MyAliasName
// Alias name: alias/ExampleAlias
//
// Alias ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
KeyId *string `min:"1" type:"string" required:"true"`
// Value that identifies the encryption algorithm and key size to generate a
// data key for. Currently this can be AES_128 or AES_256.
// The length of the data encryption key. Use AES_128 to generate a 128-bit
// symmetric key, or AES_256 to generate a 256-bit symmetric key.
KeySpec *string `type:"string" enum:"DataKeySpec"`
// Integer that contains the number of bytes to generate. Common values are
// 128, 256, 512, and 1024. 1024 is the current limit. We recommend that you
// use the KeySpec parameter instead.
// The length of the data encryption key in bytes. For example, use the value
// 64 to generate a 512-bit data key (64 bytes is 512 bits). For common key
// lengths (128-bit and 256-bit symmetric keys), we recommend that you use the
// KeySpec field instead of this one.
NumberOfBytes *int64 `min:"1" type:"integer"`
}
@ -2919,24 +2946,17 @@ func (s *GenerateDataKeyInput) Validate() error {
type GenerateDataKeyOutput struct {
_ struct{} `type:"structure"`
// Ciphertext that contains the encrypted data key. You must store the blob
// and enough information to reconstruct the encryption context so that the
// data encrypted by using the key can later be decrypted. You must provide
// both the ciphertext blob and the encryption context to the Decrypt API to
// recover the plaintext data key and decrypt the object.
//
// If you are using the CLI, the value is Base64 encoded. Otherwise, it is
// not encoded.
// The encrypted data encryption key.
//
// CiphertextBlob is automatically base64 encoded/decoded by the SDK.
CiphertextBlob []byte `min:"1" type:"blob"`
// System generated unique identifier of the key to be used to decrypt the encrypted
// copy of the data key.
// The identifier of the CMK under which the data encryption key was generated
// and encrypted.
KeyId *string `min:"1" type:"string"`
// Plaintext that contains the data key. Use this for encryption and decryption
// and then remove it from memory as soon as possible.
// The data encryption key. Use this data key for local encryption and decryption,
// then remove it from memory as soon as possible.
//
// Plaintext is automatically base64 encoded/decoded by the SDK.
Plaintext []byte `min:"1" type:"blob"`
@ -2955,8 +2975,10 @@ func (s GenerateDataKeyOutput) GoString() string {
type GenerateDataKeyWithoutPlaintextInput struct {
_ struct{} `type:"structure"`
// Name:value pair that contains additional data to be authenticated during
// the encryption and decryption processes.
// A set of key-value pairs that represents additional authenticated data.
//
// For more information, see Encryption Context (http://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html)
// in the AWS Key Management Service Developer Guide.
EncryptionContext map[string]*string `type:"map"`
// A list of grant tokens.
@ -2965,26 +2987,30 @@ type GenerateDataKeyWithoutPlaintextInput struct {
// in the AWS Key Management Service Developer Guide.
GrantTokens []*string `type:"list"`
// A unique identifier for the customer master key. This value can be a globally
// unique identifier, a fully specified ARN to either an alias or a key, or
// an alias name prefixed by "alias/".
// The identifier of the CMK under which to generate and encrypt the data encryption
// key.
//
// Key ARN Example - arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
// A valid identifier is the unique key ID or the Amazon Resource Name (ARN)
// of the CMK, or the alias name or ARN of an alias that points to the CMK.
// Examples:
//
// Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
// Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
//
// Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
// CMK ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
//
// Alias Name Example - alias/MyAliasName
// Alias name: alias/ExampleAlias
//
// Alias ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias
KeyId *string `min:"1" type:"string" required:"true"`
// Value that identifies the encryption algorithm and key size. Currently this
// can be AES_128 or AES_256.
// The length of the data encryption key. Use AES_128 to generate a 128-bit
// symmetric key, or AES_256 to generate a 256-bit symmetric key.
KeySpec *string `type:"string" enum:"DataKeySpec"`
// Integer that contains the number of bytes to generate. Common values are
// 128, 256, 512, 1024 and so on. We recommend that you use the KeySpec parameter
// instead.
// The length of the data encryption key in bytes. For example, use the value
// 64 to generate a 512-bit data key (64 bytes is 512 bits). For common key
// lengths (128-bit and 256-bit symmetric keys), we recommend that you use the
// KeySpec field instead of this one.
NumberOfBytes *int64 `min:"1" type:"integer"`
}
@ -3020,17 +3046,13 @@ func (s *GenerateDataKeyWithoutPlaintextInput) Validate() error {
type GenerateDataKeyWithoutPlaintextOutput struct {
_ struct{} `type:"structure"`
// Ciphertext that contains the wrapped data key. You must store the blob and
// encryption context so that the key can be used in a future decrypt operation.
//
// If you are using the CLI, the value is Base64 encoded. Otherwise, it is
// not encoded.
// The encrypted data encryption key.
//
// CiphertextBlob is automatically base64 encoded/decoded by the SDK.
CiphertextBlob []byte `min:"1" type:"blob"`
// System generated unique identifier of the key to be used to decrypt the encrypted
// copy of the data key.
// The identifier of the CMK under which the data encryption key was generated
// and encrypted.
KeyId *string `min:"1" type:"string"`
}
@ -3047,8 +3069,7 @@ func (s GenerateDataKeyWithoutPlaintextOutput) GoString() string {
type GenerateRandomInput struct {
_ struct{} `type:"structure"`
// Integer that contains the number of bytes to generate. Common values are
// 128, 256, 512, 1024 and so on. The current limit is 1024 bytes.
// The length of the byte string.
NumberOfBytes *int64 `min:"1" type:"integer"`
}
@ -3078,7 +3099,7 @@ func (s *GenerateRandomInput) Validate() error {
type GenerateRandomOutput struct {
_ struct{} `type:"structure"`
// Plaintext that contains the unpredictable byte string.
// The unpredictable byte string.
//
// Plaintext is automatically base64 encoded/decoded by the SDK.
Plaintext []byte `min:"1" type:"blob"`
@ -3310,7 +3331,7 @@ func (s GetParametersForImportOutput) GoString() string {
//
// You can use this structure to allow the operations permitted by the grant
// only when a specified encryption context is present. For more information
// about encryption context, see Encryption Context (http://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html)
// about encryption context, see Encryption Context (http://docs.aws.amazon.com/kms/latest/developerguide/encryption-context.html)
// in the AWS Key Management Service Developer Guide.
type GrantConstraints struct {
_ struct{} `type:"structure"`

View File

@ -4378,7 +4378,7 @@ type CloneStackInput struct {
// A string that contains user-defined, custom JSON. It is used to override
// the corresponding default stack configuration JSON values. The string should
// be in the following format and must escape characters such as '"':
// be in the following format:
//
// "{\"key1\": \"value1\", \"key2\": \"value2\",...}"
//
@ -4806,7 +4806,7 @@ type CreateDeploymentInput struct {
// A string that contains user-defined, custom JSON. It is used to override
// the corresponding default stack configuration JSON values. The string should
// be in the following format and must escape characters such as '"':
// be in the following format:
//
// "{\"key1\": \"value1\", \"key2\": \"value2\",...}"
//
@ -5240,8 +5240,7 @@ type CreateStackInput struct {
// A string that contains user-defined, custom JSON. It can be used to override
// the corresponding default stack configuration attribute values or to pass
// data to recipes. The string should be in the following escape characters
// such as '"':
// data to recipes. The string should be in the following format:
//
// "{\"key1\": \"value1\", \"key2\": \"value2\",...}"
//
@ -5464,7 +5463,7 @@ type CreateUserProfileInput struct {
// page. For more information, see Setting an IAM User's Public SSH Key (http://docs.aws.amazon.com/opsworks/latest/userguide/security-settingsshkey.html).
AllowSelfManagement *bool `type:"boolean"`
// The user's IAM ARN.
// The user's IAM ARN; this can also be a federated user's ARN.
IamUserArn *string `type:"string" required:"true"`
// The user's public SSH key.
@ -5729,7 +5728,7 @@ func (s DeleteStackOutput) GoString() string {
type DeleteUserProfileInput struct {
_ struct{} `type:"structure"`
// The user's IAM ARN.
// The user's IAM ARN. This can also be a federated user's ARN.
IamUserArn *string `type:"string" required:"true"`
}
@ -5791,8 +5790,7 @@ type Deployment struct {
// A string that contains user-defined custom JSON. It can be used to override
// the corresponding default stack configuration attribute values for stack
// or to pass data to recipes. The string should be in the following format
// and must escape characters such as '"':
// or to pass data to recipes. The string should be in the following format:
//
// "{\"key1\": \"value1\", \"key2\": \"value2\",...}"
//
@ -6628,8 +6626,8 @@ func (s DescribeMyUserProfileOutput) GoString() string {
type DescribePermissionsInput struct {
_ struct{} `type:"structure"`
// The user's IAM ARN. For more information about IAM ARNs, see Using Identifiers
// (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html).
// The user's IAM ARN. This can also be a federated user's ARN. For more information
// about IAM ARNs, see Using Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html).
IamUserArn *string `type:"string"`
// The stack ID.
@ -7002,7 +7000,7 @@ func (s DescribeTimeBasedAutoScalingOutput) GoString() string {
type DescribeUserProfilesInput struct {
_ struct{} `type:"structure"`
// An array of IAM user ARNs that identify the users to be described.
// An array of IAM or federated user ARNs that identify the users to be described.
IamUserArns []*string `type:"list"`
}
@ -8568,7 +8566,7 @@ type SetPermissionInput struct {
// The user is allowed to use sudo to elevate privileges.
AllowSudo *bool `type:"boolean"`
// The user's IAM ARN.
// The user's IAM ARN. This can also be a federated user's ARN.
IamUserArn *string `type:"string" required:"true"`
// The user's permission level, which must be set to one of the following strings.
@ -8833,8 +8831,7 @@ type Stack struct {
// A JSON object that contains user-defined attributes to be added to the stack
// configuration and deployment attributes. You can use custom JSON to override
// the corresponding default stack configuration attribute values or to pass
// data to recipes. The string should be in the following format and must escape
// characters such as '"':
// data to recipes. The string should be in the following format:
//
// "{\"key1\": \"value1\", \"key2\": \"value2\",...}"
//
@ -9442,11 +9439,10 @@ type UpdateInstanceInput struct {
// console. For a list of available agent version numbers, call DescribeAgentVersions.
AgentVersion *string `type:"string"`
// A custom AMI ID to be used to create the instance. The AMI must be based
// on one of the supported operating systems. For more information, see Instances
// (http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)
//
// If you specify a custom AMI, you must set Os to Custom.
// The ID of the AMI that was used to create the instance. The value of this
// parameter must be the same AMI ID that the instance is already using. You
// cannot apply a new AMI to an instance by running UpdateInstance. UpdateInstance
// does not work on instances that are using custom AMIs.
AmiId *string `type:"string"`
// The instance architecture. Instance types do not necessarily support both
@ -9489,6 +9485,7 @@ type UpdateInstanceInput struct {
LayerIds []*string `type:"list"`
// The instance's operating system, which must be set to one of the following.
// You cannot update an instance that is using a custom AMI.
//
// A supported Linux operating system: An Amazon Linux version, such as Amazon
// Linux 2016.03, Amazon Linux 2015.09, or Amazon Linux 2015.03.
@ -9505,8 +9502,6 @@ type UpdateInstanceInput struct {
// Windows Server 2012 R2 with SQL Server Standard, or Microsoft Windows Server
// 2012 R2 with SQL Server Web.
//
// A custom AMI: Custom.
//
// For more information on the supported operating systems, see AWS OpsWorks
// Operating Systems (http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html).
//
@ -9804,8 +9799,7 @@ type UpdateStackInput struct {
// A string that contains user-defined, custom JSON. It can be used to override
// the corresponding default stack configuration JSON values or to pass data
// to recipes. The string should be in the following format and escape characters
// such as '"':
// to recipes. The string should be in the following format:
//
// "{\"key1\": \"value1\", \"key2\": \"value2\",...}"
//
@ -9981,7 +9975,7 @@ type UpdateUserProfileInput struct {
// page. For more information, see Managing User Permissions (http://docs.aws.amazon.com/opsworks/latest/userguide/security-settingsshkey.html).
AllowSelfManagement *bool `type:"boolean"`
// The user IAM ARN.
// The user IAM ARN. This can also be a federated user's ARN.
IamUserArn *string `type:"string" required:"true"`
// The user's new SSH public key.

View File

@ -5487,6 +5487,11 @@ type GetObjectInput struct {
Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
// Part number of the object being read. This is a positive integer between
// 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified.
// Useful for downloading just a part of an object.
PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"`
// Downloads the specified range bytes of an object. For more information about
// the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
Range *string `location:"header" locationName:"Range" type:"string"`
@ -5623,6 +5628,9 @@ type GetObjectOutput struct {
// you can create metadata whose values are not legal HTTP headers.
MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"`
// The count of parts this object has.
PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"`
ReplicationStatus *string `location:"header" locationName:"x-amz-replication-status" type:"string" enum:"ReplicationStatus"`
// If present, indicates that the requester was successfully charged for the
@ -5877,6 +5885,12 @@ type HeadObjectInput struct {
Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
// Part number of the object being read. This is a positive integer between
// 1 and 10,000. Effectively performs a 'ranged' HEAD request for the part specified.
// Useful querying about the size of the part and the number of parts in this
// object.
PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"`
// Downloads the specified range bytes of an object. For more information about
// the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
Range *string `location:"header" locationName:"Range" type:"string"`
@ -5989,6 +6003,9 @@ type HeadObjectOutput struct {
// you can create metadata whose values are not legal HTTP headers.
MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"`
// The count of parts this object has.
PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"`
ReplicationStatus *string `location:"header" locationName:"x-amz-replication-status" type:"string" enum:"ReplicationStatus"`
// If present, indicates that the requester was successfully charged for the
@ -6552,6 +6569,11 @@ type ListObjectsInput struct {
// Limits the response to keys that begin with the specified prefix.
Prefix *string `location:"querystring" locationName:"prefix" type:"string"`
// Confirms that the requester knows that she or he will be charged for the
// list objects request. Bucket owners need not specify this parameter in their
// requests.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
}
// String returns the string representation
@ -6650,6 +6672,11 @@ type ListObjectsV2Input struct {
// Limits the response to keys that begin with the specified prefix.
Prefix *string `location:"querystring" locationName:"prefix" type:"string"`
// Confirms that the requester knows that she or he will be charged for the
// list objects request in V2 style. Bucket owners need not specify this parameter
// in their requests.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts
// listing after this specified key. StartAfter can be any key in the bucket
StartAfter *string `location:"querystring" locationName:"start-after" type:"string"`

File diff suppressed because it is too large Load Diff

602
vendor/vendor.json vendored
View File

@ -335,572 +335,572 @@
"revision": "4239b77079c7b5d1243b7b4736304ce8ddb6f0f2"
},
{
"checksumSHA1": "kuw5W2UI5k2VXP9R34go1SBms9k=",
"checksumSHA1": "QX3gcUY0fj5Mj+h3US/JnC7/dDE=",
"path": "github.com/aws/aws-sdk-go",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Cgr42fWlWUO2Fs9ojFF8XU7A9UI=",
"checksumSHA1": "dq1GRxE/Qsvp1pawHFQ3vaFoYX4=",
"path": "github.com/aws/aws-sdk-go/aws",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=",
"path": "github.com/aws/aws-sdk-go/aws/awserr",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "+q4vdl3l1Wom8K1wfIpJ4jlFsbY=",
"path": "github.com/aws/aws-sdk-go/aws/awsutil",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "H/tMKHZU+Qka6RtYiGB50s2uA0s=",
"checksumSHA1": "/232RBWA3KnT7U+wciPS2+wmvR0=",
"path": "github.com/aws/aws-sdk-go/aws/client",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=",
"path": "github.com/aws/aws-sdk-go/aws/client/metadata",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "gNWirlrTfSLbOe421hISBAhTqa4=",
"checksumSHA1": "c1N3Loy3AS9zD+m5CzpPNAED39U=",
"path": "github.com/aws/aws-sdk-go/aws/corehandlers",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "dNZNaOPfBPnzE2CBnfhXXZ9g9jU=",
"path": "github.com/aws/aws-sdk-go/aws/credentials",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "KQiUK/zr3mqnAXD7x/X55/iNme0=",
"path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=",
"path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "4Ipx+5xN0gso+cENC2MHMWmQlR4=",
"path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "nCMd1XKjgV21bEl7J8VZFqTV8PE=",
"checksumSHA1": "DwhFsNluCFEwqzyp3hbJR3q2Wqs=",
"path": "github.com/aws/aws-sdk-go/aws/defaults",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "U0SthWum+t9ACanK7SDJOg3dO6M=",
"checksumSHA1": "8E0fEBUJY/1lJOyVxzTxMGQGInk=",
"path": "github.com/aws/aws-sdk-go/aws/ec2metadata",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "UeUNU97No2/+pICBYrFevJAaShs=",
"checksumSHA1": "5Ac22YMTBmrX/CXaEIXzWljr8UY=",
"path": "github.com/aws/aws-sdk-go/aws/request",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "44uohX3kLsfZHHOqunr+qJnSCdw=",
"checksumSHA1": "BXuya7NrVg2BtHOM4ED5zAwDkg4=",
"path": "github.com/aws/aws-sdk-go/aws/session",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "cWiLRSRPK4/jvKHH7q1tuXnZ+UM=",
"checksumSHA1": "OgyO1NRszPKURsDpob+zxUR157A=",
"path": "github.com/aws/aws-sdk-go/aws/signer/v4",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Bm6UrYb2QCzpYseLwwgw6aetgRc=",
"path": "github.com/aws/aws-sdk-go/private/endpoints",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "wk7EyvDaHwb5qqoOP/4d3cV0708=",
"path": "github.com/aws/aws-sdk-go/private/protocol",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "uNmSKXAF8B9HWEciW+iyUwZ99qQ=",
"path": "github.com/aws/aws-sdk-go/private/protocol/ec2query",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "pNeF0Ey7TfBArH5LBQhKOQXQbLY=",
"path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "H9TymcQkQnXSXSVfjggiiS4bpzM=",
"path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "isoix7lTx4qIq2zI2xFADtti5SI=",
"path": "github.com/aws/aws-sdk-go/private/protocol/query",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "5xzix1R8prUyWxgLnzUQoxTsfik=",
"path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "TW/7U+/8ormL7acf6z2rv2hDD+s=",
"path": "github.com/aws/aws-sdk-go/private/protocol/rest",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "oUOTWZIpPJiGjc9p/hntdBDvS10=",
"path": "github.com/aws/aws-sdk-go/private/protocol/restjson",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Y6Db2GGfGD9LPpcJIPj8vXE8BbQ=",
"path": "github.com/aws/aws-sdk-go/private/protocol/restxml",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "eUEkjyMPAuekKBE4ou+nM9tXEas=",
"path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "F6mth+G7dXN1GI+nktaGo8Lx8aE=",
"path": "github.com/aws/aws-sdk-go/private/signer/v2",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Eo9yODN5U99BK0pMzoqnBm7PCrY=",
"path": "github.com/aws/aws-sdk-go/private/waiter",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "DXwm+kmVCiuvvGCcUTeZD/L31Kk=",
"checksumSHA1": "Yy3DcxSa9t4hg0MJQZEYhH4PQi4=",
"path": "github.com/aws/aws-sdk-go/service/apigateway",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "WEwNL8ueG/6RTZOIDF/qu9EkwXo=",
"path": "github.com/aws/aws-sdk-go/service/applicationautoscaling",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "MXY2nnlU3Qf4+6nTV4+GFxSD5Y4=",
"path": "github.com/aws/aws-sdk-go/service/autoscaling",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "vp/AYdsQnZtoPqtX86VsgmLIx1w=",
"checksumSHA1": "0rkXGU6zlND+NPCn/XgPDTuANQQ=",
"path": "github.com/aws/aws-sdk-go/service/cloudformation",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "IBdkYM4/ts1B7FXcTrUk9KXPpcc=",
"path": "github.com/aws/aws-sdk-go/service/cloudfront",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "eCFTaV9GKqv/UEzwRgFFUaFz098=",
"path": "github.com/aws/aws-sdk-go/service/cloudtrail",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "G9CmCfw00Bjz0TtJsEnxGE6mv/0=",
"path": "github.com/aws/aws-sdk-go/service/cloudwatch",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "mWNJKpt18ASs9/RhnIjILcsGlng=",
"path": "github.com/aws/aws-sdk-go/service/cloudwatchevents",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "sP/qEaDICVBV3rRw2sl759YI0iw=",
"path": "github.com/aws/aws-sdk-go/service/cloudwatchlogs",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "p5a/DcdUvhTx0PCRR+/CRXk9g6c=",
"path": "github.com/aws/aws-sdk-go/service/codecommit",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "f1ylzOsK3qtUcXXWs8vX/02QXig=",
"path": "github.com/aws/aws-sdk-go/service/codedeploy",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "i4hrcsFXLAQXzaxvWh6+BG8XcIU=",
"path": "github.com/aws/aws-sdk-go/service/directoryservice",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "y+pZPK8hcTDwq1zHuRduWE14flw=",
"path": "github.com/aws/aws-sdk-go/service/dynamodb",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "FiQmUvjtJfroyEr3dFUSChrpq08=",
"checksumSHA1": "wo+0n7gevYlsXAb6gJmG3F/+7pg=",
"path": "github.com/aws/aws-sdk-go/service/ec2",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "d5x+dDz7zdrEYAGDM9XpYnSW3FE=",
"path": "github.com/aws/aws-sdk-go/service/ecr",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "CvZ+vaOolbfpAdOQPAuKDn4Mmt4=",
"path": "github.com/aws/aws-sdk-go/service/ecs",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "1vOgFGxLhjNe6BK3RJaV1OqisCs=",
"checksumSHA1": "b8uLvSIG26PqvnppVQboqDTCR2w=",
"path": "github.com/aws/aws-sdk-go/service/efs",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "rjSScNzMTvEHv7Lk5KcxDpNU5EE=",
"path": "github.com/aws/aws-sdk-go/service/elasticache",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "RZF1yHtJhAqaMwbeAM/6BdLLavk=",
"path": "github.com/aws/aws-sdk-go/service/elasticbeanstalk",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "VAlXnW+WxxWRcCv4xsCoox2kgE0=",
"path": "github.com/aws/aws-sdk-go/service/elasticsearchservice",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "qHuJHGUAuuizD9834MP3gVupfdo=",
"path": "github.com/aws/aws-sdk-go/service/elastictranscoder",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "YiNiSOILzSOaKB4JwdM4SDw7daM=",
"path": "github.com/aws/aws-sdk-go/service/elb",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "DdsbJgngbL7Ce18ipxreRsf3lYo=",
"path": "github.com/aws/aws-sdk-go/service/elbv2",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "yyFg3ZnBFHe29W7BovH1oC92u4o=",
"path": "github.com/aws/aws-sdk-go/service/emr",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "TtIAgZ+evpkKB5bBYCB69k0wZoU=",
"path": "github.com/aws/aws-sdk-go/service/firehose",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "B1EtgBrv//gYqA+Sp6a/SK2zLO4=",
"path": "github.com/aws/aws-sdk-go/service/glacier",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "dH2W7lR17dgn4a4OYiEzjpQH8hI=",
"path": "github.com/aws/aws-sdk-go/service/iam",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "2n5/m0ClE4OyQRNdjfLwg+nSY3o=",
"path": "github.com/aws/aws-sdk-go/service/kinesis",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "l6GbB/V5dPb3l+Nrb70wzyrYAgc=",
"checksumSHA1": "cE02R3i+yj4+xmiO+/eUbq4mEys=",
"path": "github.com/aws/aws-sdk-go/service/kms",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Qpi347xz5FIQISq73dZSdIf47AU=",
"path": "github.com/aws/aws-sdk-go/service/lambda",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "8F0/GisnAvgIBhNv36A8bitepQU=",
"checksumSHA1": "IRD5ermNbvUDRXF+0mI9103AmIM=",
"path": "github.com/aws/aws-sdk-go/service/opsworks",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Jxorquk7bgn6lPMr3/nUikDHWK8=",
"path": "github.com/aws/aws-sdk-go/service/rds",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "hHgtebbSai1+33Y8nKZyV7IL5nY=",
"path": "github.com/aws/aws-sdk-go/service/redshift",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Dw4DpBaYfuu+aQTlywfv1TCzHCg=",
"path": "github.com/aws/aws-sdk-go/service/route53",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "imxJucuPrgaPRMPtAgsu+Y7soB4=",
"checksumSHA1": "W7044H9bJrM5zO3DGcfA+qOYThk=",
"path": "github.com/aws/aws-sdk-go/service/s3",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "o+bjuT6ycywUf+vXY9hYK4Z3okE=",
"path": "github.com/aws/aws-sdk-go/service/ses",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "DW5kDRWLA2yAgYh9vsI+0uVqq/Q=",
"path": "github.com/aws/aws-sdk-go/service/simpledb",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "QHuF2nb/DTz20LRh0rslFDzIm54=",
"path": "github.com/aws/aws-sdk-go/service/sns",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "oLAlquYlQzgYFS9ochS/iQ9+uXY=",
"path": "github.com/aws/aws-sdk-go/service/sqs",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "Zw0GXDOn45IvrmAcCOlSHJMiljU=",
"path": "github.com/aws/aws-sdk-go/service/ssm",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "nH/itbdeFHpl4ysegdtgww9bFSA=",
"path": "github.com/aws/aws-sdk-go/service/sts",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "V10Yi1cEBLqu6kjZl5vyItHDd6k=",
"checksumSHA1": "Dx3EiCxwZzQk5ScuXa1aQYrB9kM=",
"path": "github.com/aws/aws-sdk-go/service/waf",
"revision": "7a81396c57134038e554b2ac86be4653018b20f9",
"revisionTime": "2016-09-20T22:58:07Z",
"version": "v1.4.11",
"versionExact": "v1.4.11"
"revision": "429750244b4773992ab16ab536447e584795b156",
"revisionTime": "2016-10-06T23:32:44Z",
"version": "v1.4.15",
"versionExact": "v1.4.15"
},
{
"checksumSHA1": "nqw2Qn5xUklssHTubS5HDvEL9L4=",