aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/aws/aws-sdk-go/service
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/aws/aws-sdk-go/service')
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/api.go590
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go3
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go3
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/sse.go64
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go4
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go34
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/sts/api.go1126
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/sts/doc.go76
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/sts/errors.go2
-rw-r--r--vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go96
10 files changed, 1362 insertions, 636 deletions
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
index 83a42d2..139c27d 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
@@ -545,6 +545,10 @@ func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyt
545// Deletes an analytics configuration for the bucket (specified by the analytics 545// Deletes an analytics configuration for the bucket (specified by the analytics
546// configuration ID). 546// configuration ID).
547// 547//
548// To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration
549// action. The bucket owner has this permission by default. The bucket owner
550// can grant this permission to others.
551//
548// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 552// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
549// with awserr.Error's Code and Message methods to get detailed information about 553// with awserr.Error's Code and Message methods to get detailed information about
550// the error. 554// the error.
@@ -1071,7 +1075,7 @@ func (c *S3) DeleteBucketReplicationRequest(input *DeleteBucketReplicationInput)
1071// DeleteBucketReplication API operation for Amazon Simple Storage Service. 1075// DeleteBucketReplication API operation for Amazon Simple Storage Service.
1072// 1076//
1073// Deletes the replication configuration from the bucket. For information about 1077// Deletes the replication configuration from the bucket. For information about
1074// replication configuration, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) 1078// replication configuration, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
1075// in the Amazon S3 Developer Guide. 1079// in the Amazon S3 Developer Guide.
1076// 1080//
1077// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1081// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -3335,8 +3339,8 @@ func (c *S3) GetObjectLockConfigurationRequest(input *GetObjectLockConfiguration
3335 3339
3336// GetObjectLockConfiguration API operation for Amazon Simple Storage Service. 3340// GetObjectLockConfiguration API operation for Amazon Simple Storage Service.
3337// 3341//
3338// Gets the Object Lock configuration for a bucket. The rule specified in the 3342// Gets the object lock configuration for a bucket. The rule specified in the
3339// Object Lock configuration will be applied by default to every new object 3343// object lock configuration will be applied by default to every new object
3340// placed in the specified bucket. 3344// placed in the specified bucket.
3341// 3345//
3342// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3346// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -4210,7 +4214,7 @@ func (c *S3) ListMultipartUploadsWithContext(ctx aws.Context, input *ListMultipa
4210// // Example iterating over at most 3 pages of a ListMultipartUploads operation. 4214// // Example iterating over at most 3 pages of a ListMultipartUploads operation.
4211// pageNum := 0 4215// pageNum := 0
4212// err := client.ListMultipartUploadsPages(params, 4216// err := client.ListMultipartUploadsPages(params,
4213// func(page *ListMultipartUploadsOutput, lastPage bool) bool { 4217// func(page *s3.ListMultipartUploadsOutput, lastPage bool) bool {
4214// pageNum++ 4218// pageNum++
4215// fmt.Println(page) 4219// fmt.Println(page)
4216// return pageNum <= 3 4220// return pageNum <= 3
@@ -4340,7 +4344,7 @@ func (c *S3) ListObjectVersionsWithContext(ctx aws.Context, input *ListObjectVer
4340// // Example iterating over at most 3 pages of a ListObjectVersions operation. 4344// // Example iterating over at most 3 pages of a ListObjectVersions operation.
4341// pageNum := 0 4345// pageNum := 0
4342// err := client.ListObjectVersionsPages(params, 4346// err := client.ListObjectVersionsPages(params,
4343// func(page *ListObjectVersionsOutput, lastPage bool) bool { 4347// func(page *s3.ListObjectVersionsOutput, lastPage bool) bool {
4344// pageNum++ 4348// pageNum++
4345// fmt.Println(page) 4349// fmt.Println(page)
4346// return pageNum <= 3 4350// return pageNum <= 3
@@ -4477,7 +4481,7 @@ func (c *S3) ListObjectsWithContext(ctx aws.Context, input *ListObjectsInput, op
4477// // Example iterating over at most 3 pages of a ListObjects operation. 4481// // Example iterating over at most 3 pages of a ListObjects operation.
4478// pageNum := 0 4482// pageNum := 0
4479// err := client.ListObjectsPages(params, 4483// err := client.ListObjectsPages(params,
4480// func(page *ListObjectsOutput, lastPage bool) bool { 4484// func(page *s3.ListObjectsOutput, lastPage bool) bool {
4481// pageNum++ 4485// pageNum++
4482// fmt.Println(page) 4486// fmt.Println(page)
4483// return pageNum <= 3 4487// return pageNum <= 3
@@ -4615,7 +4619,7 @@ func (c *S3) ListObjectsV2WithContext(ctx aws.Context, input *ListObjectsV2Input
4615// // Example iterating over at most 3 pages of a ListObjectsV2 operation. 4619// // Example iterating over at most 3 pages of a ListObjectsV2 operation.
4616// pageNum := 0 4620// pageNum := 0
4617// err := client.ListObjectsV2Pages(params, 4621// err := client.ListObjectsV2Pages(params,
4618// func(page *ListObjectsV2Output, lastPage bool) bool { 4622// func(page *s3.ListObjectsV2Output, lastPage bool) bool {
4619// pageNum++ 4623// pageNum++
4620// fmt.Println(page) 4624// fmt.Println(page)
4621// return pageNum <= 3 4625// return pageNum <= 3
@@ -4745,7 +4749,7 @@ func (c *S3) ListPartsWithContext(ctx aws.Context, input *ListPartsInput, opts .
4745// // Example iterating over at most 3 pages of a ListParts operation. 4749// // Example iterating over at most 3 pages of a ListParts operation.
4746// pageNum := 0 4750// pageNum := 0
4747// err := client.ListPartsPages(params, 4751// err := client.ListPartsPages(params,
4748// func(page *ListPartsOutput, lastPage bool) bool { 4752// func(page *s3.ListPartsOutput, lastPage bool) bool {
4749// pageNum++ 4753// pageNum++
4750// fmt.Println(page) 4754// fmt.Println(page)
4751// return pageNum <= 3 4755// return pageNum <= 3
@@ -5754,8 +5758,7 @@ func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.R
5754 5758
5755// PutBucketPolicy API operation for Amazon Simple Storage Service. 5759// PutBucketPolicy API operation for Amazon Simple Storage Service.
5756// 5760//
5757// Replaces a policy on a bucket. If the bucket already has a policy, the one 5761// Applies an Amazon S3 bucket policy to an Amazon S3 bucket.
5758// in this request completely replaces it.
5759// 5762//
5760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5763// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5761// with awserr.Error's Code and Message methods to get detailed information about 5764// with awserr.Error's Code and Message methods to get detailed information about
@@ -5831,7 +5834,7 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req
5831// PutBucketReplication API operation for Amazon Simple Storage Service. 5834// PutBucketReplication API operation for Amazon Simple Storage Service.
5832// 5835//
5833// Creates a replication configuration or replaces an existing one. For more 5836// Creates a replication configuration or replaces an existing one. For more
5834// information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) 5837// information, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
5835// in the Amazon S3 Developer Guide. 5838// in the Amazon S3 Developer Guide.
5836// 5839//
5837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5840// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -6439,8 +6442,8 @@ func (c *S3) PutObjectLockConfigurationRequest(input *PutObjectLockConfiguration
6439 6442
6440// PutObjectLockConfiguration API operation for Amazon Simple Storage Service. 6443// PutObjectLockConfiguration API operation for Amazon Simple Storage Service.
6441// 6444//
6442// Places an Object Lock configuration on the specified bucket. The rule specified 6445// Places an object lock configuration on the specified bucket. The rule specified
6443// in the Object Lock configuration will be applied by default to every new 6446// in the object lock configuration will be applied by default to every new
6444// object placed in the specified bucket. 6447// object placed in the specified bucket.
6445// 6448//
6446// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 6449// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -7010,13 +7013,16 @@ func (c *S3) UploadPartCopyWithContext(ctx aws.Context, input *UploadPartCopyInp
7010 return out, req.Send() 7013 return out, req.Send()
7011} 7014}
7012 7015
7013// Specifies the days since the initiation of an Incomplete Multipart Upload 7016// Specifies the days since the initiation of an incomplete multipart upload
7014// that Lifecycle will wait before permanently removing all parts of the upload. 7017// that Amazon S3 will wait before permanently removing all parts of the upload.
7018// For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
7019// Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
7020// in the Amazon Simple Storage Service Developer Guide.
7015type AbortIncompleteMultipartUpload struct { 7021type AbortIncompleteMultipartUpload struct {
7016 _ struct{} `type:"structure"` 7022 _ struct{} `type:"structure"`
7017 7023
7018 // Indicates the number of days that must pass since initiation for Lifecycle 7024 // Specifies the number of days after which Amazon S3 aborts an incomplete multipart
7019 // to abort an Incomplete Multipart Upload. 7025 // upload.
7020 DaysAfterInitiation *int64 `type:"integer"` 7026 DaysAfterInitiation *int64 `type:"integer"`
7021} 7027}
7022 7028
@@ -7039,9 +7045,13 @@ func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortI
7039type AbortMultipartUploadInput struct { 7045type AbortMultipartUploadInput struct {
7040 _ struct{} `type:"structure"` 7046 _ struct{} `type:"structure"`
7041 7047
7048 // Name of the bucket to which the multipart upload was initiated.
7049 //
7042 // Bucket is a required field 7050 // Bucket is a required field
7043 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 7051 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
7044 7052
7053 // Key of the object for which the multipart upload was initiated.
7054 //
7045 // Key is a required field 7055 // Key is a required field
7046 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 7056 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
7047 7057
@@ -7051,6 +7061,8 @@ type AbortMultipartUploadInput struct {
7051 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html 7061 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
7052 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 7062 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
7053 7063
7064 // Upload ID that identifies the multipart upload.
7065 //
7054 // UploadId is a required field 7066 // UploadId is a required field
7055 UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"` 7067 UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"`
7056} 7068}
@@ -7145,10 +7157,13 @@ func (s *AbortMultipartUploadOutput) SetRequestCharged(v string) *AbortMultipart
7145 return s 7157 return s
7146} 7158}
7147 7159
7160// Configures the transfer acceleration state for an Amazon S3 bucket. For more
7161// information, see Amazon S3 Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html)
7162// in the Amazon Simple Storage Service Developer Guide.
7148type AccelerateConfiguration struct { 7163type AccelerateConfiguration struct {
7149 _ struct{} `type:"structure"` 7164 _ struct{} `type:"structure"`
7150 7165
7151 // The accelerate configuration of the bucket. 7166 // Specifies the transfer acceleration status of the bucket.
7152 Status *string `type:"string" enum:"BucketAccelerateStatus"` 7167 Status *string `type:"string" enum:"BucketAccelerateStatus"`
7153} 7168}
7154 7169
@@ -7168,12 +7183,14 @@ func (s *AccelerateConfiguration) SetStatus(v string) *AccelerateConfiguration {
7168 return s 7183 return s
7169} 7184}
7170 7185
7186// Contains the elements that set the ACL permissions for an object per grantee.
7171type AccessControlPolicy struct { 7187type AccessControlPolicy struct {
7172 _ struct{} `type:"structure"` 7188 _ struct{} `type:"structure"`
7173 7189
7174 // A list of grants. 7190 // A list of grants.
7175 Grants []*Grant `locationName:"AccessControlList" locationNameList:"Grant" type:"list"` 7191 Grants []*Grant `locationName:"AccessControlList" locationNameList:"Grant" type:"list"`
7176 7192
7193 // Container for the bucket owner's display name and ID.
7177 Owner *Owner `type:"structure"` 7194 Owner *Owner `type:"structure"`
7178} 7195}
7179 7196
@@ -7223,7 +7240,9 @@ func (s *AccessControlPolicy) SetOwner(v *Owner) *AccessControlPolicy {
7223type AccessControlTranslation struct { 7240type AccessControlTranslation struct {
7224 _ struct{} `type:"structure"` 7241 _ struct{} `type:"structure"`
7225 7242
7226 // The override value for the owner of the replica object. 7243 // Specifies the replica ownership. For default and valid values, see PUT bucket
7244 // replication (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html)
7245 // in the Amazon Simple Storage Service API Reference.
7227 // 7246 //
7228 // Owner is a required field 7247 // Owner is a required field
7229 Owner *string `type:"string" required:"true" enum:"OwnerOverride"` 7248 Owner *string `type:"string" required:"true" enum:"OwnerOverride"`
@@ -7258,10 +7277,14 @@ func (s *AccessControlTranslation) SetOwner(v string) *AccessControlTranslation
7258 return s 7277 return s
7259} 7278}
7260 7279
7280// A conjunction (logical AND) of predicates, which is used in evaluating a
7281// metrics filter. The operator must have at least two predicates in any combination,
7282// and an object must match all of the predicates for the filter to apply.
7261type AnalyticsAndOperator struct { 7283type AnalyticsAndOperator struct {
7262 _ struct{} `type:"structure"` 7284 _ struct{} `type:"structure"`
7263 7285
7264 // The prefix to use when evaluating an AND predicate. 7286 // The prefix to use when evaluating an AND predicate: The prefix that an object
7287 // must have to be included in the metrics results.
7265 Prefix *string `type:"string"` 7288 Prefix *string `type:"string"`
7266 7289
7267 // The list of tags to use when evaluating an AND predicate. 7290 // The list of tags to use when evaluating an AND predicate.
@@ -7310,6 +7333,11 @@ func (s *AnalyticsAndOperator) SetTags(v []*Tag) *AnalyticsAndOperator {
7310 return s 7333 return s
7311} 7334}
7312 7335
7336// Specifies the configuration and any analyses for the analytics filter of
7337// an Amazon S3 bucket.
7338//
7339// For more information, see GET Bucket analytics (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETAnalyticsConfig.html)
7340// in the Amazon Simple Storage Service API Reference.
7313type AnalyticsConfiguration struct { 7341type AnalyticsConfiguration struct {
7314 _ struct{} `type:"structure"` 7342 _ struct{} `type:"structure"`
7315 7343
@@ -7318,13 +7346,13 @@ type AnalyticsConfiguration struct {
7318 // If no filter is provided, all objects will be considered in any analysis. 7346 // If no filter is provided, all objects will be considered in any analysis.
7319 Filter *AnalyticsFilter `type:"structure"` 7347 Filter *AnalyticsFilter `type:"structure"`
7320 7348
7321 // The identifier used to represent an analytics configuration. 7349 // The ID that identifies the analytics configuration.
7322 // 7350 //
7323 // Id is a required field 7351 // Id is a required field
7324 Id *string `type:"string" required:"true"` 7352 Id *string `type:"string" required:"true"`
7325 7353
7326 // If present, it indicates that data related to access patterns will be collected 7354 // Contains data related to access patterns to be collected and made available
7327 // and made available to analyze the tradeoffs between different storage classes. 7355 // to analyze the tradeoffs between different storage classes.
7328 // 7356 //
7329 // StorageClassAnalysis is a required field 7357 // StorageClassAnalysis is a required field
7330 StorageClassAnalysis *StorageClassAnalysis `type:"structure" required:"true"` 7358 StorageClassAnalysis *StorageClassAnalysis `type:"structure" required:"true"`
@@ -7384,6 +7412,7 @@ func (s *AnalyticsConfiguration) SetStorageClassAnalysis(v *StorageClassAnalysis
7384 return s 7412 return s
7385} 7413}
7386 7414
7415// Where to publish the analytics results.
7387type AnalyticsExportDestination struct { 7416type AnalyticsExportDestination struct {
7388 _ struct{} `type:"structure"` 7417 _ struct{} `type:"structure"`
7389 7418
@@ -7492,7 +7521,7 @@ func (s *AnalyticsFilter) SetTag(v *Tag) *AnalyticsFilter {
7492type AnalyticsS3BucketDestination struct { 7521type AnalyticsS3BucketDestination struct {
7493 _ struct{} `type:"structure"` 7522 _ struct{} `type:"structure"`
7494 7523
7495 // The Amazon resource name (ARN) of the bucket to which data is exported. 7524 // The Amazon Resource Name (ARN) of the bucket to which data is exported.
7496 // 7525 //
7497 // Bucket is a required field 7526 // Bucket is a required field
7498 Bucket *string `type:"string" required:"true"` 7527 Bucket *string `type:"string" required:"true"`
@@ -7501,13 +7530,12 @@ type AnalyticsS3BucketDestination struct {
7501 // the owner will not be validated prior to exporting data. 7530 // the owner will not be validated prior to exporting data.
7502 BucketAccountId *string `type:"string"` 7531 BucketAccountId *string `type:"string"`
7503 7532
7504 // The file format used when exporting data to Amazon S3. 7533 // Specifies the file format used when exporting data to Amazon S3.
7505 // 7534 //
7506 // Format is a required field 7535 // Format is a required field
7507 Format *string `type:"string" required:"true" enum:"AnalyticsS3ExportFileFormat"` 7536 Format *string `type:"string" required:"true" enum:"AnalyticsS3ExportFileFormat"`
7508 7537
7509 // The prefix to use when exporting data. The exported data begins with this 7538 // The prefix to use when exporting data. The prefix is prepended to all results.
7510 // prefix.
7511 Prefix *string `type:"string"` 7539 Prefix *string `type:"string"`
7512} 7540}
7513 7541
@@ -7600,9 +7628,14 @@ func (s *Bucket) SetName(v string) *Bucket {
7600 return s 7628 return s
7601} 7629}
7602 7630
7631// Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
7632// For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
7633// in the Amazon Simple Storage Service Developer Guide.
7603type BucketLifecycleConfiguration struct { 7634type BucketLifecycleConfiguration struct {
7604 _ struct{} `type:"structure"` 7635 _ struct{} `type:"structure"`
7605 7636
7637 // A lifecycle rule for individual objects in an Amazon S3 bucket.
7638 //
7606 // Rules is a required field 7639 // Rules is a required field
7607 Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` 7640 Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true" required:"true"`
7608} 7641}
@@ -7649,9 +7682,10 @@ func (s *BucketLifecycleConfiguration) SetRules(v []*LifecycleRule) *BucketLifec
7649type BucketLoggingStatus struct { 7682type BucketLoggingStatus struct {
7650 _ struct{} `type:"structure"` 7683 _ struct{} `type:"structure"`
7651 7684
7652 // Container for logging information. Presence of this element indicates that 7685 // Describes where logs are stored and the prefix that Amazon S3 assigns to
7653 // logging is enabled. Parameters TargetBucket and TargetPrefix are required 7686 // all log object keys for a bucket. For more information, see PUT Bucket logging
7654 // in this case. 7687 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
7688 // in the Amazon Simple Storage Service API Reference.
7655 LoggingEnabled *LoggingEnabled `type:"structure"` 7689 LoggingEnabled *LoggingEnabled `type:"structure"`
7656} 7690}
7657 7691
@@ -7686,9 +7720,15 @@ func (s *BucketLoggingStatus) SetLoggingEnabled(v *LoggingEnabled) *BucketLoggin
7686 return s 7720 return s
7687} 7721}
7688 7722
7723// Describes the cross-origin access configuration for objects in an Amazon
7724// S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing
7725// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon
7726// Simple Storage Service Developer Guide.
7689type CORSConfiguration struct { 7727type CORSConfiguration struct {
7690 _ struct{} `type:"structure"` 7728 _ struct{} `type:"structure"`
7691 7729
7730 // A set of allowed origins and methods.
7731 //
7692 // CORSRules is a required field 7732 // CORSRules is a required field
7693 CORSRules []*CORSRule `locationName:"CORSRule" type:"list" flattened:"true" required:"true"` 7733 CORSRules []*CORSRule `locationName:"CORSRule" type:"list" flattened:"true" required:"true"`
7694} 7734}
@@ -7732,14 +7772,18 @@ func (s *CORSConfiguration) SetCORSRules(v []*CORSRule) *CORSConfiguration {
7732 return s 7772 return s
7733} 7773}
7734 7774
7775// Specifies a cross-origin access rule for an Amazon S3 bucket.
7735type CORSRule struct { 7776type CORSRule struct {
7736 _ struct{} `type:"structure"` 7777 _ struct{} `type:"structure"`
7737 7778
7738 // Specifies which headers are allowed in a pre-flight OPTIONS request. 7779 // Headers that are specified in the Access-Control-Request-Headers header.
7780 // These headers are allowed in a preflight OPTIONS request. In response to
7781 // any preflight OPTIONS request, Amazon S3 returns any requested headers that
7782 // are allowed.
7739 AllowedHeaders []*string `locationName:"AllowedHeader" type:"list" flattened:"true"` 7783 AllowedHeaders []*string `locationName:"AllowedHeader" type:"list" flattened:"true"`
7740 7784
7741 // Identifies HTTP methods that the domain/origin specified in the rule is allowed 7785 // An HTTP method that you allow the origin to execute. Valid values are GET,
7742 // to execute. 7786 // PUT, HEAD, POST, and DELETE.
7743 // 7787 //
7744 // AllowedMethods is a required field 7788 // AllowedMethods is a required field
7745 AllowedMethods []*string `locationName:"AllowedMethod" type:"list" flattened:"true" required:"true"` 7789 AllowedMethods []*string `locationName:"AllowedMethod" type:"list" flattened:"true" required:"true"`
@@ -8290,6 +8334,7 @@ func (s *CompletedPart) SetPartNumber(v int64) *CompletedPart {
8290 return s 8334 return s
8291} 8335}
8292 8336
8337// Specifies a condition that must be met for a redirect to apply.
8293type Condition struct { 8338type Condition struct {
8294 _ struct{} `type:"structure"` 8339 _ struct{} `type:"structure"`
8295 8340
@@ -8409,7 +8454,7 @@ type CopyObjectInput struct {
8409 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt 8454 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt
8410 // the source object. The encryption key provided in this header must be one 8455 // the source object. The encryption key provided in this header must be one
8411 // that was used when the source object was created. 8456 // that was used when the source object was created.
8412 CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` 8457 CopySourceSSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
8413 8458
8414 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 8459 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
8415 // Amazon S3 uses this header for a message integrity check to ensure the encryption 8460 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -8444,10 +8489,10 @@ type CopyObjectInput struct {
8444 // Specifies whether you want to apply a Legal Hold to the copied object. 8489 // Specifies whether you want to apply a Legal Hold to the copied object.
8445 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 8490 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
8446 8491
8447 // The Object Lock mode that you want to apply to the copied object. 8492 // The object lock mode that you want to apply to the copied object.
8448 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 8493 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
8449 8494
8450 // The date and time when you want the copied object's Object Lock to expire. 8495 // The date and time when you want the copied object's object lock to expire.
8451 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 8496 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
8452 8497
8453 // Confirms that the requester knows that she or he will be charged for the 8498 // Confirms that the requester knows that she or he will be charged for the
@@ -8464,13 +8509,18 @@ type CopyObjectInput struct {
8464 // does not store the encryption key. The key must be appropriate for use with 8509 // does not store the encryption key. The key must be appropriate for use with
8465 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 8510 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
8466 // header. 8511 // header.
8467 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 8512 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
8468 8513
8469 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 8514 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
8470 // Amazon S3 uses this header for a message integrity check to ensure the encryption 8515 // Amazon S3 uses this header for a message integrity check to ensure the encryption
8471 // key was transmitted without error. 8516 // key was transmitted without error.
8472 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 8517 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
8473 8518
8519 // Specifies the AWS KMS Encryption Context to use for object encryption. The
8520 // value of this header is a base64-encoded UTF-8 string holding JSON with the
8521 // encryption context key-value pairs.
8522 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
8523
8474 // Specifies the AWS KMS key ID to use for object encryption. All GET and PUT 8524 // Specifies the AWS KMS key ID to use for object encryption. All GET and PUT
8475 // requests for an object protected by AWS KMS will fail if not made via SSL 8525 // requests for an object protected by AWS KMS will fail if not made via SSL
8476 // or using SigV4. Documentation on configuring any of the officially supported 8526 // or using SigV4. Documentation on configuring any of the officially supported
@@ -8735,6 +8785,12 @@ func (s *CopyObjectInput) SetSSECustomerKeyMD5(v string) *CopyObjectInput {
8735 return s 8785 return s
8736} 8786}
8737 8787
8788// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
8789func (s *CopyObjectInput) SetSSEKMSEncryptionContext(v string) *CopyObjectInput {
8790 s.SSEKMSEncryptionContext = &v
8791 return s
8792}
8793
8738// SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 8794// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
8739func (s *CopyObjectInput) SetSSEKMSKeyId(v string) *CopyObjectInput { 8795func (s *CopyObjectInput) SetSSEKMSKeyId(v string) *CopyObjectInput {
8740 s.SSEKMSKeyId = &v 8796 s.SSEKMSKeyId = &v
@@ -8795,6 +8851,11 @@ type CopyObjectOutput struct {
8795 // verification of the customer-provided encryption key. 8851 // verification of the customer-provided encryption key.
8796 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 8852 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
8797 8853
8854 // If present, specifies the AWS KMS Encryption Context to use for object encryption.
8855 // The value of this header is a base64-encoded UTF-8 string holding JSON with
8856 // the encryption context key-value pairs.
8857 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
8858
8798 // If present, specifies the ID of the AWS Key Management Service (KMS) master 8859 // If present, specifies the ID of the AWS Key Management Service (KMS) master
8799 // encryption key that was used for the object. 8860 // encryption key that was used for the object.
8800 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 8861 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
@@ -8853,6 +8914,12 @@ func (s *CopyObjectOutput) SetSSECustomerKeyMD5(v string) *CopyObjectOutput {
8853 return s 8914 return s
8854} 8915}
8855 8916
8917// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
8918func (s *CopyObjectOutput) SetSSEKMSEncryptionContext(v string) *CopyObjectOutput {
8919 s.SSEKMSEncryptionContext = &v
8920 return s
8921}
8922
8856// SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 8923// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
8857func (s *CopyObjectOutput) SetSSEKMSKeyId(v string) *CopyObjectOutput { 8924func (s *CopyObjectOutput) SetSSEKMSKeyId(v string) *CopyObjectOutput {
8858 s.SSEKMSKeyId = &v 8925 s.SSEKMSKeyId = &v
@@ -8984,7 +9051,8 @@ type CreateBucketInput struct {
8984 // Allows grantee to write the ACL for the applicable bucket. 9051 // Allows grantee to write the ACL for the applicable bucket.
8985 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` 9052 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
8986 9053
8987 // Specifies whether you want S3 Object Lock to be enabled for the new bucket. 9054 // Specifies whether you want Amazon S3 object lock to be enabled for the new
9055 // bucket.
8988 ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"` 9056 ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
8989} 9057}
8990 9058
@@ -9147,10 +9215,10 @@ type CreateMultipartUploadInput struct {
9147 // Specifies whether you want to apply a Legal Hold to the uploaded object. 9215 // Specifies whether you want to apply a Legal Hold to the uploaded object.
9148 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 9216 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
9149 9217
9150 // Specifies the Object Lock mode that you want to apply to the uploaded object. 9218 // Specifies the object lock mode that you want to apply to the uploaded object.
9151 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 9219 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
9152 9220
9153 // Specifies the date and time when you want the Object Lock to expire. 9221 // Specifies the date and time when you want the object lock to expire.
9154 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 9222 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
9155 9223
9156 // Confirms that the requester knows that she or he will be charged for the 9224 // Confirms that the requester knows that she or he will be charged for the
@@ -9167,13 +9235,18 @@ type CreateMultipartUploadInput struct {
9167 // does not store the encryption key. The key must be appropriate for use with 9235 // does not store the encryption key. The key must be appropriate for use with
9168 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 9236 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
9169 // header. 9237 // header.
9170 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 9238 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
9171 9239
9172 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 9240 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
9173 // Amazon S3 uses this header for a message integrity check to ensure the encryption 9241 // Amazon S3 uses this header for a message integrity check to ensure the encryption
9174 // key was transmitted without error. 9242 // key was transmitted without error.
9175 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 9243 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
9176 9244
9245 // Specifies the AWS KMS Encryption Context to use for object encryption. The
9246 // value of this header is a base64-encoded UTF-8 string holding JSON with the
9247 // encryption context key-value pairs.
9248 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
9249
9177 // Specifies the AWS KMS key ID to use for object encryption. All GET and PUT 9250 // Specifies the AWS KMS key ID to use for object encryption. All GET and PUT
9178 // requests for an object protected by AWS KMS will fail if not made via SSL 9251 // requests for an object protected by AWS KMS will fail if not made via SSL
9179 // or using SigV4. Documentation on configuring any of the officially supported 9252 // or using SigV4. Documentation on configuring any of the officially supported
@@ -9368,6 +9441,12 @@ func (s *CreateMultipartUploadInput) SetSSECustomerKeyMD5(v string) *CreateMulti
9368 return s 9441 return s
9369} 9442}
9370 9443
9444// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
9445func (s *CreateMultipartUploadInput) SetSSEKMSEncryptionContext(v string) *CreateMultipartUploadInput {
9446 s.SSEKMSEncryptionContext = &v
9447 return s
9448}
9449
9371// SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 9450// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
9372func (s *CreateMultipartUploadInput) SetSSEKMSKeyId(v string) *CreateMultipartUploadInput { 9451func (s *CreateMultipartUploadInput) SetSSEKMSKeyId(v string) *CreateMultipartUploadInput {
9373 s.SSEKMSKeyId = &v 9452 s.SSEKMSKeyId = &v
@@ -9428,6 +9507,11 @@ type CreateMultipartUploadOutput struct {
9428 // verification of the customer-provided encryption key. 9507 // verification of the customer-provided encryption key.
9429 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 9508 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
9430 9509
9510 // If present, specifies the AWS KMS Encryption Context to use for object encryption.
9511 // The value of this header is a base64-encoded UTF-8 string holding JSON with
9512 // the encryption context key-value pairs.
9513 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
9514
9431 // If present, specifies the ID of the AWS Key Management Service (KMS) master 9515 // If present, specifies the ID of the AWS Key Management Service (KMS) master
9432 // encryption key that was used for the object. 9516 // encryption key that was used for the object.
9433 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 9517 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
@@ -9499,6 +9583,12 @@ func (s *CreateMultipartUploadOutput) SetSSECustomerKeyMD5(v string) *CreateMult
9499 return s 9583 return s
9500} 9584}
9501 9585
9586// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
9587func (s *CreateMultipartUploadOutput) SetSSEKMSEncryptionContext(v string) *CreateMultipartUploadOutput {
9588 s.SSEKMSEncryptionContext = &v
9589 return s
9590}
9591
9502// SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 9592// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
9503func (s *CreateMultipartUploadOutput) SetSSEKMSKeyId(v string) *CreateMultipartUploadOutput { 9593func (s *CreateMultipartUploadOutput) SetSSEKMSKeyId(v string) *CreateMultipartUploadOutput {
9504 s.SSEKMSKeyId = &v 9594 s.SSEKMSKeyId = &v
@@ -9517,7 +9607,7 @@ func (s *CreateMultipartUploadOutput) SetUploadId(v string) *CreateMultipartUplo
9517 return s 9607 return s
9518} 9608}
9519 9609
9520// The container element for specifying the default Object Lock retention settings 9610// The container element for specifying the default object lock retention settings
9521// for new objects placed in the specified bucket. 9611// for new objects placed in the specified bucket.
9522type DefaultRetention struct { 9612type DefaultRetention struct {
9523 _ struct{} `type:"structure"` 9613 _ struct{} `type:"structure"`
@@ -9525,7 +9615,7 @@ type DefaultRetention struct {
9525 // The number of days that you want to specify for the default retention period. 9615 // The number of days that you want to specify for the default retention period.
9526 Days *int64 `type:"integer"` 9616 Days *int64 `type:"integer"`
9527 9617
9528 // The default Object Lock retention mode you want to apply to new objects placed 9618 // The default object lock retention mode you want to apply to new objects placed
9529 // in the specified bucket. 9619 // in the specified bucket.
9530 Mode *string `type:"string" enum:"ObjectLockRetentionMode"` 9620 Mode *string `type:"string" enum:"ObjectLockRetentionMode"`
9531 9621
@@ -9625,7 +9715,7 @@ type DeleteBucketAnalyticsConfigurationInput struct {
9625 // Bucket is a required field 9715 // Bucket is a required field
9626 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 9716 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
9627 9717
9628 // The identifier used to represent an analytics configuration. 9718 // The ID that identifies the analytics configuration.
9629 // 9719 //
9630 // Id is a required field 9720 // Id is a required field
9631 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 9721 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"`
@@ -10425,7 +10515,7 @@ type DeleteObjectInput struct {
10425 // Bucket is a required field 10515 // Bucket is a required field
10426 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 10516 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
10427 10517
10428 // Indicates whether S3 Object Lock should bypass Governance-mode restrictions 10518 // Indicates whether Amazon S3 object lock should bypass governance-mode restrictions
10429 // to process this operation. 10519 // to process this operation.
10430 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` 10520 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
10431 10521
@@ -10665,7 +10755,7 @@ type DeleteObjectsInput struct {
10665 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 10755 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
10666 10756
10667 // Specifies whether you want to delete this object even if it has a Governance-type 10757 // Specifies whether you want to delete this object even if it has a Governance-type
10668 // Object Lock in place. You must have sufficient permissions to perform this 10758 // object lock in place. You must have sufficient permissions to perform this
10669 // operation. 10759 // operation.
10670 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` 10760 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
10671 10761
@@ -10902,33 +10992,33 @@ func (s *DeletedObject) SetVersionId(v string) *DeletedObject {
10902 return s 10992 return s
10903} 10993}
10904 10994
10905// A container for information about the replication destination. 10995// Specifies information about where to publish analysis or configuration results
10996// for an Amazon S3 bucket.
10906type Destination struct { 10997type Destination struct {
10907 _ struct{} `type:"structure"` 10998 _ struct{} `type:"structure"`
10908 10999
10909 // A container for information about access control for replicas. 11000 // Specify this only in a cross-account scenario (where source and destination
10910 // 11001 // bucket owners are not the same), and you want to change replica ownership
10911 // Use this element only in a cross-account scenario where source and destination 11002 // to the AWS account that owns the destination bucket. If this is not specified
10912 // bucket owners are not the same to change replica ownership to the AWS account 11003 // in the replication configuration, the replicas are owned by same AWS account
10913 // that owns the destination bucket. If you don't add this element to the replication 11004 // that owns the source object.
10914 // configuration, the replicas are owned by same AWS account that owns the source
10915 // object.
10916 AccessControlTranslation *AccessControlTranslation `type:"structure"` 11005 AccessControlTranslation *AccessControlTranslation `type:"structure"`
10917 11006
10918 // The account ID of the destination bucket. Currently, Amazon S3 verifies this 11007 // Destination bucket owner account ID. In a cross-account scenario, if you
10919 // value only if Access Control Translation is enabled. 11008 // direct Amazon S3 to change replica ownership to the AWS account that owns
10920 // 11009 // the destination bucket by specifying the AccessControlTranslation property,
10921 // In a cross-account scenario, if you change replica ownership to the AWS account 11010 // this is the account ID of the destination bucket owner. For more information,
10922 // that owns the destination bucket by adding the AccessControlTranslation element, 11011 // see Cross-Region Replication Additional Configuration: Change Replica Owner
10923 // this is the account ID of the owner of the destination bucket. 11012 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in
11013 // the Amazon Simple Storage Service Developer Guide.
10924 Account *string `type:"string"` 11014 Account *string `type:"string"`
10925 11015
10926 // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to 11016 // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to
10927 // store replicas of the object identified by the rule. 11017 // store replicas of the object identified by the rule.
10928 // 11018 //
10929 // If there are multiple rules in your replication configuration, all rules 11019 // A replication configuration can replicate objects to only one destination
10930 // must specify the same bucket as the destination. A replication configuration 11020 // bucket. If there are multiple rules in your replication configuration, all
10931 // can replicate objects to only one destination bucket. 11021 // rules must specify the same destination bucket.
10932 // 11022 //
10933 // Bucket is a required field 11023 // Bucket is a required field
10934 Bucket *string `type:"string" required:"true"` 11024 Bucket *string `type:"string" required:"true"`
@@ -10937,8 +11027,13 @@ type Destination struct {
10937 // is specified, you must specify this element. 11027 // is specified, you must specify this element.
10938 EncryptionConfiguration *EncryptionConfiguration `type:"structure"` 11028 EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
10939 11029
10940 // The class of storage used to store the object. By default Amazon S3 uses 11030 // The storage class to use when replicating objects, such as standard or reduced
10941 // storage class of the source object when creating a replica. 11031 // redundancy. By default, Amazon S3 uses the storage class of the source object
11032 // to create the object replica.
11033 //
11034 // For valid values, see the StorageClass element of the PUT Bucket replication
11035 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html)
11036 // action in the Amazon Simple Storage Service API Reference.
10942 StorageClass *string `type:"string" enum:"StorageClass"` 11037 StorageClass *string `type:"string" enum:"StorageClass"`
10943} 11038}
10944 11039
@@ -11068,13 +11163,13 @@ func (s *Encryption) SetKMSKeyId(v string) *Encryption {
11068 return s 11163 return s
11069} 11164}
11070 11165
11071// A container for information about the encryption-based configuration for 11166// Specifies encryption-related information for an Amazon S3 bucket that is
11072// replicas. 11167// a destination for replicated objects.
11073type EncryptionConfiguration struct { 11168type EncryptionConfiguration struct {
11074 _ struct{} `type:"structure"` 11169 _ struct{} `type:"structure"`
11075 11170
11076 // The ID of the AWS KMS key for the AWS Region where the destination bucket 11171 // Specifies the AWS KMS Key ID (Key ARN or Alias ARN) for the destination bucket.
11077 // resides. Amazon S3 uses this key to encrypt the replica object. 11172 // Amazon S3 uses this key to encrypt replica objects.
11078 ReplicaKmsKeyID *string `type:"string"` 11173 ReplicaKmsKeyID *string `type:"string"`
11079} 11174}
11080 11175
@@ -11207,18 +11302,19 @@ func (s *ErrorDocument) SetKey(v string) *ErrorDocument {
11207 return s 11302 return s
11208} 11303}
11209 11304
11210// A container for a key value pair that defines the criteria for the filter 11305// Specifies the Amazon S3 object key name to filter on and whether to filter
11211// rule. 11306// on the suffix or prefix of the key name.
11212type FilterRule struct { 11307type FilterRule struct {
11213 _ struct{} `type:"structure"` 11308 _ struct{} `type:"structure"`
11214 11309
11215 // The object key name prefix or suffix identifying one or more objects to which 11310 // The object key name prefix or suffix identifying one or more objects to which
11216 // the filtering rule applies. The maximum prefix length is 1,024 characters. 11311 // the filtering rule applies. The maximum length is 1,024 characters. Overlapping
11217 // Overlapping prefixes and suffixes are not supported. For more information, 11312 // prefixes and suffixes are not supported. For more information, see Configuring
11218 // see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 11313 // Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
11219 // in the Amazon Simple Storage Service Developer Guide. 11314 // in the Amazon Simple Storage Service Developer Guide.
11220 Name *string `type:"string" enum:"FilterRuleName"` 11315 Name *string `type:"string" enum:"FilterRuleName"`
11221 11316
11317 // The value that the filter searches for in object key names.
11222 Value *string `type:"string"` 11318 Value *string `type:"string"`
11223} 11319}
11224 11320
@@ -11400,7 +11496,7 @@ type GetBucketAnalyticsConfigurationInput struct {
11400 // Bucket is a required field 11496 // Bucket is a required field
11401 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 11497 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
11402 11498
11403 // The identifier used to represent an analytics configuration. 11499 // The ID that identifies the analytics configuration.
11404 // 11500 //
11405 // Id is a required field 11501 // Id is a required field
11406 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 11502 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"`
@@ -11597,8 +11693,7 @@ func (s *GetBucketEncryptionInput) getBucket() (v string) {
11597type GetBucketEncryptionOutput struct { 11693type GetBucketEncryptionOutput struct {
11598 _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"` 11694 _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"`
11599 11695
11600 // Container for server-side encryption configuration rules. Currently S3 supports 11696 // Specifies the default server-side-encryption configuration.
11601 // one rule only.
11602 ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"` 11697 ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"`
11603} 11698}
11604 11699
@@ -11956,9 +12051,10 @@ func (s *GetBucketLoggingInput) getBucket() (v string) {
11956type GetBucketLoggingOutput struct { 12051type GetBucketLoggingOutput struct {
11957 _ struct{} `type:"structure"` 12052 _ struct{} `type:"structure"`
11958 12053
11959 // Container for logging information. Presence of this element indicates that 12054 // Describes where logs are stored and the prefix that Amazon S3 assigns to
11960 // logging is enabled. Parameters TargetBucket and TargetPrefix are required 12055 // all log object keys for a bucket. For more information, see PUT Bucket logging
11961 // in this case. 12056 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
12057 // in the Amazon Simple Storage Service API Reference.
11962 LoggingEnabled *LoggingEnabled `type:"structure"` 12058 LoggingEnabled *LoggingEnabled `type:"structure"`
11963} 12059}
11964 12060
@@ -12592,6 +12688,8 @@ type GetBucketWebsiteOutput struct {
12592 12688
12593 IndexDocument *IndexDocument `type:"structure"` 12689 IndexDocument *IndexDocument `type:"structure"`
12594 12690
12691 // Specifies the redirect behavior of all requests to a website endpoint of
12692 // an Amazon S3 bucket.
12595 RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"` 12693 RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"`
12596 12694
12597 RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"` 12695 RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"`
@@ -12820,7 +12918,7 @@ type GetObjectInput struct {
12820 // does not store the encryption key. The key must be appropriate for use with 12918 // does not store the encryption key. The key must be appropriate for use with
12821 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 12919 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
12822 // header. 12920 // header.
12823 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 12921 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
12824 12922
12825 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 12923 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
12826 // Amazon S3 uses this header for a message integrity check to ensure the encryption 12924 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -13103,7 +13201,7 @@ func (s *GetObjectLegalHoldOutput) SetLegalHold(v *ObjectLockLegalHold) *GetObje
13103type GetObjectLockConfigurationInput struct { 13201type GetObjectLockConfigurationInput struct {
13104 _ struct{} `type:"structure"` 13202 _ struct{} `type:"structure"`
13105 13203
13106 // The bucket whose Object Lock configuration you want to retrieve. 13204 // The bucket whose object lock configuration you want to retrieve.
13107 // 13205 //
13108 // Bucket is a required field 13206 // Bucket is a required field
13109 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 13207 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
@@ -13151,7 +13249,7 @@ func (s *GetObjectLockConfigurationInput) getBucket() (v string) {
13151type GetObjectLockConfigurationOutput struct { 13249type GetObjectLockConfigurationOutput struct {
13152 _ struct{} `type:"structure" payload:"ObjectLockConfiguration"` 13250 _ struct{} `type:"structure" payload:"ObjectLockConfiguration"`
13153 13251
13154 // The specified bucket's Object Lock configuration. 13252 // The specified bucket's object lock configuration.
13155 ObjectLockConfiguration *ObjectLockConfiguration `type:"structure"` 13253 ObjectLockConfiguration *ObjectLockConfiguration `type:"structure"`
13156} 13254}
13157 13255
@@ -13235,10 +13333,10 @@ type GetObjectOutput struct {
13235 // returned if you have permission to view an object's legal hold status. 13333 // returned if you have permission to view an object's legal hold status.
13236 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 13334 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
13237 13335
13238 // The Object Lock mode currently in place for this object. 13336 // The object lock mode currently in place for this object.
13239 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 13337 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
13240 13338
13241 // The date and time when this object's Object Lock will expire. 13339 // The date and time when this object's object lock will expire.
13242 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 13340 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
13243 13341
13244 // The count of parts this object has. 13342 // The count of parts this object has.
@@ -14136,7 +14234,7 @@ type HeadObjectInput struct {
14136 // does not store the encryption key. The key must be appropriate for use with 14234 // does not store the encryption key. The key must be appropriate for use with
14137 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 14235 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
14138 // header. 14236 // header.
14139 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 14237 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
14140 14238
14141 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 14239 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
14142 // Amazon S3 uses this header for a message integrity check to ensure the encryption 14240 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -14328,10 +14426,10 @@ type HeadObjectOutput struct {
14328 // The Legal Hold status for the specified object. 14426 // The Legal Hold status for the specified object.
14329 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 14427 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
14330 14428
14331 // The Object Lock mode currently in place for this object. 14429 // The object lock mode currently in place for this object.
14332 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 14430 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
14333 14431
14334 // The date and time when this object's Object Lock will expire. 14432 // The date and time when this object's object lock expires.
14335 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 14433 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
14336 14434
14337 // The count of parts this object has. 14435 // The count of parts this object has.
@@ -14680,6 +14778,9 @@ func (s *InputSerialization) SetParquet(v *ParquetInput) *InputSerialization {
14680 return s 14778 return s
14681} 14779}
14682 14780
14781// Specifies the inventory configuration for an Amazon S3 bucket. For more information,
14782// see GET Bucket inventory (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html)
14783// in the Amazon Simple Storage Service API Reference.
14683type InventoryConfiguration struct { 14784type InventoryConfiguration struct {
14684 _ struct{} `type:"structure"` 14785 _ struct{} `type:"structure"`
14685 14786
@@ -14697,12 +14798,16 @@ type InventoryConfiguration struct {
14697 // Id is a required field 14798 // Id is a required field
14698 Id *string `type:"string" required:"true"` 14799 Id *string `type:"string" required:"true"`
14699 14800
14700 // Specifies which object version(s) to included in the inventory results. 14801 // Object versions to include in the inventory list. If set to All, the list
14802 // includes all the object versions, which adds the version-related fields VersionId,
14803 // IsLatest, and DeleteMarker to the list. If set to Current, the list does
14804 // not contain these version-related fields.
14701 // 14805 //
14702 // IncludedObjectVersions is a required field 14806 // IncludedObjectVersions is a required field
14703 IncludedObjectVersions *string `type:"string" required:"true" enum:"InventoryIncludedObjectVersions"` 14807 IncludedObjectVersions *string `type:"string" required:"true" enum:"InventoryIncludedObjectVersions"`
14704 14808
14705 // Specifies whether the inventory is enabled or disabled. 14809 // Specifies whether the inventory is enabled or disabled. If set to True, an
14810 // inventory list is generated. If set to False, no inventory list is generated.
14706 // 14811 //
14707 // IsEnabled is a required field 14812 // IsEnabled is a required field
14708 IsEnabled *bool `type:"boolean" required:"true"` 14813 IsEnabled *bool `type:"boolean" required:"true"`
@@ -15145,11 +15250,15 @@ func (s *KeyFilter) SetFilterRules(v []*FilterRule) *KeyFilter {
15145type LambdaFunctionConfiguration struct { 15250type LambdaFunctionConfiguration struct {
15146 _ struct{} `type:"structure"` 15251 _ struct{} `type:"structure"`
15147 15252
15253 // The Amazon S3 bucket event for which to invoke the AWS Lambda function. For
15254 // more information, see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
15255 // in the Amazon Simple Storage Service Developer Guide.
15256 //
15148 // Events is a required field 15257 // Events is a required field
15149 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 15258 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
15150 15259
15151 // A container for object key name filtering rules. For information about key 15260 // Specifies object key name filtering rules. For information about key name
15152 // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 15261 // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
15153 // in the Amazon Simple Storage Service Developer Guide. 15262 // in the Amazon Simple Storage Service Developer Guide.
15154 Filter *NotificationConfigurationFilter `type:"structure"` 15263 Filter *NotificationConfigurationFilter `type:"structure"`
15155 15264
@@ -15157,8 +15266,8 @@ type LambdaFunctionConfiguration struct {
15157 // If you don't provide one, Amazon S3 will assign an ID. 15266 // If you don't provide one, Amazon S3 will assign an ID.
15158 Id *string `type:"string"` 15267 Id *string `type:"string"`
15159 15268
15160 // The Amazon Resource Name (ARN) of the Lambda cloud function that Amazon S3 15269 // The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3
15161 // can invoke when it detects events of the specified type. 15270 // invokes when the specified event type occurs.
15162 // 15271 //
15163 // LambdaFunctionArn is a required field 15272 // LambdaFunctionArn is a required field
15164 LambdaFunctionArn *string `locationName:"CloudFunction" type:"string" required:"true"` 15273 LambdaFunctionArn *string `locationName:"CloudFunction" type:"string" required:"true"`
@@ -15309,8 +15418,11 @@ func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExp
15309type LifecycleRule struct { 15418type LifecycleRule struct {
15310 _ struct{} `type:"structure"` 15419 _ struct{} `type:"structure"`
15311 15420
15312 // Specifies the days since the initiation of an Incomplete Multipart Upload 15421 // Specifies the days since the initiation of an incomplete multipart upload
15313 // that Lifecycle will wait before permanently removing all parts of the upload. 15422 // that Amazon S3 will wait before permanently removing all parts of the upload.
15423 // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
15424 // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
15425 // in the Amazon Simple Storage Service Developer Guide.
15314 AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` 15426 AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
15315 15427
15316 Expiration *LifecycleExpiration `type:"structure"` 15428 Expiration *LifecycleExpiration `type:"structure"`
@@ -17267,9 +17379,10 @@ func (s *Location) SetUserMetadata(v []*MetadataEntry) *Location {
17267 return s 17379 return s
17268} 17380}
17269 17381
17270// Container for logging information. Presence of this element indicates that 17382// Describes where logs are stored and the prefix that Amazon S3 assigns to
17271// logging is enabled. Parameters TargetBucket and TargetPrefix are required 17383// all log object keys for a bucket. For more information, see PUT Bucket logging
17272// in this case. 17384// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
17385// in the Amazon Simple Storage Service API Reference.
17273type LoggingEnabled struct { 17386type LoggingEnabled struct {
17274 _ struct{} `type:"structure"` 17387 _ struct{} `type:"structure"`
17275 17388
@@ -17285,8 +17398,9 @@ type LoggingEnabled struct {
17285 17398
17286 TargetGrants []*TargetGrant `locationNameList:"Grant" type:"list"` 17399 TargetGrants []*TargetGrant `locationNameList:"Grant" type:"list"`
17287 17400
17288 // This element lets you specify a prefix for the keys that the log files will 17401 // A prefix for all log object keys. If you store log files from multiple Amazon
17289 // be stored under. 17402 // S3 buckets in a single bucket, you can use a prefix to distinguish which
17403 // log files came from which bucket.
17290 // 17404 //
17291 // TargetPrefix is a required field 17405 // TargetPrefix is a required field
17292 TargetPrefix *string `type:"string" required:"true"` 17406 TargetPrefix *string `type:"string" required:"true"`
@@ -17429,6 +17543,13 @@ func (s *MetricsAndOperator) SetTags(v []*Tag) *MetricsAndOperator {
17429 return s 17543 return s
17430} 17544}
17431 17545
17546// Specifies a metrics configuration for the CloudWatch request metrics (specified
17547// by the metrics configuration ID) from an Amazon S3 bucket. If you're updating
17548// an existing metrics configuration, note that this is a full replacement of
17549// the existing metrics configuration. If you don't include the elements you
17550// want to keep, they are erased. For more information, see PUT Bucket metrics
17551// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
17552// in the Amazon Simple Storage Service API Reference.
17432type MetricsConfiguration struct { 17553type MetricsConfiguration struct {
17433 _ struct{} `type:"structure"` 17554 _ struct{} `type:"structure"`
17434 17555
@@ -17624,7 +17745,7 @@ type NoncurrentVersionExpiration struct {
17624 // Specifies the number of days an object is noncurrent before Amazon S3 can 17745 // Specifies the number of days an object is noncurrent before Amazon S3 can
17625 // perform the associated action. For information about the noncurrent days 17746 // perform the associated action. For information about the noncurrent days
17626 // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent 17747 // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
17627 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) 17748 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
17628 // in the Amazon Simple Storage Service Developer Guide. 17749 // in the Amazon Simple Storage Service Developer Guide.
17629 NoncurrentDays *int64 `type:"integer"` 17750 NoncurrentDays *int64 `type:"integer"`
17630} 17751}
@@ -17646,11 +17767,11 @@ func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVers
17646} 17767}
17647 17768
17648// Container for the transition rule that describes when noncurrent objects 17769// Container for the transition rule that describes when noncurrent objects
17649// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER or 17770// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER,
17650// DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning 17771// or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
17651// is suspended), you can set this action to request that Amazon S3 transition 17772// is suspended), you can set this action to request that Amazon S3 transition
17652// noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, 17773// noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,
17653// GLACIER or DEEP_ARCHIVE storage class at a specific period in the object's 17774// GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's
17654// lifetime. 17775// lifetime.
17655type NoncurrentVersionTransition struct { 17776type NoncurrentVersionTransition struct {
17656 _ struct{} `type:"structure"` 17777 _ struct{} `type:"structure"`
@@ -17693,10 +17814,16 @@ func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersi
17693type NotificationConfiguration struct { 17814type NotificationConfiguration struct {
17694 _ struct{} `type:"structure"` 17815 _ struct{} `type:"structure"`
17695 17816
17817 // Describes the AWS Lambda functions to invoke and the events for which to
17818 // invoke them.
17696 LambdaFunctionConfigurations []*LambdaFunctionConfiguration `locationName:"CloudFunctionConfiguration" type:"list" flattened:"true"` 17819 LambdaFunctionConfigurations []*LambdaFunctionConfiguration `locationName:"CloudFunctionConfiguration" type:"list" flattened:"true"`
17697 17820
17821 // The Amazon Simple Queue Service queues to publish messages to and the events
17822 // for which to publish messages.
17698 QueueConfigurations []*QueueConfiguration `locationName:"QueueConfiguration" type:"list" flattened:"true"` 17823 QueueConfigurations []*QueueConfiguration `locationName:"QueueConfiguration" type:"list" flattened:"true"`
17699 17824
17825 // The topic to which notifications are sent and the events for which notifications
17826 // are generated.
17700 TopicConfigurations []*TopicConfiguration `locationName:"TopicConfiguration" type:"list" flattened:"true"` 17827 TopicConfigurations []*TopicConfiguration `locationName:"TopicConfiguration" type:"list" flattened:"true"`
17701} 17828}
17702 17829
@@ -17806,8 +17933,8 @@ func (s *NotificationConfigurationDeprecated) SetTopicConfiguration(v *TopicConf
17806 return s 17933 return s
17807} 17934}
17808 17935
17809// A container for object key name filtering rules. For information about key 17936// Specifies object key name filtering rules. For information about key name
17810// name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 17937// filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
17811// in the Amazon Simple Storage Service Developer Guide. 17938// in the Amazon Simple Storage Service Developer Guide.
17812type NotificationConfigurationFilter struct { 17939type NotificationConfigurationFilter struct {
17813 _ struct{} `type:"structure"` 17940 _ struct{} `type:"structure"`
@@ -17945,14 +18072,14 @@ func (s *ObjectIdentifier) SetVersionId(v string) *ObjectIdentifier {
17945 return s 18072 return s
17946} 18073}
17947 18074
17948// The container element for Object Lock configuration parameters. 18075// The container element for object lock configuration parameters.
17949type ObjectLockConfiguration struct { 18076type ObjectLockConfiguration struct {
17950 _ struct{} `type:"structure"` 18077 _ struct{} `type:"structure"`
17951 18078
17952 // Indicates whether this bucket has an Object Lock configuration enabled. 18079 // Indicates whether this bucket has an object lock configuration enabled.
17953 ObjectLockEnabled *string `type:"string" enum:"ObjectLockEnabled"` 18080 ObjectLockEnabled *string `type:"string" enum:"ObjectLockEnabled"`
17954 18081
17955 // The Object Lock rule in place for the specified object. 18082 // The object lock rule in place for the specified object.
17956 Rule *ObjectLockRule `type:"structure"` 18083 Rule *ObjectLockRule `type:"structure"`
17957} 18084}
17958 18085
@@ -18009,7 +18136,7 @@ type ObjectLockRetention struct {
18009 // Indicates the Retention mode for the specified object. 18136 // Indicates the Retention mode for the specified object.
18010 Mode *string `type:"string" enum:"ObjectLockRetentionMode"` 18137 Mode *string `type:"string" enum:"ObjectLockRetentionMode"`
18011 18138
18012 // The date on which this Object Lock Retention will expire. 18139 // The date on which this object lock retention expires.
18013 RetainUntilDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` 18140 RetainUntilDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
18014} 18141}
18015 18142
@@ -18035,7 +18162,7 @@ func (s *ObjectLockRetention) SetRetainUntilDate(v time.Time) *ObjectLockRetenti
18035 return s 18162 return s
18036} 18163}
18037 18164
18038// The container element for an Object Lock rule. 18165// The container element for an object lock rule.
18039type ObjectLockRule struct { 18166type ObjectLockRule struct {
18040 _ struct{} `type:"structure"` 18167 _ struct{} `type:"structure"`
18041 18168
@@ -18418,6 +18545,7 @@ func (s *ProgressEvent) UnmarshalEvent(
18418 return nil 18545 return nil
18419} 18546}
18420 18547
18548// Specifies the Block Public Access configuration for an Amazon S3 bucket.
18421type PublicAccessBlockConfiguration struct { 18549type PublicAccessBlockConfiguration struct {
18422 _ struct{} `type:"structure"` 18550 _ struct{} `type:"structure"`
18423 18551
@@ -18575,6 +18703,7 @@ type PutBucketAclInput struct {
18575 // The canned ACL to apply to the bucket. 18703 // The canned ACL to apply to the bucket.
18576 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"` 18704 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"`
18577 18705
18706 // Contains the elements that set the ACL permissions for an object per grantee.
18578 AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 18707 AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
18579 18708
18580 // Bucket is a required field 18709 // Bucket is a required field
@@ -18710,7 +18839,7 @@ type PutBucketAnalyticsConfigurationInput struct {
18710 // Bucket is a required field 18839 // Bucket is a required field
18711 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18840 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
18712 18841
18713 // The identifier used to represent an analytics configuration. 18842 // The ID that identifies the analytics configuration.
18714 // 18843 //
18715 // Id is a required field 18844 // Id is a required field
18716 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 18845 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"`
@@ -18798,6 +18927,11 @@ type PutBucketCorsInput struct {
18798 // Bucket is a required field 18927 // Bucket is a required field
18799 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18928 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
18800 18929
18930 // Describes the cross-origin access configuration for objects in an Amazon
18931 // S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing
18932 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon
18933 // Simple Storage Service Developer Guide.
18934 //
18801 // CORSConfiguration is a required field 18935 // CORSConfiguration is a required field
18802 CORSConfiguration *CORSConfiguration `locationName:"CORSConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 18936 CORSConfiguration *CORSConfiguration `locationName:"CORSConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
18803} 18937}
@@ -18872,14 +19006,16 @@ func (s PutBucketCorsOutput) GoString() string {
18872type PutBucketEncryptionInput struct { 19006type PutBucketEncryptionInput struct {
18873 _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"` 19007 _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"`
18874 19008
18875 // The name of the bucket for which the server-side encryption configuration 19009 // Specifies default encryption for a bucket using server-side encryption with
18876 // is set. 19010 // Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS). For information
19011 // about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket
19012 // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)
19013 // in the Amazon Simple Storage Service Developer Guide.
18877 // 19014 //
18878 // Bucket is a required field 19015 // Bucket is a required field
18879 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19016 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
18880 19017
18881 // Container for server-side encryption configuration rules. Currently S3 supports 19018 // Specifies the default server-side-encryption configuration.
18882 // one rule only.
18883 // 19019 //
18884 // ServerSideEncryptionConfiguration is a required field 19020 // ServerSideEncryptionConfiguration is a required field
18885 ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"ServerSideEncryptionConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 19021 ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"ServerSideEncryptionConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
@@ -19053,6 +19189,9 @@ type PutBucketLifecycleConfigurationInput struct {
19053 // Bucket is a required field 19189 // Bucket is a required field
19054 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19190 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
19055 19191
19192 // Specifies the lifecycle configuration for objects in an Amazon S3 bucket.
19193 // For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)
19194 // in the Amazon Simple Storage Service Developer Guide.
19056 LifecycleConfiguration *BucketLifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 19195 LifecycleConfiguration *BucketLifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
19057} 19196}
19058 19197
@@ -19612,6 +19751,9 @@ type PutBucketReplicationInput struct {
19612 // 19751 //
19613 // ReplicationConfiguration is a required field 19752 // ReplicationConfiguration is a required field
19614 ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 19753 ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
19754
19755 // A token that allows Amazon S3 object lock to be enabled for an existing bucket.
19756 Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"`
19615} 19757}
19616 19758
19617// String returns the string representation 19759// String returns the string representation
@@ -19667,6 +19809,12 @@ func (s *PutBucketReplicationInput) SetReplicationConfiguration(v *ReplicationCo
19667 return s 19809 return s
19668} 19810}
19669 19811
19812// SetToken sets the Token field's value.
19813func (s *PutBucketReplicationInput) SetToken(v string) *PutBucketReplicationInput {
19814 s.Token = &v
19815 return s
19816}
19817
19670type PutBucketReplicationOutput struct { 19818type PutBucketReplicationOutput struct {
19671 _ struct{} `type:"structure"` 19819 _ struct{} `type:"structure"`
19672} 19820}
@@ -19845,6 +19993,10 @@ type PutBucketVersioningInput struct {
19845 // and the value that is displayed on your authentication device. 19993 // and the value that is displayed on your authentication device.
19846 MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` 19994 MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"`
19847 19995
19996 // Describes the versioning state of an Amazon S3 bucket. For more information,
19997 // see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html)
19998 // in the Amazon Simple Storage Service API Reference.
19999 //
19848 // VersioningConfiguration is a required field 20000 // VersioningConfiguration is a required field
19849 VersioningConfiguration *VersioningConfiguration `locationName:"VersioningConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 20001 VersioningConfiguration *VersioningConfiguration `locationName:"VersioningConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
19850} 20002}
@@ -19923,6 +20075,8 @@ type PutBucketWebsiteInput struct {
19923 // Bucket is a required field 20075 // Bucket is a required field
19924 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 20076 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
19925 20077
20078 // Specifies website configuration parameters for an Amazon S3 bucket.
20079 //
19926 // WebsiteConfiguration is a required field 20080 // WebsiteConfiguration is a required field
19927 WebsiteConfiguration *WebsiteConfiguration `locationName:"WebsiteConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 20081 WebsiteConfiguration *WebsiteConfiguration `locationName:"WebsiteConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
19928} 20082}
@@ -20000,6 +20154,7 @@ type PutObjectAclInput struct {
20000 // The canned ACL to apply to the object. 20154 // The canned ACL to apply to the object.
20001 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` 20155 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"`
20002 20156
20157 // Contains the elements that set the ACL permissions for an object per grantee.
20003 AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 20158 AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
20004 20159
20005 // Bucket is a required field 20160 // Bucket is a required field
@@ -20201,7 +20356,8 @@ type PutObjectInput struct {
20201 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` 20356 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"`
20202 20357
20203 // The base64-encoded 128-bit MD5 digest of the part data. This parameter is 20358 // The base64-encoded 128-bit MD5 digest of the part data. This parameter is
20204 // auto-populated when using the command from the CLI 20359 // auto-populated when using the command from the CLI. This parameted is required
20360 // if object lock parameters are specified.
20205 ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` 20361 ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"`
20206 20362
20207 // A standard MIME type describing the format of the object data. 20363 // A standard MIME type describing the format of the object data.
@@ -20233,10 +20389,10 @@ type PutObjectInput struct {
20233 // The Legal Hold status that you want to apply to the specified object. 20389 // The Legal Hold status that you want to apply to the specified object.
20234 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 20390 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
20235 20391
20236 // The Object Lock mode that you want to apply to this object. 20392 // The object lock mode that you want to apply to this object.
20237 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 20393 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
20238 20394
20239 // The date and time when you want this object's Object Lock to expire. 20395 // The date and time when you want this object's object lock to expire.
20240 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 20396 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
20241 20397
20242 // Confirms that the requester knows that she or he will be charged for the 20398 // Confirms that the requester knows that she or he will be charged for the
@@ -20253,13 +20409,18 @@ type PutObjectInput struct {
20253 // does not store the encryption key. The key must be appropriate for use with 20409 // does not store the encryption key. The key must be appropriate for use with
20254 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 20410 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
20255 // header. 20411 // header.
20256 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 20412 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
20257 20413
20258 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 20414 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
20259 // Amazon S3 uses this header for a message integrity check to ensure the encryption 20415 // Amazon S3 uses this header for a message integrity check to ensure the encryption
20260 // key was transmitted without error. 20416 // key was transmitted without error.
20261 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 20417 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
20262 20418
20419 // Specifies the AWS KMS Encryption Context to use for object encryption. The
20420 // value of this header is a base64-encoded UTF-8 string holding JSON with the
20421 // encryption context key-value pairs.
20422 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
20423
20263 // Specifies the AWS KMS key ID to use for object encryption. All GET and PUT 20424 // Specifies the AWS KMS key ID to use for object encryption. All GET and PUT
20264 // requests for an object protected by AWS KMS will fail if not made via SSL 20425 // requests for an object protected by AWS KMS will fail if not made via SSL
20265 // or using SigV4. Documentation on configuring any of the officially supported 20426 // or using SigV4. Documentation on configuring any of the officially supported
@@ -20473,6 +20634,12 @@ func (s *PutObjectInput) SetSSECustomerKeyMD5(v string) *PutObjectInput {
20473 return s 20634 return s
20474} 20635}
20475 20636
20637// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
20638func (s *PutObjectInput) SetSSEKMSEncryptionContext(v string) *PutObjectInput {
20639 s.SSEKMSEncryptionContext = &v
20640 return s
20641}
20642
20476// SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 20643// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
20477func (s *PutObjectInput) SetSSEKMSKeyId(v string) *PutObjectInput { 20644func (s *PutObjectInput) SetSSEKMSKeyId(v string) *PutObjectInput {
20478 s.SSEKMSKeyId = &v 20645 s.SSEKMSKeyId = &v
@@ -20626,12 +20793,12 @@ func (s *PutObjectLegalHoldOutput) SetRequestCharged(v string) *PutObjectLegalHo
20626type PutObjectLockConfigurationInput struct { 20793type PutObjectLockConfigurationInput struct {
20627 _ struct{} `type:"structure" payload:"ObjectLockConfiguration"` 20794 _ struct{} `type:"structure" payload:"ObjectLockConfiguration"`
20628 20795
20629 // The bucket whose Object Lock configuration you want to create or replace. 20796 // The bucket whose object lock configuration you want to create or replace.
20630 // 20797 //
20631 // Bucket is a required field 20798 // Bucket is a required field
20632 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 20799 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
20633 20800
20634 // The Object Lock configuration that you want to apply to the specified bucket. 20801 // The object lock configuration that you want to apply to the specified bucket.
20635 ObjectLockConfiguration *ObjectLockConfiguration `locationName:"ObjectLockConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 20802 ObjectLockConfiguration *ObjectLockConfiguration `locationName:"ObjectLockConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
20636 20803
20637 // Confirms that the requester knows that she or he will be charged for the 20804 // Confirms that the requester knows that she or he will be charged for the
@@ -20640,7 +20807,7 @@ type PutObjectLockConfigurationInput struct {
20640 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html 20807 // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
20641 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 20808 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
20642 20809
20643 // A token to allow Object Lock to be enabled for an existing bucket. 20810 // A token to allow Amazon S3 object lock to be enabled for an existing bucket.
20644 Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"` 20811 Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"`
20645} 20812}
20646 20813
@@ -20749,6 +20916,11 @@ type PutObjectOutput struct {
20749 // verification of the customer-provided encryption key. 20916 // verification of the customer-provided encryption key.
20750 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 20917 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
20751 20918
20919 // If present, specifies the AWS KMS Encryption Context to use for object encryption.
20920 // The value of this header is a base64-encoded UTF-8 string holding JSON with
20921 // the encryption context key-value pairs.
20922 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"`
20923
20752 // If present, specifies the ID of the AWS Key Management Service (KMS) master 20924 // If present, specifies the ID of the AWS Key Management Service (KMS) master
20753 // encryption key that was used for the object. 20925 // encryption key that was used for the object.
20754 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 20926 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
@@ -20801,6 +20973,12 @@ func (s *PutObjectOutput) SetSSECustomerKeyMD5(v string) *PutObjectOutput {
20801 return s 20973 return s
20802} 20974}
20803 20975
20976// SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value.
20977func (s *PutObjectOutput) SetSSEKMSEncryptionContext(v string) *PutObjectOutput {
20978 s.SSEKMSEncryptionContext = &v
20979 return s
20980}
20981
20804// SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 20982// SetSSEKMSKeyId sets the SSEKMSKeyId field's value.
20805func (s *PutObjectOutput) SetSSEKMSKeyId(v string) *PutObjectOutput { 20983func (s *PutObjectOutput) SetSSEKMSKeyId(v string) *PutObjectOutput {
20806 s.SSEKMSKeyId = &v 20984 s.SSEKMSKeyId = &v
@@ -21139,17 +21317,16 @@ func (s PutPublicAccessBlockOutput) GoString() string {
21139 return s.String() 21317 return s.String()
21140} 21318}
21141 21319
21142// A container for specifying the configuration for publication of messages 21320// Specifies the configuration for publishing messages to an Amazon Simple Queue
21143// to an Amazon Simple Queue Service (Amazon SQS) queue.when Amazon S3 detects 21321// Service (Amazon SQS) queue when Amazon S3 detects specified events.
21144// specified events.
21145type QueueConfiguration struct { 21322type QueueConfiguration struct {
21146 _ struct{} `type:"structure"` 21323 _ struct{} `type:"structure"`
21147 21324
21148 // Events is a required field 21325 // Events is a required field
21149 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 21326 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
21150 21327
21151 // A container for object key name filtering rules. For information about key 21328 // Specifies object key name filtering rules. For information about key name
21152 // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 21329 // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
21153 // in the Amazon Simple Storage Service Developer Guide. 21330 // in the Amazon Simple Storage Service Developer Guide.
21154 Filter *NotificationConfigurationFilter `type:"structure"` 21331 Filter *NotificationConfigurationFilter `type:"structure"`
21155 21332
@@ -21158,7 +21335,7 @@ type QueueConfiguration struct {
21158 Id *string `type:"string"` 21335 Id *string `type:"string"`
21159 21336
21160 // The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 21337 // The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3
21161 // will publish a message when it detects events of the specified type. 21338 // publishes a message when it detects events of the specified type.
21162 // 21339 //
21163 // QueueArn is a required field 21340 // QueueArn is a required field
21164 QueueArn *string `locationName:"Queue" type:"string" required:"true"` 21341 QueueArn *string `locationName:"Queue" type:"string" required:"true"`
@@ -21304,6 +21481,8 @@ func (s *RecordsEvent) UnmarshalEvent(
21304 return nil 21481 return nil
21305} 21482}
21306 21483
21484// Specifies how requests are redirected. In the event of an error, you can
21485// specify a different error code to return.
21307type Redirect struct { 21486type Redirect struct {
21308 _ struct{} `type:"structure"` 21487 _ struct{} `type:"structure"`
21309 21488
@@ -21314,8 +21493,8 @@ type Redirect struct {
21314 // siblings is present. 21493 // siblings is present.
21315 HttpRedirectCode *string `type:"string"` 21494 HttpRedirectCode *string `type:"string"`
21316 21495
21317 // Protocol to use (http, https) when redirecting requests. The default is the 21496 // Protocol to use when redirecting requests. The default is the protocol that
21318 // protocol that is used in the original request. 21497 // is used in the original request.
21319 Protocol *string `type:"string" enum:"Protocol"` 21498 Protocol *string `type:"string" enum:"Protocol"`
21320 21499
21321 // The object key prefix to use in the redirect request. For example, to redirect 21500 // The object key prefix to use in the redirect request. For example, to redirect
@@ -21327,7 +21506,7 @@ type Redirect struct {
21327 ReplaceKeyPrefixWith *string `type:"string"` 21506 ReplaceKeyPrefixWith *string `type:"string"`
21328 21507
21329 // The specific object key to use in the redirect request. For example, redirect 21508 // The specific object key to use in the redirect request. For example, redirect
21330 // request to error.html. Not required if one of the sibling is present. Can 21509 // request to error.html. Not required if one of the siblings is present. Can
21331 // be present only if ReplaceKeyPrefixWith is not provided. 21510 // be present only if ReplaceKeyPrefixWith is not provided.
21332 ReplaceKeyWith *string `type:"string"` 21511 ReplaceKeyWith *string `type:"string"`
21333} 21512}
@@ -21372,16 +21551,18 @@ func (s *Redirect) SetReplaceKeyWith(v string) *Redirect {
21372 return s 21551 return s
21373} 21552}
21374 21553
21554// Specifies the redirect behavior of all requests to a website endpoint of
21555// an Amazon S3 bucket.
21375type RedirectAllRequestsTo struct { 21556type RedirectAllRequestsTo struct {
21376 _ struct{} `type:"structure"` 21557 _ struct{} `type:"structure"`
21377 21558
21378 // Name of the host where requests will be redirected. 21559 // Name of the host where requests are redirected.
21379 // 21560 //
21380 // HostName is a required field 21561 // HostName is a required field
21381 HostName *string `type:"string" required:"true"` 21562 HostName *string `type:"string" required:"true"`
21382 21563
21383 // Protocol to use (http, https) when redirecting requests. The default is the 21564 // Protocol to use when redirecting requests. The default is the protocol that
21384 // protocol that is used in the original request. 21565 // is used in the original request.
21385 Protocol *string `type:"string" enum:"Protocol"` 21566 Protocol *string `type:"string" enum:"Protocol"`
21386} 21567}
21387 21568
@@ -21426,7 +21607,9 @@ type ReplicationConfiguration struct {
21426 _ struct{} `type:"structure"` 21607 _ struct{} `type:"structure"`
21427 21608
21428 // The Amazon Resource Name (ARN) of the AWS Identity and Access Management 21609 // The Amazon Resource Name (ARN) of the AWS Identity and Access Management
21429 // (IAM) role that Amazon S3 can assume when replicating the objects. 21610 // (IAM) role that Amazon S3 assumes when replicating objects. For more information,
21611 // see How to Set Up Cross-Region Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-how-setup.html)
21612 // in the Amazon Simple Storage Service Developer Guide.
21430 // 21613 //
21431 // Role is a required field 21614 // Role is a required field
21432 Role *string `type:"string" required:"true"` 21615 Role *string `type:"string" required:"true"`
@@ -21486,7 +21669,7 @@ func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationCo
21486 return s 21669 return s
21487} 21670}
21488 21671
21489// A container for information about a specific replication rule. 21672// Specifies which Amazon S3 objects to replicate and where to store the replicas.
21490type ReplicationRule struct { 21673type ReplicationRule struct {
21491 _ struct{} `type:"structure"` 21674 _ struct{} `type:"structure"`
21492 21675
@@ -21506,7 +21689,8 @@ type ReplicationRule struct {
21506 ID *string `type:"string"` 21689 ID *string `type:"string"`
21507 21690
21508 // An object keyname prefix that identifies the object or objects to which the 21691 // An object keyname prefix that identifies the object or objects to which the
21509 // rule applies. The maximum prefix length is 1,024 characters. 21692 // rule applies. The maximum prefix length is 1,024 characters. To include all
21693 // objects in a bucket, specify an empty string.
21510 // 21694 //
21511 // Deprecated: Prefix has been deprecated 21695 // Deprecated: Prefix has been deprecated
21512 Prefix *string `deprecated:"true" type:"string"` 21696 Prefix *string `deprecated:"true" type:"string"`
@@ -21522,7 +21706,7 @@ type ReplicationRule struct {
21522 // * Same object qualify tag based filter criteria specified in multiple 21706 // * Same object qualify tag based filter criteria specified in multiple
21523 // rules 21707 // rules
21524 // 21708 //
21525 // For more information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) 21709 // For more information, see Cross-Region Replication (CRR) (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
21526 // in the Amazon S3 Developer Guide. 21710 // in the Amazon S3 Developer Guide.
21527 Priority *int64 `type:"integer"` 21711 Priority *int64 `type:"integer"`
21528 21712
@@ -21531,12 +21715,9 @@ type ReplicationRule struct {
21531 // replication of these objects. Currently, Amazon S3 supports only the filter 21715 // replication of these objects. Currently, Amazon S3 supports only the filter
21532 // that you can specify for objects created with server-side encryption using 21716 // that you can specify for objects created with server-side encryption using
21533 // an AWS KMS-Managed Key (SSE-KMS). 21717 // an AWS KMS-Managed Key (SSE-KMS).
21534 //
21535 // If you want Amazon S3 to replicate objects created with server-side encryption
21536 // using AWS KMS-Managed Keys.
21537 SourceSelectionCriteria *SourceSelectionCriteria `type:"structure"` 21718 SourceSelectionCriteria *SourceSelectionCriteria `type:"structure"`
21538 21719
21539 // If status isn't enabled, the rule is ignored. 21720 // Specifies whether the rule is enabled.
21540 // 21721 //
21541 // Status is a required field 21722 // Status is a required field
21542 Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"` 21723 Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"`
@@ -22051,6 +22232,7 @@ func (s *RestoreRequest) SetType(v string) *RestoreRequest {
22051 return s 22232 return s
22052} 22233}
22053 22234
22235// Specifies the redirect behavior and when a redirect is applied.
22054type RoutingRule struct { 22236type RoutingRule struct {
22055 _ struct{} `type:"structure"` 22237 _ struct{} `type:"structure"`
22056 22238
@@ -22103,16 +22285,22 @@ func (s *RoutingRule) SetRedirect(v *Redirect) *RoutingRule {
22103 return s 22285 return s
22104} 22286}
22105 22287
22288// Specifies lifecycle rules for an Amazon S3 bucket. For more information,
22289// see PUT Bucket lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html)
22290// in the Amazon Simple Storage Service API Reference.
22106type Rule struct { 22291type Rule struct {
22107 _ struct{} `type:"structure"` 22292 _ struct{} `type:"structure"`
22108 22293
22109 // Specifies the days since the initiation of an Incomplete Multipart Upload 22294 // Specifies the days since the initiation of an incomplete multipart upload
22110 // that Lifecycle will wait before permanently removing all parts of the upload. 22295 // that Amazon S3 will wait before permanently removing all parts of the upload.
22296 // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket
22297 // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config)
22298 // in the Amazon Simple Storage Service Developer Guide.
22111 AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` 22299 AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"`
22112 22300
22113 Expiration *LifecycleExpiration `type:"structure"` 22301 Expiration *LifecycleExpiration `type:"structure"`
22114 22302
22115 // Unique identifier for the rule. The value cannot be longer than 255 characters. 22303 // Unique identifier for the rule. The value can't be longer than 255 characters.
22116 ID *string `type:"string"` 22304 ID *string `type:"string"`
22117 22305
22118 // Specifies when noncurrent object versions expire. Upon expiration, Amazon 22306 // Specifies when noncurrent object versions expire. Upon expiration, Amazon
@@ -22123,25 +22311,27 @@ type Rule struct {
22123 NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` 22311 NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
22124 22312
22125 // Container for the transition rule that describes when noncurrent objects 22313 // Container for the transition rule that describes when noncurrent objects
22126 // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER or 22314 // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER,
22127 // DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning 22315 // or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning
22128 // is suspended), you can set this action to request that Amazon S3 transition 22316 // is suspended), you can set this action to request that Amazon S3 transition
22129 // noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, 22317 // noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING,
22130 // GLACIER or DEEP_ARCHIVE storage class at a specific period in the object's 22318 // GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's
22131 // lifetime. 22319 // lifetime.
22132 NoncurrentVersionTransition *NoncurrentVersionTransition `type:"structure"` 22320 NoncurrentVersionTransition *NoncurrentVersionTransition `type:"structure"`
22133 22321
22134 // Prefix identifying one or more objects to which the rule applies. 22322 // Object key prefix that identifies one or more objects to which this rule
22323 // applies.
22135 // 22324 //
22136 // Prefix is a required field 22325 // Prefix is a required field
22137 Prefix *string `type:"string" required:"true"` 22326 Prefix *string `type:"string" required:"true"`
22138 22327
22139 // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule 22328 // If Enabled, the rule is currently being applied. If Disabled, the rule is
22140 // is not currently being applied. 22329 // not currently being applied.
22141 // 22330 //
22142 // Status is a required field 22331 // Status is a required field
22143 Status *string `type:"string" required:"true" enum:"ExpirationStatus"` 22332 Status *string `type:"string" required:"true" enum:"ExpirationStatus"`
22144 22333
22334 // Specifies when an object transitions to a specified storage class.
22145 Transition *Transition `type:"structure"` 22335 Transition *Transition `type:"structure"`
22146} 22336}
22147 22337
@@ -22537,15 +22727,15 @@ type SelectObjectContentInput struct {
22537 // Specifies if periodic request progress information should be enabled. 22727 // Specifies if periodic request progress information should be enabled.
22538 RequestProgress *RequestProgress `type:"structure"` 22728 RequestProgress *RequestProgress `type:"structure"`
22539 22729
22540 // The SSE Algorithm used to encrypt the object. For more information, see 22730 // The SSE Algorithm used to encrypt the object. For more information, see Server-Side
22541 // Server-Side Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 22731 // Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
22542 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 22732 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"`
22543 22733
22544 // The SSE Customer Key. For more information, see Server-Side Encryption (Using 22734 // The SSE Customer Key. For more information, see Server-Side Encryption (Using
22545 // Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 22735 // Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
22546 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 22736 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
22547 22737
22548 // The SSE Customer Key MD5. For more information, see Server-Side Encryption 22738 // The SSE Customer Key MD5. For more information, see Server-Side Encryption
22549 // (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 22739 // (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
22550 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 22740 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
22551} 22741}
@@ -22792,13 +22982,15 @@ func (s *SelectParameters) SetOutputSerialization(v *OutputSerialization) *Selec
22792} 22982}
22793 22983
22794// Describes the default server-side encryption to apply to new objects in the 22984// Describes the default server-side encryption to apply to new objects in the
22795// bucket. If Put Object request does not specify any server-side encryption, 22985// bucket. If a PUT Object request doesn't specify any server-side encryption,
22796// this default encryption will be applied. 22986// this default encryption will be applied. For more information, see PUT Bucket
22987// encryption (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html)
22988// in the Amazon Simple Storage Service API Reference.
22797type ServerSideEncryptionByDefault struct { 22989type ServerSideEncryptionByDefault struct {
22798 _ struct{} `type:"structure"` 22990 _ struct{} `type:"structure"`
22799 22991
22800 // KMS master key ID to use for the default encryption. This parameter is allowed 22992 // KMS master key ID to use for the default encryption. This parameter is allowed
22801 // if SSEAlgorithm is aws:kms. 22993 // if and only if SSEAlgorithm is set to aws:kms.
22802 KMSMasterKeyID *string `type:"string" sensitive:"true"` 22994 KMSMasterKeyID *string `type:"string" sensitive:"true"`
22803 22995
22804 // Server-side encryption algorithm to use for the default encryption. 22996 // Server-side encryption algorithm to use for the default encryption.
@@ -22842,8 +23034,7 @@ func (s *ServerSideEncryptionByDefault) SetSSEAlgorithm(v string) *ServerSideEnc
22842 return s 23034 return s
22843} 23035}
22844 23036
22845// Container for server-side encryption configuration rules. Currently S3 supports 23037// Specifies the default server-side-encryption configuration.
22846// one rule only.
22847type ServerSideEncryptionConfiguration struct { 23038type ServerSideEncryptionConfiguration struct {
22848 _ struct{} `type:"structure"` 23039 _ struct{} `type:"structure"`
22849 23040
@@ -22893,13 +23084,12 @@ func (s *ServerSideEncryptionConfiguration) SetRules(v []*ServerSideEncryptionRu
22893 return s 23084 return s
22894} 23085}
22895 23086
22896// Container for information about a particular server-side encryption configuration 23087// Specifies the default server-side encryption configuration.
22897// rule.
22898type ServerSideEncryptionRule struct { 23088type ServerSideEncryptionRule struct {
22899 _ struct{} `type:"structure"` 23089 _ struct{} `type:"structure"`
22900 23090
22901 // Describes the default server-side encryption to apply to new objects in the 23091 // Specifies the default server-side encryption to apply to new objects in the
22902 // bucket. If Put Object request does not specify any server-side encryption, 23092 // bucket. If a PUT Object request doesn't specify any server-side encryption,
22903 // this default encryption will be applied. 23093 // this default encryption will be applied.
22904 ApplyServerSideEncryptionByDefault *ServerSideEncryptionByDefault `type:"structure"` 23094 ApplyServerSideEncryptionByDefault *ServerSideEncryptionByDefault `type:"structure"`
22905} 23095}
@@ -22935,13 +23125,17 @@ func (s *ServerSideEncryptionRule) SetApplyServerSideEncryptionByDefault(v *Serv
22935 return s 23125 return s
22936} 23126}
22937 23127
22938// A container for filters that define which source objects should be replicated. 23128// A container that describes additional filters for identifying the source
23129// objects that you want to replicate. You can choose to enable or disable the
23130// replication of these objects. Currently, Amazon S3 supports only the filter
23131// that you can specify for objects created with server-side encryption using
23132// an AWS KMS-Managed Key (SSE-KMS).
22939type SourceSelectionCriteria struct { 23133type SourceSelectionCriteria struct {
22940 _ struct{} `type:"structure"` 23134 _ struct{} `type:"structure"`
22941 23135
22942 // A container for filter information for the selection of S3 objects encrypted 23136 // A container for filter information for the selection of Amazon S3 objects
22943 // with AWS KMS. If you include SourceSelectionCriteria in the replication configuration, 23137 // encrypted with AWS KMS. If you include SourceSelectionCriteria in the replication
22944 // this element is required. 23138 // configuration, this element is required.
22945 SseKmsEncryptedObjects *SseKmsEncryptedObjects `type:"structure"` 23139 SseKmsEncryptedObjects *SseKmsEncryptedObjects `type:"structure"`
22946} 23140}
22947 23141
@@ -22981,8 +23175,8 @@ func (s *SourceSelectionCriteria) SetSseKmsEncryptedObjects(v *SseKmsEncryptedOb
22981type SseKmsEncryptedObjects struct { 23175type SseKmsEncryptedObjects struct {
22982 _ struct{} `type:"structure"` 23176 _ struct{} `type:"structure"`
22983 23177
22984 // If the status is not Enabled, replication for S3 objects encrypted with AWS 23178 // Specifies whether Amazon S3 replicates objects created with server-side encryption
22985 // KMS is disabled. 23179 // using an AWS KMS-managed key.
22986 // 23180 //
22987 // Status is a required field 23181 // Status is a required field
22988 Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"` 23182 Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"`
@@ -23098,11 +23292,14 @@ func (s *StatsEvent) UnmarshalEvent(
23098 return nil 23292 return nil
23099} 23293}
23100 23294
23295// Specifies data related to access patterns to be collected and made available
23296// to analyze the tradeoffs between different storage classes for an Amazon
23297// S3 bucket.
23101type StorageClassAnalysis struct { 23298type StorageClassAnalysis struct {
23102 _ struct{} `type:"structure"` 23299 _ struct{} `type:"structure"`
23103 23300
23104 // A container used to describe how data related to the storage class analysis 23301 // Specifies how data related to the storage class analysis for an Amazon S3
23105 // should be exported. 23302 // bucket should be exported.
23106 DataExport *StorageClassAnalysisDataExport `type:"structure"` 23303 DataExport *StorageClassAnalysisDataExport `type:"structure"`
23107} 23304}
23108 23305
@@ -23342,16 +23539,20 @@ func (s *TargetGrant) SetPermission(v string) *TargetGrant {
23342} 23539}
23343 23540
23344// A container for specifying the configuration for publication of messages 23541// A container for specifying the configuration for publication of messages
23345// to an Amazon Simple Notification Service (Amazon SNS) topic.when Amazon S3 23542// to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3
23346// detects specified events. 23543// detects specified events.
23347type TopicConfiguration struct { 23544type TopicConfiguration struct {
23348 _ struct{} `type:"structure"` 23545 _ struct{} `type:"structure"`
23349 23546
23547 // The Amazon S3 bucket event about which to send notifications. For more information,
23548 // see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
23549 // in the Amazon Simple Storage Service Developer Guide.
23550 //
23350 // Events is a required field 23551 // Events is a required field
23351 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 23552 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
23352 23553
23353 // A container for object key name filtering rules. For information about key 23554 // Specifies object key name filtering rules. For information about key name
23354 // name filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 23555 // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
23355 // in the Amazon Simple Storage Service Developer Guide. 23556 // in the Amazon Simple Storage Service Developer Guide.
23356 Filter *NotificationConfigurationFilter `type:"structure"` 23557 Filter *NotificationConfigurationFilter `type:"structure"`
23357 23558
@@ -23360,7 +23561,7 @@ type TopicConfiguration struct {
23360 Id *string `type:"string"` 23561 Id *string `type:"string"`
23361 23562
23362 // The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 23563 // The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3
23363 // will publish a message when it detects events of the specified type. 23564 // publishes a message when it detects events of the specified type.
23364 // 23565 //
23365 // TopicArn is a required field 23566 // TopicArn is a required field
23366 TopicArn *string `locationName:"Topic" type:"string" required:"true"` 23567 TopicArn *string `locationName:"Topic" type:"string" required:"true"`
@@ -23469,18 +23670,19 @@ func (s *TopicConfigurationDeprecated) SetTopic(v string) *TopicConfigurationDep
23469 return s 23670 return s
23470} 23671}
23471 23672
23673// Specifies when an object transitions to a specified storage class.
23472type Transition struct { 23674type Transition struct {
23473 _ struct{} `type:"structure"` 23675 _ struct{} `type:"structure"`
23474 23676
23475 // Indicates at what date the object is to be moved or deleted. Should be in 23677 // Indicates when objects are transitioned to the specified storage class. The
23476 // GMT ISO 8601 Format. 23678 // date value must be in ISO 8601 format. The time is always midnight UTC.
23477 Date *time.Time `type:"timestamp" timestampFormat:"iso8601"` 23679 Date *time.Time `type:"timestamp" timestampFormat:"iso8601"`
23478 23680
23479 // Indicates the lifetime, in days, of the objects that are subject to the rule. 23681 // Indicates the number of days after creation when objects are transitioned
23480 // The value must be a non-zero positive integer. 23682 // to the specified storage class. The value must be a positive integer.
23481 Days *int64 `type:"integer"` 23683 Days *int64 `type:"integer"`
23482 23684
23483 // The class of storage used to store the object. 23685 // The storage class to which you want the object to transition.
23484 StorageClass *string `type:"string" enum:"TransitionStorageClass"` 23686 StorageClass *string `type:"string" enum:"TransitionStorageClass"`
23485} 23687}
23486 23688
@@ -23550,7 +23752,7 @@ type UploadPartCopyInput struct {
23550 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt 23752 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt
23551 // the source object. The encryption key provided in this header must be one 23753 // the source object. The encryption key provided in this header must be one
23552 // that was used when the source object was created. 23754 // that was used when the source object was created.
23553 CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` 23755 CopySourceSSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
23554 23756
23555 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 23757 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
23556 // Amazon S3 uses this header for a message integrity check to ensure the encryption 23758 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -23581,7 +23783,7 @@ type UploadPartCopyInput struct {
23581 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 23783 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
23582 // header. This must be the same encryption key specified in the initiate multipart 23784 // header. This must be the same encryption key specified in the initiate multipart
23583 // upload request. 23785 // upload request.
23584 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 23786 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
23585 23787
23586 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 23788 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
23587 // Amazon S3 uses this header for a message integrity check to ensure the encryption 23789 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -23857,7 +24059,9 @@ type UploadPartInput struct {
23857 // body cannot be determined automatically. 24059 // body cannot be determined automatically.
23858 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` 24060 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"`
23859 24061
23860 // The base64-encoded 128-bit MD5 digest of the part data. 24062 // The base64-encoded 128-bit MD5 digest of the part data. This parameter is
24063 // auto-populated when using the command from the CLI. This parameted is required
24064 // if object lock parameters are specified.
23861 ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` 24065 ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"`
23862 24066
23863 // Object key for which the multipart upload was initiated. 24067 // Object key for which the multipart upload was initiated.
@@ -23886,7 +24090,7 @@ type UploadPartInput struct {
23886 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm 24090 // the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm
23887 // header. This must be the same encryption key specified in the initiate multipart 24091 // header. This must be the same encryption key specified in the initiate multipart
23888 // upload request. 24092 // upload request.
23889 SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 24093 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
23890 24094
23891 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 24095 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
23892 // Amazon S3 uses this header for a message integrity check to ensure the encryption 24096 // Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -24092,6 +24296,9 @@ func (s *UploadPartOutput) SetServerSideEncryption(v string) *UploadPartOutput {
24092 return s 24296 return s
24093} 24297}
24094 24298
24299// Describes the versioning state of an Amazon S3 bucket. For more information,
24300// see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html)
24301// in the Amazon Simple Storage Service API Reference.
24095type VersioningConfiguration struct { 24302type VersioningConfiguration struct {
24096 _ struct{} `type:"structure"` 24303 _ struct{} `type:"structure"`
24097 24304
@@ -24126,15 +24333,22 @@ func (s *VersioningConfiguration) SetStatus(v string) *VersioningConfiguration {
24126 return s 24333 return s
24127} 24334}
24128 24335
24336// Specifies website configuration parameters for an Amazon S3 bucket.
24129type WebsiteConfiguration struct { 24337type WebsiteConfiguration struct {
24130 _ struct{} `type:"structure"` 24338 _ struct{} `type:"structure"`
24131 24339
24340 // The name of the error document for the website.
24132 ErrorDocument *ErrorDocument `type:"structure"` 24341 ErrorDocument *ErrorDocument `type:"structure"`
24133 24342
24343 // The name of the index document for the website.
24134 IndexDocument *IndexDocument `type:"structure"` 24344 IndexDocument *IndexDocument `type:"structure"`
24135 24345
24346 // The redirect behavior for every request to this bucket's website endpoint.
24347 //
24348 // If you specify this property, you can't specify any other property.
24136 RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"` 24349 RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"`
24137 24350
24351 // Rules that define when a redirect is applied and the redirect behavior.
24138 RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"` 24352 RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"`
24139} 24353}
24140 24354
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go b/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go
index bc68a46..9ba8a78 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/bucket_location.go
@@ -80,7 +80,8 @@ func buildGetBucketLocation(r *request.Request) {
80 out := r.Data.(*GetBucketLocationOutput) 80 out := r.Data.(*GetBucketLocationOutput)
81 b, err := ioutil.ReadAll(r.HTTPResponse.Body) 81 b, err := ioutil.ReadAll(r.HTTPResponse.Body)
82 if err != nil { 82 if err != nil {
83 r.Error = awserr.New("SerializationError", "failed reading response body", err) 83 r.Error = awserr.New(request.ErrCodeSerialization,
84 "failed reading response body", err)
84 return 85 return
85 } 86 }
86 87
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
index 95f2456..23d386b 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
@@ -17,7 +17,8 @@ func defaultInitClientFn(c *client.Client) {
17 17
18 // Require SSL when using SSE keys 18 // Require SSL when using SSE keys
19 c.Handlers.Validate.PushBack(validateSSERequiresSSL) 19 c.Handlers.Validate.PushBack(validateSSERequiresSSL)
20 c.Handlers.Build.PushBack(computeSSEKeys) 20 c.Handlers.Build.PushBack(computeSSEKeyMD5)
21 c.Handlers.Build.PushBack(computeCopySourceSSEKeyMD5)
21 22
22 // S3 uses custom error unmarshaling logic 23 // S3 uses custom error unmarshaling logic
23 c.Handlers.UnmarshalError.Clear() 24 c.Handlers.UnmarshalError.Clear()
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/sse.go b/vendor/github.com/aws/aws-sdk-go/service/s3/sse.go
index 8010c4f..b71c835 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/sse.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/sse.go
@@ -3,6 +3,7 @@ package s3
3import ( 3import (
4 "crypto/md5" 4 "crypto/md5"
5 "encoding/base64" 5 "encoding/base64"
6 "net/http"
6 7
7 "github.com/aws/aws-sdk-go/aws/awserr" 8 "github.com/aws/aws-sdk-go/aws/awserr"
8 "github.com/aws/aws-sdk-go/aws/request" 9 "github.com/aws/aws-sdk-go/aws/request"
@@ -30,25 +31,54 @@ func validateSSERequiresSSL(r *request.Request) {
30 } 31 }
31} 32}
32 33
33func computeSSEKeys(r *request.Request) { 34const (
34 headers := []string{ 35 sseKeyHeader = "x-amz-server-side-encryption-customer-key"
35 "x-amz-server-side-encryption-customer-key", 36 sseKeyMD5Header = sseKeyHeader + "-md5"
36 "x-amz-copy-source-server-side-encryption-customer-key", 37)
38
39func computeSSEKeyMD5(r *request.Request) {
40 var key string
41 if g, ok := r.Params.(sseCustomerKeyGetter); ok {
42 key = g.getSSECustomerKey()
43 }
44
45 computeKeyMD5(sseKeyHeader, sseKeyMD5Header, key, r.HTTPRequest)
46}
47
48const (
49 copySrcSSEKeyHeader = "x-amz-copy-source-server-side-encryption-customer-key"
50 copySrcSSEKeyMD5Header = copySrcSSEKeyHeader + "-md5"
51)
52
53func computeCopySourceSSEKeyMD5(r *request.Request) {
54 var key string
55 if g, ok := r.Params.(copySourceSSECustomerKeyGetter); ok {
56 key = g.getCopySourceSSECustomerKey()
37 } 57 }
38 58
39 for _, h := range headers { 59 computeKeyMD5(copySrcSSEKeyHeader, copySrcSSEKeyMD5Header, key, r.HTTPRequest)
40 md5h := h + "-md5" 60}
41 if key := r.HTTPRequest.Header.Get(h); key != "" { 61
42 // Base64-encode the value 62func computeKeyMD5(keyHeader, keyMD5Header, key string, r *http.Request) {
43 b64v := base64.StdEncoding.EncodeToString([]byte(key)) 63 if len(key) == 0 {
44 r.HTTPRequest.Header.Set(h, b64v) 64 // Backwards compatiablity where user just set the header value instead
45 65 // of using the API parameter, or setting the header value for an
46 // Add MD5 if it wasn't computed 66 // operation without the parameters modeled.
47 if r.HTTPRequest.Header.Get(md5h) == "" { 67 key = r.Header.Get(keyHeader)
48 sum := md5.Sum([]byte(key)) 68 if len(key) == 0 {
49 b64sum := base64.StdEncoding.EncodeToString(sum[:]) 69 return
50 r.HTTPRequest.Header.Set(md5h, b64sum)
51 }
52 } 70 }
71
72 // In backwards compatiable, the header's value is not base64 encoded,
73 // and needs to be encoded and updated by the SDK's customizations.
74 b64Key := base64.StdEncoding.EncodeToString([]byte(key))
75 r.Header.Set(keyHeader, b64Key)
76 }
77
78 // Only update Key's MD5 if not already set.
79 if len(r.Header.Get(keyMD5Header)) == 0 {
80 sum := md5.Sum([]byte(key))
81 keyMD5 := base64.StdEncoding.EncodeToString(sum[:])
82 r.Header.Set(keyMD5Header, keyMD5)
53 } 83 }
54} 84}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
index fde3050..f6a69ae 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
@@ -14,7 +14,7 @@ func copyMultipartStatusOKUnmarhsalError(r *request.Request) {
14 b, err := ioutil.ReadAll(r.HTTPResponse.Body) 14 b, err := ioutil.ReadAll(r.HTTPResponse.Body)
15 if err != nil { 15 if err != nil {
16 r.Error = awserr.NewRequestFailure( 16 r.Error = awserr.NewRequestFailure(
17 awserr.New("SerializationError", "unable to read response body", err), 17 awserr.New(request.ErrCodeSerialization, "unable to read response body", err),
18 r.HTTPResponse.StatusCode, 18 r.HTTPResponse.StatusCode,
19 r.RequestID, 19 r.RequestID,
20 ) 20 )
@@ -31,7 +31,7 @@ func copyMultipartStatusOKUnmarhsalError(r *request.Request) {
31 31
32 unmarshalError(r) 32 unmarshalError(r)
33 if err, ok := r.Error.(awserr.Error); ok && err != nil { 33 if err, ok := r.Error.(awserr.Error); ok && err != nil {
34 if err.Code() == "SerializationError" { 34 if err.Code() == request.ErrCodeSerialization {
35 r.Error = nil 35 r.Error = nil
36 return 36 return
37 } 37 }
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
index 1db7e13..5b63fac 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
@@ -11,6 +11,7 @@ import (
11 "github.com/aws/aws-sdk-go/aws" 11 "github.com/aws/aws-sdk-go/aws"
12 "github.com/aws/aws-sdk-go/aws/awserr" 12 "github.com/aws/aws-sdk-go/aws/awserr"
13 "github.com/aws/aws-sdk-go/aws/request" 13 "github.com/aws/aws-sdk-go/aws/request"
14 "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil"
14) 15)
15 16
16type xmlErrorResponse struct { 17type xmlErrorResponse struct {
@@ -42,29 +43,34 @@ func unmarshalError(r *request.Request) {
42 return 43 return
43 } 44 }
44 45
45 var errCode, errMsg string
46
47 // Attempt to parse error from body if it is known 46 // Attempt to parse error from body if it is known
48 resp := &xmlErrorResponse{} 47 var errResp xmlErrorResponse
49 err := xml.NewDecoder(r.HTTPResponse.Body).Decode(resp) 48 err := xmlutil.UnmarshalXMLError(&errResp, r.HTTPResponse.Body)
50 if err != nil && err != io.EOF { 49 if err == io.EOF {
51 errCode = "SerializationError" 50 // Only capture the error if an unmarshal error occurs that is not EOF,
52 errMsg = "failed to decode S3 XML error response" 51 // because S3 might send an error without a error message which causes
53 } else { 52 // the XML unmarshal to fail with EOF.
54 errCode = resp.Code
55 errMsg = resp.Message
56 err = nil 53 err = nil
57 } 54 }
55 if err != nil {
56 r.Error = awserr.NewRequestFailure(
57 awserr.New(request.ErrCodeSerialization,
58 "failed to unmarshal error message", err),
59 r.HTTPResponse.StatusCode,
60 r.RequestID,
61 )
62 return
63 }
58 64
59 // Fallback to status code converted to message if still no error code 65 // Fallback to status code converted to message if still no error code
60 if len(errCode) == 0 { 66 if len(errResp.Code) == 0 {
61 statusText := http.StatusText(r.HTTPResponse.StatusCode) 67 statusText := http.StatusText(r.HTTPResponse.StatusCode)
62 errCode = strings.Replace(statusText, " ", "", -1) 68 errResp.Code = strings.Replace(statusText, " ", "", -1)
63 errMsg = statusText 69 errResp.Message = statusText
64 } 70 }
65 71
66 r.Error = awserr.NewRequestFailure( 72 r.Error = awserr.NewRequestFailure(
67 awserr.New(errCode, errMsg, err), 73 awserr.New(errResp.Code, errResp.Message, err),
68 r.HTTPResponse.StatusCode, 74 r.HTTPResponse.StatusCode,
69 r.RequestID, 75 r.RequestID,
70 ) 76 )
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
index 8113089..d22c38b 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
@@ -3,6 +3,7 @@
3package sts 3package sts
4 4
5import ( 5import (
6 "fmt"
6 "time" 7 "time"
7 8
8 "github.com/aws/aws-sdk-go/aws" 9 "github.com/aws/aws-sdk-go/aws"
@@ -55,38 +56,26 @@ func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, o
55 56
56// AssumeRole API operation for AWS Security Token Service. 57// AssumeRole API operation for AWS Security Token Service.
57// 58//
58// Returns a set of temporary security credentials (consisting of an access 59// Returns a set of temporary security credentials that you can use to access
59// key ID, a secret access key, and a security token) that you can use to access 60// AWS resources that you might not normally have access to. These temporary
60// AWS resources that you might not normally have access to. Typically, you 61// credentials consist of an access key ID, a secret access key, and a security
61// use AssumeRole for cross-account access or federation. For a comparison of 62// token. Typically, you use AssumeRole within your account or for cross-account
62// AssumeRole with the other APIs that produce temporary credentials, see Requesting 63// access. For a comparison of AssumeRole with other API operations that produce
63// Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) 64// temporary credentials, see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
64// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) 65// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
65// in the IAM User Guide. 66// in the IAM User Guide.
66// 67//
67// Important: You cannot call AssumeRole by using AWS root account credentials; 68// You cannot use AWS account root user credentials to call AssumeRole. You
68// access is denied. You must use credentials for an IAM user or an IAM role 69// must use credentials for an IAM user or an IAM role to call AssumeRole.
69// to call AssumeRole.
70// 70//
71// For cross-account access, imagine that you own multiple accounts and need 71// For cross-account access, imagine that you own multiple accounts and need
72// to access resources in each account. You could create long-term credentials 72// to access resources in each account. You could create long-term credentials
73// in each account to access those resources. However, managing all those credentials 73// in each account to access those resources. However, managing all those credentials
74// and remembering which one can access which account can be time consuming. 74// and remembering which one can access which account can be time consuming.
75// Instead, you can create one set of long-term credentials in one account and 75// Instead, you can create one set of long-term credentials in one account.
76// then use temporary security credentials to access all the other accounts 76// Then use temporary security credentials to access all the other accounts
77// by assuming roles in those accounts. For more information about roles, see 77// by assuming roles in those accounts. For more information about roles, see
78// IAM Roles (Delegation and Federation) (http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html) 78// IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
79// in the IAM User Guide.
80//
81// For federation, you can, for example, grant single sign-on access to the
82// AWS Management Console. If you already have an identity and authentication
83// system in your corporate network, you don't have to recreate user identities
84// in AWS in order to grant those user identities access to AWS. Instead, after
85// a user has been authenticated, you call AssumeRole (and specify the role
86// with the appropriate permissions) to get temporary security credentials for
87// that user. With those temporary security credentials, you construct a sign-in
88// URL that users can use to access the console. For more information, see Common
89// Scenarios for Temporary Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html#sts-introduction)
90// in the IAM User Guide. 79// in the IAM User Guide.
91// 80//
92// By default, the temporary security credentials created by AssumeRole last 81// By default, the temporary security credentials created by AssumeRole last
@@ -95,69 +84,73 @@ func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, o
95// seconds (15 minutes) up to the maximum session duration setting for the role. 84// seconds (15 minutes) up to the maximum session duration setting for the role.
96// This setting can have a value from 1 hour to 12 hours. To learn how to view 85// This setting can have a value from 1 hour to 12 hours. To learn how to view
97// the maximum value for your role, see View the Maximum Session Duration Setting 86// the maximum value for your role, see View the Maximum Session Duration Setting
98// for a Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) 87// for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)
99// in the IAM User Guide. The maximum session duration limit applies when you 88// in the IAM User Guide. The maximum session duration limit applies when you
100// use the AssumeRole* API operations or the assume-role* CLI operations but 89// use the AssumeRole* API operations or the assume-role* CLI commands. However
101// does not apply when you use those operations to create a console URL. For 90// the limit does not apply when you use those operations to create a console
102// more information, see Using IAM Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) 91// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)
103// in the IAM User Guide. 92// in the IAM User Guide.
104// 93//
105// The temporary security credentials created by AssumeRole can be used to make 94// The temporary security credentials created by AssumeRole can be used to make
106// API calls to any AWS service with the following exception: you cannot call 95// API calls to any AWS service with the following exception: You cannot call
107// the STS service's GetFederationToken or GetSessionToken APIs. 96// the AWS STS GetFederationToken or GetSessionToken API operations.
108// 97//
109// Optionally, you can pass an IAM access policy to this operation. If you choose 98// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
110// not to pass a policy, the temporary security credentials that are returned 99// to this operation. You can pass a single JSON policy document to use as an
111// by the operation have the permissions that are defined in the access policy 100// inline session policy. You can also specify up to 10 managed policies to
112// of the role that is being assumed. If you pass a policy to this operation, 101// use as managed session policies. The plain text that you use for both inline
113// the temporary security credentials that are returned by the operation have 102// and managed session policies shouldn't exceed 2048 characters. Passing policies
114// the permissions that are allowed by both the access policy of the role that 103// to this operation returns new temporary credentials. The resulting session's
115// is being assumed, and the policy that you pass. This gives you a way to further 104// permissions are the intersection of the role's identity-based policy and
116// restrict the permissions for the resulting temporary security credentials. 105// the session policies. You can use the role's temporary credentials in subsequent
117// You cannot use the passed policy to grant permissions that are in excess 106// AWS API calls to access resources in the account that owns the role. You
118// of those allowed by the access policy of the role that is being assumed. 107// cannot use session policies to grant more permissions than those allowed
119// For more information, see Permissions for AssumeRole, AssumeRoleWithSAML, 108// by the identity-based policy of the role that is being assumed. For more
120// and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html) 109// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
121// in the IAM User Guide. 110// in the IAM User Guide.
122// 111//
123// To assume a role, your AWS account must be trusted by the role. The trust 112// To assume a role from a different account, your AWS account must be trusted
124// relationship is defined in the role's trust policy when the role is created. 113// by the role. The trust relationship is defined in the role's trust policy
125// That trust policy states which accounts are allowed to delegate access to 114// when the role is created. That trust policy states which accounts are allowed
126// this account's role. 115// to delegate that access to users in the account.
127// 116//
128// The user who wants to access the role must also have permissions delegated 117// A user who wants to access a role in a different account must also have permissions
129// from the role's administrator. If the user is in a different account than 118// that are delegated from the user account administrator. The administrator
130// the role, then the user's administrator must attach a policy that allows 119// must attach a policy that allows the user to call AssumeRole for the ARN
131// the user to call AssumeRole on the ARN of the role in the other account. 120// of the role in the other account. If the user is in the same account as the
132// If the user is in the same account as the role, then you can either attach 121// role, then you can do either of the following:
133// a policy to the user (identical to the previous different account user), 122//
134// or you can add the user as a principal directly in the role's trust policy. 123// * Attach a policy to the user (identical to the previous user in a different
135// In this case, the trust policy acts as the only resource-based policy in 124// account).
136// IAM, and users in the same account as the role do not need explicit permission 125//
137// to assume the role. For more information about trust policies and resource-based 126// * Add the user as a principal directly in the role's trust policy.
138// policies, see IAM Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) 127//
128// In this case, the trust policy acts as an IAM resource-based policy. Users
129// in the same account as the role do not need explicit permission to assume
130// the role. For more information about trust policies and resource-based policies,
131// see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)
139// in the IAM User Guide. 132// in the IAM User Guide.
140// 133//
141// Using MFA with AssumeRole 134// Using MFA with AssumeRole
142// 135//
143// You can optionally include multi-factor authentication (MFA) information 136// (Optional) You can include multi-factor authentication (MFA) information
144// when you call AssumeRole. This is useful for cross-account scenarios in which 137// when you call AssumeRole. This is useful for cross-account scenarios to ensure
145// you want to make sure that the user who is assuming the role has been authenticated 138// that the user that assumes the role has been authenticated with an AWS MFA
146// using an AWS MFA device. In that scenario, the trust policy of the role being 139// device. In that scenario, the trust policy of the role being assumed includes
147// assumed includes a condition that tests for MFA authentication; if the caller 140// a condition that tests for MFA authentication. If the caller does not include
148// does not include valid MFA information, the request to assume the role is 141// valid MFA information, the request to assume the role is denied. The condition
149// denied. The condition in a trust policy that tests for MFA authentication 142// in a trust policy that tests for MFA authentication might look like the following
150// might look like the following example. 143// example.
151// 144//
152// "Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}} 145// "Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}}
153// 146//
154// For more information, see Configuring MFA-Protected API Access (http://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html) 147// For more information, see Configuring MFA-Protected API Access (https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html)
155// in the IAM User Guide guide. 148// in the IAM User Guide guide.
156// 149//
157// To use MFA with AssumeRole, you pass values for the SerialNumber and TokenCode 150// To use MFA with AssumeRole, you pass values for the SerialNumber and TokenCode
158// parameters. The SerialNumber value identifies the user's hardware or virtual 151// parameters. The SerialNumber value identifies the user's hardware or virtual
159// MFA device. The TokenCode is the time-based one-time password (TOTP) that 152// MFA device. The TokenCode is the time-based one-time password (TOTP) that
160// the MFA devices produces. 153// the MFA device produces.
161// 154//
162// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 155// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
163// with awserr.Error's Code and Message methods to get detailed information about 156// with awserr.Error's Code and Message methods to get detailed information about
@@ -180,7 +173,7 @@ func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, o
180// STS is not activated in the requested region for the account that is being 173// STS is not activated in the requested region for the account that is being
181// asked to generate credentials. The account administrator must use the IAM 174// asked to generate credentials. The account administrator must use the IAM
182// console to activate STS in that region. For more information, see Activating 175// console to activate STS in that region. For more information, see Activating
183// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) 176// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
184// in the IAM User Guide. 177// in the IAM User Guide.
185// 178//
186// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole 179// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole
@@ -254,9 +247,9 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re
254// via a SAML authentication response. This operation provides a mechanism for 247// via a SAML authentication response. This operation provides a mechanism for
255// tying an enterprise identity store or directory to role-based AWS access 248// tying an enterprise identity store or directory to role-based AWS access
256// without user-specific credentials or configuration. For a comparison of AssumeRoleWithSAML 249// without user-specific credentials or configuration. For a comparison of AssumeRoleWithSAML
257// with the other APIs that produce temporary credentials, see Requesting Temporary 250// with the other API operations that produce temporary credentials, see Requesting
258// Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) 251// Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
259// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) 252// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
260// in the IAM User Guide. 253// in the IAM User Guide.
261// 254//
262// The temporary security credentials returned by this operation consist of 255// The temporary security credentials returned by this operation consist of
@@ -271,37 +264,36 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re
271// a DurationSeconds value from 900 seconds (15 minutes) up to the maximum session 264// a DurationSeconds value from 900 seconds (15 minutes) up to the maximum session
272// duration setting for the role. This setting can have a value from 1 hour 265// duration setting for the role. This setting can have a value from 1 hour
273// to 12 hours. To learn how to view the maximum value for your role, see View 266// to 12 hours. To learn how to view the maximum value for your role, see View
274// the Maximum Session Duration Setting for a Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) 267// the Maximum Session Duration Setting for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)
275// in the IAM User Guide. The maximum session duration limit applies when you 268// in the IAM User Guide. The maximum session duration limit applies when you
276// use the AssumeRole* API operations or the assume-role* CLI operations but 269// use the AssumeRole* API operations or the assume-role* CLI commands. However
277// does not apply when you use those operations to create a console URL. For 270// the limit does not apply when you use those operations to create a console
278// more information, see Using IAM Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) 271// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)
279// in the IAM User Guide. 272// in the IAM User Guide.
280// 273//
281// The temporary security credentials created by AssumeRoleWithSAML can be used 274// The temporary security credentials created by AssumeRoleWithSAML can be used
282// to make API calls to any AWS service with the following exception: you cannot 275// to make API calls to any AWS service with the following exception: you cannot
283// call the STS service's GetFederationToken or GetSessionToken APIs. 276// call the STS GetFederationToken or GetSessionToken API operations.
284// 277//
285// Optionally, you can pass an IAM access policy to this operation. If you choose 278// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
286// not to pass a policy, the temporary security credentials that are returned 279// to this operation. You can pass a single JSON policy document to use as an
287// by the operation have the permissions that are defined in the access policy 280// inline session policy. You can also specify up to 10 managed policies to
288// of the role that is being assumed. If you pass a policy to this operation, 281// use as managed session policies. The plain text that you use for both inline
289// the temporary security credentials that are returned by the operation have 282// and managed session policies shouldn't exceed 2048 characters. Passing policies
290// the permissions that are allowed by the intersection of both the access policy 283// to this operation returns new temporary credentials. The resulting session's
291// of the role that is being assumed, and the policy that you pass. This means 284// permissions are the intersection of the role's identity-based policy and
292// that both policies must grant the permission for the action to be allowed. 285// the session policies. You can use the role's temporary credentials in subsequent
293// This gives you a way to further restrict the permissions for the resulting 286// AWS API calls to access resources in the account that owns the role. You
294// temporary security credentials. You cannot use the passed policy to grant 287// cannot use session policies to grant more permissions than those allowed
295// permissions that are in excess of those allowed by the access policy of the 288// by the identity-based policy of the role that is being assumed. For more
296// role that is being assumed. For more information, see Permissions for AssumeRole, 289// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
297// AssumeRoleWithSAML, and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
298// in the IAM User Guide. 290// in the IAM User Guide.
299// 291//
300// Before your application can call AssumeRoleWithSAML, you must configure your 292// Before your application can call AssumeRoleWithSAML, you must configure your
301// SAML identity provider (IdP) to issue the claims required by AWS. Additionally, 293// SAML identity provider (IdP) to issue the claims required by AWS. Additionally,
302// you must use AWS Identity and Access Management (IAM) to create a SAML provider 294// you must use AWS Identity and Access Management (IAM) to create a SAML provider
303// entity in your AWS account that represents your identity provider, and create 295// entity in your AWS account that represents your identity provider. You must
304// an IAM role that specifies this SAML provider in its trust policy. 296// also create an IAM role that specifies this SAML provider in its trust policy.
305// 297//
306// Calling AssumeRoleWithSAML does not require the use of AWS security credentials. 298// Calling AssumeRoleWithSAML does not require the use of AWS security credentials.
307// The identity of the caller is validated by using keys in the metadata document 299// The identity of the caller is validated by using keys in the metadata document
@@ -315,16 +307,16 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re
315// 307//
316// For more information, see the following resources: 308// For more information, see the following resources:
317// 309//
318// * About SAML 2.0-based Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) 310// * About SAML 2.0-based Federation (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html)
319// in the IAM User Guide. 311// in the IAM User Guide.
320// 312//
321// * Creating SAML Identity Providers (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html) 313// * Creating SAML Identity Providers (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html)
322// in the IAM User Guide. 314// in the IAM User Guide.
323// 315//
324// * Configuring a Relying Party and Claims (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html) 316// * Configuring a Relying Party and Claims (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html)
325// in the IAM User Guide. 317// in the IAM User Guide.
326// 318//
327// * Creating a Role for SAML 2.0 Federation (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html) 319// * Creating a Role for SAML 2.0 Federation (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html)
328// in the IAM User Guide. 320// in the IAM User Guide.
329// 321//
330// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 322// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -363,7 +355,7 @@ func (c *STS) AssumeRoleWithSAMLRequest(input *AssumeRoleWithSAMLInput) (req *re
363// STS is not activated in the requested region for the account that is being 355// STS is not activated in the requested region for the account that is being
364// asked to generate credentials. The account administrator must use the IAM 356// asked to generate credentials. The account administrator must use the IAM
365// console to activate STS in that region. For more information, see Activating 357// console to activate STS in that region. For more information, see Activating
366// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) 358// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
367// in the IAM User Guide. 359// in the IAM User Guide.
368// 360//
369// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML 361// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML
@@ -434,35 +426,35 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI
434// AssumeRoleWithWebIdentity API operation for AWS Security Token Service. 426// AssumeRoleWithWebIdentity API operation for AWS Security Token Service.
435// 427//
436// Returns a set of temporary security credentials for users who have been authenticated 428// Returns a set of temporary security credentials for users who have been authenticated
437// in a mobile or web application with a web identity provider, such as Amazon 429// in a mobile or web application with a web identity provider. Example providers
438// Cognito, Login with Amazon, Facebook, Google, or any OpenID Connect-compatible 430// include Amazon Cognito, Login with Amazon, Facebook, Google, or any OpenID
439// identity provider. 431// Connect-compatible identity provider.
440// 432//
441// For mobile applications, we recommend that you use Amazon Cognito. You can 433// For mobile applications, we recommend that you use Amazon Cognito. You can
442// use Amazon Cognito with the AWS SDK for iOS (http://aws.amazon.com/sdkforios/) 434// use Amazon Cognito with the AWS SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/)
443// and the AWS SDK for Android (http://aws.amazon.com/sdkforandroid/) to uniquely 435// and the AWS SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/)
444// identify a user and supply the user with a consistent identity throughout 436// to uniquely identify a user. You can also supply the user with a consistent
445// the lifetime of an application. 437// identity throughout the lifetime of an application.
446// 438//
447// To learn more about Amazon Cognito, see Amazon Cognito Overview (http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840) 439// To learn more about Amazon Cognito, see Amazon Cognito Overview (https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840)
448// in the AWS SDK for Android Developer Guide guide and Amazon Cognito Overview 440// in AWS SDK for Android Developer Guide and Amazon Cognito Overview (https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664)
449// (http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664)
450// in the AWS SDK for iOS Developer Guide. 441// in the AWS SDK for iOS Developer Guide.
451// 442//
452// Calling AssumeRoleWithWebIdentity does not require the use of AWS security 443// Calling AssumeRoleWithWebIdentity does not require the use of AWS security
453// credentials. Therefore, you can distribute an application (for example, on 444// credentials. Therefore, you can distribute an application (for example, on
454// mobile devices) that requests temporary security credentials without including 445// mobile devices) that requests temporary security credentials without including
455// long-term AWS credentials in the application, and without deploying server-based 446// long-term AWS credentials in the application. You also don't need to deploy
456// proxy services that use long-term AWS credentials. Instead, the identity 447// server-based proxy services that use long-term AWS credentials. Instead,
457// of the caller is validated by using a token from the web identity provider. 448// the identity of the caller is validated by using a token from the web identity
458// For a comparison of AssumeRoleWithWebIdentity with the other APIs that produce 449// provider. For a comparison of AssumeRoleWithWebIdentity with the other API
459// temporary credentials, see Requesting Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) 450// operations that produce temporary credentials, see Requesting Temporary Security
460// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) 451// Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
452// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
461// in the IAM User Guide. 453// in the IAM User Guide.
462// 454//
463// The temporary security credentials returned by this API consist of an access 455// The temporary security credentials returned by this API consist of an access
464// key ID, a secret access key, and a security token. Applications can use these 456// key ID, a secret access key, and a security token. Applications can use these
465// temporary security credentials to sign calls to AWS service APIs. 457// temporary security credentials to sign calls to AWS service API operations.
466// 458//
467// By default, the temporary security credentials created by AssumeRoleWithWebIdentity 459// By default, the temporary security credentials created by AssumeRoleWithWebIdentity
468// last for one hour. However, you can use the optional DurationSeconds parameter 460// last for one hour. However, you can use the optional DurationSeconds parameter
@@ -470,29 +462,29 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI
470// seconds (15 minutes) up to the maximum session duration setting for the role. 462// seconds (15 minutes) up to the maximum session duration setting for the role.
471// This setting can have a value from 1 hour to 12 hours. To learn how to view 463// This setting can have a value from 1 hour to 12 hours. To learn how to view
472// the maximum value for your role, see View the Maximum Session Duration Setting 464// the maximum value for your role, see View the Maximum Session Duration Setting
473// for a Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) 465// for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)
474// in the IAM User Guide. The maximum session duration limit applies when you 466// in the IAM User Guide. The maximum session duration limit applies when you
475// use the AssumeRole* API operations or the assume-role* CLI operations but 467// use the AssumeRole* API operations or the assume-role* CLI commands. However
476// does not apply when you use those operations to create a console URL. For 468// the limit does not apply when you use those operations to create a console
477// more information, see Using IAM Roles (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) 469// URL. For more information, see Using IAM Roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)
478// in the IAM User Guide. 470// in the IAM User Guide.
479// 471//
480// The temporary security credentials created by AssumeRoleWithWebIdentity can 472// The temporary security credentials created by AssumeRoleWithWebIdentity can
481// be used to make API calls to any AWS service with the following exception: 473// be used to make API calls to any AWS service with the following exception:
482// you cannot call the STS service's GetFederationToken or GetSessionToken APIs. 474// you cannot call the STS GetFederationToken or GetSessionToken API operations.
483// 475//
484// Optionally, you can pass an IAM access policy to this operation. If you choose 476// (Optional) You can pass inline or managed session policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
485// not to pass a policy, the temporary security credentials that are returned 477// to this operation. You can pass a single JSON policy document to use as an
486// by the operation have the permissions that are defined in the access policy 478// inline session policy. You can also specify up to 10 managed policies to
487// of the role that is being assumed. If you pass a policy to this operation, 479// use as managed session policies. The plain text that you use for both inline
488// the temporary security credentials that are returned by the operation have 480// and managed session policies shouldn't exceed 2048 characters. Passing policies
489// the permissions that are allowed by both the access policy of the role that 481// to this operation returns new temporary credentials. The resulting session's
490// is being assumed, and the policy that you pass. This gives you a way to further 482// permissions are the intersection of the role's identity-based policy and
491// restrict the permissions for the resulting temporary security credentials. 483// the session policies. You can use the role's temporary credentials in subsequent
492// You cannot use the passed policy to grant permissions that are in excess 484// AWS API calls to access resources in the account that owns the role. You
493// of those allowed by the access policy of the role that is being assumed. 485// cannot use session policies to grant more permissions than those allowed
494// For more information, see Permissions for AssumeRole, AssumeRoleWithSAML, 486// by the identity-based policy of the role that is being assumed. For more
495// and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html) 487// information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
496// in the IAM User Guide. 488// in the IAM User Guide.
497// 489//
498// Before your application can call AssumeRoleWithWebIdentity, you must have 490// Before your application can call AssumeRoleWithWebIdentity, you must have
@@ -511,21 +503,19 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI
511// For more information about how to use web identity federation and the AssumeRoleWithWebIdentity 503// For more information about how to use web identity federation and the AssumeRoleWithWebIdentity
512// API, see the following resources: 504// API, see the following resources:
513// 505//
514// * Using Web Identity Federation APIs for Mobile Apps (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html) 506// * Using Web Identity Federation API Operations for Mobile Apps (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html)
515// and Federation Through a Web-based Identity Provider (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity). 507// and Federation Through a Web-based Identity Provider (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).
516// 508//
509// * Web Identity Federation Playground (https://web-identity-federation-playground.s3.amazonaws.com/index.html).
510// Walk through the process of authenticating through Login with Amazon,
511// Facebook, or Google, getting temporary security credentials, and then
512// using those credentials to make a request to AWS.
517// 513//
518// * Web Identity Federation Playground (https://web-identity-federation-playground.s3.amazonaws.com/index.html). 514// * AWS SDK for iOS Developer Guide (http://aws.amazon.com/sdkforios/) and
519// This interactive website lets you walk through the process of authenticating 515// AWS SDK for Android Developer Guide (http://aws.amazon.com/sdkforandroid/).
520// via Login with Amazon, Facebook, or Google, getting temporary security 516// These toolkits contain sample apps that show how to invoke the identity
521// credentials, and then using those credentials to make a request to AWS. 517// providers, and then how to use the information from these providers to
522// 518// get and use temporary security credentials.
523//
524// * AWS SDK for iOS (http://aws.amazon.com/sdkforios/) and AWS SDK for Android
525// (http://aws.amazon.com/sdkforandroid/). These toolkits contain sample
526// apps that show how to invoke the identity providers, and then how to use
527// the information from these providers to get and use temporary security
528// credentials.
529// 519//
530// * Web Identity Federation with Mobile Applications (http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications). 520// * Web Identity Federation with Mobile Applications (http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications).
531// This article discusses web identity federation and shows an example of 521// This article discusses web identity federation and shows an example of
@@ -575,7 +565,7 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI
575// STS is not activated in the requested region for the account that is being 565// STS is not activated in the requested region for the account that is being
576// asked to generate credentials. The account administrator must use the IAM 566// asked to generate credentials. The account administrator must use the IAM
577// console to activate STS in that region. For more information, see Activating 567// console to activate STS in that region. For more information, see Activating
578// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) 568// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
579// in the IAM User Guide. 569// in the IAM User Guide.
580// 570//
581// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity 571// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity
@@ -647,17 +637,17 @@ func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessag
647// Decodes additional information about the authorization status of a request 637// Decodes additional information about the authorization status of a request
648// from an encoded message returned in response to an AWS request. 638// from an encoded message returned in response to an AWS request.
649// 639//
650// For example, if a user is not authorized to perform an action that he or 640// For example, if a user is not authorized to perform an operation that he
651// she has requested, the request returns a Client.UnauthorizedOperation response 641// or she has requested, the request returns a Client.UnauthorizedOperation
652// (an HTTP 403 response). Some AWS actions additionally return an encoded message 642// response (an HTTP 403 response). Some AWS operations additionally return
653// that can provide details about this authorization failure. 643// an encoded message that can provide details about this authorization failure.
654// 644//
655// Only certain AWS actions return an encoded authorization message. The documentation 645// Only certain AWS operations return an encoded authorization message. The
656// for an individual action indicates whether that action returns an encoded 646// documentation for an individual operation indicates whether that operation
657// message in addition to returning an HTTP code. 647// returns an encoded message in addition to returning an HTTP code.
658// 648//
659// The message is encoded because the details of the authorization status can 649// The message is encoded because the details of the authorization status can
660// constitute privileged information that the user who requested the action 650// constitute privileged information that the user who requested the operation
661// should not see. To decode an authorization status message, a user must be 651// should not see. To decode an authorization status message, a user must be
662// granted permissions via an IAM policy to request the DecodeAuthorizationMessage 652// granted permissions via an IAM policy to request the DecodeAuthorizationMessage
663// (sts:DecodeAuthorizationMessage) action. 653// (sts:DecodeAuthorizationMessage) action.
@@ -666,7 +656,7 @@ func (c *STS) DecodeAuthorizationMessageRequest(input *DecodeAuthorizationMessag
666// 656//
667// * Whether the request was denied due to an explicit deny or due to the 657// * Whether the request was denied due to an explicit deny or due to the
668// absence of an explicit allow. For more information, see Determining Whether 658// absence of an explicit allow. For more information, see Determining Whether
669// a Request is Allowed or Denied (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) 659// a Request is Allowed or Denied (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow)
670// in the IAM User Guide. 660// in the IAM User Guide.
671// 661//
672// * The principal who made the request. 662// * The principal who made the request.
@@ -712,6 +702,102 @@ func (c *STS) DecodeAuthorizationMessageWithContext(ctx aws.Context, input *Deco
712 return out, req.Send() 702 return out, req.Send()
713} 703}
714 704
705const opGetAccessKeyInfo = "GetAccessKeyInfo"
706
707// GetAccessKeyInfoRequest generates a "aws/request.Request" representing the
708// client's request for the GetAccessKeyInfo operation. The "output" return
709// value will be populated with the request's response once the request completes
710// successfully.
711//
712// Use "Send" method on the returned Request to send the API call to the service.
713// the "output" return value is not valid until after Send returns without error.
714//
715// See GetAccessKeyInfo for more information on using the GetAccessKeyInfo
716// API call, and error handling.
717//
718// This method is useful when you want to inject custom logic or configuration
719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
720//
721//
722// // Example sending a request using the GetAccessKeyInfoRequest method.
723// req, resp := client.GetAccessKeyInfoRequest(params)
724//
725// err := req.Send()
726// if err == nil { // resp is now filled
727// fmt.Println(resp)
728// }
729//
730// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfo
731func (c *STS) GetAccessKeyInfoRequest(input *GetAccessKeyInfoInput) (req *request.Request, output *GetAccessKeyInfoOutput) {
732 op := &request.Operation{
733 Name: opGetAccessKeyInfo,
734 HTTPMethod: "POST",
735 HTTPPath: "/",
736 }
737
738 if input == nil {
739 input = &GetAccessKeyInfoInput{}
740 }
741
742 output = &GetAccessKeyInfoOutput{}
743 req = c.newRequest(op, input, output)
744 return
745}
746
747// GetAccessKeyInfo API operation for AWS Security Token Service.
748//
749// Returns the account identifier for the specified access key ID.
750//
751// Access keys consist of two parts: an access key ID (for example, AKIAIOSFODNN7EXAMPLE)
752// and a secret access key (for example, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY).
753// For more information about access keys, see Managing Access Keys for IAM
754// Users (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)
755// in the IAM User Guide.
756//
757// When you pass an access key ID to this operation, it returns the ID of the
758// AWS account to which the keys belong. Access key IDs beginning with AKIA
759// are long-term credentials for an IAM user or the AWS account root user. Access
760// key IDs beginning with ASIA are temporary credentials that are created using
761// STS operations. If the account in the response belongs to you, you can sign
762// in as the root user and review your root user access keys. Then, you can
763// pull a credentials report (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report)
764// to learn which IAM user owns the keys. To learn who requested the temporary
765// credentials for an ASIA access key, view the STS events in your CloudTrail
766// logs (https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration).
767//
768// This operation does not indicate the state of the access key. The key might
769// be active, inactive, or deleted. Active keys might not have permissions to
770// perform an operation. Providing a deleted keys might return an error that
771// the key doesn't exist.
772//
773// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
774// with awserr.Error's Code and Message methods to get detailed information about
775// the error.
776//
777// See the AWS API reference guide for AWS Security Token Service's
778// API operation GetAccessKeyInfo for usage and error information.
779// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetAccessKeyInfo
780func (c *STS) GetAccessKeyInfo(input *GetAccessKeyInfoInput) (*GetAccessKeyInfoOutput, error) {
781 req, out := c.GetAccessKeyInfoRequest(input)
782 return out, req.Send()
783}
784
785// GetAccessKeyInfoWithContext is the same as GetAccessKeyInfo with the addition of
786// the ability to pass a context and additional request options.
787//
788// See GetAccessKeyInfo for details on how to use this API operation.
789//
790// The context must be non-nil and will be used for request cancellation. If
791// the context is nil a panic will occur. In the future the SDK may create
792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
793// for more information on using Contexts.
794func (c *STS) GetAccessKeyInfoWithContext(ctx aws.Context, input *GetAccessKeyInfoInput, opts ...request.Option) (*GetAccessKeyInfoOutput, error) {
795 req, out := c.GetAccessKeyInfoRequest(input)
796 req.SetContext(ctx)
797 req.ApplyOptions(opts...)
798 return out, req.Send()
799}
800
715const opGetCallerIdentity = "GetCallerIdentity" 801const opGetCallerIdentity = "GetCallerIdentity"
716 802
717// GetCallerIdentityRequest generates a "aws/request.Request" representing the 803// GetCallerIdentityRequest generates a "aws/request.Request" representing the
@@ -834,81 +920,65 @@ func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *re
834// Returns a set of temporary security credentials (consisting of an access 920// Returns a set of temporary security credentials (consisting of an access
835// key ID, a secret access key, and a security token) for a federated user. 921// key ID, a secret access key, and a security token) for a federated user.
836// A typical use is in a proxy application that gets temporary security credentials 922// A typical use is in a proxy application that gets temporary security credentials
837// on behalf of distributed applications inside a corporate network. Because 923// on behalf of distributed applications inside a corporate network. You must
838// you must call the GetFederationToken action using the long-term security 924// call the GetFederationToken operation using the long-term security credentials
839// credentials of an IAM user, this call is appropriate in contexts where those 925// of an IAM user. As a result, this call is appropriate in contexts where those
840// credentials can be safely stored, usually in a server-based application. 926// credentials can be safely stored, usually in a server-based application.
841// For a comparison of GetFederationToken with the other APIs that produce temporary 927// For a comparison of GetFederationToken with the other API operations that
842// credentials, see Requesting Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) 928// produce temporary credentials, see Requesting Temporary Security Credentials
843// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) 929// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
930// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
844// in the IAM User Guide. 931// in the IAM User Guide.
845// 932//
846// If you are creating a mobile-based or browser-based app that can authenticate 933// You can create a mobile-based or browser-based app that can authenticate
847// users using a web identity provider like Login with Amazon, Facebook, Google, 934// users using a web identity provider like Login with Amazon, Facebook, Google,
848// or an OpenID Connect-compatible identity provider, we recommend that you 935// or an OpenID Connect-compatible identity provider. In this case, we recommend
849// use Amazon Cognito (http://aws.amazon.com/cognito/) or AssumeRoleWithWebIdentity. 936// that you use Amazon Cognito (http://aws.amazon.com/cognito/) or AssumeRoleWithWebIdentity.
850// For more information, see Federation Through a Web-based Identity Provider 937// For more information, see Federation Through a Web-based Identity Provider
851// (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity). 938// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).
852// 939//
853// The GetFederationToken action must be called by using the long-term AWS security 940// You can also call GetFederationToken using the security credentials of an
854// credentials of an IAM user. You can also call GetFederationToken using the 941// AWS account root user, but we do not recommend it. Instead, we recommend
855// security credentials of an AWS root account, but we do not recommended it. 942// that you create an IAM user for the purpose of the proxy application. Then
856// Instead, we recommend that you create an IAM user for the purpose of the 943// attach a policy to the IAM user that limits federated users to only the actions
857// proxy application and then attach a policy to the IAM user that limits federated 944// and resources that they need to access. For more information, see IAM Best
858// users to only the actions and resources that they need access to. For more 945// Practices (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)
859// information, see IAM Best Practices (http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)
860// in the IAM User Guide. 946// in the IAM User Guide.
861// 947//
862// The temporary security credentials that are obtained by using the long-term 948// The temporary credentials are valid for the specified duration, from 900
863// credentials of an IAM user are valid for the specified duration, from 900 949// seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours). The default
864// seconds (15 minutes) up to a maximium of 129600 seconds (36 hours). The default 950// is 43,200 seconds (12 hours). Temporary credentials that are obtained by
865// is 43200 seconds (12 hours). Temporary credentials that are obtained by using 951// using AWS account root user credentials have a maximum duration of 3,600
866// AWS root account credentials have a maximum duration of 3600 seconds (1 hour). 952// seconds (1 hour).
867// 953//
868// The temporary security credentials created by GetFederationToken can be used 954// The temporary security credentials created by GetFederationToken can be used
869// to make API calls to any AWS service with the following exceptions: 955// to make API calls to any AWS service with the following exceptions:
870// 956//
871// * You cannot use these credentials to call any IAM APIs. 957// * You cannot use these credentials to call any IAM API operations.
872// 958//
873// * You cannot call any STS APIs except GetCallerIdentity. 959// * You cannot call any STS API operations except GetCallerIdentity.
874// 960//
875// Permissions 961// Permissions
876// 962//
877// The permissions for the temporary security credentials returned by GetFederationToken 963// You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
878// are determined by a combination of the following: 964// to this operation. You can pass a single JSON policy document to use as an
879// 965// inline session policy. You can also specify up to 10 managed policies to
880// * The policy or policies that are attached to the IAM user whose credentials 966// use as managed session policies. The plain text that you use for both inline
881// are used to call GetFederationToken. 967// and managed session policies shouldn't exceed 2048 characters.
882// 968//
883// * The policy that is passed as a parameter in the call. 969// Though the session policy parameters are optional, if you do not pass a policy,
884// 970// then the resulting federated user session has no permissions. The only exception
885// The passed policy is attached to the temporary security credentials that 971// is when the credentials are used to access a resource that has a resource-based
886// result from the GetFederationToken API call--that is, to the federated user. 972// policy that specifically references the federated user session in the Principal
887// When the federated user makes an AWS request, AWS evaluates the policy attached 973// element of the policy. When you pass session policies, the session permissions
888// to the federated user in combination with the policy or policies attached 974// are the intersection of the IAM user policies and the session policies that
889// to the IAM user whose credentials were used to call GetFederationToken. AWS 975// you pass. This gives you a way to further restrict the permissions for a
890// allows the federated user's request only when both the federated user and 976// federated user. You cannot use session policies to grant more permissions
891// the IAM user are explicitly allowed to perform the requested action. The 977// than those that are defined in the permissions policy of the IAM user. For
892// passed policy cannot grant more permissions than those that are defined in 978// more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
893// the IAM user policy. 979// in the IAM User Guide. For information about using GetFederationToken to
894// 980// create temporary security credentials, see GetFederationToken—Federation
895// A typical use case is that the permissions of the IAM user whose credentials 981// Through a Custom Identity Broker (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken).
896// are used to call GetFederationToken are designed to allow access to all the
897// actions and resources that any federated user will need. Then, for individual
898// users, you pass a policy to the operation that scopes down the permissions
899// to a level that's appropriate to that individual user, using a policy that
900// allows only a subset of permissions that are granted to the IAM user.
901//
902// If you do not pass a policy, the resulting temporary security credentials
903// have no effective permissions. The only exception is when the temporary security
904// credentials are used to access a resource that has a resource-based policy
905// that specifically allows the federated user to access the resource.
906//
907// For more information about how permissions work, see Permissions for GetFederationToken
908// (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html).
909// For information about using GetFederationToken to create temporary security
910// credentials, see GetFederationToken—Federation Through a Custom Identity
911// Broker (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken).
912// 982//
913// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
914// with awserr.Error's Code and Message methods to get detailed information about 984// with awserr.Error's Code and Message methods to get detailed information about
@@ -931,7 +1001,7 @@ func (c *STS) GetFederationTokenRequest(input *GetFederationTokenInput) (req *re
931// STS is not activated in the requested region for the account that is being 1001// STS is not activated in the requested region for the account that is being
932// asked to generate credentials. The account administrator must use the IAM 1002// asked to generate credentials. The account administrator must use the IAM
933// console to activate STS in that region. For more information, see Activating 1003// console to activate STS in that region. For more information, see Activating
934// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) 1004// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
935// in the IAM User Guide. 1005// in the IAM User Guide.
936// 1006//
937// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken 1007// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken
@@ -1003,48 +1073,47 @@ func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request.
1003// Returns a set of temporary credentials for an AWS account or IAM user. The 1073// Returns a set of temporary credentials for an AWS account or IAM user. The
1004// credentials consist of an access key ID, a secret access key, and a security 1074// credentials consist of an access key ID, a secret access key, and a security
1005// token. Typically, you use GetSessionToken if you want to use MFA to protect 1075// token. Typically, you use GetSessionToken if you want to use MFA to protect
1006// programmatic calls to specific AWS APIs like Amazon EC2 StopInstances. MFA-enabled 1076// programmatic calls to specific AWS API operations like Amazon EC2 StopInstances.
1007// IAM users would need to call GetSessionToken and submit an MFA code that 1077// MFA-enabled IAM users would need to call GetSessionToken and submit an MFA
1008// is associated with their MFA device. Using the temporary security credentials 1078// code that is associated with their MFA device. Using the temporary security
1009// that are returned from the call, IAM users can then make programmatic calls 1079// credentials that are returned from the call, IAM users can then make programmatic
1010// to APIs that require MFA authentication. If you do not supply a correct MFA 1080// calls to API operations that require MFA authentication. If you do not supply
1011// code, then the API returns an access denied error. For a comparison of GetSessionToken 1081// a correct MFA code, then the API returns an access denied error. For a comparison
1012// with the other APIs that produce temporary credentials, see Requesting Temporary 1082// of GetSessionToken with the other API operations that produce temporary credentials,
1013// Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) 1083// see Requesting Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)
1014// and Comparing the AWS STS APIs (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison) 1084// and Comparing the AWS STS API operations (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)
1015// in the IAM User Guide. 1085// in the IAM User Guide.
1016// 1086//
1017// The GetSessionToken action must be called by using the long-term AWS security 1087// The GetSessionToken operation must be called by using the long-term AWS security
1018// credentials of the AWS account or an IAM user. Credentials that are created 1088// credentials of the AWS account root user or an IAM user. Credentials that
1019// by IAM users are valid for the duration that you specify, from 900 seconds 1089// are created by IAM users are valid for the duration that you specify. This
1020// (15 minutes) up to a maximum of 129600 seconds (36 hours), with a default 1090// duration can range from 900 seconds (15 minutes) up to a maximum of 129,600
1021// of 43200 seconds (12 hours); credentials that are created by using account 1091// seconds (36 hours), with a default of 43,200 seconds (12 hours). Credentials
1022// credentials can range from 900 seconds (15 minutes) up to a maximum of 3600 1092// based on account credentials can range from 900 seconds (15 minutes) up to
1023// seconds (1 hour), with a default of 1 hour. 1093// 3,600 seconds (1 hour), with a default of 1 hour.
1024// 1094//
1025// The temporary security credentials created by GetSessionToken can be used 1095// The temporary security credentials created by GetSessionToken can be used
1026// to make API calls to any AWS service with the following exceptions: 1096// to make API calls to any AWS service with the following exceptions:
1027// 1097//
1028// * You cannot call any IAM APIs unless MFA authentication information is 1098// * You cannot call any IAM API operations unless MFA authentication information
1029// included in the request. 1099// is included in the request.
1030// 1100//
1031// * You cannot call any STS API exceptAssumeRole or GetCallerIdentity. 1101// * You cannot call any STS API except AssumeRole or GetCallerIdentity.
1032// 1102//
1033// We recommend that you do not call GetSessionToken with root account credentials. 1103// We recommend that you do not call GetSessionToken with AWS account root user
1034// Instead, follow our best practices (http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users) 1104// credentials. Instead, follow our best practices (https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users)
1035// by creating one or more IAM users, giving them the necessary permissions, 1105// by creating one or more IAM users, giving them the necessary permissions,
1036// and using IAM users for everyday interaction with AWS. 1106// and using IAM users for everyday interaction with AWS.
1037// 1107//
1038// The permissions associated with the temporary security credentials returned 1108// The credentials that are returned by GetSessionToken are based on permissions
1039// by GetSessionToken are based on the permissions associated with account or 1109// associated with the user whose credentials were used to call the operation.
1040// IAM user whose credentials are used to call the action. If GetSessionToken 1110// If GetSessionToken is called using AWS account root user credentials, the
1041// is called using root account credentials, the temporary credentials have 1111// temporary credentials have root user permissions. Similarly, if GetSessionToken
1042// root account permissions. Similarly, if GetSessionToken is called using the 1112// is called using the credentials of an IAM user, the temporary credentials
1043// credentials of an IAM user, the temporary credentials have the same permissions 1113// have the same permissions as the IAM user.
1044// as the IAM user.
1045// 1114//
1046// For more information about using GetSessionToken to create temporary credentials, 1115// For more information about using GetSessionToken to create temporary credentials,
1047// go to Temporary Credentials for Users in Untrusted Environments (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken) 1116// go to Temporary Credentials for Users in Untrusted Environments (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken)
1048// in the IAM User Guide. 1117// in the IAM User Guide.
1049// 1118//
1050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1119// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1059,7 +1128,7 @@ func (c *STS) GetSessionTokenRequest(input *GetSessionTokenInput) (req *request.
1059// STS is not activated in the requested region for the account that is being 1128// STS is not activated in the requested region for the account that is being
1060// asked to generate credentials. The account administrator must use the IAM 1129// asked to generate credentials. The account administrator must use the IAM
1061// console to activate STS in that region. For more information, see Activating 1130// console to activate STS in that region. For more information, see Activating
1062// and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) 1131// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
1063// in the IAM User Guide. 1132// in the IAM User Guide.
1064// 1133//
1065// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken 1134// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken
@@ -1094,7 +1163,7 @@ type AssumeRoleInput struct {
1094 // a session duration of 12 hours, but your administrator set the maximum session 1163 // a session duration of 12 hours, but your administrator set the maximum session
1095 // duration to 6 hours, your operation fails. To learn how to view the maximum 1164 // duration to 6 hours, your operation fails. To learn how to view the maximum
1096 // value for your role, see View the Maximum Session Duration Setting for a 1165 // value for your role, see View the Maximum Session Duration Setting for a
1097 // Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) 1166 // Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)
1098 // in the IAM User Guide. 1167 // in the IAM User Guide.
1099 // 1168 //
1100 // By default, the value is set to 3600 seconds. 1169 // By default, the value is set to 3600 seconds.
@@ -1104,51 +1173,77 @@ type AssumeRoleInput struct {
1104 // to the federation endpoint for a console sign-in token takes a SessionDuration 1173 // to the federation endpoint for a console sign-in token takes a SessionDuration
1105 // parameter that specifies the maximum length of the console session. For more 1174 // parameter that specifies the maximum length of the console session. For more
1106 // information, see Creating a URL that Enables Federated Users to Access the 1175 // information, see Creating a URL that Enables Federated Users to Access the
1107 // AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) 1176 // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)
1108 // in the IAM User Guide. 1177 // in the IAM User Guide.
1109 DurationSeconds *int64 `min:"900" type:"integer"` 1178 DurationSeconds *int64 `min:"900" type:"integer"`
1110 1179
1111 // A unique identifier that is used by third parties when assuming roles in 1180 // A unique identifier that might be required when you assume a role in another
1112 // their customers' accounts. For each role that the third party can assume, 1181 // account. If the administrator of the account to which the role belongs provided
1113 // they should instruct their customers to ensure the role's trust policy checks 1182 // you with an external ID, then provide that value in the ExternalId parameter.
1114 // for the external ID that the third party generated. Each time the third party 1183 // This value can be any string, such as a passphrase or account number. A cross-account
1115 // assumes the role, they should pass the customer's external ID. The external 1184 // role is usually set up to trust everyone in an account. Therefore, the administrator
1116 // ID is useful in order to help third parties bind a role to the customer who 1185 // of the trusting account might send an external ID to the administrator of
1117 // created it. For more information about the external ID, see How to Use an 1186 // the trusted account. That way, only someone with the ID can assume the role,
1118 // External ID When Granting Access to Your AWS Resources to a Third Party (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) 1187 // rather than everyone in the account. For more information about the external
1188 // ID, see How to Use an External ID When Granting Access to Your AWS Resources
1189 // to a Third Party (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)
1119 // in the IAM User Guide. 1190 // in the IAM User Guide.
1120 // 1191 //
1121 // The regex used to validated this parameter is a string of characters consisting 1192 // The regex used to validate this parameter is a string of characters consisting
1122 // of upper- and lower-case alphanumeric characters with no spaces. You can 1193 // of upper- and lower-case alphanumeric characters with no spaces. You can
1123 // also include underscores or any of the following characters: =,.@:/- 1194 // also include underscores or any of the following characters: =,.@:/-
1124 ExternalId *string `min:"2" type:"string"` 1195 ExternalId *string `min:"2" type:"string"`
1125 1196
1126 // An IAM policy in JSON format. 1197 // An IAM policy in JSON format that you want to use as an inline session policy.
1127 // 1198 //
1128 // This parameter is optional. If you pass a policy, the temporary security 1199 // This parameter is optional. Passing policies to this operation returns new
1129 // credentials that are returned by the operation have the permissions that 1200 // temporary credentials. The resulting session's permissions are the intersection
1130 // are allowed by both (the intersection of) the access policy of the role that 1201 // of the role's identity-based policy and the session policies. You can use
1131 // is being assumed, and the policy that you pass. This gives you a way to further 1202 // the role's temporary credentials in subsequent AWS API calls to access resources
1132 // restrict the permissions for the resulting temporary security credentials. 1203 // in the account that owns the role. You cannot use session policies to grant
1133 // You cannot use the passed policy to grant permissions that are in excess 1204 // more permissions than those allowed by the identity-based policy of the role
1134 // of those allowed by the access policy of the role that is being assumed. 1205 // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
1135 // For more information, see Permissions for AssumeRole, AssumeRoleWithSAML,
1136 // and AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
1137 // in the IAM User Guide. 1206 // in the IAM User Guide.
1138 // 1207 //
1139 // The format for this parameter, as described by its regex pattern, is a string 1208 // The plain text that you use for both inline and managed session policies
1140 // of characters up to 2048 characters in length. The characters can be any 1209 // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII
1141 // ASCII character from the space character to the end of the valid character 1210 // character from the space character to the end of the valid character list
1142 // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A), 1211 // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A),
1143 // and carriage return (\u000D) characters. 1212 // and carriage return (\u000D) characters.
1144 // 1213 //
1145 // The policy plain text must be 2048 bytes or shorter. However, an internal 1214 // The characters in this parameter count towards the 2048 character session
1146 // conversion compresses it into a packed binary format with a separate limit. 1215 // policy guideline. However, an AWS conversion compresses the session policies
1147 // The PackedPolicySize response element indicates by percentage how close to 1216 // into a packed binary format that has a separate limit. This is the enforced
1148 // the upper size limit the policy is, with 100% equaling the maximum allowed 1217 // limit. The PackedPolicySize response element indicates by percentage how
1149 // size. 1218 // close the policy is to the upper size limit.
1150 Policy *string `min:"1" type:"string"` 1219 Policy *string `min:"1" type:"string"`
1151 1220
1221 // The Amazon Resource Names (ARNs) of the IAM managed policies that you want
1222 // to use as managed session policies. The policies must exist in the same account
1223 // as the role.
1224 //
1225 // This parameter is optional. You can provide up to 10 managed policy ARNs.
1226 // However, the plain text that you use for both inline and managed session
1227 // policies shouldn't exceed 2048 characters. For more information about ARNs,
1228 // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
1229 // in the AWS General Reference.
1230 //
1231 // The characters in this parameter count towards the 2048 character session
1232 // policy guideline. However, an AWS conversion compresses the session policies
1233 // into a packed binary format that has a separate limit. This is the enforced
1234 // limit. The PackedPolicySize response element indicates by percentage how
1235 // close the policy is to the upper size limit.
1236 //
1237 // Passing policies to this operation returns new temporary credentials. The
1238 // resulting session's permissions are the intersection of the role's identity-based
1239 // policy and the session policies. You can use the role's temporary credentials
1240 // in subsequent AWS API calls to access resources in the account that owns
1241 // the role. You cannot use session policies to grant more permissions than
1242 // those allowed by the identity-based policy of the role that is being assumed.
1243 // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
1244 // in the IAM User Guide.
1245 PolicyArns []*PolicyDescriptorType `type:"list"`
1246
1152 // The Amazon Resource Name (ARN) of the role to assume. 1247 // The Amazon Resource Name (ARN) of the role to assume.
1153 // 1248 //
1154 // RoleArn is a required field 1249 // RoleArn is a required field
@@ -1161,8 +1256,8 @@ type AssumeRoleInput struct {
1161 // scenarios, the role session name is visible to, and can be logged by the 1256 // scenarios, the role session name is visible to, and can be logged by the
1162 // account that owns the role. The role session name is also used in the ARN 1257 // account that owns the role. The role session name is also used in the ARN
1163 // of the assumed role principal. This means that subsequent cross-account API 1258 // of the assumed role principal. This means that subsequent cross-account API
1164 // requests using the temporary security credentials will expose the role session 1259 // requests that use the temporary security credentials will expose the role
1165 // name to the external account in their CloudTrail logs. 1260 // session name to the external account in their AWS CloudTrail logs.
1166 // 1261 //
1167 // The regex used to validate this parameter is a string of characters consisting 1262 // The regex used to validate this parameter is a string of characters consisting
1168 // of upper- and lower-case alphanumeric characters with no spaces. You can 1263 // of upper- and lower-case alphanumeric characters with no spaces. You can
@@ -1232,6 +1327,16 @@ func (s *AssumeRoleInput) Validate() error {
1232 if s.TokenCode != nil && len(*s.TokenCode) < 6 { 1327 if s.TokenCode != nil && len(*s.TokenCode) < 6 {
1233 invalidParams.Add(request.NewErrParamMinLen("TokenCode", 6)) 1328 invalidParams.Add(request.NewErrParamMinLen("TokenCode", 6))
1234 } 1329 }
1330 if s.PolicyArns != nil {
1331 for i, v := range s.PolicyArns {
1332 if v == nil {
1333 continue
1334 }
1335 if err := v.Validate(); err != nil {
1336 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams))
1337 }
1338 }
1339 }
1235 1340
1236 if invalidParams.Len() > 0 { 1341 if invalidParams.Len() > 0 {
1237 return invalidParams 1342 return invalidParams
@@ -1257,6 +1362,12 @@ func (s *AssumeRoleInput) SetPolicy(v string) *AssumeRoleInput {
1257 return s 1362 return s
1258} 1363}
1259 1364
1365// SetPolicyArns sets the PolicyArns field's value.
1366func (s *AssumeRoleInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleInput {
1367 s.PolicyArns = v
1368 return s
1369}
1370
1260// SetRoleArn sets the RoleArn field's value. 1371// SetRoleArn sets the RoleArn field's value.
1261func (s *AssumeRoleInput) SetRoleArn(v string) *AssumeRoleInput { 1372func (s *AssumeRoleInput) SetRoleArn(v string) *AssumeRoleInput {
1262 s.RoleArn = &v 1373 s.RoleArn = &v
@@ -1296,10 +1407,8 @@ type AssumeRoleOutput struct {
1296 // The temporary security credentials, which include an access key ID, a secret 1407 // The temporary security credentials, which include an access key ID, a secret
1297 // access key, and a security (or session) token. 1408 // access key, and a security (or session) token.
1298 // 1409 //
1299 // Note: The size of the security token that STS APIs return is not fixed. We 1410 // The size of the security token that STS API operations return is not fixed.
1300 // strongly recommend that you make no assumptions about the maximum size. As 1411 // We strongly recommend that you make no assumptions about the maximum size.
1301 // of this writing, the typical size is less than 4096 bytes, but that can vary.
1302 // Also, future updates to AWS might require larger sizes.
1303 Credentials *Credentials `type:"structure"` 1412 Credentials *Credentials `type:"structure"`
1304 1413
1305 // A percentage value that indicates the size of the policy in packed form. 1414 // A percentage value that indicates the size of the policy in packed form.
@@ -1349,7 +1458,7 @@ type AssumeRoleWithSAMLInput struct {
1349 // specify a session duration of 12 hours, but your administrator set the maximum 1458 // specify a session duration of 12 hours, but your administrator set the maximum
1350 // session duration to 6 hours, your operation fails. To learn how to view the 1459 // session duration to 6 hours, your operation fails. To learn how to view the
1351 // maximum value for your role, see View the Maximum Session Duration Setting 1460 // maximum value for your role, see View the Maximum Session Duration Setting
1352 // for a Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) 1461 // for a Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)
1353 // in the IAM User Guide. 1462 // in the IAM User Guide.
1354 // 1463 //
1355 // By default, the value is set to 3600 seconds. 1464 // By default, the value is set to 3600 seconds.
@@ -1359,36 +1468,60 @@ type AssumeRoleWithSAMLInput struct {
1359 // to the federation endpoint for a console sign-in token takes a SessionDuration 1468 // to the federation endpoint for a console sign-in token takes a SessionDuration
1360 // parameter that specifies the maximum length of the console session. For more 1469 // parameter that specifies the maximum length of the console session. For more
1361 // information, see Creating a URL that Enables Federated Users to Access the 1470 // information, see Creating a URL that Enables Federated Users to Access the
1362 // AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) 1471 // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)
1363 // in the IAM User Guide. 1472 // in the IAM User Guide.
1364 DurationSeconds *int64 `min:"900" type:"integer"` 1473 DurationSeconds *int64 `min:"900" type:"integer"`
1365 1474
1366 // An IAM policy in JSON format. 1475 // An IAM policy in JSON format that you want to use as an inline session policy.
1367 // 1476 //
1368 // The policy parameter is optional. If you pass a policy, the temporary security 1477 // This parameter is optional. Passing policies to this operation returns new
1369 // credentials that are returned by the operation have the permissions that 1478 // temporary credentials. The resulting session's permissions are the intersection
1370 // are allowed by both the access policy of the role that is being assumed, 1479 // of the role's identity-based policy and the session policies. You can use
1371 // and the policy that you pass. This gives you a way to further restrict the 1480 // the role's temporary credentials in subsequent AWS API calls to access resources
1372 // permissions for the resulting temporary security credentials. You cannot 1481 // in the account that owns the role. You cannot use session policies to grant
1373 // use the passed policy to grant permissions that are in excess of those allowed 1482 // more permissions than those allowed by the identity-based policy of the role
1374 // by the access policy of the role that is being assumed. For more information, 1483 // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
1375 // Permissions for AssumeRole, AssumeRoleWithSAML, and AssumeRoleWithWebIdentity
1376 // (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
1377 // in the IAM User Guide. 1484 // in the IAM User Guide.
1378 // 1485 //
1379 // The format for this parameter, as described by its regex pattern, is a string 1486 // The plain text that you use for both inline and managed session policies
1380 // of characters up to 2048 characters in length. The characters can be any 1487 // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII
1381 // ASCII character from the space character to the end of the valid character 1488 // character from the space character to the end of the valid character list
1382 // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A), 1489 // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A),
1383 // and carriage return (\u000D) characters. 1490 // and carriage return (\u000D) characters.
1384 // 1491 //
1385 // The policy plain text must be 2048 bytes or shorter. However, an internal 1492 // The characters in this parameter count towards the 2048 character session
1386 // conversion compresses it into a packed binary format with a separate limit. 1493 // policy guideline. However, an AWS conversion compresses the session policies
1387 // The PackedPolicySize response element indicates by percentage how close to 1494 // into a packed binary format that has a separate limit. This is the enforced
1388 // the upper size limit the policy is, with 100% equaling the maximum allowed 1495 // limit. The PackedPolicySize response element indicates by percentage how
1389 // size. 1496 // close the policy is to the upper size limit.
1390 Policy *string `min:"1" type:"string"` 1497 Policy *string `min:"1" type:"string"`
1391 1498
1499 // The Amazon Resource Names (ARNs) of the IAM managed policies that you want
1500 // to use as managed session policies. The policies must exist in the same account
1501 // as the role.
1502 //
1503 // This parameter is optional. You can provide up to 10 managed policy ARNs.
1504 // However, the plain text that you use for both inline and managed session
1505 // policies shouldn't exceed 2048 characters. For more information about ARNs,
1506 // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
1507 // in the AWS General Reference.
1508 //
1509 // The characters in this parameter count towards the 2048 character session
1510 // policy guideline. However, an AWS conversion compresses the session policies
1511 // into a packed binary format that has a separate limit. This is the enforced
1512 // limit. The PackedPolicySize response element indicates by percentage how
1513 // close the policy is to the upper size limit.
1514 //
1515 // Passing policies to this operation returns new temporary credentials. The
1516 // resulting session's permissions are the intersection of the role's identity-based
1517 // policy and the session policies. You can use the role's temporary credentials
1518 // in subsequent AWS API calls to access resources in the account that owns
1519 // the role. You cannot use session policies to grant more permissions than
1520 // those allowed by the identity-based policy of the role that is being assumed.
1521 // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
1522 // in the IAM User Guide.
1523 PolicyArns []*PolicyDescriptorType `type:"list"`
1524
1392 // The Amazon Resource Name (ARN) of the SAML provider in IAM that describes 1525 // The Amazon Resource Name (ARN) of the SAML provider in IAM that describes
1393 // the IdP. 1526 // the IdP.
1394 // 1527 //
@@ -1402,8 +1535,8 @@ type AssumeRoleWithSAMLInput struct {
1402 1535
1403 // The base-64 encoded SAML authentication response provided by the IdP. 1536 // The base-64 encoded SAML authentication response provided by the IdP.
1404 // 1537 //
1405 // For more information, see Configuring a Relying Party and Adding Claims (http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html) 1538 // For more information, see Configuring a Relying Party and Adding Claims (https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html)
1406 // in the Using IAM guide. 1539 // in the IAM User Guide.
1407 // 1540 //
1408 // SAMLAssertion is a required field 1541 // SAMLAssertion is a required field
1409 SAMLAssertion *string `min:"4" type:"string" required:"true"` 1542 SAMLAssertion *string `min:"4" type:"string" required:"true"`
@@ -1446,6 +1579,16 @@ func (s *AssumeRoleWithSAMLInput) Validate() error {
1446 if s.SAMLAssertion != nil && len(*s.SAMLAssertion) < 4 { 1579 if s.SAMLAssertion != nil && len(*s.SAMLAssertion) < 4 {
1447 invalidParams.Add(request.NewErrParamMinLen("SAMLAssertion", 4)) 1580 invalidParams.Add(request.NewErrParamMinLen("SAMLAssertion", 4))
1448 } 1581 }
1582 if s.PolicyArns != nil {
1583 for i, v := range s.PolicyArns {
1584 if v == nil {
1585 continue
1586 }
1587 if err := v.Validate(); err != nil {
1588 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams))
1589 }
1590 }
1591 }
1449 1592
1450 if invalidParams.Len() > 0 { 1593 if invalidParams.Len() > 0 {
1451 return invalidParams 1594 return invalidParams
@@ -1465,6 +1608,12 @@ func (s *AssumeRoleWithSAMLInput) SetPolicy(v string) *AssumeRoleWithSAMLInput {
1465 return s 1608 return s
1466} 1609}
1467 1610
1611// SetPolicyArns sets the PolicyArns field's value.
1612func (s *AssumeRoleWithSAMLInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleWithSAMLInput {
1613 s.PolicyArns = v
1614 return s
1615}
1616
1468// SetPrincipalArn sets the PrincipalArn field's value. 1617// SetPrincipalArn sets the PrincipalArn field's value.
1469func (s *AssumeRoleWithSAMLInput) SetPrincipalArn(v string) *AssumeRoleWithSAMLInput { 1618func (s *AssumeRoleWithSAMLInput) SetPrincipalArn(v string) *AssumeRoleWithSAMLInput {
1470 s.PrincipalArn = &v 1619 s.PrincipalArn = &v
@@ -1499,10 +1648,8 @@ type AssumeRoleWithSAMLOutput struct {
1499 // The temporary security credentials, which include an access key ID, a secret 1648 // The temporary security credentials, which include an access key ID, a secret
1500 // access key, and a security (or session) token. 1649 // access key, and a security (or session) token.
1501 // 1650 //
1502 // Note: The size of the security token that STS APIs return is not fixed. We 1651 // The size of the security token that STS API operations return is not fixed.
1503 // strongly recommend that you make no assumptions about the maximum size. As 1652 // We strongly recommend that you make no assumptions about the maximum size.
1504 // of this writing, the typical size is less than 4096 bytes, but that can vary.
1505 // Also, future updates to AWS might require larger sizes.
1506 Credentials *Credentials `type:"structure"` 1653 Credentials *Credentials `type:"structure"`
1507 1654
1508 // The value of the Issuer element of the SAML assertion. 1655 // The value of the Issuer element of the SAML assertion.
@@ -1606,7 +1753,7 @@ type AssumeRoleWithWebIdentityInput struct {
1606 // a session duration of 12 hours, but your administrator set the maximum session 1753 // a session duration of 12 hours, but your administrator set the maximum session
1607 // duration to 6 hours, your operation fails. To learn how to view the maximum 1754 // duration to 6 hours, your operation fails. To learn how to view the maximum
1608 // value for your role, see View the Maximum Session Duration Setting for a 1755 // value for your role, see View the Maximum Session Duration Setting for a
1609 // Role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session) 1756 // Role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)
1610 // in the IAM User Guide. 1757 // in the IAM User Guide.
1611 // 1758 //
1612 // By default, the value is set to 3600 seconds. 1759 // By default, the value is set to 3600 seconds.
@@ -1616,35 +1763,60 @@ type AssumeRoleWithWebIdentityInput struct {
1616 // to the federation endpoint for a console sign-in token takes a SessionDuration 1763 // to the federation endpoint for a console sign-in token takes a SessionDuration
1617 // parameter that specifies the maximum length of the console session. For more 1764 // parameter that specifies the maximum length of the console session. For more
1618 // information, see Creating a URL that Enables Federated Users to Access the 1765 // information, see Creating a URL that Enables Federated Users to Access the
1619 // AWS Management Console (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html) 1766 // AWS Management Console (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)
1620 // in the IAM User Guide. 1767 // in the IAM User Guide.
1621 DurationSeconds *int64 `min:"900" type:"integer"` 1768 DurationSeconds *int64 `min:"900" type:"integer"`
1622 1769
1623 // An IAM policy in JSON format. 1770 // An IAM policy in JSON format that you want to use as an inline session policy.
1624 // 1771 //
1625 // The policy parameter is optional. If you pass a policy, the temporary security 1772 // This parameter is optional. Passing policies to this operation returns new
1626 // credentials that are returned by the operation have the permissions that 1773 // temporary credentials. The resulting session's permissions are the intersection
1627 // are allowed by both the access policy of the role that is being assumed, 1774 // of the role's identity-based policy and the session policies. You can use
1628 // and the policy that you pass. This gives you a way to further restrict the 1775 // the role's temporary credentials in subsequent AWS API calls to access resources
1629 // permissions for the resulting temporary security credentials. You cannot 1776 // in the account that owns the role. You cannot use session policies to grant
1630 // use the passed policy to grant permissions that are in excess of those allowed 1777 // more permissions than those allowed by the identity-based policy of the role
1631 // by the access policy of the role that is being assumed. For more information, 1778 // that is being assumed. For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
1632 // see Permissions for AssumeRoleWithWebIdentity (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html)
1633 // in the IAM User Guide. 1779 // in the IAM User Guide.
1634 // 1780 //
1635 // The format for this parameter, as described by its regex pattern, is a string 1781 // The plain text that you use for both inline and managed session policies
1636 // of characters up to 2048 characters in length. The characters can be any 1782 // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII
1637 // ASCII character from the space character to the end of the valid character 1783 // character from the space character to the end of the valid character list
1638 // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A), 1784 // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A),
1639 // and carriage return (\u000D) characters. 1785 // and carriage return (\u000D) characters.
1640 // 1786 //
1641 // The policy plain text must be 2048 bytes or shorter. However, an internal 1787 // The characters in this parameter count towards the 2048 character session
1642 // conversion compresses it into a packed binary format with a separate limit. 1788 // policy guideline. However, an AWS conversion compresses the session policies
1643 // The PackedPolicySize response element indicates by percentage how close to 1789 // into a packed binary format that has a separate limit. This is the enforced
1644 // the upper size limit the policy is, with 100% equaling the maximum allowed 1790 // limit. The PackedPolicySize response element indicates by percentage how
1645 // size. 1791 // close the policy is to the upper size limit.
1646 Policy *string `min:"1" type:"string"` 1792 Policy *string `min:"1" type:"string"`
1647 1793
1794 // The Amazon Resource Names (ARNs) of the IAM managed policies that you want
1795 // to use as managed session policies. The policies must exist in the same account
1796 // as the role.
1797 //
1798 // This parameter is optional. You can provide up to 10 managed policy ARNs.
1799 // However, the plain text that you use for both inline and managed session
1800 // policies shouldn't exceed 2048 characters. For more information about ARNs,
1801 // see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
1802 // in the AWS General Reference.
1803 //
1804 // The characters in this parameter count towards the 2048 character session
1805 // policy guideline. However, an AWS conversion compresses the session policies
1806 // into a packed binary format that has a separate limit. This is the enforced
1807 // limit. The PackedPolicySize response element indicates by percentage how
1808 // close the policy is to the upper size limit.
1809 //
1810 // Passing policies to this operation returns new temporary credentials. The
1811 // resulting session's permissions are the intersection of the role's identity-based
1812 // policy and the session policies. You can use the role's temporary credentials
1813 // in subsequent AWS API calls to access resources in the account that owns
1814 // the role. You cannot use session policies to grant more permissions than
1815 // those allowed by the identity-based policy of the role that is being assumed.
1816 // For more information, see Session Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
1817 // in the IAM User Guide.
1818 PolicyArns []*PolicyDescriptorType `type:"list"`
1819
1648 // The fully qualified host component of the domain name of the identity provider. 1820 // The fully qualified host component of the domain name of the identity provider.
1649 // 1821 //
1650 // Specify this value only for OAuth 2.0 access tokens. Currently www.amazon.com 1822 // Specify this value only for OAuth 2.0 access tokens. Currently www.amazon.com
@@ -1721,6 +1893,16 @@ func (s *AssumeRoleWithWebIdentityInput) Validate() error {
1721 if s.WebIdentityToken != nil && len(*s.WebIdentityToken) < 4 { 1893 if s.WebIdentityToken != nil && len(*s.WebIdentityToken) < 4 {
1722 invalidParams.Add(request.NewErrParamMinLen("WebIdentityToken", 4)) 1894 invalidParams.Add(request.NewErrParamMinLen("WebIdentityToken", 4))
1723 } 1895 }
1896 if s.PolicyArns != nil {
1897 for i, v := range s.PolicyArns {
1898 if v == nil {
1899 continue
1900 }
1901 if err := v.Validate(); err != nil {
1902 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams))
1903 }
1904 }
1905 }
1724 1906
1725 if invalidParams.Len() > 0 { 1907 if invalidParams.Len() > 0 {
1726 return invalidParams 1908 return invalidParams
@@ -1740,6 +1922,12 @@ func (s *AssumeRoleWithWebIdentityInput) SetPolicy(v string) *AssumeRoleWithWebI
1740 return s 1922 return s
1741} 1923}
1742 1924
1925// SetPolicyArns sets the PolicyArns field's value.
1926func (s *AssumeRoleWithWebIdentityInput) SetPolicyArns(v []*PolicyDescriptorType) *AssumeRoleWithWebIdentityInput {
1927 s.PolicyArns = v
1928 return s
1929}
1930
1743// SetProviderId sets the ProviderId field's value. 1931// SetProviderId sets the ProviderId field's value.
1744func (s *AssumeRoleWithWebIdentityInput) SetProviderId(v string) *AssumeRoleWithWebIdentityInput { 1932func (s *AssumeRoleWithWebIdentityInput) SetProviderId(v string) *AssumeRoleWithWebIdentityInput {
1745 s.ProviderId = &v 1933 s.ProviderId = &v
@@ -1784,10 +1972,8 @@ type AssumeRoleWithWebIdentityOutput struct {
1784 // The temporary security credentials, which include an access key ID, a secret 1972 // The temporary security credentials, which include an access key ID, a secret
1785 // access key, and a security token. 1973 // access key, and a security token.
1786 // 1974 //
1787 // Note: The size of the security token that STS APIs return is not fixed. We 1975 // The size of the security token that STS API operations return is not fixed.
1788 // strongly recommend that you make no assumptions about the maximum size. As 1976 // We strongly recommend that you make no assumptions about the maximum size.
1789 // of this writing, the typical size is less than 4096 bytes, but that can vary.
1790 // Also, future updates to AWS might require larger sizes.
1791 Credentials *Credentials `type:"structure"` 1977 Credentials *Credentials `type:"structure"`
1792 1978
1793 // A percentage value that indicates the size of the policy in packed form. 1979 // A percentage value that indicates the size of the policy in packed form.
@@ -1796,7 +1982,7 @@ type AssumeRoleWithWebIdentityOutput struct {
1796 PackedPolicySize *int64 `type:"integer"` 1982 PackedPolicySize *int64 `type:"integer"`
1797 1983
1798 // The issuing authority of the web identity token presented. For OpenID Connect 1984 // The issuing authority of the web identity token presented. For OpenID Connect
1799 // ID Tokens this contains the value of the iss field. For OAuth 2.0 access 1985 // ID tokens, this contains the value of the iss field. For OAuth 2.0 access
1800 // tokens, this contains the value of the ProviderId parameter that was passed 1986 // tokens, this contains the value of the ProviderId parameter that was passed
1801 // in the AssumeRoleWithWebIdentity request. 1987 // in the AssumeRoleWithWebIdentity request.
1802 Provider *string `type:"string"` 1988 Provider *string `type:"string"`
@@ -1863,7 +2049,7 @@ type AssumedRoleUser struct {
1863 2049
1864 // The ARN of the temporary security credentials that are returned from the 2050 // The ARN of the temporary security credentials that are returned from the
1865 // AssumeRole action. For more information about ARNs and how to use them in 2051 // AssumeRole action. For more information about ARNs and how to use them in
1866 // policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) 2052 // policies, see IAM Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
1867 // in Using IAM. 2053 // in Using IAM.
1868 // 2054 //
1869 // Arn is a required field 2055 // Arn is a required field
@@ -2031,7 +2217,7 @@ type FederatedUser struct {
2031 2217
2032 // The ARN that specifies the federated user that is associated with the credentials. 2218 // The ARN that specifies the federated user that is associated with the credentials.
2033 // For more information about ARNs and how to use them in policies, see IAM 2219 // For more information about ARNs and how to use them in policies, see IAM
2034 // Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) 2220 // Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
2035 // in Using IAM. 2221 // in Using IAM.
2036 // 2222 //
2037 // Arn is a required field 2223 // Arn is a required field
@@ -2066,6 +2252,73 @@ func (s *FederatedUser) SetFederatedUserId(v string) *FederatedUser {
2066 return s 2252 return s
2067} 2253}
2068 2254
2255type GetAccessKeyInfoInput struct {
2256 _ struct{} `type:"structure"`
2257
2258 // The identifier of an access key.
2259 //
2260 // This parameter allows (through its regex pattern) a string of characters
2261 // that can consist of any upper- or lowercased letter or digit.
2262 //
2263 // AccessKeyId is a required field
2264 AccessKeyId *string `min:"16" type:"string" required:"true"`
2265}
2266
2267// String returns the string representation
2268func (s GetAccessKeyInfoInput) String() string {
2269 return awsutil.Prettify(s)
2270}
2271
2272// GoString returns the string representation
2273func (s GetAccessKeyInfoInput) GoString() string {
2274 return s.String()
2275}
2276
2277// Validate inspects the fields of the type to determine if they are valid.
2278func (s *GetAccessKeyInfoInput) Validate() error {
2279 invalidParams := request.ErrInvalidParams{Context: "GetAccessKeyInfoInput"}
2280 if s.AccessKeyId == nil {
2281 invalidParams.Add(request.NewErrParamRequired("AccessKeyId"))
2282 }
2283 if s.AccessKeyId != nil && len(*s.AccessKeyId) < 16 {
2284 invalidParams.Add(request.NewErrParamMinLen("AccessKeyId", 16))
2285 }
2286
2287 if invalidParams.Len() > 0 {
2288 return invalidParams
2289 }
2290 return nil
2291}
2292
2293// SetAccessKeyId sets the AccessKeyId field's value.
2294func (s *GetAccessKeyInfoInput) SetAccessKeyId(v string) *GetAccessKeyInfoInput {
2295 s.AccessKeyId = &v
2296 return s
2297}
2298
2299type GetAccessKeyInfoOutput struct {
2300 _ struct{} `type:"structure"`
2301
2302 // The number used to identify the AWS account.
2303 Account *string `type:"string"`
2304}
2305
2306// String returns the string representation
2307func (s GetAccessKeyInfoOutput) String() string {
2308 return awsutil.Prettify(s)
2309}
2310
2311// GoString returns the string representation
2312func (s GetAccessKeyInfoOutput) GoString() string {
2313 return s.String()
2314}
2315
2316// SetAccount sets the Account field's value.
2317func (s *GetAccessKeyInfoOutput) SetAccount(v string) *GetAccessKeyInfoOutput {
2318 s.Account = &v
2319 return s
2320}
2321
2069type GetCallerIdentityInput struct { 2322type GetCallerIdentityInput struct {
2070 _ struct{} `type:"structure"` 2323 _ struct{} `type:"structure"`
2071} 2324}
@@ -2093,8 +2346,8 @@ type GetCallerIdentityOutput struct {
2093 Arn *string `min:"20" type:"string"` 2346 Arn *string `min:"20" type:"string"`
2094 2347
2095 // The unique identifier of the calling entity. The exact value depends on the 2348 // The unique identifier of the calling entity. The exact value depends on the
2096 // type of entity making the call. The values returned are those listed in the 2349 // type of entity that is making the call. The values returned are those listed
2097 // aws:userid column in the Principal table (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable) 2350 // in the aws:userid column in the Principal table (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable)
2098 // found on the Policy Variables reference page in the IAM User Guide. 2351 // found on the Policy Variables reference page in the IAM User Guide.
2099 UserId *string `type:"string"` 2352 UserId *string `type:"string"`
2100} 2353}
@@ -2131,12 +2384,11 @@ type GetFederationTokenInput struct {
2131 _ struct{} `type:"structure"` 2384 _ struct{} `type:"structure"`
2132 2385
2133 // The duration, in seconds, that the session should last. Acceptable durations 2386 // The duration, in seconds, that the session should last. Acceptable durations
2134 // for federation sessions range from 900 seconds (15 minutes) to 129600 seconds 2387 // for federation sessions range from 900 seconds (15 minutes) to 129,600 seconds
2135 // (36 hours), with 43200 seconds (12 hours) as the default. Sessions obtained 2388 // (36 hours), with 43,200 seconds (12 hours) as the default. Sessions obtained
2136 // using AWS account (root) credentials are restricted to a maximum of 3600 2389 // using AWS account root user credentials are restricted to a maximum of 3,600
2137 // seconds (one hour). If the specified duration is longer than one hour, the 2390 // seconds (one hour). If the specified duration is longer than one hour, the
2138 // session obtained by using AWS account (root) credentials defaults to one 2391 // session obtained by using root user credentials defaults to one hour.
2139 // hour.
2140 DurationSeconds *int64 `min:"900" type:"integer"` 2392 DurationSeconds *int64 `min:"900" type:"integer"`
2141 2393
2142 // The name of the federated user. The name is used as an identifier for the 2394 // The name of the federated user. The name is used as an identifier for the
@@ -2151,36 +2403,73 @@ type GetFederationTokenInput struct {
2151 // Name is a required field 2403 // Name is a required field
2152 Name *string `min:"2" type:"string" required:"true"` 2404 Name *string `min:"2" type:"string" required:"true"`
2153 2405
2154 // An IAM policy in JSON format that is passed with the GetFederationToken call 2406 // An IAM policy in JSON format that you want to use as an inline session policy.
2155 // and evaluated along with the policy or policies that are attached to the 2407 //
2156 // IAM user whose credentials are used to call GetFederationToken. The passed 2408 // You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
2157 // policy is used to scope down the permissions that are available to the IAM 2409 // to this operation. You can pass a single JSON policy document to use as an
2158 // user, by allowing only a subset of the permissions that are granted to the 2410 // inline session policy. You can also specify up to 10 managed policies to
2159 // IAM user. The passed policy cannot grant more permissions than those granted 2411 // use as managed session policies.
2160 // to the IAM user. The final permissions for the federated user are the most
2161 // restrictive set based on the intersection of the passed policy and the IAM
2162 // user policy.
2163 //
2164 // If you do not pass a policy, the resulting temporary security credentials
2165 // have no effective permissions. The only exception is when the temporary security
2166 // credentials are used to access a resource that has a resource-based policy
2167 // that specifically allows the federated user to access the resource.
2168 //
2169 // The format for this parameter, as described by its regex pattern, is a string
2170 // of characters up to 2048 characters in length. The characters can be any
2171 // ASCII character from the space character to the end of the valid character
2172 // list (\u0020-\u00FF). It can also include the tab (\u0009), linefeed (\u000A),
2173 // and carriage return (\u000D) characters.
2174 // 2412 //
2175 // The policy plain text must be 2048 bytes or shorter. However, an internal 2413 // This parameter is optional. However, if you do not pass any session policies,
2176 // conversion compresses it into a packed binary format with a separate limit. 2414 // then the resulting federated user session has no permissions. The only exception
2177 // The PackedPolicySize response element indicates by percentage how close to 2415 // is when the credentials are used to access a resource that has a resource-based
2178 // the upper size limit the policy is, with 100% equaling the maximum allowed 2416 // policy that specifically references the federated user session in the Principal
2179 // size. 2417 // element of the policy.
2180 // 2418 //
2181 // For more information about how permissions work, see Permissions for GetFederationToken 2419 // When you pass session policies, the session permissions are the intersection
2182 // (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html). 2420 // of the IAM user policies and the session policies that you pass. This gives
2421 // you a way to further restrict the permissions for a federated user. You cannot
2422 // use session policies to grant more permissions than those that are defined
2423 // in the permissions policy of the IAM user. For more information, see Session
2424 // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
2425 // in the IAM User Guide.
2426 //
2427 // The plain text that you use for both inline and managed session policies
2428 // shouldn't exceed 2048 characters. The JSON policy characters can be any ASCII
2429 // character from the space character to the end of the valid character list
2430 // (\u0020 through \u00FF). It can also include the tab (\u0009), linefeed (\u000A),
2431 // and carriage return (\u000D) characters.
2432 //
2433 // The characters in this parameter count towards the 2048 character session
2434 // policy guideline. However, an AWS conversion compresses the session policies
2435 // into a packed binary format that has a separate limit. This is the enforced
2436 // limit. The PackedPolicySize response element indicates by percentage how
2437 // close the policy is to the upper size limit.
2183 Policy *string `min:"1" type:"string"` 2438 Policy *string `min:"1" type:"string"`
2439
2440 // The Amazon Resource Names (ARNs) of the IAM managed policies that you want
2441 // to use as a managed session policy. The policies must exist in the same account
2442 // as the IAM user that is requesting federated access.
2443 //
2444 // You must pass an inline or managed session policy (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
2445 // to this operation. You can pass a single JSON policy document to use as an
2446 // inline session policy. You can also specify up to 10 managed policies to
2447 // use as managed session policies. The plain text that you use for both inline
2448 // and managed session policies shouldn't exceed 2048 characters. You can provide
2449 // up to 10 managed policy ARNs. For more information about ARNs, see Amazon
2450 // Resource Names (ARNs) and AWS Service Namespaces (general/latest/gr/aws-arns-and-namespaces.html)
2451 // in the AWS General Reference.
2452 //
2453 // This parameter is optional. However, if you do not pass any session policies,
2454 // then the resulting federated user session has no permissions. The only exception
2455 // is when the credentials are used to access a resource that has a resource-based
2456 // policy that specifically references the federated user session in the Principal
2457 // element of the policy.
2458 //
2459 // When you pass session policies, the session permissions are the intersection
2460 // of the IAM user policies and the session policies that you pass. This gives
2461 // you a way to further restrict the permissions for a federated user. You cannot
2462 // use session policies to grant more permissions than those that are defined
2463 // in the permissions policy of the IAM user. For more information, see Session
2464 // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)
2465 // in the IAM User Guide.
2466 //
2467 // The characters in this parameter count towards the 2048 character session
2468 // policy guideline. However, an AWS conversion compresses the session policies
2469 // into a packed binary format that has a separate limit. This is the enforced
2470 // limit. The PackedPolicySize response element indicates by percentage how
2471 // close the policy is to the upper size limit.
2472 PolicyArns []*PolicyDescriptorType `type:"list"`
2184} 2473}
2185 2474
2186// String returns the string representation 2475// String returns the string representation
@@ -2208,6 +2497,16 @@ func (s *GetFederationTokenInput) Validate() error {
2208 if s.Policy != nil && len(*s.Policy) < 1 { 2497 if s.Policy != nil && len(*s.Policy) < 1 {
2209 invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) 2498 invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
2210 } 2499 }
2500 if s.PolicyArns != nil {
2501 for i, v := range s.PolicyArns {
2502 if v == nil {
2503 continue
2504 }
2505 if err := v.Validate(); err != nil {
2506 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyArns", i), err.(request.ErrInvalidParams))
2507 }
2508 }
2509 }
2211 2510
2212 if invalidParams.Len() > 0 { 2511 if invalidParams.Len() > 0 {
2213 return invalidParams 2512 return invalidParams
@@ -2233,6 +2532,12 @@ func (s *GetFederationTokenInput) SetPolicy(v string) *GetFederationTokenInput {
2233 return s 2532 return s
2234} 2533}
2235 2534
2535// SetPolicyArns sets the PolicyArns field's value.
2536func (s *GetFederationTokenInput) SetPolicyArns(v []*PolicyDescriptorType) *GetFederationTokenInput {
2537 s.PolicyArns = v
2538 return s
2539}
2540
2236// Contains the response to a successful GetFederationToken request, including 2541// Contains the response to a successful GetFederationToken request, including
2237// temporary AWS credentials that can be used to make AWS requests. 2542// temporary AWS credentials that can be used to make AWS requests.
2238type GetFederationTokenOutput struct { 2543type GetFederationTokenOutput struct {
@@ -2241,10 +2546,8 @@ type GetFederationTokenOutput struct {
2241 // The temporary security credentials, which include an access key ID, a secret 2546 // The temporary security credentials, which include an access key ID, a secret
2242 // access key, and a security (or session) token. 2547 // access key, and a security (or session) token.
2243 // 2548 //
2244 // Note: The size of the security token that STS APIs return is not fixed. We 2549 // The size of the security token that STS API operations return is not fixed.
2245 // strongly recommend that you make no assumptions about the maximum size. As 2550 // We strongly recommend that you make no assumptions about the maximum size.
2246 // of this writing, the typical size is less than 4096 bytes, but that can vary.
2247 // Also, future updates to AWS might require larger sizes.
2248 Credentials *Credentials `type:"structure"` 2551 Credentials *Credentials `type:"structure"`
2249 2552
2250 // Identifiers for the federated user associated with the credentials (such 2553 // Identifiers for the federated user associated with the credentials (such
@@ -2291,11 +2594,11 @@ type GetSessionTokenInput struct {
2291 _ struct{} `type:"structure"` 2594 _ struct{} `type:"structure"`
2292 2595
2293 // The duration, in seconds, that the credentials should remain valid. Acceptable 2596 // The duration, in seconds, that the credentials should remain valid. Acceptable
2294 // durations for IAM user sessions range from 900 seconds (15 minutes) to 129600 2597 // durations for IAM user sessions range from 900 seconds (15 minutes) to 129,600
2295 // seconds (36 hours), with 43200 seconds (12 hours) as the default. Sessions 2598 // seconds (36 hours), with 43,200 seconds (12 hours) as the default. Sessions
2296 // for AWS account owners are restricted to a maximum of 3600 seconds (one hour). 2599 // for AWS account owners are restricted to a maximum of 3,600 seconds (one
2297 // If the duration is longer than one hour, the session for AWS account owners 2600 // hour). If the duration is longer than one hour, the session for AWS account
2298 // defaults to one hour. 2601 // owners defaults to one hour.
2299 DurationSeconds *int64 `min:"900" type:"integer"` 2602 DurationSeconds *int64 `min:"900" type:"integer"`
2300 2603
2301 // The identification number of the MFA device that is associated with the IAM 2604 // The identification number of the MFA device that is associated with the IAM
@@ -2306,16 +2609,16 @@ type GetSessionTokenInput struct {
2306 // You can find the device for an IAM user by going to the AWS Management Console 2609 // You can find the device for an IAM user by going to the AWS Management Console
2307 // and viewing the user's security credentials. 2610 // and viewing the user's security credentials.
2308 // 2611 //
2309 // The regex used to validated this parameter is a string of characters consisting 2612 // The regex used to validate this parameter is a string of characters consisting
2310 // of upper- and lower-case alphanumeric characters with no spaces. You can 2613 // of upper- and lower-case alphanumeric characters with no spaces. You can
2311 // also include underscores or any of the following characters: =,.@:/- 2614 // also include underscores or any of the following characters: =,.@:/-
2312 SerialNumber *string `min:"9" type:"string"` 2615 SerialNumber *string `min:"9" type:"string"`
2313 2616
2314 // The value provided by the MFA device, if MFA is required. If any policy requires 2617 // The value provided by the MFA device, if MFA is required. If any policy requires
2315 // the IAM user to submit an MFA code, specify this value. If MFA authentication 2618 // the IAM user to submit an MFA code, specify this value. If MFA authentication
2316 // is required, and the user does not provide a code when requesting a set of 2619 // is required, the user must provide a code when requesting a set of temporary
2317 // temporary security credentials, the user will receive an "access denied" 2620 // security credentials. A user who fails to provide the code receives an "access
2318 // response when requesting resources that require MFA authentication. 2621 // denied" response when requesting resources that require MFA authentication.
2319 // 2622 //
2320 // The format for this parameter, as described by its regex pattern, is a sequence 2623 // The format for this parameter, as described by its regex pattern, is a sequence
2321 // of six numeric digits. 2624 // of six numeric digits.
@@ -2377,10 +2680,8 @@ type GetSessionTokenOutput struct {
2377 // The temporary security credentials, which include an access key ID, a secret 2680 // The temporary security credentials, which include an access key ID, a secret
2378 // access key, and a security (or session) token. 2681 // access key, and a security (or session) token.
2379 // 2682 //
2380 // Note: The size of the security token that STS APIs return is not fixed. We 2683 // The size of the security token that STS API operations return is not fixed.
2381 // strongly recommend that you make no assumptions about the maximum size. As 2684 // We strongly recommend that you make no assumptions about the maximum size.
2382 // of this writing, the typical size is less than 4096 bytes, but that can vary.
2383 // Also, future updates to AWS might require larger sizes.
2384 Credentials *Credentials `type:"structure"` 2685 Credentials *Credentials `type:"structure"`
2385} 2686}
2386 2687
@@ -2399,3 +2700,44 @@ func (s *GetSessionTokenOutput) SetCredentials(v *Credentials) *GetSessionTokenO
2399 s.Credentials = v 2700 s.Credentials = v
2400 return s 2701 return s
2401} 2702}
2703
2704// A reference to the IAM managed policy that is passed as a session policy
2705// for a role session or a federated user session.
2706type PolicyDescriptorType struct {
2707 _ struct{} `type:"structure"`
2708
2709 // The Amazon Resource Name (ARN) of the IAM managed policy to use as a session
2710 // policy for the role. For more information about ARNs, see Amazon Resource
2711 // Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
2712 // in the AWS General Reference.
2713 Arn *string `locationName:"arn" min:"20" type:"string"`
2714}
2715
2716// String returns the string representation
2717func (s PolicyDescriptorType) String() string {
2718 return awsutil.Prettify(s)
2719}
2720
2721// GoString returns the string representation
2722func (s PolicyDescriptorType) GoString() string {
2723 return s.String()
2724}
2725
2726// Validate inspects the fields of the type to determine if they are valid.
2727func (s *PolicyDescriptorType) Validate() error {
2728 invalidParams := request.ErrInvalidParams{Context: "PolicyDescriptorType"}
2729 if s.Arn != nil && len(*s.Arn) < 20 {
2730 invalidParams.Add(request.NewErrParamMinLen("Arn", 20))
2731 }
2732
2733 if invalidParams.Len() > 0 {
2734 return invalidParams
2735 }
2736 return nil
2737}
2738
2739// SetArn sets the Arn field's value.
2740func (s *PolicyDescriptorType) SetArn(v string) *PolicyDescriptorType {
2741 s.Arn = &v
2742 return s
2743}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go b/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go
index ef681ab..fcb720d 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/sts/doc.go
@@ -7,22 +7,14 @@
7// request temporary, limited-privilege credentials for AWS Identity and Access 7// request temporary, limited-privilege credentials for AWS Identity and Access
8// Management (IAM) users or for users that you authenticate (federated users). 8// Management (IAM) users or for users that you authenticate (federated users).
9// This guide provides descriptions of the STS API. For more detailed information 9// This guide provides descriptions of the STS API. For more detailed information
10// about using this service, go to Temporary Security Credentials (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html). 10// about using this service, go to Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html).
11//
12// As an alternative to using the API, you can use one of the AWS SDKs, which
13// consist of libraries and sample code for various programming languages and
14// platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide a convenient
15// way to create programmatic access to STS. For example, the SDKs take care
16// of cryptographically signing requests, managing errors, and retrying requests
17// automatically. For information about the AWS SDKs, including how to download
18// and install them, see the Tools for Amazon Web Services page (http://aws.amazon.com/tools/).
19// 11//
20// For information about setting up signatures and authorization through the 12// For information about setting up signatures and authorization through the
21// API, go to Signing AWS API Requests (http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) 13// API, go to Signing AWS API Requests (https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)
22// in the AWS General Reference. For general information about the Query API, 14// in the AWS General Reference. For general information about the Query API,
23// go to Making Query Requests (http://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html) 15// go to Making Query Requests (https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
24// in Using IAM. For information about using security tokens with other AWS 16// in Using IAM. For information about using security tokens with other AWS
25// products, go to AWS Services That Work with IAM (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 17// products, go to AWS Services That Work with IAM (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)
26// in the IAM User Guide. 18// in the IAM User Guide.
27// 19//
28// If you're new to AWS and need additional technical information about a specific 20// If you're new to AWS and need additional technical information about a specific
@@ -31,14 +23,38 @@
31// 23//
32// Endpoints 24// Endpoints
33// 25//
34// The AWS Security Token Service (STS) has a default endpoint of https://sts.amazonaws.com 26// By default, AWS Security Token Service (STS) is available as a global service,
35// that maps to the US East (N. Virginia) region. Additional regions are available 27// and all AWS STS requests go to a single endpoint at https://sts.amazonaws.com.
36// and are activated by default. For more information, see Activating and Deactivating 28// Global requests map to the US East (N. Virginia) region. AWS recommends using
37// AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) 29// Regional AWS STS endpoints instead of the global endpoint to reduce latency,
30// build in redundancy, and increase session token validity. For more information,
31// see Managing AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
32// in the IAM User Guide.
33//
34// Most AWS Regions are enabled for operations in all AWS services by default.
35// Those Regions are automatically activated for use with AWS STS. Some Regions,
36// such as Asia Pacific (Hong Kong), must be manually enabled. To learn more
37// about enabling and disabling AWS Regions, see Managing AWS Regions (https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)
38// in the AWS General Reference. When you enable these AWS Regions, they are
39// automatically activated for use with AWS STS. You cannot activate the STS
40// endpoint for a Region that is disabled. Tokens that are valid in all AWS
41// Regions are longer than tokens that are valid in Regions that are enabled
42// by default. Changing this setting might affect existing systems where you
43// temporarily store tokens. For more information, see Managing Global Endpoint
44// Session Tokens (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-manage-tokens)
38// in the IAM User Guide. 45// in the IAM User Guide.
39// 46//
40// For information about STS endpoints, see Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region) 47// After you activate a Region for use with AWS STS, you can direct AWS STS
41// in the AWS General Reference. 48// API calls to that Region. AWS STS recommends that you provide both the Region
49// and endpoint when you make calls to a Regional endpoint. You can provide
50// the Region alone for manually enabled Regions, such as Asia Pacific (Hong
51// Kong). In this case, the calls are directed to the STS Regional endpoint.
52// However, if you provide the Region alone for Regions enabled by default,
53// the calls are directed to the global endpoint of https://sts.amazonaws.com.
54//
55// To view the list of AWS STS endpoints and whether they are active by default,
56// see Writing Code to Use AWS STS Regions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#id_credentials_temp_enable-regions_writing_code)
57// in the IAM User Guide.
42// 58//
43// Recording API requests 59// Recording API requests
44// 60//
@@ -46,8 +62,28 @@
46// your AWS account and delivers log files to an Amazon S3 bucket. By using 62// your AWS account and delivers log files to an Amazon S3 bucket. By using
47// information collected by CloudTrail, you can determine what requests were 63// information collected by CloudTrail, you can determine what requests were
48// successfully made to STS, who made the request, when it was made, and so 64// successfully made to STS, who made the request, when it was made, and so
49// on. To learn more about CloudTrail, including how to turn it on and find 65// on.
50// your log files, see the AWS CloudTrail User Guide (http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html). 66//
67// If you activate AWS STS endpoints in Regions other than the default global
68// endpoint, then you must also turn on CloudTrail logging in those Regions.
69// This is necessary to record any AWS STS API calls that are made in those
70// Regions. For more information, see Turning On CloudTrail in Additional Regions
71// (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/aggregating_logs_regions_turn_on_ct.html)
72// in the AWS CloudTrail User Guide.
73//
74// AWS Security Token Service (STS) is a global service with a single endpoint
75// at https://sts.amazonaws.com. Calls to this endpoint are logged as calls
76// to a global service. However, because this endpoint is physically located
77// in the US East (N. Virginia) Region, your logs list us-east-1 as the event
78// Region. CloudTrail does not write these logs to the US East (Ohio) Region
79// unless you choose to include global service logs in that Region. CloudTrail
80// writes calls to all Regional endpoints to their respective Regions. For example,
81// calls to sts.us-east-2.amazonaws.com are published to the US East (Ohio)
82// Region and calls to sts.eu-central-1.amazonaws.com are published to the EU
83// (Frankfurt) Region.
84//
85// To learn more about CloudTrail, including how to turn it on and find your
86// log files, see the AWS CloudTrail User Guide (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html).
51// 87//
52// See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service. 88// See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service.
53// 89//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go b/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go
index e24884e..41ea09c 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/sts/errors.go
@@ -67,7 +67,7 @@ const (
67 // STS is not activated in the requested region for the account that is being 67 // STS is not activated in the requested region for the account that is being
68 // asked to generate credentials. The account administrator must use the IAM 68 // asked to generate credentials. The account administrator must use the IAM
69 // console to activate STS in that region. For more information, see Activating 69 // console to activate STS in that region. For more information, see Activating
70 // and Deactivating AWS STS in an AWS Region (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) 70 // and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
71 // in the IAM User Guide. 71 // in the IAM User Guide.
72 ErrCodeRegionDisabledException = "RegionDisabledException" 72 ErrCodeRegionDisabledException = "RegionDisabledException"
73) 73)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go
new file mode 100644
index 0000000..e2e1d6e
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/interface.go
@@ -0,0 +1,96 @@
1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3// Package stsiface provides an interface to enable mocking the AWS Security Token Service service client
4// for testing your code.
5//
6// It is important to note that this interface will have breaking changes
7// when the service model is updated and adds new API operations, paginators,
8// and waiters.
9package stsiface
10
11import (
12 "github.com/aws/aws-sdk-go/aws"
13 "github.com/aws/aws-sdk-go/aws/request"
14 "github.com/aws/aws-sdk-go/service/sts"
15)
16
17// STSAPI provides an interface to enable mocking the
18// sts.STS service client's API operation,
19// paginators, and waiters. This make unit testing your code that calls out
20// to the SDK's service client's calls easier.
21//
22// The best way to use this interface is so the SDK's service client's calls
23// can be stubbed out for unit testing your code with the SDK without needing
24// to inject custom request handlers into the SDK's request pipeline.
25//
26// // myFunc uses an SDK service client to make a request to
27// // AWS Security Token Service.
28// func myFunc(svc stsiface.STSAPI) bool {
29// // Make svc.AssumeRole request
30// }
31//
32// func main() {
33// sess := session.New()
34// svc := sts.New(sess)
35//
36// myFunc(svc)
37// }
38//
39// In your _test.go file:
40//
41// // Define a mock struct to be used in your unit tests of myFunc.
42// type mockSTSClient struct {
43// stsiface.STSAPI
44// }
45// func (m *mockSTSClient) AssumeRole(input *sts.AssumeRoleInput) (*sts.AssumeRoleOutput, error) {
46// // mock response/functionality
47// }
48//
49// func TestMyFunc(t *testing.T) {
50// // Setup Test
51// mockSvc := &mockSTSClient{}
52//
53// myfunc(mockSvc)
54//
55// // Verify myFunc's functionality
56// }
57//
58// It is important to note that this interface will have breaking changes
59// when the service model is updated and adds new API operations, paginators,
60// and waiters. Its suggested to use the pattern above for testing, or using
61// tooling to generate mocks to satisfy the interfaces.
62type STSAPI interface {
63 AssumeRole(*sts.AssumeRoleInput) (*sts.AssumeRoleOutput, error)
64 AssumeRoleWithContext(aws.Context, *sts.AssumeRoleInput, ...request.Option) (*sts.AssumeRoleOutput, error)
65 AssumeRoleRequest(*sts.AssumeRoleInput) (*request.Request, *sts.AssumeRoleOutput)
66
67 AssumeRoleWithSAML(*sts.AssumeRoleWithSAMLInput) (*sts.AssumeRoleWithSAMLOutput, error)
68 AssumeRoleWithSAMLWithContext(aws.Context, *sts.AssumeRoleWithSAMLInput, ...request.Option) (*sts.AssumeRoleWithSAMLOutput, error)
69 AssumeRoleWithSAMLRequest(*sts.AssumeRoleWithSAMLInput) (*request.Request, *sts.AssumeRoleWithSAMLOutput)
70
71 AssumeRoleWithWebIdentity(*sts.AssumeRoleWithWebIdentityInput) (*sts.AssumeRoleWithWebIdentityOutput, error)
72 AssumeRoleWithWebIdentityWithContext(aws.Context, *sts.AssumeRoleWithWebIdentityInput, ...request.Option) (*sts.AssumeRoleWithWebIdentityOutput, error)
73 AssumeRoleWithWebIdentityRequest(*sts.AssumeRoleWithWebIdentityInput) (*request.Request, *sts.AssumeRoleWithWebIdentityOutput)
74
75 DecodeAuthorizationMessage(*sts.DecodeAuthorizationMessageInput) (*sts.DecodeAuthorizationMessageOutput, error)
76 DecodeAuthorizationMessageWithContext(aws.Context, *sts.DecodeAuthorizationMessageInput, ...request.Option) (*sts.DecodeAuthorizationMessageOutput, error)
77 DecodeAuthorizationMessageRequest(*sts.DecodeAuthorizationMessageInput) (*request.Request, *sts.DecodeAuthorizationMessageOutput)
78
79 GetAccessKeyInfo(*sts.GetAccessKeyInfoInput) (*sts.GetAccessKeyInfoOutput, error)
80 GetAccessKeyInfoWithContext(aws.Context, *sts.GetAccessKeyInfoInput, ...request.Option) (*sts.GetAccessKeyInfoOutput, error)
81 GetAccessKeyInfoRequest(*sts.GetAccessKeyInfoInput) (*request.Request, *sts.GetAccessKeyInfoOutput)
82
83 GetCallerIdentity(*sts.GetCallerIdentityInput) (*sts.GetCallerIdentityOutput, error)
84 GetCallerIdentityWithContext(aws.Context, *sts.GetCallerIdentityInput, ...request.Option) (*sts.GetCallerIdentityOutput, error)
85 GetCallerIdentityRequest(*sts.GetCallerIdentityInput) (*request.Request, *sts.GetCallerIdentityOutput)
86
87 GetFederationToken(*sts.GetFederationTokenInput) (*sts.GetFederationTokenOutput, error)
88 GetFederationTokenWithContext(aws.Context, *sts.GetFederationTokenInput, ...request.Option) (*sts.GetFederationTokenOutput, error)
89 GetFederationTokenRequest(*sts.GetFederationTokenInput) (*request.Request, *sts.GetFederationTokenOutput)
90
91 GetSessionToken(*sts.GetSessionTokenInput) (*sts.GetSessionTokenOutput, error)
92 GetSessionTokenWithContext(aws.Context, *sts.GetSessionTokenInput, ...request.Option) (*sts.GetSessionTokenOutput, error)
93 GetSessionTokenRequest(*sts.GetSessionTokenInput) (*request.Request, *sts.GetSessionTokenOutput)
94}
95
96var _ STSAPI = (*sts.STS)(nil)