github.com/aavshr/aws-sdk-go@v1.41.3/service/s3/api.go (about) 1 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3 package s3 4 5 import ( 6 "bytes" 7 "fmt" 8 "io" 9 "sync" 10 "time" 11 12 "github.com/aavshr/aws-sdk-go/aws" 13 "github.com/aavshr/aws-sdk-go/aws/awserr" 14 "github.com/aavshr/aws-sdk-go/aws/awsutil" 15 "github.com/aavshr/aws-sdk-go/aws/client" 16 "github.com/aavshr/aws-sdk-go/aws/request" 17 "github.com/aavshr/aws-sdk-go/aws/signer/v4" 18 "github.com/aavshr/aws-sdk-go/internal/s3shared/arn" 19 "github.com/aavshr/aws-sdk-go/private/checksum" 20 "github.com/aavshr/aws-sdk-go/private/protocol" 21 "github.com/aavshr/aws-sdk-go/private/protocol/eventstream" 22 "github.com/aavshr/aws-sdk-go/private/protocol/eventstream/eventstreamapi" 23 "github.com/aavshr/aws-sdk-go/private/protocol/rest" 24 "github.com/aavshr/aws-sdk-go/private/protocol/restxml" 25 ) 26 27 const opAbortMultipartUpload = "AbortMultipartUpload" 28 29 // AbortMultipartUploadRequest generates a "aws/request.Request" representing the 30 // client's request for the AbortMultipartUpload operation. The "output" return 31 // value will be populated with the request's response once the request completes 32 // successfully. 33 // 34 // Use "Send" method on the returned Request to send the API call to the service. 35 // the "output" return value is not valid until after Send returns without error. 36 // 37 // See AbortMultipartUpload for more information on using the AbortMultipartUpload 38 // API call, and error handling. 39 // 40 // This method is useful when you want to inject custom logic or configuration 41 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 42 // 43 // 44 // // Example sending a request using the AbortMultipartUploadRequest method. 45 // req, resp := client.AbortMultipartUploadRequest(params) 46 // 47 // err := req.Send() 48 // if err == nil { // resp is now filled 49 // fmt.Println(resp) 50 // } 51 // 52 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload 53 func (c *S3) AbortMultipartUploadRequest(input *AbortMultipartUploadInput) (req *request.Request, output *AbortMultipartUploadOutput) { 54 op := &request.Operation{ 55 Name: opAbortMultipartUpload, 56 HTTPMethod: "DELETE", 57 HTTPPath: "/{Bucket}/{Key+}", 58 } 59 60 if input == nil { 61 input = &AbortMultipartUploadInput{} 62 } 63 64 output = &AbortMultipartUploadOutput{} 65 req = c.newRequest(op, input, output) 66 return 67 } 68 69 // AbortMultipartUpload API operation for Amazon Simple Storage Service. 70 // 71 // This action aborts a multipart upload. After a multipart upload is aborted, 72 // no additional parts can be uploaded using that upload ID. The storage consumed 73 // by any previously uploaded parts will be freed. However, if any part uploads 74 // are currently in progress, those part uploads might or might not succeed. 75 // As a result, it might be necessary to abort a given multipart upload multiple 76 // times in order to completely free all storage consumed by all parts. 77 // 78 // To verify that all parts have been removed, so you don't get charged for 79 // the part storage, you should call the ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) 80 // action and ensure that the parts list is empty. 81 // 82 // For information about permissions required to use the multipart upload, see 83 // Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). 84 // 85 // The following operations are related to AbortMultipartUpload: 86 // 87 // * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 88 // 89 // * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 90 // 91 // * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 92 // 93 // * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) 94 // 95 // * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) 96 // 97 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 98 // with awserr.Error's Code and Message methods to get detailed information about 99 // the error. 100 // 101 // See the AWS API reference guide for Amazon Simple Storage Service's 102 // API operation AbortMultipartUpload for usage and error information. 103 // 104 // Returned Error Codes: 105 // * ErrCodeNoSuchUpload "NoSuchUpload" 106 // The specified multipart upload does not exist. 107 // 108 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUpload 109 func (c *S3) AbortMultipartUpload(input *AbortMultipartUploadInput) (*AbortMultipartUploadOutput, error) { 110 req, out := c.AbortMultipartUploadRequest(input) 111 return out, req.Send() 112 } 113 114 // AbortMultipartUploadWithContext is the same as AbortMultipartUpload with the addition of 115 // the ability to pass a context and additional request options. 116 // 117 // See AbortMultipartUpload for details on how to use this API operation. 118 // 119 // The context must be non-nil and will be used for request cancellation. If 120 // the context is nil a panic will occur. In the future the SDK may create 121 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 122 // for more information on using Contexts. 123 func (c *S3) AbortMultipartUploadWithContext(ctx aws.Context, input *AbortMultipartUploadInput, opts ...request.Option) (*AbortMultipartUploadOutput, error) { 124 req, out := c.AbortMultipartUploadRequest(input) 125 req.SetContext(ctx) 126 req.ApplyOptions(opts...) 127 return out, req.Send() 128 } 129 130 const opCompleteMultipartUpload = "CompleteMultipartUpload" 131 132 // CompleteMultipartUploadRequest generates a "aws/request.Request" representing the 133 // client's request for the CompleteMultipartUpload operation. The "output" return 134 // value will be populated with the request's response once the request completes 135 // successfully. 136 // 137 // Use "Send" method on the returned Request to send the API call to the service. 138 // the "output" return value is not valid until after Send returns without error. 139 // 140 // See CompleteMultipartUpload for more information on using the CompleteMultipartUpload 141 // API call, and error handling. 142 // 143 // This method is useful when you want to inject custom logic or configuration 144 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 145 // 146 // 147 // // Example sending a request using the CompleteMultipartUploadRequest method. 148 // req, resp := client.CompleteMultipartUploadRequest(params) 149 // 150 // err := req.Send() 151 // if err == nil { // resp is now filled 152 // fmt.Println(resp) 153 // } 154 // 155 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload 156 func (c *S3) CompleteMultipartUploadRequest(input *CompleteMultipartUploadInput) (req *request.Request, output *CompleteMultipartUploadOutput) { 157 op := &request.Operation{ 158 Name: opCompleteMultipartUpload, 159 HTTPMethod: "POST", 160 HTTPPath: "/{Bucket}/{Key+}", 161 } 162 163 if input == nil { 164 input = &CompleteMultipartUploadInput{} 165 } 166 167 output = &CompleteMultipartUploadOutput{} 168 req = c.newRequest(op, input, output) 169 return 170 } 171 172 // CompleteMultipartUpload API operation for Amazon Simple Storage Service. 173 // 174 // Completes a multipart upload by assembling previously uploaded parts. 175 // 176 // You first initiate the multipart upload and then upload all parts using the 177 // UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 178 // operation. After successfully uploading all relevant parts of an upload, 179 // you call this action to complete the upload. Upon receiving this request, 180 // Amazon S3 concatenates all the parts in ascending order by part number to 181 // create a new object. In the Complete Multipart Upload request, you must provide 182 // the parts list. You must ensure that the parts list is complete. This action 183 // concatenates the parts that you provide in the list. For each part in the 184 // list, you must provide the part number and the ETag value, returned after 185 // that part was uploaded. 186 // 187 // Processing of a Complete Multipart Upload request could take several minutes 188 // to complete. After Amazon S3 begins processing the request, it sends an HTTP 189 // response header that specifies a 200 OK response. While processing is in 190 // progress, Amazon S3 periodically sends white space characters to keep the 191 // connection from timing out. Because a request could fail after the initial 192 // 200 OK response has been sent, it is important that you check the response 193 // body to determine whether the request succeeded. 194 // 195 // Note that if CompleteMultipartUpload fails, applications should be prepared 196 // to retry the failed requests. For more information, see Amazon S3 Error Best 197 // Practices (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). 198 // 199 // For more information about multipart uploads, see Uploading Objects Using 200 // Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). 201 // 202 // For information about permissions required to use the multipart upload API, 203 // see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). 204 // 205 // CompleteMultipartUpload has the following special errors: 206 // 207 // * Error code: EntityTooSmall Description: Your proposed upload is smaller 208 // than the minimum allowed object size. Each part must be at least 5 MB 209 // in size, except the last part. 400 Bad Request 210 // 211 // * Error code: InvalidPart Description: One or more of the specified parts 212 // could not be found. The part might not have been uploaded, or the specified 213 // entity tag might not have matched the part's entity tag. 400 Bad Request 214 // 215 // * Error code: InvalidPartOrder Description: The list of parts was not 216 // in ascending order. The parts list must be specified in order by part 217 // number. 400 Bad Request 218 // 219 // * Error code: NoSuchUpload Description: The specified multipart upload 220 // does not exist. The upload ID might be invalid, or the multipart upload 221 // might have been aborted or completed. 404 Not Found 222 // 223 // The following operations are related to CompleteMultipartUpload: 224 // 225 // * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 226 // 227 // * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 228 // 229 // * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) 230 // 231 // * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) 232 // 233 // * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) 234 // 235 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 236 // with awserr.Error's Code and Message methods to get detailed information about 237 // the error. 238 // 239 // See the AWS API reference guide for Amazon Simple Storage Service's 240 // API operation CompleteMultipartUpload for usage and error information. 241 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUpload 242 func (c *S3) CompleteMultipartUpload(input *CompleteMultipartUploadInput) (*CompleteMultipartUploadOutput, error) { 243 req, out := c.CompleteMultipartUploadRequest(input) 244 return out, req.Send() 245 } 246 247 // CompleteMultipartUploadWithContext is the same as CompleteMultipartUpload with the addition of 248 // the ability to pass a context and additional request options. 249 // 250 // See CompleteMultipartUpload for details on how to use this API operation. 251 // 252 // The context must be non-nil and will be used for request cancellation. If 253 // the context is nil a panic will occur. In the future the SDK may create 254 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 255 // for more information on using Contexts. 256 func (c *S3) CompleteMultipartUploadWithContext(ctx aws.Context, input *CompleteMultipartUploadInput, opts ...request.Option) (*CompleteMultipartUploadOutput, error) { 257 req, out := c.CompleteMultipartUploadRequest(input) 258 req.SetContext(ctx) 259 req.ApplyOptions(opts...) 260 return out, req.Send() 261 } 262 263 const opCopyObject = "CopyObject" 264 265 // CopyObjectRequest generates a "aws/request.Request" representing the 266 // client's request for the CopyObject operation. The "output" return 267 // value will be populated with the request's response once the request completes 268 // successfully. 269 // 270 // Use "Send" method on the returned Request to send the API call to the service. 271 // the "output" return value is not valid until after Send returns without error. 272 // 273 // See CopyObject for more information on using the CopyObject 274 // API call, and error handling. 275 // 276 // This method is useful when you want to inject custom logic or configuration 277 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 278 // 279 // 280 // // Example sending a request using the CopyObjectRequest method. 281 // req, resp := client.CopyObjectRequest(params) 282 // 283 // err := req.Send() 284 // if err == nil { // resp is now filled 285 // fmt.Println(resp) 286 // } 287 // 288 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject 289 func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, output *CopyObjectOutput) { 290 op := &request.Operation{ 291 Name: opCopyObject, 292 HTTPMethod: "PUT", 293 HTTPPath: "/{Bucket}/{Key+}", 294 } 295 296 if input == nil { 297 input = &CopyObjectInput{} 298 } 299 300 output = &CopyObjectOutput{} 301 req = c.newRequest(op, input, output) 302 return 303 } 304 305 // CopyObject API operation for Amazon Simple Storage Service. 306 // 307 // Creates a copy of an object that is already stored in Amazon S3. 308 // 309 // You can store individual objects of up to 5 TB in Amazon S3. You create a 310 // copy of your object up to 5 GB in size in a single atomic action using this 311 // API. However, to copy an object greater than 5 GB, you must use the multipart 312 // upload Upload Part - Copy API. For more information, see Copy Object Using 313 // the REST Multipart Upload API (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). 314 // 315 // All copy requests must be authenticated. Additionally, you must have read 316 // access to the source object and write access to the destination bucket. For 317 // more information, see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). 318 // Both the Region that you want to copy the object from and the Region that 319 // you want to copy the object to must be enabled for your account. 320 // 321 // A copy request might return an error when Amazon S3 receives the copy request 322 // or while Amazon S3 is copying the files. If the error occurs before the copy 323 // action starts, you receive a standard Amazon S3 error. If the error occurs 324 // during the copy operation, the error response is embedded in the 200 OK response. 325 // This means that a 200 OK response can contain either a success or an error. 326 // Design your application to parse the contents of the response and handle 327 // it appropriately. 328 // 329 // If the copy is successful, you receive a response with information about 330 // the copied object. 331 // 332 // If the request is an HTTP 1.1 request, the response is chunk encoded. If 333 // it were not, it would not contain the content-length, and you would need 334 // to read the entire body. 335 // 336 // The copy request charge is based on the storage class and Region that you 337 // specify for the destination object. For pricing information, see Amazon S3 338 // pricing (http://aws.amazon.com/s3/pricing/). 339 // 340 // Amazon S3 transfer acceleration does not support cross-Region copies. If 341 // you request a cross-Region copy using a transfer acceleration endpoint, you 342 // get a 400 Bad Request error. For more information, see Transfer Acceleration 343 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). 344 // 345 // Metadata 346 // 347 // When copying an object, you can preserve all metadata (default) or specify 348 // new metadata. However, the ACL is not preserved and is set to private for 349 // the user making the request. To override the default ACL setting, specify 350 // a new ACL when generating a copy request. For more information, see Using 351 // ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). 352 // 353 // To specify whether you want the object metadata copied from the source object 354 // or replaced with metadata provided in the request, you can optionally add 355 // the x-amz-metadata-directive header. When you grant permissions, you can 356 // use the s3:x-amz-metadata-directive condition key to enforce certain metadata 357 // behavior when objects are uploaded. For more information, see Specifying 358 // Conditions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html) 359 // in the Amazon S3 User Guide. For a complete list of Amazon S3-specific condition 360 // keys, see Actions, Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html). 361 // 362 // x-amz-copy-source-if Headers 363 // 364 // To only copy an object under certain conditions, such as whether the Etag 365 // matches or whether the object was modified before or after a specified date, 366 // use the following request parameters: 367 // 368 // * x-amz-copy-source-if-match 369 // 370 // * x-amz-copy-source-if-none-match 371 // 372 // * x-amz-copy-source-if-unmodified-since 373 // 374 // * x-amz-copy-source-if-modified-since 375 // 376 // If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since 377 // headers are present in the request and evaluate as follows, Amazon S3 returns 378 // 200 OK and copies the data: 379 // 380 // * x-amz-copy-source-if-match condition evaluates to true 381 // 382 // * x-amz-copy-source-if-unmodified-since condition evaluates to false 383 // 384 // If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since 385 // headers are present in the request and evaluate as follows, Amazon S3 returns 386 // the 412 Precondition Failed response code: 387 // 388 // * x-amz-copy-source-if-none-match condition evaluates to false 389 // 390 // * x-amz-copy-source-if-modified-since condition evaluates to true 391 // 392 // All headers with the x-amz- prefix, including x-amz-copy-source, must be 393 // signed. 394 // 395 // Server-side encryption 396 // 397 // When you perform a CopyObject operation, you can optionally use the appropriate 398 // encryption-related headers to encrypt the object using server-side encryption 399 // with Amazon Web Services managed encryption keys (SSE-S3 or SSE-KMS) or a 400 // customer-provided encryption key. With server-side encryption, Amazon S3 401 // encrypts your data as it writes it to disks in its data centers and decrypts 402 // the data when you access it. For more information about server-side encryption, 403 // see Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html). 404 // 405 // If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the 406 // object. For more information, see Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) 407 // in the Amazon S3 User Guide. 408 // 409 // Access Control List (ACL)-Specific Request Headers 410 // 411 // When copying an object, you can optionally use headers to grant ACL-based 412 // permissions. By default, all objects are private. Only the owner has full 413 // access control. When adding a new object, you can grant permissions to individual 414 // Amazon Web Services accounts or to predefined groups defined by Amazon S3. 415 // These permissions are then added to the ACL on the object. For more information, 416 // see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) 417 // and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). 418 // 419 // Storage Class Options 420 // 421 // You can use the CopyObject action to change the storage class of an object 422 // that is already stored in Amazon S3 using the StorageClass parameter. For 423 // more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) 424 // in the Amazon S3 User Guide. 425 // 426 // Versioning 427 // 428 // By default, x-amz-copy-source identifies the current version of an object 429 // to copy. If the current version is a delete marker, Amazon S3 behaves as 430 // if the object was deleted. To copy a different version, use the versionId 431 // subresource. 432 // 433 // If you enable versioning on the target bucket, Amazon S3 generates a unique 434 // version ID for the object being copied. This version ID is different from 435 // the version ID of the source object. Amazon S3 returns the version ID of 436 // the copied object in the x-amz-version-id response header in the response. 437 // 438 // If you do not enable versioning or suspend it on the target bucket, the version 439 // ID that Amazon S3 generates is always null. 440 // 441 // If the source object's storage class is GLACIER, you must restore a copy 442 // of this object before you can use it as a source object for the copy operation. 443 // For more information, see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). 444 // 445 // The following operations are related to CopyObject: 446 // 447 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 448 // 449 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 450 // 451 // For more information, see Copying Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html). 452 // 453 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 454 // with awserr.Error's Code and Message methods to get detailed information about 455 // the error. 456 // 457 // See the AWS API reference guide for Amazon Simple Storage Service's 458 // API operation CopyObject for usage and error information. 459 // 460 // Returned Error Codes: 461 // * ErrCodeObjectNotInActiveTierError "ObjectNotInActiveTierError" 462 // The source object of the COPY action is not in the active tier and is only 463 // stored in Amazon S3 Glacier. 464 // 465 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObject 466 func (c *S3) CopyObject(input *CopyObjectInput) (*CopyObjectOutput, error) { 467 req, out := c.CopyObjectRequest(input) 468 return out, req.Send() 469 } 470 471 // CopyObjectWithContext is the same as CopyObject with the addition of 472 // the ability to pass a context and additional request options. 473 // 474 // See CopyObject for details on how to use this API operation. 475 // 476 // The context must be non-nil and will be used for request cancellation. If 477 // the context is nil a panic will occur. In the future the SDK may create 478 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 479 // for more information on using Contexts. 480 func (c *S3) CopyObjectWithContext(ctx aws.Context, input *CopyObjectInput, opts ...request.Option) (*CopyObjectOutput, error) { 481 req, out := c.CopyObjectRequest(input) 482 req.SetContext(ctx) 483 req.ApplyOptions(opts...) 484 return out, req.Send() 485 } 486 487 const opCreateBucket = "CreateBucket" 488 489 // CreateBucketRequest generates a "aws/request.Request" representing the 490 // client's request for the CreateBucket operation. The "output" return 491 // value will be populated with the request's response once the request completes 492 // successfully. 493 // 494 // Use "Send" method on the returned Request to send the API call to the service. 495 // the "output" return value is not valid until after Send returns without error. 496 // 497 // See CreateBucket for more information on using the CreateBucket 498 // API call, and error handling. 499 // 500 // This method is useful when you want to inject custom logic or configuration 501 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 502 // 503 // 504 // // Example sending a request using the CreateBucketRequest method. 505 // req, resp := client.CreateBucketRequest(params) 506 // 507 // err := req.Send() 508 // if err == nil { // resp is now filled 509 // fmt.Println(resp) 510 // } 511 // 512 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket 513 func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request, output *CreateBucketOutput) { 514 op := &request.Operation{ 515 Name: opCreateBucket, 516 HTTPMethod: "PUT", 517 HTTPPath: "/{Bucket}", 518 } 519 520 if input == nil { 521 input = &CreateBucketInput{} 522 } 523 524 output = &CreateBucketOutput{} 525 req = c.newRequest(op, input, output) 526 return 527 } 528 529 // CreateBucket API operation for Amazon Simple Storage Service. 530 // 531 // Creates a new S3 bucket. To create a bucket, you must register with Amazon 532 // S3 and have a valid Amazon Web Services Access Key ID to authenticate requests. 533 // Anonymous requests are never allowed to create buckets. By creating the bucket, 534 // you become the bucket owner. 535 // 536 // Not every string is an acceptable bucket name. For information about bucket 537 // naming restrictions, see Bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). 538 // 539 // If you want to create an Amazon S3 on Outposts bucket, see Create Bucket 540 // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html). 541 // 542 // By default, the bucket is created in the US East (N. Virginia) Region. You 543 // can optionally specify a Region in the request body. You might choose a Region 544 // to optimize latency, minimize costs, or address regulatory requirements. 545 // For example, if you reside in Europe, you will probably find it advantageous 546 // to create buckets in the Europe (Ireland) Region. For more information, see 547 // Accessing a bucket (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). 548 // 549 // If you send your create bucket request to the s3.amazonaws.com endpoint, 550 // the request goes to the us-east-1 Region. Accordingly, the signature calculations 551 // in Signature Version 4 must use us-east-1 as the Region, even if the location 552 // constraint in the request specifies another Region where the bucket is to 553 // be created. If you create a bucket in a Region other than US East (N. Virginia), 554 // your application must be able to handle 307 redirect. For more information, 555 // see Virtual hosting of buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html). 556 // 557 // When creating a bucket using this operation, you can optionally specify the 558 // accounts or groups that should be granted specific permissions on the bucket. 559 // There are two ways to grant the appropriate permissions using the request 560 // headers. 561 // 562 // * Specify a canned ACL using the x-amz-acl request header. Amazon S3 supports 563 // a set of predefined ACLs, known as canned ACLs. Each canned ACL has a 564 // predefined set of grantees and permissions. For more information, see 565 // Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). 566 // 567 // * Specify access permissions explicitly using the x-amz-grant-read, x-amz-grant-write, 568 // x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control 569 // headers. These headers map to the set of permissions Amazon S3 supports 570 // in an ACL. For more information, see Access control list (ACL) overview 571 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). You 572 // specify each grantee as a type=value pair, where the type is one of the 573 // following: id – if the value specified is the canonical user ID of an 574 // Amazon Web Services account uri – if you are granting permissions to 575 // a predefined group emailAddress – if the value specified is the email 576 // address of an Amazon Web Services account Using email addresses to specify 577 // a grantee is only supported in the following Amazon Web Services Regions: 578 // US East (N. Virginia) US West (N. California) US West (Oregon) Asia Pacific 579 // (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) 580 // South America (São Paulo) For a list of all the Amazon S3 supported Regions 581 // and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 582 // in the Amazon Web Services General Reference. For example, the following 583 // x-amz-grant-read header grants the Amazon Web Services accounts identified 584 // by account IDs permissions to read object data and its metadata: x-amz-grant-read: 585 // id="11112222333", id="444455556666" 586 // 587 // You can use either a canned ACL or specify access permissions explicitly. 588 // You cannot do both. 589 // 590 // Permissions 591 // 592 // If your CreateBucket request specifies ACL permissions and the ACL is public-read, 593 // public-read-write, authenticated-read, or if you specify access permissions 594 // explicitly through any other ACL, both s3:CreateBucket and s3:PutBucketAcl 595 // permissions are needed. If the ACL the CreateBucket request is private, only 596 // s3:CreateBucket permission is needed. 597 // 598 // If ObjectLockEnabledForBucket is set to true in your CreateBucket request, 599 // s3:PutBucketObjectLockConfiguration and s3:PutBucketVersioning permissions 600 // are required. 601 // 602 // The following operations are related to CreateBucket: 603 // 604 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 605 // 606 // * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) 607 // 608 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 609 // with awserr.Error's Code and Message methods to get detailed information about 610 // the error. 611 // 612 // See the AWS API reference guide for Amazon Simple Storage Service's 613 // API operation CreateBucket for usage and error information. 614 // 615 // Returned Error Codes: 616 // * ErrCodeBucketAlreadyExists "BucketAlreadyExists" 617 // The requested bucket name is not available. The bucket namespace is shared 618 // by all users of the system. Select a different name and try again. 619 // 620 // * ErrCodeBucketAlreadyOwnedByYou "BucketAlreadyOwnedByYou" 621 // The bucket you tried to create already exists, and you own it. Amazon S3 622 // returns this error in all Amazon Web Services Regions except in the North 623 // Virginia Region. For legacy compatibility, if you re-create an existing bucket 624 // that you already own in the North Virginia Region, Amazon S3 returns 200 625 // OK and resets the bucket access control lists (ACLs). 626 // 627 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket 628 func (c *S3) CreateBucket(input *CreateBucketInput) (*CreateBucketOutput, error) { 629 req, out := c.CreateBucketRequest(input) 630 return out, req.Send() 631 } 632 633 // CreateBucketWithContext is the same as CreateBucket with the addition of 634 // the ability to pass a context and additional request options. 635 // 636 // See CreateBucket for details on how to use this API operation. 637 // 638 // The context must be non-nil and will be used for request cancellation. If 639 // the context is nil a panic will occur. In the future the SDK may create 640 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 641 // for more information on using Contexts. 642 func (c *S3) CreateBucketWithContext(ctx aws.Context, input *CreateBucketInput, opts ...request.Option) (*CreateBucketOutput, error) { 643 req, out := c.CreateBucketRequest(input) 644 req.SetContext(ctx) 645 req.ApplyOptions(opts...) 646 return out, req.Send() 647 } 648 649 const opCreateMultipartUpload = "CreateMultipartUpload" 650 651 // CreateMultipartUploadRequest generates a "aws/request.Request" representing the 652 // client's request for the CreateMultipartUpload operation. The "output" return 653 // value will be populated with the request's response once the request completes 654 // successfully. 655 // 656 // Use "Send" method on the returned Request to send the API call to the service. 657 // the "output" return value is not valid until after Send returns without error. 658 // 659 // See CreateMultipartUpload for more information on using the CreateMultipartUpload 660 // API call, and error handling. 661 // 662 // This method is useful when you want to inject custom logic or configuration 663 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 664 // 665 // 666 // // Example sending a request using the CreateMultipartUploadRequest method. 667 // req, resp := client.CreateMultipartUploadRequest(params) 668 // 669 // err := req.Send() 670 // if err == nil { // resp is now filled 671 // fmt.Println(resp) 672 // } 673 // 674 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload 675 func (c *S3) CreateMultipartUploadRequest(input *CreateMultipartUploadInput) (req *request.Request, output *CreateMultipartUploadOutput) { 676 op := &request.Operation{ 677 Name: opCreateMultipartUpload, 678 HTTPMethod: "POST", 679 HTTPPath: "/{Bucket}/{Key+}?uploads", 680 } 681 682 if input == nil { 683 input = &CreateMultipartUploadInput{} 684 } 685 686 output = &CreateMultipartUploadOutput{} 687 req = c.newRequest(op, input, output) 688 return 689 } 690 691 // CreateMultipartUpload API operation for Amazon Simple Storage Service. 692 // 693 // This action initiates a multipart upload and returns an upload ID. This upload 694 // ID is used to associate all of the parts in the specific multipart upload. 695 // You specify this upload ID in each of your subsequent upload part requests 696 // (see UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)). 697 // You also include this upload ID in the final request to either complete or 698 // abort the multipart upload request. 699 // 700 // For more information about multipart uploads, see Multipart Upload Overview 701 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html). 702 // 703 // If you have configured a lifecycle rule to abort incomplete multipart uploads, 704 // the upload must complete within the number of days specified in the bucket 705 // lifecycle configuration. Otherwise, the incomplete multipart upload becomes 706 // eligible for an abort action and Amazon S3 aborts the multipart upload. For 707 // more information, see Aborting Incomplete Multipart Uploads Using a Bucket 708 // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). 709 // 710 // For information about the permissions required to use the multipart upload 711 // API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). 712 // 713 // For request signing, multipart upload is just a series of regular requests. 714 // You initiate a multipart upload, send one or more requests to upload parts, 715 // and then complete the multipart upload process. You sign each request individually. 716 // There is nothing special about signing multipart upload requests. For more 717 // information about signing, see Authenticating Requests (Amazon Web Services 718 // Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html). 719 // 720 // After you initiate a multipart upload and upload one or more parts, to stop 721 // being charged for storing the uploaded parts, you must either complete or 722 // abort the multipart upload. Amazon S3 frees up the space used to store the 723 // parts and stop charging you for storing them only after you either complete 724 // or abort a multipart upload. 725 // 726 // You can optionally request server-side encryption. For server-side encryption, 727 // Amazon S3 encrypts your data as it writes it to disks in its data centers 728 // and decrypts it when you access it. You can provide your own encryption key, 729 // or use Amazon Web Services KMS keys or Amazon S3-managed encryption keys. 730 // If you choose to provide your own encryption key, the request headers you 731 // provide in UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 732 // and UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 733 // requests must match the headers you used in the request to initiate the upload 734 // by using CreateMultipartUpload. 735 // 736 // To perform a multipart upload with encryption using an Amazon Web Services 737 // KMS key, the requester must have permission to the kms:Decrypt and kms:GenerateDataKey* 738 // actions on the key. These permissions are required because Amazon S3 must 739 // decrypt and read data from the encrypted file parts before it completes the 740 // multipart upload. For more information, see Multipart upload API and permissions 741 // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) 742 // in the Amazon S3 User Guide. 743 // 744 // If your Identity and Access Management (IAM) user or role is in the same 745 // Amazon Web Services account as the KMS key, then you must have these permissions 746 // on the key policy. If your IAM user or role belongs to a different account 747 // than the key, then you must have the permissions on both the key policy and 748 // your IAM user or role. 749 // 750 // For more information, see Protecting Data Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html). 751 // 752 // Access Permissions 753 // 754 // When copying an object, you can optionally specify the accounts or groups 755 // that should be granted specific permissions on the new object. There are 756 // two ways to grant the permissions using the request headers: 757 // 758 // * Specify a canned ACL with the x-amz-acl request header. For more information, 759 // see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). 760 // 761 // * Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, 762 // x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters 763 // map to the set of permissions that Amazon S3 supports in an ACL. For more 764 // information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). 765 // 766 // You can use either a canned ACL or specify access permissions explicitly. 767 // You cannot do both. 768 // 769 // Server-Side- Encryption-Specific Request Headers 770 // 771 // You can optionally tell Amazon S3 to encrypt data at rest using server-side 772 // encryption. Server-side encryption is for data encryption at rest. Amazon 773 // S3 encrypts your data as it writes it to disks in its data centers and decrypts 774 // it when you access it. The option you use depends on whether you want to 775 // use Amazon Web Services managed encryption keys or provide your own encryption 776 // key. 777 // 778 // * Use encryption keys managed by Amazon S3 or customer managed key stored 779 // in Amazon Web Services Key Management Service (Amazon Web Services KMS) 780 // – If you want Amazon Web Services to manage the keys used to encrypt 781 // data, specify the following headers in the request. x-amz-server-side-encryption 782 // x-amz-server-side-encryption-aws-kms-key-id x-amz-server-side-encryption-context 783 // If you specify x-amz-server-side-encryption:aws:kms, but don't provide 784 // x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon 785 // Web Services managed key in Amazon Web Services KMS to protect the data. 786 // All GET and PUT requests for an object protected by Amazon Web Services 787 // KMS fail if you don't make them with SSL or by using SigV4. For more information 788 // about server-side encryption with KMS key (SSE-KMS), see Protecting Data 789 // Using Server-Side Encryption with KMS keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). 790 // 791 // * Use customer-provided encryption keys – If you want to manage your 792 // own encryption keys, provide all the following headers in the request. 793 // x-amz-server-side-encryption-customer-algorithm x-amz-server-side-encryption-customer-key 794 // x-amz-server-side-encryption-customer-key-MD5 For more information about 795 // server-side encryption with KMS keys (SSE-KMS), see Protecting Data Using 796 // Server-Side Encryption with KMS keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html). 797 // 798 // Access-Control-List (ACL)-Specific Request Headers 799 // 800 // You also can use the following access control–related headers with this 801 // operation. By default, all objects are private. Only the owner has full access 802 // control. When adding a new object, you can grant permissions to individual 803 // Amazon Web Services accounts or to predefined groups defined by Amazon S3. 804 // These permissions are then added to the access control list (ACL) on the 805 // object. For more information, see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). 806 // With this operation, you can grant access permissions using one of the following 807 // two methods: 808 // 809 // * Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of predefined 810 // ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees 811 // and permissions. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). 812 // 813 // * Specify access permissions explicitly — To explicitly grant access 814 // permissions to specific Amazon Web Services accounts or groups, use the 815 // following headers. Each header maps to specific permissions that Amazon 816 // S3 supports in an ACL. For more information, see Access Control List (ACL) 817 // Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). 818 // In the header, you specify a list of grantees who get the specific permission. 819 // To grant permissions explicitly, use: x-amz-grant-read x-amz-grant-write 820 // x-amz-grant-read-acp x-amz-grant-write-acp x-amz-grant-full-control You 821 // specify each grantee as a type=value pair, where the type is one of the 822 // following: id – if the value specified is the canonical user ID of an 823 // Amazon Web Services account uri – if you are granting permissions to 824 // a predefined group emailAddress – if the value specified is the email 825 // address of an Amazon Web Services account Using email addresses to specify 826 // a grantee is only supported in the following Amazon Web Services Regions: 827 // US East (N. Virginia) US West (N. California) US West (Oregon) Asia Pacific 828 // (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) 829 // South America (São Paulo) For a list of all the Amazon S3 supported Regions 830 // and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 831 // in the Amazon Web Services General Reference. For example, the following 832 // x-amz-grant-read header grants the Amazon Web Services accounts identified 833 // by account IDs permissions to read object data and its metadata: x-amz-grant-read: 834 // id="11112222333", id="444455556666" 835 // 836 // The following operations are related to CreateMultipartUpload: 837 // 838 // * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 839 // 840 // * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 841 // 842 // * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) 843 // 844 // * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) 845 // 846 // * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) 847 // 848 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 849 // with awserr.Error's Code and Message methods to get detailed information about 850 // the error. 851 // 852 // See the AWS API reference guide for Amazon Simple Storage Service's 853 // API operation CreateMultipartUpload for usage and error information. 854 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUpload 855 func (c *S3) CreateMultipartUpload(input *CreateMultipartUploadInput) (*CreateMultipartUploadOutput, error) { 856 req, out := c.CreateMultipartUploadRequest(input) 857 return out, req.Send() 858 } 859 860 // CreateMultipartUploadWithContext is the same as CreateMultipartUpload with the addition of 861 // the ability to pass a context and additional request options. 862 // 863 // See CreateMultipartUpload for details on how to use this API operation. 864 // 865 // The context must be non-nil and will be used for request cancellation. If 866 // the context is nil a panic will occur. In the future the SDK may create 867 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 868 // for more information on using Contexts. 869 func (c *S3) CreateMultipartUploadWithContext(ctx aws.Context, input *CreateMultipartUploadInput, opts ...request.Option) (*CreateMultipartUploadOutput, error) { 870 req, out := c.CreateMultipartUploadRequest(input) 871 req.SetContext(ctx) 872 req.ApplyOptions(opts...) 873 return out, req.Send() 874 } 875 876 const opDeleteBucket = "DeleteBucket" 877 878 // DeleteBucketRequest generates a "aws/request.Request" representing the 879 // client's request for the DeleteBucket operation. The "output" return 880 // value will be populated with the request's response once the request completes 881 // successfully. 882 // 883 // Use "Send" method on the returned Request to send the API call to the service. 884 // the "output" return value is not valid until after Send returns without error. 885 // 886 // See DeleteBucket for more information on using the DeleteBucket 887 // API call, and error handling. 888 // 889 // This method is useful when you want to inject custom logic or configuration 890 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 891 // 892 // 893 // // Example sending a request using the DeleteBucketRequest method. 894 // req, resp := client.DeleteBucketRequest(params) 895 // 896 // err := req.Send() 897 // if err == nil { // resp is now filled 898 // fmt.Println(resp) 899 // } 900 // 901 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket 902 func (c *S3) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request, output *DeleteBucketOutput) { 903 op := &request.Operation{ 904 Name: opDeleteBucket, 905 HTTPMethod: "DELETE", 906 HTTPPath: "/{Bucket}", 907 } 908 909 if input == nil { 910 input = &DeleteBucketInput{} 911 } 912 913 output = &DeleteBucketOutput{} 914 req = c.newRequest(op, input, output) 915 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 916 return 917 } 918 919 // DeleteBucket API operation for Amazon Simple Storage Service. 920 // 921 // Deletes the S3 bucket. All objects (including all object versions and delete 922 // markers) in the bucket must be deleted before the bucket itself can be deleted. 923 // 924 // Related Resources 925 // 926 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 927 // 928 // * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) 929 // 930 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 931 // with awserr.Error's Code and Message methods to get detailed information about 932 // the error. 933 // 934 // See the AWS API reference guide for Amazon Simple Storage Service's 935 // API operation DeleteBucket for usage and error information. 936 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucket 937 func (c *S3) DeleteBucket(input *DeleteBucketInput) (*DeleteBucketOutput, error) { 938 req, out := c.DeleteBucketRequest(input) 939 return out, req.Send() 940 } 941 942 // DeleteBucketWithContext is the same as DeleteBucket with the addition of 943 // the ability to pass a context and additional request options. 944 // 945 // See DeleteBucket for details on how to use this API operation. 946 // 947 // The context must be non-nil and will be used for request cancellation. If 948 // the context is nil a panic will occur. In the future the SDK may create 949 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 950 // for more information on using Contexts. 951 func (c *S3) DeleteBucketWithContext(ctx aws.Context, input *DeleteBucketInput, opts ...request.Option) (*DeleteBucketOutput, error) { 952 req, out := c.DeleteBucketRequest(input) 953 req.SetContext(ctx) 954 req.ApplyOptions(opts...) 955 return out, req.Send() 956 } 957 958 const opDeleteBucketAnalyticsConfiguration = "DeleteBucketAnalyticsConfiguration" 959 960 // DeleteBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the 961 // client's request for the DeleteBucketAnalyticsConfiguration operation. The "output" return 962 // value will be populated with the request's response once the request completes 963 // successfully. 964 // 965 // Use "Send" method on the returned Request to send the API call to the service. 966 // the "output" return value is not valid until after Send returns without error. 967 // 968 // See DeleteBucketAnalyticsConfiguration for more information on using the DeleteBucketAnalyticsConfiguration 969 // API call, and error handling. 970 // 971 // This method is useful when you want to inject custom logic or configuration 972 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 973 // 974 // 975 // // Example sending a request using the DeleteBucketAnalyticsConfigurationRequest method. 976 // req, resp := client.DeleteBucketAnalyticsConfigurationRequest(params) 977 // 978 // err := req.Send() 979 // if err == nil { // resp is now filled 980 // fmt.Println(resp) 981 // } 982 // 983 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration 984 func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyticsConfigurationInput) (req *request.Request, output *DeleteBucketAnalyticsConfigurationOutput) { 985 op := &request.Operation{ 986 Name: opDeleteBucketAnalyticsConfiguration, 987 HTTPMethod: "DELETE", 988 HTTPPath: "/{Bucket}?analytics", 989 } 990 991 if input == nil { 992 input = &DeleteBucketAnalyticsConfigurationInput{} 993 } 994 995 output = &DeleteBucketAnalyticsConfigurationOutput{} 996 req = c.newRequest(op, input, output) 997 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 998 return 999 } 1000 1001 // DeleteBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. 1002 // 1003 // Deletes an analytics configuration for the bucket (specified by the analytics 1004 // configuration ID). 1005 // 1006 // To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration 1007 // action. The bucket owner has this permission by default. The bucket owner 1008 // can grant this permission to others. For more information about permissions, 1009 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 1010 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 1011 // 1012 // For information about the Amazon S3 analytics feature, see Amazon S3 Analytics 1013 // – Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). 1014 // 1015 // The following operations are related to DeleteBucketAnalyticsConfiguration: 1016 // 1017 // * GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) 1018 // 1019 // * ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) 1020 // 1021 // * PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) 1022 // 1023 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1024 // with awserr.Error's Code and Message methods to get detailed information about 1025 // the error. 1026 // 1027 // See the AWS API reference guide for Amazon Simple Storage Service's 1028 // API operation DeleteBucketAnalyticsConfiguration for usage and error information. 1029 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfiguration 1030 func (c *S3) DeleteBucketAnalyticsConfiguration(input *DeleteBucketAnalyticsConfigurationInput) (*DeleteBucketAnalyticsConfigurationOutput, error) { 1031 req, out := c.DeleteBucketAnalyticsConfigurationRequest(input) 1032 return out, req.Send() 1033 } 1034 1035 // DeleteBucketAnalyticsConfigurationWithContext is the same as DeleteBucketAnalyticsConfiguration with the addition of 1036 // the ability to pass a context and additional request options. 1037 // 1038 // See DeleteBucketAnalyticsConfiguration for details on how to use this API operation. 1039 // 1040 // The context must be non-nil and will be used for request cancellation. If 1041 // the context is nil a panic will occur. In the future the SDK may create 1042 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1043 // for more information on using Contexts. 1044 func (c *S3) DeleteBucketAnalyticsConfigurationWithContext(ctx aws.Context, input *DeleteBucketAnalyticsConfigurationInput, opts ...request.Option) (*DeleteBucketAnalyticsConfigurationOutput, error) { 1045 req, out := c.DeleteBucketAnalyticsConfigurationRequest(input) 1046 req.SetContext(ctx) 1047 req.ApplyOptions(opts...) 1048 return out, req.Send() 1049 } 1050 1051 const opDeleteBucketCors = "DeleteBucketCors" 1052 1053 // DeleteBucketCorsRequest generates a "aws/request.Request" representing the 1054 // client's request for the DeleteBucketCors operation. The "output" return 1055 // value will be populated with the request's response once the request completes 1056 // successfully. 1057 // 1058 // Use "Send" method on the returned Request to send the API call to the service. 1059 // the "output" return value is not valid until after Send returns without error. 1060 // 1061 // See DeleteBucketCors for more information on using the DeleteBucketCors 1062 // API call, and error handling. 1063 // 1064 // This method is useful when you want to inject custom logic or configuration 1065 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1066 // 1067 // 1068 // // Example sending a request using the DeleteBucketCorsRequest method. 1069 // req, resp := client.DeleteBucketCorsRequest(params) 1070 // 1071 // err := req.Send() 1072 // if err == nil { // resp is now filled 1073 // fmt.Println(resp) 1074 // } 1075 // 1076 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors 1077 func (c *S3) DeleteBucketCorsRequest(input *DeleteBucketCorsInput) (req *request.Request, output *DeleteBucketCorsOutput) { 1078 op := &request.Operation{ 1079 Name: opDeleteBucketCors, 1080 HTTPMethod: "DELETE", 1081 HTTPPath: "/{Bucket}?cors", 1082 } 1083 1084 if input == nil { 1085 input = &DeleteBucketCorsInput{} 1086 } 1087 1088 output = &DeleteBucketCorsOutput{} 1089 req = c.newRequest(op, input, output) 1090 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1091 return 1092 } 1093 1094 // DeleteBucketCors API operation for Amazon Simple Storage Service. 1095 // 1096 // Deletes the cors configuration information set for the bucket. 1097 // 1098 // To use this operation, you must have permission to perform the s3:PutBucketCORS 1099 // action. The bucket owner has this permission by default and can grant this 1100 // permission to others. 1101 // 1102 // For information about cors, see Enabling Cross-Origin Resource Sharing (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) 1103 // in the Amazon S3 User Guide. 1104 // 1105 // Related Resources: 1106 // 1107 // * PutBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) 1108 // 1109 // * RESTOPTIONSobject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) 1110 // 1111 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1112 // with awserr.Error's Code and Message methods to get detailed information about 1113 // the error. 1114 // 1115 // See the AWS API reference guide for Amazon Simple Storage Service's 1116 // API operation DeleteBucketCors for usage and error information. 1117 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCors 1118 func (c *S3) DeleteBucketCors(input *DeleteBucketCorsInput) (*DeleteBucketCorsOutput, error) { 1119 req, out := c.DeleteBucketCorsRequest(input) 1120 return out, req.Send() 1121 } 1122 1123 // DeleteBucketCorsWithContext is the same as DeleteBucketCors with the addition of 1124 // the ability to pass a context and additional request options. 1125 // 1126 // See DeleteBucketCors for details on how to use this API operation. 1127 // 1128 // The context must be non-nil and will be used for request cancellation. If 1129 // the context is nil a panic will occur. In the future the SDK may create 1130 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1131 // for more information on using Contexts. 1132 func (c *S3) DeleteBucketCorsWithContext(ctx aws.Context, input *DeleteBucketCorsInput, opts ...request.Option) (*DeleteBucketCorsOutput, error) { 1133 req, out := c.DeleteBucketCorsRequest(input) 1134 req.SetContext(ctx) 1135 req.ApplyOptions(opts...) 1136 return out, req.Send() 1137 } 1138 1139 const opDeleteBucketEncryption = "DeleteBucketEncryption" 1140 1141 // DeleteBucketEncryptionRequest generates a "aws/request.Request" representing the 1142 // client's request for the DeleteBucketEncryption operation. The "output" return 1143 // value will be populated with the request's response once the request completes 1144 // successfully. 1145 // 1146 // Use "Send" method on the returned Request to send the API call to the service. 1147 // the "output" return value is not valid until after Send returns without error. 1148 // 1149 // See DeleteBucketEncryption for more information on using the DeleteBucketEncryption 1150 // API call, and error handling. 1151 // 1152 // This method is useful when you want to inject custom logic or configuration 1153 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1154 // 1155 // 1156 // // Example sending a request using the DeleteBucketEncryptionRequest method. 1157 // req, resp := client.DeleteBucketEncryptionRequest(params) 1158 // 1159 // err := req.Send() 1160 // if err == nil { // resp is now filled 1161 // fmt.Println(resp) 1162 // } 1163 // 1164 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption 1165 func (c *S3) DeleteBucketEncryptionRequest(input *DeleteBucketEncryptionInput) (req *request.Request, output *DeleteBucketEncryptionOutput) { 1166 op := &request.Operation{ 1167 Name: opDeleteBucketEncryption, 1168 HTTPMethod: "DELETE", 1169 HTTPPath: "/{Bucket}?encryption", 1170 } 1171 1172 if input == nil { 1173 input = &DeleteBucketEncryptionInput{} 1174 } 1175 1176 output = &DeleteBucketEncryptionOutput{} 1177 req = c.newRequest(op, input, output) 1178 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1179 return 1180 } 1181 1182 // DeleteBucketEncryption API operation for Amazon Simple Storage Service. 1183 // 1184 // This implementation of the DELETE action removes default encryption from 1185 // the bucket. For information about the Amazon S3 default encryption feature, 1186 // see Amazon S3 Default Bucket Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) 1187 // in the Amazon S3 User Guide. 1188 // 1189 // To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration 1190 // action. The bucket owner has this permission by default. The bucket owner 1191 // can grant this permission to others. For more information about permissions, 1192 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 1193 // and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 1194 // in the Amazon S3 User Guide. 1195 // 1196 // Related Resources 1197 // 1198 // * PutBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) 1199 // 1200 // * GetBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) 1201 // 1202 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1203 // with awserr.Error's Code and Message methods to get detailed information about 1204 // the error. 1205 // 1206 // See the AWS API reference guide for Amazon Simple Storage Service's 1207 // API operation DeleteBucketEncryption for usage and error information. 1208 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryption 1209 func (c *S3) DeleteBucketEncryption(input *DeleteBucketEncryptionInput) (*DeleteBucketEncryptionOutput, error) { 1210 req, out := c.DeleteBucketEncryptionRequest(input) 1211 return out, req.Send() 1212 } 1213 1214 // DeleteBucketEncryptionWithContext is the same as DeleteBucketEncryption with the addition of 1215 // the ability to pass a context and additional request options. 1216 // 1217 // See DeleteBucketEncryption for details on how to use this API operation. 1218 // 1219 // The context must be non-nil and will be used for request cancellation. If 1220 // the context is nil a panic will occur. In the future the SDK may create 1221 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1222 // for more information on using Contexts. 1223 func (c *S3) DeleteBucketEncryptionWithContext(ctx aws.Context, input *DeleteBucketEncryptionInput, opts ...request.Option) (*DeleteBucketEncryptionOutput, error) { 1224 req, out := c.DeleteBucketEncryptionRequest(input) 1225 req.SetContext(ctx) 1226 req.ApplyOptions(opts...) 1227 return out, req.Send() 1228 } 1229 1230 const opDeleteBucketIntelligentTieringConfiguration = "DeleteBucketIntelligentTieringConfiguration" 1231 1232 // DeleteBucketIntelligentTieringConfigurationRequest generates a "aws/request.Request" representing the 1233 // client's request for the DeleteBucketIntelligentTieringConfiguration operation. The "output" return 1234 // value will be populated with the request's response once the request completes 1235 // successfully. 1236 // 1237 // Use "Send" method on the returned Request to send the API call to the service. 1238 // the "output" return value is not valid until after Send returns without error. 1239 // 1240 // See DeleteBucketIntelligentTieringConfiguration for more information on using the DeleteBucketIntelligentTieringConfiguration 1241 // API call, and error handling. 1242 // 1243 // This method is useful when you want to inject custom logic or configuration 1244 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1245 // 1246 // 1247 // // Example sending a request using the DeleteBucketIntelligentTieringConfigurationRequest method. 1248 // req, resp := client.DeleteBucketIntelligentTieringConfigurationRequest(params) 1249 // 1250 // err := req.Send() 1251 // if err == nil { // resp is now filled 1252 // fmt.Println(resp) 1253 // } 1254 // 1255 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration 1256 func (c *S3) DeleteBucketIntelligentTieringConfigurationRequest(input *DeleteBucketIntelligentTieringConfigurationInput) (req *request.Request, output *DeleteBucketIntelligentTieringConfigurationOutput) { 1257 op := &request.Operation{ 1258 Name: opDeleteBucketIntelligentTieringConfiguration, 1259 HTTPMethod: "DELETE", 1260 HTTPPath: "/{Bucket}?intelligent-tiering", 1261 } 1262 1263 if input == nil { 1264 input = &DeleteBucketIntelligentTieringConfigurationInput{} 1265 } 1266 1267 output = &DeleteBucketIntelligentTieringConfigurationOutput{} 1268 req = c.newRequest(op, input, output) 1269 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1270 return 1271 } 1272 1273 // DeleteBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. 1274 // 1275 // Deletes the S3 Intelligent-Tiering configuration from the specified bucket. 1276 // 1277 // The S3 Intelligent-Tiering storage class is designed to optimize storage 1278 // costs by automatically moving data to the most cost-effective storage access 1279 // tier, without performance impact or operational overhead. S3 Intelligent-Tiering 1280 // delivers automatic cost savings in two low latency and high throughput access 1281 // tiers. For data that can be accessed asynchronously, you can choose to activate 1282 // automatic archiving capabilities within the S3 Intelligent-Tiering storage 1283 // class. 1284 // 1285 // The S3 Intelligent-Tiering storage class is the ideal storage class for data 1286 // with unknown, changing, or unpredictable access patterns, independent of 1287 // object size or retention period. If the size of an object is less than 128 1288 // KB, it is not eligible for auto-tiering. Smaller objects can be stored, but 1289 // they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering 1290 // storage class. 1291 // 1292 // For more information, see Storage class for automatically optimizing frequently 1293 // and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). 1294 // 1295 // Operations related to DeleteBucketIntelligentTieringConfiguration include: 1296 // 1297 // * GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) 1298 // 1299 // * PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) 1300 // 1301 // * ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) 1302 // 1303 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1304 // with awserr.Error's Code and Message methods to get detailed information about 1305 // the error. 1306 // 1307 // See the AWS API reference guide for Amazon Simple Storage Service's 1308 // API operation DeleteBucketIntelligentTieringConfiguration for usage and error information. 1309 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration 1310 func (c *S3) DeleteBucketIntelligentTieringConfiguration(input *DeleteBucketIntelligentTieringConfigurationInput) (*DeleteBucketIntelligentTieringConfigurationOutput, error) { 1311 req, out := c.DeleteBucketIntelligentTieringConfigurationRequest(input) 1312 return out, req.Send() 1313 } 1314 1315 // DeleteBucketIntelligentTieringConfigurationWithContext is the same as DeleteBucketIntelligentTieringConfiguration with the addition of 1316 // the ability to pass a context and additional request options. 1317 // 1318 // See DeleteBucketIntelligentTieringConfiguration for details on how to use this API operation. 1319 // 1320 // The context must be non-nil and will be used for request cancellation. If 1321 // the context is nil a panic will occur. In the future the SDK may create 1322 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1323 // for more information on using Contexts. 1324 func (c *S3) DeleteBucketIntelligentTieringConfigurationWithContext(ctx aws.Context, input *DeleteBucketIntelligentTieringConfigurationInput, opts ...request.Option) (*DeleteBucketIntelligentTieringConfigurationOutput, error) { 1325 req, out := c.DeleteBucketIntelligentTieringConfigurationRequest(input) 1326 req.SetContext(ctx) 1327 req.ApplyOptions(opts...) 1328 return out, req.Send() 1329 } 1330 1331 const opDeleteBucketInventoryConfiguration = "DeleteBucketInventoryConfiguration" 1332 1333 // DeleteBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the 1334 // client's request for the DeleteBucketInventoryConfiguration operation. The "output" return 1335 // value will be populated with the request's response once the request completes 1336 // successfully. 1337 // 1338 // Use "Send" method on the returned Request to send the API call to the service. 1339 // the "output" return value is not valid until after Send returns without error. 1340 // 1341 // See DeleteBucketInventoryConfiguration for more information on using the DeleteBucketInventoryConfiguration 1342 // API call, and error handling. 1343 // 1344 // This method is useful when you want to inject custom logic or configuration 1345 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1346 // 1347 // 1348 // // Example sending a request using the DeleteBucketInventoryConfigurationRequest method. 1349 // req, resp := client.DeleteBucketInventoryConfigurationRequest(params) 1350 // 1351 // err := req.Send() 1352 // if err == nil { // resp is now filled 1353 // fmt.Println(resp) 1354 // } 1355 // 1356 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration 1357 func (c *S3) DeleteBucketInventoryConfigurationRequest(input *DeleteBucketInventoryConfigurationInput) (req *request.Request, output *DeleteBucketInventoryConfigurationOutput) { 1358 op := &request.Operation{ 1359 Name: opDeleteBucketInventoryConfiguration, 1360 HTTPMethod: "DELETE", 1361 HTTPPath: "/{Bucket}?inventory", 1362 } 1363 1364 if input == nil { 1365 input = &DeleteBucketInventoryConfigurationInput{} 1366 } 1367 1368 output = &DeleteBucketInventoryConfigurationOutput{} 1369 req = c.newRequest(op, input, output) 1370 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1371 return 1372 } 1373 1374 // DeleteBucketInventoryConfiguration API operation for Amazon Simple Storage Service. 1375 // 1376 // Deletes an inventory configuration (identified by the inventory ID) from 1377 // the bucket. 1378 // 1379 // To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration 1380 // action. The bucket owner has this permission by default. The bucket owner 1381 // can grant this permission to others. For more information about permissions, 1382 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 1383 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 1384 // 1385 // For information about the Amazon S3 inventory feature, see Amazon S3 Inventory 1386 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). 1387 // 1388 // Operations related to DeleteBucketInventoryConfiguration include: 1389 // 1390 // * GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) 1391 // 1392 // * PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) 1393 // 1394 // * ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) 1395 // 1396 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1397 // with awserr.Error's Code and Message methods to get detailed information about 1398 // the error. 1399 // 1400 // See the AWS API reference guide for Amazon Simple Storage Service's 1401 // API operation DeleteBucketInventoryConfiguration for usage and error information. 1402 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfiguration 1403 func (c *S3) DeleteBucketInventoryConfiguration(input *DeleteBucketInventoryConfigurationInput) (*DeleteBucketInventoryConfigurationOutput, error) { 1404 req, out := c.DeleteBucketInventoryConfigurationRequest(input) 1405 return out, req.Send() 1406 } 1407 1408 // DeleteBucketInventoryConfigurationWithContext is the same as DeleteBucketInventoryConfiguration with the addition of 1409 // the ability to pass a context and additional request options. 1410 // 1411 // See DeleteBucketInventoryConfiguration for details on how to use this API operation. 1412 // 1413 // The context must be non-nil and will be used for request cancellation. If 1414 // the context is nil a panic will occur. In the future the SDK may create 1415 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1416 // for more information on using Contexts. 1417 func (c *S3) DeleteBucketInventoryConfigurationWithContext(ctx aws.Context, input *DeleteBucketInventoryConfigurationInput, opts ...request.Option) (*DeleteBucketInventoryConfigurationOutput, error) { 1418 req, out := c.DeleteBucketInventoryConfigurationRequest(input) 1419 req.SetContext(ctx) 1420 req.ApplyOptions(opts...) 1421 return out, req.Send() 1422 } 1423 1424 const opDeleteBucketLifecycle = "DeleteBucketLifecycle" 1425 1426 // DeleteBucketLifecycleRequest generates a "aws/request.Request" representing the 1427 // client's request for the DeleteBucketLifecycle operation. The "output" return 1428 // value will be populated with the request's response once the request completes 1429 // successfully. 1430 // 1431 // Use "Send" method on the returned Request to send the API call to the service. 1432 // the "output" return value is not valid until after Send returns without error. 1433 // 1434 // See DeleteBucketLifecycle for more information on using the DeleteBucketLifecycle 1435 // API call, and error handling. 1436 // 1437 // This method is useful when you want to inject custom logic or configuration 1438 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1439 // 1440 // 1441 // // Example sending a request using the DeleteBucketLifecycleRequest method. 1442 // req, resp := client.DeleteBucketLifecycleRequest(params) 1443 // 1444 // err := req.Send() 1445 // if err == nil { // resp is now filled 1446 // fmt.Println(resp) 1447 // } 1448 // 1449 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle 1450 func (c *S3) DeleteBucketLifecycleRequest(input *DeleteBucketLifecycleInput) (req *request.Request, output *DeleteBucketLifecycleOutput) { 1451 op := &request.Operation{ 1452 Name: opDeleteBucketLifecycle, 1453 HTTPMethod: "DELETE", 1454 HTTPPath: "/{Bucket}?lifecycle", 1455 } 1456 1457 if input == nil { 1458 input = &DeleteBucketLifecycleInput{} 1459 } 1460 1461 output = &DeleteBucketLifecycleOutput{} 1462 req = c.newRequest(op, input, output) 1463 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1464 return 1465 } 1466 1467 // DeleteBucketLifecycle API operation for Amazon Simple Storage Service. 1468 // 1469 // Deletes the lifecycle configuration from the specified bucket. Amazon S3 1470 // removes all the lifecycle configuration rules in the lifecycle subresource 1471 // associated with the bucket. Your objects never expire, and Amazon S3 no longer 1472 // automatically deletes any objects on the basis of rules contained in the 1473 // deleted lifecycle configuration. 1474 // 1475 // To use this operation, you must have permission to perform the s3:PutLifecycleConfiguration 1476 // action. By default, the bucket owner has this permission and the bucket owner 1477 // can grant this permission to others. 1478 // 1479 // There is usually some time lag before lifecycle configuration deletion is 1480 // fully propagated to all the Amazon S3 systems. 1481 // 1482 // For more information about the object expiration, see Elements to Describe 1483 // Lifecycle Actions (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions). 1484 // 1485 // Related actions include: 1486 // 1487 // * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) 1488 // 1489 // * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) 1490 // 1491 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1492 // with awserr.Error's Code and Message methods to get detailed information about 1493 // the error. 1494 // 1495 // See the AWS API reference guide for Amazon Simple Storage Service's 1496 // API operation DeleteBucketLifecycle for usage and error information. 1497 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycle 1498 func (c *S3) DeleteBucketLifecycle(input *DeleteBucketLifecycleInput) (*DeleteBucketLifecycleOutput, error) { 1499 req, out := c.DeleteBucketLifecycleRequest(input) 1500 return out, req.Send() 1501 } 1502 1503 // DeleteBucketLifecycleWithContext is the same as DeleteBucketLifecycle with the addition of 1504 // the ability to pass a context and additional request options. 1505 // 1506 // See DeleteBucketLifecycle for details on how to use this API operation. 1507 // 1508 // The context must be non-nil and will be used for request cancellation. If 1509 // the context is nil a panic will occur. In the future the SDK may create 1510 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1511 // for more information on using Contexts. 1512 func (c *S3) DeleteBucketLifecycleWithContext(ctx aws.Context, input *DeleteBucketLifecycleInput, opts ...request.Option) (*DeleteBucketLifecycleOutput, error) { 1513 req, out := c.DeleteBucketLifecycleRequest(input) 1514 req.SetContext(ctx) 1515 req.ApplyOptions(opts...) 1516 return out, req.Send() 1517 } 1518 1519 const opDeleteBucketMetricsConfiguration = "DeleteBucketMetricsConfiguration" 1520 1521 // DeleteBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the 1522 // client's request for the DeleteBucketMetricsConfiguration operation. The "output" return 1523 // value will be populated with the request's response once the request completes 1524 // successfully. 1525 // 1526 // Use "Send" method on the returned Request to send the API call to the service. 1527 // the "output" return value is not valid until after Send returns without error. 1528 // 1529 // See DeleteBucketMetricsConfiguration for more information on using the DeleteBucketMetricsConfiguration 1530 // API call, and error handling. 1531 // 1532 // This method is useful when you want to inject custom logic or configuration 1533 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1534 // 1535 // 1536 // // Example sending a request using the DeleteBucketMetricsConfigurationRequest method. 1537 // req, resp := client.DeleteBucketMetricsConfigurationRequest(params) 1538 // 1539 // err := req.Send() 1540 // if err == nil { // resp is now filled 1541 // fmt.Println(resp) 1542 // } 1543 // 1544 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration 1545 func (c *S3) DeleteBucketMetricsConfigurationRequest(input *DeleteBucketMetricsConfigurationInput) (req *request.Request, output *DeleteBucketMetricsConfigurationOutput) { 1546 op := &request.Operation{ 1547 Name: opDeleteBucketMetricsConfiguration, 1548 HTTPMethod: "DELETE", 1549 HTTPPath: "/{Bucket}?metrics", 1550 } 1551 1552 if input == nil { 1553 input = &DeleteBucketMetricsConfigurationInput{} 1554 } 1555 1556 output = &DeleteBucketMetricsConfigurationOutput{} 1557 req = c.newRequest(op, input, output) 1558 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1559 return 1560 } 1561 1562 // DeleteBucketMetricsConfiguration API operation for Amazon Simple Storage Service. 1563 // 1564 // Deletes a metrics configuration for the Amazon CloudWatch request metrics 1565 // (specified by the metrics configuration ID) from the bucket. Note that this 1566 // doesn't include the daily storage metrics. 1567 // 1568 // To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration 1569 // action. The bucket owner has this permission by default. The bucket owner 1570 // can grant this permission to others. For more information about permissions, 1571 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 1572 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 1573 // 1574 // For information about CloudWatch request metrics for Amazon S3, see Monitoring 1575 // Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). 1576 // 1577 // The following operations are related to DeleteBucketMetricsConfiguration: 1578 // 1579 // * GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) 1580 // 1581 // * PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) 1582 // 1583 // * ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) 1584 // 1585 // * Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) 1586 // 1587 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1588 // with awserr.Error's Code and Message methods to get detailed information about 1589 // the error. 1590 // 1591 // See the AWS API reference guide for Amazon Simple Storage Service's 1592 // API operation DeleteBucketMetricsConfiguration for usage and error information. 1593 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfiguration 1594 func (c *S3) DeleteBucketMetricsConfiguration(input *DeleteBucketMetricsConfigurationInput) (*DeleteBucketMetricsConfigurationOutput, error) { 1595 req, out := c.DeleteBucketMetricsConfigurationRequest(input) 1596 return out, req.Send() 1597 } 1598 1599 // DeleteBucketMetricsConfigurationWithContext is the same as DeleteBucketMetricsConfiguration with the addition of 1600 // the ability to pass a context and additional request options. 1601 // 1602 // See DeleteBucketMetricsConfiguration for details on how to use this API operation. 1603 // 1604 // The context must be non-nil and will be used for request cancellation. If 1605 // the context is nil a panic will occur. In the future the SDK may create 1606 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1607 // for more information on using Contexts. 1608 func (c *S3) DeleteBucketMetricsConfigurationWithContext(ctx aws.Context, input *DeleteBucketMetricsConfigurationInput, opts ...request.Option) (*DeleteBucketMetricsConfigurationOutput, error) { 1609 req, out := c.DeleteBucketMetricsConfigurationRequest(input) 1610 req.SetContext(ctx) 1611 req.ApplyOptions(opts...) 1612 return out, req.Send() 1613 } 1614 1615 const opDeleteBucketOwnershipControls = "DeleteBucketOwnershipControls" 1616 1617 // DeleteBucketOwnershipControlsRequest generates a "aws/request.Request" representing the 1618 // client's request for the DeleteBucketOwnershipControls operation. The "output" return 1619 // value will be populated with the request's response once the request completes 1620 // successfully. 1621 // 1622 // Use "Send" method on the returned Request to send the API call to the service. 1623 // the "output" return value is not valid until after Send returns without error. 1624 // 1625 // See DeleteBucketOwnershipControls for more information on using the DeleteBucketOwnershipControls 1626 // API call, and error handling. 1627 // 1628 // This method is useful when you want to inject custom logic or configuration 1629 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1630 // 1631 // 1632 // // Example sending a request using the DeleteBucketOwnershipControlsRequest method. 1633 // req, resp := client.DeleteBucketOwnershipControlsRequest(params) 1634 // 1635 // err := req.Send() 1636 // if err == nil { // resp is now filled 1637 // fmt.Println(resp) 1638 // } 1639 // 1640 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls 1641 func (c *S3) DeleteBucketOwnershipControlsRequest(input *DeleteBucketOwnershipControlsInput) (req *request.Request, output *DeleteBucketOwnershipControlsOutput) { 1642 op := &request.Operation{ 1643 Name: opDeleteBucketOwnershipControls, 1644 HTTPMethod: "DELETE", 1645 HTTPPath: "/{Bucket}?ownershipControls", 1646 } 1647 1648 if input == nil { 1649 input = &DeleteBucketOwnershipControlsInput{} 1650 } 1651 1652 output = &DeleteBucketOwnershipControlsOutput{} 1653 req = c.newRequest(op, input, output) 1654 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1655 return 1656 } 1657 1658 // DeleteBucketOwnershipControls API operation for Amazon Simple Storage Service. 1659 // 1660 // Removes OwnershipControls for an Amazon S3 bucket. To use this operation, 1661 // you must have the s3:PutBucketOwnershipControls permission. For more information 1662 // about Amazon S3 permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). 1663 // 1664 // For information about Amazon S3 Object Ownership, see Using Object Ownership 1665 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). 1666 // 1667 // The following operations are related to DeleteBucketOwnershipControls: 1668 // 1669 // * GetBucketOwnershipControls 1670 // 1671 // * PutBucketOwnershipControls 1672 // 1673 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1674 // with awserr.Error's Code and Message methods to get detailed information about 1675 // the error. 1676 // 1677 // See the AWS API reference guide for Amazon Simple Storage Service's 1678 // API operation DeleteBucketOwnershipControls for usage and error information. 1679 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls 1680 func (c *S3) DeleteBucketOwnershipControls(input *DeleteBucketOwnershipControlsInput) (*DeleteBucketOwnershipControlsOutput, error) { 1681 req, out := c.DeleteBucketOwnershipControlsRequest(input) 1682 return out, req.Send() 1683 } 1684 1685 // DeleteBucketOwnershipControlsWithContext is the same as DeleteBucketOwnershipControls with the addition of 1686 // the ability to pass a context and additional request options. 1687 // 1688 // See DeleteBucketOwnershipControls for details on how to use this API operation. 1689 // 1690 // The context must be non-nil and will be used for request cancellation. If 1691 // the context is nil a panic will occur. In the future the SDK may create 1692 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1693 // for more information on using Contexts. 1694 func (c *S3) DeleteBucketOwnershipControlsWithContext(ctx aws.Context, input *DeleteBucketOwnershipControlsInput, opts ...request.Option) (*DeleteBucketOwnershipControlsOutput, error) { 1695 req, out := c.DeleteBucketOwnershipControlsRequest(input) 1696 req.SetContext(ctx) 1697 req.ApplyOptions(opts...) 1698 return out, req.Send() 1699 } 1700 1701 const opDeleteBucketPolicy = "DeleteBucketPolicy" 1702 1703 // DeleteBucketPolicyRequest generates a "aws/request.Request" representing the 1704 // client's request for the DeleteBucketPolicy operation. The "output" return 1705 // value will be populated with the request's response once the request completes 1706 // successfully. 1707 // 1708 // Use "Send" method on the returned Request to send the API call to the service. 1709 // the "output" return value is not valid until after Send returns without error. 1710 // 1711 // See DeleteBucketPolicy for more information on using the DeleteBucketPolicy 1712 // API call, and error handling. 1713 // 1714 // This method is useful when you want to inject custom logic or configuration 1715 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1716 // 1717 // 1718 // // Example sending a request using the DeleteBucketPolicyRequest method. 1719 // req, resp := client.DeleteBucketPolicyRequest(params) 1720 // 1721 // err := req.Send() 1722 // if err == nil { // resp is now filled 1723 // fmt.Println(resp) 1724 // } 1725 // 1726 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy 1727 func (c *S3) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *request.Request, output *DeleteBucketPolicyOutput) { 1728 op := &request.Operation{ 1729 Name: opDeleteBucketPolicy, 1730 HTTPMethod: "DELETE", 1731 HTTPPath: "/{Bucket}?policy", 1732 } 1733 1734 if input == nil { 1735 input = &DeleteBucketPolicyInput{} 1736 } 1737 1738 output = &DeleteBucketPolicyOutput{} 1739 req = c.newRequest(op, input, output) 1740 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1741 return 1742 } 1743 1744 // DeleteBucketPolicy API operation for Amazon Simple Storage Service. 1745 // 1746 // This implementation of the DELETE action uses the policy subresource to delete 1747 // the policy of a specified bucket. If you are using an identity other than 1748 // the root user of the Amazon Web Services account that owns the bucket, the 1749 // calling identity must have the DeleteBucketPolicy permissions on the specified 1750 // bucket and belong to the bucket owner's account to use this operation. 1751 // 1752 // If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 1753 // Access Denied error. If you have the correct permissions, but you're not 1754 // using an identity that belongs to the bucket owner's account, Amazon S3 returns 1755 // a 405 Method Not Allowed error. 1756 // 1757 // As a security precaution, the root user of the Amazon Web Services account 1758 // that owns a bucket can always use this operation, even if the policy explicitly 1759 // denies the root user the ability to perform this action. 1760 // 1761 // For more information about bucket policies, see Using Bucket Policies and 1762 // UserPolicies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). 1763 // 1764 // The following operations are related to DeleteBucketPolicy 1765 // 1766 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 1767 // 1768 // * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) 1769 // 1770 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1771 // with awserr.Error's Code and Message methods to get detailed information about 1772 // the error. 1773 // 1774 // See the AWS API reference guide for Amazon Simple Storage Service's 1775 // API operation DeleteBucketPolicy for usage and error information. 1776 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicy 1777 func (c *S3) DeleteBucketPolicy(input *DeleteBucketPolicyInput) (*DeleteBucketPolicyOutput, error) { 1778 req, out := c.DeleteBucketPolicyRequest(input) 1779 return out, req.Send() 1780 } 1781 1782 // DeleteBucketPolicyWithContext is the same as DeleteBucketPolicy with the addition of 1783 // the ability to pass a context and additional request options. 1784 // 1785 // See DeleteBucketPolicy for details on how to use this API operation. 1786 // 1787 // The context must be non-nil and will be used for request cancellation. If 1788 // the context is nil a panic will occur. In the future the SDK may create 1789 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1790 // for more information on using Contexts. 1791 func (c *S3) DeleteBucketPolicyWithContext(ctx aws.Context, input *DeleteBucketPolicyInput, opts ...request.Option) (*DeleteBucketPolicyOutput, error) { 1792 req, out := c.DeleteBucketPolicyRequest(input) 1793 req.SetContext(ctx) 1794 req.ApplyOptions(opts...) 1795 return out, req.Send() 1796 } 1797 1798 const opDeleteBucketReplication = "DeleteBucketReplication" 1799 1800 // DeleteBucketReplicationRequest generates a "aws/request.Request" representing the 1801 // client's request for the DeleteBucketReplication operation. The "output" return 1802 // value will be populated with the request's response once the request completes 1803 // successfully. 1804 // 1805 // Use "Send" method on the returned Request to send the API call to the service. 1806 // the "output" return value is not valid until after Send returns without error. 1807 // 1808 // See DeleteBucketReplication for more information on using the DeleteBucketReplication 1809 // API call, and error handling. 1810 // 1811 // This method is useful when you want to inject custom logic or configuration 1812 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1813 // 1814 // 1815 // // Example sending a request using the DeleteBucketReplicationRequest method. 1816 // req, resp := client.DeleteBucketReplicationRequest(params) 1817 // 1818 // err := req.Send() 1819 // if err == nil { // resp is now filled 1820 // fmt.Println(resp) 1821 // } 1822 // 1823 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication 1824 func (c *S3) DeleteBucketReplicationRequest(input *DeleteBucketReplicationInput) (req *request.Request, output *DeleteBucketReplicationOutput) { 1825 op := &request.Operation{ 1826 Name: opDeleteBucketReplication, 1827 HTTPMethod: "DELETE", 1828 HTTPPath: "/{Bucket}?replication", 1829 } 1830 1831 if input == nil { 1832 input = &DeleteBucketReplicationInput{} 1833 } 1834 1835 output = &DeleteBucketReplicationOutput{} 1836 req = c.newRequest(op, input, output) 1837 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1838 return 1839 } 1840 1841 // DeleteBucketReplication API operation for Amazon Simple Storage Service. 1842 // 1843 // Deletes the replication configuration from the bucket. 1844 // 1845 // To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration 1846 // action. The bucket owner has these permissions by default and can grant it 1847 // to others. For more information about permissions, see Permissions Related 1848 // to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 1849 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 1850 // 1851 // It can take a while for the deletion of a replication configuration to fully 1852 // propagate. 1853 // 1854 // For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) 1855 // in the Amazon S3 User Guide. 1856 // 1857 // The following operations are related to DeleteBucketReplication: 1858 // 1859 // * PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) 1860 // 1861 // * GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) 1862 // 1863 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1864 // with awserr.Error's Code and Message methods to get detailed information about 1865 // the error. 1866 // 1867 // See the AWS API reference guide for Amazon Simple Storage Service's 1868 // API operation DeleteBucketReplication for usage and error information. 1869 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplication 1870 func (c *S3) DeleteBucketReplication(input *DeleteBucketReplicationInput) (*DeleteBucketReplicationOutput, error) { 1871 req, out := c.DeleteBucketReplicationRequest(input) 1872 return out, req.Send() 1873 } 1874 1875 // DeleteBucketReplicationWithContext is the same as DeleteBucketReplication with the addition of 1876 // the ability to pass a context and additional request options. 1877 // 1878 // See DeleteBucketReplication for details on how to use this API operation. 1879 // 1880 // The context must be non-nil and will be used for request cancellation. If 1881 // the context is nil a panic will occur. In the future the SDK may create 1882 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1883 // for more information on using Contexts. 1884 func (c *S3) DeleteBucketReplicationWithContext(ctx aws.Context, input *DeleteBucketReplicationInput, opts ...request.Option) (*DeleteBucketReplicationOutput, error) { 1885 req, out := c.DeleteBucketReplicationRequest(input) 1886 req.SetContext(ctx) 1887 req.ApplyOptions(opts...) 1888 return out, req.Send() 1889 } 1890 1891 const opDeleteBucketTagging = "DeleteBucketTagging" 1892 1893 // DeleteBucketTaggingRequest generates a "aws/request.Request" representing the 1894 // client's request for the DeleteBucketTagging operation. The "output" return 1895 // value will be populated with the request's response once the request completes 1896 // successfully. 1897 // 1898 // Use "Send" method on the returned Request to send the API call to the service. 1899 // the "output" return value is not valid until after Send returns without error. 1900 // 1901 // See DeleteBucketTagging for more information on using the DeleteBucketTagging 1902 // API call, and error handling. 1903 // 1904 // This method is useful when you want to inject custom logic or configuration 1905 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1906 // 1907 // 1908 // // Example sending a request using the DeleteBucketTaggingRequest method. 1909 // req, resp := client.DeleteBucketTaggingRequest(params) 1910 // 1911 // err := req.Send() 1912 // if err == nil { // resp is now filled 1913 // fmt.Println(resp) 1914 // } 1915 // 1916 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging 1917 func (c *S3) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *request.Request, output *DeleteBucketTaggingOutput) { 1918 op := &request.Operation{ 1919 Name: opDeleteBucketTagging, 1920 HTTPMethod: "DELETE", 1921 HTTPPath: "/{Bucket}?tagging", 1922 } 1923 1924 if input == nil { 1925 input = &DeleteBucketTaggingInput{} 1926 } 1927 1928 output = &DeleteBucketTaggingOutput{} 1929 req = c.newRequest(op, input, output) 1930 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1931 return 1932 } 1933 1934 // DeleteBucketTagging API operation for Amazon Simple Storage Service. 1935 // 1936 // Deletes the tags from the bucket. 1937 // 1938 // To use this operation, you must have permission to perform the s3:PutBucketTagging 1939 // action. By default, the bucket owner has this permission and can grant this 1940 // permission to others. 1941 // 1942 // The following operations are related to DeleteBucketTagging: 1943 // 1944 // * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) 1945 // 1946 // * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) 1947 // 1948 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1949 // with awserr.Error's Code and Message methods to get detailed information about 1950 // the error. 1951 // 1952 // See the AWS API reference guide for Amazon Simple Storage Service's 1953 // API operation DeleteBucketTagging for usage and error information. 1954 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTagging 1955 func (c *S3) DeleteBucketTagging(input *DeleteBucketTaggingInput) (*DeleteBucketTaggingOutput, error) { 1956 req, out := c.DeleteBucketTaggingRequest(input) 1957 return out, req.Send() 1958 } 1959 1960 // DeleteBucketTaggingWithContext is the same as DeleteBucketTagging with the addition of 1961 // the ability to pass a context and additional request options. 1962 // 1963 // See DeleteBucketTagging for details on how to use this API operation. 1964 // 1965 // The context must be non-nil and will be used for request cancellation. If 1966 // the context is nil a panic will occur. In the future the SDK may create 1967 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1968 // for more information on using Contexts. 1969 func (c *S3) DeleteBucketTaggingWithContext(ctx aws.Context, input *DeleteBucketTaggingInput, opts ...request.Option) (*DeleteBucketTaggingOutput, error) { 1970 req, out := c.DeleteBucketTaggingRequest(input) 1971 req.SetContext(ctx) 1972 req.ApplyOptions(opts...) 1973 return out, req.Send() 1974 } 1975 1976 const opDeleteBucketWebsite = "DeleteBucketWebsite" 1977 1978 // DeleteBucketWebsiteRequest generates a "aws/request.Request" representing the 1979 // client's request for the DeleteBucketWebsite operation. The "output" return 1980 // value will be populated with the request's response once the request completes 1981 // successfully. 1982 // 1983 // Use "Send" method on the returned Request to send the API call to the service. 1984 // the "output" return value is not valid until after Send returns without error. 1985 // 1986 // See DeleteBucketWebsite for more information on using the DeleteBucketWebsite 1987 // API call, and error handling. 1988 // 1989 // This method is useful when you want to inject custom logic or configuration 1990 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1991 // 1992 // 1993 // // Example sending a request using the DeleteBucketWebsiteRequest method. 1994 // req, resp := client.DeleteBucketWebsiteRequest(params) 1995 // 1996 // err := req.Send() 1997 // if err == nil { // resp is now filled 1998 // fmt.Println(resp) 1999 // } 2000 // 2001 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite 2002 func (c *S3) DeleteBucketWebsiteRequest(input *DeleteBucketWebsiteInput) (req *request.Request, output *DeleteBucketWebsiteOutput) { 2003 op := &request.Operation{ 2004 Name: opDeleteBucketWebsite, 2005 HTTPMethod: "DELETE", 2006 HTTPPath: "/{Bucket}?website", 2007 } 2008 2009 if input == nil { 2010 input = &DeleteBucketWebsiteInput{} 2011 } 2012 2013 output = &DeleteBucketWebsiteOutput{} 2014 req = c.newRequest(op, input, output) 2015 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 2016 return 2017 } 2018 2019 // DeleteBucketWebsite API operation for Amazon Simple Storage Service. 2020 // 2021 // This action removes the website configuration for a bucket. Amazon S3 returns 2022 // a 200 OK response upon successfully deleting a website configuration on the 2023 // specified bucket. You will get a 200 OK response if the website configuration 2024 // you are trying to delete does not exist on the bucket. Amazon S3 returns 2025 // a 404 response if the bucket specified in the request does not exist. 2026 // 2027 // This DELETE action requires the S3:DeleteBucketWebsite permission. By default, 2028 // only the bucket owner can delete the website configuration attached to a 2029 // bucket. However, bucket owners can grant other users permission to delete 2030 // the website configuration by writing a bucket policy granting them the S3:DeleteBucketWebsite 2031 // permission. 2032 // 2033 // For more information about hosting websites, see Hosting Websites on Amazon 2034 // S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). 2035 // 2036 // The following operations are related to DeleteBucketWebsite: 2037 // 2038 // * GetBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html) 2039 // 2040 // * PutBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) 2041 // 2042 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2043 // with awserr.Error's Code and Message methods to get detailed information about 2044 // the error. 2045 // 2046 // See the AWS API reference guide for Amazon Simple Storage Service's 2047 // API operation DeleteBucketWebsite for usage and error information. 2048 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsite 2049 func (c *S3) DeleteBucketWebsite(input *DeleteBucketWebsiteInput) (*DeleteBucketWebsiteOutput, error) { 2050 req, out := c.DeleteBucketWebsiteRequest(input) 2051 return out, req.Send() 2052 } 2053 2054 // DeleteBucketWebsiteWithContext is the same as DeleteBucketWebsite with the addition of 2055 // the ability to pass a context and additional request options. 2056 // 2057 // See DeleteBucketWebsite for details on how to use this API operation. 2058 // 2059 // The context must be non-nil and will be used for request cancellation. If 2060 // the context is nil a panic will occur. In the future the SDK may create 2061 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2062 // for more information on using Contexts. 2063 func (c *S3) DeleteBucketWebsiteWithContext(ctx aws.Context, input *DeleteBucketWebsiteInput, opts ...request.Option) (*DeleteBucketWebsiteOutput, error) { 2064 req, out := c.DeleteBucketWebsiteRequest(input) 2065 req.SetContext(ctx) 2066 req.ApplyOptions(opts...) 2067 return out, req.Send() 2068 } 2069 2070 const opDeleteObject = "DeleteObject" 2071 2072 // DeleteObjectRequest generates a "aws/request.Request" representing the 2073 // client's request for the DeleteObject operation. The "output" return 2074 // value will be populated with the request's response once the request completes 2075 // successfully. 2076 // 2077 // Use "Send" method on the returned Request to send the API call to the service. 2078 // the "output" return value is not valid until after Send returns without error. 2079 // 2080 // See DeleteObject for more information on using the DeleteObject 2081 // API call, and error handling. 2082 // 2083 // This method is useful when you want to inject custom logic or configuration 2084 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2085 // 2086 // 2087 // // Example sending a request using the DeleteObjectRequest method. 2088 // req, resp := client.DeleteObjectRequest(params) 2089 // 2090 // err := req.Send() 2091 // if err == nil { // resp is now filled 2092 // fmt.Println(resp) 2093 // } 2094 // 2095 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject 2096 func (c *S3) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request, output *DeleteObjectOutput) { 2097 op := &request.Operation{ 2098 Name: opDeleteObject, 2099 HTTPMethod: "DELETE", 2100 HTTPPath: "/{Bucket}/{Key+}", 2101 } 2102 2103 if input == nil { 2104 input = &DeleteObjectInput{} 2105 } 2106 2107 output = &DeleteObjectOutput{} 2108 req = c.newRequest(op, input, output) 2109 return 2110 } 2111 2112 // DeleteObject API operation for Amazon Simple Storage Service. 2113 // 2114 // Removes the null version (if there is one) of an object and inserts a delete 2115 // marker, which becomes the latest version of the object. If there isn't a 2116 // null version, Amazon S3 does not remove any objects but will still respond 2117 // that the command was successful. 2118 // 2119 // To remove a specific version, you must be the bucket owner and you must use 2120 // the version Id subresource. Using this subresource permanently deletes the 2121 // version. If the object deleted is a delete marker, Amazon S3 sets the response 2122 // header, x-amz-delete-marker, to true. 2123 // 2124 // If the object you want to delete is in a bucket where the bucket versioning 2125 // configuration is MFA Delete enabled, you must include the x-amz-mfa request 2126 // header in the DELETE versionId request. Requests that include x-amz-mfa must 2127 // use HTTPS. 2128 // 2129 // For more information about MFA Delete, see Using MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html). 2130 // To see sample requests that use versioning, see Sample Request (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete). 2131 // 2132 // You can delete objects by explicitly calling DELETE Object or configure its 2133 // lifecycle (PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)) 2134 // to enable Amazon S3 to remove them for you. If you want to block users or 2135 // accounts from removing or deleting objects from your bucket, you must deny 2136 // them the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration 2137 // actions. 2138 // 2139 // The following action is related to DeleteObject: 2140 // 2141 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 2142 // 2143 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2144 // with awserr.Error's Code and Message methods to get detailed information about 2145 // the error. 2146 // 2147 // See the AWS API reference guide for Amazon Simple Storage Service's 2148 // API operation DeleteObject for usage and error information. 2149 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObject 2150 func (c *S3) DeleteObject(input *DeleteObjectInput) (*DeleteObjectOutput, error) { 2151 req, out := c.DeleteObjectRequest(input) 2152 return out, req.Send() 2153 } 2154 2155 // DeleteObjectWithContext is the same as DeleteObject with the addition of 2156 // the ability to pass a context and additional request options. 2157 // 2158 // See DeleteObject for details on how to use this API operation. 2159 // 2160 // The context must be non-nil and will be used for request cancellation. If 2161 // the context is nil a panic will occur. In the future the SDK may create 2162 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2163 // for more information on using Contexts. 2164 func (c *S3) DeleteObjectWithContext(ctx aws.Context, input *DeleteObjectInput, opts ...request.Option) (*DeleteObjectOutput, error) { 2165 req, out := c.DeleteObjectRequest(input) 2166 req.SetContext(ctx) 2167 req.ApplyOptions(opts...) 2168 return out, req.Send() 2169 } 2170 2171 const opDeleteObjectTagging = "DeleteObjectTagging" 2172 2173 // DeleteObjectTaggingRequest generates a "aws/request.Request" representing the 2174 // client's request for the DeleteObjectTagging operation. The "output" return 2175 // value will be populated with the request's response once the request completes 2176 // successfully. 2177 // 2178 // Use "Send" method on the returned Request to send the API call to the service. 2179 // the "output" return value is not valid until after Send returns without error. 2180 // 2181 // See DeleteObjectTagging for more information on using the DeleteObjectTagging 2182 // API call, and error handling. 2183 // 2184 // This method is useful when you want to inject custom logic or configuration 2185 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2186 // 2187 // 2188 // // Example sending a request using the DeleteObjectTaggingRequest method. 2189 // req, resp := client.DeleteObjectTaggingRequest(params) 2190 // 2191 // err := req.Send() 2192 // if err == nil { // resp is now filled 2193 // fmt.Println(resp) 2194 // } 2195 // 2196 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging 2197 func (c *S3) DeleteObjectTaggingRequest(input *DeleteObjectTaggingInput) (req *request.Request, output *DeleteObjectTaggingOutput) { 2198 op := &request.Operation{ 2199 Name: opDeleteObjectTagging, 2200 HTTPMethod: "DELETE", 2201 HTTPPath: "/{Bucket}/{Key+}?tagging", 2202 } 2203 2204 if input == nil { 2205 input = &DeleteObjectTaggingInput{} 2206 } 2207 2208 output = &DeleteObjectTaggingOutput{} 2209 req = c.newRequest(op, input, output) 2210 return 2211 } 2212 2213 // DeleteObjectTagging API operation for Amazon Simple Storage Service. 2214 // 2215 // Removes the entire tag set from the specified object. For more information 2216 // about managing object tags, see Object Tagging (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). 2217 // 2218 // To use this operation, you must have permission to perform the s3:DeleteObjectTagging 2219 // action. 2220 // 2221 // To delete tags of a specific object version, add the versionId query parameter 2222 // in the request. You will need permission for the s3:DeleteObjectVersionTagging 2223 // action. 2224 // 2225 // The following operations are related to DeleteBucketMetricsConfiguration: 2226 // 2227 // * PutObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) 2228 // 2229 // * GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) 2230 // 2231 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2232 // with awserr.Error's Code and Message methods to get detailed information about 2233 // the error. 2234 // 2235 // See the AWS API reference guide for Amazon Simple Storage Service's 2236 // API operation DeleteObjectTagging for usage and error information. 2237 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTagging 2238 func (c *S3) DeleteObjectTagging(input *DeleteObjectTaggingInput) (*DeleteObjectTaggingOutput, error) { 2239 req, out := c.DeleteObjectTaggingRequest(input) 2240 return out, req.Send() 2241 } 2242 2243 // DeleteObjectTaggingWithContext is the same as DeleteObjectTagging with the addition of 2244 // the ability to pass a context and additional request options. 2245 // 2246 // See DeleteObjectTagging for details on how to use this API operation. 2247 // 2248 // The context must be non-nil and will be used for request cancellation. If 2249 // the context is nil a panic will occur. In the future the SDK may create 2250 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2251 // for more information on using Contexts. 2252 func (c *S3) DeleteObjectTaggingWithContext(ctx aws.Context, input *DeleteObjectTaggingInput, opts ...request.Option) (*DeleteObjectTaggingOutput, error) { 2253 req, out := c.DeleteObjectTaggingRequest(input) 2254 req.SetContext(ctx) 2255 req.ApplyOptions(opts...) 2256 return out, req.Send() 2257 } 2258 2259 const opDeleteObjects = "DeleteObjects" 2260 2261 // DeleteObjectsRequest generates a "aws/request.Request" representing the 2262 // client's request for the DeleteObjects operation. The "output" return 2263 // value will be populated with the request's response once the request completes 2264 // successfully. 2265 // 2266 // Use "Send" method on the returned Request to send the API call to the service. 2267 // the "output" return value is not valid until after Send returns without error. 2268 // 2269 // See DeleteObjects for more information on using the DeleteObjects 2270 // API call, and error handling. 2271 // 2272 // This method is useful when you want to inject custom logic or configuration 2273 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2274 // 2275 // 2276 // // Example sending a request using the DeleteObjectsRequest method. 2277 // req, resp := client.DeleteObjectsRequest(params) 2278 // 2279 // err := req.Send() 2280 // if err == nil { // resp is now filled 2281 // fmt.Println(resp) 2282 // } 2283 // 2284 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects 2285 func (c *S3) DeleteObjectsRequest(input *DeleteObjectsInput) (req *request.Request, output *DeleteObjectsOutput) { 2286 op := &request.Operation{ 2287 Name: opDeleteObjects, 2288 HTTPMethod: "POST", 2289 HTTPPath: "/{Bucket}?delete", 2290 } 2291 2292 if input == nil { 2293 input = &DeleteObjectsInput{} 2294 } 2295 2296 output = &DeleteObjectsOutput{} 2297 req = c.newRequest(op, input, output) 2298 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 2299 Name: "contentMd5Handler", 2300 Fn: checksum.AddBodyContentMD5Handler, 2301 }) 2302 return 2303 } 2304 2305 // DeleteObjects API operation for Amazon Simple Storage Service. 2306 // 2307 // This action enables you to delete multiple objects from a bucket using a 2308 // single HTTP request. If you know the object keys that you want to delete, 2309 // then this action provides a suitable alternative to sending individual delete 2310 // requests, reducing per-request overhead. 2311 // 2312 // The request contains a list of up to 1000 keys that you want to delete. In 2313 // the XML, you provide the object key names, and optionally, version IDs if 2314 // you want to delete a specific version of the object from a versioning-enabled 2315 // bucket. For each key, Amazon S3 performs a delete action and returns the 2316 // result of that delete, success, or failure, in the response. Note that if 2317 // the object specified in the request is not found, Amazon S3 returns the result 2318 // as deleted. 2319 // 2320 // The action supports two modes for the response: verbose and quiet. By default, 2321 // the action uses verbose mode in which the response includes the result of 2322 // deletion of each key in your request. In quiet mode the response includes 2323 // only keys where the delete action encountered an error. For a successful 2324 // deletion, the action does not return any information about the delete in 2325 // the response body. 2326 // 2327 // When performing this action on an MFA Delete enabled bucket, that attempts 2328 // to delete any versioned objects, you must include an MFA token. If you do 2329 // not provide one, the entire request will fail, even if there are non-versioned 2330 // objects you are trying to delete. If you provide an invalid token, whether 2331 // there are versioned keys in the request or not, the entire Multi-Object Delete 2332 // request will fail. For information about MFA Delete, see MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete). 2333 // 2334 // Finally, the Content-MD5 header is required for all Multi-Object Delete requests. 2335 // Amazon S3 uses the header value to ensure that your request body has not 2336 // been altered in transit. 2337 // 2338 // The following operations are related to DeleteObjects: 2339 // 2340 // * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 2341 // 2342 // * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 2343 // 2344 // * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 2345 // 2346 // * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) 2347 // 2348 // * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) 2349 // 2350 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2351 // with awserr.Error's Code and Message methods to get detailed information about 2352 // the error. 2353 // 2354 // See the AWS API reference guide for Amazon Simple Storage Service's 2355 // API operation DeleteObjects for usage and error information. 2356 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjects 2357 func (c *S3) DeleteObjects(input *DeleteObjectsInput) (*DeleteObjectsOutput, error) { 2358 req, out := c.DeleteObjectsRequest(input) 2359 return out, req.Send() 2360 } 2361 2362 // DeleteObjectsWithContext is the same as DeleteObjects with the addition of 2363 // the ability to pass a context and additional request options. 2364 // 2365 // See DeleteObjects for details on how to use this API operation. 2366 // 2367 // The context must be non-nil and will be used for request cancellation. If 2368 // the context is nil a panic will occur. In the future the SDK may create 2369 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2370 // for more information on using Contexts. 2371 func (c *S3) DeleteObjectsWithContext(ctx aws.Context, input *DeleteObjectsInput, opts ...request.Option) (*DeleteObjectsOutput, error) { 2372 req, out := c.DeleteObjectsRequest(input) 2373 req.SetContext(ctx) 2374 req.ApplyOptions(opts...) 2375 return out, req.Send() 2376 } 2377 2378 const opDeletePublicAccessBlock = "DeletePublicAccessBlock" 2379 2380 // DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the 2381 // client's request for the DeletePublicAccessBlock operation. The "output" return 2382 // value will be populated with the request's response once the request completes 2383 // successfully. 2384 // 2385 // Use "Send" method on the returned Request to send the API call to the service. 2386 // the "output" return value is not valid until after Send returns without error. 2387 // 2388 // See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock 2389 // API call, and error handling. 2390 // 2391 // This method is useful when you want to inject custom logic or configuration 2392 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2393 // 2394 // 2395 // // Example sending a request using the DeletePublicAccessBlockRequest method. 2396 // req, resp := client.DeletePublicAccessBlockRequest(params) 2397 // 2398 // err := req.Send() 2399 // if err == nil { // resp is now filled 2400 // fmt.Println(resp) 2401 // } 2402 // 2403 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock 2404 func (c *S3) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) { 2405 op := &request.Operation{ 2406 Name: opDeletePublicAccessBlock, 2407 HTTPMethod: "DELETE", 2408 HTTPPath: "/{Bucket}?publicAccessBlock", 2409 } 2410 2411 if input == nil { 2412 input = &DeletePublicAccessBlockInput{} 2413 } 2414 2415 output = &DeletePublicAccessBlockOutput{} 2416 req = c.newRequest(op, input, output) 2417 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 2418 return 2419 } 2420 2421 // DeletePublicAccessBlock API operation for Amazon Simple Storage Service. 2422 // 2423 // Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use 2424 // this operation, you must have the s3:PutBucketPublicAccessBlock permission. 2425 // For more information about permissions, see Permissions Related to Bucket 2426 // Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 2427 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 2428 // 2429 // The following operations are related to DeletePublicAccessBlock: 2430 // 2431 // * Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) 2432 // 2433 // * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) 2434 // 2435 // * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) 2436 // 2437 // * GetBucketPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) 2438 // 2439 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2440 // with awserr.Error's Code and Message methods to get detailed information about 2441 // the error. 2442 // 2443 // See the AWS API reference guide for Amazon Simple Storage Service's 2444 // API operation DeletePublicAccessBlock for usage and error information. 2445 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock 2446 func (c *S3) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) { 2447 req, out := c.DeletePublicAccessBlockRequest(input) 2448 return out, req.Send() 2449 } 2450 2451 // DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of 2452 // the ability to pass a context and additional request options. 2453 // 2454 // See DeletePublicAccessBlock for details on how to use this API operation. 2455 // 2456 // The context must be non-nil and will be used for request cancellation. If 2457 // the context is nil a panic will occur. In the future the SDK may create 2458 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2459 // for more information on using Contexts. 2460 func (c *S3) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) { 2461 req, out := c.DeletePublicAccessBlockRequest(input) 2462 req.SetContext(ctx) 2463 req.ApplyOptions(opts...) 2464 return out, req.Send() 2465 } 2466 2467 const opGetBucketAccelerateConfiguration = "GetBucketAccelerateConfiguration" 2468 2469 // GetBucketAccelerateConfigurationRequest generates a "aws/request.Request" representing the 2470 // client's request for the GetBucketAccelerateConfiguration operation. The "output" return 2471 // value will be populated with the request's response once the request completes 2472 // successfully. 2473 // 2474 // Use "Send" method on the returned Request to send the API call to the service. 2475 // the "output" return value is not valid until after Send returns without error. 2476 // 2477 // See GetBucketAccelerateConfiguration for more information on using the GetBucketAccelerateConfiguration 2478 // API call, and error handling. 2479 // 2480 // This method is useful when you want to inject custom logic or configuration 2481 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2482 // 2483 // 2484 // // Example sending a request using the GetBucketAccelerateConfigurationRequest method. 2485 // req, resp := client.GetBucketAccelerateConfigurationRequest(params) 2486 // 2487 // err := req.Send() 2488 // if err == nil { // resp is now filled 2489 // fmt.Println(resp) 2490 // } 2491 // 2492 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration 2493 func (c *S3) GetBucketAccelerateConfigurationRequest(input *GetBucketAccelerateConfigurationInput) (req *request.Request, output *GetBucketAccelerateConfigurationOutput) { 2494 op := &request.Operation{ 2495 Name: opGetBucketAccelerateConfiguration, 2496 HTTPMethod: "GET", 2497 HTTPPath: "/{Bucket}?accelerate", 2498 } 2499 2500 if input == nil { 2501 input = &GetBucketAccelerateConfigurationInput{} 2502 } 2503 2504 output = &GetBucketAccelerateConfigurationOutput{} 2505 req = c.newRequest(op, input, output) 2506 return 2507 } 2508 2509 // GetBucketAccelerateConfiguration API operation for Amazon Simple Storage Service. 2510 // 2511 // This implementation of the GET action uses the accelerate subresource to 2512 // return the Transfer Acceleration state of a bucket, which is either Enabled 2513 // or Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that 2514 // enables you to perform faster data transfers to and from Amazon S3. 2515 // 2516 // To use this operation, you must have permission to perform the s3:GetAccelerateConfiguration 2517 // action. The bucket owner has this permission by default. The bucket owner 2518 // can grant this permission to others. For more information about permissions, 2519 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 2520 // and Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 2521 // in the Amazon S3 User Guide. 2522 // 2523 // You set the Transfer Acceleration state of an existing bucket to Enabled 2524 // or Suspended by using the PutBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) 2525 // operation. 2526 // 2527 // A GET accelerate request does not return a state value for a bucket that 2528 // has no transfer acceleration state. A bucket has no Transfer Acceleration 2529 // state if a state has never been set on the bucket. 2530 // 2531 // For more information about transfer acceleration, see Transfer Acceleration 2532 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) 2533 // in the Amazon S3 User Guide. 2534 // 2535 // Related Resources 2536 // 2537 // * PutBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html) 2538 // 2539 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2540 // with awserr.Error's Code and Message methods to get detailed information about 2541 // the error. 2542 // 2543 // See the AWS API reference guide for Amazon Simple Storage Service's 2544 // API operation GetBucketAccelerateConfiguration for usage and error information. 2545 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfiguration 2546 func (c *S3) GetBucketAccelerateConfiguration(input *GetBucketAccelerateConfigurationInput) (*GetBucketAccelerateConfigurationOutput, error) { 2547 req, out := c.GetBucketAccelerateConfigurationRequest(input) 2548 return out, req.Send() 2549 } 2550 2551 // GetBucketAccelerateConfigurationWithContext is the same as GetBucketAccelerateConfiguration with the addition of 2552 // the ability to pass a context and additional request options. 2553 // 2554 // See GetBucketAccelerateConfiguration for details on how to use this API operation. 2555 // 2556 // The context must be non-nil and will be used for request cancellation. If 2557 // the context is nil a panic will occur. In the future the SDK may create 2558 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2559 // for more information on using Contexts. 2560 func (c *S3) GetBucketAccelerateConfigurationWithContext(ctx aws.Context, input *GetBucketAccelerateConfigurationInput, opts ...request.Option) (*GetBucketAccelerateConfigurationOutput, error) { 2561 req, out := c.GetBucketAccelerateConfigurationRequest(input) 2562 req.SetContext(ctx) 2563 req.ApplyOptions(opts...) 2564 return out, req.Send() 2565 } 2566 2567 const opGetBucketAcl = "GetBucketAcl" 2568 2569 // GetBucketAclRequest generates a "aws/request.Request" representing the 2570 // client's request for the GetBucketAcl operation. The "output" return 2571 // value will be populated with the request's response once the request completes 2572 // successfully. 2573 // 2574 // Use "Send" method on the returned Request to send the API call to the service. 2575 // the "output" return value is not valid until after Send returns without error. 2576 // 2577 // See GetBucketAcl for more information on using the GetBucketAcl 2578 // API call, and error handling. 2579 // 2580 // This method is useful when you want to inject custom logic or configuration 2581 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2582 // 2583 // 2584 // // Example sending a request using the GetBucketAclRequest method. 2585 // req, resp := client.GetBucketAclRequest(params) 2586 // 2587 // err := req.Send() 2588 // if err == nil { // resp is now filled 2589 // fmt.Println(resp) 2590 // } 2591 // 2592 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl 2593 func (c *S3) GetBucketAclRequest(input *GetBucketAclInput) (req *request.Request, output *GetBucketAclOutput) { 2594 op := &request.Operation{ 2595 Name: opGetBucketAcl, 2596 HTTPMethod: "GET", 2597 HTTPPath: "/{Bucket}?acl", 2598 } 2599 2600 if input == nil { 2601 input = &GetBucketAclInput{} 2602 } 2603 2604 output = &GetBucketAclOutput{} 2605 req = c.newRequest(op, input, output) 2606 return 2607 } 2608 2609 // GetBucketAcl API operation for Amazon Simple Storage Service. 2610 // 2611 // This implementation of the GET action uses the acl subresource to return 2612 // the access control list (ACL) of a bucket. To use GET to return the ACL of 2613 // the bucket, you must have READ_ACP access to the bucket. If READ_ACP permission 2614 // is granted to the anonymous user, you can return the ACL of the bucket without 2615 // using an authorization header. 2616 // 2617 // Related Resources 2618 // 2619 // * ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) 2620 // 2621 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2622 // with awserr.Error's Code and Message methods to get detailed information about 2623 // the error. 2624 // 2625 // See the AWS API reference guide for Amazon Simple Storage Service's 2626 // API operation GetBucketAcl for usage and error information. 2627 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl 2628 func (c *S3) GetBucketAcl(input *GetBucketAclInput) (*GetBucketAclOutput, error) { 2629 req, out := c.GetBucketAclRequest(input) 2630 return out, req.Send() 2631 } 2632 2633 // GetBucketAclWithContext is the same as GetBucketAcl with the addition of 2634 // the ability to pass a context and additional request options. 2635 // 2636 // See GetBucketAcl for details on how to use this API operation. 2637 // 2638 // The context must be non-nil and will be used for request cancellation. If 2639 // the context is nil a panic will occur. In the future the SDK may create 2640 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2641 // for more information on using Contexts. 2642 func (c *S3) GetBucketAclWithContext(ctx aws.Context, input *GetBucketAclInput, opts ...request.Option) (*GetBucketAclOutput, error) { 2643 req, out := c.GetBucketAclRequest(input) 2644 req.SetContext(ctx) 2645 req.ApplyOptions(opts...) 2646 return out, req.Send() 2647 } 2648 2649 const opGetBucketAnalyticsConfiguration = "GetBucketAnalyticsConfiguration" 2650 2651 // GetBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the 2652 // client's request for the GetBucketAnalyticsConfiguration operation. The "output" return 2653 // value will be populated with the request's response once the request completes 2654 // successfully. 2655 // 2656 // Use "Send" method on the returned Request to send the API call to the service. 2657 // the "output" return value is not valid until after Send returns without error. 2658 // 2659 // See GetBucketAnalyticsConfiguration for more information on using the GetBucketAnalyticsConfiguration 2660 // API call, and error handling. 2661 // 2662 // This method is useful when you want to inject custom logic or configuration 2663 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2664 // 2665 // 2666 // // Example sending a request using the GetBucketAnalyticsConfigurationRequest method. 2667 // req, resp := client.GetBucketAnalyticsConfigurationRequest(params) 2668 // 2669 // err := req.Send() 2670 // if err == nil { // resp is now filled 2671 // fmt.Println(resp) 2672 // } 2673 // 2674 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration 2675 func (c *S3) GetBucketAnalyticsConfigurationRequest(input *GetBucketAnalyticsConfigurationInput) (req *request.Request, output *GetBucketAnalyticsConfigurationOutput) { 2676 op := &request.Operation{ 2677 Name: opGetBucketAnalyticsConfiguration, 2678 HTTPMethod: "GET", 2679 HTTPPath: "/{Bucket}?analytics", 2680 } 2681 2682 if input == nil { 2683 input = &GetBucketAnalyticsConfigurationInput{} 2684 } 2685 2686 output = &GetBucketAnalyticsConfigurationOutput{} 2687 req = c.newRequest(op, input, output) 2688 return 2689 } 2690 2691 // GetBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. 2692 // 2693 // This implementation of the GET action returns an analytics configuration 2694 // (identified by the analytics configuration ID) from the bucket. 2695 // 2696 // To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration 2697 // action. The bucket owner has this permission by default. The bucket owner 2698 // can grant this permission to others. For more information about permissions, 2699 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 2700 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 2701 // in the Amazon S3 User Guide. 2702 // 2703 // For information about Amazon S3 analytics feature, see Amazon S3 Analytics 2704 // – Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) 2705 // in the Amazon S3 User Guide. 2706 // 2707 // Related Resources 2708 // 2709 // * DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) 2710 // 2711 // * ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) 2712 // 2713 // * PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) 2714 // 2715 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2716 // with awserr.Error's Code and Message methods to get detailed information about 2717 // the error. 2718 // 2719 // See the AWS API reference guide for Amazon Simple Storage Service's 2720 // API operation GetBucketAnalyticsConfiguration for usage and error information. 2721 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfiguration 2722 func (c *S3) GetBucketAnalyticsConfiguration(input *GetBucketAnalyticsConfigurationInput) (*GetBucketAnalyticsConfigurationOutput, error) { 2723 req, out := c.GetBucketAnalyticsConfigurationRequest(input) 2724 return out, req.Send() 2725 } 2726 2727 // GetBucketAnalyticsConfigurationWithContext is the same as GetBucketAnalyticsConfiguration with the addition of 2728 // the ability to pass a context and additional request options. 2729 // 2730 // See GetBucketAnalyticsConfiguration for details on how to use this API operation. 2731 // 2732 // The context must be non-nil and will be used for request cancellation. If 2733 // the context is nil a panic will occur. In the future the SDK may create 2734 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2735 // for more information on using Contexts. 2736 func (c *S3) GetBucketAnalyticsConfigurationWithContext(ctx aws.Context, input *GetBucketAnalyticsConfigurationInput, opts ...request.Option) (*GetBucketAnalyticsConfigurationOutput, error) { 2737 req, out := c.GetBucketAnalyticsConfigurationRequest(input) 2738 req.SetContext(ctx) 2739 req.ApplyOptions(opts...) 2740 return out, req.Send() 2741 } 2742 2743 const opGetBucketCors = "GetBucketCors" 2744 2745 // GetBucketCorsRequest generates a "aws/request.Request" representing the 2746 // client's request for the GetBucketCors operation. The "output" return 2747 // value will be populated with the request's response once the request completes 2748 // successfully. 2749 // 2750 // Use "Send" method on the returned Request to send the API call to the service. 2751 // the "output" return value is not valid until after Send returns without error. 2752 // 2753 // See GetBucketCors for more information on using the GetBucketCors 2754 // API call, and error handling. 2755 // 2756 // This method is useful when you want to inject custom logic or configuration 2757 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2758 // 2759 // 2760 // // Example sending a request using the GetBucketCorsRequest method. 2761 // req, resp := client.GetBucketCorsRequest(params) 2762 // 2763 // err := req.Send() 2764 // if err == nil { // resp is now filled 2765 // fmt.Println(resp) 2766 // } 2767 // 2768 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors 2769 func (c *S3) GetBucketCorsRequest(input *GetBucketCorsInput) (req *request.Request, output *GetBucketCorsOutput) { 2770 op := &request.Operation{ 2771 Name: opGetBucketCors, 2772 HTTPMethod: "GET", 2773 HTTPPath: "/{Bucket}?cors", 2774 } 2775 2776 if input == nil { 2777 input = &GetBucketCorsInput{} 2778 } 2779 2780 output = &GetBucketCorsOutput{} 2781 req = c.newRequest(op, input, output) 2782 return 2783 } 2784 2785 // GetBucketCors API operation for Amazon Simple Storage Service. 2786 // 2787 // Returns the cors configuration information set for the bucket. 2788 // 2789 // To use this operation, you must have permission to perform the s3:GetBucketCORS 2790 // action. By default, the bucket owner has this permission and can grant it 2791 // to others. 2792 // 2793 // For more information about cors, see Enabling Cross-Origin Resource Sharing 2794 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). 2795 // 2796 // The following operations are related to GetBucketCors: 2797 // 2798 // * PutBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html) 2799 // 2800 // * DeleteBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) 2801 // 2802 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2803 // with awserr.Error's Code and Message methods to get detailed information about 2804 // the error. 2805 // 2806 // See the AWS API reference guide for Amazon Simple Storage Service's 2807 // API operation GetBucketCors for usage and error information. 2808 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCors 2809 func (c *S3) GetBucketCors(input *GetBucketCorsInput) (*GetBucketCorsOutput, error) { 2810 req, out := c.GetBucketCorsRequest(input) 2811 return out, req.Send() 2812 } 2813 2814 // GetBucketCorsWithContext is the same as GetBucketCors with the addition of 2815 // the ability to pass a context and additional request options. 2816 // 2817 // See GetBucketCors for details on how to use this API operation. 2818 // 2819 // The context must be non-nil and will be used for request cancellation. If 2820 // the context is nil a panic will occur. In the future the SDK may create 2821 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2822 // for more information on using Contexts. 2823 func (c *S3) GetBucketCorsWithContext(ctx aws.Context, input *GetBucketCorsInput, opts ...request.Option) (*GetBucketCorsOutput, error) { 2824 req, out := c.GetBucketCorsRequest(input) 2825 req.SetContext(ctx) 2826 req.ApplyOptions(opts...) 2827 return out, req.Send() 2828 } 2829 2830 const opGetBucketEncryption = "GetBucketEncryption" 2831 2832 // GetBucketEncryptionRequest generates a "aws/request.Request" representing the 2833 // client's request for the GetBucketEncryption operation. The "output" return 2834 // value will be populated with the request's response once the request completes 2835 // successfully. 2836 // 2837 // Use "Send" method on the returned Request to send the API call to the service. 2838 // the "output" return value is not valid until after Send returns without error. 2839 // 2840 // See GetBucketEncryption for more information on using the GetBucketEncryption 2841 // API call, and error handling. 2842 // 2843 // This method is useful when you want to inject custom logic or configuration 2844 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2845 // 2846 // 2847 // // Example sending a request using the GetBucketEncryptionRequest method. 2848 // req, resp := client.GetBucketEncryptionRequest(params) 2849 // 2850 // err := req.Send() 2851 // if err == nil { // resp is now filled 2852 // fmt.Println(resp) 2853 // } 2854 // 2855 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption 2856 func (c *S3) GetBucketEncryptionRequest(input *GetBucketEncryptionInput) (req *request.Request, output *GetBucketEncryptionOutput) { 2857 op := &request.Operation{ 2858 Name: opGetBucketEncryption, 2859 HTTPMethod: "GET", 2860 HTTPPath: "/{Bucket}?encryption", 2861 } 2862 2863 if input == nil { 2864 input = &GetBucketEncryptionInput{} 2865 } 2866 2867 output = &GetBucketEncryptionOutput{} 2868 req = c.newRequest(op, input, output) 2869 return 2870 } 2871 2872 // GetBucketEncryption API operation for Amazon Simple Storage Service. 2873 // 2874 // Returns the default encryption configuration for an Amazon S3 bucket. If 2875 // the bucket does not have a default encryption configuration, GetBucketEncryption 2876 // returns ServerSideEncryptionConfigurationNotFoundError. 2877 // 2878 // For information about the Amazon S3 default encryption feature, see Amazon 2879 // S3 Default Bucket Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). 2880 // 2881 // To use this operation, you must have permission to perform the s3:GetEncryptionConfiguration 2882 // action. The bucket owner has this permission by default. The bucket owner 2883 // can grant this permission to others. For more information about permissions, 2884 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 2885 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 2886 // 2887 // The following operations are related to GetBucketEncryption: 2888 // 2889 // * PutBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) 2890 // 2891 // * DeleteBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) 2892 // 2893 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2894 // with awserr.Error's Code and Message methods to get detailed information about 2895 // the error. 2896 // 2897 // See the AWS API reference guide for Amazon Simple Storage Service's 2898 // API operation GetBucketEncryption for usage and error information. 2899 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption 2900 func (c *S3) GetBucketEncryption(input *GetBucketEncryptionInput) (*GetBucketEncryptionOutput, error) { 2901 req, out := c.GetBucketEncryptionRequest(input) 2902 return out, req.Send() 2903 } 2904 2905 // GetBucketEncryptionWithContext is the same as GetBucketEncryption with the addition of 2906 // the ability to pass a context and additional request options. 2907 // 2908 // See GetBucketEncryption for details on how to use this API operation. 2909 // 2910 // The context must be non-nil and will be used for request cancellation. If 2911 // the context is nil a panic will occur. In the future the SDK may create 2912 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2913 // for more information on using Contexts. 2914 func (c *S3) GetBucketEncryptionWithContext(ctx aws.Context, input *GetBucketEncryptionInput, opts ...request.Option) (*GetBucketEncryptionOutput, error) { 2915 req, out := c.GetBucketEncryptionRequest(input) 2916 req.SetContext(ctx) 2917 req.ApplyOptions(opts...) 2918 return out, req.Send() 2919 } 2920 2921 const opGetBucketIntelligentTieringConfiguration = "GetBucketIntelligentTieringConfiguration" 2922 2923 // GetBucketIntelligentTieringConfigurationRequest generates a "aws/request.Request" representing the 2924 // client's request for the GetBucketIntelligentTieringConfiguration operation. The "output" return 2925 // value will be populated with the request's response once the request completes 2926 // successfully. 2927 // 2928 // Use "Send" method on the returned Request to send the API call to the service. 2929 // the "output" return value is not valid until after Send returns without error. 2930 // 2931 // See GetBucketIntelligentTieringConfiguration for more information on using the GetBucketIntelligentTieringConfiguration 2932 // API call, and error handling. 2933 // 2934 // This method is useful when you want to inject custom logic or configuration 2935 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2936 // 2937 // 2938 // // Example sending a request using the GetBucketIntelligentTieringConfigurationRequest method. 2939 // req, resp := client.GetBucketIntelligentTieringConfigurationRequest(params) 2940 // 2941 // err := req.Send() 2942 // if err == nil { // resp is now filled 2943 // fmt.Println(resp) 2944 // } 2945 // 2946 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration 2947 func (c *S3) GetBucketIntelligentTieringConfigurationRequest(input *GetBucketIntelligentTieringConfigurationInput) (req *request.Request, output *GetBucketIntelligentTieringConfigurationOutput) { 2948 op := &request.Operation{ 2949 Name: opGetBucketIntelligentTieringConfiguration, 2950 HTTPMethod: "GET", 2951 HTTPPath: "/{Bucket}?intelligent-tiering", 2952 } 2953 2954 if input == nil { 2955 input = &GetBucketIntelligentTieringConfigurationInput{} 2956 } 2957 2958 output = &GetBucketIntelligentTieringConfigurationOutput{} 2959 req = c.newRequest(op, input, output) 2960 return 2961 } 2962 2963 // GetBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. 2964 // 2965 // Gets the S3 Intelligent-Tiering configuration from the specified bucket. 2966 // 2967 // The S3 Intelligent-Tiering storage class is designed to optimize storage 2968 // costs by automatically moving data to the most cost-effective storage access 2969 // tier, without performance impact or operational overhead. S3 Intelligent-Tiering 2970 // delivers automatic cost savings in two low latency and high throughput access 2971 // tiers. For data that can be accessed asynchronously, you can choose to activate 2972 // automatic archiving capabilities within the S3 Intelligent-Tiering storage 2973 // class. 2974 // 2975 // The S3 Intelligent-Tiering storage class is the ideal storage class for data 2976 // with unknown, changing, or unpredictable access patterns, independent of 2977 // object size or retention period. If the size of an object is less than 128 2978 // KB, it is not eligible for auto-tiering. Smaller objects can be stored, but 2979 // they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering 2980 // storage class. 2981 // 2982 // For more information, see Storage class for automatically optimizing frequently 2983 // and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). 2984 // 2985 // Operations related to GetBucketIntelligentTieringConfiguration include: 2986 // 2987 // * DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) 2988 // 2989 // * PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) 2990 // 2991 // * ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) 2992 // 2993 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2994 // with awserr.Error's Code and Message methods to get detailed information about 2995 // the error. 2996 // 2997 // See the AWS API reference guide for Amazon Simple Storage Service's 2998 // API operation GetBucketIntelligentTieringConfiguration for usage and error information. 2999 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration 3000 func (c *S3) GetBucketIntelligentTieringConfiguration(input *GetBucketIntelligentTieringConfigurationInput) (*GetBucketIntelligentTieringConfigurationOutput, error) { 3001 req, out := c.GetBucketIntelligentTieringConfigurationRequest(input) 3002 return out, req.Send() 3003 } 3004 3005 // GetBucketIntelligentTieringConfigurationWithContext is the same as GetBucketIntelligentTieringConfiguration with the addition of 3006 // the ability to pass a context and additional request options. 3007 // 3008 // See GetBucketIntelligentTieringConfiguration for details on how to use this API operation. 3009 // 3010 // The context must be non-nil and will be used for request cancellation. If 3011 // the context is nil a panic will occur. In the future the SDK may create 3012 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3013 // for more information on using Contexts. 3014 func (c *S3) GetBucketIntelligentTieringConfigurationWithContext(ctx aws.Context, input *GetBucketIntelligentTieringConfigurationInput, opts ...request.Option) (*GetBucketIntelligentTieringConfigurationOutput, error) { 3015 req, out := c.GetBucketIntelligentTieringConfigurationRequest(input) 3016 req.SetContext(ctx) 3017 req.ApplyOptions(opts...) 3018 return out, req.Send() 3019 } 3020 3021 const opGetBucketInventoryConfiguration = "GetBucketInventoryConfiguration" 3022 3023 // GetBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the 3024 // client's request for the GetBucketInventoryConfiguration operation. The "output" return 3025 // value will be populated with the request's response once the request completes 3026 // successfully. 3027 // 3028 // Use "Send" method on the returned Request to send the API call to the service. 3029 // the "output" return value is not valid until after Send returns without error. 3030 // 3031 // See GetBucketInventoryConfiguration for more information on using the GetBucketInventoryConfiguration 3032 // API call, and error handling. 3033 // 3034 // This method is useful when you want to inject custom logic or configuration 3035 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3036 // 3037 // 3038 // // Example sending a request using the GetBucketInventoryConfigurationRequest method. 3039 // req, resp := client.GetBucketInventoryConfigurationRequest(params) 3040 // 3041 // err := req.Send() 3042 // if err == nil { // resp is now filled 3043 // fmt.Println(resp) 3044 // } 3045 // 3046 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration 3047 func (c *S3) GetBucketInventoryConfigurationRequest(input *GetBucketInventoryConfigurationInput) (req *request.Request, output *GetBucketInventoryConfigurationOutput) { 3048 op := &request.Operation{ 3049 Name: opGetBucketInventoryConfiguration, 3050 HTTPMethod: "GET", 3051 HTTPPath: "/{Bucket}?inventory", 3052 } 3053 3054 if input == nil { 3055 input = &GetBucketInventoryConfigurationInput{} 3056 } 3057 3058 output = &GetBucketInventoryConfigurationOutput{} 3059 req = c.newRequest(op, input, output) 3060 return 3061 } 3062 3063 // GetBucketInventoryConfiguration API operation for Amazon Simple Storage Service. 3064 // 3065 // Returns an inventory configuration (identified by the inventory configuration 3066 // ID) from the bucket. 3067 // 3068 // To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration 3069 // action. The bucket owner has this permission by default and can grant this 3070 // permission to others. For more information about permissions, see Permissions 3071 // Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 3072 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 3073 // 3074 // For information about the Amazon S3 inventory feature, see Amazon S3 Inventory 3075 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html). 3076 // 3077 // The following operations are related to GetBucketInventoryConfiguration: 3078 // 3079 // * DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) 3080 // 3081 // * ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) 3082 // 3083 // * PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) 3084 // 3085 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3086 // with awserr.Error's Code and Message methods to get detailed information about 3087 // the error. 3088 // 3089 // See the AWS API reference guide for Amazon Simple Storage Service's 3090 // API operation GetBucketInventoryConfiguration for usage and error information. 3091 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration 3092 func (c *S3) GetBucketInventoryConfiguration(input *GetBucketInventoryConfigurationInput) (*GetBucketInventoryConfigurationOutput, error) { 3093 req, out := c.GetBucketInventoryConfigurationRequest(input) 3094 return out, req.Send() 3095 } 3096 3097 // GetBucketInventoryConfigurationWithContext is the same as GetBucketInventoryConfiguration with the addition of 3098 // the ability to pass a context and additional request options. 3099 // 3100 // See GetBucketInventoryConfiguration for details on how to use this API operation. 3101 // 3102 // The context must be non-nil and will be used for request cancellation. If 3103 // the context is nil a panic will occur. In the future the SDK may create 3104 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3105 // for more information on using Contexts. 3106 func (c *S3) GetBucketInventoryConfigurationWithContext(ctx aws.Context, input *GetBucketInventoryConfigurationInput, opts ...request.Option) (*GetBucketInventoryConfigurationOutput, error) { 3107 req, out := c.GetBucketInventoryConfigurationRequest(input) 3108 req.SetContext(ctx) 3109 req.ApplyOptions(opts...) 3110 return out, req.Send() 3111 } 3112 3113 const opGetBucketLifecycle = "GetBucketLifecycle" 3114 3115 // GetBucketLifecycleRequest generates a "aws/request.Request" representing the 3116 // client's request for the GetBucketLifecycle operation. The "output" return 3117 // value will be populated with the request's response once the request completes 3118 // successfully. 3119 // 3120 // Use "Send" method on the returned Request to send the API call to the service. 3121 // the "output" return value is not valid until after Send returns without error. 3122 // 3123 // See GetBucketLifecycle for more information on using the GetBucketLifecycle 3124 // API call, and error handling. 3125 // 3126 // This method is useful when you want to inject custom logic or configuration 3127 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3128 // 3129 // 3130 // // Example sending a request using the GetBucketLifecycleRequest method. 3131 // req, resp := client.GetBucketLifecycleRequest(params) 3132 // 3133 // err := req.Send() 3134 // if err == nil { // resp is now filled 3135 // fmt.Println(resp) 3136 // } 3137 // 3138 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle 3139 // 3140 // Deprecated: GetBucketLifecycle has been deprecated 3141 func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *request.Request, output *GetBucketLifecycleOutput) { 3142 if c.Client.Config.Logger != nil { 3143 c.Client.Config.Logger.Log("This operation, GetBucketLifecycle, has been deprecated") 3144 } 3145 op := &request.Operation{ 3146 Name: opGetBucketLifecycle, 3147 HTTPMethod: "GET", 3148 HTTPPath: "/{Bucket}?lifecycle", 3149 } 3150 3151 if input == nil { 3152 input = &GetBucketLifecycleInput{} 3153 } 3154 3155 output = &GetBucketLifecycleOutput{} 3156 req = c.newRequest(op, input, output) 3157 return 3158 } 3159 3160 // GetBucketLifecycle API operation for Amazon Simple Storage Service. 3161 // 3162 // 3163 // For an updated version of this API, see GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html). 3164 // If you configured a bucket lifecycle using the filter element, you should 3165 // see the updated version of this topic. This topic is provided for backward 3166 // compatibility. 3167 // 3168 // Returns the lifecycle configuration information set on the bucket. For information 3169 // about lifecycle configuration, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). 3170 // 3171 // To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration 3172 // action. The bucket owner has this permission by default. The bucket owner 3173 // can grant this permission to others. For more information about permissions, 3174 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 3175 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 3176 // 3177 // GetBucketLifecycle has the following special error: 3178 // 3179 // * Error code: NoSuchLifecycleConfiguration Description: The lifecycle 3180 // configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault 3181 // Code Prefix: Client 3182 // 3183 // The following operations are related to GetBucketLifecycle: 3184 // 3185 // * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) 3186 // 3187 // * PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) 3188 // 3189 // * DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) 3190 // 3191 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3192 // with awserr.Error's Code and Message methods to get detailed information about 3193 // the error. 3194 // 3195 // See the AWS API reference guide for Amazon Simple Storage Service's 3196 // API operation GetBucketLifecycle for usage and error information. 3197 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle 3198 // 3199 // Deprecated: GetBucketLifecycle has been deprecated 3200 func (c *S3) GetBucketLifecycle(input *GetBucketLifecycleInput) (*GetBucketLifecycleOutput, error) { 3201 req, out := c.GetBucketLifecycleRequest(input) 3202 return out, req.Send() 3203 } 3204 3205 // GetBucketLifecycleWithContext is the same as GetBucketLifecycle with the addition of 3206 // the ability to pass a context and additional request options. 3207 // 3208 // See GetBucketLifecycle for details on how to use this API operation. 3209 // 3210 // The context must be non-nil and will be used for request cancellation. If 3211 // the context is nil a panic will occur. In the future the SDK may create 3212 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3213 // for more information on using Contexts. 3214 // 3215 // Deprecated: GetBucketLifecycleWithContext has been deprecated 3216 func (c *S3) GetBucketLifecycleWithContext(ctx aws.Context, input *GetBucketLifecycleInput, opts ...request.Option) (*GetBucketLifecycleOutput, error) { 3217 req, out := c.GetBucketLifecycleRequest(input) 3218 req.SetContext(ctx) 3219 req.ApplyOptions(opts...) 3220 return out, req.Send() 3221 } 3222 3223 const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration" 3224 3225 // GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the 3226 // client's request for the GetBucketLifecycleConfiguration operation. The "output" return 3227 // value will be populated with the request's response once the request completes 3228 // successfully. 3229 // 3230 // Use "Send" method on the returned Request to send the API call to the service. 3231 // the "output" return value is not valid until after Send returns without error. 3232 // 3233 // See GetBucketLifecycleConfiguration for more information on using the GetBucketLifecycleConfiguration 3234 // API call, and error handling. 3235 // 3236 // This method is useful when you want to inject custom logic or configuration 3237 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3238 // 3239 // 3240 // // Example sending a request using the GetBucketLifecycleConfigurationRequest method. 3241 // req, resp := client.GetBucketLifecycleConfigurationRequest(params) 3242 // 3243 // err := req.Send() 3244 // if err == nil { // resp is now filled 3245 // fmt.Println(resp) 3246 // } 3247 // 3248 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration 3249 func (c *S3) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) { 3250 op := &request.Operation{ 3251 Name: opGetBucketLifecycleConfiguration, 3252 HTTPMethod: "GET", 3253 HTTPPath: "/{Bucket}?lifecycle", 3254 } 3255 3256 if input == nil { 3257 input = &GetBucketLifecycleConfigurationInput{} 3258 } 3259 3260 output = &GetBucketLifecycleConfigurationOutput{} 3261 req = c.newRequest(op, input, output) 3262 return 3263 } 3264 3265 // GetBucketLifecycleConfiguration API operation for Amazon Simple Storage Service. 3266 // 3267 // 3268 // Bucket lifecycle configuration now supports specifying a lifecycle rule using 3269 // an object key name prefix, one or more object tags, or a combination of both. 3270 // Accordingly, this section describes the latest API. The response describes 3271 // the new filter element that you can use to specify a filter to select a subset 3272 // of objects to which the rule applies. If you are using a previous version 3273 // of the lifecycle configuration, it still works. For the earlier action, see 3274 // GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). 3275 // 3276 // Returns the lifecycle configuration information set on the bucket. For information 3277 // about lifecycle configuration, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). 3278 // 3279 // To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration 3280 // action. The bucket owner has this permission, by default. The bucket owner 3281 // can grant this permission to others. For more information about permissions, 3282 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 3283 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 3284 // 3285 // GetBucketLifecycleConfiguration has the following special error: 3286 // 3287 // * Error code: NoSuchLifecycleConfiguration Description: The lifecycle 3288 // configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault 3289 // Code Prefix: Client 3290 // 3291 // The following operations are related to GetBucketLifecycleConfiguration: 3292 // 3293 // * GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html) 3294 // 3295 // * PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html) 3296 // 3297 // * DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) 3298 // 3299 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3300 // with awserr.Error's Code and Message methods to get detailed information about 3301 // the error. 3302 // 3303 // See the AWS API reference guide for Amazon Simple Storage Service's 3304 // API operation GetBucketLifecycleConfiguration for usage and error information. 3305 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfiguration 3306 func (c *S3) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) { 3307 req, out := c.GetBucketLifecycleConfigurationRequest(input) 3308 return out, req.Send() 3309 } 3310 3311 // GetBucketLifecycleConfigurationWithContext is the same as GetBucketLifecycleConfiguration with the addition of 3312 // the ability to pass a context and additional request options. 3313 // 3314 // See GetBucketLifecycleConfiguration for details on how to use this API operation. 3315 // 3316 // The context must be non-nil and will be used for request cancellation. If 3317 // the context is nil a panic will occur. In the future the SDK may create 3318 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3319 // for more information on using Contexts. 3320 func (c *S3) GetBucketLifecycleConfigurationWithContext(ctx aws.Context, input *GetBucketLifecycleConfigurationInput, opts ...request.Option) (*GetBucketLifecycleConfigurationOutput, error) { 3321 req, out := c.GetBucketLifecycleConfigurationRequest(input) 3322 req.SetContext(ctx) 3323 req.ApplyOptions(opts...) 3324 return out, req.Send() 3325 } 3326 3327 const opGetBucketLocation = "GetBucketLocation" 3328 3329 // GetBucketLocationRequest generates a "aws/request.Request" representing the 3330 // client's request for the GetBucketLocation operation. The "output" return 3331 // value will be populated with the request's response once the request completes 3332 // successfully. 3333 // 3334 // Use "Send" method on the returned Request to send the API call to the service. 3335 // the "output" return value is not valid until after Send returns without error. 3336 // 3337 // See GetBucketLocation for more information on using the GetBucketLocation 3338 // API call, and error handling. 3339 // 3340 // This method is useful when you want to inject custom logic or configuration 3341 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3342 // 3343 // 3344 // // Example sending a request using the GetBucketLocationRequest method. 3345 // req, resp := client.GetBucketLocationRequest(params) 3346 // 3347 // err := req.Send() 3348 // if err == nil { // resp is now filled 3349 // fmt.Println(resp) 3350 // } 3351 // 3352 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation 3353 func (c *S3) GetBucketLocationRequest(input *GetBucketLocationInput) (req *request.Request, output *GetBucketLocationOutput) { 3354 op := &request.Operation{ 3355 Name: opGetBucketLocation, 3356 HTTPMethod: "GET", 3357 HTTPPath: "/{Bucket}?location", 3358 } 3359 3360 if input == nil { 3361 input = &GetBucketLocationInput{} 3362 } 3363 3364 output = &GetBucketLocationOutput{} 3365 req = c.newRequest(op, input, output) 3366 return 3367 } 3368 3369 // GetBucketLocation API operation for Amazon Simple Storage Service. 3370 // 3371 // Returns the Region the bucket resides in. You set the bucket's Region using 3372 // the LocationConstraint request parameter in a CreateBucket request. For more 3373 // information, see CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). 3374 // 3375 // To use this implementation of the operation, you must be the bucket owner. 3376 // 3377 // To use this API against an access point, provide the alias of the access 3378 // point in place of the bucket name. 3379 // 3380 // The following operations are related to GetBucketLocation: 3381 // 3382 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 3383 // 3384 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 3385 // 3386 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3387 // with awserr.Error's Code and Message methods to get detailed information about 3388 // the error. 3389 // 3390 // See the AWS API reference guide for Amazon Simple Storage Service's 3391 // API operation GetBucketLocation for usage and error information. 3392 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocation 3393 func (c *S3) GetBucketLocation(input *GetBucketLocationInput) (*GetBucketLocationOutput, error) { 3394 req, out := c.GetBucketLocationRequest(input) 3395 return out, req.Send() 3396 } 3397 3398 // GetBucketLocationWithContext is the same as GetBucketLocation with the addition of 3399 // the ability to pass a context and additional request options. 3400 // 3401 // See GetBucketLocation for details on how to use this API operation. 3402 // 3403 // The context must be non-nil and will be used for request cancellation. If 3404 // the context is nil a panic will occur. In the future the SDK may create 3405 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3406 // for more information on using Contexts. 3407 func (c *S3) GetBucketLocationWithContext(ctx aws.Context, input *GetBucketLocationInput, opts ...request.Option) (*GetBucketLocationOutput, error) { 3408 req, out := c.GetBucketLocationRequest(input) 3409 req.SetContext(ctx) 3410 req.ApplyOptions(opts...) 3411 return out, req.Send() 3412 } 3413 3414 const opGetBucketLogging = "GetBucketLogging" 3415 3416 // GetBucketLoggingRequest generates a "aws/request.Request" representing the 3417 // client's request for the GetBucketLogging operation. The "output" return 3418 // value will be populated with the request's response once the request completes 3419 // successfully. 3420 // 3421 // Use "Send" method on the returned Request to send the API call to the service. 3422 // the "output" return value is not valid until after Send returns without error. 3423 // 3424 // See GetBucketLogging for more information on using the GetBucketLogging 3425 // API call, and error handling. 3426 // 3427 // This method is useful when you want to inject custom logic or configuration 3428 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3429 // 3430 // 3431 // // Example sending a request using the GetBucketLoggingRequest method. 3432 // req, resp := client.GetBucketLoggingRequest(params) 3433 // 3434 // err := req.Send() 3435 // if err == nil { // resp is now filled 3436 // fmt.Println(resp) 3437 // } 3438 // 3439 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging 3440 func (c *S3) GetBucketLoggingRequest(input *GetBucketLoggingInput) (req *request.Request, output *GetBucketLoggingOutput) { 3441 op := &request.Operation{ 3442 Name: opGetBucketLogging, 3443 HTTPMethod: "GET", 3444 HTTPPath: "/{Bucket}?logging", 3445 } 3446 3447 if input == nil { 3448 input = &GetBucketLoggingInput{} 3449 } 3450 3451 output = &GetBucketLoggingOutput{} 3452 req = c.newRequest(op, input, output) 3453 return 3454 } 3455 3456 // GetBucketLogging API operation for Amazon Simple Storage Service. 3457 // 3458 // Returns the logging status of a bucket and the permissions users have to 3459 // view and modify that status. To use GET, you must be the bucket owner. 3460 // 3461 // The following operations are related to GetBucketLogging: 3462 // 3463 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 3464 // 3465 // * PutBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) 3466 // 3467 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3468 // with awserr.Error's Code and Message methods to get detailed information about 3469 // the error. 3470 // 3471 // See the AWS API reference guide for Amazon Simple Storage Service's 3472 // API operation GetBucketLogging for usage and error information. 3473 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLogging 3474 func (c *S3) GetBucketLogging(input *GetBucketLoggingInput) (*GetBucketLoggingOutput, error) { 3475 req, out := c.GetBucketLoggingRequest(input) 3476 return out, req.Send() 3477 } 3478 3479 // GetBucketLoggingWithContext is the same as GetBucketLogging with the addition of 3480 // the ability to pass a context and additional request options. 3481 // 3482 // See GetBucketLogging for details on how to use this API operation. 3483 // 3484 // The context must be non-nil and will be used for request cancellation. If 3485 // the context is nil a panic will occur. In the future the SDK may create 3486 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3487 // for more information on using Contexts. 3488 func (c *S3) GetBucketLoggingWithContext(ctx aws.Context, input *GetBucketLoggingInput, opts ...request.Option) (*GetBucketLoggingOutput, error) { 3489 req, out := c.GetBucketLoggingRequest(input) 3490 req.SetContext(ctx) 3491 req.ApplyOptions(opts...) 3492 return out, req.Send() 3493 } 3494 3495 const opGetBucketMetricsConfiguration = "GetBucketMetricsConfiguration" 3496 3497 // GetBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the 3498 // client's request for the GetBucketMetricsConfiguration operation. The "output" return 3499 // value will be populated with the request's response once the request completes 3500 // successfully. 3501 // 3502 // Use "Send" method on the returned Request to send the API call to the service. 3503 // the "output" return value is not valid until after Send returns without error. 3504 // 3505 // See GetBucketMetricsConfiguration for more information on using the GetBucketMetricsConfiguration 3506 // API call, and error handling. 3507 // 3508 // This method is useful when you want to inject custom logic or configuration 3509 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3510 // 3511 // 3512 // // Example sending a request using the GetBucketMetricsConfigurationRequest method. 3513 // req, resp := client.GetBucketMetricsConfigurationRequest(params) 3514 // 3515 // err := req.Send() 3516 // if err == nil { // resp is now filled 3517 // fmt.Println(resp) 3518 // } 3519 // 3520 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration 3521 func (c *S3) GetBucketMetricsConfigurationRequest(input *GetBucketMetricsConfigurationInput) (req *request.Request, output *GetBucketMetricsConfigurationOutput) { 3522 op := &request.Operation{ 3523 Name: opGetBucketMetricsConfiguration, 3524 HTTPMethod: "GET", 3525 HTTPPath: "/{Bucket}?metrics", 3526 } 3527 3528 if input == nil { 3529 input = &GetBucketMetricsConfigurationInput{} 3530 } 3531 3532 output = &GetBucketMetricsConfigurationOutput{} 3533 req = c.newRequest(op, input, output) 3534 return 3535 } 3536 3537 // GetBucketMetricsConfiguration API operation for Amazon Simple Storage Service. 3538 // 3539 // Gets a metrics configuration (specified by the metrics configuration ID) 3540 // from the bucket. Note that this doesn't include the daily storage metrics. 3541 // 3542 // To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration 3543 // action. The bucket owner has this permission by default. The bucket owner 3544 // can grant this permission to others. For more information about permissions, 3545 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 3546 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 3547 // 3548 // For information about CloudWatch request metrics for Amazon S3, see Monitoring 3549 // Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). 3550 // 3551 // The following operations are related to GetBucketMetricsConfiguration: 3552 // 3553 // * PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) 3554 // 3555 // * DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) 3556 // 3557 // * ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) 3558 // 3559 // * Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html) 3560 // 3561 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3562 // with awserr.Error's Code and Message methods to get detailed information about 3563 // the error. 3564 // 3565 // See the AWS API reference guide for Amazon Simple Storage Service's 3566 // API operation GetBucketMetricsConfiguration for usage and error information. 3567 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfiguration 3568 func (c *S3) GetBucketMetricsConfiguration(input *GetBucketMetricsConfigurationInput) (*GetBucketMetricsConfigurationOutput, error) { 3569 req, out := c.GetBucketMetricsConfigurationRequest(input) 3570 return out, req.Send() 3571 } 3572 3573 // GetBucketMetricsConfigurationWithContext is the same as GetBucketMetricsConfiguration with the addition of 3574 // the ability to pass a context and additional request options. 3575 // 3576 // See GetBucketMetricsConfiguration for details on how to use this API operation. 3577 // 3578 // The context must be non-nil and will be used for request cancellation. If 3579 // the context is nil a panic will occur. In the future the SDK may create 3580 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3581 // for more information on using Contexts. 3582 func (c *S3) GetBucketMetricsConfigurationWithContext(ctx aws.Context, input *GetBucketMetricsConfigurationInput, opts ...request.Option) (*GetBucketMetricsConfigurationOutput, error) { 3583 req, out := c.GetBucketMetricsConfigurationRequest(input) 3584 req.SetContext(ctx) 3585 req.ApplyOptions(opts...) 3586 return out, req.Send() 3587 } 3588 3589 const opGetBucketNotification = "GetBucketNotification" 3590 3591 // GetBucketNotificationRequest generates a "aws/request.Request" representing the 3592 // client's request for the GetBucketNotification operation. The "output" return 3593 // value will be populated with the request's response once the request completes 3594 // successfully. 3595 // 3596 // Use "Send" method on the returned Request to send the API call to the service. 3597 // the "output" return value is not valid until after Send returns without error. 3598 // 3599 // See GetBucketNotification for more information on using the GetBucketNotification 3600 // API call, and error handling. 3601 // 3602 // This method is useful when you want to inject custom logic or configuration 3603 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3604 // 3605 // 3606 // // Example sending a request using the GetBucketNotificationRequest method. 3607 // req, resp := client.GetBucketNotificationRequest(params) 3608 // 3609 // err := req.Send() 3610 // if err == nil { // resp is now filled 3611 // fmt.Println(resp) 3612 // } 3613 // 3614 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification 3615 // 3616 // Deprecated: GetBucketNotification has been deprecated 3617 func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurationRequest) (req *request.Request, output *NotificationConfigurationDeprecated) { 3618 if c.Client.Config.Logger != nil { 3619 c.Client.Config.Logger.Log("This operation, GetBucketNotification, has been deprecated") 3620 } 3621 op := &request.Operation{ 3622 Name: opGetBucketNotification, 3623 HTTPMethod: "GET", 3624 HTTPPath: "/{Bucket}?notification", 3625 } 3626 3627 if input == nil { 3628 input = &GetBucketNotificationConfigurationRequest{} 3629 } 3630 3631 output = &NotificationConfigurationDeprecated{} 3632 req = c.newRequest(op, input, output) 3633 return 3634 } 3635 3636 // GetBucketNotification API operation for Amazon Simple Storage Service. 3637 // 3638 // No longer used, see GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html). 3639 // 3640 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3641 // with awserr.Error's Code and Message methods to get detailed information about 3642 // the error. 3643 // 3644 // See the AWS API reference guide for Amazon Simple Storage Service's 3645 // API operation GetBucketNotification for usage and error information. 3646 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification 3647 // 3648 // Deprecated: GetBucketNotification has been deprecated 3649 func (c *S3) GetBucketNotification(input *GetBucketNotificationConfigurationRequest) (*NotificationConfigurationDeprecated, error) { 3650 req, out := c.GetBucketNotificationRequest(input) 3651 return out, req.Send() 3652 } 3653 3654 // GetBucketNotificationWithContext is the same as GetBucketNotification with the addition of 3655 // the ability to pass a context and additional request options. 3656 // 3657 // See GetBucketNotification for details on how to use this API operation. 3658 // 3659 // The context must be non-nil and will be used for request cancellation. If 3660 // the context is nil a panic will occur. In the future the SDK may create 3661 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3662 // for more information on using Contexts. 3663 // 3664 // Deprecated: GetBucketNotificationWithContext has been deprecated 3665 func (c *S3) GetBucketNotificationWithContext(ctx aws.Context, input *GetBucketNotificationConfigurationRequest, opts ...request.Option) (*NotificationConfigurationDeprecated, error) { 3666 req, out := c.GetBucketNotificationRequest(input) 3667 req.SetContext(ctx) 3668 req.ApplyOptions(opts...) 3669 return out, req.Send() 3670 } 3671 3672 const opGetBucketNotificationConfiguration = "GetBucketNotificationConfiguration" 3673 3674 // GetBucketNotificationConfigurationRequest generates a "aws/request.Request" representing the 3675 // client's request for the GetBucketNotificationConfiguration operation. The "output" return 3676 // value will be populated with the request's response once the request completes 3677 // successfully. 3678 // 3679 // Use "Send" method on the returned Request to send the API call to the service. 3680 // the "output" return value is not valid until after Send returns without error. 3681 // 3682 // See GetBucketNotificationConfiguration for more information on using the GetBucketNotificationConfiguration 3683 // API call, and error handling. 3684 // 3685 // This method is useful when you want to inject custom logic or configuration 3686 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3687 // 3688 // 3689 // // Example sending a request using the GetBucketNotificationConfigurationRequest method. 3690 // req, resp := client.GetBucketNotificationConfigurationRequest(params) 3691 // 3692 // err := req.Send() 3693 // if err == nil { // resp is now filled 3694 // fmt.Println(resp) 3695 // } 3696 // 3697 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration 3698 func (c *S3) GetBucketNotificationConfigurationRequest(input *GetBucketNotificationConfigurationRequest) (req *request.Request, output *NotificationConfiguration) { 3699 op := &request.Operation{ 3700 Name: opGetBucketNotificationConfiguration, 3701 HTTPMethod: "GET", 3702 HTTPPath: "/{Bucket}?notification", 3703 } 3704 3705 if input == nil { 3706 input = &GetBucketNotificationConfigurationRequest{} 3707 } 3708 3709 output = &NotificationConfiguration{} 3710 req = c.newRequest(op, input, output) 3711 return 3712 } 3713 3714 // GetBucketNotificationConfiguration API operation for Amazon Simple Storage Service. 3715 // 3716 // Returns the notification configuration of a bucket. 3717 // 3718 // If notifications are not enabled on the bucket, the action returns an empty 3719 // NotificationConfiguration element. 3720 // 3721 // By default, you must be the bucket owner to read the notification configuration 3722 // of a bucket. However, the bucket owner can use a bucket policy to grant permission 3723 // to other users to read this configuration with the s3:GetBucketNotification 3724 // permission. 3725 // 3726 // For more information about setting and reading the notification configuration 3727 // on a bucket, see Setting Up Notification of Bucket Events (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). 3728 // For more information about bucket policies, see Using Bucket Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). 3729 // 3730 // The following action is related to GetBucketNotification: 3731 // 3732 // * PutBucketNotification (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html) 3733 // 3734 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3735 // with awserr.Error's Code and Message methods to get detailed information about 3736 // the error. 3737 // 3738 // See the AWS API reference guide for Amazon Simple Storage Service's 3739 // API operation GetBucketNotificationConfiguration for usage and error information. 3740 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfiguration 3741 func (c *S3) GetBucketNotificationConfiguration(input *GetBucketNotificationConfigurationRequest) (*NotificationConfiguration, error) { 3742 req, out := c.GetBucketNotificationConfigurationRequest(input) 3743 return out, req.Send() 3744 } 3745 3746 // GetBucketNotificationConfigurationWithContext is the same as GetBucketNotificationConfiguration with the addition of 3747 // the ability to pass a context and additional request options. 3748 // 3749 // See GetBucketNotificationConfiguration for details on how to use this API operation. 3750 // 3751 // The context must be non-nil and will be used for request cancellation. If 3752 // the context is nil a panic will occur. In the future the SDK may create 3753 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3754 // for more information on using Contexts. 3755 func (c *S3) GetBucketNotificationConfigurationWithContext(ctx aws.Context, input *GetBucketNotificationConfigurationRequest, opts ...request.Option) (*NotificationConfiguration, error) { 3756 req, out := c.GetBucketNotificationConfigurationRequest(input) 3757 req.SetContext(ctx) 3758 req.ApplyOptions(opts...) 3759 return out, req.Send() 3760 } 3761 3762 const opGetBucketOwnershipControls = "GetBucketOwnershipControls" 3763 3764 // GetBucketOwnershipControlsRequest generates a "aws/request.Request" representing the 3765 // client's request for the GetBucketOwnershipControls operation. The "output" return 3766 // value will be populated with the request's response once the request completes 3767 // successfully. 3768 // 3769 // Use "Send" method on the returned Request to send the API call to the service. 3770 // the "output" return value is not valid until after Send returns without error. 3771 // 3772 // See GetBucketOwnershipControls for more information on using the GetBucketOwnershipControls 3773 // API call, and error handling. 3774 // 3775 // This method is useful when you want to inject custom logic or configuration 3776 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3777 // 3778 // 3779 // // Example sending a request using the GetBucketOwnershipControlsRequest method. 3780 // req, resp := client.GetBucketOwnershipControlsRequest(params) 3781 // 3782 // err := req.Send() 3783 // if err == nil { // resp is now filled 3784 // fmt.Println(resp) 3785 // } 3786 // 3787 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls 3788 func (c *S3) GetBucketOwnershipControlsRequest(input *GetBucketOwnershipControlsInput) (req *request.Request, output *GetBucketOwnershipControlsOutput) { 3789 op := &request.Operation{ 3790 Name: opGetBucketOwnershipControls, 3791 HTTPMethod: "GET", 3792 HTTPPath: "/{Bucket}?ownershipControls", 3793 } 3794 3795 if input == nil { 3796 input = &GetBucketOwnershipControlsInput{} 3797 } 3798 3799 output = &GetBucketOwnershipControlsOutput{} 3800 req = c.newRequest(op, input, output) 3801 return 3802 } 3803 3804 // GetBucketOwnershipControls API operation for Amazon Simple Storage Service. 3805 // 3806 // Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, 3807 // you must have the s3:GetBucketOwnershipControls permission. For more information 3808 // about Amazon S3 permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). 3809 // 3810 // For information about Amazon S3 Object Ownership, see Using Object Ownership 3811 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). 3812 // 3813 // The following operations are related to GetBucketOwnershipControls: 3814 // 3815 // * PutBucketOwnershipControls 3816 // 3817 // * DeleteBucketOwnershipControls 3818 // 3819 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3820 // with awserr.Error's Code and Message methods to get detailed information about 3821 // the error. 3822 // 3823 // See the AWS API reference guide for Amazon Simple Storage Service's 3824 // API operation GetBucketOwnershipControls for usage and error information. 3825 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls 3826 func (c *S3) GetBucketOwnershipControls(input *GetBucketOwnershipControlsInput) (*GetBucketOwnershipControlsOutput, error) { 3827 req, out := c.GetBucketOwnershipControlsRequest(input) 3828 return out, req.Send() 3829 } 3830 3831 // GetBucketOwnershipControlsWithContext is the same as GetBucketOwnershipControls with the addition of 3832 // the ability to pass a context and additional request options. 3833 // 3834 // See GetBucketOwnershipControls for details on how to use this API operation. 3835 // 3836 // The context must be non-nil and will be used for request cancellation. If 3837 // the context is nil a panic will occur. In the future the SDK may create 3838 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3839 // for more information on using Contexts. 3840 func (c *S3) GetBucketOwnershipControlsWithContext(ctx aws.Context, input *GetBucketOwnershipControlsInput, opts ...request.Option) (*GetBucketOwnershipControlsOutput, error) { 3841 req, out := c.GetBucketOwnershipControlsRequest(input) 3842 req.SetContext(ctx) 3843 req.ApplyOptions(opts...) 3844 return out, req.Send() 3845 } 3846 3847 const opGetBucketPolicy = "GetBucketPolicy" 3848 3849 // GetBucketPolicyRequest generates a "aws/request.Request" representing the 3850 // client's request for the GetBucketPolicy operation. The "output" return 3851 // value will be populated with the request's response once the request completes 3852 // successfully. 3853 // 3854 // Use "Send" method on the returned Request to send the API call to the service. 3855 // the "output" return value is not valid until after Send returns without error. 3856 // 3857 // See GetBucketPolicy for more information on using the GetBucketPolicy 3858 // API call, and error handling. 3859 // 3860 // This method is useful when you want to inject custom logic or configuration 3861 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3862 // 3863 // 3864 // // Example sending a request using the GetBucketPolicyRequest method. 3865 // req, resp := client.GetBucketPolicyRequest(params) 3866 // 3867 // err := req.Send() 3868 // if err == nil { // resp is now filled 3869 // fmt.Println(resp) 3870 // } 3871 // 3872 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy 3873 func (c *S3) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.Request, output *GetBucketPolicyOutput) { 3874 op := &request.Operation{ 3875 Name: opGetBucketPolicy, 3876 HTTPMethod: "GET", 3877 HTTPPath: "/{Bucket}?policy", 3878 } 3879 3880 if input == nil { 3881 input = &GetBucketPolicyInput{} 3882 } 3883 3884 output = &GetBucketPolicyOutput{} 3885 req = c.newRequest(op, input, output) 3886 return 3887 } 3888 3889 // GetBucketPolicy API operation for Amazon Simple Storage Service. 3890 // 3891 // Returns the policy of a specified bucket. If you are using an identity other 3892 // than the root user of the Amazon Web Services account that owns the bucket, 3893 // the calling identity must have the GetBucketPolicy permissions on the specified 3894 // bucket and belong to the bucket owner's account in order to use this operation. 3895 // 3896 // If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access 3897 // Denied error. If you have the correct permissions, but you're not using an 3898 // identity that belongs to the bucket owner's account, Amazon S3 returns a 3899 // 405 Method Not Allowed error. 3900 // 3901 // As a security precaution, the root user of the Amazon Web Services account 3902 // that owns a bucket can always use this operation, even if the policy explicitly 3903 // denies the root user the ability to perform this action. 3904 // 3905 // For more information about bucket policies, see Using Bucket Policies and 3906 // User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). 3907 // 3908 // The following action is related to GetBucketPolicy: 3909 // 3910 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 3911 // 3912 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3913 // with awserr.Error's Code and Message methods to get detailed information about 3914 // the error. 3915 // 3916 // See the AWS API reference guide for Amazon Simple Storage Service's 3917 // API operation GetBucketPolicy for usage and error information. 3918 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicy 3919 func (c *S3) GetBucketPolicy(input *GetBucketPolicyInput) (*GetBucketPolicyOutput, error) { 3920 req, out := c.GetBucketPolicyRequest(input) 3921 return out, req.Send() 3922 } 3923 3924 // GetBucketPolicyWithContext is the same as GetBucketPolicy with the addition of 3925 // the ability to pass a context and additional request options. 3926 // 3927 // See GetBucketPolicy for details on how to use this API operation. 3928 // 3929 // The context must be non-nil and will be used for request cancellation. If 3930 // the context is nil a panic will occur. In the future the SDK may create 3931 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3932 // for more information on using Contexts. 3933 func (c *S3) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyInput, opts ...request.Option) (*GetBucketPolicyOutput, error) { 3934 req, out := c.GetBucketPolicyRequest(input) 3935 req.SetContext(ctx) 3936 req.ApplyOptions(opts...) 3937 return out, req.Send() 3938 } 3939 3940 const opGetBucketPolicyStatus = "GetBucketPolicyStatus" 3941 3942 // GetBucketPolicyStatusRequest generates a "aws/request.Request" representing the 3943 // client's request for the GetBucketPolicyStatus operation. The "output" return 3944 // value will be populated with the request's response once the request completes 3945 // successfully. 3946 // 3947 // Use "Send" method on the returned Request to send the API call to the service. 3948 // the "output" return value is not valid until after Send returns without error. 3949 // 3950 // See GetBucketPolicyStatus for more information on using the GetBucketPolicyStatus 3951 // API call, and error handling. 3952 // 3953 // This method is useful when you want to inject custom logic or configuration 3954 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3955 // 3956 // 3957 // // Example sending a request using the GetBucketPolicyStatusRequest method. 3958 // req, resp := client.GetBucketPolicyStatusRequest(params) 3959 // 3960 // err := req.Send() 3961 // if err == nil { // resp is now filled 3962 // fmt.Println(resp) 3963 // } 3964 // 3965 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus 3966 func (c *S3) GetBucketPolicyStatusRequest(input *GetBucketPolicyStatusInput) (req *request.Request, output *GetBucketPolicyStatusOutput) { 3967 op := &request.Operation{ 3968 Name: opGetBucketPolicyStatus, 3969 HTTPMethod: "GET", 3970 HTTPPath: "/{Bucket}?policyStatus", 3971 } 3972 3973 if input == nil { 3974 input = &GetBucketPolicyStatusInput{} 3975 } 3976 3977 output = &GetBucketPolicyStatusOutput{} 3978 req = c.newRequest(op, input, output) 3979 return 3980 } 3981 3982 // GetBucketPolicyStatus API operation for Amazon Simple Storage Service. 3983 // 3984 // Retrieves the policy status for an Amazon S3 bucket, indicating whether the 3985 // bucket is public. In order to use this operation, you must have the s3:GetBucketPolicyStatus 3986 // permission. For more information about Amazon S3 permissions, see Specifying 3987 // Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). 3988 // 3989 // For more information about when Amazon S3 considers a bucket public, see 3990 // The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). 3991 // 3992 // The following operations are related to GetBucketPolicyStatus: 3993 // 3994 // * Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) 3995 // 3996 // * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) 3997 // 3998 // * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) 3999 // 4000 // * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) 4001 // 4002 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4003 // with awserr.Error's Code and Message methods to get detailed information about 4004 // the error. 4005 // 4006 // See the AWS API reference guide for Amazon Simple Storage Service's 4007 // API operation GetBucketPolicyStatus for usage and error information. 4008 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus 4009 func (c *S3) GetBucketPolicyStatus(input *GetBucketPolicyStatusInput) (*GetBucketPolicyStatusOutput, error) { 4010 req, out := c.GetBucketPolicyStatusRequest(input) 4011 return out, req.Send() 4012 } 4013 4014 // GetBucketPolicyStatusWithContext is the same as GetBucketPolicyStatus with the addition of 4015 // the ability to pass a context and additional request options. 4016 // 4017 // See GetBucketPolicyStatus for details on how to use this API operation. 4018 // 4019 // The context must be non-nil and will be used for request cancellation. If 4020 // the context is nil a panic will occur. In the future the SDK may create 4021 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4022 // for more information on using Contexts. 4023 func (c *S3) GetBucketPolicyStatusWithContext(ctx aws.Context, input *GetBucketPolicyStatusInput, opts ...request.Option) (*GetBucketPolicyStatusOutput, error) { 4024 req, out := c.GetBucketPolicyStatusRequest(input) 4025 req.SetContext(ctx) 4026 req.ApplyOptions(opts...) 4027 return out, req.Send() 4028 } 4029 4030 const opGetBucketReplication = "GetBucketReplication" 4031 4032 // GetBucketReplicationRequest generates a "aws/request.Request" representing the 4033 // client's request for the GetBucketReplication operation. The "output" return 4034 // value will be populated with the request's response once the request completes 4035 // successfully. 4036 // 4037 // Use "Send" method on the returned Request to send the API call to the service. 4038 // the "output" return value is not valid until after Send returns without error. 4039 // 4040 // See GetBucketReplication for more information on using the GetBucketReplication 4041 // API call, and error handling. 4042 // 4043 // This method is useful when you want to inject custom logic or configuration 4044 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4045 // 4046 // 4047 // // Example sending a request using the GetBucketReplicationRequest method. 4048 // req, resp := client.GetBucketReplicationRequest(params) 4049 // 4050 // err := req.Send() 4051 // if err == nil { // resp is now filled 4052 // fmt.Println(resp) 4053 // } 4054 // 4055 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication 4056 func (c *S3) GetBucketReplicationRequest(input *GetBucketReplicationInput) (req *request.Request, output *GetBucketReplicationOutput) { 4057 op := &request.Operation{ 4058 Name: opGetBucketReplication, 4059 HTTPMethod: "GET", 4060 HTTPPath: "/{Bucket}?replication", 4061 } 4062 4063 if input == nil { 4064 input = &GetBucketReplicationInput{} 4065 } 4066 4067 output = &GetBucketReplicationOutput{} 4068 req = c.newRequest(op, input, output) 4069 return 4070 } 4071 4072 // GetBucketReplication API operation for Amazon Simple Storage Service. 4073 // 4074 // Returns the replication configuration of a bucket. 4075 // 4076 // It can take a while to propagate the put or delete a replication configuration 4077 // to all Amazon S3 systems. Therefore, a get request soon after put or delete 4078 // can return a wrong result. 4079 // 4080 // For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) 4081 // in the Amazon S3 User Guide. 4082 // 4083 // This action requires permissions for the s3:GetReplicationConfiguration action. 4084 // For more information about permissions, see Using Bucket Policies and User 4085 // Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). 4086 // 4087 // If you include the Filter element in a replication configuration, you must 4088 // also include the DeleteMarkerReplication and Priority elements. The response 4089 // also returns those elements. 4090 // 4091 // For information about GetBucketReplication errors, see List of replication-related 4092 // error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) 4093 // 4094 // The following operations are related to GetBucketReplication: 4095 // 4096 // * PutBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) 4097 // 4098 // * DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) 4099 // 4100 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4101 // with awserr.Error's Code and Message methods to get detailed information about 4102 // the error. 4103 // 4104 // See the AWS API reference guide for Amazon Simple Storage Service's 4105 // API operation GetBucketReplication for usage and error information. 4106 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication 4107 func (c *S3) GetBucketReplication(input *GetBucketReplicationInput) (*GetBucketReplicationOutput, error) { 4108 req, out := c.GetBucketReplicationRequest(input) 4109 return out, req.Send() 4110 } 4111 4112 // GetBucketReplicationWithContext is the same as GetBucketReplication with the addition of 4113 // the ability to pass a context and additional request options. 4114 // 4115 // See GetBucketReplication for details on how to use this API operation. 4116 // 4117 // The context must be non-nil and will be used for request cancellation. If 4118 // the context is nil a panic will occur. In the future the SDK may create 4119 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4120 // for more information on using Contexts. 4121 func (c *S3) GetBucketReplicationWithContext(ctx aws.Context, input *GetBucketReplicationInput, opts ...request.Option) (*GetBucketReplicationOutput, error) { 4122 req, out := c.GetBucketReplicationRequest(input) 4123 req.SetContext(ctx) 4124 req.ApplyOptions(opts...) 4125 return out, req.Send() 4126 } 4127 4128 const opGetBucketRequestPayment = "GetBucketRequestPayment" 4129 4130 // GetBucketRequestPaymentRequest generates a "aws/request.Request" representing the 4131 // client's request for the GetBucketRequestPayment operation. The "output" return 4132 // value will be populated with the request's response once the request completes 4133 // successfully. 4134 // 4135 // Use "Send" method on the returned Request to send the API call to the service. 4136 // the "output" return value is not valid until after Send returns without error. 4137 // 4138 // See GetBucketRequestPayment for more information on using the GetBucketRequestPayment 4139 // API call, and error handling. 4140 // 4141 // This method is useful when you want to inject custom logic or configuration 4142 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4143 // 4144 // 4145 // // Example sending a request using the GetBucketRequestPaymentRequest method. 4146 // req, resp := client.GetBucketRequestPaymentRequest(params) 4147 // 4148 // err := req.Send() 4149 // if err == nil { // resp is now filled 4150 // fmt.Println(resp) 4151 // } 4152 // 4153 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment 4154 func (c *S3) GetBucketRequestPaymentRequest(input *GetBucketRequestPaymentInput) (req *request.Request, output *GetBucketRequestPaymentOutput) { 4155 op := &request.Operation{ 4156 Name: opGetBucketRequestPayment, 4157 HTTPMethod: "GET", 4158 HTTPPath: "/{Bucket}?requestPayment", 4159 } 4160 4161 if input == nil { 4162 input = &GetBucketRequestPaymentInput{} 4163 } 4164 4165 output = &GetBucketRequestPaymentOutput{} 4166 req = c.newRequest(op, input, output) 4167 return 4168 } 4169 4170 // GetBucketRequestPayment API operation for Amazon Simple Storage Service. 4171 // 4172 // Returns the request payment configuration of a bucket. To use this version 4173 // of the operation, you must be the bucket owner. For more information, see 4174 // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). 4175 // 4176 // The following operations are related to GetBucketRequestPayment: 4177 // 4178 // * ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html) 4179 // 4180 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4181 // with awserr.Error's Code and Message methods to get detailed information about 4182 // the error. 4183 // 4184 // See the AWS API reference guide for Amazon Simple Storage Service's 4185 // API operation GetBucketRequestPayment for usage and error information. 4186 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPayment 4187 func (c *S3) GetBucketRequestPayment(input *GetBucketRequestPaymentInput) (*GetBucketRequestPaymentOutput, error) { 4188 req, out := c.GetBucketRequestPaymentRequest(input) 4189 return out, req.Send() 4190 } 4191 4192 // GetBucketRequestPaymentWithContext is the same as GetBucketRequestPayment with the addition of 4193 // the ability to pass a context and additional request options. 4194 // 4195 // See GetBucketRequestPayment for details on how to use this API operation. 4196 // 4197 // The context must be non-nil and will be used for request cancellation. If 4198 // the context is nil a panic will occur. In the future the SDK may create 4199 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4200 // for more information on using Contexts. 4201 func (c *S3) GetBucketRequestPaymentWithContext(ctx aws.Context, input *GetBucketRequestPaymentInput, opts ...request.Option) (*GetBucketRequestPaymentOutput, error) { 4202 req, out := c.GetBucketRequestPaymentRequest(input) 4203 req.SetContext(ctx) 4204 req.ApplyOptions(opts...) 4205 return out, req.Send() 4206 } 4207 4208 const opGetBucketTagging = "GetBucketTagging" 4209 4210 // GetBucketTaggingRequest generates a "aws/request.Request" representing the 4211 // client's request for the GetBucketTagging operation. The "output" return 4212 // value will be populated with the request's response once the request completes 4213 // successfully. 4214 // 4215 // Use "Send" method on the returned Request to send the API call to the service. 4216 // the "output" return value is not valid until after Send returns without error. 4217 // 4218 // See GetBucketTagging for more information on using the GetBucketTagging 4219 // API call, and error handling. 4220 // 4221 // This method is useful when you want to inject custom logic or configuration 4222 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4223 // 4224 // 4225 // // Example sending a request using the GetBucketTaggingRequest method. 4226 // req, resp := client.GetBucketTaggingRequest(params) 4227 // 4228 // err := req.Send() 4229 // if err == nil { // resp is now filled 4230 // fmt.Println(resp) 4231 // } 4232 // 4233 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging 4234 func (c *S3) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request.Request, output *GetBucketTaggingOutput) { 4235 op := &request.Operation{ 4236 Name: opGetBucketTagging, 4237 HTTPMethod: "GET", 4238 HTTPPath: "/{Bucket}?tagging", 4239 } 4240 4241 if input == nil { 4242 input = &GetBucketTaggingInput{} 4243 } 4244 4245 output = &GetBucketTaggingOutput{} 4246 req = c.newRequest(op, input, output) 4247 return 4248 } 4249 4250 // GetBucketTagging API operation for Amazon Simple Storage Service. 4251 // 4252 // Returns the tag set associated with the bucket. 4253 // 4254 // To use this operation, you must have permission to perform the s3:GetBucketTagging 4255 // action. By default, the bucket owner has this permission and can grant this 4256 // permission to others. 4257 // 4258 // GetBucketTagging has the following special error: 4259 // 4260 // * Error code: NoSuchTagSetError Description: There is no tag set associated 4261 // with the bucket. 4262 // 4263 // The following operations are related to GetBucketTagging: 4264 // 4265 // * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) 4266 // 4267 // * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) 4268 // 4269 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4270 // with awserr.Error's Code and Message methods to get detailed information about 4271 // the error. 4272 // 4273 // See the AWS API reference guide for Amazon Simple Storage Service's 4274 // API operation GetBucketTagging for usage and error information. 4275 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTagging 4276 func (c *S3) GetBucketTagging(input *GetBucketTaggingInput) (*GetBucketTaggingOutput, error) { 4277 req, out := c.GetBucketTaggingRequest(input) 4278 return out, req.Send() 4279 } 4280 4281 // GetBucketTaggingWithContext is the same as GetBucketTagging with the addition of 4282 // the ability to pass a context and additional request options. 4283 // 4284 // See GetBucketTagging for details on how to use this API operation. 4285 // 4286 // The context must be non-nil and will be used for request cancellation. If 4287 // the context is nil a panic will occur. In the future the SDK may create 4288 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4289 // for more information on using Contexts. 4290 func (c *S3) GetBucketTaggingWithContext(ctx aws.Context, input *GetBucketTaggingInput, opts ...request.Option) (*GetBucketTaggingOutput, error) { 4291 req, out := c.GetBucketTaggingRequest(input) 4292 req.SetContext(ctx) 4293 req.ApplyOptions(opts...) 4294 return out, req.Send() 4295 } 4296 4297 const opGetBucketVersioning = "GetBucketVersioning" 4298 4299 // GetBucketVersioningRequest generates a "aws/request.Request" representing the 4300 // client's request for the GetBucketVersioning operation. The "output" return 4301 // value will be populated with the request's response once the request completes 4302 // successfully. 4303 // 4304 // Use "Send" method on the returned Request to send the API call to the service. 4305 // the "output" return value is not valid until after Send returns without error. 4306 // 4307 // See GetBucketVersioning for more information on using the GetBucketVersioning 4308 // API call, and error handling. 4309 // 4310 // This method is useful when you want to inject custom logic or configuration 4311 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4312 // 4313 // 4314 // // Example sending a request using the GetBucketVersioningRequest method. 4315 // req, resp := client.GetBucketVersioningRequest(params) 4316 // 4317 // err := req.Send() 4318 // if err == nil { // resp is now filled 4319 // fmt.Println(resp) 4320 // } 4321 // 4322 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning 4323 func (c *S3) GetBucketVersioningRequest(input *GetBucketVersioningInput) (req *request.Request, output *GetBucketVersioningOutput) { 4324 op := &request.Operation{ 4325 Name: opGetBucketVersioning, 4326 HTTPMethod: "GET", 4327 HTTPPath: "/{Bucket}?versioning", 4328 } 4329 4330 if input == nil { 4331 input = &GetBucketVersioningInput{} 4332 } 4333 4334 output = &GetBucketVersioningOutput{} 4335 req = c.newRequest(op, input, output) 4336 return 4337 } 4338 4339 // GetBucketVersioning API operation for Amazon Simple Storage Service. 4340 // 4341 // Returns the versioning state of a bucket. 4342 // 4343 // To retrieve the versioning state of a bucket, you must be the bucket owner. 4344 // 4345 // This implementation also returns the MFA Delete status of the versioning 4346 // state. If the MFA Delete status is enabled, the bucket owner must use an 4347 // authentication device to change the versioning state of the bucket. 4348 // 4349 // The following operations are related to GetBucketVersioning: 4350 // 4351 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 4352 // 4353 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 4354 // 4355 // * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) 4356 // 4357 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4358 // with awserr.Error's Code and Message methods to get detailed information about 4359 // the error. 4360 // 4361 // See the AWS API reference guide for Amazon Simple Storage Service's 4362 // API operation GetBucketVersioning for usage and error information. 4363 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioning 4364 func (c *S3) GetBucketVersioning(input *GetBucketVersioningInput) (*GetBucketVersioningOutput, error) { 4365 req, out := c.GetBucketVersioningRequest(input) 4366 return out, req.Send() 4367 } 4368 4369 // GetBucketVersioningWithContext is the same as GetBucketVersioning with the addition of 4370 // the ability to pass a context and additional request options. 4371 // 4372 // See GetBucketVersioning for details on how to use this API operation. 4373 // 4374 // The context must be non-nil and will be used for request cancellation. If 4375 // the context is nil a panic will occur. In the future the SDK may create 4376 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4377 // for more information on using Contexts. 4378 func (c *S3) GetBucketVersioningWithContext(ctx aws.Context, input *GetBucketVersioningInput, opts ...request.Option) (*GetBucketVersioningOutput, error) { 4379 req, out := c.GetBucketVersioningRequest(input) 4380 req.SetContext(ctx) 4381 req.ApplyOptions(opts...) 4382 return out, req.Send() 4383 } 4384 4385 const opGetBucketWebsite = "GetBucketWebsite" 4386 4387 // GetBucketWebsiteRequest generates a "aws/request.Request" representing the 4388 // client's request for the GetBucketWebsite operation. The "output" return 4389 // value will be populated with the request's response once the request completes 4390 // successfully. 4391 // 4392 // Use "Send" method on the returned Request to send the API call to the service. 4393 // the "output" return value is not valid until after Send returns without error. 4394 // 4395 // See GetBucketWebsite for more information on using the GetBucketWebsite 4396 // API call, and error handling. 4397 // 4398 // This method is useful when you want to inject custom logic or configuration 4399 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4400 // 4401 // 4402 // // Example sending a request using the GetBucketWebsiteRequest method. 4403 // req, resp := client.GetBucketWebsiteRequest(params) 4404 // 4405 // err := req.Send() 4406 // if err == nil { // resp is now filled 4407 // fmt.Println(resp) 4408 // } 4409 // 4410 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite 4411 func (c *S3) GetBucketWebsiteRequest(input *GetBucketWebsiteInput) (req *request.Request, output *GetBucketWebsiteOutput) { 4412 op := &request.Operation{ 4413 Name: opGetBucketWebsite, 4414 HTTPMethod: "GET", 4415 HTTPPath: "/{Bucket}?website", 4416 } 4417 4418 if input == nil { 4419 input = &GetBucketWebsiteInput{} 4420 } 4421 4422 output = &GetBucketWebsiteOutput{} 4423 req = c.newRequest(op, input, output) 4424 return 4425 } 4426 4427 // GetBucketWebsite API operation for Amazon Simple Storage Service. 4428 // 4429 // Returns the website configuration for a bucket. To host website on Amazon 4430 // S3, you can configure a bucket as website by adding a website configuration. 4431 // For more information about hosting websites, see Hosting Websites on Amazon 4432 // S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). 4433 // 4434 // This GET action requires the S3:GetBucketWebsite permission. By default, 4435 // only the bucket owner can read the bucket website configuration. However, 4436 // bucket owners can allow other users to read the website configuration by 4437 // writing a bucket policy granting them the S3:GetBucketWebsite permission. 4438 // 4439 // The following operations are related to DeleteBucketWebsite: 4440 // 4441 // * DeleteBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html) 4442 // 4443 // * PutBucketWebsite (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) 4444 // 4445 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4446 // with awserr.Error's Code and Message methods to get detailed information about 4447 // the error. 4448 // 4449 // See the AWS API reference guide for Amazon Simple Storage Service's 4450 // API operation GetBucketWebsite for usage and error information. 4451 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsite 4452 func (c *S3) GetBucketWebsite(input *GetBucketWebsiteInput) (*GetBucketWebsiteOutput, error) { 4453 req, out := c.GetBucketWebsiteRequest(input) 4454 return out, req.Send() 4455 } 4456 4457 // GetBucketWebsiteWithContext is the same as GetBucketWebsite with the addition of 4458 // the ability to pass a context and additional request options. 4459 // 4460 // See GetBucketWebsite for details on how to use this API operation. 4461 // 4462 // The context must be non-nil and will be used for request cancellation. If 4463 // the context is nil a panic will occur. In the future the SDK may create 4464 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4465 // for more information on using Contexts. 4466 func (c *S3) GetBucketWebsiteWithContext(ctx aws.Context, input *GetBucketWebsiteInput, opts ...request.Option) (*GetBucketWebsiteOutput, error) { 4467 req, out := c.GetBucketWebsiteRequest(input) 4468 req.SetContext(ctx) 4469 req.ApplyOptions(opts...) 4470 return out, req.Send() 4471 } 4472 4473 const opGetObject = "GetObject" 4474 4475 // GetObjectRequest generates a "aws/request.Request" representing the 4476 // client's request for the GetObject operation. The "output" return 4477 // value will be populated with the request's response once the request completes 4478 // successfully. 4479 // 4480 // Use "Send" method on the returned Request to send the API call to the service. 4481 // the "output" return value is not valid until after Send returns without error. 4482 // 4483 // See GetObject for more information on using the GetObject 4484 // API call, and error handling. 4485 // 4486 // This method is useful when you want to inject custom logic or configuration 4487 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4488 // 4489 // 4490 // // Example sending a request using the GetObjectRequest method. 4491 // req, resp := client.GetObjectRequest(params) 4492 // 4493 // err := req.Send() 4494 // if err == nil { // resp is now filled 4495 // fmt.Println(resp) 4496 // } 4497 // 4498 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject 4499 func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, output *GetObjectOutput) { 4500 op := &request.Operation{ 4501 Name: opGetObject, 4502 HTTPMethod: "GET", 4503 HTTPPath: "/{Bucket}/{Key+}", 4504 } 4505 4506 if input == nil { 4507 input = &GetObjectInput{} 4508 } 4509 4510 output = &GetObjectOutput{} 4511 req = c.newRequest(op, input, output) 4512 return 4513 } 4514 4515 // GetObject API operation for Amazon Simple Storage Service. 4516 // 4517 // Retrieves objects from Amazon S3. To use GET, you must have READ access to 4518 // the object. If you grant READ access to the anonymous user, you can return 4519 // the object without using an authorization header. 4520 // 4521 // An Amazon S3 bucket has no directory hierarchy such as you would find in 4522 // a typical computer file system. You can, however, create a logical hierarchy 4523 // by using object key names that imply a folder structure. For example, instead 4524 // of naming an object sample.jpg, you can name it photos/2006/February/sample.jpg. 4525 // 4526 // To get an object from such a logical hierarchy, specify the full key name 4527 // for the object in the GET operation. For a virtual hosted-style request example, 4528 // if you have the object photos/2006/February/sample.jpg, specify the resource 4529 // as /photos/2006/February/sample.jpg. For a path-style request example, if 4530 // you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, 4531 // specify the resource as /examplebucket/photos/2006/February/sample.jpg. For 4532 // more information about request types, see HTTP Host Header Bucket Specification 4533 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket). 4534 // 4535 // To distribute large files to many people, you can save bandwidth costs by 4536 // using BitTorrent. For more information, see Amazon S3 Torrent (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html). 4537 // For more information about returning the ACL of an object, see GetObjectAcl 4538 // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html). 4539 // 4540 // If the object you are retrieving is stored in the S3 Glacier or S3 Glacier 4541 // Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering 4542 // Deep Archive tiers, before you can retrieve the object you must first restore 4543 // a copy using RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). 4544 // Otherwise, this action returns an InvalidObjectStateError error. For information 4545 // about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html). 4546 // 4547 // Encryption request headers, like x-amz-server-side-encryption, should not 4548 // be sent for GET requests if your object uses server-side encryption with 4549 // KMS keys (SSE-KMS) or server-side encryption with Amazon S3–managed encryption 4550 // keys (SSE-S3). If your object does use these types of keys, you’ll get 4551 // an HTTP 400 BadRequest error. 4552 // 4553 // If you encrypt an object by using server-side encryption with customer-provided 4554 // encryption keys (SSE-C) when you store the object in Amazon S3, then when 4555 // you GET the object, you must use the following headers: 4556 // 4557 // * x-amz-server-side-encryption-customer-algorithm 4558 // 4559 // * x-amz-server-side-encryption-customer-key 4560 // 4561 // * x-amz-server-side-encryption-customer-key-MD5 4562 // 4563 // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided 4564 // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 4565 // 4566 // Assuming you have the relevant permission to read object tags, the response 4567 // also returns the x-amz-tagging-count header that provides the count of number 4568 // of tags associated with the object. You can use GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) 4569 // to retrieve the tag set associated with an object. 4570 // 4571 // Permissions 4572 // 4573 // You need the relevant read object (or version) permission for this operation. 4574 // For more information, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). 4575 // If the object you request does not exist, the error Amazon S3 returns depends 4576 // on whether you also have the s3:ListBucket permission. 4577 // 4578 // * If you have the s3:ListBucket permission on the bucket, Amazon S3 will 4579 // return an HTTP status code 404 ("no such key") error. 4580 // 4581 // * If you don’t have the s3:ListBucket permission, Amazon S3 will return 4582 // an HTTP status code 403 ("access denied") error. 4583 // 4584 // Versioning 4585 // 4586 // By default, the GET action returns the current version of an object. To return 4587 // a different version, use the versionId subresource. 4588 // 4589 // * You need the s3:GetObjectVersion permission to access a specific version 4590 // of an object. 4591 // 4592 // * If the current version of the object is a delete marker, Amazon S3 behaves 4593 // as if the object was deleted and includes x-amz-delete-marker: true in 4594 // the response. 4595 // 4596 // For more information about versioning, see PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html). 4597 // 4598 // Overriding Response Header Values 4599 // 4600 // There are times when you want to override certain response header values 4601 // in a GET response. For example, you might override the Content-Disposition 4602 // response header value in your GET request. 4603 // 4604 // You can override values for a set of response headers using the following 4605 // query parameters. These response header values are sent only on a successful 4606 // request, that is, when status code 200 OK is returned. The set of headers 4607 // you can override using these parameters is a subset of the headers that Amazon 4608 // S3 accepts when you create an object. The response headers that you can override 4609 // for the GET response are Content-Type, Content-Language, Expires, Cache-Control, 4610 // Content-Disposition, and Content-Encoding. To override these header values 4611 // in the GET response, you use the following request parameters. 4612 // 4613 // You must sign the request, either using an Authorization header or a presigned 4614 // URL, when using these parameters. They cannot be used with an unsigned (anonymous) 4615 // request. 4616 // 4617 // * response-content-type 4618 // 4619 // * response-content-language 4620 // 4621 // * response-expires 4622 // 4623 // * response-cache-control 4624 // 4625 // * response-content-disposition 4626 // 4627 // * response-content-encoding 4628 // 4629 // Additional Considerations about Request Headers 4630 // 4631 // If both of the If-Match and If-Unmodified-Since headers are present in the 4632 // request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since 4633 // condition evaluates to false; then, S3 returns 200 OK and the data requested. 4634 // 4635 // If both of the If-None-Match and If-Modified-Since headers are present in 4636 // the request as follows:If-None-Match condition evaluates to false, and; If-Modified-Since 4637 // condition evaluates to true; then, S3 returns 304 Not Modified response code. 4638 // 4639 // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). 4640 // 4641 // The following operations are related to GetObject: 4642 // 4643 // * ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) 4644 // 4645 // * GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) 4646 // 4647 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4648 // with awserr.Error's Code and Message methods to get detailed information about 4649 // the error. 4650 // 4651 // See the AWS API reference guide for Amazon Simple Storage Service's 4652 // API operation GetObject for usage and error information. 4653 // 4654 // Returned Error Codes: 4655 // * ErrCodeNoSuchKey "NoSuchKey" 4656 // The specified key does not exist. 4657 // 4658 // * ErrCodeInvalidObjectState "InvalidObjectState" 4659 // Object is archived and inaccessible until restored. 4660 // 4661 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject 4662 func (c *S3) GetObject(input *GetObjectInput) (*GetObjectOutput, error) { 4663 req, out := c.GetObjectRequest(input) 4664 return out, req.Send() 4665 } 4666 4667 // GetObjectWithContext is the same as GetObject with the addition of 4668 // the ability to pass a context and additional request options. 4669 // 4670 // See GetObject for details on how to use this API operation. 4671 // 4672 // The context must be non-nil and will be used for request cancellation. If 4673 // the context is nil a panic will occur. In the future the SDK may create 4674 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4675 // for more information on using Contexts. 4676 func (c *S3) GetObjectWithContext(ctx aws.Context, input *GetObjectInput, opts ...request.Option) (*GetObjectOutput, error) { 4677 req, out := c.GetObjectRequest(input) 4678 req.SetContext(ctx) 4679 req.ApplyOptions(opts...) 4680 return out, req.Send() 4681 } 4682 4683 const opGetObjectAcl = "GetObjectAcl" 4684 4685 // GetObjectAclRequest generates a "aws/request.Request" representing the 4686 // client's request for the GetObjectAcl operation. The "output" return 4687 // value will be populated with the request's response once the request completes 4688 // successfully. 4689 // 4690 // Use "Send" method on the returned Request to send the API call to the service. 4691 // the "output" return value is not valid until after Send returns without error. 4692 // 4693 // See GetObjectAcl for more information on using the GetObjectAcl 4694 // API call, and error handling. 4695 // 4696 // This method is useful when you want to inject custom logic or configuration 4697 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4698 // 4699 // 4700 // // Example sending a request using the GetObjectAclRequest method. 4701 // req, resp := client.GetObjectAclRequest(params) 4702 // 4703 // err := req.Send() 4704 // if err == nil { // resp is now filled 4705 // fmt.Println(resp) 4706 // } 4707 // 4708 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl 4709 func (c *S3) GetObjectAclRequest(input *GetObjectAclInput) (req *request.Request, output *GetObjectAclOutput) { 4710 op := &request.Operation{ 4711 Name: opGetObjectAcl, 4712 HTTPMethod: "GET", 4713 HTTPPath: "/{Bucket}/{Key+}?acl", 4714 } 4715 4716 if input == nil { 4717 input = &GetObjectAclInput{} 4718 } 4719 4720 output = &GetObjectAclOutput{} 4721 req = c.newRequest(op, input, output) 4722 return 4723 } 4724 4725 // GetObjectAcl API operation for Amazon Simple Storage Service. 4726 // 4727 // Returns the access control list (ACL) of an object. To use this operation, 4728 // you must have READ_ACP access to the object. 4729 // 4730 // This action is not supported by Amazon S3 on Outposts. 4731 // 4732 // Versioning 4733 // 4734 // By default, GET returns ACL information about the current version of an object. 4735 // To return ACL information about a different version, use the versionId subresource. 4736 // 4737 // The following operations are related to GetObjectAcl: 4738 // 4739 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 4740 // 4741 // * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) 4742 // 4743 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 4744 // 4745 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4746 // with awserr.Error's Code and Message methods to get detailed information about 4747 // the error. 4748 // 4749 // See the AWS API reference guide for Amazon Simple Storage Service's 4750 // API operation GetObjectAcl for usage and error information. 4751 // 4752 // Returned Error Codes: 4753 // * ErrCodeNoSuchKey "NoSuchKey" 4754 // The specified key does not exist. 4755 // 4756 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAcl 4757 func (c *S3) GetObjectAcl(input *GetObjectAclInput) (*GetObjectAclOutput, error) { 4758 req, out := c.GetObjectAclRequest(input) 4759 return out, req.Send() 4760 } 4761 4762 // GetObjectAclWithContext is the same as GetObjectAcl with the addition of 4763 // the ability to pass a context and additional request options. 4764 // 4765 // See GetObjectAcl for details on how to use this API operation. 4766 // 4767 // The context must be non-nil and will be used for request cancellation. If 4768 // the context is nil a panic will occur. In the future the SDK may create 4769 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4770 // for more information on using Contexts. 4771 func (c *S3) GetObjectAclWithContext(ctx aws.Context, input *GetObjectAclInput, opts ...request.Option) (*GetObjectAclOutput, error) { 4772 req, out := c.GetObjectAclRequest(input) 4773 req.SetContext(ctx) 4774 req.ApplyOptions(opts...) 4775 return out, req.Send() 4776 } 4777 4778 const opGetObjectLegalHold = "GetObjectLegalHold" 4779 4780 // GetObjectLegalHoldRequest generates a "aws/request.Request" representing the 4781 // client's request for the GetObjectLegalHold operation. The "output" return 4782 // value will be populated with the request's response once the request completes 4783 // successfully. 4784 // 4785 // Use "Send" method on the returned Request to send the API call to the service. 4786 // the "output" return value is not valid until after Send returns without error. 4787 // 4788 // See GetObjectLegalHold for more information on using the GetObjectLegalHold 4789 // API call, and error handling. 4790 // 4791 // This method is useful when you want to inject custom logic or configuration 4792 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4793 // 4794 // 4795 // // Example sending a request using the GetObjectLegalHoldRequest method. 4796 // req, resp := client.GetObjectLegalHoldRequest(params) 4797 // 4798 // err := req.Send() 4799 // if err == nil { // resp is now filled 4800 // fmt.Println(resp) 4801 // } 4802 // 4803 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold 4804 func (c *S3) GetObjectLegalHoldRequest(input *GetObjectLegalHoldInput) (req *request.Request, output *GetObjectLegalHoldOutput) { 4805 op := &request.Operation{ 4806 Name: opGetObjectLegalHold, 4807 HTTPMethod: "GET", 4808 HTTPPath: "/{Bucket}/{Key+}?legal-hold", 4809 } 4810 4811 if input == nil { 4812 input = &GetObjectLegalHoldInput{} 4813 } 4814 4815 output = &GetObjectLegalHoldOutput{} 4816 req = c.newRequest(op, input, output) 4817 return 4818 } 4819 4820 // GetObjectLegalHold API operation for Amazon Simple Storage Service. 4821 // 4822 // Gets an object's current Legal Hold status. For more information, see Locking 4823 // Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 4824 // 4825 // This action is not supported by Amazon S3 on Outposts. 4826 // 4827 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4828 // with awserr.Error's Code and Message methods to get detailed information about 4829 // the error. 4830 // 4831 // See the AWS API reference guide for Amazon Simple Storage Service's 4832 // API operation GetObjectLegalHold for usage and error information. 4833 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold 4834 func (c *S3) GetObjectLegalHold(input *GetObjectLegalHoldInput) (*GetObjectLegalHoldOutput, error) { 4835 req, out := c.GetObjectLegalHoldRequest(input) 4836 return out, req.Send() 4837 } 4838 4839 // GetObjectLegalHoldWithContext is the same as GetObjectLegalHold with the addition of 4840 // the ability to pass a context and additional request options. 4841 // 4842 // See GetObjectLegalHold for details on how to use this API operation. 4843 // 4844 // The context must be non-nil and will be used for request cancellation. If 4845 // the context is nil a panic will occur. In the future the SDK may create 4846 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4847 // for more information on using Contexts. 4848 func (c *S3) GetObjectLegalHoldWithContext(ctx aws.Context, input *GetObjectLegalHoldInput, opts ...request.Option) (*GetObjectLegalHoldOutput, error) { 4849 req, out := c.GetObjectLegalHoldRequest(input) 4850 req.SetContext(ctx) 4851 req.ApplyOptions(opts...) 4852 return out, req.Send() 4853 } 4854 4855 const opGetObjectLockConfiguration = "GetObjectLockConfiguration" 4856 4857 // GetObjectLockConfigurationRequest generates a "aws/request.Request" representing the 4858 // client's request for the GetObjectLockConfiguration operation. The "output" return 4859 // value will be populated with the request's response once the request completes 4860 // successfully. 4861 // 4862 // Use "Send" method on the returned Request to send the API call to the service. 4863 // the "output" return value is not valid until after Send returns without error. 4864 // 4865 // See GetObjectLockConfiguration for more information on using the GetObjectLockConfiguration 4866 // API call, and error handling. 4867 // 4868 // This method is useful when you want to inject custom logic or configuration 4869 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4870 // 4871 // 4872 // // Example sending a request using the GetObjectLockConfigurationRequest method. 4873 // req, resp := client.GetObjectLockConfigurationRequest(params) 4874 // 4875 // err := req.Send() 4876 // if err == nil { // resp is now filled 4877 // fmt.Println(resp) 4878 // } 4879 // 4880 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration 4881 func (c *S3) GetObjectLockConfigurationRequest(input *GetObjectLockConfigurationInput) (req *request.Request, output *GetObjectLockConfigurationOutput) { 4882 op := &request.Operation{ 4883 Name: opGetObjectLockConfiguration, 4884 HTTPMethod: "GET", 4885 HTTPPath: "/{Bucket}?object-lock", 4886 } 4887 4888 if input == nil { 4889 input = &GetObjectLockConfigurationInput{} 4890 } 4891 4892 output = &GetObjectLockConfigurationOutput{} 4893 req = c.newRequest(op, input, output) 4894 return 4895 } 4896 4897 // GetObjectLockConfiguration API operation for Amazon Simple Storage Service. 4898 // 4899 // Gets the Object Lock configuration for a bucket. The rule specified in the 4900 // Object Lock configuration will be applied by default to every new object 4901 // placed in the specified bucket. For more information, see Locking Objects 4902 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 4903 // 4904 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4905 // with awserr.Error's Code and Message methods to get detailed information about 4906 // the error. 4907 // 4908 // See the AWS API reference guide for Amazon Simple Storage Service's 4909 // API operation GetObjectLockConfiguration for usage and error information. 4910 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration 4911 func (c *S3) GetObjectLockConfiguration(input *GetObjectLockConfigurationInput) (*GetObjectLockConfigurationOutput, error) { 4912 req, out := c.GetObjectLockConfigurationRequest(input) 4913 return out, req.Send() 4914 } 4915 4916 // GetObjectLockConfigurationWithContext is the same as GetObjectLockConfiguration with the addition of 4917 // the ability to pass a context and additional request options. 4918 // 4919 // See GetObjectLockConfiguration for details on how to use this API operation. 4920 // 4921 // The context must be non-nil and will be used for request cancellation. If 4922 // the context is nil a panic will occur. In the future the SDK may create 4923 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4924 // for more information on using Contexts. 4925 func (c *S3) GetObjectLockConfigurationWithContext(ctx aws.Context, input *GetObjectLockConfigurationInput, opts ...request.Option) (*GetObjectLockConfigurationOutput, error) { 4926 req, out := c.GetObjectLockConfigurationRequest(input) 4927 req.SetContext(ctx) 4928 req.ApplyOptions(opts...) 4929 return out, req.Send() 4930 } 4931 4932 const opGetObjectRetention = "GetObjectRetention" 4933 4934 // GetObjectRetentionRequest generates a "aws/request.Request" representing the 4935 // client's request for the GetObjectRetention operation. The "output" return 4936 // value will be populated with the request's response once the request completes 4937 // successfully. 4938 // 4939 // Use "Send" method on the returned Request to send the API call to the service. 4940 // the "output" return value is not valid until after Send returns without error. 4941 // 4942 // See GetObjectRetention for more information on using the GetObjectRetention 4943 // API call, and error handling. 4944 // 4945 // This method is useful when you want to inject custom logic or configuration 4946 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4947 // 4948 // 4949 // // Example sending a request using the GetObjectRetentionRequest method. 4950 // req, resp := client.GetObjectRetentionRequest(params) 4951 // 4952 // err := req.Send() 4953 // if err == nil { // resp is now filled 4954 // fmt.Println(resp) 4955 // } 4956 // 4957 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention 4958 func (c *S3) GetObjectRetentionRequest(input *GetObjectRetentionInput) (req *request.Request, output *GetObjectRetentionOutput) { 4959 op := &request.Operation{ 4960 Name: opGetObjectRetention, 4961 HTTPMethod: "GET", 4962 HTTPPath: "/{Bucket}/{Key+}?retention", 4963 } 4964 4965 if input == nil { 4966 input = &GetObjectRetentionInput{} 4967 } 4968 4969 output = &GetObjectRetentionOutput{} 4970 req = c.newRequest(op, input, output) 4971 return 4972 } 4973 4974 // GetObjectRetention API operation for Amazon Simple Storage Service. 4975 // 4976 // Retrieves an object's retention settings. For more information, see Locking 4977 // Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 4978 // 4979 // This action is not supported by Amazon S3 on Outposts. 4980 // 4981 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4982 // with awserr.Error's Code and Message methods to get detailed information about 4983 // the error. 4984 // 4985 // See the AWS API reference guide for Amazon Simple Storage Service's 4986 // API operation GetObjectRetention for usage and error information. 4987 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention 4988 func (c *S3) GetObjectRetention(input *GetObjectRetentionInput) (*GetObjectRetentionOutput, error) { 4989 req, out := c.GetObjectRetentionRequest(input) 4990 return out, req.Send() 4991 } 4992 4993 // GetObjectRetentionWithContext is the same as GetObjectRetention with the addition of 4994 // the ability to pass a context and additional request options. 4995 // 4996 // See GetObjectRetention for details on how to use this API operation. 4997 // 4998 // The context must be non-nil and will be used for request cancellation. If 4999 // the context is nil a panic will occur. In the future the SDK may create 5000 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5001 // for more information on using Contexts. 5002 func (c *S3) GetObjectRetentionWithContext(ctx aws.Context, input *GetObjectRetentionInput, opts ...request.Option) (*GetObjectRetentionOutput, error) { 5003 req, out := c.GetObjectRetentionRequest(input) 5004 req.SetContext(ctx) 5005 req.ApplyOptions(opts...) 5006 return out, req.Send() 5007 } 5008 5009 const opGetObjectTagging = "GetObjectTagging" 5010 5011 // GetObjectTaggingRequest generates a "aws/request.Request" representing the 5012 // client's request for the GetObjectTagging operation. The "output" return 5013 // value will be populated with the request's response once the request completes 5014 // successfully. 5015 // 5016 // Use "Send" method on the returned Request to send the API call to the service. 5017 // the "output" return value is not valid until after Send returns without error. 5018 // 5019 // See GetObjectTagging for more information on using the GetObjectTagging 5020 // API call, and error handling. 5021 // 5022 // This method is useful when you want to inject custom logic or configuration 5023 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5024 // 5025 // 5026 // // Example sending a request using the GetObjectTaggingRequest method. 5027 // req, resp := client.GetObjectTaggingRequest(params) 5028 // 5029 // err := req.Send() 5030 // if err == nil { // resp is now filled 5031 // fmt.Println(resp) 5032 // } 5033 // 5034 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging 5035 func (c *S3) GetObjectTaggingRequest(input *GetObjectTaggingInput) (req *request.Request, output *GetObjectTaggingOutput) { 5036 op := &request.Operation{ 5037 Name: opGetObjectTagging, 5038 HTTPMethod: "GET", 5039 HTTPPath: "/{Bucket}/{Key+}?tagging", 5040 } 5041 5042 if input == nil { 5043 input = &GetObjectTaggingInput{} 5044 } 5045 5046 output = &GetObjectTaggingOutput{} 5047 req = c.newRequest(op, input, output) 5048 return 5049 } 5050 5051 // GetObjectTagging API operation for Amazon Simple Storage Service. 5052 // 5053 // Returns the tag-set of an object. You send the GET request against the tagging 5054 // subresource associated with the object. 5055 // 5056 // To use this operation, you must have permission to perform the s3:GetObjectTagging 5057 // action. By default, the GET action returns information about current version 5058 // of an object. For a versioned bucket, you can have multiple versions of an 5059 // object in your bucket. To retrieve tags of any other version, use the versionId 5060 // query parameter. You also need permission for the s3:GetObjectVersionTagging 5061 // action. 5062 // 5063 // By default, the bucket owner has this permission and can grant this permission 5064 // to others. 5065 // 5066 // For information about the Amazon S3 object tagging feature, see Object Tagging 5067 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). 5068 // 5069 // The following action is related to GetObjectTagging: 5070 // 5071 // * PutObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html) 5072 // 5073 // * DeleteObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) 5074 // 5075 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5076 // with awserr.Error's Code and Message methods to get detailed information about 5077 // the error. 5078 // 5079 // See the AWS API reference guide for Amazon Simple Storage Service's 5080 // API operation GetObjectTagging for usage and error information. 5081 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTagging 5082 func (c *S3) GetObjectTagging(input *GetObjectTaggingInput) (*GetObjectTaggingOutput, error) { 5083 req, out := c.GetObjectTaggingRequest(input) 5084 return out, req.Send() 5085 } 5086 5087 // GetObjectTaggingWithContext is the same as GetObjectTagging with the addition of 5088 // the ability to pass a context and additional request options. 5089 // 5090 // See GetObjectTagging for details on how to use this API operation. 5091 // 5092 // The context must be non-nil and will be used for request cancellation. If 5093 // the context is nil a panic will occur. In the future the SDK may create 5094 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5095 // for more information on using Contexts. 5096 func (c *S3) GetObjectTaggingWithContext(ctx aws.Context, input *GetObjectTaggingInput, opts ...request.Option) (*GetObjectTaggingOutput, error) { 5097 req, out := c.GetObjectTaggingRequest(input) 5098 req.SetContext(ctx) 5099 req.ApplyOptions(opts...) 5100 return out, req.Send() 5101 } 5102 5103 const opGetObjectTorrent = "GetObjectTorrent" 5104 5105 // GetObjectTorrentRequest generates a "aws/request.Request" representing the 5106 // client's request for the GetObjectTorrent operation. The "output" return 5107 // value will be populated with the request's response once the request completes 5108 // successfully. 5109 // 5110 // Use "Send" method on the returned Request to send the API call to the service. 5111 // the "output" return value is not valid until after Send returns without error. 5112 // 5113 // See GetObjectTorrent for more information on using the GetObjectTorrent 5114 // API call, and error handling. 5115 // 5116 // This method is useful when you want to inject custom logic or configuration 5117 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5118 // 5119 // 5120 // // Example sending a request using the GetObjectTorrentRequest method. 5121 // req, resp := client.GetObjectTorrentRequest(params) 5122 // 5123 // err := req.Send() 5124 // if err == nil { // resp is now filled 5125 // fmt.Println(resp) 5126 // } 5127 // 5128 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent 5129 func (c *S3) GetObjectTorrentRequest(input *GetObjectTorrentInput) (req *request.Request, output *GetObjectTorrentOutput) { 5130 op := &request.Operation{ 5131 Name: opGetObjectTorrent, 5132 HTTPMethod: "GET", 5133 HTTPPath: "/{Bucket}/{Key+}?torrent", 5134 } 5135 5136 if input == nil { 5137 input = &GetObjectTorrentInput{} 5138 } 5139 5140 output = &GetObjectTorrentOutput{} 5141 req = c.newRequest(op, input, output) 5142 return 5143 } 5144 5145 // GetObjectTorrent API operation for Amazon Simple Storage Service. 5146 // 5147 // Returns torrent files from a bucket. BitTorrent can save you bandwidth when 5148 // you're distributing large files. For more information about BitTorrent, see 5149 // Using BitTorrent with Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html). 5150 // 5151 // You can get torrent only for objects that are less than 5 GB in size, and 5152 // that are not encrypted using server-side encryption with a customer-provided 5153 // encryption key. 5154 // 5155 // To use GET, you must have READ access to the object. 5156 // 5157 // This action is not supported by Amazon S3 on Outposts. 5158 // 5159 // The following action is related to GetObjectTorrent: 5160 // 5161 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 5162 // 5163 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5164 // with awserr.Error's Code and Message methods to get detailed information about 5165 // the error. 5166 // 5167 // See the AWS API reference guide for Amazon Simple Storage Service's 5168 // API operation GetObjectTorrent for usage and error information. 5169 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrent 5170 func (c *S3) GetObjectTorrent(input *GetObjectTorrentInput) (*GetObjectTorrentOutput, error) { 5171 req, out := c.GetObjectTorrentRequest(input) 5172 return out, req.Send() 5173 } 5174 5175 // GetObjectTorrentWithContext is the same as GetObjectTorrent with the addition of 5176 // the ability to pass a context and additional request options. 5177 // 5178 // See GetObjectTorrent for details on how to use this API operation. 5179 // 5180 // The context must be non-nil and will be used for request cancellation. If 5181 // the context is nil a panic will occur. In the future the SDK may create 5182 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5183 // for more information on using Contexts. 5184 func (c *S3) GetObjectTorrentWithContext(ctx aws.Context, input *GetObjectTorrentInput, opts ...request.Option) (*GetObjectTorrentOutput, error) { 5185 req, out := c.GetObjectTorrentRequest(input) 5186 req.SetContext(ctx) 5187 req.ApplyOptions(opts...) 5188 return out, req.Send() 5189 } 5190 5191 const opGetPublicAccessBlock = "GetPublicAccessBlock" 5192 5193 // GetPublicAccessBlockRequest generates a "aws/request.Request" representing the 5194 // client's request for the GetPublicAccessBlock operation. The "output" return 5195 // value will be populated with the request's response once the request completes 5196 // successfully. 5197 // 5198 // Use "Send" method on the returned Request to send the API call to the service. 5199 // the "output" return value is not valid until after Send returns without error. 5200 // 5201 // See GetPublicAccessBlock for more information on using the GetPublicAccessBlock 5202 // API call, and error handling. 5203 // 5204 // This method is useful when you want to inject custom logic or configuration 5205 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5206 // 5207 // 5208 // // Example sending a request using the GetPublicAccessBlockRequest method. 5209 // req, resp := client.GetPublicAccessBlockRequest(params) 5210 // 5211 // err := req.Send() 5212 // if err == nil { // resp is now filled 5213 // fmt.Println(resp) 5214 // } 5215 // 5216 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock 5217 func (c *S3) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) { 5218 op := &request.Operation{ 5219 Name: opGetPublicAccessBlock, 5220 HTTPMethod: "GET", 5221 HTTPPath: "/{Bucket}?publicAccessBlock", 5222 } 5223 5224 if input == nil { 5225 input = &GetPublicAccessBlockInput{} 5226 } 5227 5228 output = &GetPublicAccessBlockOutput{} 5229 req = c.newRequest(op, input, output) 5230 return 5231 } 5232 5233 // GetPublicAccessBlock API operation for Amazon Simple Storage Service. 5234 // 5235 // Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To 5236 // use this operation, you must have the s3:GetBucketPublicAccessBlock permission. 5237 // For more information about Amazon S3 permissions, see Specifying Permissions 5238 // in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). 5239 // 5240 // When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket 5241 // or an object, it checks the PublicAccessBlock configuration for both the 5242 // bucket (or the bucket that contains the object) and the bucket owner's account. 5243 // If the PublicAccessBlock settings are different between the bucket and the 5244 // account, Amazon S3 uses the most restrictive combination of the bucket-level 5245 // and account-level settings. 5246 // 5247 // For more information about when Amazon S3 considers a bucket or an object 5248 // public, see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). 5249 // 5250 // The following operations are related to GetPublicAccessBlock: 5251 // 5252 // * Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) 5253 // 5254 // * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) 5255 // 5256 // * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) 5257 // 5258 // * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) 5259 // 5260 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5261 // with awserr.Error's Code and Message methods to get detailed information about 5262 // the error. 5263 // 5264 // See the AWS API reference guide for Amazon Simple Storage Service's 5265 // API operation GetPublicAccessBlock for usage and error information. 5266 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock 5267 func (c *S3) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) { 5268 req, out := c.GetPublicAccessBlockRequest(input) 5269 return out, req.Send() 5270 } 5271 5272 // GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of 5273 // the ability to pass a context and additional request options. 5274 // 5275 // See GetPublicAccessBlock for details on how to use this API operation. 5276 // 5277 // The context must be non-nil and will be used for request cancellation. If 5278 // the context is nil a panic will occur. In the future the SDK may create 5279 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5280 // for more information on using Contexts. 5281 func (c *S3) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) { 5282 req, out := c.GetPublicAccessBlockRequest(input) 5283 req.SetContext(ctx) 5284 req.ApplyOptions(opts...) 5285 return out, req.Send() 5286 } 5287 5288 const opHeadBucket = "HeadBucket" 5289 5290 // HeadBucketRequest generates a "aws/request.Request" representing the 5291 // client's request for the HeadBucket operation. The "output" return 5292 // value will be populated with the request's response once the request completes 5293 // successfully. 5294 // 5295 // Use "Send" method on the returned Request to send the API call to the service. 5296 // the "output" return value is not valid until after Send returns without error. 5297 // 5298 // See HeadBucket for more information on using the HeadBucket 5299 // API call, and error handling. 5300 // 5301 // This method is useful when you want to inject custom logic or configuration 5302 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5303 // 5304 // 5305 // // Example sending a request using the HeadBucketRequest method. 5306 // req, resp := client.HeadBucketRequest(params) 5307 // 5308 // err := req.Send() 5309 // if err == nil { // resp is now filled 5310 // fmt.Println(resp) 5311 // } 5312 // 5313 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket 5314 func (c *S3) HeadBucketRequest(input *HeadBucketInput) (req *request.Request, output *HeadBucketOutput) { 5315 op := &request.Operation{ 5316 Name: opHeadBucket, 5317 HTTPMethod: "HEAD", 5318 HTTPPath: "/{Bucket}", 5319 } 5320 5321 if input == nil { 5322 input = &HeadBucketInput{} 5323 } 5324 5325 output = &HeadBucketOutput{} 5326 req = c.newRequest(op, input, output) 5327 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 5328 return 5329 } 5330 5331 // HeadBucket API operation for Amazon Simple Storage Service. 5332 // 5333 // This action is useful to determine if a bucket exists and you have permission 5334 // to access it. The action returns a 200 OK if the bucket exists and you have 5335 // permission to access it. 5336 // 5337 // If the bucket does not exist or you do not have permission to access it, 5338 // the HEAD request returns a generic 404 Not Found or 403 Forbidden code. A 5339 // message body is not included, so you cannot determine the exception beyond 5340 // these error codes. 5341 // 5342 // To use this operation, you must have permissions to perform the s3:ListBucket 5343 // action. The bucket owner has this permission by default and can grant this 5344 // permission to others. For more information about permissions, see Permissions 5345 // Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 5346 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 5347 // 5348 // To use this API against an access point, you must provide the alias of the 5349 // access point in place of the bucket name or specify the access point ARN. 5350 // When using the access point ARN, you must direct requests to the access point 5351 // hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 5352 // When using the Amazon Web Services SDKs, you provide the ARN in place of 5353 // the bucket name. For more information see, Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html). 5354 // 5355 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5356 // with awserr.Error's Code and Message methods to get detailed information about 5357 // the error. 5358 // 5359 // See the AWS API reference guide for Amazon Simple Storage Service's 5360 // API operation HeadBucket for usage and error information. 5361 // 5362 // Returned Error Codes: 5363 // * ErrCodeNoSuchBucket "NoSuchBucket" 5364 // The specified bucket does not exist. 5365 // 5366 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucket 5367 func (c *S3) HeadBucket(input *HeadBucketInput) (*HeadBucketOutput, error) { 5368 req, out := c.HeadBucketRequest(input) 5369 return out, req.Send() 5370 } 5371 5372 // HeadBucketWithContext is the same as HeadBucket with the addition of 5373 // the ability to pass a context and additional request options. 5374 // 5375 // See HeadBucket for details on how to use this API operation. 5376 // 5377 // The context must be non-nil and will be used for request cancellation. If 5378 // the context is nil a panic will occur. In the future the SDK may create 5379 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5380 // for more information on using Contexts. 5381 func (c *S3) HeadBucketWithContext(ctx aws.Context, input *HeadBucketInput, opts ...request.Option) (*HeadBucketOutput, error) { 5382 req, out := c.HeadBucketRequest(input) 5383 req.SetContext(ctx) 5384 req.ApplyOptions(opts...) 5385 return out, req.Send() 5386 } 5387 5388 const opHeadObject = "HeadObject" 5389 5390 // HeadObjectRequest generates a "aws/request.Request" representing the 5391 // client's request for the HeadObject operation. The "output" return 5392 // value will be populated with the request's response once the request completes 5393 // successfully. 5394 // 5395 // Use "Send" method on the returned Request to send the API call to the service. 5396 // the "output" return value is not valid until after Send returns without error. 5397 // 5398 // See HeadObject for more information on using the HeadObject 5399 // API call, and error handling. 5400 // 5401 // This method is useful when you want to inject custom logic or configuration 5402 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5403 // 5404 // 5405 // // Example sending a request using the HeadObjectRequest method. 5406 // req, resp := client.HeadObjectRequest(params) 5407 // 5408 // err := req.Send() 5409 // if err == nil { // resp is now filled 5410 // fmt.Println(resp) 5411 // } 5412 // 5413 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject 5414 func (c *S3) HeadObjectRequest(input *HeadObjectInput) (req *request.Request, output *HeadObjectOutput) { 5415 op := &request.Operation{ 5416 Name: opHeadObject, 5417 HTTPMethod: "HEAD", 5418 HTTPPath: "/{Bucket}/{Key+}", 5419 } 5420 5421 if input == nil { 5422 input = &HeadObjectInput{} 5423 } 5424 5425 output = &HeadObjectOutput{} 5426 req = c.newRequest(op, input, output) 5427 return 5428 } 5429 5430 // HeadObject API operation for Amazon Simple Storage Service. 5431 // 5432 // The HEAD action retrieves metadata from an object without returning the object 5433 // itself. This action is useful if you're only interested in an object's metadata. 5434 // To use HEAD, you must have READ access to the object. 5435 // 5436 // A HEAD request has the same options as a GET action on an object. The response 5437 // is identical to the GET response except that there is no response body. Because 5438 // of this, if the HEAD request generates an error, it returns a generic 404 5439 // Not Found or 403 Forbidden code. It is not possible to retrieve the exact 5440 // exception beyond these error codes. 5441 // 5442 // If you encrypt an object by using server-side encryption with customer-provided 5443 // encryption keys (SSE-C) when you store the object in Amazon S3, then when 5444 // you retrieve the metadata from the object, you must use the following headers: 5445 // 5446 // * x-amz-server-side-encryption-customer-algorithm 5447 // 5448 // * x-amz-server-side-encryption-customer-key 5449 // 5450 // * x-amz-server-side-encryption-customer-key-MD5 5451 // 5452 // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided 5453 // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 5454 // 5455 // * Encryption request headers, like x-amz-server-side-encryption, should 5456 // not be sent for GET requests if your object uses server-side encryption 5457 // with KMS keys (SSE-KMS) or server-side encryption with Amazon S3–managed 5458 // encryption keys (SSE-S3). If your object does use these types of keys, 5459 // you’ll get an HTTP 400 BadRequest error. 5460 // 5461 // * The last modified property in this case is the creation date of the 5462 // object. 5463 // 5464 // Request headers are limited to 8 KB in size. For more information, see Common 5465 // Request Headers (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). 5466 // 5467 // Consider the following when using request headers: 5468 // 5469 // * Consideration 1 – If both of the If-Match and If-Unmodified-Since 5470 // headers are present in the request as follows: If-Match condition evaluates 5471 // to true, and; If-Unmodified-Since condition evaluates to false; Then Amazon 5472 // S3 returns 200 OK and the data requested. 5473 // 5474 // * Consideration 2 – If both of the If-None-Match and If-Modified-Since 5475 // headers are present in the request as follows: If-None-Match condition 5476 // evaluates to false, and; If-Modified-Since condition evaluates to true; 5477 // Then Amazon S3 returns the 304 Not Modified response code. 5478 // 5479 // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). 5480 // 5481 // Permissions 5482 // 5483 // You need the relevant read object (or version) permission for this operation. 5484 // For more information, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). 5485 // If the object you request does not exist, the error Amazon S3 returns depends 5486 // on whether you also have the s3:ListBucket permission. 5487 // 5488 // * If you have the s3:ListBucket permission on the bucket, Amazon S3 returns 5489 // an HTTP status code 404 ("no such key") error. 5490 // 5491 // * If you don’t have the s3:ListBucket permission, Amazon S3 returns 5492 // an HTTP status code 403 ("access denied") error. 5493 // 5494 // The following action is related to HeadObject: 5495 // 5496 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 5497 // 5498 // See http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#RESTErrorResponses 5499 // for more information on returned errors. 5500 // 5501 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5502 // with awserr.Error's Code and Message methods to get detailed information about 5503 // the error. 5504 // 5505 // See the AWS API reference guide for Amazon Simple Storage Service's 5506 // API operation HeadObject for usage and error information. 5507 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject 5508 func (c *S3) HeadObject(input *HeadObjectInput) (*HeadObjectOutput, error) { 5509 req, out := c.HeadObjectRequest(input) 5510 return out, req.Send() 5511 } 5512 5513 // HeadObjectWithContext is the same as HeadObject with the addition of 5514 // the ability to pass a context and additional request options. 5515 // 5516 // See HeadObject for details on how to use this API operation. 5517 // 5518 // The context must be non-nil and will be used for request cancellation. If 5519 // the context is nil a panic will occur. In the future the SDK may create 5520 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5521 // for more information on using Contexts. 5522 func (c *S3) HeadObjectWithContext(ctx aws.Context, input *HeadObjectInput, opts ...request.Option) (*HeadObjectOutput, error) { 5523 req, out := c.HeadObjectRequest(input) 5524 req.SetContext(ctx) 5525 req.ApplyOptions(opts...) 5526 return out, req.Send() 5527 } 5528 5529 const opListBucketAnalyticsConfigurations = "ListBucketAnalyticsConfigurations" 5530 5531 // ListBucketAnalyticsConfigurationsRequest generates a "aws/request.Request" representing the 5532 // client's request for the ListBucketAnalyticsConfigurations operation. The "output" return 5533 // value will be populated with the request's response once the request completes 5534 // successfully. 5535 // 5536 // Use "Send" method on the returned Request to send the API call to the service. 5537 // the "output" return value is not valid until after Send returns without error. 5538 // 5539 // See ListBucketAnalyticsConfigurations for more information on using the ListBucketAnalyticsConfigurations 5540 // API call, and error handling. 5541 // 5542 // This method is useful when you want to inject custom logic or configuration 5543 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5544 // 5545 // 5546 // // Example sending a request using the ListBucketAnalyticsConfigurationsRequest method. 5547 // req, resp := client.ListBucketAnalyticsConfigurationsRequest(params) 5548 // 5549 // err := req.Send() 5550 // if err == nil { // resp is now filled 5551 // fmt.Println(resp) 5552 // } 5553 // 5554 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations 5555 func (c *S3) ListBucketAnalyticsConfigurationsRequest(input *ListBucketAnalyticsConfigurationsInput) (req *request.Request, output *ListBucketAnalyticsConfigurationsOutput) { 5556 op := &request.Operation{ 5557 Name: opListBucketAnalyticsConfigurations, 5558 HTTPMethod: "GET", 5559 HTTPPath: "/{Bucket}?analytics", 5560 } 5561 5562 if input == nil { 5563 input = &ListBucketAnalyticsConfigurationsInput{} 5564 } 5565 5566 output = &ListBucketAnalyticsConfigurationsOutput{} 5567 req = c.newRequest(op, input, output) 5568 return 5569 } 5570 5571 // ListBucketAnalyticsConfigurations API operation for Amazon Simple Storage Service. 5572 // 5573 // Lists the analytics configurations for the bucket. You can have up to 1,000 5574 // analytics configurations per bucket. 5575 // 5576 // This action supports list pagination and does not return more than 100 configurations 5577 // at a time. You should always check the IsTruncated element in the response. 5578 // If there are no more configurations to list, IsTruncated is set to false. 5579 // If there are more configurations to list, IsTruncated is set to true, and 5580 // there will be a value in NextContinuationToken. You use the NextContinuationToken 5581 // value to continue the pagination of the list by passing the value in continuation-token 5582 // in the request to GET the next page. 5583 // 5584 // To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration 5585 // action. The bucket owner has this permission by default. The bucket owner 5586 // can grant this permission to others. For more information about permissions, 5587 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 5588 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 5589 // 5590 // For information about Amazon S3 analytics feature, see Amazon S3 Analytics 5591 // – Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). 5592 // 5593 // The following operations are related to ListBucketAnalyticsConfigurations: 5594 // 5595 // * GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) 5596 // 5597 // * DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) 5598 // 5599 // * PutBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html) 5600 // 5601 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5602 // with awserr.Error's Code and Message methods to get detailed information about 5603 // the error. 5604 // 5605 // See the AWS API reference guide for Amazon Simple Storage Service's 5606 // API operation ListBucketAnalyticsConfigurations for usage and error information. 5607 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurations 5608 func (c *S3) ListBucketAnalyticsConfigurations(input *ListBucketAnalyticsConfigurationsInput) (*ListBucketAnalyticsConfigurationsOutput, error) { 5609 req, out := c.ListBucketAnalyticsConfigurationsRequest(input) 5610 return out, req.Send() 5611 } 5612 5613 // ListBucketAnalyticsConfigurationsWithContext is the same as ListBucketAnalyticsConfigurations with the addition of 5614 // the ability to pass a context and additional request options. 5615 // 5616 // See ListBucketAnalyticsConfigurations for details on how to use this API operation. 5617 // 5618 // The context must be non-nil and will be used for request cancellation. If 5619 // the context is nil a panic will occur. In the future the SDK may create 5620 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5621 // for more information on using Contexts. 5622 func (c *S3) ListBucketAnalyticsConfigurationsWithContext(ctx aws.Context, input *ListBucketAnalyticsConfigurationsInput, opts ...request.Option) (*ListBucketAnalyticsConfigurationsOutput, error) { 5623 req, out := c.ListBucketAnalyticsConfigurationsRequest(input) 5624 req.SetContext(ctx) 5625 req.ApplyOptions(opts...) 5626 return out, req.Send() 5627 } 5628 5629 const opListBucketIntelligentTieringConfigurations = "ListBucketIntelligentTieringConfigurations" 5630 5631 // ListBucketIntelligentTieringConfigurationsRequest generates a "aws/request.Request" representing the 5632 // client's request for the ListBucketIntelligentTieringConfigurations operation. The "output" return 5633 // value will be populated with the request's response once the request completes 5634 // successfully. 5635 // 5636 // Use "Send" method on the returned Request to send the API call to the service. 5637 // the "output" return value is not valid until after Send returns without error. 5638 // 5639 // See ListBucketIntelligentTieringConfigurations for more information on using the ListBucketIntelligentTieringConfigurations 5640 // API call, and error handling. 5641 // 5642 // This method is useful when you want to inject custom logic or configuration 5643 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5644 // 5645 // 5646 // // Example sending a request using the ListBucketIntelligentTieringConfigurationsRequest method. 5647 // req, resp := client.ListBucketIntelligentTieringConfigurationsRequest(params) 5648 // 5649 // err := req.Send() 5650 // if err == nil { // resp is now filled 5651 // fmt.Println(resp) 5652 // } 5653 // 5654 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations 5655 func (c *S3) ListBucketIntelligentTieringConfigurationsRequest(input *ListBucketIntelligentTieringConfigurationsInput) (req *request.Request, output *ListBucketIntelligentTieringConfigurationsOutput) { 5656 op := &request.Operation{ 5657 Name: opListBucketIntelligentTieringConfigurations, 5658 HTTPMethod: "GET", 5659 HTTPPath: "/{Bucket}?intelligent-tiering", 5660 } 5661 5662 if input == nil { 5663 input = &ListBucketIntelligentTieringConfigurationsInput{} 5664 } 5665 5666 output = &ListBucketIntelligentTieringConfigurationsOutput{} 5667 req = c.newRequest(op, input, output) 5668 return 5669 } 5670 5671 // ListBucketIntelligentTieringConfigurations API operation for Amazon Simple Storage Service. 5672 // 5673 // Lists the S3 Intelligent-Tiering configuration from the specified bucket. 5674 // 5675 // The S3 Intelligent-Tiering storage class is designed to optimize storage 5676 // costs by automatically moving data to the most cost-effective storage access 5677 // tier, without performance impact or operational overhead. S3 Intelligent-Tiering 5678 // delivers automatic cost savings in two low latency and high throughput access 5679 // tiers. For data that can be accessed asynchronously, you can choose to activate 5680 // automatic archiving capabilities within the S3 Intelligent-Tiering storage 5681 // class. 5682 // 5683 // The S3 Intelligent-Tiering storage class is the ideal storage class for data 5684 // with unknown, changing, or unpredictable access patterns, independent of 5685 // object size or retention period. If the size of an object is less than 128 5686 // KB, it is not eligible for auto-tiering. Smaller objects can be stored, but 5687 // they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering 5688 // storage class. 5689 // 5690 // For more information, see Storage class for automatically optimizing frequently 5691 // and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). 5692 // 5693 // Operations related to ListBucketIntelligentTieringConfigurations include: 5694 // 5695 // * DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) 5696 // 5697 // * PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) 5698 // 5699 // * GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) 5700 // 5701 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5702 // with awserr.Error's Code and Message methods to get detailed information about 5703 // the error. 5704 // 5705 // See the AWS API reference guide for Amazon Simple Storage Service's 5706 // API operation ListBucketIntelligentTieringConfigurations for usage and error information. 5707 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations 5708 func (c *S3) ListBucketIntelligentTieringConfigurations(input *ListBucketIntelligentTieringConfigurationsInput) (*ListBucketIntelligentTieringConfigurationsOutput, error) { 5709 req, out := c.ListBucketIntelligentTieringConfigurationsRequest(input) 5710 return out, req.Send() 5711 } 5712 5713 // ListBucketIntelligentTieringConfigurationsWithContext is the same as ListBucketIntelligentTieringConfigurations with the addition of 5714 // the ability to pass a context and additional request options. 5715 // 5716 // See ListBucketIntelligentTieringConfigurations for details on how to use this API operation. 5717 // 5718 // The context must be non-nil and will be used for request cancellation. If 5719 // the context is nil a panic will occur. In the future the SDK may create 5720 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5721 // for more information on using Contexts. 5722 func (c *S3) ListBucketIntelligentTieringConfigurationsWithContext(ctx aws.Context, input *ListBucketIntelligentTieringConfigurationsInput, opts ...request.Option) (*ListBucketIntelligentTieringConfigurationsOutput, error) { 5723 req, out := c.ListBucketIntelligentTieringConfigurationsRequest(input) 5724 req.SetContext(ctx) 5725 req.ApplyOptions(opts...) 5726 return out, req.Send() 5727 } 5728 5729 const opListBucketInventoryConfigurations = "ListBucketInventoryConfigurations" 5730 5731 // ListBucketInventoryConfigurationsRequest generates a "aws/request.Request" representing the 5732 // client's request for the ListBucketInventoryConfigurations operation. The "output" return 5733 // value will be populated with the request's response once the request completes 5734 // successfully. 5735 // 5736 // Use "Send" method on the returned Request to send the API call to the service. 5737 // the "output" return value is not valid until after Send returns without error. 5738 // 5739 // See ListBucketInventoryConfigurations for more information on using the ListBucketInventoryConfigurations 5740 // API call, and error handling. 5741 // 5742 // This method is useful when you want to inject custom logic or configuration 5743 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5744 // 5745 // 5746 // // Example sending a request using the ListBucketInventoryConfigurationsRequest method. 5747 // req, resp := client.ListBucketInventoryConfigurationsRequest(params) 5748 // 5749 // err := req.Send() 5750 // if err == nil { // resp is now filled 5751 // fmt.Println(resp) 5752 // } 5753 // 5754 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations 5755 func (c *S3) ListBucketInventoryConfigurationsRequest(input *ListBucketInventoryConfigurationsInput) (req *request.Request, output *ListBucketInventoryConfigurationsOutput) { 5756 op := &request.Operation{ 5757 Name: opListBucketInventoryConfigurations, 5758 HTTPMethod: "GET", 5759 HTTPPath: "/{Bucket}?inventory", 5760 } 5761 5762 if input == nil { 5763 input = &ListBucketInventoryConfigurationsInput{} 5764 } 5765 5766 output = &ListBucketInventoryConfigurationsOutput{} 5767 req = c.newRequest(op, input, output) 5768 return 5769 } 5770 5771 // ListBucketInventoryConfigurations API operation for Amazon Simple Storage Service. 5772 // 5773 // Returns a list of inventory configurations for the bucket. You can have up 5774 // to 1,000 analytics configurations per bucket. 5775 // 5776 // This action supports list pagination and does not return more than 100 configurations 5777 // at a time. Always check the IsTruncated element in the response. If there 5778 // are no more configurations to list, IsTruncated is set to false. If there 5779 // are more configurations to list, IsTruncated is set to true, and there is 5780 // a value in NextContinuationToken. You use the NextContinuationToken value 5781 // to continue the pagination of the list by passing the value in continuation-token 5782 // in the request to GET the next page. 5783 // 5784 // To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration 5785 // action. The bucket owner has this permission by default. The bucket owner 5786 // can grant this permission to others. For more information about permissions, 5787 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 5788 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 5789 // 5790 // For information about the Amazon S3 inventory feature, see Amazon S3 Inventory 5791 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) 5792 // 5793 // The following operations are related to ListBucketInventoryConfigurations: 5794 // 5795 // * GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) 5796 // 5797 // * DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) 5798 // 5799 // * PutBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html) 5800 // 5801 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5802 // with awserr.Error's Code and Message methods to get detailed information about 5803 // the error. 5804 // 5805 // See the AWS API reference guide for Amazon Simple Storage Service's 5806 // API operation ListBucketInventoryConfigurations for usage and error information. 5807 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurations 5808 func (c *S3) ListBucketInventoryConfigurations(input *ListBucketInventoryConfigurationsInput) (*ListBucketInventoryConfigurationsOutput, error) { 5809 req, out := c.ListBucketInventoryConfigurationsRequest(input) 5810 return out, req.Send() 5811 } 5812 5813 // ListBucketInventoryConfigurationsWithContext is the same as ListBucketInventoryConfigurations with the addition of 5814 // the ability to pass a context and additional request options. 5815 // 5816 // See ListBucketInventoryConfigurations for details on how to use this API operation. 5817 // 5818 // The context must be non-nil and will be used for request cancellation. If 5819 // the context is nil a panic will occur. In the future the SDK may create 5820 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5821 // for more information on using Contexts. 5822 func (c *S3) ListBucketInventoryConfigurationsWithContext(ctx aws.Context, input *ListBucketInventoryConfigurationsInput, opts ...request.Option) (*ListBucketInventoryConfigurationsOutput, error) { 5823 req, out := c.ListBucketInventoryConfigurationsRequest(input) 5824 req.SetContext(ctx) 5825 req.ApplyOptions(opts...) 5826 return out, req.Send() 5827 } 5828 5829 const opListBucketMetricsConfigurations = "ListBucketMetricsConfigurations" 5830 5831 // ListBucketMetricsConfigurationsRequest generates a "aws/request.Request" representing the 5832 // client's request for the ListBucketMetricsConfigurations operation. The "output" return 5833 // value will be populated with the request's response once the request completes 5834 // successfully. 5835 // 5836 // Use "Send" method on the returned Request to send the API call to the service. 5837 // the "output" return value is not valid until after Send returns without error. 5838 // 5839 // See ListBucketMetricsConfigurations for more information on using the ListBucketMetricsConfigurations 5840 // API call, and error handling. 5841 // 5842 // This method is useful when you want to inject custom logic or configuration 5843 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5844 // 5845 // 5846 // // Example sending a request using the ListBucketMetricsConfigurationsRequest method. 5847 // req, resp := client.ListBucketMetricsConfigurationsRequest(params) 5848 // 5849 // err := req.Send() 5850 // if err == nil { // resp is now filled 5851 // fmt.Println(resp) 5852 // } 5853 // 5854 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations 5855 func (c *S3) ListBucketMetricsConfigurationsRequest(input *ListBucketMetricsConfigurationsInput) (req *request.Request, output *ListBucketMetricsConfigurationsOutput) { 5856 op := &request.Operation{ 5857 Name: opListBucketMetricsConfigurations, 5858 HTTPMethod: "GET", 5859 HTTPPath: "/{Bucket}?metrics", 5860 } 5861 5862 if input == nil { 5863 input = &ListBucketMetricsConfigurationsInput{} 5864 } 5865 5866 output = &ListBucketMetricsConfigurationsOutput{} 5867 req = c.newRequest(op, input, output) 5868 return 5869 } 5870 5871 // ListBucketMetricsConfigurations API operation for Amazon Simple Storage Service. 5872 // 5873 // Lists the metrics configurations for the bucket. The metrics configurations 5874 // are only for the request metrics of the bucket and do not provide information 5875 // on daily storage metrics. You can have up to 1,000 configurations per bucket. 5876 // 5877 // This action supports list pagination and does not return more than 100 configurations 5878 // at a time. Always check the IsTruncated element in the response. If there 5879 // are no more configurations to list, IsTruncated is set to false. If there 5880 // are more configurations to list, IsTruncated is set to true, and there is 5881 // a value in NextContinuationToken. You use the NextContinuationToken value 5882 // to continue the pagination of the list by passing the value in continuation-token 5883 // in the request to GET the next page. 5884 // 5885 // To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration 5886 // action. The bucket owner has this permission by default. The bucket owner 5887 // can grant this permission to others. For more information about permissions, 5888 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 5889 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 5890 // 5891 // For more information about metrics configurations and CloudWatch request 5892 // metrics, see Monitoring Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). 5893 // 5894 // The following operations are related to ListBucketMetricsConfigurations: 5895 // 5896 // * PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html) 5897 // 5898 // * GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) 5899 // 5900 // * DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) 5901 // 5902 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5903 // with awserr.Error's Code and Message methods to get detailed information about 5904 // the error. 5905 // 5906 // See the AWS API reference guide for Amazon Simple Storage Service's 5907 // API operation ListBucketMetricsConfigurations for usage and error information. 5908 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurations 5909 func (c *S3) ListBucketMetricsConfigurations(input *ListBucketMetricsConfigurationsInput) (*ListBucketMetricsConfigurationsOutput, error) { 5910 req, out := c.ListBucketMetricsConfigurationsRequest(input) 5911 return out, req.Send() 5912 } 5913 5914 // ListBucketMetricsConfigurationsWithContext is the same as ListBucketMetricsConfigurations with the addition of 5915 // the ability to pass a context and additional request options. 5916 // 5917 // See ListBucketMetricsConfigurations for details on how to use this API operation. 5918 // 5919 // The context must be non-nil and will be used for request cancellation. If 5920 // the context is nil a panic will occur. In the future the SDK may create 5921 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5922 // for more information on using Contexts. 5923 func (c *S3) ListBucketMetricsConfigurationsWithContext(ctx aws.Context, input *ListBucketMetricsConfigurationsInput, opts ...request.Option) (*ListBucketMetricsConfigurationsOutput, error) { 5924 req, out := c.ListBucketMetricsConfigurationsRequest(input) 5925 req.SetContext(ctx) 5926 req.ApplyOptions(opts...) 5927 return out, req.Send() 5928 } 5929 5930 const opListBuckets = "ListBuckets" 5931 5932 // ListBucketsRequest generates a "aws/request.Request" representing the 5933 // client's request for the ListBuckets operation. The "output" return 5934 // value will be populated with the request's response once the request completes 5935 // successfully. 5936 // 5937 // Use "Send" method on the returned Request to send the API call to the service. 5938 // the "output" return value is not valid until after Send returns without error. 5939 // 5940 // See ListBuckets for more information on using the ListBuckets 5941 // API call, and error handling. 5942 // 5943 // This method is useful when you want to inject custom logic or configuration 5944 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5945 // 5946 // 5947 // // Example sending a request using the ListBucketsRequest method. 5948 // req, resp := client.ListBucketsRequest(params) 5949 // 5950 // err := req.Send() 5951 // if err == nil { // resp is now filled 5952 // fmt.Println(resp) 5953 // } 5954 // 5955 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets 5956 func (c *S3) ListBucketsRequest(input *ListBucketsInput) (req *request.Request, output *ListBucketsOutput) { 5957 op := &request.Operation{ 5958 Name: opListBuckets, 5959 HTTPMethod: "GET", 5960 HTTPPath: "/", 5961 } 5962 5963 if input == nil { 5964 input = &ListBucketsInput{} 5965 } 5966 5967 output = &ListBucketsOutput{} 5968 req = c.newRequest(op, input, output) 5969 return 5970 } 5971 5972 // ListBuckets API operation for Amazon Simple Storage Service. 5973 // 5974 // Returns a list of all buckets owned by the authenticated sender of the request. 5975 // 5976 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5977 // with awserr.Error's Code and Message methods to get detailed information about 5978 // the error. 5979 // 5980 // See the AWS API reference guide for Amazon Simple Storage Service's 5981 // API operation ListBuckets for usage and error information. 5982 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets 5983 func (c *S3) ListBuckets(input *ListBucketsInput) (*ListBucketsOutput, error) { 5984 req, out := c.ListBucketsRequest(input) 5985 return out, req.Send() 5986 } 5987 5988 // ListBucketsWithContext is the same as ListBuckets with the addition of 5989 // the ability to pass a context and additional request options. 5990 // 5991 // See ListBuckets for details on how to use this API operation. 5992 // 5993 // The context must be non-nil and will be used for request cancellation. If 5994 // the context is nil a panic will occur. In the future the SDK may create 5995 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5996 // for more information on using Contexts. 5997 func (c *S3) ListBucketsWithContext(ctx aws.Context, input *ListBucketsInput, opts ...request.Option) (*ListBucketsOutput, error) { 5998 req, out := c.ListBucketsRequest(input) 5999 req.SetContext(ctx) 6000 req.ApplyOptions(opts...) 6001 return out, req.Send() 6002 } 6003 6004 const opListMultipartUploads = "ListMultipartUploads" 6005 6006 // ListMultipartUploadsRequest generates a "aws/request.Request" representing the 6007 // client's request for the ListMultipartUploads operation. The "output" return 6008 // value will be populated with the request's response once the request completes 6009 // successfully. 6010 // 6011 // Use "Send" method on the returned Request to send the API call to the service. 6012 // the "output" return value is not valid until after Send returns without error. 6013 // 6014 // See ListMultipartUploads for more information on using the ListMultipartUploads 6015 // API call, and error handling. 6016 // 6017 // This method is useful when you want to inject custom logic or configuration 6018 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 6019 // 6020 // 6021 // // Example sending a request using the ListMultipartUploadsRequest method. 6022 // req, resp := client.ListMultipartUploadsRequest(params) 6023 // 6024 // err := req.Send() 6025 // if err == nil { // resp is now filled 6026 // fmt.Println(resp) 6027 // } 6028 // 6029 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads 6030 func (c *S3) ListMultipartUploadsRequest(input *ListMultipartUploadsInput) (req *request.Request, output *ListMultipartUploadsOutput) { 6031 op := &request.Operation{ 6032 Name: opListMultipartUploads, 6033 HTTPMethod: "GET", 6034 HTTPPath: "/{Bucket}?uploads", 6035 Paginator: &request.Paginator{ 6036 InputTokens: []string{"KeyMarker", "UploadIdMarker"}, 6037 OutputTokens: []string{"NextKeyMarker", "NextUploadIdMarker"}, 6038 LimitToken: "MaxUploads", 6039 TruncationToken: "IsTruncated", 6040 }, 6041 } 6042 6043 if input == nil { 6044 input = &ListMultipartUploadsInput{} 6045 } 6046 6047 output = &ListMultipartUploadsOutput{} 6048 req = c.newRequest(op, input, output) 6049 return 6050 } 6051 6052 // ListMultipartUploads API operation for Amazon Simple Storage Service. 6053 // 6054 // This action lists in-progress multipart uploads. An in-progress multipart 6055 // upload is a multipart upload that has been initiated using the Initiate Multipart 6056 // Upload request, but has not yet been completed or aborted. 6057 // 6058 // This action returns at most 1,000 multipart uploads in the response. 1,000 6059 // multipart uploads is the maximum number of uploads a response can include, 6060 // which is also the default value. You can further limit the number of uploads 6061 // in a response by specifying the max-uploads parameter in the response. If 6062 // additional multipart uploads satisfy the list criteria, the response will 6063 // contain an IsTruncated element with the value true. To list the additional 6064 // multipart uploads, use the key-marker and upload-id-marker request parameters. 6065 // 6066 // In the response, the uploads are sorted by key. If your application has initiated 6067 // more than one multipart upload using the same object key, then uploads in 6068 // the response are first sorted by key. Additionally, uploads are sorted in 6069 // ascending order within each key by the upload initiation time. 6070 // 6071 // For more information on multipart uploads, see Uploading Objects Using Multipart 6072 // Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). 6073 // 6074 // For information on permissions required to use the multipart upload API, 6075 // see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). 6076 // 6077 // The following operations are related to ListMultipartUploads: 6078 // 6079 // * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 6080 // 6081 // * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 6082 // 6083 // * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 6084 // 6085 // * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) 6086 // 6087 // * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) 6088 // 6089 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 6090 // with awserr.Error's Code and Message methods to get detailed information about 6091 // the error. 6092 // 6093 // See the AWS API reference guide for Amazon Simple Storage Service's 6094 // API operation ListMultipartUploads for usage and error information. 6095 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploads 6096 func (c *S3) ListMultipartUploads(input *ListMultipartUploadsInput) (*ListMultipartUploadsOutput, error) { 6097 req, out := c.ListMultipartUploadsRequest(input) 6098 return out, req.Send() 6099 } 6100 6101 // ListMultipartUploadsWithContext is the same as ListMultipartUploads with the addition of 6102 // the ability to pass a context and additional request options. 6103 // 6104 // See ListMultipartUploads for details on how to use this API operation. 6105 // 6106 // The context must be non-nil and will be used for request cancellation. If 6107 // the context is nil a panic will occur. In the future the SDK may create 6108 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6109 // for more information on using Contexts. 6110 func (c *S3) ListMultipartUploadsWithContext(ctx aws.Context, input *ListMultipartUploadsInput, opts ...request.Option) (*ListMultipartUploadsOutput, error) { 6111 req, out := c.ListMultipartUploadsRequest(input) 6112 req.SetContext(ctx) 6113 req.ApplyOptions(opts...) 6114 return out, req.Send() 6115 } 6116 6117 // ListMultipartUploadsPages iterates over the pages of a ListMultipartUploads operation, 6118 // calling the "fn" function with the response data for each page. To stop 6119 // iterating, return false from the fn function. 6120 // 6121 // See ListMultipartUploads method for more information on how to use this operation. 6122 // 6123 // Note: This operation can generate multiple requests to a service. 6124 // 6125 // // Example iterating over at most 3 pages of a ListMultipartUploads operation. 6126 // pageNum := 0 6127 // err := client.ListMultipartUploadsPages(params, 6128 // func(page *s3.ListMultipartUploadsOutput, lastPage bool) bool { 6129 // pageNum++ 6130 // fmt.Println(page) 6131 // return pageNum <= 3 6132 // }) 6133 // 6134 func (c *S3) ListMultipartUploadsPages(input *ListMultipartUploadsInput, fn func(*ListMultipartUploadsOutput, bool) bool) error { 6135 return c.ListMultipartUploadsPagesWithContext(aws.BackgroundContext(), input, fn) 6136 } 6137 6138 // ListMultipartUploadsPagesWithContext same as ListMultipartUploadsPages except 6139 // it takes a Context and allows setting request options on the pages. 6140 // 6141 // The context must be non-nil and will be used for request cancellation. If 6142 // the context is nil a panic will occur. In the future the SDK may create 6143 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6144 // for more information on using Contexts. 6145 func (c *S3) ListMultipartUploadsPagesWithContext(ctx aws.Context, input *ListMultipartUploadsInput, fn func(*ListMultipartUploadsOutput, bool) bool, opts ...request.Option) error { 6146 p := request.Pagination{ 6147 NewRequest: func() (*request.Request, error) { 6148 var inCpy *ListMultipartUploadsInput 6149 if input != nil { 6150 tmp := *input 6151 inCpy = &tmp 6152 } 6153 req, _ := c.ListMultipartUploadsRequest(inCpy) 6154 req.SetContext(ctx) 6155 req.ApplyOptions(opts...) 6156 return req, nil 6157 }, 6158 } 6159 6160 for p.Next() { 6161 if !fn(p.Page().(*ListMultipartUploadsOutput), !p.HasNextPage()) { 6162 break 6163 } 6164 } 6165 6166 return p.Err() 6167 } 6168 6169 const opListObjectVersions = "ListObjectVersions" 6170 6171 // ListObjectVersionsRequest generates a "aws/request.Request" representing the 6172 // client's request for the ListObjectVersions operation. The "output" return 6173 // value will be populated with the request's response once the request completes 6174 // successfully. 6175 // 6176 // Use "Send" method on the returned Request to send the API call to the service. 6177 // the "output" return value is not valid until after Send returns without error. 6178 // 6179 // See ListObjectVersions for more information on using the ListObjectVersions 6180 // API call, and error handling. 6181 // 6182 // This method is useful when you want to inject custom logic or configuration 6183 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 6184 // 6185 // 6186 // // Example sending a request using the ListObjectVersionsRequest method. 6187 // req, resp := client.ListObjectVersionsRequest(params) 6188 // 6189 // err := req.Send() 6190 // if err == nil { // resp is now filled 6191 // fmt.Println(resp) 6192 // } 6193 // 6194 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions 6195 func (c *S3) ListObjectVersionsRequest(input *ListObjectVersionsInput) (req *request.Request, output *ListObjectVersionsOutput) { 6196 op := &request.Operation{ 6197 Name: opListObjectVersions, 6198 HTTPMethod: "GET", 6199 HTTPPath: "/{Bucket}?versions", 6200 Paginator: &request.Paginator{ 6201 InputTokens: []string{"KeyMarker", "VersionIdMarker"}, 6202 OutputTokens: []string{"NextKeyMarker", "NextVersionIdMarker"}, 6203 LimitToken: "MaxKeys", 6204 TruncationToken: "IsTruncated", 6205 }, 6206 } 6207 6208 if input == nil { 6209 input = &ListObjectVersionsInput{} 6210 } 6211 6212 output = &ListObjectVersionsOutput{} 6213 req = c.newRequest(op, input, output) 6214 return 6215 } 6216 6217 // ListObjectVersions API operation for Amazon Simple Storage Service. 6218 // 6219 // Returns metadata about all versions of the objects in a bucket. You can also 6220 // use request parameters as selection criteria to return metadata about a subset 6221 // of all the object versions. 6222 // 6223 // To use this operation, you must have permissions to perform the s3:ListBucketVersions 6224 // action. Be aware of the name difference. 6225 // 6226 // A 200 OK response can contain valid or invalid XML. Make sure to design your 6227 // application to parse the contents of the response and handle it appropriately. 6228 // 6229 // To use this operation, you must have READ access to the bucket. 6230 // 6231 // This action is not supported by Amazon S3 on Outposts. 6232 // 6233 // The following operations are related to ListObjectVersions: 6234 // 6235 // * ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) 6236 // 6237 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 6238 // 6239 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 6240 // 6241 // * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) 6242 // 6243 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 6244 // with awserr.Error's Code and Message methods to get detailed information about 6245 // the error. 6246 // 6247 // See the AWS API reference guide for Amazon Simple Storage Service's 6248 // API operation ListObjectVersions for usage and error information. 6249 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersions 6250 func (c *S3) ListObjectVersions(input *ListObjectVersionsInput) (*ListObjectVersionsOutput, error) { 6251 req, out := c.ListObjectVersionsRequest(input) 6252 return out, req.Send() 6253 } 6254 6255 // ListObjectVersionsWithContext is the same as ListObjectVersions with the addition of 6256 // the ability to pass a context and additional request options. 6257 // 6258 // See ListObjectVersions for details on how to use this API operation. 6259 // 6260 // The context must be non-nil and will be used for request cancellation. If 6261 // the context is nil a panic will occur. In the future the SDK may create 6262 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6263 // for more information on using Contexts. 6264 func (c *S3) ListObjectVersionsWithContext(ctx aws.Context, input *ListObjectVersionsInput, opts ...request.Option) (*ListObjectVersionsOutput, error) { 6265 req, out := c.ListObjectVersionsRequest(input) 6266 req.SetContext(ctx) 6267 req.ApplyOptions(opts...) 6268 return out, req.Send() 6269 } 6270 6271 // ListObjectVersionsPages iterates over the pages of a ListObjectVersions operation, 6272 // calling the "fn" function with the response data for each page. To stop 6273 // iterating, return false from the fn function. 6274 // 6275 // See ListObjectVersions method for more information on how to use this operation. 6276 // 6277 // Note: This operation can generate multiple requests to a service. 6278 // 6279 // // Example iterating over at most 3 pages of a ListObjectVersions operation. 6280 // pageNum := 0 6281 // err := client.ListObjectVersionsPages(params, 6282 // func(page *s3.ListObjectVersionsOutput, lastPage bool) bool { 6283 // pageNum++ 6284 // fmt.Println(page) 6285 // return pageNum <= 3 6286 // }) 6287 // 6288 func (c *S3) ListObjectVersionsPages(input *ListObjectVersionsInput, fn func(*ListObjectVersionsOutput, bool) bool) error { 6289 return c.ListObjectVersionsPagesWithContext(aws.BackgroundContext(), input, fn) 6290 } 6291 6292 // ListObjectVersionsPagesWithContext same as ListObjectVersionsPages except 6293 // it takes a Context and allows setting request options on the pages. 6294 // 6295 // The context must be non-nil and will be used for request cancellation. If 6296 // the context is nil a panic will occur. In the future the SDK may create 6297 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6298 // for more information on using Contexts. 6299 func (c *S3) ListObjectVersionsPagesWithContext(ctx aws.Context, input *ListObjectVersionsInput, fn func(*ListObjectVersionsOutput, bool) bool, opts ...request.Option) error { 6300 p := request.Pagination{ 6301 NewRequest: func() (*request.Request, error) { 6302 var inCpy *ListObjectVersionsInput 6303 if input != nil { 6304 tmp := *input 6305 inCpy = &tmp 6306 } 6307 req, _ := c.ListObjectVersionsRequest(inCpy) 6308 req.SetContext(ctx) 6309 req.ApplyOptions(opts...) 6310 return req, nil 6311 }, 6312 } 6313 6314 for p.Next() { 6315 if !fn(p.Page().(*ListObjectVersionsOutput), !p.HasNextPage()) { 6316 break 6317 } 6318 } 6319 6320 return p.Err() 6321 } 6322 6323 const opListObjects = "ListObjects" 6324 6325 // ListObjectsRequest generates a "aws/request.Request" representing the 6326 // client's request for the ListObjects operation. The "output" return 6327 // value will be populated with the request's response once the request completes 6328 // successfully. 6329 // 6330 // Use "Send" method on the returned Request to send the API call to the service. 6331 // the "output" return value is not valid until after Send returns without error. 6332 // 6333 // See ListObjects for more information on using the ListObjects 6334 // API call, and error handling. 6335 // 6336 // This method is useful when you want to inject custom logic or configuration 6337 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 6338 // 6339 // 6340 // // Example sending a request using the ListObjectsRequest method. 6341 // req, resp := client.ListObjectsRequest(params) 6342 // 6343 // err := req.Send() 6344 // if err == nil { // resp is now filled 6345 // fmt.Println(resp) 6346 // } 6347 // 6348 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects 6349 func (c *S3) ListObjectsRequest(input *ListObjectsInput) (req *request.Request, output *ListObjectsOutput) { 6350 op := &request.Operation{ 6351 Name: opListObjects, 6352 HTTPMethod: "GET", 6353 HTTPPath: "/{Bucket}", 6354 Paginator: &request.Paginator{ 6355 InputTokens: []string{"Marker"}, 6356 OutputTokens: []string{"NextMarker || Contents[-1].Key"}, 6357 LimitToken: "MaxKeys", 6358 TruncationToken: "IsTruncated", 6359 }, 6360 } 6361 6362 if input == nil { 6363 input = &ListObjectsInput{} 6364 } 6365 6366 output = &ListObjectsOutput{} 6367 req = c.newRequest(op, input, output) 6368 return 6369 } 6370 6371 // ListObjects API operation for Amazon Simple Storage Service. 6372 // 6373 // Returns some or all (up to 1,000) of the objects in a bucket. You can use 6374 // the request parameters as selection criteria to return a subset of the objects 6375 // in a bucket. A 200 OK response can contain valid or invalid XML. Be sure 6376 // to design your application to parse the contents of the response and handle 6377 // it appropriately. 6378 // 6379 // This action has been revised. We recommend that you use the newer version, 6380 // ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html), 6381 // when developing applications. For backward compatibility, Amazon S3 continues 6382 // to support ListObjects. 6383 // 6384 // The following operations are related to ListObjects: 6385 // 6386 // * ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) 6387 // 6388 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 6389 // 6390 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 6391 // 6392 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 6393 // 6394 // * ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) 6395 // 6396 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 6397 // with awserr.Error's Code and Message methods to get detailed information about 6398 // the error. 6399 // 6400 // See the AWS API reference guide for Amazon Simple Storage Service's 6401 // API operation ListObjects for usage and error information. 6402 // 6403 // Returned Error Codes: 6404 // * ErrCodeNoSuchBucket "NoSuchBucket" 6405 // The specified bucket does not exist. 6406 // 6407 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjects 6408 func (c *S3) ListObjects(input *ListObjectsInput) (*ListObjectsOutput, error) { 6409 req, out := c.ListObjectsRequest(input) 6410 return out, req.Send() 6411 } 6412 6413 // ListObjectsWithContext is the same as ListObjects with the addition of 6414 // the ability to pass a context and additional request options. 6415 // 6416 // See ListObjects for details on how to use this API operation. 6417 // 6418 // The context must be non-nil and will be used for request cancellation. If 6419 // the context is nil a panic will occur. In the future the SDK may create 6420 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6421 // for more information on using Contexts. 6422 func (c *S3) ListObjectsWithContext(ctx aws.Context, input *ListObjectsInput, opts ...request.Option) (*ListObjectsOutput, error) { 6423 req, out := c.ListObjectsRequest(input) 6424 req.SetContext(ctx) 6425 req.ApplyOptions(opts...) 6426 return out, req.Send() 6427 } 6428 6429 // ListObjectsPages iterates over the pages of a ListObjects operation, 6430 // calling the "fn" function with the response data for each page. To stop 6431 // iterating, return false from the fn function. 6432 // 6433 // See ListObjects method for more information on how to use this operation. 6434 // 6435 // Note: This operation can generate multiple requests to a service. 6436 // 6437 // // Example iterating over at most 3 pages of a ListObjects operation. 6438 // pageNum := 0 6439 // err := client.ListObjectsPages(params, 6440 // func(page *s3.ListObjectsOutput, lastPage bool) bool { 6441 // pageNum++ 6442 // fmt.Println(page) 6443 // return pageNum <= 3 6444 // }) 6445 // 6446 func (c *S3) ListObjectsPages(input *ListObjectsInput, fn func(*ListObjectsOutput, bool) bool) error { 6447 return c.ListObjectsPagesWithContext(aws.BackgroundContext(), input, fn) 6448 } 6449 6450 // ListObjectsPagesWithContext same as ListObjectsPages except 6451 // it takes a Context and allows setting request options on the pages. 6452 // 6453 // The context must be non-nil and will be used for request cancellation. If 6454 // the context is nil a panic will occur. In the future the SDK may create 6455 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6456 // for more information on using Contexts. 6457 func (c *S3) ListObjectsPagesWithContext(ctx aws.Context, input *ListObjectsInput, fn func(*ListObjectsOutput, bool) bool, opts ...request.Option) error { 6458 p := request.Pagination{ 6459 NewRequest: func() (*request.Request, error) { 6460 var inCpy *ListObjectsInput 6461 if input != nil { 6462 tmp := *input 6463 inCpy = &tmp 6464 } 6465 req, _ := c.ListObjectsRequest(inCpy) 6466 req.SetContext(ctx) 6467 req.ApplyOptions(opts...) 6468 return req, nil 6469 }, 6470 } 6471 6472 for p.Next() { 6473 if !fn(p.Page().(*ListObjectsOutput), !p.HasNextPage()) { 6474 break 6475 } 6476 } 6477 6478 return p.Err() 6479 } 6480 6481 const opListObjectsV2 = "ListObjectsV2" 6482 6483 // ListObjectsV2Request generates a "aws/request.Request" representing the 6484 // client's request for the ListObjectsV2 operation. The "output" return 6485 // value will be populated with the request's response once the request completes 6486 // successfully. 6487 // 6488 // Use "Send" method on the returned Request to send the API call to the service. 6489 // the "output" return value is not valid until after Send returns without error. 6490 // 6491 // See ListObjectsV2 for more information on using the ListObjectsV2 6492 // API call, and error handling. 6493 // 6494 // This method is useful when you want to inject custom logic or configuration 6495 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 6496 // 6497 // 6498 // // Example sending a request using the ListObjectsV2Request method. 6499 // req, resp := client.ListObjectsV2Request(params) 6500 // 6501 // err := req.Send() 6502 // if err == nil { // resp is now filled 6503 // fmt.Println(resp) 6504 // } 6505 // 6506 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2 6507 func (c *S3) ListObjectsV2Request(input *ListObjectsV2Input) (req *request.Request, output *ListObjectsV2Output) { 6508 op := &request.Operation{ 6509 Name: opListObjectsV2, 6510 HTTPMethod: "GET", 6511 HTTPPath: "/{Bucket}?list-type=2", 6512 Paginator: &request.Paginator{ 6513 InputTokens: []string{"ContinuationToken"}, 6514 OutputTokens: []string{"NextContinuationToken"}, 6515 LimitToken: "MaxKeys", 6516 TruncationToken: "", 6517 }, 6518 } 6519 6520 if input == nil { 6521 input = &ListObjectsV2Input{} 6522 } 6523 6524 output = &ListObjectsV2Output{} 6525 req = c.newRequest(op, input, output) 6526 return 6527 } 6528 6529 // ListObjectsV2 API operation for Amazon Simple Storage Service. 6530 // 6531 // Returns some or all (up to 1,000) of the objects in a bucket with each request. 6532 // You can use the request parameters as selection criteria to return a subset 6533 // of the objects in a bucket. A 200 OK response can contain valid or invalid 6534 // XML. Make sure to design your application to parse the contents of the response 6535 // and handle it appropriately. Objects are returned sorted in an ascending 6536 // order of the respective key names in the list. For more information about 6537 // listing objects, see Listing object keys programmatically (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html) 6538 // 6539 // To use this operation, you must have READ access to the bucket. 6540 // 6541 // To use this action in an Identity and Access Management (IAM) policy, you 6542 // must have permissions to perform the s3:ListBucket action. The bucket owner 6543 // has this permission by default and can grant this permission to others. For 6544 // more information about permissions, see Permissions Related to Bucket Subresource 6545 // Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 6546 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 6547 // 6548 // This section describes the latest revision of this action. We recommend that 6549 // you use this revised API for application development. For backward compatibility, 6550 // Amazon S3 continues to support the prior version of this API, ListObjects 6551 // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html). 6552 // 6553 // To get a list of your buckets, see ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html). 6554 // 6555 // The following operations are related to ListObjectsV2: 6556 // 6557 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 6558 // 6559 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 6560 // 6561 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 6562 // 6563 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 6564 // with awserr.Error's Code and Message methods to get detailed information about 6565 // the error. 6566 // 6567 // See the AWS API reference guide for Amazon Simple Storage Service's 6568 // API operation ListObjectsV2 for usage and error information. 6569 // 6570 // Returned Error Codes: 6571 // * ErrCodeNoSuchBucket "NoSuchBucket" 6572 // The specified bucket does not exist. 6573 // 6574 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2 6575 func (c *S3) ListObjectsV2(input *ListObjectsV2Input) (*ListObjectsV2Output, error) { 6576 req, out := c.ListObjectsV2Request(input) 6577 return out, req.Send() 6578 } 6579 6580 // ListObjectsV2WithContext is the same as ListObjectsV2 with the addition of 6581 // the ability to pass a context and additional request options. 6582 // 6583 // See ListObjectsV2 for details on how to use this API operation. 6584 // 6585 // The context must be non-nil and will be used for request cancellation. If 6586 // the context is nil a panic will occur. In the future the SDK may create 6587 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6588 // for more information on using Contexts. 6589 func (c *S3) ListObjectsV2WithContext(ctx aws.Context, input *ListObjectsV2Input, opts ...request.Option) (*ListObjectsV2Output, error) { 6590 req, out := c.ListObjectsV2Request(input) 6591 req.SetContext(ctx) 6592 req.ApplyOptions(opts...) 6593 return out, req.Send() 6594 } 6595 6596 // ListObjectsV2Pages iterates over the pages of a ListObjectsV2 operation, 6597 // calling the "fn" function with the response data for each page. To stop 6598 // iterating, return false from the fn function. 6599 // 6600 // See ListObjectsV2 method for more information on how to use this operation. 6601 // 6602 // Note: This operation can generate multiple requests to a service. 6603 // 6604 // // Example iterating over at most 3 pages of a ListObjectsV2 operation. 6605 // pageNum := 0 6606 // err := client.ListObjectsV2Pages(params, 6607 // func(page *s3.ListObjectsV2Output, lastPage bool) bool { 6608 // pageNum++ 6609 // fmt.Println(page) 6610 // return pageNum <= 3 6611 // }) 6612 // 6613 func (c *S3) ListObjectsV2Pages(input *ListObjectsV2Input, fn func(*ListObjectsV2Output, bool) bool) error { 6614 return c.ListObjectsV2PagesWithContext(aws.BackgroundContext(), input, fn) 6615 } 6616 6617 // ListObjectsV2PagesWithContext same as ListObjectsV2Pages except 6618 // it takes a Context and allows setting request options on the pages. 6619 // 6620 // The context must be non-nil and will be used for request cancellation. If 6621 // the context is nil a panic will occur. In the future the SDK may create 6622 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6623 // for more information on using Contexts. 6624 func (c *S3) ListObjectsV2PagesWithContext(ctx aws.Context, input *ListObjectsV2Input, fn func(*ListObjectsV2Output, bool) bool, opts ...request.Option) error { 6625 p := request.Pagination{ 6626 NewRequest: func() (*request.Request, error) { 6627 var inCpy *ListObjectsV2Input 6628 if input != nil { 6629 tmp := *input 6630 inCpy = &tmp 6631 } 6632 req, _ := c.ListObjectsV2Request(inCpy) 6633 req.SetContext(ctx) 6634 req.ApplyOptions(opts...) 6635 return req, nil 6636 }, 6637 } 6638 6639 for p.Next() { 6640 if !fn(p.Page().(*ListObjectsV2Output), !p.HasNextPage()) { 6641 break 6642 } 6643 } 6644 6645 return p.Err() 6646 } 6647 6648 const opListParts = "ListParts" 6649 6650 // ListPartsRequest generates a "aws/request.Request" representing the 6651 // client's request for the ListParts operation. The "output" return 6652 // value will be populated with the request's response once the request completes 6653 // successfully. 6654 // 6655 // Use "Send" method on the returned Request to send the API call to the service. 6656 // the "output" return value is not valid until after Send returns without error. 6657 // 6658 // See ListParts for more information on using the ListParts 6659 // API call, and error handling. 6660 // 6661 // This method is useful when you want to inject custom logic or configuration 6662 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 6663 // 6664 // 6665 // // Example sending a request using the ListPartsRequest method. 6666 // req, resp := client.ListPartsRequest(params) 6667 // 6668 // err := req.Send() 6669 // if err == nil { // resp is now filled 6670 // fmt.Println(resp) 6671 // } 6672 // 6673 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts 6674 func (c *S3) ListPartsRequest(input *ListPartsInput) (req *request.Request, output *ListPartsOutput) { 6675 op := &request.Operation{ 6676 Name: opListParts, 6677 HTTPMethod: "GET", 6678 HTTPPath: "/{Bucket}/{Key+}", 6679 Paginator: &request.Paginator{ 6680 InputTokens: []string{"PartNumberMarker"}, 6681 OutputTokens: []string{"NextPartNumberMarker"}, 6682 LimitToken: "MaxParts", 6683 TruncationToken: "IsTruncated", 6684 }, 6685 } 6686 6687 if input == nil { 6688 input = &ListPartsInput{} 6689 } 6690 6691 output = &ListPartsOutput{} 6692 req = c.newRequest(op, input, output) 6693 return 6694 } 6695 6696 // ListParts API operation for Amazon Simple Storage Service. 6697 // 6698 // Lists the parts that have been uploaded for a specific multipart upload. 6699 // This operation must include the upload ID, which you obtain by sending the 6700 // initiate multipart upload request (see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)). 6701 // This request returns a maximum of 1,000 uploaded parts. The default number 6702 // of parts returned is 1,000 parts. You can restrict the number of parts returned 6703 // by specifying the max-parts request parameter. If your multipart upload consists 6704 // of more than 1,000 parts, the response returns an IsTruncated field with 6705 // the value of true, and a NextPartNumberMarker element. In subsequent ListParts 6706 // requests you can include the part-number-marker query string parameter and 6707 // set its value to the NextPartNumberMarker field value from the previous response. 6708 // 6709 // For more information on multipart uploads, see Uploading Objects Using Multipart 6710 // Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). 6711 // 6712 // For information on permissions required to use the multipart upload API, 6713 // see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). 6714 // 6715 // The following operations are related to ListParts: 6716 // 6717 // * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 6718 // 6719 // * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 6720 // 6721 // * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 6722 // 6723 // * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) 6724 // 6725 // * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) 6726 // 6727 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 6728 // with awserr.Error's Code and Message methods to get detailed information about 6729 // the error. 6730 // 6731 // See the AWS API reference guide for Amazon Simple Storage Service's 6732 // API operation ListParts for usage and error information. 6733 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts 6734 func (c *S3) ListParts(input *ListPartsInput) (*ListPartsOutput, error) { 6735 req, out := c.ListPartsRequest(input) 6736 return out, req.Send() 6737 } 6738 6739 // ListPartsWithContext is the same as ListParts with the addition of 6740 // the ability to pass a context and additional request options. 6741 // 6742 // See ListParts for details on how to use this API operation. 6743 // 6744 // The context must be non-nil and will be used for request cancellation. If 6745 // the context is nil a panic will occur. In the future the SDK may create 6746 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6747 // for more information on using Contexts. 6748 func (c *S3) ListPartsWithContext(ctx aws.Context, input *ListPartsInput, opts ...request.Option) (*ListPartsOutput, error) { 6749 req, out := c.ListPartsRequest(input) 6750 req.SetContext(ctx) 6751 req.ApplyOptions(opts...) 6752 return out, req.Send() 6753 } 6754 6755 // ListPartsPages iterates over the pages of a ListParts operation, 6756 // calling the "fn" function with the response data for each page. To stop 6757 // iterating, return false from the fn function. 6758 // 6759 // See ListParts method for more information on how to use this operation. 6760 // 6761 // Note: This operation can generate multiple requests to a service. 6762 // 6763 // // Example iterating over at most 3 pages of a ListParts operation. 6764 // pageNum := 0 6765 // err := client.ListPartsPages(params, 6766 // func(page *s3.ListPartsOutput, lastPage bool) bool { 6767 // pageNum++ 6768 // fmt.Println(page) 6769 // return pageNum <= 3 6770 // }) 6771 // 6772 func (c *S3) ListPartsPages(input *ListPartsInput, fn func(*ListPartsOutput, bool) bool) error { 6773 return c.ListPartsPagesWithContext(aws.BackgroundContext(), input, fn) 6774 } 6775 6776 // ListPartsPagesWithContext same as ListPartsPages except 6777 // it takes a Context and allows setting request options on the pages. 6778 // 6779 // The context must be non-nil and will be used for request cancellation. If 6780 // the context is nil a panic will occur. In the future the SDK may create 6781 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6782 // for more information on using Contexts. 6783 func (c *S3) ListPartsPagesWithContext(ctx aws.Context, input *ListPartsInput, fn func(*ListPartsOutput, bool) bool, opts ...request.Option) error { 6784 p := request.Pagination{ 6785 NewRequest: func() (*request.Request, error) { 6786 var inCpy *ListPartsInput 6787 if input != nil { 6788 tmp := *input 6789 inCpy = &tmp 6790 } 6791 req, _ := c.ListPartsRequest(inCpy) 6792 req.SetContext(ctx) 6793 req.ApplyOptions(opts...) 6794 return req, nil 6795 }, 6796 } 6797 6798 for p.Next() { 6799 if !fn(p.Page().(*ListPartsOutput), !p.HasNextPage()) { 6800 break 6801 } 6802 } 6803 6804 return p.Err() 6805 } 6806 6807 const opPutBucketAccelerateConfiguration = "PutBucketAccelerateConfiguration" 6808 6809 // PutBucketAccelerateConfigurationRequest generates a "aws/request.Request" representing the 6810 // client's request for the PutBucketAccelerateConfiguration operation. The "output" return 6811 // value will be populated with the request's response once the request completes 6812 // successfully. 6813 // 6814 // Use "Send" method on the returned Request to send the API call to the service. 6815 // the "output" return value is not valid until after Send returns without error. 6816 // 6817 // See PutBucketAccelerateConfiguration for more information on using the PutBucketAccelerateConfiguration 6818 // API call, and error handling. 6819 // 6820 // This method is useful when you want to inject custom logic or configuration 6821 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 6822 // 6823 // 6824 // // Example sending a request using the PutBucketAccelerateConfigurationRequest method. 6825 // req, resp := client.PutBucketAccelerateConfigurationRequest(params) 6826 // 6827 // err := req.Send() 6828 // if err == nil { // resp is now filled 6829 // fmt.Println(resp) 6830 // } 6831 // 6832 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration 6833 func (c *S3) PutBucketAccelerateConfigurationRequest(input *PutBucketAccelerateConfigurationInput) (req *request.Request, output *PutBucketAccelerateConfigurationOutput) { 6834 op := &request.Operation{ 6835 Name: opPutBucketAccelerateConfiguration, 6836 HTTPMethod: "PUT", 6837 HTTPPath: "/{Bucket}?accelerate", 6838 } 6839 6840 if input == nil { 6841 input = &PutBucketAccelerateConfigurationInput{} 6842 } 6843 6844 output = &PutBucketAccelerateConfigurationOutput{} 6845 req = c.newRequest(op, input, output) 6846 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 6847 return 6848 } 6849 6850 // PutBucketAccelerateConfiguration API operation for Amazon Simple Storage Service. 6851 // 6852 // Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer 6853 // Acceleration is a bucket-level feature that enables you to perform faster 6854 // data transfers to Amazon S3. 6855 // 6856 // To use this operation, you must have permission to perform the s3:PutAccelerateConfiguration 6857 // action. The bucket owner has this permission by default. The bucket owner 6858 // can grant this permission to others. For more information about permissions, 6859 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 6860 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 6861 // 6862 // The Transfer Acceleration state of a bucket can be set to one of the following 6863 // two values: 6864 // 6865 // * Enabled – Enables accelerated data transfers to the bucket. 6866 // 6867 // * Suspended – Disables accelerated data transfers to the bucket. 6868 // 6869 // The GetBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) 6870 // action returns the transfer acceleration state of a bucket. 6871 // 6872 // After setting the Transfer Acceleration state of a bucket to Enabled, it 6873 // might take up to thirty minutes before the data transfer rates to the bucket 6874 // increase. 6875 // 6876 // The name of the bucket used for Transfer Acceleration must be DNS-compliant 6877 // and must not contain periods ("."). 6878 // 6879 // For more information about transfer acceleration, see Transfer Acceleration 6880 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). 6881 // 6882 // The following operations are related to PutBucketAccelerateConfiguration: 6883 // 6884 // * GetBucketAccelerateConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html) 6885 // 6886 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 6887 // 6888 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 6889 // with awserr.Error's Code and Message methods to get detailed information about 6890 // the error. 6891 // 6892 // See the AWS API reference guide for Amazon Simple Storage Service's 6893 // API operation PutBucketAccelerateConfiguration for usage and error information. 6894 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfiguration 6895 func (c *S3) PutBucketAccelerateConfiguration(input *PutBucketAccelerateConfigurationInput) (*PutBucketAccelerateConfigurationOutput, error) { 6896 req, out := c.PutBucketAccelerateConfigurationRequest(input) 6897 return out, req.Send() 6898 } 6899 6900 // PutBucketAccelerateConfigurationWithContext is the same as PutBucketAccelerateConfiguration with the addition of 6901 // the ability to pass a context and additional request options. 6902 // 6903 // See PutBucketAccelerateConfiguration for details on how to use this API operation. 6904 // 6905 // The context must be non-nil and will be used for request cancellation. If 6906 // the context is nil a panic will occur. In the future the SDK may create 6907 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 6908 // for more information on using Contexts. 6909 func (c *S3) PutBucketAccelerateConfigurationWithContext(ctx aws.Context, input *PutBucketAccelerateConfigurationInput, opts ...request.Option) (*PutBucketAccelerateConfigurationOutput, error) { 6910 req, out := c.PutBucketAccelerateConfigurationRequest(input) 6911 req.SetContext(ctx) 6912 req.ApplyOptions(opts...) 6913 return out, req.Send() 6914 } 6915 6916 const opPutBucketAcl = "PutBucketAcl" 6917 6918 // PutBucketAclRequest generates a "aws/request.Request" representing the 6919 // client's request for the PutBucketAcl operation. The "output" return 6920 // value will be populated with the request's response once the request completes 6921 // successfully. 6922 // 6923 // Use "Send" method on the returned Request to send the API call to the service. 6924 // the "output" return value is not valid until after Send returns without error. 6925 // 6926 // See PutBucketAcl for more information on using the PutBucketAcl 6927 // API call, and error handling. 6928 // 6929 // This method is useful when you want to inject custom logic or configuration 6930 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 6931 // 6932 // 6933 // // Example sending a request using the PutBucketAclRequest method. 6934 // req, resp := client.PutBucketAclRequest(params) 6935 // 6936 // err := req.Send() 6937 // if err == nil { // resp is now filled 6938 // fmt.Println(resp) 6939 // } 6940 // 6941 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl 6942 func (c *S3) PutBucketAclRequest(input *PutBucketAclInput) (req *request.Request, output *PutBucketAclOutput) { 6943 op := &request.Operation{ 6944 Name: opPutBucketAcl, 6945 HTTPMethod: "PUT", 6946 HTTPPath: "/{Bucket}?acl", 6947 } 6948 6949 if input == nil { 6950 input = &PutBucketAclInput{} 6951 } 6952 6953 output = &PutBucketAclOutput{} 6954 req = c.newRequest(op, input, output) 6955 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 6956 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 6957 Name: "contentMd5Handler", 6958 Fn: checksum.AddBodyContentMD5Handler, 6959 }) 6960 return 6961 } 6962 6963 // PutBucketAcl API operation for Amazon Simple Storage Service. 6964 // 6965 // Sets the permissions on an existing bucket using access control lists (ACL). 6966 // For more information, see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). 6967 // To set the ACL of a bucket, you must have WRITE_ACP permission. 6968 // 6969 // You can use one of the following two ways to set a bucket's permissions: 6970 // 6971 // * Specify the ACL in the request body 6972 // 6973 // * Specify permissions using request headers 6974 // 6975 // You cannot specify access permission using both the body and the request 6976 // headers. 6977 // 6978 // Depending on your application needs, you may choose to set the ACL on a bucket 6979 // using either the request body or the headers. For example, if you have an 6980 // existing application that updates a bucket ACL using the request body, then 6981 // you can continue to use that approach. 6982 // 6983 // Access Permissions 6984 // 6985 // You can set access permissions using one of the following methods: 6986 // 6987 // * Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports 6988 // a set of predefined ACLs, known as canned ACLs. Each canned ACL has a 6989 // predefined set of grantees and permissions. Specify the canned ACL name 6990 // as the value of x-amz-acl. If you use this header, you cannot use other 6991 // access control-specific headers in your request. For more information, 6992 // see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). 6993 // 6994 // * Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, 6995 // x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using 6996 // these headers, you specify explicit access permissions and grantees (Amazon 6997 // Web Services accounts or Amazon S3 groups) who will receive the permission. 6998 // If you use these ACL-specific headers, you cannot use the x-amz-acl header 6999 // to set a canned ACL. These parameters map to the set of permissions that 7000 // Amazon S3 supports in an ACL. For more information, see Access Control 7001 // List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). 7002 // You specify each grantee as a type=value pair, where the type is one of 7003 // the following: id – if the value specified is the canonical user ID 7004 // of an Amazon Web Services account uri – if you are granting permissions 7005 // to a predefined group emailAddress – if the value specified is the email 7006 // address of an Amazon Web Services account Using email addresses to specify 7007 // a grantee is only supported in the following Amazon Web Services Regions: 7008 // US East (N. Virginia) US West (N. California) US West (Oregon) Asia Pacific 7009 // (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) 7010 // South America (São Paulo) For a list of all the Amazon S3 supported Regions 7011 // and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 7012 // in the Amazon Web Services General Reference. For example, the following 7013 // x-amz-grant-write header grants create, overwrite, and delete objects 7014 // permission to LogDelivery group predefined by Amazon S3 and two Amazon 7015 // Web Services accounts identified by their email addresses. x-amz-grant-write: 7016 // uri="http://acs.amazonaws.com/groups/s3/LogDelivery", id="111122223333", 7017 // id="555566667777" 7018 // 7019 // You can use either a canned ACL or specify access permissions explicitly. 7020 // You cannot do both. 7021 // 7022 // Grantee Values 7023 // 7024 // You can specify the person (grantee) to whom you're assigning access rights 7025 // (using request elements) in the following ways: 7026 // 7027 // * By the person's ID: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 7028 // xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> 7029 // </Grantee> DisplayName is optional and ignored in the request 7030 // 7031 // * By URI: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 7032 // xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee> 7033 // 7034 // * By Email address: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 7035 // xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee> 7036 // The grantee is resolved to the CanonicalUser and, in a response to a GET 7037 // Object acl request, appears as the CanonicalUser. Using email addresses 7038 // to specify a grantee is only supported in the following Amazon Web Services 7039 // Regions: US East (N. Virginia) US West (N. California) US West (Oregon) 7040 // Asia Pacific (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe 7041 // (Ireland) South America (São Paulo) For a list of all the Amazon S3 supported 7042 // Regions and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 7043 // in the Amazon Web Services General Reference. 7044 // 7045 // Related Resources 7046 // 7047 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 7048 // 7049 // * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) 7050 // 7051 // * GetObjectAcl (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) 7052 // 7053 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 7054 // with awserr.Error's Code and Message methods to get detailed information about 7055 // the error. 7056 // 7057 // See the AWS API reference guide for Amazon Simple Storage Service's 7058 // API operation PutBucketAcl for usage and error information. 7059 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl 7060 func (c *S3) PutBucketAcl(input *PutBucketAclInput) (*PutBucketAclOutput, error) { 7061 req, out := c.PutBucketAclRequest(input) 7062 return out, req.Send() 7063 } 7064 7065 // PutBucketAclWithContext is the same as PutBucketAcl with the addition of 7066 // the ability to pass a context and additional request options. 7067 // 7068 // See PutBucketAcl for details on how to use this API operation. 7069 // 7070 // The context must be non-nil and will be used for request cancellation. If 7071 // the context is nil a panic will occur. In the future the SDK may create 7072 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 7073 // for more information on using Contexts. 7074 func (c *S3) PutBucketAclWithContext(ctx aws.Context, input *PutBucketAclInput, opts ...request.Option) (*PutBucketAclOutput, error) { 7075 req, out := c.PutBucketAclRequest(input) 7076 req.SetContext(ctx) 7077 req.ApplyOptions(opts...) 7078 return out, req.Send() 7079 } 7080 7081 const opPutBucketAnalyticsConfiguration = "PutBucketAnalyticsConfiguration" 7082 7083 // PutBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the 7084 // client's request for the PutBucketAnalyticsConfiguration operation. The "output" return 7085 // value will be populated with the request's response once the request completes 7086 // successfully. 7087 // 7088 // Use "Send" method on the returned Request to send the API call to the service. 7089 // the "output" return value is not valid until after Send returns without error. 7090 // 7091 // See PutBucketAnalyticsConfiguration for more information on using the PutBucketAnalyticsConfiguration 7092 // API call, and error handling. 7093 // 7094 // This method is useful when you want to inject custom logic or configuration 7095 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 7096 // 7097 // 7098 // // Example sending a request using the PutBucketAnalyticsConfigurationRequest method. 7099 // req, resp := client.PutBucketAnalyticsConfigurationRequest(params) 7100 // 7101 // err := req.Send() 7102 // if err == nil { // resp is now filled 7103 // fmt.Println(resp) 7104 // } 7105 // 7106 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration 7107 func (c *S3) PutBucketAnalyticsConfigurationRequest(input *PutBucketAnalyticsConfigurationInput) (req *request.Request, output *PutBucketAnalyticsConfigurationOutput) { 7108 op := &request.Operation{ 7109 Name: opPutBucketAnalyticsConfiguration, 7110 HTTPMethod: "PUT", 7111 HTTPPath: "/{Bucket}?analytics", 7112 } 7113 7114 if input == nil { 7115 input = &PutBucketAnalyticsConfigurationInput{} 7116 } 7117 7118 output = &PutBucketAnalyticsConfigurationOutput{} 7119 req = c.newRequest(op, input, output) 7120 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 7121 return 7122 } 7123 7124 // PutBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. 7125 // 7126 // Sets an analytics configuration for the bucket (specified by the analytics 7127 // configuration ID). You can have up to 1,000 analytics configurations per 7128 // bucket. 7129 // 7130 // You can choose to have storage class analysis export analysis reports sent 7131 // to a comma-separated values (CSV) flat file. See the DataExport request element. 7132 // Reports are updated daily and are based on the object filters that you configure. 7133 // When selecting data export, you specify a destination bucket and an optional 7134 // destination prefix where the file is written. You can export the data to 7135 // a destination bucket in a different account. However, the destination bucket 7136 // must be in the same Region as the bucket that you are making the PUT analytics 7137 // configuration to. For more information, see Amazon S3 Analytics – Storage 7138 // Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html). 7139 // 7140 // You must create a bucket policy on the destination bucket where the exported 7141 // file is written to grant permissions to Amazon S3 to write objects to the 7142 // bucket. For an example policy, see Granting Permissions for Amazon S3 Inventory 7143 // and Storage Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). 7144 // 7145 // To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration 7146 // action. The bucket owner has this permission by default. The bucket owner 7147 // can grant this permission to others. For more information about permissions, 7148 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 7149 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 7150 // 7151 // Special Errors 7152 // 7153 // * HTTP Error: HTTP 400 Bad Request Code: InvalidArgument Cause: Invalid 7154 // argument. 7155 // 7156 // * HTTP Error: HTTP 400 Bad Request Code: TooManyConfigurations Cause: 7157 // You are attempting to create a new configuration but have already reached 7158 // the 1,000-configuration limit. 7159 // 7160 // * HTTP Error: HTTP 403 Forbidden Code: AccessDenied Cause: You are not 7161 // the owner of the specified bucket, or you do not have the s3:PutAnalyticsConfiguration 7162 // bucket permission to set the configuration on the bucket. 7163 // 7164 // Related Resources 7165 // 7166 // * GetBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html) 7167 // 7168 // * DeleteBucketAnalyticsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html) 7169 // 7170 // * ListBucketAnalyticsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html) 7171 // 7172 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 7173 // with awserr.Error's Code and Message methods to get detailed information about 7174 // the error. 7175 // 7176 // See the AWS API reference guide for Amazon Simple Storage Service's 7177 // API operation PutBucketAnalyticsConfiguration for usage and error information. 7178 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfiguration 7179 func (c *S3) PutBucketAnalyticsConfiguration(input *PutBucketAnalyticsConfigurationInput) (*PutBucketAnalyticsConfigurationOutput, error) { 7180 req, out := c.PutBucketAnalyticsConfigurationRequest(input) 7181 return out, req.Send() 7182 } 7183 7184 // PutBucketAnalyticsConfigurationWithContext is the same as PutBucketAnalyticsConfiguration with the addition of 7185 // the ability to pass a context and additional request options. 7186 // 7187 // See PutBucketAnalyticsConfiguration for details on how to use this API operation. 7188 // 7189 // The context must be non-nil and will be used for request cancellation. If 7190 // the context is nil a panic will occur. In the future the SDK may create 7191 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 7192 // for more information on using Contexts. 7193 func (c *S3) PutBucketAnalyticsConfigurationWithContext(ctx aws.Context, input *PutBucketAnalyticsConfigurationInput, opts ...request.Option) (*PutBucketAnalyticsConfigurationOutput, error) { 7194 req, out := c.PutBucketAnalyticsConfigurationRequest(input) 7195 req.SetContext(ctx) 7196 req.ApplyOptions(opts...) 7197 return out, req.Send() 7198 } 7199 7200 const opPutBucketCors = "PutBucketCors" 7201 7202 // PutBucketCorsRequest generates a "aws/request.Request" representing the 7203 // client's request for the PutBucketCors operation. The "output" return 7204 // value will be populated with the request's response once the request completes 7205 // successfully. 7206 // 7207 // Use "Send" method on the returned Request to send the API call to the service. 7208 // the "output" return value is not valid until after Send returns without error. 7209 // 7210 // See PutBucketCors for more information on using the PutBucketCors 7211 // API call, and error handling. 7212 // 7213 // This method is useful when you want to inject custom logic or configuration 7214 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 7215 // 7216 // 7217 // // Example sending a request using the PutBucketCorsRequest method. 7218 // req, resp := client.PutBucketCorsRequest(params) 7219 // 7220 // err := req.Send() 7221 // if err == nil { // resp is now filled 7222 // fmt.Println(resp) 7223 // } 7224 // 7225 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors 7226 func (c *S3) PutBucketCorsRequest(input *PutBucketCorsInput) (req *request.Request, output *PutBucketCorsOutput) { 7227 op := &request.Operation{ 7228 Name: opPutBucketCors, 7229 HTTPMethod: "PUT", 7230 HTTPPath: "/{Bucket}?cors", 7231 } 7232 7233 if input == nil { 7234 input = &PutBucketCorsInput{} 7235 } 7236 7237 output = &PutBucketCorsOutput{} 7238 req = c.newRequest(op, input, output) 7239 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 7240 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 7241 Name: "contentMd5Handler", 7242 Fn: checksum.AddBodyContentMD5Handler, 7243 }) 7244 return 7245 } 7246 7247 // PutBucketCors API operation for Amazon Simple Storage Service. 7248 // 7249 // Sets the cors configuration for your bucket. If the configuration exists, 7250 // Amazon S3 replaces it. 7251 // 7252 // To use this operation, you must be allowed to perform the s3:PutBucketCORS 7253 // action. By default, the bucket owner has this permission and can grant it 7254 // to others. 7255 // 7256 // You set this configuration on a bucket so that the bucket can service cross-origin 7257 // requests. For example, you might want to enable a request whose origin is 7258 // http://www.example.com to access your Amazon S3 bucket at my.example.bucket.com 7259 // by using the browser's XMLHttpRequest capability. 7260 // 7261 // To enable cross-origin resource sharing (CORS) on a bucket, you add the cors 7262 // subresource to the bucket. The cors subresource is an XML document in which 7263 // you configure rules that identify origins and the HTTP methods that can be 7264 // executed on your bucket. The document is limited to 64 KB in size. 7265 // 7266 // When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) 7267 // against a bucket, it evaluates the cors configuration on the bucket and uses 7268 // the first CORSRule rule that matches the incoming browser request to enable 7269 // a cross-origin request. For a rule to match, the following conditions must 7270 // be met: 7271 // 7272 // * The request's Origin header must match AllowedOrigin elements. 7273 // 7274 // * The request method (for example, GET, PUT, HEAD, and so on) or the Access-Control-Request-Method 7275 // header in case of a pre-flight OPTIONS request must be one of the AllowedMethod 7276 // elements. 7277 // 7278 // * Every header specified in the Access-Control-Request-Headers request 7279 // header of a pre-flight request must match an AllowedHeader element. 7280 // 7281 // For more information about CORS, go to Enabling Cross-Origin Resource Sharing 7282 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon 7283 // S3 User Guide. 7284 // 7285 // Related Resources 7286 // 7287 // * GetBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html) 7288 // 7289 // * DeleteBucketCors (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html) 7290 // 7291 // * RESTOPTIONSobject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html) 7292 // 7293 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 7294 // with awserr.Error's Code and Message methods to get detailed information about 7295 // the error. 7296 // 7297 // See the AWS API reference guide for Amazon Simple Storage Service's 7298 // API operation PutBucketCors for usage and error information. 7299 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCors 7300 func (c *S3) PutBucketCors(input *PutBucketCorsInput) (*PutBucketCorsOutput, error) { 7301 req, out := c.PutBucketCorsRequest(input) 7302 return out, req.Send() 7303 } 7304 7305 // PutBucketCorsWithContext is the same as PutBucketCors with the addition of 7306 // the ability to pass a context and additional request options. 7307 // 7308 // See PutBucketCors for details on how to use this API operation. 7309 // 7310 // The context must be non-nil and will be used for request cancellation. If 7311 // the context is nil a panic will occur. In the future the SDK may create 7312 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 7313 // for more information on using Contexts. 7314 func (c *S3) PutBucketCorsWithContext(ctx aws.Context, input *PutBucketCorsInput, opts ...request.Option) (*PutBucketCorsOutput, error) { 7315 req, out := c.PutBucketCorsRequest(input) 7316 req.SetContext(ctx) 7317 req.ApplyOptions(opts...) 7318 return out, req.Send() 7319 } 7320 7321 const opPutBucketEncryption = "PutBucketEncryption" 7322 7323 // PutBucketEncryptionRequest generates a "aws/request.Request" representing the 7324 // client's request for the PutBucketEncryption operation. The "output" return 7325 // value will be populated with the request's response once the request completes 7326 // successfully. 7327 // 7328 // Use "Send" method on the returned Request to send the API call to the service. 7329 // the "output" return value is not valid until after Send returns without error. 7330 // 7331 // See PutBucketEncryption for more information on using the PutBucketEncryption 7332 // API call, and error handling. 7333 // 7334 // This method is useful when you want to inject custom logic or configuration 7335 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 7336 // 7337 // 7338 // // Example sending a request using the PutBucketEncryptionRequest method. 7339 // req, resp := client.PutBucketEncryptionRequest(params) 7340 // 7341 // err := req.Send() 7342 // if err == nil { // resp is now filled 7343 // fmt.Println(resp) 7344 // } 7345 // 7346 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption 7347 func (c *S3) PutBucketEncryptionRequest(input *PutBucketEncryptionInput) (req *request.Request, output *PutBucketEncryptionOutput) { 7348 op := &request.Operation{ 7349 Name: opPutBucketEncryption, 7350 HTTPMethod: "PUT", 7351 HTTPPath: "/{Bucket}?encryption", 7352 } 7353 7354 if input == nil { 7355 input = &PutBucketEncryptionInput{} 7356 } 7357 7358 output = &PutBucketEncryptionOutput{} 7359 req = c.newRequest(op, input, output) 7360 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 7361 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 7362 Name: "contentMd5Handler", 7363 Fn: checksum.AddBodyContentMD5Handler, 7364 }) 7365 return 7366 } 7367 7368 // PutBucketEncryption API operation for Amazon Simple Storage Service. 7369 // 7370 // This action uses the encryption subresource to configure default encryption 7371 // and Amazon S3 Bucket Key for an existing bucket. 7372 // 7373 // Default encryption for a bucket can use server-side encryption with Amazon 7374 // S3-managed keys (SSE-S3) or customer managed keys (SSE-KMS). If you specify 7375 // default encryption using SSE-KMS, you can also configure Amazon S3 Bucket 7376 // Key. For information about default encryption, see Amazon S3 default bucket 7377 // encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) 7378 // in the Amazon S3 User Guide. For more information about S3 Bucket Keys, see 7379 // Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) 7380 // in the Amazon S3 User Guide. 7381 // 7382 // This action requires Amazon Web Services Signature Version 4. For more information, 7383 // see Authenticating Requests (Amazon Web Services Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html). 7384 // 7385 // To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration 7386 // action. The bucket owner has this permission by default. The bucket owner 7387 // can grant this permission to others. For more information about permissions, 7388 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 7389 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 7390 // in the Amazon S3 User Guide. 7391 // 7392 // Related Resources 7393 // 7394 // * GetBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) 7395 // 7396 // * DeleteBucketEncryption (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html) 7397 // 7398 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 7399 // with awserr.Error's Code and Message methods to get detailed information about 7400 // the error. 7401 // 7402 // See the AWS API reference guide for Amazon Simple Storage Service's 7403 // API operation PutBucketEncryption for usage and error information. 7404 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryption 7405 func (c *S3) PutBucketEncryption(input *PutBucketEncryptionInput) (*PutBucketEncryptionOutput, error) { 7406 req, out := c.PutBucketEncryptionRequest(input) 7407 return out, req.Send() 7408 } 7409 7410 // PutBucketEncryptionWithContext is the same as PutBucketEncryption with the addition of 7411 // the ability to pass a context and additional request options. 7412 // 7413 // See PutBucketEncryption for details on how to use this API operation. 7414 // 7415 // The context must be non-nil and will be used for request cancellation. If 7416 // the context is nil a panic will occur. In the future the SDK may create 7417 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 7418 // for more information on using Contexts. 7419 func (c *S3) PutBucketEncryptionWithContext(ctx aws.Context, input *PutBucketEncryptionInput, opts ...request.Option) (*PutBucketEncryptionOutput, error) { 7420 req, out := c.PutBucketEncryptionRequest(input) 7421 req.SetContext(ctx) 7422 req.ApplyOptions(opts...) 7423 return out, req.Send() 7424 } 7425 7426 const opPutBucketIntelligentTieringConfiguration = "PutBucketIntelligentTieringConfiguration" 7427 7428 // PutBucketIntelligentTieringConfigurationRequest generates a "aws/request.Request" representing the 7429 // client's request for the PutBucketIntelligentTieringConfiguration operation. The "output" return 7430 // value will be populated with the request's response once the request completes 7431 // successfully. 7432 // 7433 // Use "Send" method on the returned Request to send the API call to the service. 7434 // the "output" return value is not valid until after Send returns without error. 7435 // 7436 // See PutBucketIntelligentTieringConfiguration for more information on using the PutBucketIntelligentTieringConfiguration 7437 // API call, and error handling. 7438 // 7439 // This method is useful when you want to inject custom logic or configuration 7440 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 7441 // 7442 // 7443 // // Example sending a request using the PutBucketIntelligentTieringConfigurationRequest method. 7444 // req, resp := client.PutBucketIntelligentTieringConfigurationRequest(params) 7445 // 7446 // err := req.Send() 7447 // if err == nil { // resp is now filled 7448 // fmt.Println(resp) 7449 // } 7450 // 7451 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration 7452 func (c *S3) PutBucketIntelligentTieringConfigurationRequest(input *PutBucketIntelligentTieringConfigurationInput) (req *request.Request, output *PutBucketIntelligentTieringConfigurationOutput) { 7453 op := &request.Operation{ 7454 Name: opPutBucketIntelligentTieringConfiguration, 7455 HTTPMethod: "PUT", 7456 HTTPPath: "/{Bucket}?intelligent-tiering", 7457 } 7458 7459 if input == nil { 7460 input = &PutBucketIntelligentTieringConfigurationInput{} 7461 } 7462 7463 output = &PutBucketIntelligentTieringConfigurationOutput{} 7464 req = c.newRequest(op, input, output) 7465 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 7466 return 7467 } 7468 7469 // PutBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. 7470 // 7471 // Puts a S3 Intelligent-Tiering configuration to the specified bucket. You 7472 // can have up to 1,000 S3 Intelligent-Tiering configurations per bucket. 7473 // 7474 // The S3 Intelligent-Tiering storage class is designed to optimize storage 7475 // costs by automatically moving data to the most cost-effective storage access 7476 // tier, without performance impact or operational overhead. S3 Intelligent-Tiering 7477 // delivers automatic cost savings in two low latency and high throughput access 7478 // tiers. For data that can be accessed asynchronously, you can choose to activate 7479 // automatic archiving capabilities within the S3 Intelligent-Tiering storage 7480 // class. 7481 // 7482 // The S3 Intelligent-Tiering storage class is the ideal storage class for data 7483 // with unknown, changing, or unpredictable access patterns, independent of 7484 // object size or retention period. If the size of an object is less than 128 7485 // KB, it is not eligible for auto-tiering. Smaller objects can be stored, but 7486 // they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering 7487 // storage class. 7488 // 7489 // For more information, see Storage class for automatically optimizing frequently 7490 // and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). 7491 // 7492 // Operations related to PutBucketIntelligentTieringConfiguration include: 7493 // 7494 // * DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) 7495 // 7496 // * GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) 7497 // 7498 // * ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) 7499 // 7500 // You only need S3 Intelligent-Tiering enabled on a bucket if you want to automatically 7501 // move objects stored in the S3 Intelligent-Tiering storage class to the Archive 7502 // Access or Deep Archive Access tier. 7503 // 7504 // Special Errors 7505 // 7506 // * HTTP 400 Bad Request Error Code: InvalidArgument Cause: Invalid Argument 7507 // 7508 // * HTTP 400 Bad Request Error Code: TooManyConfigurations Cause: You are 7509 // attempting to create a new configuration but have already reached the 7510 // 1,000-configuration limit. 7511 // 7512 // * HTTP 403 Forbidden Error Code: AccessDenied Cause: You are not the owner 7513 // of the specified bucket, or you do not have the s3:PutIntelligentTieringConfiguration 7514 // bucket permission to set the configuration on the bucket. 7515 // 7516 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 7517 // with awserr.Error's Code and Message methods to get detailed information about 7518 // the error. 7519 // 7520 // See the AWS API reference guide for Amazon Simple Storage Service's 7521 // API operation PutBucketIntelligentTieringConfiguration for usage and error information. 7522 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration 7523 func (c *S3) PutBucketIntelligentTieringConfiguration(input *PutBucketIntelligentTieringConfigurationInput) (*PutBucketIntelligentTieringConfigurationOutput, error) { 7524 req, out := c.PutBucketIntelligentTieringConfigurationRequest(input) 7525 return out, req.Send() 7526 } 7527 7528 // PutBucketIntelligentTieringConfigurationWithContext is the same as PutBucketIntelligentTieringConfiguration with the addition of 7529 // the ability to pass a context and additional request options. 7530 // 7531 // See PutBucketIntelligentTieringConfiguration for details on how to use this API operation. 7532 // 7533 // The context must be non-nil and will be used for request cancellation. If 7534 // the context is nil a panic will occur. In the future the SDK may create 7535 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 7536 // for more information on using Contexts. 7537 func (c *S3) PutBucketIntelligentTieringConfigurationWithContext(ctx aws.Context, input *PutBucketIntelligentTieringConfigurationInput, opts ...request.Option) (*PutBucketIntelligentTieringConfigurationOutput, error) { 7538 req, out := c.PutBucketIntelligentTieringConfigurationRequest(input) 7539 req.SetContext(ctx) 7540 req.ApplyOptions(opts...) 7541 return out, req.Send() 7542 } 7543 7544 const opPutBucketInventoryConfiguration = "PutBucketInventoryConfiguration" 7545 7546 // PutBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the 7547 // client's request for the PutBucketInventoryConfiguration operation. The "output" return 7548 // value will be populated with the request's response once the request completes 7549 // successfully. 7550 // 7551 // Use "Send" method on the returned Request to send the API call to the service. 7552 // the "output" return value is not valid until after Send returns without error. 7553 // 7554 // See PutBucketInventoryConfiguration for more information on using the PutBucketInventoryConfiguration 7555 // API call, and error handling. 7556 // 7557 // This method is useful when you want to inject custom logic or configuration 7558 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 7559 // 7560 // 7561 // // Example sending a request using the PutBucketInventoryConfigurationRequest method. 7562 // req, resp := client.PutBucketInventoryConfigurationRequest(params) 7563 // 7564 // err := req.Send() 7565 // if err == nil { // resp is now filled 7566 // fmt.Println(resp) 7567 // } 7568 // 7569 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration 7570 func (c *S3) PutBucketInventoryConfigurationRequest(input *PutBucketInventoryConfigurationInput) (req *request.Request, output *PutBucketInventoryConfigurationOutput) { 7571 op := &request.Operation{ 7572 Name: opPutBucketInventoryConfiguration, 7573 HTTPMethod: "PUT", 7574 HTTPPath: "/{Bucket}?inventory", 7575 } 7576 7577 if input == nil { 7578 input = &PutBucketInventoryConfigurationInput{} 7579 } 7580 7581 output = &PutBucketInventoryConfigurationOutput{} 7582 req = c.newRequest(op, input, output) 7583 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 7584 return 7585 } 7586 7587 // PutBucketInventoryConfiguration API operation for Amazon Simple Storage Service. 7588 // 7589 // This implementation of the PUT action adds an inventory configuration (identified 7590 // by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations 7591 // per bucket. 7592 // 7593 // Amazon S3 inventory generates inventories of the objects in the bucket on 7594 // a daily or weekly basis, and the results are published to a flat file. The 7595 // bucket that is inventoried is called the source bucket, and the bucket where 7596 // the inventory flat file is stored is called the destination bucket. The destination 7597 // bucket must be in the same Amazon Web Services Region as the source bucket. 7598 // 7599 // When you configure an inventory for a source bucket, you specify the destination 7600 // bucket where you want the inventory to be stored, and whether to generate 7601 // the inventory daily or weekly. You can also configure what object metadata 7602 // to include and whether to inventory all object versions or only current versions. 7603 // For more information, see Amazon S3 Inventory (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) 7604 // in the Amazon S3 User Guide. 7605 // 7606 // You must create a bucket policy on the destination bucket to grant permissions 7607 // to Amazon S3 to write objects to the bucket in the defined location. For 7608 // an example policy, see Granting Permissions for Amazon S3 Inventory and Storage 7609 // Class Analysis (https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9). 7610 // 7611 // To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration 7612 // action. The bucket owner has this permission by default and can grant this 7613 // permission to others. For more information about permissions, see Permissions 7614 // Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 7615 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 7616 // in the Amazon S3 User Guide. 7617 // 7618 // Special Errors 7619 // 7620 // * HTTP 400 Bad Request Error Code: InvalidArgument Cause: Invalid Argument 7621 // 7622 // * HTTP 400 Bad Request Error Code: TooManyConfigurations Cause: You are 7623 // attempting to create a new configuration but have already reached the 7624 // 1,000-configuration limit. 7625 // 7626 // * HTTP 403 Forbidden Error Code: AccessDenied Cause: You are not the owner 7627 // of the specified bucket, or you do not have the s3:PutInventoryConfiguration 7628 // bucket permission to set the configuration on the bucket. 7629 // 7630 // Related Resources 7631 // 7632 // * GetBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html) 7633 // 7634 // * DeleteBucketInventoryConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html) 7635 // 7636 // * ListBucketInventoryConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html) 7637 // 7638 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 7639 // with awserr.Error's Code and Message methods to get detailed information about 7640 // the error. 7641 // 7642 // See the AWS API reference guide for Amazon Simple Storage Service's 7643 // API operation PutBucketInventoryConfiguration for usage and error information. 7644 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfiguration 7645 func (c *S3) PutBucketInventoryConfiguration(input *PutBucketInventoryConfigurationInput) (*PutBucketInventoryConfigurationOutput, error) { 7646 req, out := c.PutBucketInventoryConfigurationRequest(input) 7647 return out, req.Send() 7648 } 7649 7650 // PutBucketInventoryConfigurationWithContext is the same as PutBucketInventoryConfiguration with the addition of 7651 // the ability to pass a context and additional request options. 7652 // 7653 // See PutBucketInventoryConfiguration for details on how to use this API operation. 7654 // 7655 // The context must be non-nil and will be used for request cancellation. If 7656 // the context is nil a panic will occur. In the future the SDK may create 7657 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 7658 // for more information on using Contexts. 7659 func (c *S3) PutBucketInventoryConfigurationWithContext(ctx aws.Context, input *PutBucketInventoryConfigurationInput, opts ...request.Option) (*PutBucketInventoryConfigurationOutput, error) { 7660 req, out := c.PutBucketInventoryConfigurationRequest(input) 7661 req.SetContext(ctx) 7662 req.ApplyOptions(opts...) 7663 return out, req.Send() 7664 } 7665 7666 const opPutBucketLifecycle = "PutBucketLifecycle" 7667 7668 // PutBucketLifecycleRequest generates a "aws/request.Request" representing the 7669 // client's request for the PutBucketLifecycle operation. The "output" return 7670 // value will be populated with the request's response once the request completes 7671 // successfully. 7672 // 7673 // Use "Send" method on the returned Request to send the API call to the service. 7674 // the "output" return value is not valid until after Send returns without error. 7675 // 7676 // See PutBucketLifecycle for more information on using the PutBucketLifecycle 7677 // API call, and error handling. 7678 // 7679 // This method is useful when you want to inject custom logic or configuration 7680 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 7681 // 7682 // 7683 // // Example sending a request using the PutBucketLifecycleRequest method. 7684 // req, resp := client.PutBucketLifecycleRequest(params) 7685 // 7686 // err := req.Send() 7687 // if err == nil { // resp is now filled 7688 // fmt.Println(resp) 7689 // } 7690 // 7691 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle 7692 // 7693 // Deprecated: PutBucketLifecycle has been deprecated 7694 func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *request.Request, output *PutBucketLifecycleOutput) { 7695 if c.Client.Config.Logger != nil { 7696 c.Client.Config.Logger.Log("This operation, PutBucketLifecycle, has been deprecated") 7697 } 7698 op := &request.Operation{ 7699 Name: opPutBucketLifecycle, 7700 HTTPMethod: "PUT", 7701 HTTPPath: "/{Bucket}?lifecycle", 7702 } 7703 7704 if input == nil { 7705 input = &PutBucketLifecycleInput{} 7706 } 7707 7708 output = &PutBucketLifecycleOutput{} 7709 req = c.newRequest(op, input, output) 7710 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 7711 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 7712 Name: "contentMd5Handler", 7713 Fn: checksum.AddBodyContentMD5Handler, 7714 }) 7715 return 7716 } 7717 7718 // PutBucketLifecycle API operation for Amazon Simple Storage Service. 7719 // 7720 // 7721 // For an updated version of this API, see PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html). 7722 // This version has been deprecated. Existing lifecycle configurations will 7723 // work. For new lifecycle configurations, use the updated API. 7724 // 7725 // Creates a new lifecycle configuration for the bucket or replaces an existing 7726 // lifecycle configuration. For information about lifecycle configuration, see 7727 // Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) 7728 // in the Amazon S3 User Guide. 7729 // 7730 // By default, all Amazon S3 resources, including buckets, objects, and related 7731 // subresources (for example, lifecycle configuration and website configuration) 7732 // are private. Only the resource owner, the Amazon Web Services account that 7733 // created the resource, can access it. The resource owner can optionally grant 7734 // access permissions to others by writing an access policy. For this operation, 7735 // users must get the s3:PutLifecycleConfiguration permission. 7736 // 7737 // You can also explicitly deny permissions. Explicit denial also supersedes 7738 // any other permissions. If you want to prevent users or accounts from removing 7739 // or deleting objects from your bucket, you must deny them permissions for 7740 // the following actions: 7741 // 7742 // * s3:DeleteObject 7743 // 7744 // * s3:DeleteObjectVersion 7745 // 7746 // * s3:PutLifecycleConfiguration 7747 // 7748 // For more information about permissions, see Managing Access Permissions to 7749 // your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 7750 // in the Amazon S3 User Guide. 7751 // 7752 // For more examples of transitioning objects to storage classes such as STANDARD_IA 7753 // or ONEZONE_IA, see Examples of Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#lifecycle-configuration-examples). 7754 // 7755 // Related Resources 7756 // 7757 // * GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html)(Deprecated) 7758 // 7759 // * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) 7760 // 7761 // * RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) 7762 // 7763 // * By default, a resource owner—in this case, a bucket owner, which is 7764 // the Amazon Web Services account that created the bucket—can perform 7765 // any of the operations. A resource owner can also grant others permission 7766 // to perform the operation. For more information, see the following topics 7767 // in the Amazon S3 User Guide: Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) 7768 // Managing Access Permissions to your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 7769 // 7770 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 7771 // with awserr.Error's Code and Message methods to get detailed information about 7772 // the error. 7773 // 7774 // See the AWS API reference guide for Amazon Simple Storage Service's 7775 // API operation PutBucketLifecycle for usage and error information. 7776 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle 7777 // 7778 // Deprecated: PutBucketLifecycle has been deprecated 7779 func (c *S3) PutBucketLifecycle(input *PutBucketLifecycleInput) (*PutBucketLifecycleOutput, error) { 7780 req, out := c.PutBucketLifecycleRequest(input) 7781 return out, req.Send() 7782 } 7783 7784 // PutBucketLifecycleWithContext is the same as PutBucketLifecycle with the addition of 7785 // the ability to pass a context and additional request options. 7786 // 7787 // See PutBucketLifecycle for details on how to use this API operation. 7788 // 7789 // The context must be non-nil and will be used for request cancellation. If 7790 // the context is nil a panic will occur. In the future the SDK may create 7791 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 7792 // for more information on using Contexts. 7793 // 7794 // Deprecated: PutBucketLifecycleWithContext has been deprecated 7795 func (c *S3) PutBucketLifecycleWithContext(ctx aws.Context, input *PutBucketLifecycleInput, opts ...request.Option) (*PutBucketLifecycleOutput, error) { 7796 req, out := c.PutBucketLifecycleRequest(input) 7797 req.SetContext(ctx) 7798 req.ApplyOptions(opts...) 7799 return out, req.Send() 7800 } 7801 7802 const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration" 7803 7804 // PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the 7805 // client's request for the PutBucketLifecycleConfiguration operation. The "output" return 7806 // value will be populated with the request's response once the request completes 7807 // successfully. 7808 // 7809 // Use "Send" method on the returned Request to send the API call to the service. 7810 // the "output" return value is not valid until after Send returns without error. 7811 // 7812 // See PutBucketLifecycleConfiguration for more information on using the PutBucketLifecycleConfiguration 7813 // API call, and error handling. 7814 // 7815 // This method is useful when you want to inject custom logic or configuration 7816 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 7817 // 7818 // 7819 // // Example sending a request using the PutBucketLifecycleConfigurationRequest method. 7820 // req, resp := client.PutBucketLifecycleConfigurationRequest(params) 7821 // 7822 // err := req.Send() 7823 // if err == nil { // resp is now filled 7824 // fmt.Println(resp) 7825 // } 7826 // 7827 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration 7828 func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) { 7829 op := &request.Operation{ 7830 Name: opPutBucketLifecycleConfiguration, 7831 HTTPMethod: "PUT", 7832 HTTPPath: "/{Bucket}?lifecycle", 7833 } 7834 7835 if input == nil { 7836 input = &PutBucketLifecycleConfigurationInput{} 7837 } 7838 7839 output = &PutBucketLifecycleConfigurationOutput{} 7840 req = c.newRequest(op, input, output) 7841 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 7842 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 7843 Name: "contentMd5Handler", 7844 Fn: checksum.AddBodyContentMD5Handler, 7845 }) 7846 return 7847 } 7848 7849 // PutBucketLifecycleConfiguration API operation for Amazon Simple Storage Service. 7850 // 7851 // Creates a new lifecycle configuration for the bucket or replaces an existing 7852 // lifecycle configuration. For information about lifecycle configuration, see 7853 // Managing your storage lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). 7854 // 7855 // Bucket lifecycle configuration now supports specifying a lifecycle rule using 7856 // an object key name prefix, one or more object tags, or a combination of both. 7857 // Accordingly, this section describes the latest API. The previous version 7858 // of the API supported filtering based only on an object key name prefix, which 7859 // is supported for backward compatibility. For the related API description, 7860 // see PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). 7861 // 7862 // Rules 7863 // 7864 // You specify the lifecycle configuration in your request body. The lifecycle 7865 // configuration is specified as XML consisting of one or more rules. Each rule 7866 // consists of the following: 7867 // 7868 // * Filter identifying a subset of objects to which the rule applies. The 7869 // filter can be based on a key name prefix, object tags, or a combination 7870 // of both. 7871 // 7872 // * Status whether the rule is in effect. 7873 // 7874 // * One or more lifecycle transition and expiration actions that you want 7875 // Amazon S3 to perform on the objects identified by the filter. If the state 7876 // of your bucket is versioning-enabled or versioning-suspended, you can 7877 // have many versions of the same object (one current version and zero or 7878 // more noncurrent versions). Amazon S3 provides predefined actions that 7879 // you can specify for current and noncurrent object versions. 7880 // 7881 // For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) 7882 // and Lifecycle Configuration Elements (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html). 7883 // 7884 // Permissions 7885 // 7886 // By default, all Amazon S3 resources are private, including buckets, objects, 7887 // and related subresources (for example, lifecycle configuration and website 7888 // configuration). Only the resource owner (that is, the Amazon Web Services 7889 // account that created it) can access the resource. The resource owner can 7890 // optionally grant access permissions to others by writing an access policy. 7891 // For this operation, a user must get the s3:PutLifecycleConfiguration permission. 7892 // 7893 // You can also explicitly deny permissions. Explicit deny also supersedes any 7894 // other permissions. If you want to block users or accounts from removing or 7895 // deleting objects from your bucket, you must deny them permissions for the 7896 // following actions: 7897 // 7898 // * s3:DeleteObject 7899 // 7900 // * s3:DeleteObjectVersion 7901 // 7902 // * s3:PutLifecycleConfiguration 7903 // 7904 // For more information about permissions, see Managing Access Permissions to 7905 // Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 7906 // 7907 // The following are related to PutBucketLifecycleConfiguration: 7908 // 7909 // * Examples of Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html) 7910 // 7911 // * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) 7912 // 7913 // * DeleteBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) 7914 // 7915 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 7916 // with awserr.Error's Code and Message methods to get detailed information about 7917 // the error. 7918 // 7919 // See the AWS API reference guide for Amazon Simple Storage Service's 7920 // API operation PutBucketLifecycleConfiguration for usage and error information. 7921 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfiguration 7922 func (c *S3) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) { 7923 req, out := c.PutBucketLifecycleConfigurationRequest(input) 7924 return out, req.Send() 7925 } 7926 7927 // PutBucketLifecycleConfigurationWithContext is the same as PutBucketLifecycleConfiguration with the addition of 7928 // the ability to pass a context and additional request options. 7929 // 7930 // See PutBucketLifecycleConfiguration for details on how to use this API operation. 7931 // 7932 // The context must be non-nil and will be used for request cancellation. If 7933 // the context is nil a panic will occur. In the future the SDK may create 7934 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 7935 // for more information on using Contexts. 7936 func (c *S3) PutBucketLifecycleConfigurationWithContext(ctx aws.Context, input *PutBucketLifecycleConfigurationInput, opts ...request.Option) (*PutBucketLifecycleConfigurationOutput, error) { 7937 req, out := c.PutBucketLifecycleConfigurationRequest(input) 7938 req.SetContext(ctx) 7939 req.ApplyOptions(opts...) 7940 return out, req.Send() 7941 } 7942 7943 const opPutBucketLogging = "PutBucketLogging" 7944 7945 // PutBucketLoggingRequest generates a "aws/request.Request" representing the 7946 // client's request for the PutBucketLogging operation. The "output" return 7947 // value will be populated with the request's response once the request completes 7948 // successfully. 7949 // 7950 // Use "Send" method on the returned Request to send the API call to the service. 7951 // the "output" return value is not valid until after Send returns without error. 7952 // 7953 // See PutBucketLogging for more information on using the PutBucketLogging 7954 // API call, and error handling. 7955 // 7956 // This method is useful when you want to inject custom logic or configuration 7957 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 7958 // 7959 // 7960 // // Example sending a request using the PutBucketLoggingRequest method. 7961 // req, resp := client.PutBucketLoggingRequest(params) 7962 // 7963 // err := req.Send() 7964 // if err == nil { // resp is now filled 7965 // fmt.Println(resp) 7966 // } 7967 // 7968 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging 7969 func (c *S3) PutBucketLoggingRequest(input *PutBucketLoggingInput) (req *request.Request, output *PutBucketLoggingOutput) { 7970 op := &request.Operation{ 7971 Name: opPutBucketLogging, 7972 HTTPMethod: "PUT", 7973 HTTPPath: "/{Bucket}?logging", 7974 } 7975 7976 if input == nil { 7977 input = &PutBucketLoggingInput{} 7978 } 7979 7980 output = &PutBucketLoggingOutput{} 7981 req = c.newRequest(op, input, output) 7982 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 7983 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 7984 Name: "contentMd5Handler", 7985 Fn: checksum.AddBodyContentMD5Handler, 7986 }) 7987 return 7988 } 7989 7990 // PutBucketLogging API operation for Amazon Simple Storage Service. 7991 // 7992 // Set the logging parameters for a bucket and to specify permissions for who 7993 // can view and modify the logging parameters. All logs are saved to buckets 7994 // in the same Amazon Web Services Region as the source bucket. To set the logging 7995 // status of a bucket, you must be the bucket owner. 7996 // 7997 // The bucket owner is automatically granted FULL_CONTROL to all logs. You use 7998 // the Grantee request element to grant access to other people. The Permissions 7999 // request element specifies the kind of access the grantee has to the logs. 8000 // 8001 // Grantee Values 8002 // 8003 // You can specify the person (grantee) to whom you're assigning access rights 8004 // (using request elements) in the following ways: 8005 // 8006 // * By the person's ID: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 8007 // xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> 8008 // </Grantee> DisplayName is optional and ignored in the request. 8009 // 8010 // * By Email address: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 8011 // xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress></Grantee> 8012 // The grantee is resolved to the CanonicalUser and, in a response to a GET 8013 // Object acl request, appears as the CanonicalUser. 8014 // 8015 // * By URI: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 8016 // xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee> 8017 // 8018 // To enable logging, you use LoggingEnabled and its children request elements. 8019 // To disable logging, you use an empty BucketLoggingStatus request element: 8020 // 8021 // <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01" /> 8022 // 8023 // For more information about server access logging, see Server Access Logging 8024 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html). 8025 // 8026 // For more information about creating a bucket, see CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). 8027 // For more information about returning the logging status of a bucket, see 8028 // GetBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html). 8029 // 8030 // The following operations are related to PutBucketLogging: 8031 // 8032 // * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 8033 // 8034 // * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) 8035 // 8036 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 8037 // 8038 // * GetBucketLogging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html) 8039 // 8040 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8041 // with awserr.Error's Code and Message methods to get detailed information about 8042 // the error. 8043 // 8044 // See the AWS API reference guide for Amazon Simple Storage Service's 8045 // API operation PutBucketLogging for usage and error information. 8046 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLogging 8047 func (c *S3) PutBucketLogging(input *PutBucketLoggingInput) (*PutBucketLoggingOutput, error) { 8048 req, out := c.PutBucketLoggingRequest(input) 8049 return out, req.Send() 8050 } 8051 8052 // PutBucketLoggingWithContext is the same as PutBucketLogging with the addition of 8053 // the ability to pass a context and additional request options. 8054 // 8055 // See PutBucketLogging for details on how to use this API operation. 8056 // 8057 // The context must be non-nil and will be used for request cancellation. If 8058 // the context is nil a panic will occur. In the future the SDK may create 8059 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8060 // for more information on using Contexts. 8061 func (c *S3) PutBucketLoggingWithContext(ctx aws.Context, input *PutBucketLoggingInput, opts ...request.Option) (*PutBucketLoggingOutput, error) { 8062 req, out := c.PutBucketLoggingRequest(input) 8063 req.SetContext(ctx) 8064 req.ApplyOptions(opts...) 8065 return out, req.Send() 8066 } 8067 8068 const opPutBucketMetricsConfiguration = "PutBucketMetricsConfiguration" 8069 8070 // PutBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the 8071 // client's request for the PutBucketMetricsConfiguration operation. The "output" return 8072 // value will be populated with the request's response once the request completes 8073 // successfully. 8074 // 8075 // Use "Send" method on the returned Request to send the API call to the service. 8076 // the "output" return value is not valid until after Send returns without error. 8077 // 8078 // See PutBucketMetricsConfiguration for more information on using the PutBucketMetricsConfiguration 8079 // API call, and error handling. 8080 // 8081 // This method is useful when you want to inject custom logic or configuration 8082 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8083 // 8084 // 8085 // // Example sending a request using the PutBucketMetricsConfigurationRequest method. 8086 // req, resp := client.PutBucketMetricsConfigurationRequest(params) 8087 // 8088 // err := req.Send() 8089 // if err == nil { // resp is now filled 8090 // fmt.Println(resp) 8091 // } 8092 // 8093 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration 8094 func (c *S3) PutBucketMetricsConfigurationRequest(input *PutBucketMetricsConfigurationInput) (req *request.Request, output *PutBucketMetricsConfigurationOutput) { 8095 op := &request.Operation{ 8096 Name: opPutBucketMetricsConfiguration, 8097 HTTPMethod: "PUT", 8098 HTTPPath: "/{Bucket}?metrics", 8099 } 8100 8101 if input == nil { 8102 input = &PutBucketMetricsConfigurationInput{} 8103 } 8104 8105 output = &PutBucketMetricsConfigurationOutput{} 8106 req = c.newRequest(op, input, output) 8107 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8108 return 8109 } 8110 8111 // PutBucketMetricsConfiguration API operation for Amazon Simple Storage Service. 8112 // 8113 // Sets a metrics configuration (specified by the metrics configuration ID) 8114 // for the bucket. You can have up to 1,000 metrics configurations per bucket. 8115 // If you're updating an existing metrics configuration, note that this is a 8116 // full replacement of the existing metrics configuration. If you don't include 8117 // the elements you want to keep, they are erased. 8118 // 8119 // To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration 8120 // action. The bucket owner has this permission by default. The bucket owner 8121 // can grant this permission to others. For more information about permissions, 8122 // see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 8123 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 8124 // 8125 // For information about CloudWatch request metrics for Amazon S3, see Monitoring 8126 // Metrics with Amazon CloudWatch (https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html). 8127 // 8128 // The following operations are related to PutBucketMetricsConfiguration: 8129 // 8130 // * DeleteBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html) 8131 // 8132 // * GetBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html) 8133 // 8134 // * ListBucketMetricsConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html) 8135 // 8136 // GetBucketLifecycle has the following special error: 8137 // 8138 // * Error code: TooManyConfigurations Description: You are attempting to 8139 // create a new configuration but have already reached the 1,000-configuration 8140 // limit. HTTP Status Code: HTTP 400 Bad Request 8141 // 8142 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8143 // with awserr.Error's Code and Message methods to get detailed information about 8144 // the error. 8145 // 8146 // See the AWS API reference guide for Amazon Simple Storage Service's 8147 // API operation PutBucketMetricsConfiguration for usage and error information. 8148 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfiguration 8149 func (c *S3) PutBucketMetricsConfiguration(input *PutBucketMetricsConfigurationInput) (*PutBucketMetricsConfigurationOutput, error) { 8150 req, out := c.PutBucketMetricsConfigurationRequest(input) 8151 return out, req.Send() 8152 } 8153 8154 // PutBucketMetricsConfigurationWithContext is the same as PutBucketMetricsConfiguration with the addition of 8155 // the ability to pass a context and additional request options. 8156 // 8157 // See PutBucketMetricsConfiguration for details on how to use this API operation. 8158 // 8159 // The context must be non-nil and will be used for request cancellation. If 8160 // the context is nil a panic will occur. In the future the SDK may create 8161 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8162 // for more information on using Contexts. 8163 func (c *S3) PutBucketMetricsConfigurationWithContext(ctx aws.Context, input *PutBucketMetricsConfigurationInput, opts ...request.Option) (*PutBucketMetricsConfigurationOutput, error) { 8164 req, out := c.PutBucketMetricsConfigurationRequest(input) 8165 req.SetContext(ctx) 8166 req.ApplyOptions(opts...) 8167 return out, req.Send() 8168 } 8169 8170 const opPutBucketNotification = "PutBucketNotification" 8171 8172 // PutBucketNotificationRequest generates a "aws/request.Request" representing the 8173 // client's request for the PutBucketNotification operation. The "output" return 8174 // value will be populated with the request's response once the request completes 8175 // successfully. 8176 // 8177 // Use "Send" method on the returned Request to send the API call to the service. 8178 // the "output" return value is not valid until after Send returns without error. 8179 // 8180 // See PutBucketNotification for more information on using the PutBucketNotification 8181 // API call, and error handling. 8182 // 8183 // This method is useful when you want to inject custom logic or configuration 8184 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8185 // 8186 // 8187 // // Example sending a request using the PutBucketNotificationRequest method. 8188 // req, resp := client.PutBucketNotificationRequest(params) 8189 // 8190 // err := req.Send() 8191 // if err == nil { // resp is now filled 8192 // fmt.Println(resp) 8193 // } 8194 // 8195 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification 8196 // 8197 // Deprecated: PutBucketNotification has been deprecated 8198 func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (req *request.Request, output *PutBucketNotificationOutput) { 8199 if c.Client.Config.Logger != nil { 8200 c.Client.Config.Logger.Log("This operation, PutBucketNotification, has been deprecated") 8201 } 8202 op := &request.Operation{ 8203 Name: opPutBucketNotification, 8204 HTTPMethod: "PUT", 8205 HTTPPath: "/{Bucket}?notification", 8206 } 8207 8208 if input == nil { 8209 input = &PutBucketNotificationInput{} 8210 } 8211 8212 output = &PutBucketNotificationOutput{} 8213 req = c.newRequest(op, input, output) 8214 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8215 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 8216 Name: "contentMd5Handler", 8217 Fn: checksum.AddBodyContentMD5Handler, 8218 }) 8219 return 8220 } 8221 8222 // PutBucketNotification API operation for Amazon Simple Storage Service. 8223 // 8224 // No longer used, see the PutBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html) 8225 // operation. 8226 // 8227 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8228 // with awserr.Error's Code and Message methods to get detailed information about 8229 // the error. 8230 // 8231 // See the AWS API reference guide for Amazon Simple Storage Service's 8232 // API operation PutBucketNotification for usage and error information. 8233 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification 8234 // 8235 // Deprecated: PutBucketNotification has been deprecated 8236 func (c *S3) PutBucketNotification(input *PutBucketNotificationInput) (*PutBucketNotificationOutput, error) { 8237 req, out := c.PutBucketNotificationRequest(input) 8238 return out, req.Send() 8239 } 8240 8241 // PutBucketNotificationWithContext is the same as PutBucketNotification with the addition of 8242 // the ability to pass a context and additional request options. 8243 // 8244 // See PutBucketNotification for details on how to use this API operation. 8245 // 8246 // The context must be non-nil and will be used for request cancellation. If 8247 // the context is nil a panic will occur. In the future the SDK may create 8248 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8249 // for more information on using Contexts. 8250 // 8251 // Deprecated: PutBucketNotificationWithContext has been deprecated 8252 func (c *S3) PutBucketNotificationWithContext(ctx aws.Context, input *PutBucketNotificationInput, opts ...request.Option) (*PutBucketNotificationOutput, error) { 8253 req, out := c.PutBucketNotificationRequest(input) 8254 req.SetContext(ctx) 8255 req.ApplyOptions(opts...) 8256 return out, req.Send() 8257 } 8258 8259 const opPutBucketNotificationConfiguration = "PutBucketNotificationConfiguration" 8260 8261 // PutBucketNotificationConfigurationRequest generates a "aws/request.Request" representing the 8262 // client's request for the PutBucketNotificationConfiguration operation. The "output" return 8263 // value will be populated with the request's response once the request completes 8264 // successfully. 8265 // 8266 // Use "Send" method on the returned Request to send the API call to the service. 8267 // the "output" return value is not valid until after Send returns without error. 8268 // 8269 // See PutBucketNotificationConfiguration for more information on using the PutBucketNotificationConfiguration 8270 // API call, and error handling. 8271 // 8272 // This method is useful when you want to inject custom logic or configuration 8273 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8274 // 8275 // 8276 // // Example sending a request using the PutBucketNotificationConfigurationRequest method. 8277 // req, resp := client.PutBucketNotificationConfigurationRequest(params) 8278 // 8279 // err := req.Send() 8280 // if err == nil { // resp is now filled 8281 // fmt.Println(resp) 8282 // } 8283 // 8284 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration 8285 func (c *S3) PutBucketNotificationConfigurationRequest(input *PutBucketNotificationConfigurationInput) (req *request.Request, output *PutBucketNotificationConfigurationOutput) { 8286 op := &request.Operation{ 8287 Name: opPutBucketNotificationConfiguration, 8288 HTTPMethod: "PUT", 8289 HTTPPath: "/{Bucket}?notification", 8290 } 8291 8292 if input == nil { 8293 input = &PutBucketNotificationConfigurationInput{} 8294 } 8295 8296 output = &PutBucketNotificationConfigurationOutput{} 8297 req = c.newRequest(op, input, output) 8298 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8299 return 8300 } 8301 8302 // PutBucketNotificationConfiguration API operation for Amazon Simple Storage Service. 8303 // 8304 // Enables notifications of specified events for a bucket. For more information 8305 // about event notifications, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). 8306 // 8307 // Using this API, you can replace an existing notification configuration. The 8308 // configuration is an XML file that defines the event types that you want Amazon 8309 // S3 to publish and the destination where you want Amazon S3 to publish an 8310 // event notification when it detects an event of the specified type. 8311 // 8312 // By default, your bucket has no event notifications configured. That is, the 8313 // notification configuration will be an empty NotificationConfiguration. 8314 // 8315 // <NotificationConfiguration> 8316 // 8317 // </NotificationConfiguration> 8318 // 8319 // This action replaces the existing notification configuration with the configuration 8320 // you include in the request body. 8321 // 8322 // After Amazon S3 receives this request, it first verifies that any Amazon 8323 // Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon 8324 // SQS) destination exists, and that the bucket owner has permission to publish 8325 // to it by sending a test notification. In the case of Lambda destinations, 8326 // Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission 8327 // to invoke the function from the Amazon S3 bucket. For more information, see 8328 // Configuring Notifications for Amazon S3 Events (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). 8329 // 8330 // You can disable notifications by adding the empty NotificationConfiguration 8331 // element. 8332 // 8333 // By default, only the bucket owner can configure notifications on a bucket. 8334 // However, bucket owners can use a bucket policy to grant permission to other 8335 // users to set this configuration with s3:PutBucketNotification permission. 8336 // 8337 // The PUT notification is an atomic operation. For example, suppose your notification 8338 // configuration includes SNS topic, SQS queue, and Lambda function configurations. 8339 // When you send a PUT request with this configuration, Amazon S3 sends test 8340 // messages to your SNS topic. If the message fails, the entire PUT action will 8341 // fail, and Amazon S3 will not add the configuration to your bucket. 8342 // 8343 // Responses 8344 // 8345 // If the configuration in the request body includes only one TopicConfiguration 8346 // specifying only the s3:ReducedRedundancyLostObject event type, the response 8347 // will also include the x-amz-sns-test-message-id header containing the message 8348 // ID of the test notification sent to the topic. 8349 // 8350 // The following action is related to PutBucketNotificationConfiguration: 8351 // 8352 // * GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) 8353 // 8354 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8355 // with awserr.Error's Code and Message methods to get detailed information about 8356 // the error. 8357 // 8358 // See the AWS API reference guide for Amazon Simple Storage Service's 8359 // API operation PutBucketNotificationConfiguration for usage and error information. 8360 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfiguration 8361 func (c *S3) PutBucketNotificationConfiguration(input *PutBucketNotificationConfigurationInput) (*PutBucketNotificationConfigurationOutput, error) { 8362 req, out := c.PutBucketNotificationConfigurationRequest(input) 8363 return out, req.Send() 8364 } 8365 8366 // PutBucketNotificationConfigurationWithContext is the same as PutBucketNotificationConfiguration with the addition of 8367 // the ability to pass a context and additional request options. 8368 // 8369 // See PutBucketNotificationConfiguration for details on how to use this API operation. 8370 // 8371 // The context must be non-nil and will be used for request cancellation. If 8372 // the context is nil a panic will occur. In the future the SDK may create 8373 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8374 // for more information on using Contexts. 8375 func (c *S3) PutBucketNotificationConfigurationWithContext(ctx aws.Context, input *PutBucketNotificationConfigurationInput, opts ...request.Option) (*PutBucketNotificationConfigurationOutput, error) { 8376 req, out := c.PutBucketNotificationConfigurationRequest(input) 8377 req.SetContext(ctx) 8378 req.ApplyOptions(opts...) 8379 return out, req.Send() 8380 } 8381 8382 const opPutBucketOwnershipControls = "PutBucketOwnershipControls" 8383 8384 // PutBucketOwnershipControlsRequest generates a "aws/request.Request" representing the 8385 // client's request for the PutBucketOwnershipControls operation. The "output" return 8386 // value will be populated with the request's response once the request completes 8387 // successfully. 8388 // 8389 // Use "Send" method on the returned Request to send the API call to the service. 8390 // the "output" return value is not valid until after Send returns without error. 8391 // 8392 // See PutBucketOwnershipControls for more information on using the PutBucketOwnershipControls 8393 // API call, and error handling. 8394 // 8395 // This method is useful when you want to inject custom logic or configuration 8396 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8397 // 8398 // 8399 // // Example sending a request using the PutBucketOwnershipControlsRequest method. 8400 // req, resp := client.PutBucketOwnershipControlsRequest(params) 8401 // 8402 // err := req.Send() 8403 // if err == nil { // resp is now filled 8404 // fmt.Println(resp) 8405 // } 8406 // 8407 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls 8408 func (c *S3) PutBucketOwnershipControlsRequest(input *PutBucketOwnershipControlsInput) (req *request.Request, output *PutBucketOwnershipControlsOutput) { 8409 op := &request.Operation{ 8410 Name: opPutBucketOwnershipControls, 8411 HTTPMethod: "PUT", 8412 HTTPPath: "/{Bucket}?ownershipControls", 8413 } 8414 8415 if input == nil { 8416 input = &PutBucketOwnershipControlsInput{} 8417 } 8418 8419 output = &PutBucketOwnershipControlsOutput{} 8420 req = c.newRequest(op, input, output) 8421 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8422 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 8423 Name: "contentMd5Handler", 8424 Fn: checksum.AddBodyContentMD5Handler, 8425 }) 8426 return 8427 } 8428 8429 // PutBucketOwnershipControls API operation for Amazon Simple Storage Service. 8430 // 8431 // Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this 8432 // operation, you must have the s3:PutBucketOwnershipControls permission. For 8433 // more information about Amazon S3 permissions, see Specifying Permissions 8434 // in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). 8435 // 8436 // For information about Amazon S3 Object Ownership, see Using Object Ownership 8437 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). 8438 // 8439 // The following operations are related to PutBucketOwnershipControls: 8440 // 8441 // * GetBucketOwnershipControls 8442 // 8443 // * DeleteBucketOwnershipControls 8444 // 8445 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8446 // with awserr.Error's Code and Message methods to get detailed information about 8447 // the error. 8448 // 8449 // See the AWS API reference guide for Amazon Simple Storage Service's 8450 // API operation PutBucketOwnershipControls for usage and error information. 8451 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls 8452 func (c *S3) PutBucketOwnershipControls(input *PutBucketOwnershipControlsInput) (*PutBucketOwnershipControlsOutput, error) { 8453 req, out := c.PutBucketOwnershipControlsRequest(input) 8454 return out, req.Send() 8455 } 8456 8457 // PutBucketOwnershipControlsWithContext is the same as PutBucketOwnershipControls with the addition of 8458 // the ability to pass a context and additional request options. 8459 // 8460 // See PutBucketOwnershipControls for details on how to use this API operation. 8461 // 8462 // The context must be non-nil and will be used for request cancellation. If 8463 // the context is nil a panic will occur. In the future the SDK may create 8464 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8465 // for more information on using Contexts. 8466 func (c *S3) PutBucketOwnershipControlsWithContext(ctx aws.Context, input *PutBucketOwnershipControlsInput, opts ...request.Option) (*PutBucketOwnershipControlsOutput, error) { 8467 req, out := c.PutBucketOwnershipControlsRequest(input) 8468 req.SetContext(ctx) 8469 req.ApplyOptions(opts...) 8470 return out, req.Send() 8471 } 8472 8473 const opPutBucketPolicy = "PutBucketPolicy" 8474 8475 // PutBucketPolicyRequest generates a "aws/request.Request" representing the 8476 // client's request for the PutBucketPolicy operation. The "output" return 8477 // value will be populated with the request's response once the request completes 8478 // successfully. 8479 // 8480 // Use "Send" method on the returned Request to send the API call to the service. 8481 // the "output" return value is not valid until after Send returns without error. 8482 // 8483 // See PutBucketPolicy for more information on using the PutBucketPolicy 8484 // API call, and error handling. 8485 // 8486 // This method is useful when you want to inject custom logic or configuration 8487 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8488 // 8489 // 8490 // // Example sending a request using the PutBucketPolicyRequest method. 8491 // req, resp := client.PutBucketPolicyRequest(params) 8492 // 8493 // err := req.Send() 8494 // if err == nil { // resp is now filled 8495 // fmt.Println(resp) 8496 // } 8497 // 8498 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy 8499 func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.Request, output *PutBucketPolicyOutput) { 8500 op := &request.Operation{ 8501 Name: opPutBucketPolicy, 8502 HTTPMethod: "PUT", 8503 HTTPPath: "/{Bucket}?policy", 8504 } 8505 8506 if input == nil { 8507 input = &PutBucketPolicyInput{} 8508 } 8509 8510 output = &PutBucketPolicyOutput{} 8511 req = c.newRequest(op, input, output) 8512 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8513 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 8514 Name: "contentMd5Handler", 8515 Fn: checksum.AddBodyContentMD5Handler, 8516 }) 8517 return 8518 } 8519 8520 // PutBucketPolicy API operation for Amazon Simple Storage Service. 8521 // 8522 // Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using 8523 // an identity other than the root user of the Amazon Web Services account that 8524 // owns the bucket, the calling identity must have the PutBucketPolicy permissions 8525 // on the specified bucket and belong to the bucket owner's account in order 8526 // to use this operation. 8527 // 8528 // If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access 8529 // Denied error. If you have the correct permissions, but you're not using an 8530 // identity that belongs to the bucket owner's account, Amazon S3 returns a 8531 // 405 Method Not Allowed error. 8532 // 8533 // As a security precaution, the root user of the Amazon Web Services account 8534 // that owns a bucket can always use this operation, even if the policy explicitly 8535 // denies the root user the ability to perform this action. 8536 // 8537 // For more information, see Bucket policy examples (https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html). 8538 // 8539 // The following operations are related to PutBucketPolicy: 8540 // 8541 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 8542 // 8543 // * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) 8544 // 8545 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8546 // with awserr.Error's Code and Message methods to get detailed information about 8547 // the error. 8548 // 8549 // See the AWS API reference guide for Amazon Simple Storage Service's 8550 // API operation PutBucketPolicy for usage and error information. 8551 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicy 8552 func (c *S3) PutBucketPolicy(input *PutBucketPolicyInput) (*PutBucketPolicyOutput, error) { 8553 req, out := c.PutBucketPolicyRequest(input) 8554 return out, req.Send() 8555 } 8556 8557 // PutBucketPolicyWithContext is the same as PutBucketPolicy with the addition of 8558 // the ability to pass a context and additional request options. 8559 // 8560 // See PutBucketPolicy for details on how to use this API operation. 8561 // 8562 // The context must be non-nil and will be used for request cancellation. If 8563 // the context is nil a panic will occur. In the future the SDK may create 8564 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8565 // for more information on using Contexts. 8566 func (c *S3) PutBucketPolicyWithContext(ctx aws.Context, input *PutBucketPolicyInput, opts ...request.Option) (*PutBucketPolicyOutput, error) { 8567 req, out := c.PutBucketPolicyRequest(input) 8568 req.SetContext(ctx) 8569 req.ApplyOptions(opts...) 8570 return out, req.Send() 8571 } 8572 8573 const opPutBucketReplication = "PutBucketReplication" 8574 8575 // PutBucketReplicationRequest generates a "aws/request.Request" representing the 8576 // client's request for the PutBucketReplication operation. The "output" return 8577 // value will be populated with the request's response once the request completes 8578 // successfully. 8579 // 8580 // Use "Send" method on the returned Request to send the API call to the service. 8581 // the "output" return value is not valid until after Send returns without error. 8582 // 8583 // See PutBucketReplication for more information on using the PutBucketReplication 8584 // API call, and error handling. 8585 // 8586 // This method is useful when you want to inject custom logic or configuration 8587 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8588 // 8589 // 8590 // // Example sending a request using the PutBucketReplicationRequest method. 8591 // req, resp := client.PutBucketReplicationRequest(params) 8592 // 8593 // err := req.Send() 8594 // if err == nil { // resp is now filled 8595 // fmt.Println(resp) 8596 // } 8597 // 8598 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication 8599 func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req *request.Request, output *PutBucketReplicationOutput) { 8600 op := &request.Operation{ 8601 Name: opPutBucketReplication, 8602 HTTPMethod: "PUT", 8603 HTTPPath: "/{Bucket}?replication", 8604 } 8605 8606 if input == nil { 8607 input = &PutBucketReplicationInput{} 8608 } 8609 8610 output = &PutBucketReplicationOutput{} 8611 req = c.newRequest(op, input, output) 8612 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8613 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 8614 Name: "contentMd5Handler", 8615 Fn: checksum.AddBodyContentMD5Handler, 8616 }) 8617 return 8618 } 8619 8620 // PutBucketReplication API operation for Amazon Simple Storage Service. 8621 // 8622 // Creates a replication configuration or replaces an existing one. For more 8623 // information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) 8624 // in the Amazon S3 User Guide. 8625 // 8626 // Specify the replication configuration in the request body. In the replication 8627 // configuration, you provide the name of the destination bucket or buckets 8628 // where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 8629 // can assume to replicate objects on your behalf, and other relevant information. 8630 // 8631 // A replication configuration must include at least one rule, and can contain 8632 // a maximum of 1,000. Each rule identifies a subset of objects to replicate 8633 // by filtering the objects in the source bucket. To choose additional subsets 8634 // of objects to replicate, add a rule for each subset. 8635 // 8636 // To specify a subset of the objects in the source bucket to apply a replication 8637 // rule to, add the Filter element as a child of the Rule element. You can filter 8638 // objects based on an object key prefix, one or more object tags, or both. 8639 // When you add the Filter element in the configuration, you must also add the 8640 // following elements: DeleteMarkerReplication, Status, and Priority. 8641 // 8642 // If you are using an earlier version of the replication configuration, Amazon 8643 // S3 handles replication of delete markers differently. For more information, 8644 // see Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). 8645 // 8646 // For information about enabling versioning on a bucket, see Using Versioning 8647 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). 8648 // 8649 // Handling Replication of Encrypted Objects 8650 // 8651 // By default, Amazon S3 doesn't replicate objects that are stored at rest using 8652 // server-side encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted 8653 // objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, 8654 // Status, EncryptionConfiguration, and ReplicaKmsKeyID. For information about 8655 // replication configuration, see Replicating Objects Created with SSE Using 8656 // KMS keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html). 8657 // 8658 // For information on PutBucketReplication errors, see List of replication-related 8659 // error codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList) 8660 // 8661 // Permissions 8662 // 8663 // To create a PutBucketReplication request, you must have s3:PutReplicationConfiguration 8664 // permissions for the bucket. 8665 // 8666 // By default, a resource owner, in this case the Amazon Web Services account 8667 // that created the bucket, can perform this operation. The resource owner can 8668 // also grant others permissions to perform the operation. For more information 8669 // about permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) 8670 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 8671 // 8672 // To perform this operation, the user or role performing the action must have 8673 // the iam:PassRole (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) 8674 // permission. 8675 // 8676 // The following operations are related to PutBucketReplication: 8677 // 8678 // * GetBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) 8679 // 8680 // * DeleteBucketReplication (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) 8681 // 8682 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8683 // with awserr.Error's Code and Message methods to get detailed information about 8684 // the error. 8685 // 8686 // See the AWS API reference guide for Amazon Simple Storage Service's 8687 // API operation PutBucketReplication for usage and error information. 8688 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication 8689 func (c *S3) PutBucketReplication(input *PutBucketReplicationInput) (*PutBucketReplicationOutput, error) { 8690 req, out := c.PutBucketReplicationRequest(input) 8691 return out, req.Send() 8692 } 8693 8694 // PutBucketReplicationWithContext is the same as PutBucketReplication with the addition of 8695 // the ability to pass a context and additional request options. 8696 // 8697 // See PutBucketReplication for details on how to use this API operation. 8698 // 8699 // The context must be non-nil and will be used for request cancellation. If 8700 // the context is nil a panic will occur. In the future the SDK may create 8701 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8702 // for more information on using Contexts. 8703 func (c *S3) PutBucketReplicationWithContext(ctx aws.Context, input *PutBucketReplicationInput, opts ...request.Option) (*PutBucketReplicationOutput, error) { 8704 req, out := c.PutBucketReplicationRequest(input) 8705 req.SetContext(ctx) 8706 req.ApplyOptions(opts...) 8707 return out, req.Send() 8708 } 8709 8710 const opPutBucketRequestPayment = "PutBucketRequestPayment" 8711 8712 // PutBucketRequestPaymentRequest generates a "aws/request.Request" representing the 8713 // client's request for the PutBucketRequestPayment operation. The "output" return 8714 // value will be populated with the request's response once the request completes 8715 // successfully. 8716 // 8717 // Use "Send" method on the returned Request to send the API call to the service. 8718 // the "output" return value is not valid until after Send returns without error. 8719 // 8720 // See PutBucketRequestPayment for more information on using the PutBucketRequestPayment 8721 // API call, and error handling. 8722 // 8723 // This method is useful when you want to inject custom logic or configuration 8724 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8725 // 8726 // 8727 // // Example sending a request using the PutBucketRequestPaymentRequest method. 8728 // req, resp := client.PutBucketRequestPaymentRequest(params) 8729 // 8730 // err := req.Send() 8731 // if err == nil { // resp is now filled 8732 // fmt.Println(resp) 8733 // } 8734 // 8735 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment 8736 func (c *S3) PutBucketRequestPaymentRequest(input *PutBucketRequestPaymentInput) (req *request.Request, output *PutBucketRequestPaymentOutput) { 8737 op := &request.Operation{ 8738 Name: opPutBucketRequestPayment, 8739 HTTPMethod: "PUT", 8740 HTTPPath: "/{Bucket}?requestPayment", 8741 } 8742 8743 if input == nil { 8744 input = &PutBucketRequestPaymentInput{} 8745 } 8746 8747 output = &PutBucketRequestPaymentOutput{} 8748 req = c.newRequest(op, input, output) 8749 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8750 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 8751 Name: "contentMd5Handler", 8752 Fn: checksum.AddBodyContentMD5Handler, 8753 }) 8754 return 8755 } 8756 8757 // PutBucketRequestPayment API operation for Amazon Simple Storage Service. 8758 // 8759 // Sets the request payment configuration for a bucket. By default, the bucket 8760 // owner pays for downloads from the bucket. This configuration parameter enables 8761 // the bucket owner (only) to specify that the person requesting the download 8762 // will be charged for the download. For more information, see Requester Pays 8763 // Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). 8764 // 8765 // The following operations are related to PutBucketRequestPayment: 8766 // 8767 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 8768 // 8769 // * GetBucketRequestPayment (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html) 8770 // 8771 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8772 // with awserr.Error's Code and Message methods to get detailed information about 8773 // the error. 8774 // 8775 // See the AWS API reference guide for Amazon Simple Storage Service's 8776 // API operation PutBucketRequestPayment for usage and error information. 8777 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPayment 8778 func (c *S3) PutBucketRequestPayment(input *PutBucketRequestPaymentInput) (*PutBucketRequestPaymentOutput, error) { 8779 req, out := c.PutBucketRequestPaymentRequest(input) 8780 return out, req.Send() 8781 } 8782 8783 // PutBucketRequestPaymentWithContext is the same as PutBucketRequestPayment with the addition of 8784 // the ability to pass a context and additional request options. 8785 // 8786 // See PutBucketRequestPayment for details on how to use this API operation. 8787 // 8788 // The context must be non-nil and will be used for request cancellation. If 8789 // the context is nil a panic will occur. In the future the SDK may create 8790 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8791 // for more information on using Contexts. 8792 func (c *S3) PutBucketRequestPaymentWithContext(ctx aws.Context, input *PutBucketRequestPaymentInput, opts ...request.Option) (*PutBucketRequestPaymentOutput, error) { 8793 req, out := c.PutBucketRequestPaymentRequest(input) 8794 req.SetContext(ctx) 8795 req.ApplyOptions(opts...) 8796 return out, req.Send() 8797 } 8798 8799 const opPutBucketTagging = "PutBucketTagging" 8800 8801 // PutBucketTaggingRequest generates a "aws/request.Request" representing the 8802 // client's request for the PutBucketTagging operation. The "output" return 8803 // value will be populated with the request's response once the request completes 8804 // successfully. 8805 // 8806 // Use "Send" method on the returned Request to send the API call to the service. 8807 // the "output" return value is not valid until after Send returns without error. 8808 // 8809 // See PutBucketTagging for more information on using the PutBucketTagging 8810 // API call, and error handling. 8811 // 8812 // This method is useful when you want to inject custom logic or configuration 8813 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8814 // 8815 // 8816 // // Example sending a request using the PutBucketTaggingRequest method. 8817 // req, resp := client.PutBucketTaggingRequest(params) 8818 // 8819 // err := req.Send() 8820 // if err == nil { // resp is now filled 8821 // fmt.Println(resp) 8822 // } 8823 // 8824 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging 8825 func (c *S3) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request.Request, output *PutBucketTaggingOutput) { 8826 op := &request.Operation{ 8827 Name: opPutBucketTagging, 8828 HTTPMethod: "PUT", 8829 HTTPPath: "/{Bucket}?tagging", 8830 } 8831 8832 if input == nil { 8833 input = &PutBucketTaggingInput{} 8834 } 8835 8836 output = &PutBucketTaggingOutput{} 8837 req = c.newRequest(op, input, output) 8838 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8839 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 8840 Name: "contentMd5Handler", 8841 Fn: checksum.AddBodyContentMD5Handler, 8842 }) 8843 return 8844 } 8845 8846 // PutBucketTagging API operation for Amazon Simple Storage Service. 8847 // 8848 // Sets the tags for a bucket. 8849 // 8850 // Use tags to organize your Amazon Web Services bill to reflect your own cost 8851 // structure. To do this, sign up to get your Amazon Web Services account bill 8852 // with tag key values included. Then, to see the cost of combined resources, 8853 // organize your billing information according to resources with the same tag 8854 // key values. For example, you can tag several resources with a specific application 8855 // name, and then organize your billing information to see the total cost of 8856 // that application across several services. For more information, see Cost 8857 // Allocation and Tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) 8858 // and Using Cost Allocation in Amazon S3 Bucket Tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html). 8859 // 8860 // When this operation sets the tags for a bucket, it will overwrite any current 8861 // tags the bucket already has. You cannot use this operation to add tags to 8862 // an existing list of tags. 8863 // 8864 // To use this operation, you must have permissions to perform the s3:PutBucketTagging 8865 // action. The bucket owner has this permission by default and can grant this 8866 // permission to others. For more information about permissions, see Permissions 8867 // Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 8868 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). 8869 // 8870 // PutBucketTagging has the following special errors: 8871 // 8872 // * Error code: InvalidTagError Description: The tag provided was not a 8873 // valid tag. This error can occur if the tag did not pass input validation. 8874 // For information about tag restrictions, see User-Defined Tag Restrictions 8875 // (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) 8876 // and Amazon Web Services-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html). 8877 // 8878 // * Error code: MalformedXMLError Description: The XML provided does not 8879 // match the schema. 8880 // 8881 // * Error code: OperationAbortedError Description: A conflicting conditional 8882 // action is currently in progress against this resource. Please try again. 8883 // 8884 // * Error code: InternalError Description: The service was unable to apply 8885 // the provided tag to the bucket. 8886 // 8887 // The following operations are related to PutBucketTagging: 8888 // 8889 // * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) 8890 // 8891 // * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) 8892 // 8893 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 8894 // with awserr.Error's Code and Message methods to get detailed information about 8895 // the error. 8896 // 8897 // See the AWS API reference guide for Amazon Simple Storage Service's 8898 // API operation PutBucketTagging for usage and error information. 8899 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTagging 8900 func (c *S3) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) { 8901 req, out := c.PutBucketTaggingRequest(input) 8902 return out, req.Send() 8903 } 8904 8905 // PutBucketTaggingWithContext is the same as PutBucketTagging with the addition of 8906 // the ability to pass a context and additional request options. 8907 // 8908 // See PutBucketTagging for details on how to use this API operation. 8909 // 8910 // The context must be non-nil and will be used for request cancellation. If 8911 // the context is nil a panic will occur. In the future the SDK may create 8912 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 8913 // for more information on using Contexts. 8914 func (c *S3) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) { 8915 req, out := c.PutBucketTaggingRequest(input) 8916 req.SetContext(ctx) 8917 req.ApplyOptions(opts...) 8918 return out, req.Send() 8919 } 8920 8921 const opPutBucketVersioning = "PutBucketVersioning" 8922 8923 // PutBucketVersioningRequest generates a "aws/request.Request" representing the 8924 // client's request for the PutBucketVersioning operation. The "output" return 8925 // value will be populated with the request's response once the request completes 8926 // successfully. 8927 // 8928 // Use "Send" method on the returned Request to send the API call to the service. 8929 // the "output" return value is not valid until after Send returns without error. 8930 // 8931 // See PutBucketVersioning for more information on using the PutBucketVersioning 8932 // API call, and error handling. 8933 // 8934 // This method is useful when you want to inject custom logic or configuration 8935 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 8936 // 8937 // 8938 // // Example sending a request using the PutBucketVersioningRequest method. 8939 // req, resp := client.PutBucketVersioningRequest(params) 8940 // 8941 // err := req.Send() 8942 // if err == nil { // resp is now filled 8943 // fmt.Println(resp) 8944 // } 8945 // 8946 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning 8947 func (c *S3) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *request.Request, output *PutBucketVersioningOutput) { 8948 op := &request.Operation{ 8949 Name: opPutBucketVersioning, 8950 HTTPMethod: "PUT", 8951 HTTPPath: "/{Bucket}?versioning", 8952 } 8953 8954 if input == nil { 8955 input = &PutBucketVersioningInput{} 8956 } 8957 8958 output = &PutBucketVersioningOutput{} 8959 req = c.newRequest(op, input, output) 8960 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 8961 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 8962 Name: "contentMd5Handler", 8963 Fn: checksum.AddBodyContentMD5Handler, 8964 }) 8965 return 8966 } 8967 8968 // PutBucketVersioning API operation for Amazon Simple Storage Service. 8969 // 8970 // Sets the versioning state of an existing bucket. To set the versioning state, 8971 // you must be the bucket owner. 8972 // 8973 // You can set the versioning state with one of the following values: 8974 // 8975 // Enabled—Enables versioning for the objects in the bucket. All objects added 8976 // to the bucket receive a unique version ID. 8977 // 8978 // Suspended—Disables versioning for the objects in the bucket. All objects 8979 // added to the bucket receive the version ID null. 8980 // 8981 // If the versioning state has never been set on a bucket, it has no versioning 8982 // state; a GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) 8983 // request does not return a versioning state value. 8984 // 8985 // If the bucket owner enables MFA Delete in the bucket versioning configuration, 8986 // the bucket owner must include the x-amz-mfa request header and the Status 8987 // and the MfaDelete request elements in a request to set the versioning state 8988 // of the bucket. 8989 // 8990 // If you have an object expiration lifecycle policy in your non-versioned bucket 8991 // and you want to maintain the same permanent delete behavior when you enable 8992 // versioning, you must add a noncurrent expiration policy. The noncurrent expiration 8993 // lifecycle policy will manage the deletes of the noncurrent object versions 8994 // in the version-enabled bucket. (A version-enabled bucket maintains one current 8995 // and zero or more noncurrent object versions.) For more information, see Lifecycle 8996 // and Versioning (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config). 8997 // 8998 // Related Resources 8999 // 9000 // * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) 9001 // 9002 // * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) 9003 // 9004 // * GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) 9005 // 9006 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9007 // with awserr.Error's Code and Message methods to get detailed information about 9008 // the error. 9009 // 9010 // See the AWS API reference guide for Amazon Simple Storage Service's 9011 // API operation PutBucketVersioning for usage and error information. 9012 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioning 9013 func (c *S3) PutBucketVersioning(input *PutBucketVersioningInput) (*PutBucketVersioningOutput, error) { 9014 req, out := c.PutBucketVersioningRequest(input) 9015 return out, req.Send() 9016 } 9017 9018 // PutBucketVersioningWithContext is the same as PutBucketVersioning with the addition of 9019 // the ability to pass a context and additional request options. 9020 // 9021 // See PutBucketVersioning for details on how to use this API operation. 9022 // 9023 // The context must be non-nil and will be used for request cancellation. If 9024 // the context is nil a panic will occur. In the future the SDK may create 9025 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9026 // for more information on using Contexts. 9027 func (c *S3) PutBucketVersioningWithContext(ctx aws.Context, input *PutBucketVersioningInput, opts ...request.Option) (*PutBucketVersioningOutput, error) { 9028 req, out := c.PutBucketVersioningRequest(input) 9029 req.SetContext(ctx) 9030 req.ApplyOptions(opts...) 9031 return out, req.Send() 9032 } 9033 9034 const opPutBucketWebsite = "PutBucketWebsite" 9035 9036 // PutBucketWebsiteRequest generates a "aws/request.Request" representing the 9037 // client's request for the PutBucketWebsite operation. The "output" return 9038 // value will be populated with the request's response once the request completes 9039 // successfully. 9040 // 9041 // Use "Send" method on the returned Request to send the API call to the service. 9042 // the "output" return value is not valid until after Send returns without error. 9043 // 9044 // See PutBucketWebsite for more information on using the PutBucketWebsite 9045 // API call, and error handling. 9046 // 9047 // This method is useful when you want to inject custom logic or configuration 9048 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9049 // 9050 // 9051 // // Example sending a request using the PutBucketWebsiteRequest method. 9052 // req, resp := client.PutBucketWebsiteRequest(params) 9053 // 9054 // err := req.Send() 9055 // if err == nil { // resp is now filled 9056 // fmt.Println(resp) 9057 // } 9058 // 9059 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite 9060 func (c *S3) PutBucketWebsiteRequest(input *PutBucketWebsiteInput) (req *request.Request, output *PutBucketWebsiteOutput) { 9061 op := &request.Operation{ 9062 Name: opPutBucketWebsite, 9063 HTTPMethod: "PUT", 9064 HTTPPath: "/{Bucket}?website", 9065 } 9066 9067 if input == nil { 9068 input = &PutBucketWebsiteInput{} 9069 } 9070 9071 output = &PutBucketWebsiteOutput{} 9072 req = c.newRequest(op, input, output) 9073 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 9074 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 9075 Name: "contentMd5Handler", 9076 Fn: checksum.AddBodyContentMD5Handler, 9077 }) 9078 return 9079 } 9080 9081 // PutBucketWebsite API operation for Amazon Simple Storage Service. 9082 // 9083 // Sets the configuration of the website that is specified in the website subresource. 9084 // To configure a bucket as a website, you can add this subresource on the bucket 9085 // with website configuration information such as the file name of the index 9086 // document and any redirect rules. For more information, see Hosting Websites 9087 // on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). 9088 // 9089 // This PUT action requires the S3:PutBucketWebsite permission. By default, 9090 // only the bucket owner can configure the website attached to a bucket; however, 9091 // bucket owners can allow other users to set the website configuration by writing 9092 // a bucket policy that grants them the S3:PutBucketWebsite permission. 9093 // 9094 // To redirect all website requests sent to the bucket's website endpoint, you 9095 // add a website configuration with the following elements. Because all requests 9096 // are sent to another website, you don't need to provide index document name 9097 // for the bucket. 9098 // 9099 // * WebsiteConfiguration 9100 // 9101 // * RedirectAllRequestsTo 9102 // 9103 // * HostName 9104 // 9105 // * Protocol 9106 // 9107 // If you want granular control over redirects, you can use the following elements 9108 // to add routing rules that describe conditions for redirecting requests and 9109 // information about the redirect destination. In this case, the website configuration 9110 // must provide an index document for the bucket, because some requests might 9111 // not be redirected. 9112 // 9113 // * WebsiteConfiguration 9114 // 9115 // * IndexDocument 9116 // 9117 // * Suffix 9118 // 9119 // * ErrorDocument 9120 // 9121 // * Key 9122 // 9123 // * RoutingRules 9124 // 9125 // * RoutingRule 9126 // 9127 // * Condition 9128 // 9129 // * HttpErrorCodeReturnedEquals 9130 // 9131 // * KeyPrefixEquals 9132 // 9133 // * Redirect 9134 // 9135 // * Protocol 9136 // 9137 // * HostName 9138 // 9139 // * ReplaceKeyPrefixWith 9140 // 9141 // * ReplaceKeyWith 9142 // 9143 // * HttpRedirectCode 9144 // 9145 // Amazon S3 has a limitation of 50 routing rules per website configuration. 9146 // If you require more than 50 routing rules, you can use object redirect. For 9147 // more information, see Configuring an Object Redirect (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) 9148 // in the Amazon S3 User Guide. 9149 // 9150 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9151 // with awserr.Error's Code and Message methods to get detailed information about 9152 // the error. 9153 // 9154 // See the AWS API reference guide for Amazon Simple Storage Service's 9155 // API operation PutBucketWebsite for usage and error information. 9156 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsite 9157 func (c *S3) PutBucketWebsite(input *PutBucketWebsiteInput) (*PutBucketWebsiteOutput, error) { 9158 req, out := c.PutBucketWebsiteRequest(input) 9159 return out, req.Send() 9160 } 9161 9162 // PutBucketWebsiteWithContext is the same as PutBucketWebsite with the addition of 9163 // the ability to pass a context and additional request options. 9164 // 9165 // See PutBucketWebsite for details on how to use this API operation. 9166 // 9167 // The context must be non-nil and will be used for request cancellation. If 9168 // the context is nil a panic will occur. In the future the SDK may create 9169 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9170 // for more information on using Contexts. 9171 func (c *S3) PutBucketWebsiteWithContext(ctx aws.Context, input *PutBucketWebsiteInput, opts ...request.Option) (*PutBucketWebsiteOutput, error) { 9172 req, out := c.PutBucketWebsiteRequest(input) 9173 req.SetContext(ctx) 9174 req.ApplyOptions(opts...) 9175 return out, req.Send() 9176 } 9177 9178 const opPutObject = "PutObject" 9179 9180 // PutObjectRequest generates a "aws/request.Request" representing the 9181 // client's request for the PutObject operation. The "output" return 9182 // value will be populated with the request's response once the request completes 9183 // successfully. 9184 // 9185 // Use "Send" method on the returned Request to send the API call to the service. 9186 // the "output" return value is not valid until after Send returns without error. 9187 // 9188 // See PutObject for more information on using the PutObject 9189 // API call, and error handling. 9190 // 9191 // This method is useful when you want to inject custom logic or configuration 9192 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9193 // 9194 // 9195 // // Example sending a request using the PutObjectRequest method. 9196 // req, resp := client.PutObjectRequest(params) 9197 // 9198 // err := req.Send() 9199 // if err == nil { // resp is now filled 9200 // fmt.Println(resp) 9201 // } 9202 // 9203 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject 9204 func (c *S3) PutObjectRequest(input *PutObjectInput) (req *request.Request, output *PutObjectOutput) { 9205 op := &request.Operation{ 9206 Name: opPutObject, 9207 HTTPMethod: "PUT", 9208 HTTPPath: "/{Bucket}/{Key+}", 9209 } 9210 9211 if input == nil { 9212 input = &PutObjectInput{} 9213 } 9214 9215 output = &PutObjectOutput{} 9216 req = c.newRequest(op, input, output) 9217 return 9218 } 9219 9220 // PutObject API operation for Amazon Simple Storage Service. 9221 // 9222 // Adds an object to a bucket. You must have WRITE permissions on a bucket to 9223 // add an object to it. 9224 // 9225 // Amazon S3 never adds partial objects; if you receive a success response, 9226 // Amazon S3 added the entire object to the bucket. 9227 // 9228 // Amazon S3 is a distributed system. If it receives multiple write requests 9229 // for the same object simultaneously, it overwrites all but the last object 9230 // written. Amazon S3 does not provide object locking; if you need this, make 9231 // sure to build it into your application layer or use versioning instead. 9232 // 9233 // To ensure that data is not corrupted traversing the network, use the Content-MD5 9234 // header. When you use this header, Amazon S3 checks the object against the 9235 // provided MD5 value and, if they do not match, returns an error. Additionally, 9236 // you can calculate the MD5 while putting an object to Amazon S3 and compare 9237 // the returned ETag to the calculated MD5 value. 9238 // 9239 // * To successfully complete the PutObject request, you must have the s3:PutObject 9240 // in your IAM permissions. 9241 // 9242 // * To successfully change the objects acl of your PutObject request, you 9243 // must have the s3:PutObjectAcl in your IAM permissions. 9244 // 9245 // * The Content-MD5 header is required for any request to upload an object 9246 // with a retention period configured using Amazon S3 Object Lock. For more 9247 // information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview 9248 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html) 9249 // in the Amazon S3 User Guide. 9250 // 9251 // Server-side Encryption 9252 // 9253 // You can optionally request server-side encryption. With server-side encryption, 9254 // Amazon S3 encrypts your data as it writes it to disks in its data centers 9255 // and decrypts the data when you access it. You have the option to provide 9256 // your own encryption key or use Amazon Web Services managed encryption keys 9257 // (SSE-S3 or SSE-KMS). For more information, see Using Server-Side Encryption 9258 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html). 9259 // 9260 // If you request server-side encryption using Amazon Web Services Key Management 9261 // Service (SSE-KMS), you can enable an S3 Bucket Key at the object-level. For 9262 // more information, see Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) 9263 // in the Amazon S3 User Guide. 9264 // 9265 // Access Control List (ACL)-Specific Request Headers 9266 // 9267 // You can use headers to grant ACL- based permissions. By default, all objects 9268 // are private. Only the owner has full access control. When adding a new object, 9269 // you can grant permissions to individual Amazon Web Services accounts or to 9270 // predefined groups defined by Amazon S3. These permissions are then added 9271 // to the ACL on the object. For more information, see Access Control List (ACL) 9272 // Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) 9273 // and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). 9274 // 9275 // Storage Class Options 9276 // 9277 // By default, Amazon S3 uses the STANDARD Storage Class to store newly created 9278 // objects. The STANDARD storage class provides high durability and high availability. 9279 // Depending on performance needs, you can specify a different Storage Class. 9280 // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, 9281 // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) 9282 // in the Amazon S3 User Guide. 9283 // 9284 // Versioning 9285 // 9286 // If you enable versioning for a bucket, Amazon S3 automatically generates 9287 // a unique version ID for the object being stored. Amazon S3 returns this ID 9288 // in the response. When you enable versioning for a bucket, if Amazon S3 receives 9289 // multiple write requests for the same object simultaneously, it stores all 9290 // of the objects. 9291 // 9292 // For more information about versioning, see Adding Objects to Versioning Enabled 9293 // Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html). 9294 // For information about returning the versioning state of a bucket, see GetBucketVersioning 9295 // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html). 9296 // 9297 // Related Resources 9298 // 9299 // * CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 9300 // 9301 // * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) 9302 // 9303 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9304 // with awserr.Error's Code and Message methods to get detailed information about 9305 // the error. 9306 // 9307 // See the AWS API reference guide for Amazon Simple Storage Service's 9308 // API operation PutObject for usage and error information. 9309 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject 9310 func (c *S3) PutObject(input *PutObjectInput) (*PutObjectOutput, error) { 9311 req, out := c.PutObjectRequest(input) 9312 return out, req.Send() 9313 } 9314 9315 // PutObjectWithContext is the same as PutObject with the addition of 9316 // the ability to pass a context and additional request options. 9317 // 9318 // See PutObject for details on how to use this API operation. 9319 // 9320 // The context must be non-nil and will be used for request cancellation. If 9321 // the context is nil a panic will occur. In the future the SDK may create 9322 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9323 // for more information on using Contexts. 9324 func (c *S3) PutObjectWithContext(ctx aws.Context, input *PutObjectInput, opts ...request.Option) (*PutObjectOutput, error) { 9325 req, out := c.PutObjectRequest(input) 9326 req.SetContext(ctx) 9327 req.ApplyOptions(opts...) 9328 return out, req.Send() 9329 } 9330 9331 const opPutObjectAcl = "PutObjectAcl" 9332 9333 // PutObjectAclRequest generates a "aws/request.Request" representing the 9334 // client's request for the PutObjectAcl operation. The "output" return 9335 // value will be populated with the request's response once the request completes 9336 // successfully. 9337 // 9338 // Use "Send" method on the returned Request to send the API call to the service. 9339 // the "output" return value is not valid until after Send returns without error. 9340 // 9341 // See PutObjectAcl for more information on using the PutObjectAcl 9342 // API call, and error handling. 9343 // 9344 // This method is useful when you want to inject custom logic or configuration 9345 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9346 // 9347 // 9348 // // Example sending a request using the PutObjectAclRequest method. 9349 // req, resp := client.PutObjectAclRequest(params) 9350 // 9351 // err := req.Send() 9352 // if err == nil { // resp is now filled 9353 // fmt.Println(resp) 9354 // } 9355 // 9356 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl 9357 func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request, output *PutObjectAclOutput) { 9358 op := &request.Operation{ 9359 Name: opPutObjectAcl, 9360 HTTPMethod: "PUT", 9361 HTTPPath: "/{Bucket}/{Key+}?acl", 9362 } 9363 9364 if input == nil { 9365 input = &PutObjectAclInput{} 9366 } 9367 9368 output = &PutObjectAclOutput{} 9369 req = c.newRequest(op, input, output) 9370 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 9371 Name: "contentMd5Handler", 9372 Fn: checksum.AddBodyContentMD5Handler, 9373 }) 9374 return 9375 } 9376 9377 // PutObjectAcl API operation for Amazon Simple Storage Service. 9378 // 9379 // Uses the acl subresource to set the access control list (ACL) permissions 9380 // for a new or existing object in an S3 bucket. You must have WRITE_ACP permission 9381 // to set the ACL of an object. For more information, see What permissions can 9382 // I grant? (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) 9383 // in the Amazon S3 User Guide. 9384 // 9385 // This action is not supported by Amazon S3 on Outposts. 9386 // 9387 // Depending on your application needs, you can choose to set the ACL on an 9388 // object using either the request body or the headers. For example, if you 9389 // have an existing application that updates a bucket ACL using the request 9390 // body, you can continue to use that approach. For more information, see Access 9391 // Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) 9392 // in the Amazon S3 User Guide. 9393 // 9394 // Access Permissions 9395 // 9396 // You can set access permissions using one of the following methods: 9397 // 9398 // * Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports 9399 // a set of predefined ACLs, known as canned ACLs. Each canned ACL has a 9400 // predefined set of grantees and permissions. Specify the canned ACL name 9401 // as the value of x-amz-acl. If you use this header, you cannot use other 9402 // access control-specific headers in your request. For more information, 9403 // see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). 9404 // 9405 // * Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, 9406 // x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using 9407 // these headers, you specify explicit access permissions and grantees (Amazon 9408 // Web Services accounts or Amazon S3 groups) who will receive the permission. 9409 // If you use these ACL-specific headers, you cannot use x-amz-acl header 9410 // to set a canned ACL. These parameters map to the set of permissions that 9411 // Amazon S3 supports in an ACL. For more information, see Access Control 9412 // List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). 9413 // You specify each grantee as a type=value pair, where the type is one of 9414 // the following: id – if the value specified is the canonical user ID 9415 // of an Amazon Web Services account uri – if you are granting permissions 9416 // to a predefined group emailAddress – if the value specified is the email 9417 // address of an Amazon Web Services account Using email addresses to specify 9418 // a grantee is only supported in the following Amazon Web Services Regions: 9419 // US East (N. Virginia) US West (N. California) US West (Oregon) Asia Pacific 9420 // (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) 9421 // South America (São Paulo) For a list of all the Amazon S3 supported Regions 9422 // and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 9423 // in the Amazon Web Services General Reference. For example, the following 9424 // x-amz-grant-read header grants list objects permission to the two Amazon 9425 // Web Services accounts identified by their email addresses. x-amz-grant-read: 9426 // emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" 9427 // 9428 // You can use either a canned ACL or specify access permissions explicitly. 9429 // You cannot do both. 9430 // 9431 // Grantee Values 9432 // 9433 // You can specify the person (grantee) to whom you're assigning access rights 9434 // (using request elements) in the following ways: 9435 // 9436 // * By the person's ID: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 9437 // xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> 9438 // </Grantee> DisplayName is optional and ignored in the request. 9439 // 9440 // * By URI: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 9441 // xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee> 9442 // 9443 // * By Email address: <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 9444 // xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee> 9445 // The grantee is resolved to the CanonicalUser and, in a response to a GET 9446 // Object acl request, appears as the CanonicalUser. Using email addresses 9447 // to specify a grantee is only supported in the following Amazon Web Services 9448 // Regions: US East (N. Virginia) US West (N. California) US West (Oregon) 9449 // Asia Pacific (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe 9450 // (Ireland) South America (São Paulo) For a list of all the Amazon S3 supported 9451 // Regions and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 9452 // in the Amazon Web Services General Reference. 9453 // 9454 // Versioning 9455 // 9456 // The ACL of an object is set at the object version level. By default, PUT 9457 // sets the ACL of the current version of an object. To set the ACL of a different 9458 // version, use the versionId subresource. 9459 // 9460 // Related Resources 9461 // 9462 // * CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 9463 // 9464 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 9465 // 9466 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9467 // with awserr.Error's Code and Message methods to get detailed information about 9468 // the error. 9469 // 9470 // See the AWS API reference guide for Amazon Simple Storage Service's 9471 // API operation PutObjectAcl for usage and error information. 9472 // 9473 // Returned Error Codes: 9474 // * ErrCodeNoSuchKey "NoSuchKey" 9475 // The specified key does not exist. 9476 // 9477 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAcl 9478 func (c *S3) PutObjectAcl(input *PutObjectAclInput) (*PutObjectAclOutput, error) { 9479 req, out := c.PutObjectAclRequest(input) 9480 return out, req.Send() 9481 } 9482 9483 // PutObjectAclWithContext is the same as PutObjectAcl with the addition of 9484 // the ability to pass a context and additional request options. 9485 // 9486 // See PutObjectAcl for details on how to use this API operation. 9487 // 9488 // The context must be non-nil and will be used for request cancellation. If 9489 // the context is nil a panic will occur. In the future the SDK may create 9490 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9491 // for more information on using Contexts. 9492 func (c *S3) PutObjectAclWithContext(ctx aws.Context, input *PutObjectAclInput, opts ...request.Option) (*PutObjectAclOutput, error) { 9493 req, out := c.PutObjectAclRequest(input) 9494 req.SetContext(ctx) 9495 req.ApplyOptions(opts...) 9496 return out, req.Send() 9497 } 9498 9499 const opPutObjectLegalHold = "PutObjectLegalHold" 9500 9501 // PutObjectLegalHoldRequest generates a "aws/request.Request" representing the 9502 // client's request for the PutObjectLegalHold operation. The "output" return 9503 // value will be populated with the request's response once the request completes 9504 // successfully. 9505 // 9506 // Use "Send" method on the returned Request to send the API call to the service. 9507 // the "output" return value is not valid until after Send returns without error. 9508 // 9509 // See PutObjectLegalHold for more information on using the PutObjectLegalHold 9510 // API call, and error handling. 9511 // 9512 // This method is useful when you want to inject custom logic or configuration 9513 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9514 // 9515 // 9516 // // Example sending a request using the PutObjectLegalHoldRequest method. 9517 // req, resp := client.PutObjectLegalHoldRequest(params) 9518 // 9519 // err := req.Send() 9520 // if err == nil { // resp is now filled 9521 // fmt.Println(resp) 9522 // } 9523 // 9524 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold 9525 func (c *S3) PutObjectLegalHoldRequest(input *PutObjectLegalHoldInput) (req *request.Request, output *PutObjectLegalHoldOutput) { 9526 op := &request.Operation{ 9527 Name: opPutObjectLegalHold, 9528 HTTPMethod: "PUT", 9529 HTTPPath: "/{Bucket}/{Key+}?legal-hold", 9530 } 9531 9532 if input == nil { 9533 input = &PutObjectLegalHoldInput{} 9534 } 9535 9536 output = &PutObjectLegalHoldOutput{} 9537 req = c.newRequest(op, input, output) 9538 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 9539 Name: "contentMd5Handler", 9540 Fn: checksum.AddBodyContentMD5Handler, 9541 }) 9542 return 9543 } 9544 9545 // PutObjectLegalHold API operation for Amazon Simple Storage Service. 9546 // 9547 // Applies a Legal Hold configuration to the specified object. For more information, 9548 // see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 9549 // 9550 // This action is not supported by Amazon S3 on Outposts. 9551 // 9552 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9553 // with awserr.Error's Code and Message methods to get detailed information about 9554 // the error. 9555 // 9556 // See the AWS API reference guide for Amazon Simple Storage Service's 9557 // API operation PutObjectLegalHold for usage and error information. 9558 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold 9559 func (c *S3) PutObjectLegalHold(input *PutObjectLegalHoldInput) (*PutObjectLegalHoldOutput, error) { 9560 req, out := c.PutObjectLegalHoldRequest(input) 9561 return out, req.Send() 9562 } 9563 9564 // PutObjectLegalHoldWithContext is the same as PutObjectLegalHold with the addition of 9565 // the ability to pass a context and additional request options. 9566 // 9567 // See PutObjectLegalHold for details on how to use this API operation. 9568 // 9569 // The context must be non-nil and will be used for request cancellation. If 9570 // the context is nil a panic will occur. In the future the SDK may create 9571 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9572 // for more information on using Contexts. 9573 func (c *S3) PutObjectLegalHoldWithContext(ctx aws.Context, input *PutObjectLegalHoldInput, opts ...request.Option) (*PutObjectLegalHoldOutput, error) { 9574 req, out := c.PutObjectLegalHoldRequest(input) 9575 req.SetContext(ctx) 9576 req.ApplyOptions(opts...) 9577 return out, req.Send() 9578 } 9579 9580 const opPutObjectLockConfiguration = "PutObjectLockConfiguration" 9581 9582 // PutObjectLockConfigurationRequest generates a "aws/request.Request" representing the 9583 // client's request for the PutObjectLockConfiguration operation. The "output" return 9584 // value will be populated with the request's response once the request completes 9585 // successfully. 9586 // 9587 // Use "Send" method on the returned Request to send the API call to the service. 9588 // the "output" return value is not valid until after Send returns without error. 9589 // 9590 // See PutObjectLockConfiguration for more information on using the PutObjectLockConfiguration 9591 // API call, and error handling. 9592 // 9593 // This method is useful when you want to inject custom logic or configuration 9594 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9595 // 9596 // 9597 // // Example sending a request using the PutObjectLockConfigurationRequest method. 9598 // req, resp := client.PutObjectLockConfigurationRequest(params) 9599 // 9600 // err := req.Send() 9601 // if err == nil { // resp is now filled 9602 // fmt.Println(resp) 9603 // } 9604 // 9605 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration 9606 func (c *S3) PutObjectLockConfigurationRequest(input *PutObjectLockConfigurationInput) (req *request.Request, output *PutObjectLockConfigurationOutput) { 9607 op := &request.Operation{ 9608 Name: opPutObjectLockConfiguration, 9609 HTTPMethod: "PUT", 9610 HTTPPath: "/{Bucket}?object-lock", 9611 } 9612 9613 if input == nil { 9614 input = &PutObjectLockConfigurationInput{} 9615 } 9616 9617 output = &PutObjectLockConfigurationOutput{} 9618 req = c.newRequest(op, input, output) 9619 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 9620 Name: "contentMd5Handler", 9621 Fn: checksum.AddBodyContentMD5Handler, 9622 }) 9623 return 9624 } 9625 9626 // PutObjectLockConfiguration API operation for Amazon Simple Storage Service. 9627 // 9628 // Places an Object Lock configuration on the specified bucket. The rule specified 9629 // in the Object Lock configuration will be applied by default to every new 9630 // object placed in the specified bucket. For more information, see Locking 9631 // Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 9632 // 9633 // * The DefaultRetention settings require both a mode and a period. 9634 // 9635 // * The DefaultRetention period can be either Days or Years but you must 9636 // select one. You cannot specify Days and Years at the same time. 9637 // 9638 // * You can only enable Object Lock for new buckets. If you want to turn 9639 // on Object Lock for an existing bucket, contact Amazon Web Services Support. 9640 // 9641 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9642 // with awserr.Error's Code and Message methods to get detailed information about 9643 // the error. 9644 // 9645 // See the AWS API reference guide for Amazon Simple Storage Service's 9646 // API operation PutObjectLockConfiguration for usage and error information. 9647 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration 9648 func (c *S3) PutObjectLockConfiguration(input *PutObjectLockConfigurationInput) (*PutObjectLockConfigurationOutput, error) { 9649 req, out := c.PutObjectLockConfigurationRequest(input) 9650 return out, req.Send() 9651 } 9652 9653 // PutObjectLockConfigurationWithContext is the same as PutObjectLockConfiguration with the addition of 9654 // the ability to pass a context and additional request options. 9655 // 9656 // See PutObjectLockConfiguration for details on how to use this API operation. 9657 // 9658 // The context must be non-nil and will be used for request cancellation. If 9659 // the context is nil a panic will occur. In the future the SDK may create 9660 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9661 // for more information on using Contexts. 9662 func (c *S3) PutObjectLockConfigurationWithContext(ctx aws.Context, input *PutObjectLockConfigurationInput, opts ...request.Option) (*PutObjectLockConfigurationOutput, error) { 9663 req, out := c.PutObjectLockConfigurationRequest(input) 9664 req.SetContext(ctx) 9665 req.ApplyOptions(opts...) 9666 return out, req.Send() 9667 } 9668 9669 const opPutObjectRetention = "PutObjectRetention" 9670 9671 // PutObjectRetentionRequest generates a "aws/request.Request" representing the 9672 // client's request for the PutObjectRetention operation. The "output" return 9673 // value will be populated with the request's response once the request completes 9674 // successfully. 9675 // 9676 // Use "Send" method on the returned Request to send the API call to the service. 9677 // the "output" return value is not valid until after Send returns without error. 9678 // 9679 // See PutObjectRetention for more information on using the PutObjectRetention 9680 // API call, and error handling. 9681 // 9682 // This method is useful when you want to inject custom logic or configuration 9683 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9684 // 9685 // 9686 // // Example sending a request using the PutObjectRetentionRequest method. 9687 // req, resp := client.PutObjectRetentionRequest(params) 9688 // 9689 // err := req.Send() 9690 // if err == nil { // resp is now filled 9691 // fmt.Println(resp) 9692 // } 9693 // 9694 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention 9695 func (c *S3) PutObjectRetentionRequest(input *PutObjectRetentionInput) (req *request.Request, output *PutObjectRetentionOutput) { 9696 op := &request.Operation{ 9697 Name: opPutObjectRetention, 9698 HTTPMethod: "PUT", 9699 HTTPPath: "/{Bucket}/{Key+}?retention", 9700 } 9701 9702 if input == nil { 9703 input = &PutObjectRetentionInput{} 9704 } 9705 9706 output = &PutObjectRetentionOutput{} 9707 req = c.newRequest(op, input, output) 9708 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 9709 Name: "contentMd5Handler", 9710 Fn: checksum.AddBodyContentMD5Handler, 9711 }) 9712 return 9713 } 9714 9715 // PutObjectRetention API operation for Amazon Simple Storage Service. 9716 // 9717 // Places an Object Retention configuration on an object. For more information, 9718 // see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 9719 // Users or accounts require the s3:PutObjectRetention permission in order to 9720 // place an Object Retention configuration on objects. Bypassing a Governance 9721 // Retention configuration requires the s3:BypassGovernanceRetention permission. 9722 // 9723 // This action is not supported by Amazon S3 on Outposts. 9724 // 9725 // Permissions 9726 // 9727 // When the Object Lock retention mode is set to compliance, you need s3:PutObjectRetention 9728 // and s3:BypassGovernanceRetention permissions. For other requests to PutObjectRetention, 9729 // only s3:PutObjectRetention permissions are required. 9730 // 9731 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9732 // with awserr.Error's Code and Message methods to get detailed information about 9733 // the error. 9734 // 9735 // See the AWS API reference guide for Amazon Simple Storage Service's 9736 // API operation PutObjectRetention for usage and error information. 9737 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention 9738 func (c *S3) PutObjectRetention(input *PutObjectRetentionInput) (*PutObjectRetentionOutput, error) { 9739 req, out := c.PutObjectRetentionRequest(input) 9740 return out, req.Send() 9741 } 9742 9743 // PutObjectRetentionWithContext is the same as PutObjectRetention with the addition of 9744 // the ability to pass a context and additional request options. 9745 // 9746 // See PutObjectRetention for details on how to use this API operation. 9747 // 9748 // The context must be non-nil and will be used for request cancellation. If 9749 // the context is nil a panic will occur. In the future the SDK may create 9750 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9751 // for more information on using Contexts. 9752 func (c *S3) PutObjectRetentionWithContext(ctx aws.Context, input *PutObjectRetentionInput, opts ...request.Option) (*PutObjectRetentionOutput, error) { 9753 req, out := c.PutObjectRetentionRequest(input) 9754 req.SetContext(ctx) 9755 req.ApplyOptions(opts...) 9756 return out, req.Send() 9757 } 9758 9759 const opPutObjectTagging = "PutObjectTagging" 9760 9761 // PutObjectTaggingRequest generates a "aws/request.Request" representing the 9762 // client's request for the PutObjectTagging operation. The "output" return 9763 // value will be populated with the request's response once the request completes 9764 // successfully. 9765 // 9766 // Use "Send" method on the returned Request to send the API call to the service. 9767 // the "output" return value is not valid until after Send returns without error. 9768 // 9769 // See PutObjectTagging for more information on using the PutObjectTagging 9770 // API call, and error handling. 9771 // 9772 // This method is useful when you want to inject custom logic or configuration 9773 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9774 // 9775 // 9776 // // Example sending a request using the PutObjectTaggingRequest method. 9777 // req, resp := client.PutObjectTaggingRequest(params) 9778 // 9779 // err := req.Send() 9780 // if err == nil { // resp is now filled 9781 // fmt.Println(resp) 9782 // } 9783 // 9784 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging 9785 func (c *S3) PutObjectTaggingRequest(input *PutObjectTaggingInput) (req *request.Request, output *PutObjectTaggingOutput) { 9786 op := &request.Operation{ 9787 Name: opPutObjectTagging, 9788 HTTPMethod: "PUT", 9789 HTTPPath: "/{Bucket}/{Key+}?tagging", 9790 } 9791 9792 if input == nil { 9793 input = &PutObjectTaggingInput{} 9794 } 9795 9796 output = &PutObjectTaggingOutput{} 9797 req = c.newRequest(op, input, output) 9798 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 9799 Name: "contentMd5Handler", 9800 Fn: checksum.AddBodyContentMD5Handler, 9801 }) 9802 return 9803 } 9804 9805 // PutObjectTagging API operation for Amazon Simple Storage Service. 9806 // 9807 // Sets the supplied tag-set to an object that already exists in a bucket. 9808 // 9809 // A tag is a key-value pair. You can associate tags with an object by sending 9810 // a PUT request against the tagging subresource that is associated with the 9811 // object. You can retrieve tags by sending a GET request. For more information, 9812 // see GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html). 9813 // 9814 // For tagging-related restrictions related to characters and encodings, see 9815 // Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html). 9816 // Note that Amazon S3 limits the maximum number of tags to 10 tags per object. 9817 // 9818 // To use this operation, you must have permission to perform the s3:PutObjectTagging 9819 // action. By default, the bucket owner has this permission and can grant this 9820 // permission to others. 9821 // 9822 // To put tags of any other version, use the versionId query parameter. You 9823 // also need permission for the s3:PutObjectVersionTagging action. 9824 // 9825 // For information about the Amazon S3 object tagging feature, see Object Tagging 9826 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). 9827 // 9828 // Special Errors 9829 // 9830 // * Code: InvalidTagError Cause: The tag provided was not a valid tag. This 9831 // error can occur if the tag did not pass input validation. For more information, 9832 // see Object Tagging (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). 9833 // 9834 // * Code: MalformedXMLError Cause: The XML provided does not match the schema. 9835 // 9836 // * Code: OperationAbortedError Cause: A conflicting conditional action 9837 // is currently in progress against this resource. Please try again. 9838 // 9839 // * Code: InternalError Cause: The service was unable to apply the provided 9840 // tag to the object. 9841 // 9842 // Related Resources 9843 // 9844 // * GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) 9845 // 9846 // * DeleteObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html) 9847 // 9848 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9849 // with awserr.Error's Code and Message methods to get detailed information about 9850 // the error. 9851 // 9852 // See the AWS API reference guide for Amazon Simple Storage Service's 9853 // API operation PutObjectTagging for usage and error information. 9854 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTagging 9855 func (c *S3) PutObjectTagging(input *PutObjectTaggingInput) (*PutObjectTaggingOutput, error) { 9856 req, out := c.PutObjectTaggingRequest(input) 9857 return out, req.Send() 9858 } 9859 9860 // PutObjectTaggingWithContext is the same as PutObjectTagging with the addition of 9861 // the ability to pass a context and additional request options. 9862 // 9863 // See PutObjectTagging for details on how to use this API operation. 9864 // 9865 // The context must be non-nil and will be used for request cancellation. If 9866 // the context is nil a panic will occur. In the future the SDK may create 9867 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9868 // for more information on using Contexts. 9869 func (c *S3) PutObjectTaggingWithContext(ctx aws.Context, input *PutObjectTaggingInput, opts ...request.Option) (*PutObjectTaggingOutput, error) { 9870 req, out := c.PutObjectTaggingRequest(input) 9871 req.SetContext(ctx) 9872 req.ApplyOptions(opts...) 9873 return out, req.Send() 9874 } 9875 9876 const opPutPublicAccessBlock = "PutPublicAccessBlock" 9877 9878 // PutPublicAccessBlockRequest generates a "aws/request.Request" representing the 9879 // client's request for the PutPublicAccessBlock operation. The "output" return 9880 // value will be populated with the request's response once the request completes 9881 // successfully. 9882 // 9883 // Use "Send" method on the returned Request to send the API call to the service. 9884 // the "output" return value is not valid until after Send returns without error. 9885 // 9886 // See PutPublicAccessBlock for more information on using the PutPublicAccessBlock 9887 // API call, and error handling. 9888 // 9889 // This method is useful when you want to inject custom logic or configuration 9890 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9891 // 9892 // 9893 // // Example sending a request using the PutPublicAccessBlockRequest method. 9894 // req, resp := client.PutPublicAccessBlockRequest(params) 9895 // 9896 // err := req.Send() 9897 // if err == nil { // resp is now filled 9898 // fmt.Println(resp) 9899 // } 9900 // 9901 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock 9902 func (c *S3) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) { 9903 op := &request.Operation{ 9904 Name: opPutPublicAccessBlock, 9905 HTTPMethod: "PUT", 9906 HTTPPath: "/{Bucket}?publicAccessBlock", 9907 } 9908 9909 if input == nil { 9910 input = &PutPublicAccessBlockInput{} 9911 } 9912 9913 output = &PutPublicAccessBlockOutput{} 9914 req = c.newRequest(op, input, output) 9915 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 9916 req.Handlers.Build.PushBackNamed(request.NamedHandler{ 9917 Name: "contentMd5Handler", 9918 Fn: checksum.AddBodyContentMD5Handler, 9919 }) 9920 return 9921 } 9922 9923 // PutPublicAccessBlock API operation for Amazon Simple Storage Service. 9924 // 9925 // Creates or modifies the PublicAccessBlock configuration for an Amazon S3 9926 // bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock 9927 // permission. For more information about Amazon S3 permissions, see Specifying 9928 // Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). 9929 // 9930 // When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket 9931 // or an object, it checks the PublicAccessBlock configuration for both the 9932 // bucket (or the bucket that contains the object) and the bucket owner's account. 9933 // If the PublicAccessBlock configurations are different between the bucket 9934 // and the account, Amazon S3 uses the most restrictive combination of the bucket-level 9935 // and account-level settings. 9936 // 9937 // For more information about when Amazon S3 considers a bucket or an object 9938 // public, see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status). 9939 // 9940 // Related Resources 9941 // 9942 // * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) 9943 // 9944 // * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) 9945 // 9946 // * GetBucketPolicyStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html) 9947 // 9948 // * Using Amazon S3 Block Public Access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) 9949 // 9950 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 9951 // with awserr.Error's Code and Message methods to get detailed information about 9952 // the error. 9953 // 9954 // See the AWS API reference guide for Amazon Simple Storage Service's 9955 // API operation PutPublicAccessBlock for usage and error information. 9956 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock 9957 func (c *S3) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) { 9958 req, out := c.PutPublicAccessBlockRequest(input) 9959 return out, req.Send() 9960 } 9961 9962 // PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of 9963 // the ability to pass a context and additional request options. 9964 // 9965 // See PutPublicAccessBlock for details on how to use this API operation. 9966 // 9967 // The context must be non-nil and will be used for request cancellation. If 9968 // the context is nil a panic will occur. In the future the SDK may create 9969 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 9970 // for more information on using Contexts. 9971 func (c *S3) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) { 9972 req, out := c.PutPublicAccessBlockRequest(input) 9973 req.SetContext(ctx) 9974 req.ApplyOptions(opts...) 9975 return out, req.Send() 9976 } 9977 9978 const opRestoreObject = "RestoreObject" 9979 9980 // RestoreObjectRequest generates a "aws/request.Request" representing the 9981 // client's request for the RestoreObject operation. The "output" return 9982 // value will be populated with the request's response once the request completes 9983 // successfully. 9984 // 9985 // Use "Send" method on the returned Request to send the API call to the service. 9986 // the "output" return value is not valid until after Send returns without error. 9987 // 9988 // See RestoreObject for more information on using the RestoreObject 9989 // API call, and error handling. 9990 // 9991 // This method is useful when you want to inject custom logic or configuration 9992 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 9993 // 9994 // 9995 // // Example sending a request using the RestoreObjectRequest method. 9996 // req, resp := client.RestoreObjectRequest(params) 9997 // 9998 // err := req.Send() 9999 // if err == nil { // resp is now filled 10000 // fmt.Println(resp) 10001 // } 10002 // 10003 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject 10004 func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Request, output *RestoreObjectOutput) { 10005 op := &request.Operation{ 10006 Name: opRestoreObject, 10007 HTTPMethod: "POST", 10008 HTTPPath: "/{Bucket}/{Key+}?restore", 10009 } 10010 10011 if input == nil { 10012 input = &RestoreObjectInput{} 10013 } 10014 10015 output = &RestoreObjectOutput{} 10016 req = c.newRequest(op, input, output) 10017 return 10018 } 10019 10020 // RestoreObject API operation for Amazon Simple Storage Service. 10021 // 10022 // Restores an archived copy of an object back into Amazon S3 10023 // 10024 // This action is not supported by Amazon S3 on Outposts. 10025 // 10026 // This action performs the following types of requests: 10027 // 10028 // * select - Perform a select query on an archived object 10029 // 10030 // * restore an archive - Restore an archived object 10031 // 10032 // To use this operation, you must have permissions to perform the s3:RestoreObject 10033 // action. The bucket owner has this permission by default and can grant this 10034 // permission to others. For more information about permissions, see Permissions 10035 // Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) 10036 // and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) 10037 // in the Amazon S3 User Guide. 10038 // 10039 // Querying Archives with Select Requests 10040 // 10041 // You use a select type of request to perform SQL queries on archived objects. 10042 // The archived objects that are being queried by the select request must be 10043 // formatted as uncompressed comma-separated values (CSV) files. You can run 10044 // queries and custom analytics on your archived data without having to restore 10045 // your data to a hotter Amazon S3 tier. For an overview about select requests, 10046 // see Querying Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html) 10047 // in the Amazon S3 User Guide. 10048 // 10049 // When making a select request, do the following: 10050 // 10051 // * Define an output location for the select query's output. This must be 10052 // an Amazon S3 bucket in the same Amazon Web Services Region as the bucket 10053 // that contains the archive object that is being queried. The Amazon Web 10054 // Services account that initiates the job must have permissions to write 10055 // to the S3 bucket. You can specify the storage class and encryption for 10056 // the output objects stored in the bucket. For more information about output, 10057 // see Querying Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/querying-glacier-archives.html) 10058 // in the Amazon S3 User Guide. For more information about the S3 structure 10059 // in the request body, see the following: PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 10060 // Managing Access with ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) 10061 // in the Amazon S3 User Guide Protecting Data Using Server-Side Encryption 10062 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) 10063 // in the Amazon S3 User Guide 10064 // 10065 // * Define the SQL expression for the SELECT type of restoration for your 10066 // query in the request body's SelectParameters structure. You can use expressions 10067 // like the following examples. The following expression returns all records 10068 // from the specified object. SELECT * FROM Object Assuming that you are 10069 // not using any headers for data stored in the object, you can specify columns 10070 // with positional headers. SELECT s._1, s._2 FROM Object s WHERE s._3 > 10071 // 100 If you have headers and you set the fileHeaderInfo in the CSV structure 10072 // in the request body to USE, you can specify headers in the query. (If 10073 // you set the fileHeaderInfo field to IGNORE, the first row is skipped for 10074 // the query.) You cannot mix ordinal positions with header column names. 10075 // SELECT s.Id, s.FirstName, s.SSN FROM S3Object s 10076 // 10077 // For more information about using SQL with S3 Glacier Select restore, see 10078 // SQL Reference for Amazon S3 Select and S3 Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) 10079 // in the Amazon S3 User Guide. 10080 // 10081 // When making a select request, you can also do the following: 10082 // 10083 // * To expedite your queries, specify the Expedited tier. For more information 10084 // about tiers, see "Restoring Archives," later in this topic. 10085 // 10086 // * Specify details about the data serialization format of both the input 10087 // object that is being queried and the serialization of the CSV-encoded 10088 // query results. 10089 // 10090 // The following are additional important facts about the select feature: 10091 // 10092 // * The output results are new Amazon S3 objects. Unlike archive retrievals, 10093 // they are stored until explicitly deleted-manually or through a lifecycle 10094 // policy. 10095 // 10096 // * You can issue more than one select request on the same Amazon S3 object. 10097 // Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate requests. 10098 // 10099 // * Amazon S3 accepts a select request even if the object has already been 10100 // restored. A select request doesn’t return error response 409. 10101 // 10102 // Restoring objects 10103 // 10104 // Objects that you archive to the S3 Glacier or S3 Glacier Deep Archive storage 10105 // class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep 10106 // Archive tiers are not accessible in real time. For objects in Archive Access 10107 // or Deep Archive Access tiers you must first initiate a restore request, and 10108 // then wait until the object is moved into the Frequent Access tier. For objects 10109 // in S3 Glacier or S3 Glacier Deep Archive storage classes you must first initiate 10110 // a restore request, and then wait until a temporary copy of the object is 10111 // available. To access an archived object, you must restore the object for 10112 // the duration (number of days) that you specify. 10113 // 10114 // To restore a specific object version, you can provide a version ID. If you 10115 // don't provide a version ID, Amazon S3 restores the current version. 10116 // 10117 // When restoring an archived object (or using a select request), you can specify 10118 // one of the following data access tier options in the Tier element of the 10119 // request body: 10120 // 10121 // * Expedited - Expedited retrievals allow you to quickly access your data 10122 // stored in the S3 Glacier storage class or S3 Intelligent-Tiering Archive 10123 // tier when occasional urgent requests for a subset of archives are required. 10124 // For all but the largest archived objects (250 MB+), data accessed using 10125 // Expedited retrievals is typically made available within 1–5 minutes. 10126 // Provisioned capacity ensures that retrieval capacity for Expedited retrievals 10127 // is available when you need it. Expedited retrievals and provisioned capacity 10128 // are not available for objects stored in the S3 Glacier Deep Archive storage 10129 // class or S3 Intelligent-Tiering Deep Archive tier. 10130 // 10131 // * Standard - Standard retrievals allow you to access any of your archived 10132 // objects within several hours. This is the default option for retrieval 10133 // requests that do not specify the retrieval option. Standard retrievals 10134 // typically finish within 3–5 hours for objects stored in the S3 Glacier 10135 // storage class or S3 Intelligent-Tiering Archive tier. They typically finish 10136 // within 12 hours for objects stored in the S3 Glacier Deep Archive storage 10137 // class or S3 Intelligent-Tiering Deep Archive tier. Standard retrievals 10138 // are free for objects stored in S3 Intelligent-Tiering. 10139 // 10140 // * Bulk - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, 10141 // enabling you to retrieve large amounts, even petabytes, of data inexpensively. 10142 // Bulk retrievals typically finish within 5–12 hours for objects stored 10143 // in the S3 Glacier storage class or S3 Intelligent-Tiering Archive tier. 10144 // They typically finish within 48 hours for objects stored in the S3 Glacier 10145 // Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. 10146 // Bulk retrievals are free for objects stored in S3 Intelligent-Tiering. 10147 // 10148 // For more information about archive retrieval options and provisioned capacity 10149 // for Expedited data access, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) 10150 // in the Amazon S3 User Guide. 10151 // 10152 // You can use Amazon S3 restore speed upgrade to change the restore speed to 10153 // a faster speed while it is in progress. For more information, see Upgrading 10154 // the speed of an in-progress restore (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html) 10155 // in the Amazon S3 User Guide. 10156 // 10157 // To get the status of object restoration, you can send a HEAD request. Operations 10158 // return the x-amz-restore header, which provides information about the restoration 10159 // status, in the response. You can use Amazon S3 event notifications to notify 10160 // you when a restore is initiated or completed. For more information, see Configuring 10161 // Amazon S3 Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 10162 // in the Amazon S3 User Guide. 10163 // 10164 // After restoring an archived object, you can update the restoration period 10165 // by reissuing the request with a new period. Amazon S3 updates the restoration 10166 // period relative to the current time and charges only for the request-there 10167 // are no data transfer charges. You cannot update the restoration period when 10168 // Amazon S3 is actively processing your current restore request for the object. 10169 // 10170 // If your bucket has a lifecycle configuration with a rule that includes an 10171 // expiration action, the object expiration overrides the life span that you 10172 // specify in a restore request. For example, if you restore an object copy 10173 // for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes 10174 // the object in 3 days. For more information about lifecycle configuration, 10175 // see PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) 10176 // and Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) 10177 // in Amazon S3 User Guide. 10178 // 10179 // Responses 10180 // 10181 // A successful action returns either the 200 OK or 202 Accepted status code. 10182 // 10183 // * If the object is not previously restored, then Amazon S3 returns 202 10184 // Accepted in the response. 10185 // 10186 // * If the object is previously restored, Amazon S3 returns 200 OK in the 10187 // response. 10188 // 10189 // Special Errors 10190 // 10191 // * Code: RestoreAlreadyInProgress Cause: Object restore is already in progress. 10192 // (This error does not apply to SELECT type requests.) HTTP Status Code: 10193 // 409 Conflict SOAP Fault Code Prefix: Client 10194 // 10195 // * Code: GlacierExpeditedRetrievalNotAvailable Cause: expedited retrievals 10196 // are currently not available. Try again later. (Returned if there is insufficient 10197 // capacity to process the Expedited request. This error applies only to 10198 // Expedited retrievals and not to S3 Standard or Bulk retrievals.) HTTP 10199 // Status Code: 503 SOAP Fault Code Prefix: N/A 10200 // 10201 // Related Resources 10202 // 10203 // * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) 10204 // 10205 // * GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html) 10206 // 10207 // * SQL Reference for Amazon S3 Select and S3 Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) 10208 // in the Amazon S3 User Guide 10209 // 10210 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 10211 // with awserr.Error's Code and Message methods to get detailed information about 10212 // the error. 10213 // 10214 // See the AWS API reference guide for Amazon Simple Storage Service's 10215 // API operation RestoreObject for usage and error information. 10216 // 10217 // Returned Error Codes: 10218 // * ErrCodeObjectAlreadyInActiveTierError "ObjectAlreadyInActiveTierError" 10219 // This action is not allowed against this storage tier. 10220 // 10221 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObject 10222 func (c *S3) RestoreObject(input *RestoreObjectInput) (*RestoreObjectOutput, error) { 10223 req, out := c.RestoreObjectRequest(input) 10224 return out, req.Send() 10225 } 10226 10227 // RestoreObjectWithContext is the same as RestoreObject with the addition of 10228 // the ability to pass a context and additional request options. 10229 // 10230 // See RestoreObject for details on how to use this API operation. 10231 // 10232 // The context must be non-nil and will be used for request cancellation. If 10233 // the context is nil a panic will occur. In the future the SDK may create 10234 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 10235 // for more information on using Contexts. 10236 func (c *S3) RestoreObjectWithContext(ctx aws.Context, input *RestoreObjectInput, opts ...request.Option) (*RestoreObjectOutput, error) { 10237 req, out := c.RestoreObjectRequest(input) 10238 req.SetContext(ctx) 10239 req.ApplyOptions(opts...) 10240 return out, req.Send() 10241 } 10242 10243 const opSelectObjectContent = "SelectObjectContent" 10244 10245 // SelectObjectContentRequest generates a "aws/request.Request" representing the 10246 // client's request for the SelectObjectContent operation. The "output" return 10247 // value will be populated with the request's response once the request completes 10248 // successfully. 10249 // 10250 // Use "Send" method on the returned Request to send the API call to the service. 10251 // the "output" return value is not valid until after Send returns without error. 10252 // 10253 // See SelectObjectContent for more information on using the SelectObjectContent 10254 // API call, and error handling. 10255 // 10256 // This method is useful when you want to inject custom logic or configuration 10257 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 10258 // 10259 // 10260 // // Example sending a request using the SelectObjectContentRequest method. 10261 // req, resp := client.SelectObjectContentRequest(params) 10262 // 10263 // err := req.Send() 10264 // if err == nil { // resp is now filled 10265 // fmt.Println(resp) 10266 // } 10267 // 10268 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent 10269 func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *request.Request, output *SelectObjectContentOutput) { 10270 op := &request.Operation{ 10271 Name: opSelectObjectContent, 10272 HTTPMethod: "POST", 10273 HTTPPath: "/{Bucket}/{Key+}?select&select-type=2", 10274 } 10275 10276 if input == nil { 10277 input = &SelectObjectContentInput{} 10278 } 10279 10280 output = &SelectObjectContentOutput{} 10281 req = c.newRequest(op, input, output) 10282 10283 es := NewSelectObjectContentEventStream() 10284 req.Handlers.Unmarshal.PushBack(es.setStreamCloser) 10285 output.EventStream = es 10286 10287 req.Handlers.Send.Swap(client.LogHTTPResponseHandler.Name, client.LogHTTPResponseHeaderHandler) 10288 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, rest.UnmarshalHandler) 10289 req.Handlers.Unmarshal.PushBack(es.runOutputStream) 10290 req.Handlers.Unmarshal.PushBack(es.runOnStreamPartClose) 10291 return 10292 } 10293 10294 // SelectObjectContent API operation for Amazon Simple Storage Service. 10295 // 10296 // This action filters the contents of an Amazon S3 object based on a simple 10297 // structured query language (SQL) statement. In the request, along with the 10298 // SQL expression, you must also specify a data serialization format (JSON, 10299 // CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse 10300 // object data into records, and returns only records that match the specified 10301 // SQL expression. You must also specify the data serialization format for the 10302 // response. 10303 // 10304 // This action is not supported by Amazon S3 on Outposts. 10305 // 10306 // For more information about Amazon S3 Select, see Selecting Content from Objects 10307 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html) 10308 // in the Amazon S3 User Guide. 10309 // 10310 // For more information about using SQL with Amazon S3 Select, see SQL Reference 10311 // for Amazon S3 Select and S3 Glacier Select (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference.html) 10312 // in the Amazon S3 User Guide. 10313 // 10314 // Permissions 10315 // 10316 // You must have s3:GetObject permission for this operation. Amazon S3 Select 10317 // does not support anonymous access. For more information about permissions, 10318 // see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) 10319 // in the Amazon S3 User Guide. 10320 // 10321 // Object Data Formats 10322 // 10323 // You can use Amazon S3 Select to query objects that have the following format 10324 // properties: 10325 // 10326 // * CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format. 10327 // 10328 // * UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports. 10329 // 10330 // * GZIP or BZIP2 - CSV and JSON files can be compressed using GZIP or BZIP2. 10331 // GZIP and BZIP2 are the only compression formats that Amazon S3 Select 10332 // supports for CSV and JSON files. Amazon S3 Select supports columnar compression 10333 // for Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object 10334 // compression for Parquet objects. 10335 // 10336 // * Server-side encryption - Amazon S3 Select supports querying objects 10337 // that are protected with server-side encryption. For objects that are encrypted 10338 // with customer-provided encryption keys (SSE-C), you must use HTTPS, and 10339 // you must use the headers that are documented in the GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html). 10340 // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided 10341 // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) 10342 // in the Amazon S3 User Guide. For objects that are encrypted with Amazon 10343 // S3 managed encryption keys (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), 10344 // server-side encryption is handled transparently, so you don't need to 10345 // specify anything. For more information about server-side encryption, including 10346 // SSE-S3 and SSE-KMS, see Protecting Data Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) 10347 // in the Amazon S3 User Guide. 10348 // 10349 // Working with the Response Body 10350 // 10351 // Given the response size is unknown, Amazon S3 Select streams the response 10352 // as a series of messages and includes a Transfer-Encoding header with chunked 10353 // as its value in the response. For more information, see Appendix: SelectObjectContent 10354 // Response (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html). 10355 // 10356 // GetObject Support 10357 // 10358 // The SelectObjectContent action does not support the following GetObject functionality. 10359 // For more information, see GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html). 10360 // 10361 // * Range: Although you can specify a scan range for an Amazon S3 Select 10362 // request (see SelectObjectContentRequest - ScanRange (https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange) 10363 // in the request parameters), you cannot specify the range of bytes of an 10364 // object to return. 10365 // 10366 // * GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot 10367 // specify the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY storage classes. 10368 // For more information, about storage classes see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#storage-class-intro) 10369 // in the Amazon S3 User Guide. 10370 // 10371 // Special Errors 10372 // 10373 // For a list of special errors for this operation, see List of SELECT Object 10374 // Content Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList) 10375 // 10376 // Related Resources 10377 // 10378 // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 10379 // 10380 // * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) 10381 // 10382 // * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) 10383 // 10384 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 10385 // with awserr.Error's Code and Message methods to get detailed information about 10386 // the error. 10387 // 10388 // See the AWS API reference guide for Amazon Simple Storage Service's 10389 // API operation SelectObjectContent for usage and error information. 10390 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent 10391 func (c *S3) SelectObjectContent(input *SelectObjectContentInput) (*SelectObjectContentOutput, error) { 10392 req, out := c.SelectObjectContentRequest(input) 10393 return out, req.Send() 10394 } 10395 10396 // SelectObjectContentWithContext is the same as SelectObjectContent with the addition of 10397 // the ability to pass a context and additional request options. 10398 // 10399 // See SelectObjectContent for details on how to use this API operation. 10400 // 10401 // The context must be non-nil and will be used for request cancellation. If 10402 // the context is nil a panic will occur. In the future the SDK may create 10403 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 10404 // for more information on using Contexts. 10405 func (c *S3) SelectObjectContentWithContext(ctx aws.Context, input *SelectObjectContentInput, opts ...request.Option) (*SelectObjectContentOutput, error) { 10406 req, out := c.SelectObjectContentRequest(input) 10407 req.SetContext(ctx) 10408 req.ApplyOptions(opts...) 10409 return out, req.Send() 10410 } 10411 10412 var _ awserr.Error 10413 10414 // SelectObjectContentEventStream provides the event stream handling for the SelectObjectContent. 10415 // 10416 // For testing and mocking the event stream this type should be initialized via 10417 // the NewSelectObjectContentEventStream constructor function. Using the functional options 10418 // to pass in nested mock behavior. 10419 type SelectObjectContentEventStream struct { 10420 10421 // Reader is the EventStream reader for the SelectObjectContentEventStream 10422 // events. This value is automatically set by the SDK when the API call is made 10423 // Use this member when unit testing your code with the SDK to mock out the 10424 // EventStream Reader. 10425 // 10426 // Must not be nil. 10427 Reader SelectObjectContentEventStreamReader 10428 10429 outputReader io.ReadCloser 10430 10431 // StreamCloser is the io.Closer for the EventStream connection. For HTTP 10432 // EventStream this is the response Body. The stream will be closed when 10433 // the Close method of the EventStream is called. 10434 StreamCloser io.Closer 10435 10436 done chan struct{} 10437 closeOnce sync.Once 10438 err *eventstreamapi.OnceError 10439 } 10440 10441 // NewSelectObjectContentEventStream initializes an SelectObjectContentEventStream. 10442 // This function should only be used for testing and mocking the SelectObjectContentEventStream 10443 // stream within your application. 10444 // 10445 // The Reader member must be set before reading events from the stream. 10446 // 10447 // The StreamCloser member should be set to the underlying io.Closer, 10448 // (e.g. http.Response.Body), that will be closed when the stream Close method 10449 // is called. 10450 // 10451 // es := NewSelectObjectContentEventStream(func(o *SelectObjectContentEventStream{ 10452 // es.Reader = myMockStreamReader 10453 // es.StreamCloser = myMockStreamCloser 10454 // }) 10455 func NewSelectObjectContentEventStream(opts ...func(*SelectObjectContentEventStream)) *SelectObjectContentEventStream { 10456 es := &SelectObjectContentEventStream{ 10457 done: make(chan struct{}), 10458 err: eventstreamapi.NewOnceError(), 10459 } 10460 10461 for _, fn := range opts { 10462 fn(es) 10463 } 10464 10465 return es 10466 } 10467 10468 func (es *SelectObjectContentEventStream) setStreamCloser(r *request.Request) { 10469 es.StreamCloser = r.HTTPResponse.Body 10470 } 10471 10472 func (es *SelectObjectContentEventStream) runOnStreamPartClose(r *request.Request) { 10473 if es.done == nil { 10474 return 10475 } 10476 go es.waitStreamPartClose() 10477 10478 } 10479 10480 func (es *SelectObjectContentEventStream) waitStreamPartClose() { 10481 var outputErrCh <-chan struct{} 10482 if v, ok := es.Reader.(interface{ ErrorSet() <-chan struct{} }); ok { 10483 outputErrCh = v.ErrorSet() 10484 } 10485 var outputClosedCh <-chan struct{} 10486 if v, ok := es.Reader.(interface{ Closed() <-chan struct{} }); ok { 10487 outputClosedCh = v.Closed() 10488 } 10489 10490 select { 10491 case <-es.done: 10492 case <-outputErrCh: 10493 es.err.SetError(es.Reader.Err()) 10494 es.Close() 10495 case <-outputClosedCh: 10496 if err := es.Reader.Err(); err != nil { 10497 es.err.SetError(es.Reader.Err()) 10498 } 10499 es.Close() 10500 } 10501 } 10502 10503 // Events returns a channel to read events from. 10504 // 10505 // These events are: 10506 // 10507 // * ContinuationEvent 10508 // * EndEvent 10509 // * ProgressEvent 10510 // * RecordsEvent 10511 // * StatsEvent 10512 // * SelectObjectContentEventStreamUnknownEvent 10513 func (es *SelectObjectContentEventStream) Events() <-chan SelectObjectContentEventStreamEvent { 10514 return es.Reader.Events() 10515 } 10516 10517 func (es *SelectObjectContentEventStream) runOutputStream(r *request.Request) { 10518 var opts []func(*eventstream.Decoder) 10519 if r.Config.Logger != nil && r.Config.LogLevel.Matches(aws.LogDebugWithEventStreamBody) { 10520 opts = append(opts, eventstream.DecodeWithLogger(r.Config.Logger)) 10521 } 10522 10523 unmarshalerForEvent := unmarshalerForSelectObjectContentEventStreamEvent{ 10524 metadata: protocol.ResponseMetadata{ 10525 StatusCode: r.HTTPResponse.StatusCode, 10526 RequestID: r.RequestID, 10527 }, 10528 }.UnmarshalerForEventName 10529 10530 decoder := eventstream.NewDecoder(r.HTTPResponse.Body, opts...) 10531 eventReader := eventstreamapi.NewEventReader(decoder, 10532 protocol.HandlerPayloadUnmarshal{ 10533 Unmarshalers: r.Handlers.UnmarshalStream, 10534 }, 10535 unmarshalerForEvent, 10536 ) 10537 10538 es.outputReader = r.HTTPResponse.Body 10539 es.Reader = newReadSelectObjectContentEventStream(eventReader) 10540 } 10541 10542 // Close closes the stream. This will also cause the stream to be closed. 10543 // Close must be called when done using the stream API. Not calling Close 10544 // may result in resource leaks. 10545 // 10546 // You can use the closing of the Reader's Events channel to terminate your 10547 // application's read from the API's stream. 10548 // 10549 func (es *SelectObjectContentEventStream) Close() (err error) { 10550 es.closeOnce.Do(es.safeClose) 10551 return es.Err() 10552 } 10553 10554 func (es *SelectObjectContentEventStream) safeClose() { 10555 if es.done != nil { 10556 close(es.done) 10557 } 10558 10559 es.Reader.Close() 10560 if es.outputReader != nil { 10561 es.outputReader.Close() 10562 } 10563 10564 es.StreamCloser.Close() 10565 } 10566 10567 // Err returns any error that occurred while reading or writing EventStream 10568 // Events from the service API's response. Returns nil if there were no errors. 10569 func (es *SelectObjectContentEventStream) Err() error { 10570 if err := es.err.Err(); err != nil { 10571 return err 10572 } 10573 if err := es.Reader.Err(); err != nil { 10574 return err 10575 } 10576 10577 return nil 10578 } 10579 10580 const opUploadPart = "UploadPart" 10581 10582 // UploadPartRequest generates a "aws/request.Request" representing the 10583 // client's request for the UploadPart operation. The "output" return 10584 // value will be populated with the request's response once the request completes 10585 // successfully. 10586 // 10587 // Use "Send" method on the returned Request to send the API call to the service. 10588 // the "output" return value is not valid until after Send returns without error. 10589 // 10590 // See UploadPart for more information on using the UploadPart 10591 // API call, and error handling. 10592 // 10593 // This method is useful when you want to inject custom logic or configuration 10594 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 10595 // 10596 // 10597 // // Example sending a request using the UploadPartRequest method. 10598 // req, resp := client.UploadPartRequest(params) 10599 // 10600 // err := req.Send() 10601 // if err == nil { // resp is now filled 10602 // fmt.Println(resp) 10603 // } 10604 // 10605 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart 10606 func (c *S3) UploadPartRequest(input *UploadPartInput) (req *request.Request, output *UploadPartOutput) { 10607 op := &request.Operation{ 10608 Name: opUploadPart, 10609 HTTPMethod: "PUT", 10610 HTTPPath: "/{Bucket}/{Key+}", 10611 } 10612 10613 if input == nil { 10614 input = &UploadPartInput{} 10615 } 10616 10617 output = &UploadPartOutput{} 10618 req = c.newRequest(op, input, output) 10619 return 10620 } 10621 10622 // UploadPart API operation for Amazon Simple Storage Service. 10623 // 10624 // Uploads a part in a multipart upload. 10625 // 10626 // In this operation, you provide part data in your request. However, you have 10627 // an option to specify your existing Amazon S3 object as a data source for 10628 // the part you are uploading. To upload a part from an existing object, you 10629 // use the UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 10630 // operation. 10631 // 10632 // You must initiate a multipart upload (see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)) 10633 // before you can upload any part. In response to your initiate request, Amazon 10634 // S3 returns an upload ID, a unique identifier, that you must include in your 10635 // upload part request. 10636 // 10637 // Part numbers can be any number from 1 to 10,000, inclusive. A part number 10638 // uniquely identifies a part and also defines its position within the object 10639 // being created. If you upload a new part using the same part number that was 10640 // used with a previous part, the previously uploaded part is overwritten. Each 10641 // part must be at least 5 MB in size, except the last part. There is no size 10642 // limit on the last part of your multipart upload. 10643 // 10644 // To ensure that data is not corrupted when traversing the network, specify 10645 // the Content-MD5 header in the upload part request. Amazon S3 checks the part 10646 // data against the provided MD5 value. If they do not match, Amazon S3 returns 10647 // an error. 10648 // 10649 // If the upload request is signed with Signature Version 4, then Amazon Web 10650 // Services S3 uses the x-amz-content-sha256 header as a checksum instead of 10651 // Content-MD5. For more information see Authenticating Requests: Using the 10652 // Authorization Header (Amazon Web Services Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html). 10653 // 10654 // Note: After you initiate multipart upload and upload one or more parts, you 10655 // must either complete or abort multipart upload in order to stop getting charged 10656 // for storage of the uploaded parts. Only after you either complete or abort 10657 // multipart upload, Amazon S3 frees up the parts storage and stops charging 10658 // you for the parts storage. 10659 // 10660 // For more information on multipart uploads, go to Multipart Upload Overview 10661 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) in the 10662 // Amazon S3 User Guide . 10663 // 10664 // For information on the permissions required to use the multipart upload API, 10665 // go to Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) 10666 // in the Amazon S3 User Guide. 10667 // 10668 // You can optionally request server-side encryption where Amazon S3 encrypts 10669 // your data as it writes it to disks in its data centers and decrypts it for 10670 // you when you access it. You have the option of providing your own encryption 10671 // key, or you can use the Amazon Web Services managed encryption keys. If you 10672 // choose to provide your own encryption key, the request headers you provide 10673 // in the request must match the headers you used in the request to initiate 10674 // the upload by using CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). 10675 // For more information, go to Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) 10676 // in the Amazon S3 User Guide. 10677 // 10678 // Server-side encryption is supported by the S3 Multipart Upload actions. Unless 10679 // you are using a customer-provided encryption key, you don't need to specify 10680 // the encryption parameters in each UploadPart request. Instead, you only need 10681 // to specify the server-side encryption parameters in the initial Initiate 10682 // Multipart request. For more information, see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). 10683 // 10684 // If you requested server-side encryption using a customer-provided encryption 10685 // key in your initiate multipart upload request, you must provide identical 10686 // encryption information in each part upload using the following headers. 10687 // 10688 // * x-amz-server-side-encryption-customer-algorithm 10689 // 10690 // * x-amz-server-side-encryption-customer-key 10691 // 10692 // * x-amz-server-side-encryption-customer-key-MD5 10693 // 10694 // Special Errors 10695 // 10696 // * Code: NoSuchUpload Cause: The specified multipart upload does not exist. 10697 // The upload ID might be invalid, or the multipart upload might have been 10698 // aborted or completed. HTTP Status Code: 404 Not Found SOAP Fault Code 10699 // Prefix: Client 10700 // 10701 // Related Resources 10702 // 10703 // * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 10704 // 10705 // * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 10706 // 10707 // * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) 10708 // 10709 // * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) 10710 // 10711 // * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) 10712 // 10713 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 10714 // with awserr.Error's Code and Message methods to get detailed information about 10715 // the error. 10716 // 10717 // See the AWS API reference guide for Amazon Simple Storage Service's 10718 // API operation UploadPart for usage and error information. 10719 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPart 10720 func (c *S3) UploadPart(input *UploadPartInput) (*UploadPartOutput, error) { 10721 req, out := c.UploadPartRequest(input) 10722 return out, req.Send() 10723 } 10724 10725 // UploadPartWithContext is the same as UploadPart with the addition of 10726 // the ability to pass a context and additional request options. 10727 // 10728 // See UploadPart for details on how to use this API operation. 10729 // 10730 // The context must be non-nil and will be used for request cancellation. If 10731 // the context is nil a panic will occur. In the future the SDK may create 10732 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 10733 // for more information on using Contexts. 10734 func (c *S3) UploadPartWithContext(ctx aws.Context, input *UploadPartInput, opts ...request.Option) (*UploadPartOutput, error) { 10735 req, out := c.UploadPartRequest(input) 10736 req.SetContext(ctx) 10737 req.ApplyOptions(opts...) 10738 return out, req.Send() 10739 } 10740 10741 const opUploadPartCopy = "UploadPartCopy" 10742 10743 // UploadPartCopyRequest generates a "aws/request.Request" representing the 10744 // client's request for the UploadPartCopy operation. The "output" return 10745 // value will be populated with the request's response once the request completes 10746 // successfully. 10747 // 10748 // Use "Send" method on the returned Request to send the API call to the service. 10749 // the "output" return value is not valid until after Send returns without error. 10750 // 10751 // See UploadPartCopy for more information on using the UploadPartCopy 10752 // API call, and error handling. 10753 // 10754 // This method is useful when you want to inject custom logic or configuration 10755 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 10756 // 10757 // 10758 // // Example sending a request using the UploadPartCopyRequest method. 10759 // req, resp := client.UploadPartCopyRequest(params) 10760 // 10761 // err := req.Send() 10762 // if err == nil { // resp is now filled 10763 // fmt.Println(resp) 10764 // } 10765 // 10766 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy 10767 func (c *S3) UploadPartCopyRequest(input *UploadPartCopyInput) (req *request.Request, output *UploadPartCopyOutput) { 10768 op := &request.Operation{ 10769 Name: opUploadPartCopy, 10770 HTTPMethod: "PUT", 10771 HTTPPath: "/{Bucket}/{Key+}", 10772 } 10773 10774 if input == nil { 10775 input = &UploadPartCopyInput{} 10776 } 10777 10778 output = &UploadPartCopyOutput{} 10779 req = c.newRequest(op, input, output) 10780 return 10781 } 10782 10783 // UploadPartCopy API operation for Amazon Simple Storage Service. 10784 // 10785 // Uploads a part by copying data from an existing object as data source. You 10786 // specify the data source by adding the request header x-amz-copy-source in 10787 // your request and a byte range by adding the request header x-amz-copy-source-range 10788 // in your request. 10789 // 10790 // The minimum allowable part size for a multipart upload is 5 MB. For more 10791 // information about multipart upload limits, go to Quick Facts (https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html) 10792 // in the Amazon S3 User Guide. 10793 // 10794 // Instead of using an existing object as part data, you might use the UploadPart 10795 // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) action 10796 // and provide data in your request. 10797 // 10798 // You must initiate a multipart upload before you can upload any part. In response 10799 // to your initiate request. Amazon S3 returns a unique identifier, the upload 10800 // ID, that you must include in your upload part request. 10801 // 10802 // For more information about using the UploadPartCopy operation, see the following: 10803 // 10804 // * For conceptual information about multipart uploads, see Uploading Objects 10805 // Using Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) 10806 // in the Amazon S3 User Guide. 10807 // 10808 // * For information about permissions required to use the multipart upload 10809 // API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) 10810 // in the Amazon S3 User Guide. 10811 // 10812 // * For information about copying objects using a single atomic action vs. 10813 // the multipart upload, see Operations on Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) 10814 // in the Amazon S3 User Guide. 10815 // 10816 // * For information about using server-side encryption with customer-provided 10817 // encryption keys with the UploadPartCopy operation, see CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 10818 // and UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html). 10819 // 10820 // Note the following additional considerations about the request headers x-amz-copy-source-if-match, 10821 // x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and 10822 // x-amz-copy-source-if-modified-since: 10823 // 10824 // * Consideration 1 - If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since 10825 // headers are present in the request as follows: x-amz-copy-source-if-match 10826 // condition evaluates to true, and; x-amz-copy-source-if-unmodified-since 10827 // condition evaluates to false; Amazon S3 returns 200 OK and copies the 10828 // data. 10829 // 10830 // * Consideration 2 - If both of the x-amz-copy-source-if-none-match and 10831 // x-amz-copy-source-if-modified-since headers are present in the request 10832 // as follows: x-amz-copy-source-if-none-match condition evaluates to false, 10833 // and; x-amz-copy-source-if-modified-since condition evaluates to true; 10834 // Amazon S3 returns 412 Precondition Failed response code. 10835 // 10836 // Versioning 10837 // 10838 // If your bucket has versioning enabled, you could have multiple versions of 10839 // the same object. By default, x-amz-copy-source identifies the current version 10840 // of the object to copy. If the current version is a delete marker and you 10841 // don't specify a versionId in the x-amz-copy-source, Amazon S3 returns a 404 10842 // error, because the object does not exist. If you specify versionId in the 10843 // x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns 10844 // an HTTP 400 error, because you are not allowed to specify a delete marker 10845 // as a version for the x-amz-copy-source. 10846 // 10847 // You can optionally specify a specific version of the source object to copy 10848 // by adding the versionId subresource as shown in the following example: 10849 // 10850 // x-amz-copy-source: /bucket/object?versionId=version id 10851 // 10852 // Special Errors 10853 // 10854 // * Code: NoSuchUpload Cause: The specified multipart upload does not exist. 10855 // The upload ID might be invalid, or the multipart upload might have been 10856 // aborted or completed. HTTP Status Code: 404 Not Found 10857 // 10858 // * Code: InvalidRequest Cause: The specified copy source is not supported 10859 // as a byte-range copy source. HTTP Status Code: 400 Bad Request 10860 // 10861 // Related Resources 10862 // 10863 // * CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 10864 // 10865 // * UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 10866 // 10867 // * CompleteMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 10868 // 10869 // * AbortMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) 10870 // 10871 // * ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) 10872 // 10873 // * ListMultipartUploads (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html) 10874 // 10875 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 10876 // with awserr.Error's Code and Message methods to get detailed information about 10877 // the error. 10878 // 10879 // See the AWS API reference guide for Amazon Simple Storage Service's 10880 // API operation UploadPartCopy for usage and error information. 10881 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopy 10882 func (c *S3) UploadPartCopy(input *UploadPartCopyInput) (*UploadPartCopyOutput, error) { 10883 req, out := c.UploadPartCopyRequest(input) 10884 return out, req.Send() 10885 } 10886 10887 // UploadPartCopyWithContext is the same as UploadPartCopy with the addition of 10888 // the ability to pass a context and additional request options. 10889 // 10890 // See UploadPartCopy for details on how to use this API operation. 10891 // 10892 // The context must be non-nil and will be used for request cancellation. If 10893 // the context is nil a panic will occur. In the future the SDK may create 10894 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 10895 // for more information on using Contexts. 10896 func (c *S3) UploadPartCopyWithContext(ctx aws.Context, input *UploadPartCopyInput, opts ...request.Option) (*UploadPartCopyOutput, error) { 10897 req, out := c.UploadPartCopyRequest(input) 10898 req.SetContext(ctx) 10899 req.ApplyOptions(opts...) 10900 return out, req.Send() 10901 } 10902 10903 const opWriteGetObjectResponse = "WriteGetObjectResponse" 10904 10905 // WriteGetObjectResponseRequest generates a "aws/request.Request" representing the 10906 // client's request for the WriteGetObjectResponse operation. The "output" return 10907 // value will be populated with the request's response once the request completes 10908 // successfully. 10909 // 10910 // Use "Send" method on the returned Request to send the API call to the service. 10911 // the "output" return value is not valid until after Send returns without error. 10912 // 10913 // See WriteGetObjectResponse for more information on using the WriteGetObjectResponse 10914 // API call, and error handling. 10915 // 10916 // This method is useful when you want to inject custom logic or configuration 10917 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 10918 // 10919 // 10920 // // Example sending a request using the WriteGetObjectResponseRequest method. 10921 // req, resp := client.WriteGetObjectResponseRequest(params) 10922 // 10923 // err := req.Send() 10924 // if err == nil { // resp is now filled 10925 // fmt.Println(resp) 10926 // } 10927 // 10928 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse 10929 func (c *S3) WriteGetObjectResponseRequest(input *WriteGetObjectResponseInput) (req *request.Request, output *WriteGetObjectResponseOutput) { 10930 op := &request.Operation{ 10931 Name: opWriteGetObjectResponse, 10932 HTTPMethod: "POST", 10933 HTTPPath: "/WriteGetObjectResponse", 10934 } 10935 10936 if input == nil { 10937 input = &WriteGetObjectResponseInput{} 10938 } 10939 10940 output = &WriteGetObjectResponseOutput{} 10941 req = c.newRequest(op, input, output) 10942 req.Handlers.Sign.Remove(v4.SignRequestHandler) 10943 handler := v4.BuildNamedHandler("v4.CustomSignerHandler", v4.WithUnsignedPayload) 10944 req.Handlers.Sign.PushFrontNamed(handler) 10945 req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 10946 req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{RequestRoute}.", input.hostLabels)) 10947 req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) 10948 return 10949 } 10950 10951 // WriteGetObjectResponse API operation for Amazon Simple Storage Service. 10952 // 10953 // Passes transformed objects to a GetObject operation when using Object Lambda 10954 // access points. For information about Object Lambda access points, see Transforming 10955 // objects with Object Lambda access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html) 10956 // in the Amazon S3 User Guide. 10957 // 10958 // This operation supports metadata that can be returned by GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), 10959 // in addition to RequestRoute, RequestToken, StatusCode, ErrorCode, and ErrorMessage. 10960 // The GetObject response metadata is supported so that the WriteGetObjectResponse 10961 // caller, typically an Lambda function, can provide the same metadata when 10962 // it internally invokes GetObject. When WriteGetObjectResponse is called by 10963 // a customer-owned Lambda function, the metadata returned to the end user GetObject 10964 // call might differ from what Amazon S3 would normally return. 10965 // 10966 // You can include any number of metadata headers. When including a metadata 10967 // header, it should be prefaced with x-amz-meta. For example, x-amz-meta-my-custom-header: 10968 // MyCustomValue. The primary use case for this is to forward GetObject metadata. 10969 // 10970 // Amazon Web Services provides some prebuilt Lambda functions that you can 10971 // use with S3 Object Lambda to detect and redact personally identifiable information 10972 // (PII) and decompress S3 objects. These Lambda functions are available in 10973 // the Amazon Web Services Serverless Application Repository, and can be selected 10974 // through the Amazon Web Services Management Console when you create your Object 10975 // Lambda access point. 10976 // 10977 // Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, 10978 // a natural language processing (NLP) service using machine learning to find 10979 // insights and relationships in text. It automatically detects personally identifiable 10980 // information (PII) such as names, addresses, dates, credit card numbers, and 10981 // social security numbers from documents in your Amazon S3 bucket. 10982 // 10983 // Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a 10984 // natural language processing (NLP) service using machine learning to find 10985 // insights and relationships in text. It automatically redacts personally identifiable 10986 // information (PII) such as names, addresses, dates, credit card numbers, and 10987 // social security numbers from documents in your Amazon S3 bucket. 10988 // 10989 // Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, 10990 // is equipped to decompress objects stored in S3 in one of six compressed file 10991 // formats including bzip2, gzip, snappy, zlib, zstandard and ZIP. 10992 // 10993 // For information on how to view and use these functions, see Using Amazon 10994 // Web Services built Lambda functions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html) 10995 // in the Amazon S3 User Guide. 10996 // 10997 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 10998 // with awserr.Error's Code and Message methods to get detailed information about 10999 // the error. 11000 // 11001 // See the AWS API reference guide for Amazon Simple Storage Service's 11002 // API operation WriteGetObjectResponse for usage and error information. 11003 // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WriteGetObjectResponse 11004 func (c *S3) WriteGetObjectResponse(input *WriteGetObjectResponseInput) (*WriteGetObjectResponseOutput, error) { 11005 req, out := c.WriteGetObjectResponseRequest(input) 11006 return out, req.Send() 11007 } 11008 11009 // WriteGetObjectResponseWithContext is the same as WriteGetObjectResponse with the addition of 11010 // the ability to pass a context and additional request options. 11011 // 11012 // See WriteGetObjectResponse for details on how to use this API operation. 11013 // 11014 // The context must be non-nil and will be used for request cancellation. If 11015 // the context is nil a panic will occur. In the future the SDK may create 11016 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 11017 // for more information on using Contexts. 11018 func (c *S3) WriteGetObjectResponseWithContext(ctx aws.Context, input *WriteGetObjectResponseInput, opts ...request.Option) (*WriteGetObjectResponseOutput, error) { 11019 req, out := c.WriteGetObjectResponseRequest(input) 11020 req.SetContext(ctx) 11021 req.ApplyOptions(opts...) 11022 return out, req.Send() 11023 } 11024 11025 // Specifies the days since the initiation of an incomplete multipart upload 11026 // that Amazon S3 will wait before permanently removing all parts of the upload. 11027 // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket 11028 // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) 11029 // in the Amazon S3 User Guide. 11030 type AbortIncompleteMultipartUpload struct { 11031 _ struct{} `type:"structure"` 11032 11033 // Specifies the number of days after which Amazon S3 aborts an incomplete multipart 11034 // upload. 11035 DaysAfterInitiation *int64 `type:"integer"` 11036 } 11037 11038 // String returns the string representation. 11039 // 11040 // API parameter values that are decorated as "sensitive" in the API will not 11041 // be included in the string output. The member name will be present, but the 11042 // value will be replaced with "sensitive". 11043 func (s AbortIncompleteMultipartUpload) String() string { 11044 return awsutil.Prettify(s) 11045 } 11046 11047 // GoString returns the string representation. 11048 // 11049 // API parameter values that are decorated as "sensitive" in the API will not 11050 // be included in the string output. The member name will be present, but the 11051 // value will be replaced with "sensitive". 11052 func (s AbortIncompleteMultipartUpload) GoString() string { 11053 return s.String() 11054 } 11055 11056 // SetDaysAfterInitiation sets the DaysAfterInitiation field's value. 11057 func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload { 11058 s.DaysAfterInitiation = &v 11059 return s 11060 } 11061 11062 type AbortMultipartUploadInput struct { 11063 _ struct{} `locationName:"AbortMultipartUploadRequest" type:"structure"` 11064 11065 // The bucket name to which the upload was taking place. 11066 // 11067 // When using this action with an access point, you must direct requests to 11068 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 11069 // When using this action with an access point through the Amazon Web Services 11070 // SDKs, you provide the access point ARN in place of the bucket name. For more 11071 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 11072 // in the Amazon S3 User Guide. 11073 // 11074 // When using this action with Amazon S3 on Outposts, you must direct requests 11075 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 11076 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 11077 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 11078 // you provide the Outposts bucket ARN in place of the bucket name. For more 11079 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 11080 // in the Amazon S3 User Guide. 11081 // 11082 // Bucket is a required field 11083 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 11084 11085 // The account ID of the expected bucket owner. If the bucket is owned by a 11086 // different account, the request will fail with an HTTP 403 (Access Denied) 11087 // error. 11088 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 11089 11090 // Key of the object for which the multipart upload was initiated. 11091 // 11092 // Key is a required field 11093 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 11094 11095 // Confirms that the requester knows that they will be charged for the request. 11096 // Bucket owners need not specify this parameter in their requests. For information 11097 // about downloading objects from requester pays buckets, see Downloading Objects 11098 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 11099 // in the Amazon S3 User Guide. 11100 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 11101 11102 // Upload ID that identifies the multipart upload. 11103 // 11104 // UploadId is a required field 11105 UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"` 11106 } 11107 11108 // String returns the string representation. 11109 // 11110 // API parameter values that are decorated as "sensitive" in the API will not 11111 // be included in the string output. The member name will be present, but the 11112 // value will be replaced with "sensitive". 11113 func (s AbortMultipartUploadInput) String() string { 11114 return awsutil.Prettify(s) 11115 } 11116 11117 // GoString returns the string representation. 11118 // 11119 // API parameter values that are decorated as "sensitive" in the API will not 11120 // be included in the string output. The member name will be present, but the 11121 // value will be replaced with "sensitive". 11122 func (s AbortMultipartUploadInput) GoString() string { 11123 return s.String() 11124 } 11125 11126 // Validate inspects the fields of the type to determine if they are valid. 11127 func (s *AbortMultipartUploadInput) Validate() error { 11128 invalidParams := request.ErrInvalidParams{Context: "AbortMultipartUploadInput"} 11129 if s.Bucket == nil { 11130 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11131 } 11132 if s.Bucket != nil && len(*s.Bucket) < 1 { 11133 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 11134 } 11135 if s.Key == nil { 11136 invalidParams.Add(request.NewErrParamRequired("Key")) 11137 } 11138 if s.Key != nil && len(*s.Key) < 1 { 11139 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 11140 } 11141 if s.UploadId == nil { 11142 invalidParams.Add(request.NewErrParamRequired("UploadId")) 11143 } 11144 11145 if invalidParams.Len() > 0 { 11146 return invalidParams 11147 } 11148 return nil 11149 } 11150 11151 // SetBucket sets the Bucket field's value. 11152 func (s *AbortMultipartUploadInput) SetBucket(v string) *AbortMultipartUploadInput { 11153 s.Bucket = &v 11154 return s 11155 } 11156 11157 func (s *AbortMultipartUploadInput) getBucket() (v string) { 11158 if s.Bucket == nil { 11159 return v 11160 } 11161 return *s.Bucket 11162 } 11163 11164 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 11165 func (s *AbortMultipartUploadInput) SetExpectedBucketOwner(v string) *AbortMultipartUploadInput { 11166 s.ExpectedBucketOwner = &v 11167 return s 11168 } 11169 11170 // SetKey sets the Key field's value. 11171 func (s *AbortMultipartUploadInput) SetKey(v string) *AbortMultipartUploadInput { 11172 s.Key = &v 11173 return s 11174 } 11175 11176 // SetRequestPayer sets the RequestPayer field's value. 11177 func (s *AbortMultipartUploadInput) SetRequestPayer(v string) *AbortMultipartUploadInput { 11178 s.RequestPayer = &v 11179 return s 11180 } 11181 11182 // SetUploadId sets the UploadId field's value. 11183 func (s *AbortMultipartUploadInput) SetUploadId(v string) *AbortMultipartUploadInput { 11184 s.UploadId = &v 11185 return s 11186 } 11187 11188 func (s *AbortMultipartUploadInput) getEndpointARN() (arn.Resource, error) { 11189 if s.Bucket == nil { 11190 return nil, fmt.Errorf("member Bucket is nil") 11191 } 11192 return parseEndpointARN(*s.Bucket) 11193 } 11194 11195 func (s *AbortMultipartUploadInput) hasEndpointARN() bool { 11196 if s.Bucket == nil { 11197 return false 11198 } 11199 return arn.IsARN(*s.Bucket) 11200 } 11201 11202 // updateArnableField updates the value of the input field that 11203 // takes an ARN as an input. This method is useful to backfill 11204 // the parsed resource name from ARN into the input member. 11205 // It returns a pointer to a modified copy of input and an error. 11206 // Note that original input is not modified. 11207 func (s AbortMultipartUploadInput) updateArnableField(v string) (interface{}, error) { 11208 if s.Bucket == nil { 11209 return nil, fmt.Errorf("member Bucket is nil") 11210 } 11211 s.Bucket = aws.String(v) 11212 return &s, nil 11213 } 11214 11215 type AbortMultipartUploadOutput struct { 11216 _ struct{} `type:"structure"` 11217 11218 // If present, indicates that the requester was successfully charged for the 11219 // request. 11220 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 11221 } 11222 11223 // String returns the string representation. 11224 // 11225 // API parameter values that are decorated as "sensitive" in the API will not 11226 // be included in the string output. The member name will be present, but the 11227 // value will be replaced with "sensitive". 11228 func (s AbortMultipartUploadOutput) String() string { 11229 return awsutil.Prettify(s) 11230 } 11231 11232 // GoString returns the string representation. 11233 // 11234 // API parameter values that are decorated as "sensitive" in the API will not 11235 // be included in the string output. The member name will be present, but the 11236 // value will be replaced with "sensitive". 11237 func (s AbortMultipartUploadOutput) GoString() string { 11238 return s.String() 11239 } 11240 11241 // SetRequestCharged sets the RequestCharged field's value. 11242 func (s *AbortMultipartUploadOutput) SetRequestCharged(v string) *AbortMultipartUploadOutput { 11243 s.RequestCharged = &v 11244 return s 11245 } 11246 11247 // Configures the transfer acceleration state for an Amazon S3 bucket. For more 11248 // information, see Amazon S3 Transfer Acceleration (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) 11249 // in the Amazon S3 User Guide. 11250 type AccelerateConfiguration struct { 11251 _ struct{} `type:"structure"` 11252 11253 // Specifies the transfer acceleration status of the bucket. 11254 Status *string `type:"string" enum:"BucketAccelerateStatus"` 11255 } 11256 11257 // String returns the string representation. 11258 // 11259 // API parameter values that are decorated as "sensitive" in the API will not 11260 // be included in the string output. The member name will be present, but the 11261 // value will be replaced with "sensitive". 11262 func (s AccelerateConfiguration) String() string { 11263 return awsutil.Prettify(s) 11264 } 11265 11266 // GoString returns the string representation. 11267 // 11268 // API parameter values that are decorated as "sensitive" in the API will not 11269 // be included in the string output. The member name will be present, but the 11270 // value will be replaced with "sensitive". 11271 func (s AccelerateConfiguration) GoString() string { 11272 return s.String() 11273 } 11274 11275 // SetStatus sets the Status field's value. 11276 func (s *AccelerateConfiguration) SetStatus(v string) *AccelerateConfiguration { 11277 s.Status = &v 11278 return s 11279 } 11280 11281 // Contains the elements that set the ACL permissions for an object per grantee. 11282 type AccessControlPolicy struct { 11283 _ struct{} `type:"structure"` 11284 11285 // A list of grants. 11286 Grants []*Grant `locationName:"AccessControlList" locationNameList:"Grant" type:"list"` 11287 11288 // Container for the bucket owner's display name and ID. 11289 Owner *Owner `type:"structure"` 11290 } 11291 11292 // String returns the string representation. 11293 // 11294 // API parameter values that are decorated as "sensitive" in the API will not 11295 // be included in the string output. The member name will be present, but the 11296 // value will be replaced with "sensitive". 11297 func (s AccessControlPolicy) String() string { 11298 return awsutil.Prettify(s) 11299 } 11300 11301 // GoString returns the string representation. 11302 // 11303 // API parameter values that are decorated as "sensitive" in the API will not 11304 // be included in the string output. The member name will be present, but the 11305 // value will be replaced with "sensitive". 11306 func (s AccessControlPolicy) GoString() string { 11307 return s.String() 11308 } 11309 11310 // Validate inspects the fields of the type to determine if they are valid. 11311 func (s *AccessControlPolicy) Validate() error { 11312 invalidParams := request.ErrInvalidParams{Context: "AccessControlPolicy"} 11313 if s.Grants != nil { 11314 for i, v := range s.Grants { 11315 if v == nil { 11316 continue 11317 } 11318 if err := v.Validate(); err != nil { 11319 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Grants", i), err.(request.ErrInvalidParams)) 11320 } 11321 } 11322 } 11323 11324 if invalidParams.Len() > 0 { 11325 return invalidParams 11326 } 11327 return nil 11328 } 11329 11330 // SetGrants sets the Grants field's value. 11331 func (s *AccessControlPolicy) SetGrants(v []*Grant) *AccessControlPolicy { 11332 s.Grants = v 11333 return s 11334 } 11335 11336 // SetOwner sets the Owner field's value. 11337 func (s *AccessControlPolicy) SetOwner(v *Owner) *AccessControlPolicy { 11338 s.Owner = v 11339 return s 11340 } 11341 11342 // A container for information about access control for replicas. 11343 type AccessControlTranslation struct { 11344 _ struct{} `type:"structure"` 11345 11346 // Specifies the replica ownership. For default and valid values, see PUT bucket 11347 // replication (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) 11348 // in the Amazon S3 API Reference. 11349 // 11350 // Owner is a required field 11351 Owner *string `type:"string" required:"true" enum:"OwnerOverride"` 11352 } 11353 11354 // String returns the string representation. 11355 // 11356 // API parameter values that are decorated as "sensitive" in the API will not 11357 // be included in the string output. The member name will be present, but the 11358 // value will be replaced with "sensitive". 11359 func (s AccessControlTranslation) String() string { 11360 return awsutil.Prettify(s) 11361 } 11362 11363 // GoString returns the string representation. 11364 // 11365 // API parameter values that are decorated as "sensitive" in the API will not 11366 // be included in the string output. The member name will be present, but the 11367 // value will be replaced with "sensitive". 11368 func (s AccessControlTranslation) GoString() string { 11369 return s.String() 11370 } 11371 11372 // Validate inspects the fields of the type to determine if they are valid. 11373 func (s *AccessControlTranslation) Validate() error { 11374 invalidParams := request.ErrInvalidParams{Context: "AccessControlTranslation"} 11375 if s.Owner == nil { 11376 invalidParams.Add(request.NewErrParamRequired("Owner")) 11377 } 11378 11379 if invalidParams.Len() > 0 { 11380 return invalidParams 11381 } 11382 return nil 11383 } 11384 11385 // SetOwner sets the Owner field's value. 11386 func (s *AccessControlTranslation) SetOwner(v string) *AccessControlTranslation { 11387 s.Owner = &v 11388 return s 11389 } 11390 11391 // A conjunction (logical AND) of predicates, which is used in evaluating a 11392 // metrics filter. The operator must have at least two predicates in any combination, 11393 // and an object must match all of the predicates for the filter to apply. 11394 type AnalyticsAndOperator struct { 11395 _ struct{} `type:"structure"` 11396 11397 // The prefix to use when evaluating an AND predicate: The prefix that an object 11398 // must have to be included in the metrics results. 11399 Prefix *string `type:"string"` 11400 11401 // The list of tags to use when evaluating an AND predicate. 11402 Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` 11403 } 11404 11405 // String returns the string representation. 11406 // 11407 // API parameter values that are decorated as "sensitive" in the API will not 11408 // be included in the string output. The member name will be present, but the 11409 // value will be replaced with "sensitive". 11410 func (s AnalyticsAndOperator) String() string { 11411 return awsutil.Prettify(s) 11412 } 11413 11414 // GoString returns the string representation. 11415 // 11416 // API parameter values that are decorated as "sensitive" in the API will not 11417 // be included in the string output. The member name will be present, but the 11418 // value will be replaced with "sensitive". 11419 func (s AnalyticsAndOperator) GoString() string { 11420 return s.String() 11421 } 11422 11423 // Validate inspects the fields of the type to determine if they are valid. 11424 func (s *AnalyticsAndOperator) Validate() error { 11425 invalidParams := request.ErrInvalidParams{Context: "AnalyticsAndOperator"} 11426 if s.Tags != nil { 11427 for i, v := range s.Tags { 11428 if v == nil { 11429 continue 11430 } 11431 if err := v.Validate(); err != nil { 11432 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 11433 } 11434 } 11435 } 11436 11437 if invalidParams.Len() > 0 { 11438 return invalidParams 11439 } 11440 return nil 11441 } 11442 11443 // SetPrefix sets the Prefix field's value. 11444 func (s *AnalyticsAndOperator) SetPrefix(v string) *AnalyticsAndOperator { 11445 s.Prefix = &v 11446 return s 11447 } 11448 11449 // SetTags sets the Tags field's value. 11450 func (s *AnalyticsAndOperator) SetTags(v []*Tag) *AnalyticsAndOperator { 11451 s.Tags = v 11452 return s 11453 } 11454 11455 // Specifies the configuration and any analyses for the analytics filter of 11456 // an Amazon S3 bucket. 11457 type AnalyticsConfiguration struct { 11458 _ struct{} `type:"structure"` 11459 11460 // The filter used to describe a set of objects for analyses. A filter must 11461 // have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). 11462 // If no filter is provided, all objects will be considered in any analysis. 11463 Filter *AnalyticsFilter `type:"structure"` 11464 11465 // The ID that identifies the analytics configuration. 11466 // 11467 // Id is a required field 11468 Id *string `type:"string" required:"true"` 11469 11470 // Contains data related to access patterns to be collected and made available 11471 // to analyze the tradeoffs between different storage classes. 11472 // 11473 // StorageClassAnalysis is a required field 11474 StorageClassAnalysis *StorageClassAnalysis `type:"structure" required:"true"` 11475 } 11476 11477 // String returns the string representation. 11478 // 11479 // API parameter values that are decorated as "sensitive" in the API will not 11480 // be included in the string output. The member name will be present, but the 11481 // value will be replaced with "sensitive". 11482 func (s AnalyticsConfiguration) String() string { 11483 return awsutil.Prettify(s) 11484 } 11485 11486 // GoString returns the string representation. 11487 // 11488 // API parameter values that are decorated as "sensitive" in the API will not 11489 // be included in the string output. The member name will be present, but the 11490 // value will be replaced with "sensitive". 11491 func (s AnalyticsConfiguration) GoString() string { 11492 return s.String() 11493 } 11494 11495 // Validate inspects the fields of the type to determine if they are valid. 11496 func (s *AnalyticsConfiguration) Validate() error { 11497 invalidParams := request.ErrInvalidParams{Context: "AnalyticsConfiguration"} 11498 if s.Id == nil { 11499 invalidParams.Add(request.NewErrParamRequired("Id")) 11500 } 11501 if s.StorageClassAnalysis == nil { 11502 invalidParams.Add(request.NewErrParamRequired("StorageClassAnalysis")) 11503 } 11504 if s.Filter != nil { 11505 if err := s.Filter.Validate(); err != nil { 11506 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 11507 } 11508 } 11509 if s.StorageClassAnalysis != nil { 11510 if err := s.StorageClassAnalysis.Validate(); err != nil { 11511 invalidParams.AddNested("StorageClassAnalysis", err.(request.ErrInvalidParams)) 11512 } 11513 } 11514 11515 if invalidParams.Len() > 0 { 11516 return invalidParams 11517 } 11518 return nil 11519 } 11520 11521 // SetFilter sets the Filter field's value. 11522 func (s *AnalyticsConfiguration) SetFilter(v *AnalyticsFilter) *AnalyticsConfiguration { 11523 s.Filter = v 11524 return s 11525 } 11526 11527 // SetId sets the Id field's value. 11528 func (s *AnalyticsConfiguration) SetId(v string) *AnalyticsConfiguration { 11529 s.Id = &v 11530 return s 11531 } 11532 11533 // SetStorageClassAnalysis sets the StorageClassAnalysis field's value. 11534 func (s *AnalyticsConfiguration) SetStorageClassAnalysis(v *StorageClassAnalysis) *AnalyticsConfiguration { 11535 s.StorageClassAnalysis = v 11536 return s 11537 } 11538 11539 // Where to publish the analytics results. 11540 type AnalyticsExportDestination struct { 11541 _ struct{} `type:"structure"` 11542 11543 // A destination signifying output to an S3 bucket. 11544 // 11545 // S3BucketDestination is a required field 11546 S3BucketDestination *AnalyticsS3BucketDestination `type:"structure" required:"true"` 11547 } 11548 11549 // String returns the string representation. 11550 // 11551 // API parameter values that are decorated as "sensitive" in the API will not 11552 // be included in the string output. The member name will be present, but the 11553 // value will be replaced with "sensitive". 11554 func (s AnalyticsExportDestination) String() string { 11555 return awsutil.Prettify(s) 11556 } 11557 11558 // GoString returns the string representation. 11559 // 11560 // API parameter values that are decorated as "sensitive" in the API will not 11561 // be included in the string output. The member name will be present, but the 11562 // value will be replaced with "sensitive". 11563 func (s AnalyticsExportDestination) GoString() string { 11564 return s.String() 11565 } 11566 11567 // Validate inspects the fields of the type to determine if they are valid. 11568 func (s *AnalyticsExportDestination) Validate() error { 11569 invalidParams := request.ErrInvalidParams{Context: "AnalyticsExportDestination"} 11570 if s.S3BucketDestination == nil { 11571 invalidParams.Add(request.NewErrParamRequired("S3BucketDestination")) 11572 } 11573 if s.S3BucketDestination != nil { 11574 if err := s.S3BucketDestination.Validate(); err != nil { 11575 invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams)) 11576 } 11577 } 11578 11579 if invalidParams.Len() > 0 { 11580 return invalidParams 11581 } 11582 return nil 11583 } 11584 11585 // SetS3BucketDestination sets the S3BucketDestination field's value. 11586 func (s *AnalyticsExportDestination) SetS3BucketDestination(v *AnalyticsS3BucketDestination) *AnalyticsExportDestination { 11587 s.S3BucketDestination = v 11588 return s 11589 } 11590 11591 // The filter used to describe a set of objects for analyses. A filter must 11592 // have exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). 11593 // If no filter is provided, all objects will be considered in any analysis. 11594 type AnalyticsFilter struct { 11595 _ struct{} `type:"structure"` 11596 11597 // A conjunction (logical AND) of predicates, which is used in evaluating an 11598 // analytics filter. The operator must have at least two predicates. 11599 And *AnalyticsAndOperator `type:"structure"` 11600 11601 // The prefix to use when evaluating an analytics filter. 11602 Prefix *string `type:"string"` 11603 11604 // The tag to use when evaluating an analytics filter. 11605 Tag *Tag `type:"structure"` 11606 } 11607 11608 // String returns the string representation. 11609 // 11610 // API parameter values that are decorated as "sensitive" in the API will not 11611 // be included in the string output. The member name will be present, but the 11612 // value will be replaced with "sensitive". 11613 func (s AnalyticsFilter) String() string { 11614 return awsutil.Prettify(s) 11615 } 11616 11617 // GoString returns the string representation. 11618 // 11619 // API parameter values that are decorated as "sensitive" in the API will not 11620 // be included in the string output. The member name will be present, but the 11621 // value will be replaced with "sensitive". 11622 func (s AnalyticsFilter) GoString() string { 11623 return s.String() 11624 } 11625 11626 // Validate inspects the fields of the type to determine if they are valid. 11627 func (s *AnalyticsFilter) Validate() error { 11628 invalidParams := request.ErrInvalidParams{Context: "AnalyticsFilter"} 11629 if s.And != nil { 11630 if err := s.And.Validate(); err != nil { 11631 invalidParams.AddNested("And", err.(request.ErrInvalidParams)) 11632 } 11633 } 11634 if s.Tag != nil { 11635 if err := s.Tag.Validate(); err != nil { 11636 invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) 11637 } 11638 } 11639 11640 if invalidParams.Len() > 0 { 11641 return invalidParams 11642 } 11643 return nil 11644 } 11645 11646 // SetAnd sets the And field's value. 11647 func (s *AnalyticsFilter) SetAnd(v *AnalyticsAndOperator) *AnalyticsFilter { 11648 s.And = v 11649 return s 11650 } 11651 11652 // SetPrefix sets the Prefix field's value. 11653 func (s *AnalyticsFilter) SetPrefix(v string) *AnalyticsFilter { 11654 s.Prefix = &v 11655 return s 11656 } 11657 11658 // SetTag sets the Tag field's value. 11659 func (s *AnalyticsFilter) SetTag(v *Tag) *AnalyticsFilter { 11660 s.Tag = v 11661 return s 11662 } 11663 11664 // Contains information about where to publish the analytics results. 11665 type AnalyticsS3BucketDestination struct { 11666 _ struct{} `type:"structure"` 11667 11668 // The Amazon Resource Name (ARN) of the bucket to which data is exported. 11669 // 11670 // Bucket is a required field 11671 Bucket *string `type:"string" required:"true"` 11672 11673 // The account ID that owns the destination S3 bucket. If no account ID is provided, 11674 // the owner is not validated before exporting data. 11675 // 11676 // Although this value is optional, we strongly recommend that you set it to 11677 // help prevent problems if the destination bucket ownership changes. 11678 BucketAccountId *string `type:"string"` 11679 11680 // Specifies the file format used when exporting data to Amazon S3. 11681 // 11682 // Format is a required field 11683 Format *string `type:"string" required:"true" enum:"AnalyticsS3ExportFileFormat"` 11684 11685 // The prefix to use when exporting data. The prefix is prepended to all results. 11686 Prefix *string `type:"string"` 11687 } 11688 11689 // String returns the string representation. 11690 // 11691 // API parameter values that are decorated as "sensitive" in the API will not 11692 // be included in the string output. The member name will be present, but the 11693 // value will be replaced with "sensitive". 11694 func (s AnalyticsS3BucketDestination) String() string { 11695 return awsutil.Prettify(s) 11696 } 11697 11698 // GoString returns the string representation. 11699 // 11700 // API parameter values that are decorated as "sensitive" in the API will not 11701 // be included in the string output. The member name will be present, but the 11702 // value will be replaced with "sensitive". 11703 func (s AnalyticsS3BucketDestination) GoString() string { 11704 return s.String() 11705 } 11706 11707 // Validate inspects the fields of the type to determine if they are valid. 11708 func (s *AnalyticsS3BucketDestination) Validate() error { 11709 invalidParams := request.ErrInvalidParams{Context: "AnalyticsS3BucketDestination"} 11710 if s.Bucket == nil { 11711 invalidParams.Add(request.NewErrParamRequired("Bucket")) 11712 } 11713 if s.Format == nil { 11714 invalidParams.Add(request.NewErrParamRequired("Format")) 11715 } 11716 11717 if invalidParams.Len() > 0 { 11718 return invalidParams 11719 } 11720 return nil 11721 } 11722 11723 // SetBucket sets the Bucket field's value. 11724 func (s *AnalyticsS3BucketDestination) SetBucket(v string) *AnalyticsS3BucketDestination { 11725 s.Bucket = &v 11726 return s 11727 } 11728 11729 func (s *AnalyticsS3BucketDestination) getBucket() (v string) { 11730 if s.Bucket == nil { 11731 return v 11732 } 11733 return *s.Bucket 11734 } 11735 11736 // SetBucketAccountId sets the BucketAccountId field's value. 11737 func (s *AnalyticsS3BucketDestination) SetBucketAccountId(v string) *AnalyticsS3BucketDestination { 11738 s.BucketAccountId = &v 11739 return s 11740 } 11741 11742 // SetFormat sets the Format field's value. 11743 func (s *AnalyticsS3BucketDestination) SetFormat(v string) *AnalyticsS3BucketDestination { 11744 s.Format = &v 11745 return s 11746 } 11747 11748 // SetPrefix sets the Prefix field's value. 11749 func (s *AnalyticsS3BucketDestination) SetPrefix(v string) *AnalyticsS3BucketDestination { 11750 s.Prefix = &v 11751 return s 11752 } 11753 11754 // In terms of implementation, a Bucket is a resource. An Amazon S3 bucket name 11755 // is globally unique, and the namespace is shared by all Amazon Web Services 11756 // accounts. 11757 type Bucket struct { 11758 _ struct{} `type:"structure"` 11759 11760 // Date the bucket was created. This date can change when making changes to 11761 // your bucket, such as editing its bucket policy. 11762 CreationDate *time.Time `type:"timestamp"` 11763 11764 // The name of the bucket. 11765 Name *string `type:"string"` 11766 } 11767 11768 // String returns the string representation. 11769 // 11770 // API parameter values that are decorated as "sensitive" in the API will not 11771 // be included in the string output. The member name will be present, but the 11772 // value will be replaced with "sensitive". 11773 func (s Bucket) String() string { 11774 return awsutil.Prettify(s) 11775 } 11776 11777 // GoString returns the string representation. 11778 // 11779 // API parameter values that are decorated as "sensitive" in the API will not 11780 // be included in the string output. The member name will be present, but the 11781 // value will be replaced with "sensitive". 11782 func (s Bucket) GoString() string { 11783 return s.String() 11784 } 11785 11786 // SetCreationDate sets the CreationDate field's value. 11787 func (s *Bucket) SetCreationDate(v time.Time) *Bucket { 11788 s.CreationDate = &v 11789 return s 11790 } 11791 11792 // SetName sets the Name field's value. 11793 func (s *Bucket) SetName(v string) *Bucket { 11794 s.Name = &v 11795 return s 11796 } 11797 11798 // Specifies the lifecycle configuration for objects in an Amazon S3 bucket. 11799 // For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) 11800 // in the Amazon S3 User Guide. 11801 type BucketLifecycleConfiguration struct { 11802 _ struct{} `type:"structure"` 11803 11804 // A lifecycle rule for individual objects in an Amazon S3 bucket. 11805 // 11806 // Rules is a required field 11807 Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` 11808 } 11809 11810 // String returns the string representation. 11811 // 11812 // API parameter values that are decorated as "sensitive" in the API will not 11813 // be included in the string output. The member name will be present, but the 11814 // value will be replaced with "sensitive". 11815 func (s BucketLifecycleConfiguration) String() string { 11816 return awsutil.Prettify(s) 11817 } 11818 11819 // GoString returns the string representation. 11820 // 11821 // API parameter values that are decorated as "sensitive" in the API will not 11822 // be included in the string output. The member name will be present, but the 11823 // value will be replaced with "sensitive". 11824 func (s BucketLifecycleConfiguration) GoString() string { 11825 return s.String() 11826 } 11827 11828 // Validate inspects the fields of the type to determine if they are valid. 11829 func (s *BucketLifecycleConfiguration) Validate() error { 11830 invalidParams := request.ErrInvalidParams{Context: "BucketLifecycleConfiguration"} 11831 if s.Rules == nil { 11832 invalidParams.Add(request.NewErrParamRequired("Rules")) 11833 } 11834 if s.Rules != nil { 11835 for i, v := range s.Rules { 11836 if v == nil { 11837 continue 11838 } 11839 if err := v.Validate(); err != nil { 11840 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 11841 } 11842 } 11843 } 11844 11845 if invalidParams.Len() > 0 { 11846 return invalidParams 11847 } 11848 return nil 11849 } 11850 11851 // SetRules sets the Rules field's value. 11852 func (s *BucketLifecycleConfiguration) SetRules(v []*LifecycleRule) *BucketLifecycleConfiguration { 11853 s.Rules = v 11854 return s 11855 } 11856 11857 // Container for logging status information. 11858 type BucketLoggingStatus struct { 11859 _ struct{} `type:"structure"` 11860 11861 // Describes where logs are stored and the prefix that Amazon S3 assigns to 11862 // all log object keys for a bucket. For more information, see PUT Bucket logging 11863 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) 11864 // in the Amazon S3 API Reference. 11865 LoggingEnabled *LoggingEnabled `type:"structure"` 11866 } 11867 11868 // String returns the string representation. 11869 // 11870 // API parameter values that are decorated as "sensitive" in the API will not 11871 // be included in the string output. The member name will be present, but the 11872 // value will be replaced with "sensitive". 11873 func (s BucketLoggingStatus) String() string { 11874 return awsutil.Prettify(s) 11875 } 11876 11877 // GoString returns the string representation. 11878 // 11879 // API parameter values that are decorated as "sensitive" in the API will not 11880 // be included in the string output. The member name will be present, but the 11881 // value will be replaced with "sensitive". 11882 func (s BucketLoggingStatus) GoString() string { 11883 return s.String() 11884 } 11885 11886 // Validate inspects the fields of the type to determine if they are valid. 11887 func (s *BucketLoggingStatus) Validate() error { 11888 invalidParams := request.ErrInvalidParams{Context: "BucketLoggingStatus"} 11889 if s.LoggingEnabled != nil { 11890 if err := s.LoggingEnabled.Validate(); err != nil { 11891 invalidParams.AddNested("LoggingEnabled", err.(request.ErrInvalidParams)) 11892 } 11893 } 11894 11895 if invalidParams.Len() > 0 { 11896 return invalidParams 11897 } 11898 return nil 11899 } 11900 11901 // SetLoggingEnabled sets the LoggingEnabled field's value. 11902 func (s *BucketLoggingStatus) SetLoggingEnabled(v *LoggingEnabled) *BucketLoggingStatus { 11903 s.LoggingEnabled = v 11904 return s 11905 } 11906 11907 // Describes the cross-origin access configuration for objects in an Amazon 11908 // S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing 11909 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon 11910 // S3 User Guide. 11911 type CORSConfiguration struct { 11912 _ struct{} `type:"structure"` 11913 11914 // A set of origins and methods (cross-origin access that you want to allow). 11915 // You can add up to 100 rules to the configuration. 11916 // 11917 // CORSRules is a required field 11918 CORSRules []*CORSRule `locationName:"CORSRule" type:"list" flattened:"true" required:"true"` 11919 } 11920 11921 // String returns the string representation. 11922 // 11923 // API parameter values that are decorated as "sensitive" in the API will not 11924 // be included in the string output. The member name will be present, but the 11925 // value will be replaced with "sensitive". 11926 func (s CORSConfiguration) String() string { 11927 return awsutil.Prettify(s) 11928 } 11929 11930 // GoString returns the string representation. 11931 // 11932 // API parameter values that are decorated as "sensitive" in the API will not 11933 // be included in the string output. The member name will be present, but the 11934 // value will be replaced with "sensitive". 11935 func (s CORSConfiguration) GoString() string { 11936 return s.String() 11937 } 11938 11939 // Validate inspects the fields of the type to determine if they are valid. 11940 func (s *CORSConfiguration) Validate() error { 11941 invalidParams := request.ErrInvalidParams{Context: "CORSConfiguration"} 11942 if s.CORSRules == nil { 11943 invalidParams.Add(request.NewErrParamRequired("CORSRules")) 11944 } 11945 if s.CORSRules != nil { 11946 for i, v := range s.CORSRules { 11947 if v == nil { 11948 continue 11949 } 11950 if err := v.Validate(); err != nil { 11951 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CORSRules", i), err.(request.ErrInvalidParams)) 11952 } 11953 } 11954 } 11955 11956 if invalidParams.Len() > 0 { 11957 return invalidParams 11958 } 11959 return nil 11960 } 11961 11962 // SetCORSRules sets the CORSRules field's value. 11963 func (s *CORSConfiguration) SetCORSRules(v []*CORSRule) *CORSConfiguration { 11964 s.CORSRules = v 11965 return s 11966 } 11967 11968 // Specifies a cross-origin access rule for an Amazon S3 bucket. 11969 type CORSRule struct { 11970 _ struct{} `type:"structure"` 11971 11972 // Headers that are specified in the Access-Control-Request-Headers header. 11973 // These headers are allowed in a preflight OPTIONS request. In response to 11974 // any preflight OPTIONS request, Amazon S3 returns any requested headers that 11975 // are allowed. 11976 AllowedHeaders []*string `locationName:"AllowedHeader" type:"list" flattened:"true"` 11977 11978 // An HTTP method that you allow the origin to execute. Valid values are GET, 11979 // PUT, HEAD, POST, and DELETE. 11980 // 11981 // AllowedMethods is a required field 11982 AllowedMethods []*string `locationName:"AllowedMethod" type:"list" flattened:"true" required:"true"` 11983 11984 // One or more origins you want customers to be able to access the bucket from. 11985 // 11986 // AllowedOrigins is a required field 11987 AllowedOrigins []*string `locationName:"AllowedOrigin" type:"list" flattened:"true" required:"true"` 11988 11989 // One or more headers in the response that you want customers to be able to 11990 // access from their applications (for example, from a JavaScript XMLHttpRequest 11991 // object). 11992 ExposeHeaders []*string `locationName:"ExposeHeader" type:"list" flattened:"true"` 11993 11994 // Unique identifier for the rule. The value cannot be longer than 255 characters. 11995 ID *string `type:"string"` 11996 11997 // The time in seconds that your browser is to cache the preflight response 11998 // for the specified resource. 11999 MaxAgeSeconds *int64 `type:"integer"` 12000 } 12001 12002 // String returns the string representation. 12003 // 12004 // API parameter values that are decorated as "sensitive" in the API will not 12005 // be included in the string output. The member name will be present, but the 12006 // value will be replaced with "sensitive". 12007 func (s CORSRule) String() string { 12008 return awsutil.Prettify(s) 12009 } 12010 12011 // GoString returns the string representation. 12012 // 12013 // API parameter values that are decorated as "sensitive" in the API will not 12014 // be included in the string output. The member name will be present, but the 12015 // value will be replaced with "sensitive". 12016 func (s CORSRule) GoString() string { 12017 return s.String() 12018 } 12019 12020 // Validate inspects the fields of the type to determine if they are valid. 12021 func (s *CORSRule) Validate() error { 12022 invalidParams := request.ErrInvalidParams{Context: "CORSRule"} 12023 if s.AllowedMethods == nil { 12024 invalidParams.Add(request.NewErrParamRequired("AllowedMethods")) 12025 } 12026 if s.AllowedOrigins == nil { 12027 invalidParams.Add(request.NewErrParamRequired("AllowedOrigins")) 12028 } 12029 12030 if invalidParams.Len() > 0 { 12031 return invalidParams 12032 } 12033 return nil 12034 } 12035 12036 // SetAllowedHeaders sets the AllowedHeaders field's value. 12037 func (s *CORSRule) SetAllowedHeaders(v []*string) *CORSRule { 12038 s.AllowedHeaders = v 12039 return s 12040 } 12041 12042 // SetAllowedMethods sets the AllowedMethods field's value. 12043 func (s *CORSRule) SetAllowedMethods(v []*string) *CORSRule { 12044 s.AllowedMethods = v 12045 return s 12046 } 12047 12048 // SetAllowedOrigins sets the AllowedOrigins field's value. 12049 func (s *CORSRule) SetAllowedOrigins(v []*string) *CORSRule { 12050 s.AllowedOrigins = v 12051 return s 12052 } 12053 12054 // SetExposeHeaders sets the ExposeHeaders field's value. 12055 func (s *CORSRule) SetExposeHeaders(v []*string) *CORSRule { 12056 s.ExposeHeaders = v 12057 return s 12058 } 12059 12060 // SetID sets the ID field's value. 12061 func (s *CORSRule) SetID(v string) *CORSRule { 12062 s.ID = &v 12063 return s 12064 } 12065 12066 // SetMaxAgeSeconds sets the MaxAgeSeconds field's value. 12067 func (s *CORSRule) SetMaxAgeSeconds(v int64) *CORSRule { 12068 s.MaxAgeSeconds = &v 12069 return s 12070 } 12071 12072 // Describes how an uncompressed comma-separated values (CSV)-formatted input 12073 // object is formatted. 12074 type CSVInput struct { 12075 _ struct{} `type:"structure"` 12076 12077 // Specifies that CSV field values may contain quoted record delimiters and 12078 // such records should be allowed. Default value is FALSE. Setting this value 12079 // to TRUE may lower performance. 12080 AllowQuotedRecordDelimiter *bool `type:"boolean"` 12081 12082 // A single character used to indicate that a row should be ignored when the 12083 // character is present at the start of that row. You can specify any character 12084 // to indicate a comment line. 12085 Comments *string `type:"string"` 12086 12087 // A single character used to separate individual fields in a record. You can 12088 // specify an arbitrary delimiter. 12089 FieldDelimiter *string `type:"string"` 12090 12091 // Describes the first line of input. Valid values are: 12092 // 12093 // * NONE: First line is not a header. 12094 // 12095 // * IGNORE: First line is a header, but you can't use the header values 12096 // to indicate the column in an expression. You can use column position (such 12097 // as _1, _2, …) to indicate the column (SELECT s._1 FROM OBJECT s). 12098 // 12099 // * Use: First line is a header, and you can use the header value to identify 12100 // a column in an expression (SELECT "name" FROM OBJECT). 12101 FileHeaderInfo *string `type:"string" enum:"FileHeaderInfo"` 12102 12103 // A single character used for escaping when the field delimiter is part of 12104 // the value. For example, if the value is a, b, Amazon S3 wraps this field 12105 // value in quotation marks, as follows: " a , b ". 12106 // 12107 // Type: String 12108 // 12109 // Default: " 12110 // 12111 // Ancestors: CSV 12112 QuoteCharacter *string `type:"string"` 12113 12114 // A single character used for escaping the quotation mark character inside 12115 // an already escaped value. For example, the value """ a , b """ is parsed 12116 // as " a , b ". 12117 QuoteEscapeCharacter *string `type:"string"` 12118 12119 // A single character used to separate individual records in the input. Instead 12120 // of the default value, you can specify an arbitrary delimiter. 12121 RecordDelimiter *string `type:"string"` 12122 } 12123 12124 // String returns the string representation. 12125 // 12126 // API parameter values that are decorated as "sensitive" in the API will not 12127 // be included in the string output. The member name will be present, but the 12128 // value will be replaced with "sensitive". 12129 func (s CSVInput) String() string { 12130 return awsutil.Prettify(s) 12131 } 12132 12133 // GoString returns the string representation. 12134 // 12135 // API parameter values that are decorated as "sensitive" in the API will not 12136 // be included in the string output. The member name will be present, but the 12137 // value will be replaced with "sensitive". 12138 func (s CSVInput) GoString() string { 12139 return s.String() 12140 } 12141 12142 // SetAllowQuotedRecordDelimiter sets the AllowQuotedRecordDelimiter field's value. 12143 func (s *CSVInput) SetAllowQuotedRecordDelimiter(v bool) *CSVInput { 12144 s.AllowQuotedRecordDelimiter = &v 12145 return s 12146 } 12147 12148 // SetComments sets the Comments field's value. 12149 func (s *CSVInput) SetComments(v string) *CSVInput { 12150 s.Comments = &v 12151 return s 12152 } 12153 12154 // SetFieldDelimiter sets the FieldDelimiter field's value. 12155 func (s *CSVInput) SetFieldDelimiter(v string) *CSVInput { 12156 s.FieldDelimiter = &v 12157 return s 12158 } 12159 12160 // SetFileHeaderInfo sets the FileHeaderInfo field's value. 12161 func (s *CSVInput) SetFileHeaderInfo(v string) *CSVInput { 12162 s.FileHeaderInfo = &v 12163 return s 12164 } 12165 12166 // SetQuoteCharacter sets the QuoteCharacter field's value. 12167 func (s *CSVInput) SetQuoteCharacter(v string) *CSVInput { 12168 s.QuoteCharacter = &v 12169 return s 12170 } 12171 12172 // SetQuoteEscapeCharacter sets the QuoteEscapeCharacter field's value. 12173 func (s *CSVInput) SetQuoteEscapeCharacter(v string) *CSVInput { 12174 s.QuoteEscapeCharacter = &v 12175 return s 12176 } 12177 12178 // SetRecordDelimiter sets the RecordDelimiter field's value. 12179 func (s *CSVInput) SetRecordDelimiter(v string) *CSVInput { 12180 s.RecordDelimiter = &v 12181 return s 12182 } 12183 12184 // Describes how uncompressed comma-separated values (CSV)-formatted results 12185 // are formatted. 12186 type CSVOutput struct { 12187 _ struct{} `type:"structure"` 12188 12189 // The value used to separate individual fields in a record. You can specify 12190 // an arbitrary delimiter. 12191 FieldDelimiter *string `type:"string"` 12192 12193 // A single character used for escaping when the field delimiter is part of 12194 // the value. For example, if the value is a, b, Amazon S3 wraps this field 12195 // value in quotation marks, as follows: " a , b ". 12196 QuoteCharacter *string `type:"string"` 12197 12198 // The single character used for escaping the quote character inside an already 12199 // escaped value. 12200 QuoteEscapeCharacter *string `type:"string"` 12201 12202 // Indicates whether to use quotation marks around output fields. 12203 // 12204 // * ALWAYS: Always use quotation marks for output fields. 12205 // 12206 // * ASNEEDED: Use quotation marks for output fields when needed. 12207 QuoteFields *string `type:"string" enum:"QuoteFields"` 12208 12209 // A single character used to separate individual records in the output. Instead 12210 // of the default value, you can specify an arbitrary delimiter. 12211 RecordDelimiter *string `type:"string"` 12212 } 12213 12214 // String returns the string representation. 12215 // 12216 // API parameter values that are decorated as "sensitive" in the API will not 12217 // be included in the string output. The member name will be present, but the 12218 // value will be replaced with "sensitive". 12219 func (s CSVOutput) String() string { 12220 return awsutil.Prettify(s) 12221 } 12222 12223 // GoString returns the string representation. 12224 // 12225 // API parameter values that are decorated as "sensitive" in the API will not 12226 // be included in the string output. The member name will be present, but the 12227 // value will be replaced with "sensitive". 12228 func (s CSVOutput) GoString() string { 12229 return s.String() 12230 } 12231 12232 // SetFieldDelimiter sets the FieldDelimiter field's value. 12233 func (s *CSVOutput) SetFieldDelimiter(v string) *CSVOutput { 12234 s.FieldDelimiter = &v 12235 return s 12236 } 12237 12238 // SetQuoteCharacter sets the QuoteCharacter field's value. 12239 func (s *CSVOutput) SetQuoteCharacter(v string) *CSVOutput { 12240 s.QuoteCharacter = &v 12241 return s 12242 } 12243 12244 // SetQuoteEscapeCharacter sets the QuoteEscapeCharacter field's value. 12245 func (s *CSVOutput) SetQuoteEscapeCharacter(v string) *CSVOutput { 12246 s.QuoteEscapeCharacter = &v 12247 return s 12248 } 12249 12250 // SetQuoteFields sets the QuoteFields field's value. 12251 func (s *CSVOutput) SetQuoteFields(v string) *CSVOutput { 12252 s.QuoteFields = &v 12253 return s 12254 } 12255 12256 // SetRecordDelimiter sets the RecordDelimiter field's value. 12257 func (s *CSVOutput) SetRecordDelimiter(v string) *CSVOutput { 12258 s.RecordDelimiter = &v 12259 return s 12260 } 12261 12262 // Container for specifying the Lambda notification configuration. 12263 type CloudFunctionConfiguration struct { 12264 _ struct{} `type:"structure"` 12265 12266 // Lambda cloud function ARN that Amazon S3 can invoke when it detects events 12267 // of the specified type. 12268 CloudFunction *string `type:"string"` 12269 12270 // The bucket event for which to send notifications. 12271 // 12272 // Deprecated: Event has been deprecated 12273 Event *string `deprecated:"true" type:"string" enum:"Event"` 12274 12275 // Bucket events for which to send notifications. 12276 Events []*string `locationName:"Event" type:"list" flattened:"true"` 12277 12278 // An optional unique identifier for configurations in a notification configuration. 12279 // If you don't provide one, Amazon S3 will assign an ID. 12280 Id *string `type:"string"` 12281 12282 // The role supporting the invocation of the Lambda function 12283 InvocationRole *string `type:"string"` 12284 } 12285 12286 // String returns the string representation. 12287 // 12288 // API parameter values that are decorated as "sensitive" in the API will not 12289 // be included in the string output. The member name will be present, but the 12290 // value will be replaced with "sensitive". 12291 func (s CloudFunctionConfiguration) String() string { 12292 return awsutil.Prettify(s) 12293 } 12294 12295 // GoString returns the string representation. 12296 // 12297 // API parameter values that are decorated as "sensitive" in the API will not 12298 // be included in the string output. The member name will be present, but the 12299 // value will be replaced with "sensitive". 12300 func (s CloudFunctionConfiguration) GoString() string { 12301 return s.String() 12302 } 12303 12304 // SetCloudFunction sets the CloudFunction field's value. 12305 func (s *CloudFunctionConfiguration) SetCloudFunction(v string) *CloudFunctionConfiguration { 12306 s.CloudFunction = &v 12307 return s 12308 } 12309 12310 // SetEvent sets the Event field's value. 12311 func (s *CloudFunctionConfiguration) SetEvent(v string) *CloudFunctionConfiguration { 12312 s.Event = &v 12313 return s 12314 } 12315 12316 // SetEvents sets the Events field's value. 12317 func (s *CloudFunctionConfiguration) SetEvents(v []*string) *CloudFunctionConfiguration { 12318 s.Events = v 12319 return s 12320 } 12321 12322 // SetId sets the Id field's value. 12323 func (s *CloudFunctionConfiguration) SetId(v string) *CloudFunctionConfiguration { 12324 s.Id = &v 12325 return s 12326 } 12327 12328 // SetInvocationRole sets the InvocationRole field's value. 12329 func (s *CloudFunctionConfiguration) SetInvocationRole(v string) *CloudFunctionConfiguration { 12330 s.InvocationRole = &v 12331 return s 12332 } 12333 12334 // Container for all (if there are any) keys between Prefix and the next occurrence 12335 // of the string specified by a delimiter. CommonPrefixes lists keys that act 12336 // like subdirectories in the directory specified by Prefix. For example, if 12337 // the prefix is notes/ and the delimiter is a slash (/) as in notes/summer/july, 12338 // the common prefix is notes/summer/. 12339 type CommonPrefix struct { 12340 _ struct{} `type:"structure"` 12341 12342 // Container for the specified common prefix. 12343 Prefix *string `type:"string"` 12344 } 12345 12346 // String returns the string representation. 12347 // 12348 // API parameter values that are decorated as "sensitive" in the API will not 12349 // be included in the string output. The member name will be present, but the 12350 // value will be replaced with "sensitive". 12351 func (s CommonPrefix) String() string { 12352 return awsutil.Prettify(s) 12353 } 12354 12355 // GoString returns the string representation. 12356 // 12357 // API parameter values that are decorated as "sensitive" in the API will not 12358 // be included in the string output. The member name will be present, but the 12359 // value will be replaced with "sensitive". 12360 func (s CommonPrefix) GoString() string { 12361 return s.String() 12362 } 12363 12364 // SetPrefix sets the Prefix field's value. 12365 func (s *CommonPrefix) SetPrefix(v string) *CommonPrefix { 12366 s.Prefix = &v 12367 return s 12368 } 12369 12370 type CompleteMultipartUploadInput struct { 12371 _ struct{} `locationName:"CompleteMultipartUploadRequest" type:"structure" payload:"MultipartUpload"` 12372 12373 // Name of the bucket to which the multipart upload was initiated. 12374 // 12375 // When using this action with an access point, you must direct requests to 12376 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 12377 // When using this action with an access point through the Amazon Web Services 12378 // SDKs, you provide the access point ARN in place of the bucket name. For more 12379 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 12380 // in the Amazon S3 User Guide. 12381 // 12382 // When using this action with Amazon S3 on Outposts, you must direct requests 12383 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 12384 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 12385 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 12386 // you provide the Outposts bucket ARN in place of the bucket name. For more 12387 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 12388 // in the Amazon S3 User Guide. 12389 // 12390 // Bucket is a required field 12391 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 12392 12393 // The account ID of the expected bucket owner. If the bucket is owned by a 12394 // different account, the request will fail with an HTTP 403 (Access Denied) 12395 // error. 12396 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 12397 12398 // Object key for which the multipart upload was initiated. 12399 // 12400 // Key is a required field 12401 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 12402 12403 // The container for the multipart upload request information. 12404 MultipartUpload *CompletedMultipartUpload `locationName:"CompleteMultipartUpload" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 12405 12406 // Confirms that the requester knows that they will be charged for the request. 12407 // Bucket owners need not specify this parameter in their requests. For information 12408 // about downloading objects from requester pays buckets, see Downloading Objects 12409 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 12410 // in the Amazon S3 User Guide. 12411 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 12412 12413 // ID for the initiated multipart upload. 12414 // 12415 // UploadId is a required field 12416 UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"` 12417 } 12418 12419 // String returns the string representation. 12420 // 12421 // API parameter values that are decorated as "sensitive" in the API will not 12422 // be included in the string output. The member name will be present, but the 12423 // value will be replaced with "sensitive". 12424 func (s CompleteMultipartUploadInput) String() string { 12425 return awsutil.Prettify(s) 12426 } 12427 12428 // GoString returns the string representation. 12429 // 12430 // API parameter values that are decorated as "sensitive" in the API will not 12431 // be included in the string output. The member name will be present, but the 12432 // value will be replaced with "sensitive". 12433 func (s CompleteMultipartUploadInput) GoString() string { 12434 return s.String() 12435 } 12436 12437 // Validate inspects the fields of the type to determine if they are valid. 12438 func (s *CompleteMultipartUploadInput) Validate() error { 12439 invalidParams := request.ErrInvalidParams{Context: "CompleteMultipartUploadInput"} 12440 if s.Bucket == nil { 12441 invalidParams.Add(request.NewErrParamRequired("Bucket")) 12442 } 12443 if s.Bucket != nil && len(*s.Bucket) < 1 { 12444 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 12445 } 12446 if s.Key == nil { 12447 invalidParams.Add(request.NewErrParamRequired("Key")) 12448 } 12449 if s.Key != nil && len(*s.Key) < 1 { 12450 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 12451 } 12452 if s.UploadId == nil { 12453 invalidParams.Add(request.NewErrParamRequired("UploadId")) 12454 } 12455 12456 if invalidParams.Len() > 0 { 12457 return invalidParams 12458 } 12459 return nil 12460 } 12461 12462 // SetBucket sets the Bucket field's value. 12463 func (s *CompleteMultipartUploadInput) SetBucket(v string) *CompleteMultipartUploadInput { 12464 s.Bucket = &v 12465 return s 12466 } 12467 12468 func (s *CompleteMultipartUploadInput) getBucket() (v string) { 12469 if s.Bucket == nil { 12470 return v 12471 } 12472 return *s.Bucket 12473 } 12474 12475 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 12476 func (s *CompleteMultipartUploadInput) SetExpectedBucketOwner(v string) *CompleteMultipartUploadInput { 12477 s.ExpectedBucketOwner = &v 12478 return s 12479 } 12480 12481 // SetKey sets the Key field's value. 12482 func (s *CompleteMultipartUploadInput) SetKey(v string) *CompleteMultipartUploadInput { 12483 s.Key = &v 12484 return s 12485 } 12486 12487 // SetMultipartUpload sets the MultipartUpload field's value. 12488 func (s *CompleteMultipartUploadInput) SetMultipartUpload(v *CompletedMultipartUpload) *CompleteMultipartUploadInput { 12489 s.MultipartUpload = v 12490 return s 12491 } 12492 12493 // SetRequestPayer sets the RequestPayer field's value. 12494 func (s *CompleteMultipartUploadInput) SetRequestPayer(v string) *CompleteMultipartUploadInput { 12495 s.RequestPayer = &v 12496 return s 12497 } 12498 12499 // SetUploadId sets the UploadId field's value. 12500 func (s *CompleteMultipartUploadInput) SetUploadId(v string) *CompleteMultipartUploadInput { 12501 s.UploadId = &v 12502 return s 12503 } 12504 12505 func (s *CompleteMultipartUploadInput) getEndpointARN() (arn.Resource, error) { 12506 if s.Bucket == nil { 12507 return nil, fmt.Errorf("member Bucket is nil") 12508 } 12509 return parseEndpointARN(*s.Bucket) 12510 } 12511 12512 func (s *CompleteMultipartUploadInput) hasEndpointARN() bool { 12513 if s.Bucket == nil { 12514 return false 12515 } 12516 return arn.IsARN(*s.Bucket) 12517 } 12518 12519 // updateArnableField updates the value of the input field that 12520 // takes an ARN as an input. This method is useful to backfill 12521 // the parsed resource name from ARN into the input member. 12522 // It returns a pointer to a modified copy of input and an error. 12523 // Note that original input is not modified. 12524 func (s CompleteMultipartUploadInput) updateArnableField(v string) (interface{}, error) { 12525 if s.Bucket == nil { 12526 return nil, fmt.Errorf("member Bucket is nil") 12527 } 12528 s.Bucket = aws.String(v) 12529 return &s, nil 12530 } 12531 12532 type CompleteMultipartUploadOutput struct { 12533 _ struct{} `type:"structure"` 12534 12535 // The name of the bucket that contains the newly created object. Does not return 12536 // the access point ARN or access point alias if used. 12537 // 12538 // When using this action with an access point, you must direct requests to 12539 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 12540 // When using this action with an access point through the Amazon Web Services 12541 // SDKs, you provide the access point ARN in place of the bucket name. For more 12542 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 12543 // in the Amazon S3 User Guide. 12544 // 12545 // When using this action with Amazon S3 on Outposts, you must direct requests 12546 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 12547 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 12548 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 12549 // you provide the Outposts bucket ARN in place of the bucket name. For more 12550 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 12551 // in the Amazon S3 User Guide. 12552 Bucket *string `type:"string"` 12553 12554 // Indicates whether the multipart upload uses an S3 Bucket Key for server-side 12555 // encryption with Amazon Web Services KMS (SSE-KMS). 12556 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 12557 12558 // Entity tag that identifies the newly created object's data. Objects with 12559 // different object data will have different entity tags. The entity tag is 12560 // an opaque string. The entity tag may or may not be an MD5 digest of the object 12561 // data. If the entity tag is not an MD5 digest of the object data, it will 12562 // contain one or more nonhexadecimal characters and/or will consist of less 12563 // than 32 or more than 32 hexadecimal digits. 12564 ETag *string `type:"string"` 12565 12566 // If the object expiration is configured, this will contain the expiration 12567 // date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded. 12568 Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` 12569 12570 // The object key of the newly created object. 12571 Key *string `min:"1" type:"string"` 12572 12573 // The URI that identifies the newly created object. 12574 Location *string `type:"string"` 12575 12576 // If present, indicates that the requester was successfully charged for the 12577 // request. 12578 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 12579 12580 // If present, specifies the ID of the Amazon Web Services Key Management Service 12581 // (Amazon Web Services KMS) symmetric customer managed key that was used for 12582 // the object. 12583 // 12584 // SSEKMSKeyId is a sensitive parameter and its value will be 12585 // replaced with "sensitive" in string returned by CompleteMultipartUploadOutput's 12586 // String and GoString methods. 12587 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 12588 12589 // If you specified server-side encryption either with an Amazon S3-managed 12590 // encryption key or an Amazon Web Services KMS key in your initiate multipart 12591 // upload request, the response includes this header. It confirms the encryption 12592 // algorithm that Amazon S3 used to encrypt the object. 12593 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 12594 12595 // Version ID of the newly created object, in case the bucket has versioning 12596 // turned on. 12597 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 12598 } 12599 12600 // String returns the string representation. 12601 // 12602 // API parameter values that are decorated as "sensitive" in the API will not 12603 // be included in the string output. The member name will be present, but the 12604 // value will be replaced with "sensitive". 12605 func (s CompleteMultipartUploadOutput) String() string { 12606 return awsutil.Prettify(s) 12607 } 12608 12609 // GoString returns the string representation. 12610 // 12611 // API parameter values that are decorated as "sensitive" in the API will not 12612 // be included in the string output. The member name will be present, but the 12613 // value will be replaced with "sensitive". 12614 func (s CompleteMultipartUploadOutput) GoString() string { 12615 return s.String() 12616 } 12617 12618 // SetBucket sets the Bucket field's value. 12619 func (s *CompleteMultipartUploadOutput) SetBucket(v string) *CompleteMultipartUploadOutput { 12620 s.Bucket = &v 12621 return s 12622 } 12623 12624 func (s *CompleteMultipartUploadOutput) getBucket() (v string) { 12625 if s.Bucket == nil { 12626 return v 12627 } 12628 return *s.Bucket 12629 } 12630 12631 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 12632 func (s *CompleteMultipartUploadOutput) SetBucketKeyEnabled(v bool) *CompleteMultipartUploadOutput { 12633 s.BucketKeyEnabled = &v 12634 return s 12635 } 12636 12637 // SetETag sets the ETag field's value. 12638 func (s *CompleteMultipartUploadOutput) SetETag(v string) *CompleteMultipartUploadOutput { 12639 s.ETag = &v 12640 return s 12641 } 12642 12643 // SetExpiration sets the Expiration field's value. 12644 func (s *CompleteMultipartUploadOutput) SetExpiration(v string) *CompleteMultipartUploadOutput { 12645 s.Expiration = &v 12646 return s 12647 } 12648 12649 // SetKey sets the Key field's value. 12650 func (s *CompleteMultipartUploadOutput) SetKey(v string) *CompleteMultipartUploadOutput { 12651 s.Key = &v 12652 return s 12653 } 12654 12655 // SetLocation sets the Location field's value. 12656 func (s *CompleteMultipartUploadOutput) SetLocation(v string) *CompleteMultipartUploadOutput { 12657 s.Location = &v 12658 return s 12659 } 12660 12661 // SetRequestCharged sets the RequestCharged field's value. 12662 func (s *CompleteMultipartUploadOutput) SetRequestCharged(v string) *CompleteMultipartUploadOutput { 12663 s.RequestCharged = &v 12664 return s 12665 } 12666 12667 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 12668 func (s *CompleteMultipartUploadOutput) SetSSEKMSKeyId(v string) *CompleteMultipartUploadOutput { 12669 s.SSEKMSKeyId = &v 12670 return s 12671 } 12672 12673 // SetServerSideEncryption sets the ServerSideEncryption field's value. 12674 func (s *CompleteMultipartUploadOutput) SetServerSideEncryption(v string) *CompleteMultipartUploadOutput { 12675 s.ServerSideEncryption = &v 12676 return s 12677 } 12678 12679 // SetVersionId sets the VersionId field's value. 12680 func (s *CompleteMultipartUploadOutput) SetVersionId(v string) *CompleteMultipartUploadOutput { 12681 s.VersionId = &v 12682 return s 12683 } 12684 12685 // The container for the completed multipart upload details. 12686 type CompletedMultipartUpload struct { 12687 _ struct{} `type:"structure"` 12688 12689 // Array of CompletedPart data types. 12690 Parts []*CompletedPart `locationName:"Part" type:"list" flattened:"true"` 12691 } 12692 12693 // String returns the string representation. 12694 // 12695 // API parameter values that are decorated as "sensitive" in the API will not 12696 // be included in the string output. The member name will be present, but the 12697 // value will be replaced with "sensitive". 12698 func (s CompletedMultipartUpload) String() string { 12699 return awsutil.Prettify(s) 12700 } 12701 12702 // GoString returns the string representation. 12703 // 12704 // API parameter values that are decorated as "sensitive" in the API will not 12705 // be included in the string output. The member name will be present, but the 12706 // value will be replaced with "sensitive". 12707 func (s CompletedMultipartUpload) GoString() string { 12708 return s.String() 12709 } 12710 12711 // SetParts sets the Parts field's value. 12712 func (s *CompletedMultipartUpload) SetParts(v []*CompletedPart) *CompletedMultipartUpload { 12713 s.Parts = v 12714 return s 12715 } 12716 12717 // Details of the parts that were uploaded. 12718 type CompletedPart struct { 12719 _ struct{} `type:"structure"` 12720 12721 // Entity tag returned when the part was uploaded. 12722 ETag *string `type:"string"` 12723 12724 // Part number that identifies the part. This is a positive integer between 12725 // 1 and 10,000. 12726 PartNumber *int64 `type:"integer"` 12727 } 12728 12729 // String returns the string representation. 12730 // 12731 // API parameter values that are decorated as "sensitive" in the API will not 12732 // be included in the string output. The member name will be present, but the 12733 // value will be replaced with "sensitive". 12734 func (s CompletedPart) String() string { 12735 return awsutil.Prettify(s) 12736 } 12737 12738 // GoString returns the string representation. 12739 // 12740 // API parameter values that are decorated as "sensitive" in the API will not 12741 // be included in the string output. The member name will be present, but the 12742 // value will be replaced with "sensitive". 12743 func (s CompletedPart) GoString() string { 12744 return s.String() 12745 } 12746 12747 // SetETag sets the ETag field's value. 12748 func (s *CompletedPart) SetETag(v string) *CompletedPart { 12749 s.ETag = &v 12750 return s 12751 } 12752 12753 // SetPartNumber sets the PartNumber field's value. 12754 func (s *CompletedPart) SetPartNumber(v int64) *CompletedPart { 12755 s.PartNumber = &v 12756 return s 12757 } 12758 12759 // A container for describing a condition that must be met for the specified 12760 // redirect to apply. For example, 1. If request is for pages in the /docs folder, 12761 // redirect to the /documents folder. 2. If request results in HTTP error 4xx, 12762 // redirect request to another host where you might process the error. 12763 type Condition struct { 12764 _ struct{} `type:"structure"` 12765 12766 // The HTTP error code when the redirect is applied. In the event of an error, 12767 // if the error code equals this value, then the specified redirect is applied. 12768 // Required when parent element Condition is specified and sibling KeyPrefixEquals 12769 // is not specified. If both are specified, then both must be true for the redirect 12770 // to be applied. 12771 HttpErrorCodeReturnedEquals *string `type:"string"` 12772 12773 // The object key name prefix when the redirect is applied. For example, to 12774 // redirect requests for ExamplePage.html, the key prefix will be ExamplePage.html. 12775 // To redirect request for all pages with the prefix docs/, the key prefix will 12776 // be /docs, which identifies all objects in the docs/ folder. Required when 12777 // the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals 12778 // is not specified. If both conditions are specified, both must be true for 12779 // the redirect to be applied. 12780 // 12781 // Replacement must be made for object keys containing special characters (such 12782 // as carriage returns) when using XML requests. For more information, see XML 12783 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 12784 KeyPrefixEquals *string `type:"string"` 12785 } 12786 12787 // String returns the string representation. 12788 // 12789 // API parameter values that are decorated as "sensitive" in the API will not 12790 // be included in the string output. The member name will be present, but the 12791 // value will be replaced with "sensitive". 12792 func (s Condition) String() string { 12793 return awsutil.Prettify(s) 12794 } 12795 12796 // GoString returns the string representation. 12797 // 12798 // API parameter values that are decorated as "sensitive" in the API will not 12799 // be included in the string output. The member name will be present, but the 12800 // value will be replaced with "sensitive". 12801 func (s Condition) GoString() string { 12802 return s.String() 12803 } 12804 12805 // SetHttpErrorCodeReturnedEquals sets the HttpErrorCodeReturnedEquals field's value. 12806 func (s *Condition) SetHttpErrorCodeReturnedEquals(v string) *Condition { 12807 s.HttpErrorCodeReturnedEquals = &v 12808 return s 12809 } 12810 12811 // SetKeyPrefixEquals sets the KeyPrefixEquals field's value. 12812 func (s *Condition) SetKeyPrefixEquals(v string) *Condition { 12813 s.KeyPrefixEquals = &v 12814 return s 12815 } 12816 12817 type ContinuationEvent struct { 12818 _ struct{} `locationName:"ContinuationEvent" type:"structure"` 12819 } 12820 12821 // String returns the string representation. 12822 // 12823 // API parameter values that are decorated as "sensitive" in the API will not 12824 // be included in the string output. The member name will be present, but the 12825 // value will be replaced with "sensitive". 12826 func (s ContinuationEvent) String() string { 12827 return awsutil.Prettify(s) 12828 } 12829 12830 // GoString returns the string representation. 12831 // 12832 // API parameter values that are decorated as "sensitive" in the API will not 12833 // be included in the string output. The member name will be present, but the 12834 // value will be replaced with "sensitive". 12835 func (s ContinuationEvent) GoString() string { 12836 return s.String() 12837 } 12838 12839 // The ContinuationEvent is and event in the SelectObjectContentEventStream group of events. 12840 func (s *ContinuationEvent) eventSelectObjectContentEventStream() {} 12841 12842 // UnmarshalEvent unmarshals the EventStream Message into the ContinuationEvent value. 12843 // This method is only used internally within the SDK's EventStream handling. 12844 func (s *ContinuationEvent) UnmarshalEvent( 12845 payloadUnmarshaler protocol.PayloadUnmarshaler, 12846 msg eventstream.Message, 12847 ) error { 12848 return nil 12849 } 12850 12851 // MarshalEvent marshals the type into an stream event value. This method 12852 // should only used internally within the SDK's EventStream handling. 12853 func (s *ContinuationEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 12854 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 12855 return msg, err 12856 } 12857 12858 type CopyObjectInput struct { 12859 _ struct{} `locationName:"CopyObjectRequest" type:"structure"` 12860 12861 // The canned ACL to apply to the object. 12862 // 12863 // This action is not supported by Amazon S3 on Outposts. 12864 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` 12865 12866 // The name of the destination bucket. 12867 // 12868 // When using this action with an access point, you must direct requests to 12869 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 12870 // When using this action with an access point through the Amazon Web Services 12871 // SDKs, you provide the access point ARN in place of the bucket name. For more 12872 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 12873 // in the Amazon S3 User Guide. 12874 // 12875 // When using this action with Amazon S3 on Outposts, you must direct requests 12876 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 12877 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 12878 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 12879 // you provide the Outposts bucket ARN in place of the bucket name. For more 12880 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 12881 // in the Amazon S3 User Guide. 12882 // 12883 // Bucket is a required field 12884 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 12885 12886 // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption 12887 // with server-side encryption using AWS KMS (SSE-KMS). Setting this header 12888 // to true causes Amazon S3 to use an S3 Bucket Key for object encryption with 12889 // SSE-KMS. 12890 // 12891 // Specifying this header with a COPY action doesn’t affect bucket-level settings 12892 // for S3 Bucket Key. 12893 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 12894 12895 // Specifies caching behavior along the request/reply chain. 12896 CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` 12897 12898 // Specifies presentational information for the object. 12899 ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"` 12900 12901 // Specifies what content encodings have been applied to the object and thus 12902 // what decoding mechanisms must be applied to obtain the media-type referenced 12903 // by the Content-Type header field. 12904 ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` 12905 12906 // The language the content is in. 12907 ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` 12908 12909 // A standard MIME type describing the format of the object data. 12910 ContentType *string `location:"header" locationName:"Content-Type" type:"string"` 12911 12912 // Specifies the source object for the copy operation. You specify the value 12913 // in one of two formats, depending on whether you want to access the source 12914 // object through an access point (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html): 12915 // 12916 // * For objects not accessed through an access point, specify the name of 12917 // the source bucket and the key of the source object, separated by a slash 12918 // (/). For example, to copy the object reports/january.pdf from the bucket 12919 // awsexamplebucket, use awsexamplebucket/reports/january.pdf. The value 12920 // must be URL encoded. 12921 // 12922 // * For objects accessed through access points, specify the Amazon Resource 12923 // Name (ARN) of the object as accessed through the access point, in the 12924 // format arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>. 12925 // For example, to copy the object reports/january.pdf through access point 12926 // my-access-point owned by account 123456789012 in Region us-west-2, use 12927 // the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. 12928 // The value must be URL encoded. Amazon S3 supports copy operations using 12929 // access points only when the source and destination buckets are in the 12930 // same Amazon Web Services Region. Alternatively, for objects accessed through 12931 // Amazon S3 on Outposts, specify the ARN of the object as accessed in the 12932 // format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>. 12933 // For example, to copy the object reports/january.pdf through outpost my-outpost 12934 // owned by account 123456789012 in Region us-west-2, use the URL encoding 12935 // of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. 12936 // The value must be URL encoded. 12937 // 12938 // To copy a specific version of an object, append ?versionId=<version-id> to 12939 // the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). 12940 // If you don't specify a version ID, Amazon S3 copies the latest version of 12941 // the source object. 12942 // 12943 // CopySource is a required field 12944 CopySource *string `location:"header" locationName:"x-amz-copy-source" type:"string" required:"true"` 12945 12946 // Copies the object if its entity tag (ETag) matches the specified tag. 12947 CopySourceIfMatch *string `location:"header" locationName:"x-amz-copy-source-if-match" type:"string"` 12948 12949 // Copies the object if it has been modified since the specified time. 12950 CopySourceIfModifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-modified-since" type:"timestamp"` 12951 12952 // Copies the object if its entity tag (ETag) is different than the specified 12953 // ETag. 12954 CopySourceIfNoneMatch *string `location:"header" locationName:"x-amz-copy-source-if-none-match" type:"string"` 12955 12956 // Copies the object if it hasn't been modified since the specified time. 12957 CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp"` 12958 12959 // Specifies the algorithm to use when decrypting the source object (for example, 12960 // AES256). 12961 CopySourceSSECustomerAlgorithm *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm" type:"string"` 12962 12963 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt 12964 // the source object. The encryption key provided in this header must be one 12965 // that was used when the source object was created. 12966 // 12967 // CopySourceSSECustomerKey is a sensitive parameter and its value will be 12968 // replaced with "sensitive" in string returned by CopyObjectInput's 12969 // String and GoString methods. 12970 CopySourceSSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` 12971 12972 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 12973 // Amazon S3 uses this header for a message integrity check to ensure that the 12974 // encryption key was transmitted without error. 12975 CopySourceSSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5" type:"string"` 12976 12977 // The account ID of the expected destination bucket owner. If the destination 12978 // bucket is owned by a different account, the request will fail with an HTTP 12979 // 403 (Access Denied) error. 12980 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 12981 12982 // The account ID of the expected source bucket owner. If the source bucket 12983 // is owned by a different account, the request will fail with an HTTP 403 (Access 12984 // Denied) error. 12985 ExpectedSourceBucketOwner *string `location:"header" locationName:"x-amz-source-expected-bucket-owner" type:"string"` 12986 12987 // The date and time at which the object is no longer cacheable. 12988 Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"` 12989 12990 // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. 12991 // 12992 // This action is not supported by Amazon S3 on Outposts. 12993 GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` 12994 12995 // Allows grantee to read the object data and its metadata. 12996 // 12997 // This action is not supported by Amazon S3 on Outposts. 12998 GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` 12999 13000 // Allows grantee to read the object ACL. 13001 // 13002 // This action is not supported by Amazon S3 on Outposts. 13003 GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` 13004 13005 // Allows grantee to write the ACL for the applicable object. 13006 // 13007 // This action is not supported by Amazon S3 on Outposts. 13008 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` 13009 13010 // The key of the destination object. 13011 // 13012 // Key is a required field 13013 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 13014 13015 // A map of metadata to store with the object in S3. 13016 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` 13017 13018 // Specifies whether the metadata is copied from the source object or replaced 13019 // with metadata provided in the request. 13020 MetadataDirective *string `location:"header" locationName:"x-amz-metadata-directive" type:"string" enum:"MetadataDirective"` 13021 13022 // Specifies whether you want to apply a Legal Hold to the copied object. 13023 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 13024 13025 // The Object Lock mode that you want to apply to the copied object. 13026 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 13027 13028 // The date and time when you want the copied object's Object Lock to expire. 13029 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 13030 13031 // Confirms that the requester knows that they will be charged for the request. 13032 // Bucket owners need not specify this parameter in their requests. For information 13033 // about downloading objects from requester pays buckets, see Downloading Objects 13034 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 13035 // in the Amazon S3 User Guide. 13036 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 13037 13038 // Specifies the algorithm to use to when encrypting the object (for example, 13039 // AES256). 13040 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 13041 13042 // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting 13043 // data. This value is used to store the object and then it is discarded; Amazon 13044 // S3 does not store the encryption key. The key must be appropriate for use 13045 // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm 13046 // header. 13047 // 13048 // SSECustomerKey is a sensitive parameter and its value will be 13049 // replaced with "sensitive" in string returned by CopyObjectInput's 13050 // String and GoString methods. 13051 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 13052 13053 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 13054 // Amazon S3 uses this header for a message integrity check to ensure that the 13055 // encryption key was transmitted without error. 13056 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 13057 13058 // Specifies the Amazon Web Services KMS Encryption Context to use for object 13059 // encryption. The value of this header is a base64-encoded UTF-8 string holding 13060 // JSON with the encryption context key-value pairs. 13061 // 13062 // SSEKMSEncryptionContext is a sensitive parameter and its value will be 13063 // replaced with "sensitive" in string returned by CopyObjectInput's 13064 // String and GoString methods. 13065 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` 13066 13067 // Specifies the Amazon Web Services KMS key ID to use for object encryption. 13068 // All GET and PUT requests for an object protected by Amazon Web Services KMS 13069 // will fail if not made via SSL or using SigV4. For information about configuring 13070 // using any of the officially supported Amazon Web Services SDKs and Amazon 13071 // Web Services CLI, see Specifying the Signature Version in Request Authentication 13072 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) 13073 // in the Amazon S3 User Guide. 13074 // 13075 // SSEKMSKeyId is a sensitive parameter and its value will be 13076 // replaced with "sensitive" in string returned by CopyObjectInput's 13077 // String and GoString methods. 13078 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 13079 13080 // The server-side encryption algorithm used when storing this object in Amazon 13081 // S3 (for example, AES256, aws:kms). 13082 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 13083 13084 // By default, Amazon S3 uses the STANDARD Storage Class to store newly created 13085 // objects. The STANDARD storage class provides high durability and high availability. 13086 // Depending on performance needs, you can specify a different Storage Class. 13087 // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, 13088 // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) 13089 // in the Amazon S3 User Guide. 13090 StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` 13091 13092 // The tag-set for the object destination object this value must be used in 13093 // conjunction with the TaggingDirective. The tag-set must be encoded as URL 13094 // Query parameters. 13095 Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` 13096 13097 // Specifies whether the object tag-set are copied from the source object or 13098 // replaced with tag-set provided in the request. 13099 TaggingDirective *string `location:"header" locationName:"x-amz-tagging-directive" type:"string" enum:"TaggingDirective"` 13100 13101 // If the bucket is configured as a website, redirects requests for this object 13102 // to another object in the same bucket or to an external URL. Amazon S3 stores 13103 // the value of this header in the object metadata. 13104 WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` 13105 } 13106 13107 // String returns the string representation. 13108 // 13109 // API parameter values that are decorated as "sensitive" in the API will not 13110 // be included in the string output. The member name will be present, but the 13111 // value will be replaced with "sensitive". 13112 func (s CopyObjectInput) String() string { 13113 return awsutil.Prettify(s) 13114 } 13115 13116 // GoString returns the string representation. 13117 // 13118 // API parameter values that are decorated as "sensitive" in the API will not 13119 // be included in the string output. The member name will be present, but the 13120 // value will be replaced with "sensitive". 13121 func (s CopyObjectInput) GoString() string { 13122 return s.String() 13123 } 13124 13125 // Validate inspects the fields of the type to determine if they are valid. 13126 func (s *CopyObjectInput) Validate() error { 13127 invalidParams := request.ErrInvalidParams{Context: "CopyObjectInput"} 13128 if s.Bucket == nil { 13129 invalidParams.Add(request.NewErrParamRequired("Bucket")) 13130 } 13131 if s.Bucket != nil && len(*s.Bucket) < 1 { 13132 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 13133 } 13134 if s.CopySource == nil { 13135 invalidParams.Add(request.NewErrParamRequired("CopySource")) 13136 } 13137 if s.Key == nil { 13138 invalidParams.Add(request.NewErrParamRequired("Key")) 13139 } 13140 if s.Key != nil && len(*s.Key) < 1 { 13141 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 13142 } 13143 13144 if invalidParams.Len() > 0 { 13145 return invalidParams 13146 } 13147 return nil 13148 } 13149 13150 // SetACL sets the ACL field's value. 13151 func (s *CopyObjectInput) SetACL(v string) *CopyObjectInput { 13152 s.ACL = &v 13153 return s 13154 } 13155 13156 // SetBucket sets the Bucket field's value. 13157 func (s *CopyObjectInput) SetBucket(v string) *CopyObjectInput { 13158 s.Bucket = &v 13159 return s 13160 } 13161 13162 func (s *CopyObjectInput) getBucket() (v string) { 13163 if s.Bucket == nil { 13164 return v 13165 } 13166 return *s.Bucket 13167 } 13168 13169 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 13170 func (s *CopyObjectInput) SetBucketKeyEnabled(v bool) *CopyObjectInput { 13171 s.BucketKeyEnabled = &v 13172 return s 13173 } 13174 13175 // SetCacheControl sets the CacheControl field's value. 13176 func (s *CopyObjectInput) SetCacheControl(v string) *CopyObjectInput { 13177 s.CacheControl = &v 13178 return s 13179 } 13180 13181 // SetContentDisposition sets the ContentDisposition field's value. 13182 func (s *CopyObjectInput) SetContentDisposition(v string) *CopyObjectInput { 13183 s.ContentDisposition = &v 13184 return s 13185 } 13186 13187 // SetContentEncoding sets the ContentEncoding field's value. 13188 func (s *CopyObjectInput) SetContentEncoding(v string) *CopyObjectInput { 13189 s.ContentEncoding = &v 13190 return s 13191 } 13192 13193 // SetContentLanguage sets the ContentLanguage field's value. 13194 func (s *CopyObjectInput) SetContentLanguage(v string) *CopyObjectInput { 13195 s.ContentLanguage = &v 13196 return s 13197 } 13198 13199 // SetContentType sets the ContentType field's value. 13200 func (s *CopyObjectInput) SetContentType(v string) *CopyObjectInput { 13201 s.ContentType = &v 13202 return s 13203 } 13204 13205 // SetCopySource sets the CopySource field's value. 13206 func (s *CopyObjectInput) SetCopySource(v string) *CopyObjectInput { 13207 s.CopySource = &v 13208 return s 13209 } 13210 13211 // SetCopySourceIfMatch sets the CopySourceIfMatch field's value. 13212 func (s *CopyObjectInput) SetCopySourceIfMatch(v string) *CopyObjectInput { 13213 s.CopySourceIfMatch = &v 13214 return s 13215 } 13216 13217 // SetCopySourceIfModifiedSince sets the CopySourceIfModifiedSince field's value. 13218 func (s *CopyObjectInput) SetCopySourceIfModifiedSince(v time.Time) *CopyObjectInput { 13219 s.CopySourceIfModifiedSince = &v 13220 return s 13221 } 13222 13223 // SetCopySourceIfNoneMatch sets the CopySourceIfNoneMatch field's value. 13224 func (s *CopyObjectInput) SetCopySourceIfNoneMatch(v string) *CopyObjectInput { 13225 s.CopySourceIfNoneMatch = &v 13226 return s 13227 } 13228 13229 // SetCopySourceIfUnmodifiedSince sets the CopySourceIfUnmodifiedSince field's value. 13230 func (s *CopyObjectInput) SetCopySourceIfUnmodifiedSince(v time.Time) *CopyObjectInput { 13231 s.CopySourceIfUnmodifiedSince = &v 13232 return s 13233 } 13234 13235 // SetCopySourceSSECustomerAlgorithm sets the CopySourceSSECustomerAlgorithm field's value. 13236 func (s *CopyObjectInput) SetCopySourceSSECustomerAlgorithm(v string) *CopyObjectInput { 13237 s.CopySourceSSECustomerAlgorithm = &v 13238 return s 13239 } 13240 13241 // SetCopySourceSSECustomerKey sets the CopySourceSSECustomerKey field's value. 13242 func (s *CopyObjectInput) SetCopySourceSSECustomerKey(v string) *CopyObjectInput { 13243 s.CopySourceSSECustomerKey = &v 13244 return s 13245 } 13246 13247 func (s *CopyObjectInput) getCopySourceSSECustomerKey() (v string) { 13248 if s.CopySourceSSECustomerKey == nil { 13249 return v 13250 } 13251 return *s.CopySourceSSECustomerKey 13252 } 13253 13254 // SetCopySourceSSECustomerKeyMD5 sets the CopySourceSSECustomerKeyMD5 field's value. 13255 func (s *CopyObjectInput) SetCopySourceSSECustomerKeyMD5(v string) *CopyObjectInput { 13256 s.CopySourceSSECustomerKeyMD5 = &v 13257 return s 13258 } 13259 13260 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 13261 func (s *CopyObjectInput) SetExpectedBucketOwner(v string) *CopyObjectInput { 13262 s.ExpectedBucketOwner = &v 13263 return s 13264 } 13265 13266 // SetExpectedSourceBucketOwner sets the ExpectedSourceBucketOwner field's value. 13267 func (s *CopyObjectInput) SetExpectedSourceBucketOwner(v string) *CopyObjectInput { 13268 s.ExpectedSourceBucketOwner = &v 13269 return s 13270 } 13271 13272 // SetExpires sets the Expires field's value. 13273 func (s *CopyObjectInput) SetExpires(v time.Time) *CopyObjectInput { 13274 s.Expires = &v 13275 return s 13276 } 13277 13278 // SetGrantFullControl sets the GrantFullControl field's value. 13279 func (s *CopyObjectInput) SetGrantFullControl(v string) *CopyObjectInput { 13280 s.GrantFullControl = &v 13281 return s 13282 } 13283 13284 // SetGrantRead sets the GrantRead field's value. 13285 func (s *CopyObjectInput) SetGrantRead(v string) *CopyObjectInput { 13286 s.GrantRead = &v 13287 return s 13288 } 13289 13290 // SetGrantReadACP sets the GrantReadACP field's value. 13291 func (s *CopyObjectInput) SetGrantReadACP(v string) *CopyObjectInput { 13292 s.GrantReadACP = &v 13293 return s 13294 } 13295 13296 // SetGrantWriteACP sets the GrantWriteACP field's value. 13297 func (s *CopyObjectInput) SetGrantWriteACP(v string) *CopyObjectInput { 13298 s.GrantWriteACP = &v 13299 return s 13300 } 13301 13302 // SetKey sets the Key field's value. 13303 func (s *CopyObjectInput) SetKey(v string) *CopyObjectInput { 13304 s.Key = &v 13305 return s 13306 } 13307 13308 // SetMetadata sets the Metadata field's value. 13309 func (s *CopyObjectInput) SetMetadata(v map[string]*string) *CopyObjectInput { 13310 s.Metadata = v 13311 return s 13312 } 13313 13314 // SetMetadataDirective sets the MetadataDirective field's value. 13315 func (s *CopyObjectInput) SetMetadataDirective(v string) *CopyObjectInput { 13316 s.MetadataDirective = &v 13317 return s 13318 } 13319 13320 // SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value. 13321 func (s *CopyObjectInput) SetObjectLockLegalHoldStatus(v string) *CopyObjectInput { 13322 s.ObjectLockLegalHoldStatus = &v 13323 return s 13324 } 13325 13326 // SetObjectLockMode sets the ObjectLockMode field's value. 13327 func (s *CopyObjectInput) SetObjectLockMode(v string) *CopyObjectInput { 13328 s.ObjectLockMode = &v 13329 return s 13330 } 13331 13332 // SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value. 13333 func (s *CopyObjectInput) SetObjectLockRetainUntilDate(v time.Time) *CopyObjectInput { 13334 s.ObjectLockRetainUntilDate = &v 13335 return s 13336 } 13337 13338 // SetRequestPayer sets the RequestPayer field's value. 13339 func (s *CopyObjectInput) SetRequestPayer(v string) *CopyObjectInput { 13340 s.RequestPayer = &v 13341 return s 13342 } 13343 13344 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 13345 func (s *CopyObjectInput) SetSSECustomerAlgorithm(v string) *CopyObjectInput { 13346 s.SSECustomerAlgorithm = &v 13347 return s 13348 } 13349 13350 // SetSSECustomerKey sets the SSECustomerKey field's value. 13351 func (s *CopyObjectInput) SetSSECustomerKey(v string) *CopyObjectInput { 13352 s.SSECustomerKey = &v 13353 return s 13354 } 13355 13356 func (s *CopyObjectInput) getSSECustomerKey() (v string) { 13357 if s.SSECustomerKey == nil { 13358 return v 13359 } 13360 return *s.SSECustomerKey 13361 } 13362 13363 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 13364 func (s *CopyObjectInput) SetSSECustomerKeyMD5(v string) *CopyObjectInput { 13365 s.SSECustomerKeyMD5 = &v 13366 return s 13367 } 13368 13369 // SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value. 13370 func (s *CopyObjectInput) SetSSEKMSEncryptionContext(v string) *CopyObjectInput { 13371 s.SSEKMSEncryptionContext = &v 13372 return s 13373 } 13374 13375 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 13376 func (s *CopyObjectInput) SetSSEKMSKeyId(v string) *CopyObjectInput { 13377 s.SSEKMSKeyId = &v 13378 return s 13379 } 13380 13381 // SetServerSideEncryption sets the ServerSideEncryption field's value. 13382 func (s *CopyObjectInput) SetServerSideEncryption(v string) *CopyObjectInput { 13383 s.ServerSideEncryption = &v 13384 return s 13385 } 13386 13387 // SetStorageClass sets the StorageClass field's value. 13388 func (s *CopyObjectInput) SetStorageClass(v string) *CopyObjectInput { 13389 s.StorageClass = &v 13390 return s 13391 } 13392 13393 // SetTagging sets the Tagging field's value. 13394 func (s *CopyObjectInput) SetTagging(v string) *CopyObjectInput { 13395 s.Tagging = &v 13396 return s 13397 } 13398 13399 // SetTaggingDirective sets the TaggingDirective field's value. 13400 func (s *CopyObjectInput) SetTaggingDirective(v string) *CopyObjectInput { 13401 s.TaggingDirective = &v 13402 return s 13403 } 13404 13405 // SetWebsiteRedirectLocation sets the WebsiteRedirectLocation field's value. 13406 func (s *CopyObjectInput) SetWebsiteRedirectLocation(v string) *CopyObjectInput { 13407 s.WebsiteRedirectLocation = &v 13408 return s 13409 } 13410 13411 func (s *CopyObjectInput) getEndpointARN() (arn.Resource, error) { 13412 if s.Bucket == nil { 13413 return nil, fmt.Errorf("member Bucket is nil") 13414 } 13415 return parseEndpointARN(*s.Bucket) 13416 } 13417 13418 func (s *CopyObjectInput) hasEndpointARN() bool { 13419 if s.Bucket == nil { 13420 return false 13421 } 13422 return arn.IsARN(*s.Bucket) 13423 } 13424 13425 // updateArnableField updates the value of the input field that 13426 // takes an ARN as an input. This method is useful to backfill 13427 // the parsed resource name from ARN into the input member. 13428 // It returns a pointer to a modified copy of input and an error. 13429 // Note that original input is not modified. 13430 func (s CopyObjectInput) updateArnableField(v string) (interface{}, error) { 13431 if s.Bucket == nil { 13432 return nil, fmt.Errorf("member Bucket is nil") 13433 } 13434 s.Bucket = aws.String(v) 13435 return &s, nil 13436 } 13437 13438 type CopyObjectOutput struct { 13439 _ struct{} `type:"structure" payload:"CopyObjectResult"` 13440 13441 // Indicates whether the copied object uses an S3 Bucket Key for server-side 13442 // encryption with Amazon Web Services KMS (SSE-KMS). 13443 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 13444 13445 // Container for all response elements. 13446 CopyObjectResult *CopyObjectResult `type:"structure"` 13447 13448 // Version of the copied object in the destination bucket. 13449 CopySourceVersionId *string `location:"header" locationName:"x-amz-copy-source-version-id" type:"string"` 13450 13451 // If the object expiration is configured, the response includes this header. 13452 Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` 13453 13454 // If present, indicates that the requester was successfully charged for the 13455 // request. 13456 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 13457 13458 // If server-side encryption with a customer-provided encryption key was requested, 13459 // the response will include this header confirming the encryption algorithm 13460 // used. 13461 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 13462 13463 // If server-side encryption with a customer-provided encryption key was requested, 13464 // the response will include this header to provide round-trip message integrity 13465 // verification of the customer-provided encryption key. 13466 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 13467 13468 // If present, specifies the Amazon Web Services KMS Encryption Context to use 13469 // for object encryption. The value of this header is a base64-encoded UTF-8 13470 // string holding JSON with the encryption context key-value pairs. 13471 // 13472 // SSEKMSEncryptionContext is a sensitive parameter and its value will be 13473 // replaced with "sensitive" in string returned by CopyObjectOutput's 13474 // String and GoString methods. 13475 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` 13476 13477 // If present, specifies the ID of the Amazon Web Services Key Management Service 13478 // (Amazon Web Services KMS) symmetric customer managed key that was used for 13479 // the object. 13480 // 13481 // SSEKMSKeyId is a sensitive parameter and its value will be 13482 // replaced with "sensitive" in string returned by CopyObjectOutput's 13483 // String and GoString methods. 13484 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 13485 13486 // The server-side encryption algorithm used when storing this object in Amazon 13487 // S3 (for example, AES256, aws:kms). 13488 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 13489 13490 // Version ID of the newly created copy. 13491 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 13492 } 13493 13494 // String returns the string representation. 13495 // 13496 // API parameter values that are decorated as "sensitive" in the API will not 13497 // be included in the string output. The member name will be present, but the 13498 // value will be replaced with "sensitive". 13499 func (s CopyObjectOutput) String() string { 13500 return awsutil.Prettify(s) 13501 } 13502 13503 // GoString returns the string representation. 13504 // 13505 // API parameter values that are decorated as "sensitive" in the API will not 13506 // be included in the string output. The member name will be present, but the 13507 // value will be replaced with "sensitive". 13508 func (s CopyObjectOutput) GoString() string { 13509 return s.String() 13510 } 13511 13512 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 13513 func (s *CopyObjectOutput) SetBucketKeyEnabled(v bool) *CopyObjectOutput { 13514 s.BucketKeyEnabled = &v 13515 return s 13516 } 13517 13518 // SetCopyObjectResult sets the CopyObjectResult field's value. 13519 func (s *CopyObjectOutput) SetCopyObjectResult(v *CopyObjectResult) *CopyObjectOutput { 13520 s.CopyObjectResult = v 13521 return s 13522 } 13523 13524 // SetCopySourceVersionId sets the CopySourceVersionId field's value. 13525 func (s *CopyObjectOutput) SetCopySourceVersionId(v string) *CopyObjectOutput { 13526 s.CopySourceVersionId = &v 13527 return s 13528 } 13529 13530 // SetExpiration sets the Expiration field's value. 13531 func (s *CopyObjectOutput) SetExpiration(v string) *CopyObjectOutput { 13532 s.Expiration = &v 13533 return s 13534 } 13535 13536 // SetRequestCharged sets the RequestCharged field's value. 13537 func (s *CopyObjectOutput) SetRequestCharged(v string) *CopyObjectOutput { 13538 s.RequestCharged = &v 13539 return s 13540 } 13541 13542 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 13543 func (s *CopyObjectOutput) SetSSECustomerAlgorithm(v string) *CopyObjectOutput { 13544 s.SSECustomerAlgorithm = &v 13545 return s 13546 } 13547 13548 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 13549 func (s *CopyObjectOutput) SetSSECustomerKeyMD5(v string) *CopyObjectOutput { 13550 s.SSECustomerKeyMD5 = &v 13551 return s 13552 } 13553 13554 // SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value. 13555 func (s *CopyObjectOutput) SetSSEKMSEncryptionContext(v string) *CopyObjectOutput { 13556 s.SSEKMSEncryptionContext = &v 13557 return s 13558 } 13559 13560 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 13561 func (s *CopyObjectOutput) SetSSEKMSKeyId(v string) *CopyObjectOutput { 13562 s.SSEKMSKeyId = &v 13563 return s 13564 } 13565 13566 // SetServerSideEncryption sets the ServerSideEncryption field's value. 13567 func (s *CopyObjectOutput) SetServerSideEncryption(v string) *CopyObjectOutput { 13568 s.ServerSideEncryption = &v 13569 return s 13570 } 13571 13572 // SetVersionId sets the VersionId field's value. 13573 func (s *CopyObjectOutput) SetVersionId(v string) *CopyObjectOutput { 13574 s.VersionId = &v 13575 return s 13576 } 13577 13578 // Container for all response elements. 13579 type CopyObjectResult struct { 13580 _ struct{} `type:"structure"` 13581 13582 // Returns the ETag of the new object. The ETag reflects only changes to the 13583 // contents of an object, not its metadata. 13584 ETag *string `type:"string"` 13585 13586 // Creation date of the object. 13587 LastModified *time.Time `type:"timestamp"` 13588 } 13589 13590 // String returns the string representation. 13591 // 13592 // API parameter values that are decorated as "sensitive" in the API will not 13593 // be included in the string output. The member name will be present, but the 13594 // value will be replaced with "sensitive". 13595 func (s CopyObjectResult) String() string { 13596 return awsutil.Prettify(s) 13597 } 13598 13599 // GoString returns the string representation. 13600 // 13601 // API parameter values that are decorated as "sensitive" in the API will not 13602 // be included in the string output. The member name will be present, but the 13603 // value will be replaced with "sensitive". 13604 func (s CopyObjectResult) GoString() string { 13605 return s.String() 13606 } 13607 13608 // SetETag sets the ETag field's value. 13609 func (s *CopyObjectResult) SetETag(v string) *CopyObjectResult { 13610 s.ETag = &v 13611 return s 13612 } 13613 13614 // SetLastModified sets the LastModified field's value. 13615 func (s *CopyObjectResult) SetLastModified(v time.Time) *CopyObjectResult { 13616 s.LastModified = &v 13617 return s 13618 } 13619 13620 // Container for all response elements. 13621 type CopyPartResult struct { 13622 _ struct{} `type:"structure"` 13623 13624 // Entity tag of the object. 13625 ETag *string `type:"string"` 13626 13627 // Date and time at which the object was uploaded. 13628 LastModified *time.Time `type:"timestamp"` 13629 } 13630 13631 // String returns the string representation. 13632 // 13633 // API parameter values that are decorated as "sensitive" in the API will not 13634 // be included in the string output. The member name will be present, but the 13635 // value will be replaced with "sensitive". 13636 func (s CopyPartResult) String() string { 13637 return awsutil.Prettify(s) 13638 } 13639 13640 // GoString returns the string representation. 13641 // 13642 // API parameter values that are decorated as "sensitive" in the API will not 13643 // be included in the string output. The member name will be present, but the 13644 // value will be replaced with "sensitive". 13645 func (s CopyPartResult) GoString() string { 13646 return s.String() 13647 } 13648 13649 // SetETag sets the ETag field's value. 13650 func (s *CopyPartResult) SetETag(v string) *CopyPartResult { 13651 s.ETag = &v 13652 return s 13653 } 13654 13655 // SetLastModified sets the LastModified field's value. 13656 func (s *CopyPartResult) SetLastModified(v time.Time) *CopyPartResult { 13657 s.LastModified = &v 13658 return s 13659 } 13660 13661 // The configuration information for the bucket. 13662 type CreateBucketConfiguration struct { 13663 _ struct{} `type:"structure"` 13664 13665 // Specifies the Region where the bucket will be created. If you don't specify 13666 // a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1). 13667 LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"` 13668 } 13669 13670 // String returns the string representation. 13671 // 13672 // API parameter values that are decorated as "sensitive" in the API will not 13673 // be included in the string output. The member name will be present, but the 13674 // value will be replaced with "sensitive". 13675 func (s CreateBucketConfiguration) String() string { 13676 return awsutil.Prettify(s) 13677 } 13678 13679 // GoString returns the string representation. 13680 // 13681 // API parameter values that are decorated as "sensitive" in the API will not 13682 // be included in the string output. The member name will be present, but the 13683 // value will be replaced with "sensitive". 13684 func (s CreateBucketConfiguration) GoString() string { 13685 return s.String() 13686 } 13687 13688 // SetLocationConstraint sets the LocationConstraint field's value. 13689 func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration { 13690 s.LocationConstraint = &v 13691 return s 13692 } 13693 13694 type CreateBucketInput struct { 13695 _ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"` 13696 13697 // The canned ACL to apply to the bucket. 13698 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"` 13699 13700 // The name of the bucket to create. 13701 // 13702 // Bucket is a required field 13703 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 13704 13705 // The configuration information for the bucket. 13706 CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 13707 13708 // Allows grantee the read, write, read ACP, and write ACP permissions on the 13709 // bucket. 13710 GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` 13711 13712 // Allows grantee to list the objects in the bucket. 13713 GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` 13714 13715 // Allows grantee to read the bucket ACL. 13716 GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` 13717 13718 // Allows grantee to create new objects in the bucket. 13719 // 13720 // For the bucket and object owners of existing objects, also allows deletions 13721 // and overwrites of those objects. 13722 GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` 13723 13724 // Allows grantee to write the ACL for the applicable bucket. 13725 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` 13726 13727 // Specifies whether you want S3 Object Lock to be enabled for the new bucket. 13728 ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"` 13729 } 13730 13731 // String returns the string representation. 13732 // 13733 // API parameter values that are decorated as "sensitive" in the API will not 13734 // be included in the string output. The member name will be present, but the 13735 // value will be replaced with "sensitive". 13736 func (s CreateBucketInput) String() string { 13737 return awsutil.Prettify(s) 13738 } 13739 13740 // GoString returns the string representation. 13741 // 13742 // API parameter values that are decorated as "sensitive" in the API will not 13743 // be included in the string output. The member name will be present, but the 13744 // value will be replaced with "sensitive". 13745 func (s CreateBucketInput) GoString() string { 13746 return s.String() 13747 } 13748 13749 // Validate inspects the fields of the type to determine if they are valid. 13750 func (s *CreateBucketInput) Validate() error { 13751 invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"} 13752 if s.Bucket == nil { 13753 invalidParams.Add(request.NewErrParamRequired("Bucket")) 13754 } 13755 if s.Bucket != nil && len(*s.Bucket) < 1 { 13756 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 13757 } 13758 13759 if invalidParams.Len() > 0 { 13760 return invalidParams 13761 } 13762 return nil 13763 } 13764 13765 // SetACL sets the ACL field's value. 13766 func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput { 13767 s.ACL = &v 13768 return s 13769 } 13770 13771 // SetBucket sets the Bucket field's value. 13772 func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput { 13773 s.Bucket = &v 13774 return s 13775 } 13776 13777 func (s *CreateBucketInput) getBucket() (v string) { 13778 if s.Bucket == nil { 13779 return v 13780 } 13781 return *s.Bucket 13782 } 13783 13784 // SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value. 13785 func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput { 13786 s.CreateBucketConfiguration = v 13787 return s 13788 } 13789 13790 // SetGrantFullControl sets the GrantFullControl field's value. 13791 func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput { 13792 s.GrantFullControl = &v 13793 return s 13794 } 13795 13796 // SetGrantRead sets the GrantRead field's value. 13797 func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput { 13798 s.GrantRead = &v 13799 return s 13800 } 13801 13802 // SetGrantReadACP sets the GrantReadACP field's value. 13803 func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput { 13804 s.GrantReadACP = &v 13805 return s 13806 } 13807 13808 // SetGrantWrite sets the GrantWrite field's value. 13809 func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput { 13810 s.GrantWrite = &v 13811 return s 13812 } 13813 13814 // SetGrantWriteACP sets the GrantWriteACP field's value. 13815 func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput { 13816 s.GrantWriteACP = &v 13817 return s 13818 } 13819 13820 // SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value. 13821 func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput { 13822 s.ObjectLockEnabledForBucket = &v 13823 return s 13824 } 13825 13826 type CreateBucketOutput struct { 13827 _ struct{} `type:"structure"` 13828 13829 // Specifies the Region where the bucket will be created. If you are creating 13830 // a bucket on the US East (N. Virginia) Region (us-east-1), you do not need 13831 // to specify the location. 13832 Location *string `location:"header" locationName:"Location" type:"string"` 13833 } 13834 13835 // String returns the string representation. 13836 // 13837 // API parameter values that are decorated as "sensitive" in the API will not 13838 // be included in the string output. The member name will be present, but the 13839 // value will be replaced with "sensitive". 13840 func (s CreateBucketOutput) String() string { 13841 return awsutil.Prettify(s) 13842 } 13843 13844 // GoString returns the string representation. 13845 // 13846 // API parameter values that are decorated as "sensitive" in the API will not 13847 // be included in the string output. The member name will be present, but the 13848 // value will be replaced with "sensitive". 13849 func (s CreateBucketOutput) GoString() string { 13850 return s.String() 13851 } 13852 13853 // SetLocation sets the Location field's value. 13854 func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput { 13855 s.Location = &v 13856 return s 13857 } 13858 13859 type CreateMultipartUploadInput struct { 13860 _ struct{} `locationName:"CreateMultipartUploadRequest" type:"structure"` 13861 13862 // The canned ACL to apply to the object. 13863 // 13864 // This action is not supported by Amazon S3 on Outposts. 13865 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` 13866 13867 // The name of the bucket to which to initiate the upload 13868 // 13869 // When using this action with an access point, you must direct requests to 13870 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 13871 // When using this action with an access point through the Amazon Web Services 13872 // SDKs, you provide the access point ARN in place of the bucket name. For more 13873 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 13874 // in the Amazon S3 User Guide. 13875 // 13876 // When using this action with Amazon S3 on Outposts, you must direct requests 13877 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 13878 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 13879 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 13880 // you provide the Outposts bucket ARN in place of the bucket name. For more 13881 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 13882 // in the Amazon S3 User Guide. 13883 // 13884 // Bucket is a required field 13885 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 13886 13887 // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption 13888 // with server-side encryption using AWS KMS (SSE-KMS). Setting this header 13889 // to true causes Amazon S3 to use an S3 Bucket Key for object encryption with 13890 // SSE-KMS. 13891 // 13892 // Specifying this header with an object action doesn’t affect bucket-level 13893 // settings for S3 Bucket Key. 13894 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 13895 13896 // Specifies caching behavior along the request/reply chain. 13897 CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` 13898 13899 // Specifies presentational information for the object. 13900 ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"` 13901 13902 // Specifies what content encodings have been applied to the object and thus 13903 // what decoding mechanisms must be applied to obtain the media-type referenced 13904 // by the Content-Type header field. 13905 ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` 13906 13907 // The language the content is in. 13908 ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` 13909 13910 // A standard MIME type describing the format of the object data. 13911 ContentType *string `location:"header" locationName:"Content-Type" type:"string"` 13912 13913 // The account ID of the expected bucket owner. If the bucket is owned by a 13914 // different account, the request will fail with an HTTP 403 (Access Denied) 13915 // error. 13916 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 13917 13918 // The date and time at which the object is no longer cacheable. 13919 Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"` 13920 13921 // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. 13922 // 13923 // This action is not supported by Amazon S3 on Outposts. 13924 GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` 13925 13926 // Allows grantee to read the object data and its metadata. 13927 // 13928 // This action is not supported by Amazon S3 on Outposts. 13929 GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` 13930 13931 // Allows grantee to read the object ACL. 13932 // 13933 // This action is not supported by Amazon S3 on Outposts. 13934 GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` 13935 13936 // Allows grantee to write the ACL for the applicable object. 13937 // 13938 // This action is not supported by Amazon S3 on Outposts. 13939 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` 13940 13941 // Object key for which the multipart upload is to be initiated. 13942 // 13943 // Key is a required field 13944 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 13945 13946 // A map of metadata to store with the object in S3. 13947 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` 13948 13949 // Specifies whether you want to apply a Legal Hold to the uploaded object. 13950 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 13951 13952 // Specifies the Object Lock mode that you want to apply to the uploaded object. 13953 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 13954 13955 // Specifies the date and time when you want the Object Lock to expire. 13956 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 13957 13958 // Confirms that the requester knows that they will be charged for the request. 13959 // Bucket owners need not specify this parameter in their requests. For information 13960 // about downloading objects from requester pays buckets, see Downloading Objects 13961 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 13962 // in the Amazon S3 User Guide. 13963 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 13964 13965 // Specifies the algorithm to use to when encrypting the object (for example, 13966 // AES256). 13967 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 13968 13969 // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting 13970 // data. This value is used to store the object and then it is discarded; Amazon 13971 // S3 does not store the encryption key. The key must be appropriate for use 13972 // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm 13973 // header. 13974 // 13975 // SSECustomerKey is a sensitive parameter and its value will be 13976 // replaced with "sensitive" in string returned by CreateMultipartUploadInput's 13977 // String and GoString methods. 13978 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 13979 13980 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 13981 // Amazon S3 uses this header for a message integrity check to ensure that the 13982 // encryption key was transmitted without error. 13983 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 13984 13985 // Specifies the Amazon Web Services KMS Encryption Context to use for object 13986 // encryption. The value of this header is a base64-encoded UTF-8 string holding 13987 // JSON with the encryption context key-value pairs. 13988 // 13989 // SSEKMSEncryptionContext is a sensitive parameter and its value will be 13990 // replaced with "sensitive" in string returned by CreateMultipartUploadInput's 13991 // String and GoString methods. 13992 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` 13993 13994 // Specifies the ID of the symmetric customer managed key to use for object 13995 // encryption. All GET and PUT requests for an object protected by Amazon Web 13996 // Services KMS will fail if not made via SSL or using SigV4. For information 13997 // about configuring using any of the officially supported Amazon Web Services 13998 // SDKs and Amazon Web Services CLI, see Specifying the Signature Version in 13999 // Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) 14000 // in the Amazon S3 User Guide. 14001 // 14002 // SSEKMSKeyId is a sensitive parameter and its value will be 14003 // replaced with "sensitive" in string returned by CreateMultipartUploadInput's 14004 // String and GoString methods. 14005 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 14006 14007 // The server-side encryption algorithm used when storing this object in Amazon 14008 // S3 (for example, AES256, aws:kms). 14009 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 14010 14011 // By default, Amazon S3 uses the STANDARD Storage Class to store newly created 14012 // objects. The STANDARD storage class provides high durability and high availability. 14013 // Depending on performance needs, you can specify a different Storage Class. 14014 // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, 14015 // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) 14016 // in the Amazon S3 User Guide. 14017 StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` 14018 14019 // The tag-set for the object. The tag-set must be encoded as URL Query parameters. 14020 Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` 14021 14022 // If the bucket is configured as a website, redirects requests for this object 14023 // to another object in the same bucket or to an external URL. Amazon S3 stores 14024 // the value of this header in the object metadata. 14025 WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` 14026 } 14027 14028 // String returns the string representation. 14029 // 14030 // API parameter values that are decorated as "sensitive" in the API will not 14031 // be included in the string output. The member name will be present, but the 14032 // value will be replaced with "sensitive". 14033 func (s CreateMultipartUploadInput) String() string { 14034 return awsutil.Prettify(s) 14035 } 14036 14037 // GoString returns the string representation. 14038 // 14039 // API parameter values that are decorated as "sensitive" in the API will not 14040 // be included in the string output. The member name will be present, but the 14041 // value will be replaced with "sensitive". 14042 func (s CreateMultipartUploadInput) GoString() string { 14043 return s.String() 14044 } 14045 14046 // Validate inspects the fields of the type to determine if they are valid. 14047 func (s *CreateMultipartUploadInput) Validate() error { 14048 invalidParams := request.ErrInvalidParams{Context: "CreateMultipartUploadInput"} 14049 if s.Bucket == nil { 14050 invalidParams.Add(request.NewErrParamRequired("Bucket")) 14051 } 14052 if s.Bucket != nil && len(*s.Bucket) < 1 { 14053 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 14054 } 14055 if s.Key == nil { 14056 invalidParams.Add(request.NewErrParamRequired("Key")) 14057 } 14058 if s.Key != nil && len(*s.Key) < 1 { 14059 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 14060 } 14061 14062 if invalidParams.Len() > 0 { 14063 return invalidParams 14064 } 14065 return nil 14066 } 14067 14068 // SetACL sets the ACL field's value. 14069 func (s *CreateMultipartUploadInput) SetACL(v string) *CreateMultipartUploadInput { 14070 s.ACL = &v 14071 return s 14072 } 14073 14074 // SetBucket sets the Bucket field's value. 14075 func (s *CreateMultipartUploadInput) SetBucket(v string) *CreateMultipartUploadInput { 14076 s.Bucket = &v 14077 return s 14078 } 14079 14080 func (s *CreateMultipartUploadInput) getBucket() (v string) { 14081 if s.Bucket == nil { 14082 return v 14083 } 14084 return *s.Bucket 14085 } 14086 14087 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 14088 func (s *CreateMultipartUploadInput) SetBucketKeyEnabled(v bool) *CreateMultipartUploadInput { 14089 s.BucketKeyEnabled = &v 14090 return s 14091 } 14092 14093 // SetCacheControl sets the CacheControl field's value. 14094 func (s *CreateMultipartUploadInput) SetCacheControl(v string) *CreateMultipartUploadInput { 14095 s.CacheControl = &v 14096 return s 14097 } 14098 14099 // SetContentDisposition sets the ContentDisposition field's value. 14100 func (s *CreateMultipartUploadInput) SetContentDisposition(v string) *CreateMultipartUploadInput { 14101 s.ContentDisposition = &v 14102 return s 14103 } 14104 14105 // SetContentEncoding sets the ContentEncoding field's value. 14106 func (s *CreateMultipartUploadInput) SetContentEncoding(v string) *CreateMultipartUploadInput { 14107 s.ContentEncoding = &v 14108 return s 14109 } 14110 14111 // SetContentLanguage sets the ContentLanguage field's value. 14112 func (s *CreateMultipartUploadInput) SetContentLanguage(v string) *CreateMultipartUploadInput { 14113 s.ContentLanguage = &v 14114 return s 14115 } 14116 14117 // SetContentType sets the ContentType field's value. 14118 func (s *CreateMultipartUploadInput) SetContentType(v string) *CreateMultipartUploadInput { 14119 s.ContentType = &v 14120 return s 14121 } 14122 14123 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 14124 func (s *CreateMultipartUploadInput) SetExpectedBucketOwner(v string) *CreateMultipartUploadInput { 14125 s.ExpectedBucketOwner = &v 14126 return s 14127 } 14128 14129 // SetExpires sets the Expires field's value. 14130 func (s *CreateMultipartUploadInput) SetExpires(v time.Time) *CreateMultipartUploadInput { 14131 s.Expires = &v 14132 return s 14133 } 14134 14135 // SetGrantFullControl sets the GrantFullControl field's value. 14136 func (s *CreateMultipartUploadInput) SetGrantFullControl(v string) *CreateMultipartUploadInput { 14137 s.GrantFullControl = &v 14138 return s 14139 } 14140 14141 // SetGrantRead sets the GrantRead field's value. 14142 func (s *CreateMultipartUploadInput) SetGrantRead(v string) *CreateMultipartUploadInput { 14143 s.GrantRead = &v 14144 return s 14145 } 14146 14147 // SetGrantReadACP sets the GrantReadACP field's value. 14148 func (s *CreateMultipartUploadInput) SetGrantReadACP(v string) *CreateMultipartUploadInput { 14149 s.GrantReadACP = &v 14150 return s 14151 } 14152 14153 // SetGrantWriteACP sets the GrantWriteACP field's value. 14154 func (s *CreateMultipartUploadInput) SetGrantWriteACP(v string) *CreateMultipartUploadInput { 14155 s.GrantWriteACP = &v 14156 return s 14157 } 14158 14159 // SetKey sets the Key field's value. 14160 func (s *CreateMultipartUploadInput) SetKey(v string) *CreateMultipartUploadInput { 14161 s.Key = &v 14162 return s 14163 } 14164 14165 // SetMetadata sets the Metadata field's value. 14166 func (s *CreateMultipartUploadInput) SetMetadata(v map[string]*string) *CreateMultipartUploadInput { 14167 s.Metadata = v 14168 return s 14169 } 14170 14171 // SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value. 14172 func (s *CreateMultipartUploadInput) SetObjectLockLegalHoldStatus(v string) *CreateMultipartUploadInput { 14173 s.ObjectLockLegalHoldStatus = &v 14174 return s 14175 } 14176 14177 // SetObjectLockMode sets the ObjectLockMode field's value. 14178 func (s *CreateMultipartUploadInput) SetObjectLockMode(v string) *CreateMultipartUploadInput { 14179 s.ObjectLockMode = &v 14180 return s 14181 } 14182 14183 // SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value. 14184 func (s *CreateMultipartUploadInput) SetObjectLockRetainUntilDate(v time.Time) *CreateMultipartUploadInput { 14185 s.ObjectLockRetainUntilDate = &v 14186 return s 14187 } 14188 14189 // SetRequestPayer sets the RequestPayer field's value. 14190 func (s *CreateMultipartUploadInput) SetRequestPayer(v string) *CreateMultipartUploadInput { 14191 s.RequestPayer = &v 14192 return s 14193 } 14194 14195 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 14196 func (s *CreateMultipartUploadInput) SetSSECustomerAlgorithm(v string) *CreateMultipartUploadInput { 14197 s.SSECustomerAlgorithm = &v 14198 return s 14199 } 14200 14201 // SetSSECustomerKey sets the SSECustomerKey field's value. 14202 func (s *CreateMultipartUploadInput) SetSSECustomerKey(v string) *CreateMultipartUploadInput { 14203 s.SSECustomerKey = &v 14204 return s 14205 } 14206 14207 func (s *CreateMultipartUploadInput) getSSECustomerKey() (v string) { 14208 if s.SSECustomerKey == nil { 14209 return v 14210 } 14211 return *s.SSECustomerKey 14212 } 14213 14214 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 14215 func (s *CreateMultipartUploadInput) SetSSECustomerKeyMD5(v string) *CreateMultipartUploadInput { 14216 s.SSECustomerKeyMD5 = &v 14217 return s 14218 } 14219 14220 // SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value. 14221 func (s *CreateMultipartUploadInput) SetSSEKMSEncryptionContext(v string) *CreateMultipartUploadInput { 14222 s.SSEKMSEncryptionContext = &v 14223 return s 14224 } 14225 14226 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 14227 func (s *CreateMultipartUploadInput) SetSSEKMSKeyId(v string) *CreateMultipartUploadInput { 14228 s.SSEKMSKeyId = &v 14229 return s 14230 } 14231 14232 // SetServerSideEncryption sets the ServerSideEncryption field's value. 14233 func (s *CreateMultipartUploadInput) SetServerSideEncryption(v string) *CreateMultipartUploadInput { 14234 s.ServerSideEncryption = &v 14235 return s 14236 } 14237 14238 // SetStorageClass sets the StorageClass field's value. 14239 func (s *CreateMultipartUploadInput) SetStorageClass(v string) *CreateMultipartUploadInput { 14240 s.StorageClass = &v 14241 return s 14242 } 14243 14244 // SetTagging sets the Tagging field's value. 14245 func (s *CreateMultipartUploadInput) SetTagging(v string) *CreateMultipartUploadInput { 14246 s.Tagging = &v 14247 return s 14248 } 14249 14250 // SetWebsiteRedirectLocation sets the WebsiteRedirectLocation field's value. 14251 func (s *CreateMultipartUploadInput) SetWebsiteRedirectLocation(v string) *CreateMultipartUploadInput { 14252 s.WebsiteRedirectLocation = &v 14253 return s 14254 } 14255 14256 func (s *CreateMultipartUploadInput) getEndpointARN() (arn.Resource, error) { 14257 if s.Bucket == nil { 14258 return nil, fmt.Errorf("member Bucket is nil") 14259 } 14260 return parseEndpointARN(*s.Bucket) 14261 } 14262 14263 func (s *CreateMultipartUploadInput) hasEndpointARN() bool { 14264 if s.Bucket == nil { 14265 return false 14266 } 14267 return arn.IsARN(*s.Bucket) 14268 } 14269 14270 // updateArnableField updates the value of the input field that 14271 // takes an ARN as an input. This method is useful to backfill 14272 // the parsed resource name from ARN into the input member. 14273 // It returns a pointer to a modified copy of input and an error. 14274 // Note that original input is not modified. 14275 func (s CreateMultipartUploadInput) updateArnableField(v string) (interface{}, error) { 14276 if s.Bucket == nil { 14277 return nil, fmt.Errorf("member Bucket is nil") 14278 } 14279 s.Bucket = aws.String(v) 14280 return &s, nil 14281 } 14282 14283 type CreateMultipartUploadOutput struct { 14284 _ struct{} `type:"structure"` 14285 14286 // If the bucket has a lifecycle rule configured with an action to abort incomplete 14287 // multipart uploads and the prefix in the lifecycle rule matches the object 14288 // name in the request, the response includes this header. The header indicates 14289 // when the initiated multipart upload becomes eligible for an abort operation. 14290 // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket 14291 // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). 14292 // 14293 // The response also includes the x-amz-abort-rule-id header that provides the 14294 // ID of the lifecycle configuration rule that defines this action. 14295 AbortDate *time.Time `location:"header" locationName:"x-amz-abort-date" type:"timestamp"` 14296 14297 // This header is returned along with the x-amz-abort-date header. It identifies 14298 // the applicable lifecycle configuration rule that defines the action to abort 14299 // incomplete multipart uploads. 14300 AbortRuleId *string `location:"header" locationName:"x-amz-abort-rule-id" type:"string"` 14301 14302 // The name of the bucket to which the multipart upload was initiated. Does 14303 // not return the access point ARN or access point alias if used. 14304 // 14305 // When using this action with an access point, you must direct requests to 14306 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 14307 // When using this action with an access point through the Amazon Web Services 14308 // SDKs, you provide the access point ARN in place of the bucket name. For more 14309 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 14310 // in the Amazon S3 User Guide. 14311 // 14312 // When using this action with Amazon S3 on Outposts, you must direct requests 14313 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 14314 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 14315 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 14316 // you provide the Outposts bucket ARN in place of the bucket name. For more 14317 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 14318 // in the Amazon S3 User Guide. 14319 Bucket *string `locationName:"Bucket" type:"string"` 14320 14321 // Indicates whether the multipart upload uses an S3 Bucket Key for server-side 14322 // encryption with Amazon Web Services KMS (SSE-KMS). 14323 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 14324 14325 // Object key for which the multipart upload was initiated. 14326 Key *string `min:"1" type:"string"` 14327 14328 // If present, indicates that the requester was successfully charged for the 14329 // request. 14330 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 14331 14332 // If server-side encryption with a customer-provided encryption key was requested, 14333 // the response will include this header confirming the encryption algorithm 14334 // used. 14335 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 14336 14337 // If server-side encryption with a customer-provided encryption key was requested, 14338 // the response will include this header to provide round-trip message integrity 14339 // verification of the customer-provided encryption key. 14340 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 14341 14342 // If present, specifies the Amazon Web Services KMS Encryption Context to use 14343 // for object encryption. The value of this header is a base64-encoded UTF-8 14344 // string holding JSON with the encryption context key-value pairs. 14345 // 14346 // SSEKMSEncryptionContext is a sensitive parameter and its value will be 14347 // replaced with "sensitive" in string returned by CreateMultipartUploadOutput's 14348 // String and GoString methods. 14349 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` 14350 14351 // If present, specifies the ID of the Amazon Web Services Key Management Service 14352 // (Amazon Web Services KMS) symmetric customer managed key that was used for 14353 // the object. 14354 // 14355 // SSEKMSKeyId is a sensitive parameter and its value will be 14356 // replaced with "sensitive" in string returned by CreateMultipartUploadOutput's 14357 // String and GoString methods. 14358 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 14359 14360 // The server-side encryption algorithm used when storing this object in Amazon 14361 // S3 (for example, AES256, aws:kms). 14362 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 14363 14364 // ID for the initiated multipart upload. 14365 UploadId *string `type:"string"` 14366 } 14367 14368 // String returns the string representation. 14369 // 14370 // API parameter values that are decorated as "sensitive" in the API will not 14371 // be included in the string output. The member name will be present, but the 14372 // value will be replaced with "sensitive". 14373 func (s CreateMultipartUploadOutput) String() string { 14374 return awsutil.Prettify(s) 14375 } 14376 14377 // GoString returns the string representation. 14378 // 14379 // API parameter values that are decorated as "sensitive" in the API will not 14380 // be included in the string output. The member name will be present, but the 14381 // value will be replaced with "sensitive". 14382 func (s CreateMultipartUploadOutput) GoString() string { 14383 return s.String() 14384 } 14385 14386 // SetAbortDate sets the AbortDate field's value. 14387 func (s *CreateMultipartUploadOutput) SetAbortDate(v time.Time) *CreateMultipartUploadOutput { 14388 s.AbortDate = &v 14389 return s 14390 } 14391 14392 // SetAbortRuleId sets the AbortRuleId field's value. 14393 func (s *CreateMultipartUploadOutput) SetAbortRuleId(v string) *CreateMultipartUploadOutput { 14394 s.AbortRuleId = &v 14395 return s 14396 } 14397 14398 // SetBucket sets the Bucket field's value. 14399 func (s *CreateMultipartUploadOutput) SetBucket(v string) *CreateMultipartUploadOutput { 14400 s.Bucket = &v 14401 return s 14402 } 14403 14404 func (s *CreateMultipartUploadOutput) getBucket() (v string) { 14405 if s.Bucket == nil { 14406 return v 14407 } 14408 return *s.Bucket 14409 } 14410 14411 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 14412 func (s *CreateMultipartUploadOutput) SetBucketKeyEnabled(v bool) *CreateMultipartUploadOutput { 14413 s.BucketKeyEnabled = &v 14414 return s 14415 } 14416 14417 // SetKey sets the Key field's value. 14418 func (s *CreateMultipartUploadOutput) SetKey(v string) *CreateMultipartUploadOutput { 14419 s.Key = &v 14420 return s 14421 } 14422 14423 // SetRequestCharged sets the RequestCharged field's value. 14424 func (s *CreateMultipartUploadOutput) SetRequestCharged(v string) *CreateMultipartUploadOutput { 14425 s.RequestCharged = &v 14426 return s 14427 } 14428 14429 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 14430 func (s *CreateMultipartUploadOutput) SetSSECustomerAlgorithm(v string) *CreateMultipartUploadOutput { 14431 s.SSECustomerAlgorithm = &v 14432 return s 14433 } 14434 14435 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 14436 func (s *CreateMultipartUploadOutput) SetSSECustomerKeyMD5(v string) *CreateMultipartUploadOutput { 14437 s.SSECustomerKeyMD5 = &v 14438 return s 14439 } 14440 14441 // SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value. 14442 func (s *CreateMultipartUploadOutput) SetSSEKMSEncryptionContext(v string) *CreateMultipartUploadOutput { 14443 s.SSEKMSEncryptionContext = &v 14444 return s 14445 } 14446 14447 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 14448 func (s *CreateMultipartUploadOutput) SetSSEKMSKeyId(v string) *CreateMultipartUploadOutput { 14449 s.SSEKMSKeyId = &v 14450 return s 14451 } 14452 14453 // SetServerSideEncryption sets the ServerSideEncryption field's value. 14454 func (s *CreateMultipartUploadOutput) SetServerSideEncryption(v string) *CreateMultipartUploadOutput { 14455 s.ServerSideEncryption = &v 14456 return s 14457 } 14458 14459 // SetUploadId sets the UploadId field's value. 14460 func (s *CreateMultipartUploadOutput) SetUploadId(v string) *CreateMultipartUploadOutput { 14461 s.UploadId = &v 14462 return s 14463 } 14464 14465 // The container element for specifying the default Object Lock retention settings 14466 // for new objects placed in the specified bucket. 14467 // 14468 // * The DefaultRetention settings require both a mode and a period. 14469 // 14470 // * The DefaultRetention period can be either Days or Years but you must 14471 // select one. You cannot specify Days and Years at the same time. 14472 type DefaultRetention struct { 14473 _ struct{} `type:"structure"` 14474 14475 // The number of days that you want to specify for the default retention period. 14476 // Must be used with Mode. 14477 Days *int64 `type:"integer"` 14478 14479 // The default Object Lock retention mode you want to apply to new objects placed 14480 // in the specified bucket. Must be used with either Days or Years. 14481 Mode *string `type:"string" enum:"ObjectLockRetentionMode"` 14482 14483 // The number of years that you want to specify for the default retention period. 14484 // Must be used with Mode. 14485 Years *int64 `type:"integer"` 14486 } 14487 14488 // String returns the string representation. 14489 // 14490 // API parameter values that are decorated as "sensitive" in the API will not 14491 // be included in the string output. The member name will be present, but the 14492 // value will be replaced with "sensitive". 14493 func (s DefaultRetention) String() string { 14494 return awsutil.Prettify(s) 14495 } 14496 14497 // GoString returns the string representation. 14498 // 14499 // API parameter values that are decorated as "sensitive" in the API will not 14500 // be included in the string output. The member name will be present, but the 14501 // value will be replaced with "sensitive". 14502 func (s DefaultRetention) GoString() string { 14503 return s.String() 14504 } 14505 14506 // SetDays sets the Days field's value. 14507 func (s *DefaultRetention) SetDays(v int64) *DefaultRetention { 14508 s.Days = &v 14509 return s 14510 } 14511 14512 // SetMode sets the Mode field's value. 14513 func (s *DefaultRetention) SetMode(v string) *DefaultRetention { 14514 s.Mode = &v 14515 return s 14516 } 14517 14518 // SetYears sets the Years field's value. 14519 func (s *DefaultRetention) SetYears(v int64) *DefaultRetention { 14520 s.Years = &v 14521 return s 14522 } 14523 14524 // Container for the objects to delete. 14525 type Delete struct { 14526 _ struct{} `type:"structure"` 14527 14528 // The objects to delete. 14529 // 14530 // Objects is a required field 14531 Objects []*ObjectIdentifier `locationName:"Object" type:"list" flattened:"true" required:"true"` 14532 14533 // Element to enable quiet mode for the request. When you add this element, 14534 // you must set its value to true. 14535 Quiet *bool `type:"boolean"` 14536 } 14537 14538 // String returns the string representation. 14539 // 14540 // API parameter values that are decorated as "sensitive" in the API will not 14541 // be included in the string output. The member name will be present, but the 14542 // value will be replaced with "sensitive". 14543 func (s Delete) String() string { 14544 return awsutil.Prettify(s) 14545 } 14546 14547 // GoString returns the string representation. 14548 // 14549 // API parameter values that are decorated as "sensitive" in the API will not 14550 // be included in the string output. The member name will be present, but the 14551 // value will be replaced with "sensitive". 14552 func (s Delete) GoString() string { 14553 return s.String() 14554 } 14555 14556 // Validate inspects the fields of the type to determine if they are valid. 14557 func (s *Delete) Validate() error { 14558 invalidParams := request.ErrInvalidParams{Context: "Delete"} 14559 if s.Objects == nil { 14560 invalidParams.Add(request.NewErrParamRequired("Objects")) 14561 } 14562 if s.Objects != nil { 14563 for i, v := range s.Objects { 14564 if v == nil { 14565 continue 14566 } 14567 if err := v.Validate(); err != nil { 14568 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Objects", i), err.(request.ErrInvalidParams)) 14569 } 14570 } 14571 } 14572 14573 if invalidParams.Len() > 0 { 14574 return invalidParams 14575 } 14576 return nil 14577 } 14578 14579 // SetObjects sets the Objects field's value. 14580 func (s *Delete) SetObjects(v []*ObjectIdentifier) *Delete { 14581 s.Objects = v 14582 return s 14583 } 14584 14585 // SetQuiet sets the Quiet field's value. 14586 func (s *Delete) SetQuiet(v bool) *Delete { 14587 s.Quiet = &v 14588 return s 14589 } 14590 14591 type DeleteBucketAnalyticsConfigurationInput struct { 14592 _ struct{} `locationName:"DeleteBucketAnalyticsConfigurationRequest" type:"structure"` 14593 14594 // The name of the bucket from which an analytics configuration is deleted. 14595 // 14596 // Bucket is a required field 14597 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 14598 14599 // The account ID of the expected bucket owner. If the bucket is owned by a 14600 // different account, the request will fail with an HTTP 403 (Access Denied) 14601 // error. 14602 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 14603 14604 // The ID that identifies the analytics configuration. 14605 // 14606 // Id is a required field 14607 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 14608 } 14609 14610 // String returns the string representation. 14611 // 14612 // API parameter values that are decorated as "sensitive" in the API will not 14613 // be included in the string output. The member name will be present, but the 14614 // value will be replaced with "sensitive". 14615 func (s DeleteBucketAnalyticsConfigurationInput) String() string { 14616 return awsutil.Prettify(s) 14617 } 14618 14619 // GoString returns the string representation. 14620 // 14621 // API parameter values that are decorated as "sensitive" in the API will not 14622 // be included in the string output. The member name will be present, but the 14623 // value will be replaced with "sensitive". 14624 func (s DeleteBucketAnalyticsConfigurationInput) GoString() string { 14625 return s.String() 14626 } 14627 14628 // Validate inspects the fields of the type to determine if they are valid. 14629 func (s *DeleteBucketAnalyticsConfigurationInput) Validate() error { 14630 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketAnalyticsConfigurationInput"} 14631 if s.Bucket == nil { 14632 invalidParams.Add(request.NewErrParamRequired("Bucket")) 14633 } 14634 if s.Bucket != nil && len(*s.Bucket) < 1 { 14635 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 14636 } 14637 if s.Id == nil { 14638 invalidParams.Add(request.NewErrParamRequired("Id")) 14639 } 14640 14641 if invalidParams.Len() > 0 { 14642 return invalidParams 14643 } 14644 return nil 14645 } 14646 14647 // SetBucket sets the Bucket field's value. 14648 func (s *DeleteBucketAnalyticsConfigurationInput) SetBucket(v string) *DeleteBucketAnalyticsConfigurationInput { 14649 s.Bucket = &v 14650 return s 14651 } 14652 14653 func (s *DeleteBucketAnalyticsConfigurationInput) getBucket() (v string) { 14654 if s.Bucket == nil { 14655 return v 14656 } 14657 return *s.Bucket 14658 } 14659 14660 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 14661 func (s *DeleteBucketAnalyticsConfigurationInput) SetExpectedBucketOwner(v string) *DeleteBucketAnalyticsConfigurationInput { 14662 s.ExpectedBucketOwner = &v 14663 return s 14664 } 14665 14666 // SetId sets the Id field's value. 14667 func (s *DeleteBucketAnalyticsConfigurationInput) SetId(v string) *DeleteBucketAnalyticsConfigurationInput { 14668 s.Id = &v 14669 return s 14670 } 14671 14672 func (s *DeleteBucketAnalyticsConfigurationInput) getEndpointARN() (arn.Resource, error) { 14673 if s.Bucket == nil { 14674 return nil, fmt.Errorf("member Bucket is nil") 14675 } 14676 return parseEndpointARN(*s.Bucket) 14677 } 14678 14679 func (s *DeleteBucketAnalyticsConfigurationInput) hasEndpointARN() bool { 14680 if s.Bucket == nil { 14681 return false 14682 } 14683 return arn.IsARN(*s.Bucket) 14684 } 14685 14686 // updateArnableField updates the value of the input field that 14687 // takes an ARN as an input. This method is useful to backfill 14688 // the parsed resource name from ARN into the input member. 14689 // It returns a pointer to a modified copy of input and an error. 14690 // Note that original input is not modified. 14691 func (s DeleteBucketAnalyticsConfigurationInput) updateArnableField(v string) (interface{}, error) { 14692 if s.Bucket == nil { 14693 return nil, fmt.Errorf("member Bucket is nil") 14694 } 14695 s.Bucket = aws.String(v) 14696 return &s, nil 14697 } 14698 14699 type DeleteBucketAnalyticsConfigurationOutput struct { 14700 _ struct{} `type:"structure"` 14701 } 14702 14703 // String returns the string representation. 14704 // 14705 // API parameter values that are decorated as "sensitive" in the API will not 14706 // be included in the string output. The member name will be present, but the 14707 // value will be replaced with "sensitive". 14708 func (s DeleteBucketAnalyticsConfigurationOutput) String() string { 14709 return awsutil.Prettify(s) 14710 } 14711 14712 // GoString returns the string representation. 14713 // 14714 // API parameter values that are decorated as "sensitive" in the API will not 14715 // be included in the string output. The member name will be present, but the 14716 // value will be replaced with "sensitive". 14717 func (s DeleteBucketAnalyticsConfigurationOutput) GoString() string { 14718 return s.String() 14719 } 14720 14721 type DeleteBucketCorsInput struct { 14722 _ struct{} `locationName:"DeleteBucketCorsRequest" type:"structure"` 14723 14724 // Specifies the bucket whose cors configuration is being deleted. 14725 // 14726 // Bucket is a required field 14727 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 14728 14729 // The account ID of the expected bucket owner. If the bucket is owned by a 14730 // different account, the request will fail with an HTTP 403 (Access Denied) 14731 // error. 14732 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 14733 } 14734 14735 // String returns the string representation. 14736 // 14737 // API parameter values that are decorated as "sensitive" in the API will not 14738 // be included in the string output. The member name will be present, but the 14739 // value will be replaced with "sensitive". 14740 func (s DeleteBucketCorsInput) String() string { 14741 return awsutil.Prettify(s) 14742 } 14743 14744 // GoString returns the string representation. 14745 // 14746 // API parameter values that are decorated as "sensitive" in the API will not 14747 // be included in the string output. The member name will be present, but the 14748 // value will be replaced with "sensitive". 14749 func (s DeleteBucketCorsInput) GoString() string { 14750 return s.String() 14751 } 14752 14753 // Validate inspects the fields of the type to determine if they are valid. 14754 func (s *DeleteBucketCorsInput) Validate() error { 14755 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketCorsInput"} 14756 if s.Bucket == nil { 14757 invalidParams.Add(request.NewErrParamRequired("Bucket")) 14758 } 14759 if s.Bucket != nil && len(*s.Bucket) < 1 { 14760 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 14761 } 14762 14763 if invalidParams.Len() > 0 { 14764 return invalidParams 14765 } 14766 return nil 14767 } 14768 14769 // SetBucket sets the Bucket field's value. 14770 func (s *DeleteBucketCorsInput) SetBucket(v string) *DeleteBucketCorsInput { 14771 s.Bucket = &v 14772 return s 14773 } 14774 14775 func (s *DeleteBucketCorsInput) getBucket() (v string) { 14776 if s.Bucket == nil { 14777 return v 14778 } 14779 return *s.Bucket 14780 } 14781 14782 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 14783 func (s *DeleteBucketCorsInput) SetExpectedBucketOwner(v string) *DeleteBucketCorsInput { 14784 s.ExpectedBucketOwner = &v 14785 return s 14786 } 14787 14788 func (s *DeleteBucketCorsInput) getEndpointARN() (arn.Resource, error) { 14789 if s.Bucket == nil { 14790 return nil, fmt.Errorf("member Bucket is nil") 14791 } 14792 return parseEndpointARN(*s.Bucket) 14793 } 14794 14795 func (s *DeleteBucketCorsInput) hasEndpointARN() bool { 14796 if s.Bucket == nil { 14797 return false 14798 } 14799 return arn.IsARN(*s.Bucket) 14800 } 14801 14802 // updateArnableField updates the value of the input field that 14803 // takes an ARN as an input. This method is useful to backfill 14804 // the parsed resource name from ARN into the input member. 14805 // It returns a pointer to a modified copy of input and an error. 14806 // Note that original input is not modified. 14807 func (s DeleteBucketCorsInput) updateArnableField(v string) (interface{}, error) { 14808 if s.Bucket == nil { 14809 return nil, fmt.Errorf("member Bucket is nil") 14810 } 14811 s.Bucket = aws.String(v) 14812 return &s, nil 14813 } 14814 14815 type DeleteBucketCorsOutput struct { 14816 _ struct{} `type:"structure"` 14817 } 14818 14819 // String returns the string representation. 14820 // 14821 // API parameter values that are decorated as "sensitive" in the API will not 14822 // be included in the string output. The member name will be present, but the 14823 // value will be replaced with "sensitive". 14824 func (s DeleteBucketCorsOutput) String() string { 14825 return awsutil.Prettify(s) 14826 } 14827 14828 // GoString returns the string representation. 14829 // 14830 // API parameter values that are decorated as "sensitive" in the API will not 14831 // be included in the string output. The member name will be present, but the 14832 // value will be replaced with "sensitive". 14833 func (s DeleteBucketCorsOutput) GoString() string { 14834 return s.String() 14835 } 14836 14837 type DeleteBucketEncryptionInput struct { 14838 _ struct{} `locationName:"DeleteBucketEncryptionRequest" type:"structure"` 14839 14840 // The name of the bucket containing the server-side encryption configuration 14841 // to delete. 14842 // 14843 // Bucket is a required field 14844 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 14845 14846 // The account ID of the expected bucket owner. If the bucket is owned by a 14847 // different account, the request will fail with an HTTP 403 (Access Denied) 14848 // error. 14849 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 14850 } 14851 14852 // String returns the string representation. 14853 // 14854 // API parameter values that are decorated as "sensitive" in the API will not 14855 // be included in the string output. The member name will be present, but the 14856 // value will be replaced with "sensitive". 14857 func (s DeleteBucketEncryptionInput) String() string { 14858 return awsutil.Prettify(s) 14859 } 14860 14861 // GoString returns the string representation. 14862 // 14863 // API parameter values that are decorated as "sensitive" in the API will not 14864 // be included in the string output. The member name will be present, but the 14865 // value will be replaced with "sensitive". 14866 func (s DeleteBucketEncryptionInput) GoString() string { 14867 return s.String() 14868 } 14869 14870 // Validate inspects the fields of the type to determine if they are valid. 14871 func (s *DeleteBucketEncryptionInput) Validate() error { 14872 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketEncryptionInput"} 14873 if s.Bucket == nil { 14874 invalidParams.Add(request.NewErrParamRequired("Bucket")) 14875 } 14876 if s.Bucket != nil && len(*s.Bucket) < 1 { 14877 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 14878 } 14879 14880 if invalidParams.Len() > 0 { 14881 return invalidParams 14882 } 14883 return nil 14884 } 14885 14886 // SetBucket sets the Bucket field's value. 14887 func (s *DeleteBucketEncryptionInput) SetBucket(v string) *DeleteBucketEncryptionInput { 14888 s.Bucket = &v 14889 return s 14890 } 14891 14892 func (s *DeleteBucketEncryptionInput) getBucket() (v string) { 14893 if s.Bucket == nil { 14894 return v 14895 } 14896 return *s.Bucket 14897 } 14898 14899 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 14900 func (s *DeleteBucketEncryptionInput) SetExpectedBucketOwner(v string) *DeleteBucketEncryptionInput { 14901 s.ExpectedBucketOwner = &v 14902 return s 14903 } 14904 14905 func (s *DeleteBucketEncryptionInput) getEndpointARN() (arn.Resource, error) { 14906 if s.Bucket == nil { 14907 return nil, fmt.Errorf("member Bucket is nil") 14908 } 14909 return parseEndpointARN(*s.Bucket) 14910 } 14911 14912 func (s *DeleteBucketEncryptionInput) hasEndpointARN() bool { 14913 if s.Bucket == nil { 14914 return false 14915 } 14916 return arn.IsARN(*s.Bucket) 14917 } 14918 14919 // updateArnableField updates the value of the input field that 14920 // takes an ARN as an input. This method is useful to backfill 14921 // the parsed resource name from ARN into the input member. 14922 // It returns a pointer to a modified copy of input and an error. 14923 // Note that original input is not modified. 14924 func (s DeleteBucketEncryptionInput) updateArnableField(v string) (interface{}, error) { 14925 if s.Bucket == nil { 14926 return nil, fmt.Errorf("member Bucket is nil") 14927 } 14928 s.Bucket = aws.String(v) 14929 return &s, nil 14930 } 14931 14932 type DeleteBucketEncryptionOutput struct { 14933 _ struct{} `type:"structure"` 14934 } 14935 14936 // String returns the string representation. 14937 // 14938 // API parameter values that are decorated as "sensitive" in the API will not 14939 // be included in the string output. The member name will be present, but the 14940 // value will be replaced with "sensitive". 14941 func (s DeleteBucketEncryptionOutput) String() string { 14942 return awsutil.Prettify(s) 14943 } 14944 14945 // GoString returns the string representation. 14946 // 14947 // API parameter values that are decorated as "sensitive" in the API will not 14948 // be included in the string output. The member name will be present, but the 14949 // value will be replaced with "sensitive". 14950 func (s DeleteBucketEncryptionOutput) GoString() string { 14951 return s.String() 14952 } 14953 14954 type DeleteBucketInput struct { 14955 _ struct{} `locationName:"DeleteBucketRequest" type:"structure"` 14956 14957 // Specifies the bucket being deleted. 14958 // 14959 // Bucket is a required field 14960 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 14961 14962 // The account ID of the expected bucket owner. If the bucket is owned by a 14963 // different account, the request will fail with an HTTP 403 (Access Denied) 14964 // error. 14965 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 14966 } 14967 14968 // String returns the string representation. 14969 // 14970 // API parameter values that are decorated as "sensitive" in the API will not 14971 // be included in the string output. The member name will be present, but the 14972 // value will be replaced with "sensitive". 14973 func (s DeleteBucketInput) String() string { 14974 return awsutil.Prettify(s) 14975 } 14976 14977 // GoString returns the string representation. 14978 // 14979 // API parameter values that are decorated as "sensitive" in the API will not 14980 // be included in the string output. The member name will be present, but the 14981 // value will be replaced with "sensitive". 14982 func (s DeleteBucketInput) GoString() string { 14983 return s.String() 14984 } 14985 14986 // Validate inspects the fields of the type to determine if they are valid. 14987 func (s *DeleteBucketInput) Validate() error { 14988 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"} 14989 if s.Bucket == nil { 14990 invalidParams.Add(request.NewErrParamRequired("Bucket")) 14991 } 14992 if s.Bucket != nil && len(*s.Bucket) < 1 { 14993 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 14994 } 14995 14996 if invalidParams.Len() > 0 { 14997 return invalidParams 14998 } 14999 return nil 15000 } 15001 15002 // SetBucket sets the Bucket field's value. 15003 func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput { 15004 s.Bucket = &v 15005 return s 15006 } 15007 15008 func (s *DeleteBucketInput) getBucket() (v string) { 15009 if s.Bucket == nil { 15010 return v 15011 } 15012 return *s.Bucket 15013 } 15014 15015 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 15016 func (s *DeleteBucketInput) SetExpectedBucketOwner(v string) *DeleteBucketInput { 15017 s.ExpectedBucketOwner = &v 15018 return s 15019 } 15020 15021 func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) { 15022 if s.Bucket == nil { 15023 return nil, fmt.Errorf("member Bucket is nil") 15024 } 15025 return parseEndpointARN(*s.Bucket) 15026 } 15027 15028 func (s *DeleteBucketInput) hasEndpointARN() bool { 15029 if s.Bucket == nil { 15030 return false 15031 } 15032 return arn.IsARN(*s.Bucket) 15033 } 15034 15035 // updateArnableField updates the value of the input field that 15036 // takes an ARN as an input. This method is useful to backfill 15037 // the parsed resource name from ARN into the input member. 15038 // It returns a pointer to a modified copy of input and an error. 15039 // Note that original input is not modified. 15040 func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) { 15041 if s.Bucket == nil { 15042 return nil, fmt.Errorf("member Bucket is nil") 15043 } 15044 s.Bucket = aws.String(v) 15045 return &s, nil 15046 } 15047 15048 type DeleteBucketIntelligentTieringConfigurationInput struct { 15049 _ struct{} `locationName:"DeleteBucketIntelligentTieringConfigurationRequest" type:"structure"` 15050 15051 // The name of the Amazon S3 bucket whose configuration you want to modify or 15052 // retrieve. 15053 // 15054 // Bucket is a required field 15055 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 15056 15057 // The ID used to identify the S3 Intelligent-Tiering configuration. 15058 // 15059 // Id is a required field 15060 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 15061 } 15062 15063 // String returns the string representation. 15064 // 15065 // API parameter values that are decorated as "sensitive" in the API will not 15066 // be included in the string output. The member name will be present, but the 15067 // value will be replaced with "sensitive". 15068 func (s DeleteBucketIntelligentTieringConfigurationInput) String() string { 15069 return awsutil.Prettify(s) 15070 } 15071 15072 // GoString returns the string representation. 15073 // 15074 // API parameter values that are decorated as "sensitive" in the API will not 15075 // be included in the string output. The member name will be present, but the 15076 // value will be replaced with "sensitive". 15077 func (s DeleteBucketIntelligentTieringConfigurationInput) GoString() string { 15078 return s.String() 15079 } 15080 15081 // Validate inspects the fields of the type to determine if they are valid. 15082 func (s *DeleteBucketIntelligentTieringConfigurationInput) Validate() error { 15083 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketIntelligentTieringConfigurationInput"} 15084 if s.Bucket == nil { 15085 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15086 } 15087 if s.Bucket != nil && len(*s.Bucket) < 1 { 15088 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 15089 } 15090 if s.Id == nil { 15091 invalidParams.Add(request.NewErrParamRequired("Id")) 15092 } 15093 15094 if invalidParams.Len() > 0 { 15095 return invalidParams 15096 } 15097 return nil 15098 } 15099 15100 // SetBucket sets the Bucket field's value. 15101 func (s *DeleteBucketIntelligentTieringConfigurationInput) SetBucket(v string) *DeleteBucketIntelligentTieringConfigurationInput { 15102 s.Bucket = &v 15103 return s 15104 } 15105 15106 func (s *DeleteBucketIntelligentTieringConfigurationInput) getBucket() (v string) { 15107 if s.Bucket == nil { 15108 return v 15109 } 15110 return *s.Bucket 15111 } 15112 15113 // SetId sets the Id field's value. 15114 func (s *DeleteBucketIntelligentTieringConfigurationInput) SetId(v string) *DeleteBucketIntelligentTieringConfigurationInput { 15115 s.Id = &v 15116 return s 15117 } 15118 15119 func (s *DeleteBucketIntelligentTieringConfigurationInput) getEndpointARN() (arn.Resource, error) { 15120 if s.Bucket == nil { 15121 return nil, fmt.Errorf("member Bucket is nil") 15122 } 15123 return parseEndpointARN(*s.Bucket) 15124 } 15125 15126 func (s *DeleteBucketIntelligentTieringConfigurationInput) hasEndpointARN() bool { 15127 if s.Bucket == nil { 15128 return false 15129 } 15130 return arn.IsARN(*s.Bucket) 15131 } 15132 15133 // updateArnableField updates the value of the input field that 15134 // takes an ARN as an input. This method is useful to backfill 15135 // the parsed resource name from ARN into the input member. 15136 // It returns a pointer to a modified copy of input and an error. 15137 // Note that original input is not modified. 15138 func (s DeleteBucketIntelligentTieringConfigurationInput) updateArnableField(v string) (interface{}, error) { 15139 if s.Bucket == nil { 15140 return nil, fmt.Errorf("member Bucket is nil") 15141 } 15142 s.Bucket = aws.String(v) 15143 return &s, nil 15144 } 15145 15146 type DeleteBucketIntelligentTieringConfigurationOutput struct { 15147 _ struct{} `type:"structure"` 15148 } 15149 15150 // String returns the string representation. 15151 // 15152 // API parameter values that are decorated as "sensitive" in the API will not 15153 // be included in the string output. The member name will be present, but the 15154 // value will be replaced with "sensitive". 15155 func (s DeleteBucketIntelligentTieringConfigurationOutput) String() string { 15156 return awsutil.Prettify(s) 15157 } 15158 15159 // GoString returns the string representation. 15160 // 15161 // API parameter values that are decorated as "sensitive" in the API will not 15162 // be included in the string output. The member name will be present, but the 15163 // value will be replaced with "sensitive". 15164 func (s DeleteBucketIntelligentTieringConfigurationOutput) GoString() string { 15165 return s.String() 15166 } 15167 15168 type DeleteBucketInventoryConfigurationInput struct { 15169 _ struct{} `locationName:"DeleteBucketInventoryConfigurationRequest" type:"structure"` 15170 15171 // The name of the bucket containing the inventory configuration to delete. 15172 // 15173 // Bucket is a required field 15174 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 15175 15176 // The account ID of the expected bucket owner. If the bucket is owned by a 15177 // different account, the request will fail with an HTTP 403 (Access Denied) 15178 // error. 15179 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 15180 15181 // The ID used to identify the inventory configuration. 15182 // 15183 // Id is a required field 15184 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 15185 } 15186 15187 // String returns the string representation. 15188 // 15189 // API parameter values that are decorated as "sensitive" in the API will not 15190 // be included in the string output. The member name will be present, but the 15191 // value will be replaced with "sensitive". 15192 func (s DeleteBucketInventoryConfigurationInput) String() string { 15193 return awsutil.Prettify(s) 15194 } 15195 15196 // GoString returns the string representation. 15197 // 15198 // API parameter values that are decorated as "sensitive" in the API will not 15199 // be included in the string output. The member name will be present, but the 15200 // value will be replaced with "sensitive". 15201 func (s DeleteBucketInventoryConfigurationInput) GoString() string { 15202 return s.String() 15203 } 15204 15205 // Validate inspects the fields of the type to determine if they are valid. 15206 func (s *DeleteBucketInventoryConfigurationInput) Validate() error { 15207 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInventoryConfigurationInput"} 15208 if s.Bucket == nil { 15209 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15210 } 15211 if s.Bucket != nil && len(*s.Bucket) < 1 { 15212 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 15213 } 15214 if s.Id == nil { 15215 invalidParams.Add(request.NewErrParamRequired("Id")) 15216 } 15217 15218 if invalidParams.Len() > 0 { 15219 return invalidParams 15220 } 15221 return nil 15222 } 15223 15224 // SetBucket sets the Bucket field's value. 15225 func (s *DeleteBucketInventoryConfigurationInput) SetBucket(v string) *DeleteBucketInventoryConfigurationInput { 15226 s.Bucket = &v 15227 return s 15228 } 15229 15230 func (s *DeleteBucketInventoryConfigurationInput) getBucket() (v string) { 15231 if s.Bucket == nil { 15232 return v 15233 } 15234 return *s.Bucket 15235 } 15236 15237 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 15238 func (s *DeleteBucketInventoryConfigurationInput) SetExpectedBucketOwner(v string) *DeleteBucketInventoryConfigurationInput { 15239 s.ExpectedBucketOwner = &v 15240 return s 15241 } 15242 15243 // SetId sets the Id field's value. 15244 func (s *DeleteBucketInventoryConfigurationInput) SetId(v string) *DeleteBucketInventoryConfigurationInput { 15245 s.Id = &v 15246 return s 15247 } 15248 15249 func (s *DeleteBucketInventoryConfigurationInput) getEndpointARN() (arn.Resource, error) { 15250 if s.Bucket == nil { 15251 return nil, fmt.Errorf("member Bucket is nil") 15252 } 15253 return parseEndpointARN(*s.Bucket) 15254 } 15255 15256 func (s *DeleteBucketInventoryConfigurationInput) hasEndpointARN() bool { 15257 if s.Bucket == nil { 15258 return false 15259 } 15260 return arn.IsARN(*s.Bucket) 15261 } 15262 15263 // updateArnableField updates the value of the input field that 15264 // takes an ARN as an input. This method is useful to backfill 15265 // the parsed resource name from ARN into the input member. 15266 // It returns a pointer to a modified copy of input and an error. 15267 // Note that original input is not modified. 15268 func (s DeleteBucketInventoryConfigurationInput) updateArnableField(v string) (interface{}, error) { 15269 if s.Bucket == nil { 15270 return nil, fmt.Errorf("member Bucket is nil") 15271 } 15272 s.Bucket = aws.String(v) 15273 return &s, nil 15274 } 15275 15276 type DeleteBucketInventoryConfigurationOutput struct { 15277 _ struct{} `type:"structure"` 15278 } 15279 15280 // String returns the string representation. 15281 // 15282 // API parameter values that are decorated as "sensitive" in the API will not 15283 // be included in the string output. The member name will be present, but the 15284 // value will be replaced with "sensitive". 15285 func (s DeleteBucketInventoryConfigurationOutput) String() string { 15286 return awsutil.Prettify(s) 15287 } 15288 15289 // GoString returns the string representation. 15290 // 15291 // API parameter values that are decorated as "sensitive" in the API will not 15292 // be included in the string output. The member name will be present, but the 15293 // value will be replaced with "sensitive". 15294 func (s DeleteBucketInventoryConfigurationOutput) GoString() string { 15295 return s.String() 15296 } 15297 15298 type DeleteBucketLifecycleInput struct { 15299 _ struct{} `locationName:"DeleteBucketLifecycleRequest" type:"structure"` 15300 15301 // The bucket name of the lifecycle to delete. 15302 // 15303 // Bucket is a required field 15304 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 15305 15306 // The account ID of the expected bucket owner. If the bucket is owned by a 15307 // different account, the request will fail with an HTTP 403 (Access Denied) 15308 // error. 15309 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 15310 } 15311 15312 // String returns the string representation. 15313 // 15314 // API parameter values that are decorated as "sensitive" in the API will not 15315 // be included in the string output. The member name will be present, but the 15316 // value will be replaced with "sensitive". 15317 func (s DeleteBucketLifecycleInput) String() string { 15318 return awsutil.Prettify(s) 15319 } 15320 15321 // GoString returns the string representation. 15322 // 15323 // API parameter values that are decorated as "sensitive" in the API will not 15324 // be included in the string output. The member name will be present, but the 15325 // value will be replaced with "sensitive". 15326 func (s DeleteBucketLifecycleInput) GoString() string { 15327 return s.String() 15328 } 15329 15330 // Validate inspects the fields of the type to determine if they are valid. 15331 func (s *DeleteBucketLifecycleInput) Validate() error { 15332 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleInput"} 15333 if s.Bucket == nil { 15334 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15335 } 15336 if s.Bucket != nil && len(*s.Bucket) < 1 { 15337 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 15338 } 15339 15340 if invalidParams.Len() > 0 { 15341 return invalidParams 15342 } 15343 return nil 15344 } 15345 15346 // SetBucket sets the Bucket field's value. 15347 func (s *DeleteBucketLifecycleInput) SetBucket(v string) *DeleteBucketLifecycleInput { 15348 s.Bucket = &v 15349 return s 15350 } 15351 15352 func (s *DeleteBucketLifecycleInput) getBucket() (v string) { 15353 if s.Bucket == nil { 15354 return v 15355 } 15356 return *s.Bucket 15357 } 15358 15359 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 15360 func (s *DeleteBucketLifecycleInput) SetExpectedBucketOwner(v string) *DeleteBucketLifecycleInput { 15361 s.ExpectedBucketOwner = &v 15362 return s 15363 } 15364 15365 func (s *DeleteBucketLifecycleInput) getEndpointARN() (arn.Resource, error) { 15366 if s.Bucket == nil { 15367 return nil, fmt.Errorf("member Bucket is nil") 15368 } 15369 return parseEndpointARN(*s.Bucket) 15370 } 15371 15372 func (s *DeleteBucketLifecycleInput) hasEndpointARN() bool { 15373 if s.Bucket == nil { 15374 return false 15375 } 15376 return arn.IsARN(*s.Bucket) 15377 } 15378 15379 // updateArnableField updates the value of the input field that 15380 // takes an ARN as an input. This method is useful to backfill 15381 // the parsed resource name from ARN into the input member. 15382 // It returns a pointer to a modified copy of input and an error. 15383 // Note that original input is not modified. 15384 func (s DeleteBucketLifecycleInput) updateArnableField(v string) (interface{}, error) { 15385 if s.Bucket == nil { 15386 return nil, fmt.Errorf("member Bucket is nil") 15387 } 15388 s.Bucket = aws.String(v) 15389 return &s, nil 15390 } 15391 15392 type DeleteBucketLifecycleOutput struct { 15393 _ struct{} `type:"structure"` 15394 } 15395 15396 // String returns the string representation. 15397 // 15398 // API parameter values that are decorated as "sensitive" in the API will not 15399 // be included in the string output. The member name will be present, but the 15400 // value will be replaced with "sensitive". 15401 func (s DeleteBucketLifecycleOutput) String() string { 15402 return awsutil.Prettify(s) 15403 } 15404 15405 // GoString returns the string representation. 15406 // 15407 // API parameter values that are decorated as "sensitive" in the API will not 15408 // be included in the string output. The member name will be present, but the 15409 // value will be replaced with "sensitive". 15410 func (s DeleteBucketLifecycleOutput) GoString() string { 15411 return s.String() 15412 } 15413 15414 type DeleteBucketMetricsConfigurationInput struct { 15415 _ struct{} `locationName:"DeleteBucketMetricsConfigurationRequest" type:"structure"` 15416 15417 // The name of the bucket containing the metrics configuration to delete. 15418 // 15419 // Bucket is a required field 15420 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 15421 15422 // The account ID of the expected bucket owner. If the bucket is owned by a 15423 // different account, the request will fail with an HTTP 403 (Access Denied) 15424 // error. 15425 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 15426 15427 // The ID used to identify the metrics configuration. 15428 // 15429 // Id is a required field 15430 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 15431 } 15432 15433 // String returns the string representation. 15434 // 15435 // API parameter values that are decorated as "sensitive" in the API will not 15436 // be included in the string output. The member name will be present, but the 15437 // value will be replaced with "sensitive". 15438 func (s DeleteBucketMetricsConfigurationInput) String() string { 15439 return awsutil.Prettify(s) 15440 } 15441 15442 // GoString returns the string representation. 15443 // 15444 // API parameter values that are decorated as "sensitive" in the API will not 15445 // be included in the string output. The member name will be present, but the 15446 // value will be replaced with "sensitive". 15447 func (s DeleteBucketMetricsConfigurationInput) GoString() string { 15448 return s.String() 15449 } 15450 15451 // Validate inspects the fields of the type to determine if they are valid. 15452 func (s *DeleteBucketMetricsConfigurationInput) Validate() error { 15453 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketMetricsConfigurationInput"} 15454 if s.Bucket == nil { 15455 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15456 } 15457 if s.Bucket != nil && len(*s.Bucket) < 1 { 15458 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 15459 } 15460 if s.Id == nil { 15461 invalidParams.Add(request.NewErrParamRequired("Id")) 15462 } 15463 15464 if invalidParams.Len() > 0 { 15465 return invalidParams 15466 } 15467 return nil 15468 } 15469 15470 // SetBucket sets the Bucket field's value. 15471 func (s *DeleteBucketMetricsConfigurationInput) SetBucket(v string) *DeleteBucketMetricsConfigurationInput { 15472 s.Bucket = &v 15473 return s 15474 } 15475 15476 func (s *DeleteBucketMetricsConfigurationInput) getBucket() (v string) { 15477 if s.Bucket == nil { 15478 return v 15479 } 15480 return *s.Bucket 15481 } 15482 15483 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 15484 func (s *DeleteBucketMetricsConfigurationInput) SetExpectedBucketOwner(v string) *DeleteBucketMetricsConfigurationInput { 15485 s.ExpectedBucketOwner = &v 15486 return s 15487 } 15488 15489 // SetId sets the Id field's value. 15490 func (s *DeleteBucketMetricsConfigurationInput) SetId(v string) *DeleteBucketMetricsConfigurationInput { 15491 s.Id = &v 15492 return s 15493 } 15494 15495 func (s *DeleteBucketMetricsConfigurationInput) getEndpointARN() (arn.Resource, error) { 15496 if s.Bucket == nil { 15497 return nil, fmt.Errorf("member Bucket is nil") 15498 } 15499 return parseEndpointARN(*s.Bucket) 15500 } 15501 15502 func (s *DeleteBucketMetricsConfigurationInput) hasEndpointARN() bool { 15503 if s.Bucket == nil { 15504 return false 15505 } 15506 return arn.IsARN(*s.Bucket) 15507 } 15508 15509 // updateArnableField updates the value of the input field that 15510 // takes an ARN as an input. This method is useful to backfill 15511 // the parsed resource name from ARN into the input member. 15512 // It returns a pointer to a modified copy of input and an error. 15513 // Note that original input is not modified. 15514 func (s DeleteBucketMetricsConfigurationInput) updateArnableField(v string) (interface{}, error) { 15515 if s.Bucket == nil { 15516 return nil, fmt.Errorf("member Bucket is nil") 15517 } 15518 s.Bucket = aws.String(v) 15519 return &s, nil 15520 } 15521 15522 type DeleteBucketMetricsConfigurationOutput struct { 15523 _ struct{} `type:"structure"` 15524 } 15525 15526 // String returns the string representation. 15527 // 15528 // API parameter values that are decorated as "sensitive" in the API will not 15529 // be included in the string output. The member name will be present, but the 15530 // value will be replaced with "sensitive". 15531 func (s DeleteBucketMetricsConfigurationOutput) String() string { 15532 return awsutil.Prettify(s) 15533 } 15534 15535 // GoString returns the string representation. 15536 // 15537 // API parameter values that are decorated as "sensitive" in the API will not 15538 // be included in the string output. The member name will be present, but the 15539 // value will be replaced with "sensitive". 15540 func (s DeleteBucketMetricsConfigurationOutput) GoString() string { 15541 return s.String() 15542 } 15543 15544 type DeleteBucketOutput struct { 15545 _ struct{} `type:"structure"` 15546 } 15547 15548 // String returns the string representation. 15549 // 15550 // API parameter values that are decorated as "sensitive" in the API will not 15551 // be included in the string output. The member name will be present, but the 15552 // value will be replaced with "sensitive". 15553 func (s DeleteBucketOutput) String() string { 15554 return awsutil.Prettify(s) 15555 } 15556 15557 // GoString returns the string representation. 15558 // 15559 // API parameter values that are decorated as "sensitive" in the API will not 15560 // be included in the string output. The member name will be present, but the 15561 // value will be replaced with "sensitive". 15562 func (s DeleteBucketOutput) GoString() string { 15563 return s.String() 15564 } 15565 15566 type DeleteBucketOwnershipControlsInput struct { 15567 _ struct{} `locationName:"DeleteBucketOwnershipControlsRequest" type:"structure"` 15568 15569 // The Amazon S3 bucket whose OwnershipControls you want to delete. 15570 // 15571 // Bucket is a required field 15572 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 15573 15574 // The account ID of the expected bucket owner. If the bucket is owned by a 15575 // different account, the request will fail with an HTTP 403 (Access Denied) 15576 // error. 15577 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 15578 } 15579 15580 // String returns the string representation. 15581 // 15582 // API parameter values that are decorated as "sensitive" in the API will not 15583 // be included in the string output. The member name will be present, but the 15584 // value will be replaced with "sensitive". 15585 func (s DeleteBucketOwnershipControlsInput) String() string { 15586 return awsutil.Prettify(s) 15587 } 15588 15589 // GoString returns the string representation. 15590 // 15591 // API parameter values that are decorated as "sensitive" in the API will not 15592 // be included in the string output. The member name will be present, but the 15593 // value will be replaced with "sensitive". 15594 func (s DeleteBucketOwnershipControlsInput) GoString() string { 15595 return s.String() 15596 } 15597 15598 // Validate inspects the fields of the type to determine if they are valid. 15599 func (s *DeleteBucketOwnershipControlsInput) Validate() error { 15600 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketOwnershipControlsInput"} 15601 if s.Bucket == nil { 15602 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15603 } 15604 if s.Bucket != nil && len(*s.Bucket) < 1 { 15605 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 15606 } 15607 15608 if invalidParams.Len() > 0 { 15609 return invalidParams 15610 } 15611 return nil 15612 } 15613 15614 // SetBucket sets the Bucket field's value. 15615 func (s *DeleteBucketOwnershipControlsInput) SetBucket(v string) *DeleteBucketOwnershipControlsInput { 15616 s.Bucket = &v 15617 return s 15618 } 15619 15620 func (s *DeleteBucketOwnershipControlsInput) getBucket() (v string) { 15621 if s.Bucket == nil { 15622 return v 15623 } 15624 return *s.Bucket 15625 } 15626 15627 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 15628 func (s *DeleteBucketOwnershipControlsInput) SetExpectedBucketOwner(v string) *DeleteBucketOwnershipControlsInput { 15629 s.ExpectedBucketOwner = &v 15630 return s 15631 } 15632 15633 func (s *DeleteBucketOwnershipControlsInput) getEndpointARN() (arn.Resource, error) { 15634 if s.Bucket == nil { 15635 return nil, fmt.Errorf("member Bucket is nil") 15636 } 15637 return parseEndpointARN(*s.Bucket) 15638 } 15639 15640 func (s *DeleteBucketOwnershipControlsInput) hasEndpointARN() bool { 15641 if s.Bucket == nil { 15642 return false 15643 } 15644 return arn.IsARN(*s.Bucket) 15645 } 15646 15647 // updateArnableField updates the value of the input field that 15648 // takes an ARN as an input. This method is useful to backfill 15649 // the parsed resource name from ARN into the input member. 15650 // It returns a pointer to a modified copy of input and an error. 15651 // Note that original input is not modified. 15652 func (s DeleteBucketOwnershipControlsInput) updateArnableField(v string) (interface{}, error) { 15653 if s.Bucket == nil { 15654 return nil, fmt.Errorf("member Bucket is nil") 15655 } 15656 s.Bucket = aws.String(v) 15657 return &s, nil 15658 } 15659 15660 type DeleteBucketOwnershipControlsOutput struct { 15661 _ struct{} `type:"structure"` 15662 } 15663 15664 // String returns the string representation. 15665 // 15666 // API parameter values that are decorated as "sensitive" in the API will not 15667 // be included in the string output. The member name will be present, but the 15668 // value will be replaced with "sensitive". 15669 func (s DeleteBucketOwnershipControlsOutput) String() string { 15670 return awsutil.Prettify(s) 15671 } 15672 15673 // GoString returns the string representation. 15674 // 15675 // API parameter values that are decorated as "sensitive" in the API will not 15676 // be included in the string output. The member name will be present, but the 15677 // value will be replaced with "sensitive". 15678 func (s DeleteBucketOwnershipControlsOutput) GoString() string { 15679 return s.String() 15680 } 15681 15682 type DeleteBucketPolicyInput struct { 15683 _ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"` 15684 15685 // The bucket name. 15686 // 15687 // Bucket is a required field 15688 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 15689 15690 // The account ID of the expected bucket owner. If the bucket is owned by a 15691 // different account, the request will fail with an HTTP 403 (Access Denied) 15692 // error. 15693 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 15694 } 15695 15696 // String returns the string representation. 15697 // 15698 // API parameter values that are decorated as "sensitive" in the API will not 15699 // be included in the string output. The member name will be present, but the 15700 // value will be replaced with "sensitive". 15701 func (s DeleteBucketPolicyInput) String() string { 15702 return awsutil.Prettify(s) 15703 } 15704 15705 // GoString returns the string representation. 15706 // 15707 // API parameter values that are decorated as "sensitive" in the API will not 15708 // be included in the string output. The member name will be present, but the 15709 // value will be replaced with "sensitive". 15710 func (s DeleteBucketPolicyInput) GoString() string { 15711 return s.String() 15712 } 15713 15714 // Validate inspects the fields of the type to determine if they are valid. 15715 func (s *DeleteBucketPolicyInput) Validate() error { 15716 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"} 15717 if s.Bucket == nil { 15718 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15719 } 15720 if s.Bucket != nil && len(*s.Bucket) < 1 { 15721 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 15722 } 15723 15724 if invalidParams.Len() > 0 { 15725 return invalidParams 15726 } 15727 return nil 15728 } 15729 15730 // SetBucket sets the Bucket field's value. 15731 func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput { 15732 s.Bucket = &v 15733 return s 15734 } 15735 15736 func (s *DeleteBucketPolicyInput) getBucket() (v string) { 15737 if s.Bucket == nil { 15738 return v 15739 } 15740 return *s.Bucket 15741 } 15742 15743 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 15744 func (s *DeleteBucketPolicyInput) SetExpectedBucketOwner(v string) *DeleteBucketPolicyInput { 15745 s.ExpectedBucketOwner = &v 15746 return s 15747 } 15748 15749 func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) { 15750 if s.Bucket == nil { 15751 return nil, fmt.Errorf("member Bucket is nil") 15752 } 15753 return parseEndpointARN(*s.Bucket) 15754 } 15755 15756 func (s *DeleteBucketPolicyInput) hasEndpointARN() bool { 15757 if s.Bucket == nil { 15758 return false 15759 } 15760 return arn.IsARN(*s.Bucket) 15761 } 15762 15763 // updateArnableField updates the value of the input field that 15764 // takes an ARN as an input. This method is useful to backfill 15765 // the parsed resource name from ARN into the input member. 15766 // It returns a pointer to a modified copy of input and an error. 15767 // Note that original input is not modified. 15768 func (s DeleteBucketPolicyInput) updateArnableField(v string) (interface{}, error) { 15769 if s.Bucket == nil { 15770 return nil, fmt.Errorf("member Bucket is nil") 15771 } 15772 s.Bucket = aws.String(v) 15773 return &s, nil 15774 } 15775 15776 type DeleteBucketPolicyOutput struct { 15777 _ struct{} `type:"structure"` 15778 } 15779 15780 // String returns the string representation. 15781 // 15782 // API parameter values that are decorated as "sensitive" in the API will not 15783 // be included in the string output. The member name will be present, but the 15784 // value will be replaced with "sensitive". 15785 func (s DeleteBucketPolicyOutput) String() string { 15786 return awsutil.Prettify(s) 15787 } 15788 15789 // GoString returns the string representation. 15790 // 15791 // API parameter values that are decorated as "sensitive" in the API will not 15792 // be included in the string output. The member name will be present, but the 15793 // value will be replaced with "sensitive". 15794 func (s DeleteBucketPolicyOutput) GoString() string { 15795 return s.String() 15796 } 15797 15798 type DeleteBucketReplicationInput struct { 15799 _ struct{} `locationName:"DeleteBucketReplicationRequest" type:"structure"` 15800 15801 // The bucket name. 15802 // 15803 // Bucket is a required field 15804 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 15805 15806 // The account ID of the expected bucket owner. If the bucket is owned by a 15807 // different account, the request will fail with an HTTP 403 (Access Denied) 15808 // error. 15809 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 15810 } 15811 15812 // String returns the string representation. 15813 // 15814 // API parameter values that are decorated as "sensitive" in the API will not 15815 // be included in the string output. The member name will be present, but the 15816 // value will be replaced with "sensitive". 15817 func (s DeleteBucketReplicationInput) String() string { 15818 return awsutil.Prettify(s) 15819 } 15820 15821 // GoString returns the string representation. 15822 // 15823 // API parameter values that are decorated as "sensitive" in the API will not 15824 // be included in the string output. The member name will be present, but the 15825 // value will be replaced with "sensitive". 15826 func (s DeleteBucketReplicationInput) GoString() string { 15827 return s.String() 15828 } 15829 15830 // Validate inspects the fields of the type to determine if they are valid. 15831 func (s *DeleteBucketReplicationInput) Validate() error { 15832 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketReplicationInput"} 15833 if s.Bucket == nil { 15834 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15835 } 15836 if s.Bucket != nil && len(*s.Bucket) < 1 { 15837 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 15838 } 15839 15840 if invalidParams.Len() > 0 { 15841 return invalidParams 15842 } 15843 return nil 15844 } 15845 15846 // SetBucket sets the Bucket field's value. 15847 func (s *DeleteBucketReplicationInput) SetBucket(v string) *DeleteBucketReplicationInput { 15848 s.Bucket = &v 15849 return s 15850 } 15851 15852 func (s *DeleteBucketReplicationInput) getBucket() (v string) { 15853 if s.Bucket == nil { 15854 return v 15855 } 15856 return *s.Bucket 15857 } 15858 15859 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 15860 func (s *DeleteBucketReplicationInput) SetExpectedBucketOwner(v string) *DeleteBucketReplicationInput { 15861 s.ExpectedBucketOwner = &v 15862 return s 15863 } 15864 15865 func (s *DeleteBucketReplicationInput) getEndpointARN() (arn.Resource, error) { 15866 if s.Bucket == nil { 15867 return nil, fmt.Errorf("member Bucket is nil") 15868 } 15869 return parseEndpointARN(*s.Bucket) 15870 } 15871 15872 func (s *DeleteBucketReplicationInput) hasEndpointARN() bool { 15873 if s.Bucket == nil { 15874 return false 15875 } 15876 return arn.IsARN(*s.Bucket) 15877 } 15878 15879 // updateArnableField updates the value of the input field that 15880 // takes an ARN as an input. This method is useful to backfill 15881 // the parsed resource name from ARN into the input member. 15882 // It returns a pointer to a modified copy of input and an error. 15883 // Note that original input is not modified. 15884 func (s DeleteBucketReplicationInput) updateArnableField(v string) (interface{}, error) { 15885 if s.Bucket == nil { 15886 return nil, fmt.Errorf("member Bucket is nil") 15887 } 15888 s.Bucket = aws.String(v) 15889 return &s, nil 15890 } 15891 15892 type DeleteBucketReplicationOutput struct { 15893 _ struct{} `type:"structure"` 15894 } 15895 15896 // String returns the string representation. 15897 // 15898 // API parameter values that are decorated as "sensitive" in the API will not 15899 // be included in the string output. The member name will be present, but the 15900 // value will be replaced with "sensitive". 15901 func (s DeleteBucketReplicationOutput) String() string { 15902 return awsutil.Prettify(s) 15903 } 15904 15905 // GoString returns the string representation. 15906 // 15907 // API parameter values that are decorated as "sensitive" in the API will not 15908 // be included in the string output. The member name will be present, but the 15909 // value will be replaced with "sensitive". 15910 func (s DeleteBucketReplicationOutput) GoString() string { 15911 return s.String() 15912 } 15913 15914 type DeleteBucketTaggingInput struct { 15915 _ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"` 15916 15917 // The bucket that has the tag set to be removed. 15918 // 15919 // Bucket is a required field 15920 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 15921 15922 // The account ID of the expected bucket owner. If the bucket is owned by a 15923 // different account, the request will fail with an HTTP 403 (Access Denied) 15924 // error. 15925 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 15926 } 15927 15928 // String returns the string representation. 15929 // 15930 // API parameter values that are decorated as "sensitive" in the API will not 15931 // be included in the string output. The member name will be present, but the 15932 // value will be replaced with "sensitive". 15933 func (s DeleteBucketTaggingInput) String() string { 15934 return awsutil.Prettify(s) 15935 } 15936 15937 // GoString returns the string representation. 15938 // 15939 // API parameter values that are decorated as "sensitive" in the API will not 15940 // be included in the string output. The member name will be present, but the 15941 // value will be replaced with "sensitive". 15942 func (s DeleteBucketTaggingInput) GoString() string { 15943 return s.String() 15944 } 15945 15946 // Validate inspects the fields of the type to determine if they are valid. 15947 func (s *DeleteBucketTaggingInput) Validate() error { 15948 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"} 15949 if s.Bucket == nil { 15950 invalidParams.Add(request.NewErrParamRequired("Bucket")) 15951 } 15952 if s.Bucket != nil && len(*s.Bucket) < 1 { 15953 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 15954 } 15955 15956 if invalidParams.Len() > 0 { 15957 return invalidParams 15958 } 15959 return nil 15960 } 15961 15962 // SetBucket sets the Bucket field's value. 15963 func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput { 15964 s.Bucket = &v 15965 return s 15966 } 15967 15968 func (s *DeleteBucketTaggingInput) getBucket() (v string) { 15969 if s.Bucket == nil { 15970 return v 15971 } 15972 return *s.Bucket 15973 } 15974 15975 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 15976 func (s *DeleteBucketTaggingInput) SetExpectedBucketOwner(v string) *DeleteBucketTaggingInput { 15977 s.ExpectedBucketOwner = &v 15978 return s 15979 } 15980 15981 func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) { 15982 if s.Bucket == nil { 15983 return nil, fmt.Errorf("member Bucket is nil") 15984 } 15985 return parseEndpointARN(*s.Bucket) 15986 } 15987 15988 func (s *DeleteBucketTaggingInput) hasEndpointARN() bool { 15989 if s.Bucket == nil { 15990 return false 15991 } 15992 return arn.IsARN(*s.Bucket) 15993 } 15994 15995 // updateArnableField updates the value of the input field that 15996 // takes an ARN as an input. This method is useful to backfill 15997 // the parsed resource name from ARN into the input member. 15998 // It returns a pointer to a modified copy of input and an error. 15999 // Note that original input is not modified. 16000 func (s DeleteBucketTaggingInput) updateArnableField(v string) (interface{}, error) { 16001 if s.Bucket == nil { 16002 return nil, fmt.Errorf("member Bucket is nil") 16003 } 16004 s.Bucket = aws.String(v) 16005 return &s, nil 16006 } 16007 16008 type DeleteBucketTaggingOutput struct { 16009 _ struct{} `type:"structure"` 16010 } 16011 16012 // String returns the string representation. 16013 // 16014 // API parameter values that are decorated as "sensitive" in the API will not 16015 // be included in the string output. The member name will be present, but the 16016 // value will be replaced with "sensitive". 16017 func (s DeleteBucketTaggingOutput) String() string { 16018 return awsutil.Prettify(s) 16019 } 16020 16021 // GoString returns the string representation. 16022 // 16023 // API parameter values that are decorated as "sensitive" in the API will not 16024 // be included in the string output. The member name will be present, but the 16025 // value will be replaced with "sensitive". 16026 func (s DeleteBucketTaggingOutput) GoString() string { 16027 return s.String() 16028 } 16029 16030 type DeleteBucketWebsiteInput struct { 16031 _ struct{} `locationName:"DeleteBucketWebsiteRequest" type:"structure"` 16032 16033 // The bucket name for which you want to remove the website configuration. 16034 // 16035 // Bucket is a required field 16036 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 16037 16038 // The account ID of the expected bucket owner. If the bucket is owned by a 16039 // different account, the request will fail with an HTTP 403 (Access Denied) 16040 // error. 16041 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 16042 } 16043 16044 // String returns the string representation. 16045 // 16046 // API parameter values that are decorated as "sensitive" in the API will not 16047 // be included in the string output. The member name will be present, but the 16048 // value will be replaced with "sensitive". 16049 func (s DeleteBucketWebsiteInput) String() string { 16050 return awsutil.Prettify(s) 16051 } 16052 16053 // GoString returns the string representation. 16054 // 16055 // API parameter values that are decorated as "sensitive" in the API will not 16056 // be included in the string output. The member name will be present, but the 16057 // value will be replaced with "sensitive". 16058 func (s DeleteBucketWebsiteInput) GoString() string { 16059 return s.String() 16060 } 16061 16062 // Validate inspects the fields of the type to determine if they are valid. 16063 func (s *DeleteBucketWebsiteInput) Validate() error { 16064 invalidParams := request.ErrInvalidParams{Context: "DeleteBucketWebsiteInput"} 16065 if s.Bucket == nil { 16066 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16067 } 16068 if s.Bucket != nil && len(*s.Bucket) < 1 { 16069 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 16070 } 16071 16072 if invalidParams.Len() > 0 { 16073 return invalidParams 16074 } 16075 return nil 16076 } 16077 16078 // SetBucket sets the Bucket field's value. 16079 func (s *DeleteBucketWebsiteInput) SetBucket(v string) *DeleteBucketWebsiteInput { 16080 s.Bucket = &v 16081 return s 16082 } 16083 16084 func (s *DeleteBucketWebsiteInput) getBucket() (v string) { 16085 if s.Bucket == nil { 16086 return v 16087 } 16088 return *s.Bucket 16089 } 16090 16091 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 16092 func (s *DeleteBucketWebsiteInput) SetExpectedBucketOwner(v string) *DeleteBucketWebsiteInput { 16093 s.ExpectedBucketOwner = &v 16094 return s 16095 } 16096 16097 func (s *DeleteBucketWebsiteInput) getEndpointARN() (arn.Resource, error) { 16098 if s.Bucket == nil { 16099 return nil, fmt.Errorf("member Bucket is nil") 16100 } 16101 return parseEndpointARN(*s.Bucket) 16102 } 16103 16104 func (s *DeleteBucketWebsiteInput) hasEndpointARN() bool { 16105 if s.Bucket == nil { 16106 return false 16107 } 16108 return arn.IsARN(*s.Bucket) 16109 } 16110 16111 // updateArnableField updates the value of the input field that 16112 // takes an ARN as an input. This method is useful to backfill 16113 // the parsed resource name from ARN into the input member. 16114 // It returns a pointer to a modified copy of input and an error. 16115 // Note that original input is not modified. 16116 func (s DeleteBucketWebsiteInput) updateArnableField(v string) (interface{}, error) { 16117 if s.Bucket == nil { 16118 return nil, fmt.Errorf("member Bucket is nil") 16119 } 16120 s.Bucket = aws.String(v) 16121 return &s, nil 16122 } 16123 16124 type DeleteBucketWebsiteOutput struct { 16125 _ struct{} `type:"structure"` 16126 } 16127 16128 // String returns the string representation. 16129 // 16130 // API parameter values that are decorated as "sensitive" in the API will not 16131 // be included in the string output. The member name will be present, but the 16132 // value will be replaced with "sensitive". 16133 func (s DeleteBucketWebsiteOutput) String() string { 16134 return awsutil.Prettify(s) 16135 } 16136 16137 // GoString returns the string representation. 16138 // 16139 // API parameter values that are decorated as "sensitive" in the API will not 16140 // be included in the string output. The member name will be present, but the 16141 // value will be replaced with "sensitive". 16142 func (s DeleteBucketWebsiteOutput) GoString() string { 16143 return s.String() 16144 } 16145 16146 // Information about the delete marker. 16147 type DeleteMarkerEntry struct { 16148 _ struct{} `type:"structure"` 16149 16150 // Specifies whether the object is (true) or is not (false) the latest version 16151 // of an object. 16152 IsLatest *bool `type:"boolean"` 16153 16154 // The object key. 16155 Key *string `min:"1" type:"string"` 16156 16157 // Date and time the object was last modified. 16158 LastModified *time.Time `type:"timestamp"` 16159 16160 // The account that created the delete marker.> 16161 Owner *Owner `type:"structure"` 16162 16163 // Version ID of an object. 16164 VersionId *string `type:"string"` 16165 } 16166 16167 // String returns the string representation. 16168 // 16169 // API parameter values that are decorated as "sensitive" in the API will not 16170 // be included in the string output. The member name will be present, but the 16171 // value will be replaced with "sensitive". 16172 func (s DeleteMarkerEntry) String() string { 16173 return awsutil.Prettify(s) 16174 } 16175 16176 // GoString returns the string representation. 16177 // 16178 // API parameter values that are decorated as "sensitive" in the API will not 16179 // be included in the string output. The member name will be present, but the 16180 // value will be replaced with "sensitive". 16181 func (s DeleteMarkerEntry) GoString() string { 16182 return s.String() 16183 } 16184 16185 // SetIsLatest sets the IsLatest field's value. 16186 func (s *DeleteMarkerEntry) SetIsLatest(v bool) *DeleteMarkerEntry { 16187 s.IsLatest = &v 16188 return s 16189 } 16190 16191 // SetKey sets the Key field's value. 16192 func (s *DeleteMarkerEntry) SetKey(v string) *DeleteMarkerEntry { 16193 s.Key = &v 16194 return s 16195 } 16196 16197 // SetLastModified sets the LastModified field's value. 16198 func (s *DeleteMarkerEntry) SetLastModified(v time.Time) *DeleteMarkerEntry { 16199 s.LastModified = &v 16200 return s 16201 } 16202 16203 // SetOwner sets the Owner field's value. 16204 func (s *DeleteMarkerEntry) SetOwner(v *Owner) *DeleteMarkerEntry { 16205 s.Owner = v 16206 return s 16207 } 16208 16209 // SetVersionId sets the VersionId field's value. 16210 func (s *DeleteMarkerEntry) SetVersionId(v string) *DeleteMarkerEntry { 16211 s.VersionId = &v 16212 return s 16213 } 16214 16215 // Specifies whether Amazon S3 replicates delete markers. If you specify a Filter 16216 // in your replication configuration, you must also include a DeleteMarkerReplication 16217 // element. If your Filter includes a Tag element, the DeleteMarkerReplication 16218 // Status must be set to Disabled, because Amazon S3 does not support replicating 16219 // delete markers for tag-based rules. For an example configuration, see Basic 16220 // Rule Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). 16221 // 16222 // For more information about delete marker replication, see Basic Rule Configuration 16223 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). 16224 // 16225 // If you are using an earlier version of the replication configuration, Amazon 16226 // S3 handles replication of delete markers differently. For more information, 16227 // see Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). 16228 type DeleteMarkerReplication struct { 16229 _ struct{} `type:"structure"` 16230 16231 // Indicates whether to replicate delete markers. 16232 // 16233 // Indicates whether to replicate delete markers. 16234 Status *string `type:"string" enum:"DeleteMarkerReplicationStatus"` 16235 } 16236 16237 // String returns the string representation. 16238 // 16239 // API parameter values that are decorated as "sensitive" in the API will not 16240 // be included in the string output. The member name will be present, but the 16241 // value will be replaced with "sensitive". 16242 func (s DeleteMarkerReplication) String() string { 16243 return awsutil.Prettify(s) 16244 } 16245 16246 // GoString returns the string representation. 16247 // 16248 // API parameter values that are decorated as "sensitive" in the API will not 16249 // be included in the string output. The member name will be present, but the 16250 // value will be replaced with "sensitive". 16251 func (s DeleteMarkerReplication) GoString() string { 16252 return s.String() 16253 } 16254 16255 // SetStatus sets the Status field's value. 16256 func (s *DeleteMarkerReplication) SetStatus(v string) *DeleteMarkerReplication { 16257 s.Status = &v 16258 return s 16259 } 16260 16261 type DeleteObjectInput struct { 16262 _ struct{} `locationName:"DeleteObjectRequest" type:"structure"` 16263 16264 // The bucket name of the bucket containing the object. 16265 // 16266 // When using this action with an access point, you must direct requests to 16267 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 16268 // When using this action with an access point through the Amazon Web Services 16269 // SDKs, you provide the access point ARN in place of the bucket name. For more 16270 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 16271 // in the Amazon S3 User Guide. 16272 // 16273 // When using this action with Amazon S3 on Outposts, you must direct requests 16274 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 16275 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 16276 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 16277 // you provide the Outposts bucket ARN in place of the bucket name. For more 16278 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 16279 // in the Amazon S3 User Guide. 16280 // 16281 // Bucket is a required field 16282 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 16283 16284 // Indicates whether S3 Object Lock should bypass Governance-mode restrictions 16285 // to process this operation. To use this header, you must have the s3:PutBucketPublicAccessBlock 16286 // permission. 16287 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` 16288 16289 // The account ID of the expected bucket owner. If the bucket is owned by a 16290 // different account, the request will fail with an HTTP 403 (Access Denied) 16291 // error. 16292 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 16293 16294 // Key name of the object to delete. 16295 // 16296 // Key is a required field 16297 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 16298 16299 // The concatenation of the authentication device's serial number, a space, 16300 // and the value that is displayed on your authentication device. Required to 16301 // permanently delete a versioned object if versioning is configured with MFA 16302 // delete enabled. 16303 MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` 16304 16305 // Confirms that the requester knows that they will be charged for the request. 16306 // Bucket owners need not specify this parameter in their requests. For information 16307 // about downloading objects from requester pays buckets, see Downloading Objects 16308 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 16309 // in the Amazon S3 User Guide. 16310 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 16311 16312 // VersionId used to reference a specific version of the object. 16313 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 16314 } 16315 16316 // String returns the string representation. 16317 // 16318 // API parameter values that are decorated as "sensitive" in the API will not 16319 // be included in the string output. The member name will be present, but the 16320 // value will be replaced with "sensitive". 16321 func (s DeleteObjectInput) String() string { 16322 return awsutil.Prettify(s) 16323 } 16324 16325 // GoString returns the string representation. 16326 // 16327 // API parameter values that are decorated as "sensitive" in the API will not 16328 // be included in the string output. The member name will be present, but the 16329 // value will be replaced with "sensitive". 16330 func (s DeleteObjectInput) GoString() string { 16331 return s.String() 16332 } 16333 16334 // Validate inspects the fields of the type to determine if they are valid. 16335 func (s *DeleteObjectInput) Validate() error { 16336 invalidParams := request.ErrInvalidParams{Context: "DeleteObjectInput"} 16337 if s.Bucket == nil { 16338 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16339 } 16340 if s.Bucket != nil && len(*s.Bucket) < 1 { 16341 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 16342 } 16343 if s.Key == nil { 16344 invalidParams.Add(request.NewErrParamRequired("Key")) 16345 } 16346 if s.Key != nil && len(*s.Key) < 1 { 16347 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 16348 } 16349 16350 if invalidParams.Len() > 0 { 16351 return invalidParams 16352 } 16353 return nil 16354 } 16355 16356 // SetBucket sets the Bucket field's value. 16357 func (s *DeleteObjectInput) SetBucket(v string) *DeleteObjectInput { 16358 s.Bucket = &v 16359 return s 16360 } 16361 16362 func (s *DeleteObjectInput) getBucket() (v string) { 16363 if s.Bucket == nil { 16364 return v 16365 } 16366 return *s.Bucket 16367 } 16368 16369 // SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value. 16370 func (s *DeleteObjectInput) SetBypassGovernanceRetention(v bool) *DeleteObjectInput { 16371 s.BypassGovernanceRetention = &v 16372 return s 16373 } 16374 16375 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 16376 func (s *DeleteObjectInput) SetExpectedBucketOwner(v string) *DeleteObjectInput { 16377 s.ExpectedBucketOwner = &v 16378 return s 16379 } 16380 16381 // SetKey sets the Key field's value. 16382 func (s *DeleteObjectInput) SetKey(v string) *DeleteObjectInput { 16383 s.Key = &v 16384 return s 16385 } 16386 16387 // SetMFA sets the MFA field's value. 16388 func (s *DeleteObjectInput) SetMFA(v string) *DeleteObjectInput { 16389 s.MFA = &v 16390 return s 16391 } 16392 16393 // SetRequestPayer sets the RequestPayer field's value. 16394 func (s *DeleteObjectInput) SetRequestPayer(v string) *DeleteObjectInput { 16395 s.RequestPayer = &v 16396 return s 16397 } 16398 16399 // SetVersionId sets the VersionId field's value. 16400 func (s *DeleteObjectInput) SetVersionId(v string) *DeleteObjectInput { 16401 s.VersionId = &v 16402 return s 16403 } 16404 16405 func (s *DeleteObjectInput) getEndpointARN() (arn.Resource, error) { 16406 if s.Bucket == nil { 16407 return nil, fmt.Errorf("member Bucket is nil") 16408 } 16409 return parseEndpointARN(*s.Bucket) 16410 } 16411 16412 func (s *DeleteObjectInput) hasEndpointARN() bool { 16413 if s.Bucket == nil { 16414 return false 16415 } 16416 return arn.IsARN(*s.Bucket) 16417 } 16418 16419 // updateArnableField updates the value of the input field that 16420 // takes an ARN as an input. This method is useful to backfill 16421 // the parsed resource name from ARN into the input member. 16422 // It returns a pointer to a modified copy of input and an error. 16423 // Note that original input is not modified. 16424 func (s DeleteObjectInput) updateArnableField(v string) (interface{}, error) { 16425 if s.Bucket == nil { 16426 return nil, fmt.Errorf("member Bucket is nil") 16427 } 16428 s.Bucket = aws.String(v) 16429 return &s, nil 16430 } 16431 16432 type DeleteObjectOutput struct { 16433 _ struct{} `type:"structure"` 16434 16435 // Specifies whether the versioned object that was permanently deleted was (true) 16436 // or was not (false) a delete marker. 16437 DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` 16438 16439 // If present, indicates that the requester was successfully charged for the 16440 // request. 16441 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 16442 16443 // Returns the version ID of the delete marker created as a result of the DELETE 16444 // operation. 16445 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 16446 } 16447 16448 // String returns the string representation. 16449 // 16450 // API parameter values that are decorated as "sensitive" in the API will not 16451 // be included in the string output. The member name will be present, but the 16452 // value will be replaced with "sensitive". 16453 func (s DeleteObjectOutput) String() string { 16454 return awsutil.Prettify(s) 16455 } 16456 16457 // GoString returns the string representation. 16458 // 16459 // API parameter values that are decorated as "sensitive" in the API will not 16460 // be included in the string output. The member name will be present, but the 16461 // value will be replaced with "sensitive". 16462 func (s DeleteObjectOutput) GoString() string { 16463 return s.String() 16464 } 16465 16466 // SetDeleteMarker sets the DeleteMarker field's value. 16467 func (s *DeleteObjectOutput) SetDeleteMarker(v bool) *DeleteObjectOutput { 16468 s.DeleteMarker = &v 16469 return s 16470 } 16471 16472 // SetRequestCharged sets the RequestCharged field's value. 16473 func (s *DeleteObjectOutput) SetRequestCharged(v string) *DeleteObjectOutput { 16474 s.RequestCharged = &v 16475 return s 16476 } 16477 16478 // SetVersionId sets the VersionId field's value. 16479 func (s *DeleteObjectOutput) SetVersionId(v string) *DeleteObjectOutput { 16480 s.VersionId = &v 16481 return s 16482 } 16483 16484 type DeleteObjectTaggingInput struct { 16485 _ struct{} `locationName:"DeleteObjectTaggingRequest" type:"structure"` 16486 16487 // The bucket name containing the objects from which to remove the tags. 16488 // 16489 // When using this action with an access point, you must direct requests to 16490 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 16491 // When using this action with an access point through the Amazon Web Services 16492 // SDKs, you provide the access point ARN in place of the bucket name. For more 16493 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 16494 // in the Amazon S3 User Guide. 16495 // 16496 // When using this action with Amazon S3 on Outposts, you must direct requests 16497 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 16498 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 16499 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 16500 // you provide the Outposts bucket ARN in place of the bucket name. For more 16501 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 16502 // in the Amazon S3 User Guide. 16503 // 16504 // Bucket is a required field 16505 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 16506 16507 // The account ID of the expected bucket owner. If the bucket is owned by a 16508 // different account, the request will fail with an HTTP 403 (Access Denied) 16509 // error. 16510 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 16511 16512 // The key that identifies the object in the bucket from which to remove all 16513 // tags. 16514 // 16515 // Key is a required field 16516 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 16517 16518 // The versionId of the object that the tag-set will be removed from. 16519 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 16520 } 16521 16522 // String returns the string representation. 16523 // 16524 // API parameter values that are decorated as "sensitive" in the API will not 16525 // be included in the string output. The member name will be present, but the 16526 // value will be replaced with "sensitive". 16527 func (s DeleteObjectTaggingInput) String() string { 16528 return awsutil.Prettify(s) 16529 } 16530 16531 // GoString returns the string representation. 16532 // 16533 // API parameter values that are decorated as "sensitive" in the API will not 16534 // be included in the string output. The member name will be present, but the 16535 // value will be replaced with "sensitive". 16536 func (s DeleteObjectTaggingInput) GoString() string { 16537 return s.String() 16538 } 16539 16540 // Validate inspects the fields of the type to determine if they are valid. 16541 func (s *DeleteObjectTaggingInput) Validate() error { 16542 invalidParams := request.ErrInvalidParams{Context: "DeleteObjectTaggingInput"} 16543 if s.Bucket == nil { 16544 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16545 } 16546 if s.Bucket != nil && len(*s.Bucket) < 1 { 16547 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 16548 } 16549 if s.Key == nil { 16550 invalidParams.Add(request.NewErrParamRequired("Key")) 16551 } 16552 if s.Key != nil && len(*s.Key) < 1 { 16553 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 16554 } 16555 16556 if invalidParams.Len() > 0 { 16557 return invalidParams 16558 } 16559 return nil 16560 } 16561 16562 // SetBucket sets the Bucket field's value. 16563 func (s *DeleteObjectTaggingInput) SetBucket(v string) *DeleteObjectTaggingInput { 16564 s.Bucket = &v 16565 return s 16566 } 16567 16568 func (s *DeleteObjectTaggingInput) getBucket() (v string) { 16569 if s.Bucket == nil { 16570 return v 16571 } 16572 return *s.Bucket 16573 } 16574 16575 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 16576 func (s *DeleteObjectTaggingInput) SetExpectedBucketOwner(v string) *DeleteObjectTaggingInput { 16577 s.ExpectedBucketOwner = &v 16578 return s 16579 } 16580 16581 // SetKey sets the Key field's value. 16582 func (s *DeleteObjectTaggingInput) SetKey(v string) *DeleteObjectTaggingInput { 16583 s.Key = &v 16584 return s 16585 } 16586 16587 // SetVersionId sets the VersionId field's value. 16588 func (s *DeleteObjectTaggingInput) SetVersionId(v string) *DeleteObjectTaggingInput { 16589 s.VersionId = &v 16590 return s 16591 } 16592 16593 func (s *DeleteObjectTaggingInput) getEndpointARN() (arn.Resource, error) { 16594 if s.Bucket == nil { 16595 return nil, fmt.Errorf("member Bucket is nil") 16596 } 16597 return parseEndpointARN(*s.Bucket) 16598 } 16599 16600 func (s *DeleteObjectTaggingInput) hasEndpointARN() bool { 16601 if s.Bucket == nil { 16602 return false 16603 } 16604 return arn.IsARN(*s.Bucket) 16605 } 16606 16607 // updateArnableField updates the value of the input field that 16608 // takes an ARN as an input. This method is useful to backfill 16609 // the parsed resource name from ARN into the input member. 16610 // It returns a pointer to a modified copy of input and an error. 16611 // Note that original input is not modified. 16612 func (s DeleteObjectTaggingInput) updateArnableField(v string) (interface{}, error) { 16613 if s.Bucket == nil { 16614 return nil, fmt.Errorf("member Bucket is nil") 16615 } 16616 s.Bucket = aws.String(v) 16617 return &s, nil 16618 } 16619 16620 type DeleteObjectTaggingOutput struct { 16621 _ struct{} `type:"structure"` 16622 16623 // The versionId of the object the tag-set was removed from. 16624 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 16625 } 16626 16627 // String returns the string representation. 16628 // 16629 // API parameter values that are decorated as "sensitive" in the API will not 16630 // be included in the string output. The member name will be present, but the 16631 // value will be replaced with "sensitive". 16632 func (s DeleteObjectTaggingOutput) String() string { 16633 return awsutil.Prettify(s) 16634 } 16635 16636 // GoString returns the string representation. 16637 // 16638 // API parameter values that are decorated as "sensitive" in the API will not 16639 // be included in the string output. The member name will be present, but the 16640 // value will be replaced with "sensitive". 16641 func (s DeleteObjectTaggingOutput) GoString() string { 16642 return s.String() 16643 } 16644 16645 // SetVersionId sets the VersionId field's value. 16646 func (s *DeleteObjectTaggingOutput) SetVersionId(v string) *DeleteObjectTaggingOutput { 16647 s.VersionId = &v 16648 return s 16649 } 16650 16651 type DeleteObjectsInput struct { 16652 _ struct{} `locationName:"DeleteObjectsRequest" type:"structure" payload:"Delete"` 16653 16654 // The bucket name containing the objects to delete. 16655 // 16656 // When using this action with an access point, you must direct requests to 16657 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 16658 // When using this action with an access point through the Amazon Web Services 16659 // SDKs, you provide the access point ARN in place of the bucket name. For more 16660 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 16661 // in the Amazon S3 User Guide. 16662 // 16663 // When using this action with Amazon S3 on Outposts, you must direct requests 16664 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 16665 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 16666 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 16667 // you provide the Outposts bucket ARN in place of the bucket name. For more 16668 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 16669 // in the Amazon S3 User Guide. 16670 // 16671 // Bucket is a required field 16672 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 16673 16674 // Specifies whether you want to delete this object even if it has a Governance-type 16675 // Object Lock in place. To use this header, you must have the s3:PutBucketPublicAccessBlock 16676 // permission. 16677 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` 16678 16679 // Container for the request. 16680 // 16681 // Delete is a required field 16682 Delete *Delete `locationName:"Delete" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 16683 16684 // The account ID of the expected bucket owner. If the bucket is owned by a 16685 // different account, the request will fail with an HTTP 403 (Access Denied) 16686 // error. 16687 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 16688 16689 // The concatenation of the authentication device's serial number, a space, 16690 // and the value that is displayed on your authentication device. Required to 16691 // permanently delete a versioned object if versioning is configured with MFA 16692 // delete enabled. 16693 MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` 16694 16695 // Confirms that the requester knows that they will be charged for the request. 16696 // Bucket owners need not specify this parameter in their requests. For information 16697 // about downloading objects from requester pays buckets, see Downloading Objects 16698 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 16699 // in the Amazon S3 User Guide. 16700 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 16701 } 16702 16703 // String returns the string representation. 16704 // 16705 // API parameter values that are decorated as "sensitive" in the API will not 16706 // be included in the string output. The member name will be present, but the 16707 // value will be replaced with "sensitive". 16708 func (s DeleteObjectsInput) String() string { 16709 return awsutil.Prettify(s) 16710 } 16711 16712 // GoString returns the string representation. 16713 // 16714 // API parameter values that are decorated as "sensitive" in the API will not 16715 // be included in the string output. The member name will be present, but the 16716 // value will be replaced with "sensitive". 16717 func (s DeleteObjectsInput) GoString() string { 16718 return s.String() 16719 } 16720 16721 // Validate inspects the fields of the type to determine if they are valid. 16722 func (s *DeleteObjectsInput) Validate() error { 16723 invalidParams := request.ErrInvalidParams{Context: "DeleteObjectsInput"} 16724 if s.Bucket == nil { 16725 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16726 } 16727 if s.Bucket != nil && len(*s.Bucket) < 1 { 16728 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 16729 } 16730 if s.Delete == nil { 16731 invalidParams.Add(request.NewErrParamRequired("Delete")) 16732 } 16733 if s.Delete != nil { 16734 if err := s.Delete.Validate(); err != nil { 16735 invalidParams.AddNested("Delete", err.(request.ErrInvalidParams)) 16736 } 16737 } 16738 16739 if invalidParams.Len() > 0 { 16740 return invalidParams 16741 } 16742 return nil 16743 } 16744 16745 // SetBucket sets the Bucket field's value. 16746 func (s *DeleteObjectsInput) SetBucket(v string) *DeleteObjectsInput { 16747 s.Bucket = &v 16748 return s 16749 } 16750 16751 func (s *DeleteObjectsInput) getBucket() (v string) { 16752 if s.Bucket == nil { 16753 return v 16754 } 16755 return *s.Bucket 16756 } 16757 16758 // SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value. 16759 func (s *DeleteObjectsInput) SetBypassGovernanceRetention(v bool) *DeleteObjectsInput { 16760 s.BypassGovernanceRetention = &v 16761 return s 16762 } 16763 16764 // SetDelete sets the Delete field's value. 16765 func (s *DeleteObjectsInput) SetDelete(v *Delete) *DeleteObjectsInput { 16766 s.Delete = v 16767 return s 16768 } 16769 16770 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 16771 func (s *DeleteObjectsInput) SetExpectedBucketOwner(v string) *DeleteObjectsInput { 16772 s.ExpectedBucketOwner = &v 16773 return s 16774 } 16775 16776 // SetMFA sets the MFA field's value. 16777 func (s *DeleteObjectsInput) SetMFA(v string) *DeleteObjectsInput { 16778 s.MFA = &v 16779 return s 16780 } 16781 16782 // SetRequestPayer sets the RequestPayer field's value. 16783 func (s *DeleteObjectsInput) SetRequestPayer(v string) *DeleteObjectsInput { 16784 s.RequestPayer = &v 16785 return s 16786 } 16787 16788 func (s *DeleteObjectsInput) getEndpointARN() (arn.Resource, error) { 16789 if s.Bucket == nil { 16790 return nil, fmt.Errorf("member Bucket is nil") 16791 } 16792 return parseEndpointARN(*s.Bucket) 16793 } 16794 16795 func (s *DeleteObjectsInput) hasEndpointARN() bool { 16796 if s.Bucket == nil { 16797 return false 16798 } 16799 return arn.IsARN(*s.Bucket) 16800 } 16801 16802 // updateArnableField updates the value of the input field that 16803 // takes an ARN as an input. This method is useful to backfill 16804 // the parsed resource name from ARN into the input member. 16805 // It returns a pointer to a modified copy of input and an error. 16806 // Note that original input is not modified. 16807 func (s DeleteObjectsInput) updateArnableField(v string) (interface{}, error) { 16808 if s.Bucket == nil { 16809 return nil, fmt.Errorf("member Bucket is nil") 16810 } 16811 s.Bucket = aws.String(v) 16812 return &s, nil 16813 } 16814 16815 type DeleteObjectsOutput struct { 16816 _ struct{} `type:"structure"` 16817 16818 // Container element for a successful delete. It identifies the object that 16819 // was successfully deleted. 16820 Deleted []*DeletedObject `type:"list" flattened:"true"` 16821 16822 // Container for a failed delete action that describes the object that Amazon 16823 // S3 attempted to delete and the error it encountered. 16824 Errors []*Error `locationName:"Error" type:"list" flattened:"true"` 16825 16826 // If present, indicates that the requester was successfully charged for the 16827 // request. 16828 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 16829 } 16830 16831 // String returns the string representation. 16832 // 16833 // API parameter values that are decorated as "sensitive" in the API will not 16834 // be included in the string output. The member name will be present, but the 16835 // value will be replaced with "sensitive". 16836 func (s DeleteObjectsOutput) String() string { 16837 return awsutil.Prettify(s) 16838 } 16839 16840 // GoString returns the string representation. 16841 // 16842 // API parameter values that are decorated as "sensitive" in the API will not 16843 // be included in the string output. The member name will be present, but the 16844 // value will be replaced with "sensitive". 16845 func (s DeleteObjectsOutput) GoString() string { 16846 return s.String() 16847 } 16848 16849 // SetDeleted sets the Deleted field's value. 16850 func (s *DeleteObjectsOutput) SetDeleted(v []*DeletedObject) *DeleteObjectsOutput { 16851 s.Deleted = v 16852 return s 16853 } 16854 16855 // SetErrors sets the Errors field's value. 16856 func (s *DeleteObjectsOutput) SetErrors(v []*Error) *DeleteObjectsOutput { 16857 s.Errors = v 16858 return s 16859 } 16860 16861 // SetRequestCharged sets the RequestCharged field's value. 16862 func (s *DeleteObjectsOutput) SetRequestCharged(v string) *DeleteObjectsOutput { 16863 s.RequestCharged = &v 16864 return s 16865 } 16866 16867 type DeletePublicAccessBlockInput struct { 16868 _ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"` 16869 16870 // The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete. 16871 // 16872 // Bucket is a required field 16873 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 16874 16875 // The account ID of the expected bucket owner. If the bucket is owned by a 16876 // different account, the request will fail with an HTTP 403 (Access Denied) 16877 // error. 16878 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 16879 } 16880 16881 // String returns the string representation. 16882 // 16883 // API parameter values that are decorated as "sensitive" in the API will not 16884 // be included in the string output. The member name will be present, but the 16885 // value will be replaced with "sensitive". 16886 func (s DeletePublicAccessBlockInput) String() string { 16887 return awsutil.Prettify(s) 16888 } 16889 16890 // GoString returns the string representation. 16891 // 16892 // API parameter values that are decorated as "sensitive" in the API will not 16893 // be included in the string output. The member name will be present, but the 16894 // value will be replaced with "sensitive". 16895 func (s DeletePublicAccessBlockInput) GoString() string { 16896 return s.String() 16897 } 16898 16899 // Validate inspects the fields of the type to determine if they are valid. 16900 func (s *DeletePublicAccessBlockInput) Validate() error { 16901 invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"} 16902 if s.Bucket == nil { 16903 invalidParams.Add(request.NewErrParamRequired("Bucket")) 16904 } 16905 if s.Bucket != nil && len(*s.Bucket) < 1 { 16906 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 16907 } 16908 16909 if invalidParams.Len() > 0 { 16910 return invalidParams 16911 } 16912 return nil 16913 } 16914 16915 // SetBucket sets the Bucket field's value. 16916 func (s *DeletePublicAccessBlockInput) SetBucket(v string) *DeletePublicAccessBlockInput { 16917 s.Bucket = &v 16918 return s 16919 } 16920 16921 func (s *DeletePublicAccessBlockInput) getBucket() (v string) { 16922 if s.Bucket == nil { 16923 return v 16924 } 16925 return *s.Bucket 16926 } 16927 16928 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 16929 func (s *DeletePublicAccessBlockInput) SetExpectedBucketOwner(v string) *DeletePublicAccessBlockInput { 16930 s.ExpectedBucketOwner = &v 16931 return s 16932 } 16933 16934 func (s *DeletePublicAccessBlockInput) getEndpointARN() (arn.Resource, error) { 16935 if s.Bucket == nil { 16936 return nil, fmt.Errorf("member Bucket is nil") 16937 } 16938 return parseEndpointARN(*s.Bucket) 16939 } 16940 16941 func (s *DeletePublicAccessBlockInput) hasEndpointARN() bool { 16942 if s.Bucket == nil { 16943 return false 16944 } 16945 return arn.IsARN(*s.Bucket) 16946 } 16947 16948 // updateArnableField updates the value of the input field that 16949 // takes an ARN as an input. This method is useful to backfill 16950 // the parsed resource name from ARN into the input member. 16951 // It returns a pointer to a modified copy of input and an error. 16952 // Note that original input is not modified. 16953 func (s DeletePublicAccessBlockInput) updateArnableField(v string) (interface{}, error) { 16954 if s.Bucket == nil { 16955 return nil, fmt.Errorf("member Bucket is nil") 16956 } 16957 s.Bucket = aws.String(v) 16958 return &s, nil 16959 } 16960 16961 type DeletePublicAccessBlockOutput struct { 16962 _ struct{} `type:"structure"` 16963 } 16964 16965 // String returns the string representation. 16966 // 16967 // API parameter values that are decorated as "sensitive" in the API will not 16968 // be included in the string output. The member name will be present, but the 16969 // value will be replaced with "sensitive". 16970 func (s DeletePublicAccessBlockOutput) String() string { 16971 return awsutil.Prettify(s) 16972 } 16973 16974 // GoString returns the string representation. 16975 // 16976 // API parameter values that are decorated as "sensitive" in the API will not 16977 // be included in the string output. The member name will be present, but the 16978 // value will be replaced with "sensitive". 16979 func (s DeletePublicAccessBlockOutput) GoString() string { 16980 return s.String() 16981 } 16982 16983 // Information about the deleted object. 16984 type DeletedObject struct { 16985 _ struct{} `type:"structure"` 16986 16987 // Specifies whether the versioned object that was permanently deleted was (true) 16988 // or was not (false) a delete marker. In a simple DELETE, this header indicates 16989 // whether (true) or not (false) a delete marker was created. 16990 DeleteMarker *bool `type:"boolean"` 16991 16992 // The version ID of the delete marker created as a result of the DELETE operation. 16993 // If you delete a specific object version, the value returned by this header 16994 // is the version ID of the object version deleted. 16995 DeleteMarkerVersionId *string `type:"string"` 16996 16997 // The name of the deleted object. 16998 Key *string `min:"1" type:"string"` 16999 17000 // The version ID of the deleted object. 17001 VersionId *string `type:"string"` 17002 } 17003 17004 // String returns the string representation. 17005 // 17006 // API parameter values that are decorated as "sensitive" in the API will not 17007 // be included in the string output. The member name will be present, but the 17008 // value will be replaced with "sensitive". 17009 func (s DeletedObject) String() string { 17010 return awsutil.Prettify(s) 17011 } 17012 17013 // GoString returns the string representation. 17014 // 17015 // API parameter values that are decorated as "sensitive" in the API will not 17016 // be included in the string output. The member name will be present, but the 17017 // value will be replaced with "sensitive". 17018 func (s DeletedObject) GoString() string { 17019 return s.String() 17020 } 17021 17022 // SetDeleteMarker sets the DeleteMarker field's value. 17023 func (s *DeletedObject) SetDeleteMarker(v bool) *DeletedObject { 17024 s.DeleteMarker = &v 17025 return s 17026 } 17027 17028 // SetDeleteMarkerVersionId sets the DeleteMarkerVersionId field's value. 17029 func (s *DeletedObject) SetDeleteMarkerVersionId(v string) *DeletedObject { 17030 s.DeleteMarkerVersionId = &v 17031 return s 17032 } 17033 17034 // SetKey sets the Key field's value. 17035 func (s *DeletedObject) SetKey(v string) *DeletedObject { 17036 s.Key = &v 17037 return s 17038 } 17039 17040 // SetVersionId sets the VersionId field's value. 17041 func (s *DeletedObject) SetVersionId(v string) *DeletedObject { 17042 s.VersionId = &v 17043 return s 17044 } 17045 17046 // Specifies information about where to publish analysis or configuration results 17047 // for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). 17048 type Destination struct { 17049 _ struct{} `type:"structure"` 17050 17051 // Specify this only in a cross-account scenario (where source and destination 17052 // bucket owners are not the same), and you want to change replica ownership 17053 // to the Amazon Web Services account that owns the destination bucket. If this 17054 // is not specified in the replication configuration, the replicas are owned 17055 // by same Amazon Web Services account that owns the source object. 17056 AccessControlTranslation *AccessControlTranslation `type:"structure"` 17057 17058 // Destination bucket owner account ID. In a cross-account scenario, if you 17059 // direct Amazon S3 to change replica ownership to the Amazon Web Services account 17060 // that owns the destination bucket by specifying the AccessControlTranslation 17061 // property, this is the account ID of the destination bucket owner. For more 17062 // information, see Replication Additional Configuration: Changing the Replica 17063 // Owner (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html) 17064 // in the Amazon S3 User Guide. 17065 Account *string `type:"string"` 17066 17067 // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to 17068 // store the results. 17069 // 17070 // Bucket is a required field 17071 Bucket *string `type:"string" required:"true"` 17072 17073 // A container that provides information about encryption. If SourceSelectionCriteria 17074 // is specified, you must specify this element. 17075 EncryptionConfiguration *EncryptionConfiguration `type:"structure"` 17076 17077 // A container specifying replication metrics-related settings enabling replication 17078 // metrics and events. 17079 Metrics *Metrics `type:"structure"` 17080 17081 // A container specifying S3 Replication Time Control (S3 RTC), including whether 17082 // S3 RTC is enabled and the time when all objects and operations on objects 17083 // must be replicated. Must be specified together with a Metrics block. 17084 ReplicationTime *ReplicationTime `type:"structure"` 17085 17086 // The storage class to use when replicating objects, such as S3 Standard or 17087 // reduced redundancy. By default, Amazon S3 uses the storage class of the source 17088 // object to create the object replica. 17089 // 17090 // For valid values, see the StorageClass element of the PUT Bucket replication 17091 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) 17092 // action in the Amazon S3 API Reference. 17093 StorageClass *string `type:"string" enum:"StorageClass"` 17094 } 17095 17096 // String returns the string representation. 17097 // 17098 // API parameter values that are decorated as "sensitive" in the API will not 17099 // be included in the string output. The member name will be present, but the 17100 // value will be replaced with "sensitive". 17101 func (s Destination) String() string { 17102 return awsutil.Prettify(s) 17103 } 17104 17105 // GoString returns the string representation. 17106 // 17107 // API parameter values that are decorated as "sensitive" in the API will not 17108 // be included in the string output. The member name will be present, but the 17109 // value will be replaced with "sensitive". 17110 func (s Destination) GoString() string { 17111 return s.String() 17112 } 17113 17114 // Validate inspects the fields of the type to determine if they are valid. 17115 func (s *Destination) Validate() error { 17116 invalidParams := request.ErrInvalidParams{Context: "Destination"} 17117 if s.Bucket == nil { 17118 invalidParams.Add(request.NewErrParamRequired("Bucket")) 17119 } 17120 if s.AccessControlTranslation != nil { 17121 if err := s.AccessControlTranslation.Validate(); err != nil { 17122 invalidParams.AddNested("AccessControlTranslation", err.(request.ErrInvalidParams)) 17123 } 17124 } 17125 if s.Metrics != nil { 17126 if err := s.Metrics.Validate(); err != nil { 17127 invalidParams.AddNested("Metrics", err.(request.ErrInvalidParams)) 17128 } 17129 } 17130 if s.ReplicationTime != nil { 17131 if err := s.ReplicationTime.Validate(); err != nil { 17132 invalidParams.AddNested("ReplicationTime", err.(request.ErrInvalidParams)) 17133 } 17134 } 17135 17136 if invalidParams.Len() > 0 { 17137 return invalidParams 17138 } 17139 return nil 17140 } 17141 17142 // SetAccessControlTranslation sets the AccessControlTranslation field's value. 17143 func (s *Destination) SetAccessControlTranslation(v *AccessControlTranslation) *Destination { 17144 s.AccessControlTranslation = v 17145 return s 17146 } 17147 17148 // SetAccount sets the Account field's value. 17149 func (s *Destination) SetAccount(v string) *Destination { 17150 s.Account = &v 17151 return s 17152 } 17153 17154 // SetBucket sets the Bucket field's value. 17155 func (s *Destination) SetBucket(v string) *Destination { 17156 s.Bucket = &v 17157 return s 17158 } 17159 17160 func (s *Destination) getBucket() (v string) { 17161 if s.Bucket == nil { 17162 return v 17163 } 17164 return *s.Bucket 17165 } 17166 17167 // SetEncryptionConfiguration sets the EncryptionConfiguration field's value. 17168 func (s *Destination) SetEncryptionConfiguration(v *EncryptionConfiguration) *Destination { 17169 s.EncryptionConfiguration = v 17170 return s 17171 } 17172 17173 // SetMetrics sets the Metrics field's value. 17174 func (s *Destination) SetMetrics(v *Metrics) *Destination { 17175 s.Metrics = v 17176 return s 17177 } 17178 17179 // SetReplicationTime sets the ReplicationTime field's value. 17180 func (s *Destination) SetReplicationTime(v *ReplicationTime) *Destination { 17181 s.ReplicationTime = v 17182 return s 17183 } 17184 17185 // SetStorageClass sets the StorageClass field's value. 17186 func (s *Destination) SetStorageClass(v string) *Destination { 17187 s.StorageClass = &v 17188 return s 17189 } 17190 17191 // Contains the type of server-side encryption used. 17192 type Encryption struct { 17193 _ struct{} `type:"structure"` 17194 17195 // The server-side encryption algorithm used when storing job results in Amazon 17196 // S3 (for example, AES256, aws:kms). 17197 // 17198 // EncryptionType is a required field 17199 EncryptionType *string `type:"string" required:"true" enum:"ServerSideEncryption"` 17200 17201 // If the encryption type is aws:kms, this optional value can be used to specify 17202 // the encryption context for the restore results. 17203 KMSContext *string `type:"string"` 17204 17205 // If the encryption type is aws:kms, this optional value specifies the ID of 17206 // the symmetric customer managed key to use for encryption of job results. 17207 // Amazon S3 only supports symmetric keys. For more information, see Using symmetric 17208 // and asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 17209 // in the Amazon Web Services Key Management Service Developer Guide. 17210 // 17211 // KMSKeyId is a sensitive parameter and its value will be 17212 // replaced with "sensitive" in string returned by Encryption's 17213 // String and GoString methods. 17214 KMSKeyId *string `type:"string" sensitive:"true"` 17215 } 17216 17217 // String returns the string representation. 17218 // 17219 // API parameter values that are decorated as "sensitive" in the API will not 17220 // be included in the string output. The member name will be present, but the 17221 // value will be replaced with "sensitive". 17222 func (s Encryption) String() string { 17223 return awsutil.Prettify(s) 17224 } 17225 17226 // GoString returns the string representation. 17227 // 17228 // API parameter values that are decorated as "sensitive" in the API will not 17229 // be included in the string output. The member name will be present, but the 17230 // value will be replaced with "sensitive". 17231 func (s Encryption) GoString() string { 17232 return s.String() 17233 } 17234 17235 // Validate inspects the fields of the type to determine if they are valid. 17236 func (s *Encryption) Validate() error { 17237 invalidParams := request.ErrInvalidParams{Context: "Encryption"} 17238 if s.EncryptionType == nil { 17239 invalidParams.Add(request.NewErrParamRequired("EncryptionType")) 17240 } 17241 17242 if invalidParams.Len() > 0 { 17243 return invalidParams 17244 } 17245 return nil 17246 } 17247 17248 // SetEncryptionType sets the EncryptionType field's value. 17249 func (s *Encryption) SetEncryptionType(v string) *Encryption { 17250 s.EncryptionType = &v 17251 return s 17252 } 17253 17254 // SetKMSContext sets the KMSContext field's value. 17255 func (s *Encryption) SetKMSContext(v string) *Encryption { 17256 s.KMSContext = &v 17257 return s 17258 } 17259 17260 // SetKMSKeyId sets the KMSKeyId field's value. 17261 func (s *Encryption) SetKMSKeyId(v string) *Encryption { 17262 s.KMSKeyId = &v 17263 return s 17264 } 17265 17266 // Specifies encryption-related information for an Amazon S3 bucket that is 17267 // a destination for replicated objects. 17268 type EncryptionConfiguration struct { 17269 _ struct{} `type:"structure"` 17270 17271 // Specifies the ID (Key ARN or Alias ARN) of the customer managed Amazon Web 17272 // Services KMS key stored in Amazon Web Services Key Management Service (KMS) 17273 // for the destination bucket. Amazon S3 uses this key to encrypt replica objects. 17274 // Amazon S3 only supports symmetric, customer managed KMS keys. For more information, 17275 // see Using symmetric and asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 17276 // in the Amazon Web Services Key Management Service Developer Guide. 17277 ReplicaKmsKeyID *string `type:"string"` 17278 } 17279 17280 // String returns the string representation. 17281 // 17282 // API parameter values that are decorated as "sensitive" in the API will not 17283 // be included in the string output. The member name will be present, but the 17284 // value will be replaced with "sensitive". 17285 func (s EncryptionConfiguration) String() string { 17286 return awsutil.Prettify(s) 17287 } 17288 17289 // GoString returns the string representation. 17290 // 17291 // API parameter values that are decorated as "sensitive" in the API will not 17292 // be included in the string output. The member name will be present, but the 17293 // value will be replaced with "sensitive". 17294 func (s EncryptionConfiguration) GoString() string { 17295 return s.String() 17296 } 17297 17298 // SetReplicaKmsKeyID sets the ReplicaKmsKeyID field's value. 17299 func (s *EncryptionConfiguration) SetReplicaKmsKeyID(v string) *EncryptionConfiguration { 17300 s.ReplicaKmsKeyID = &v 17301 return s 17302 } 17303 17304 // A message that indicates the request is complete and no more messages will 17305 // be sent. You should not assume that the request is complete until the client 17306 // receives an EndEvent. 17307 type EndEvent struct { 17308 _ struct{} `locationName:"EndEvent" type:"structure"` 17309 } 17310 17311 // String returns the string representation. 17312 // 17313 // API parameter values that are decorated as "sensitive" in the API will not 17314 // be included in the string output. The member name will be present, but the 17315 // value will be replaced with "sensitive". 17316 func (s EndEvent) String() string { 17317 return awsutil.Prettify(s) 17318 } 17319 17320 // GoString returns the string representation. 17321 // 17322 // API parameter values that are decorated as "sensitive" in the API will not 17323 // be included in the string output. The member name will be present, but the 17324 // value will be replaced with "sensitive". 17325 func (s EndEvent) GoString() string { 17326 return s.String() 17327 } 17328 17329 // The EndEvent is and event in the SelectObjectContentEventStream group of events. 17330 func (s *EndEvent) eventSelectObjectContentEventStream() {} 17331 17332 // UnmarshalEvent unmarshals the EventStream Message into the EndEvent value. 17333 // This method is only used internally within the SDK's EventStream handling. 17334 func (s *EndEvent) UnmarshalEvent( 17335 payloadUnmarshaler protocol.PayloadUnmarshaler, 17336 msg eventstream.Message, 17337 ) error { 17338 return nil 17339 } 17340 17341 // MarshalEvent marshals the type into an stream event value. This method 17342 // should only used internally within the SDK's EventStream handling. 17343 func (s *EndEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 17344 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 17345 return msg, err 17346 } 17347 17348 // Container for all error elements. 17349 type Error struct { 17350 _ struct{} `type:"structure"` 17351 17352 // The error code is a string that uniquely identifies an error condition. It 17353 // is meant to be read and understood by programs that detect and handle errors 17354 // by type. 17355 // 17356 // Amazon S3 error codes 17357 // 17358 // * Code: AccessDenied Description: Access Denied HTTP Status Code: 403 17359 // Forbidden SOAP Fault Code Prefix: Client 17360 // 17361 // * Code: AccountProblem Description: There is a problem with your Amazon 17362 // Web Services account that prevents the action from completing successfully. 17363 // Contact Amazon Web Services Support for further assistance. HTTP Status 17364 // Code: 403 Forbidden SOAP Fault Code Prefix: Client 17365 // 17366 // * Code: AllAccessDisabled Description: All access to this Amazon S3 resource 17367 // has been disabled. Contact Amazon Web Services Support for further assistance. 17368 // HTTP Status Code: 403 Forbidden SOAP Fault Code Prefix: Client 17369 // 17370 // * Code: AmbiguousGrantByEmailAddress Description: The email address you 17371 // provided is associated with more than one account. HTTP Status Code: 400 17372 // Bad Request SOAP Fault Code Prefix: Client 17373 // 17374 // * Code: AuthorizationHeaderMalformed Description: The authorization header 17375 // you provided is invalid. HTTP Status Code: 400 Bad Request HTTP Status 17376 // Code: N/A 17377 // 17378 // * Code: BadDigest Description: The Content-MD5 you specified did not match 17379 // what we received. HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: 17380 // Client 17381 // 17382 // * Code: BucketAlreadyExists Description: The requested bucket name is 17383 // not available. The bucket namespace is shared by all users of the system. 17384 // Please select a different name and try again. HTTP Status Code: 409 Conflict 17385 // SOAP Fault Code Prefix: Client 17386 // 17387 // * Code: BucketAlreadyOwnedByYou Description: The bucket you tried to create 17388 // already exists, and you own it. Amazon S3 returns this error in all Amazon 17389 // Web Services Regions except in the North Virginia Region. For legacy compatibility, 17390 // if you re-create an existing bucket that you already own in the North 17391 // Virginia Region, Amazon S3 returns 200 OK and resets the bucket access 17392 // control lists (ACLs). Code: 409 Conflict (in all Regions except the North 17393 // Virginia Region) SOAP Fault Code Prefix: Client 17394 // 17395 // * Code: BucketNotEmpty Description: The bucket you tried to delete is 17396 // not empty. HTTP Status Code: 409 Conflict SOAP Fault Code Prefix: Client 17397 // 17398 // * Code: CredentialsNotSupported Description: This request does not support 17399 // credentials. HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: 17400 // Client 17401 // 17402 // * Code: CrossLocationLoggingProhibited Description: Cross-location logging 17403 // not allowed. Buckets in one geographic location cannot log information 17404 // to a bucket in another location. HTTP Status Code: 403 Forbidden SOAP 17405 // Fault Code Prefix: Client 17406 // 17407 // * Code: EntityTooSmall Description: Your proposed upload is smaller than 17408 // the minimum allowed object size. HTTP Status Code: 400 Bad Request SOAP 17409 // Fault Code Prefix: Client 17410 // 17411 // * Code: EntityTooLarge Description: Your proposed upload exceeds the maximum 17412 // allowed object size. HTTP Status Code: 400 Bad Request SOAP Fault Code 17413 // Prefix: Client 17414 // 17415 // * Code: ExpiredToken Description: The provided token has expired. HTTP 17416 // Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17417 // 17418 // * Code: IllegalVersioningConfigurationException Description: Indicates 17419 // that the versioning configuration specified in the request is invalid. 17420 // HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17421 // 17422 // * Code: IncompleteBody Description: You did not provide the number of 17423 // bytes specified by the Content-Length HTTP header HTTP Status Code: 400 17424 // Bad Request SOAP Fault Code Prefix: Client 17425 // 17426 // * Code: IncorrectNumberOfFilesInPostRequest Description: POST requires 17427 // exactly one file upload per request. HTTP Status Code: 400 Bad Request 17428 // SOAP Fault Code Prefix: Client 17429 // 17430 // * Code: InlineDataTooLarge Description: Inline data exceeds the maximum 17431 // allowed size. HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: 17432 // Client 17433 // 17434 // * Code: InternalError Description: We encountered an internal error. Please 17435 // try again. HTTP Status Code: 500 Internal Server Error SOAP Fault Code 17436 // Prefix: Server 17437 // 17438 // * Code: InvalidAccessKeyId Description: The Amazon Web Services access 17439 // key ID you provided does not exist in our records. HTTP Status Code: 403 17440 // Forbidden SOAP Fault Code Prefix: Client 17441 // 17442 // * Code: InvalidAddressingHeader Description: You must specify the Anonymous 17443 // role. HTTP Status Code: N/A SOAP Fault Code Prefix: Client 17444 // 17445 // * Code: InvalidArgument Description: Invalid Argument HTTP Status Code: 17446 // 400 Bad Request SOAP Fault Code Prefix: Client 17447 // 17448 // * Code: InvalidBucketName Description: The specified bucket is not valid. 17449 // HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17450 // 17451 // * Code: InvalidBucketState Description: The request is not valid with 17452 // the current state of the bucket. HTTP Status Code: 409 Conflict SOAP Fault 17453 // Code Prefix: Client 17454 // 17455 // * Code: InvalidDigest Description: The Content-MD5 you specified is not 17456 // valid. HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17457 // 17458 // * Code: InvalidEncryptionAlgorithmError Description: The encryption request 17459 // you specified is not valid. The valid value is AES256. HTTP Status Code: 17460 // 400 Bad Request SOAP Fault Code Prefix: Client 17461 // 17462 // * Code: InvalidLocationConstraint Description: The specified location 17463 // constraint is not valid. For more information about Regions, see How to 17464 // Select a Region for Your Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). 17465 // HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17466 // 17467 // * Code: InvalidObjectState Description: The action is not valid for the 17468 // current state of the object. HTTP Status Code: 403 Forbidden SOAP Fault 17469 // Code Prefix: Client 17470 // 17471 // * Code: InvalidPart Description: One or more of the specified parts could 17472 // not be found. The part might not have been uploaded, or the specified 17473 // entity tag might not have matched the part's entity tag. HTTP Status Code: 17474 // 400 Bad Request SOAP Fault Code Prefix: Client 17475 // 17476 // * Code: InvalidPartOrder Description: The list of parts was not in ascending 17477 // order. Parts list must be specified in order by part number. HTTP Status 17478 // Code: 400 Bad Request SOAP Fault Code Prefix: Client 17479 // 17480 // * Code: InvalidPayer Description: All access to this object has been disabled. 17481 // Please contact Amazon Web Services Support for further assistance. HTTP 17482 // Status Code: 403 Forbidden SOAP Fault Code Prefix: Client 17483 // 17484 // * Code: InvalidPolicyDocument Description: The content of the form does 17485 // not meet the conditions specified in the policy document. HTTP Status 17486 // Code: 400 Bad Request SOAP Fault Code Prefix: Client 17487 // 17488 // * Code: InvalidRange Description: The requested range cannot be satisfied. 17489 // HTTP Status Code: 416 Requested Range Not Satisfiable SOAP Fault Code 17490 // Prefix: Client 17491 // 17492 // * Code: InvalidRequest Description: Please use AWS4-HMAC-SHA256. HTTP 17493 // Status Code: 400 Bad Request Code: N/A 17494 // 17495 // * Code: InvalidRequest Description: SOAP requests must be made over an 17496 // HTTPS connection. HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: 17497 // Client 17498 // 17499 // * Code: InvalidRequest Description: Amazon S3 Transfer Acceleration is 17500 // not supported for buckets with non-DNS compliant names. HTTP Status Code: 17501 // 400 Bad Request Code: N/A 17502 // 17503 // * Code: InvalidRequest Description: Amazon S3 Transfer Acceleration is 17504 // not supported for buckets with periods (.) in their names. HTTP Status 17505 // Code: 400 Bad Request Code: N/A 17506 // 17507 // * Code: InvalidRequest Description: Amazon S3 Transfer Accelerate endpoint 17508 // only supports virtual style requests. HTTP Status Code: 400 Bad Request 17509 // Code: N/A 17510 // 17511 // * Code: InvalidRequest Description: Amazon S3 Transfer Accelerate is not 17512 // configured on this bucket. HTTP Status Code: 400 Bad Request Code: N/A 17513 // 17514 // * Code: InvalidRequest Description: Amazon S3 Transfer Accelerate is disabled 17515 // on this bucket. HTTP Status Code: 400 Bad Request Code: N/A 17516 // 17517 // * Code: InvalidRequest Description: Amazon S3 Transfer Acceleration is 17518 // not supported on this bucket. Contact Amazon Web Services Support for 17519 // more information. HTTP Status Code: 400 Bad Request Code: N/A 17520 // 17521 // * Code: InvalidRequest Description: Amazon S3 Transfer Acceleration cannot 17522 // be enabled on this bucket. Contact Amazon Web Services Support for more 17523 // information. HTTP Status Code: 400 Bad Request Code: N/A 17524 // 17525 // * Code: InvalidSecurity Description: The provided security credentials 17526 // are not valid. HTTP Status Code: 403 Forbidden SOAP Fault Code Prefix: 17527 // Client 17528 // 17529 // * Code: InvalidSOAPRequest Description: The SOAP request body is invalid. 17530 // HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17531 // 17532 // * Code: InvalidStorageClass Description: The storage class you specified 17533 // is not valid. HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: 17534 // Client 17535 // 17536 // * Code: InvalidTargetBucketForLogging Description: The target bucket for 17537 // logging does not exist, is not owned by you, or does not have the appropriate 17538 // grants for the log-delivery group. HTTP Status Code: 400 Bad Request SOAP 17539 // Fault Code Prefix: Client 17540 // 17541 // * Code: InvalidToken Description: The provided token is malformed or otherwise 17542 // invalid. HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17543 // 17544 // * Code: InvalidURI Description: Couldn't parse the specified URI. HTTP 17545 // Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17546 // 17547 // * Code: KeyTooLongError Description: Your key is too long. HTTP Status 17548 // Code: 400 Bad Request SOAP Fault Code Prefix: Client 17549 // 17550 // * Code: MalformedACLError Description: The XML you provided was not well-formed 17551 // or did not validate against our published schema. HTTP Status Code: 400 17552 // Bad Request SOAP Fault Code Prefix: Client 17553 // 17554 // * Code: MalformedPOSTRequest Description: The body of your POST request 17555 // is not well-formed multipart/form-data. HTTP Status Code: 400 Bad Request 17556 // SOAP Fault Code Prefix: Client 17557 // 17558 // * Code: MalformedXML Description: This happens when the user sends malformed 17559 // XML (XML that doesn't conform to the published XSD) for the configuration. 17560 // The error message is, "The XML you provided was not well-formed or did 17561 // not validate against our published schema." HTTP Status Code: 400 Bad 17562 // Request SOAP Fault Code Prefix: Client 17563 // 17564 // * Code: MaxMessageLengthExceeded Description: Your request was too big. 17565 // HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17566 // 17567 // * Code: MaxPostPreDataLengthExceededError Description: Your POST request 17568 // fields preceding the upload file were too large. HTTP Status Code: 400 17569 // Bad Request SOAP Fault Code Prefix: Client 17570 // 17571 // * Code: MetadataTooLarge Description: Your metadata headers exceed the 17572 // maximum allowed metadata size. HTTP Status Code: 400 Bad Request SOAP 17573 // Fault Code Prefix: Client 17574 // 17575 // * Code: MethodNotAllowed Description: The specified method is not allowed 17576 // against this resource. HTTP Status Code: 405 Method Not Allowed SOAP Fault 17577 // Code Prefix: Client 17578 // 17579 // * Code: MissingAttachment Description: A SOAP attachment was expected, 17580 // but none were found. HTTP Status Code: N/A SOAP Fault Code Prefix: Client 17581 // 17582 // * Code: MissingContentLength Description: You must provide the Content-Length 17583 // HTTP header. HTTP Status Code: 411 Length Required SOAP Fault Code Prefix: 17584 // Client 17585 // 17586 // * Code: MissingRequestBodyError Description: This happens when the user 17587 // sends an empty XML document as a request. The error message is, "Request 17588 // body is empty." HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: 17589 // Client 17590 // 17591 // * Code: MissingSecurityElement Description: The SOAP 1.1 request is missing 17592 // a security element. HTTP Status Code: 400 Bad Request SOAP Fault Code 17593 // Prefix: Client 17594 // 17595 // * Code: MissingSecurityHeader Description: Your request is missing a required 17596 // header. HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17597 // 17598 // * Code: NoLoggingStatusForKey Description: There is no such thing as a 17599 // logging status subresource for a key. HTTP Status Code: 400 Bad Request 17600 // SOAP Fault Code Prefix: Client 17601 // 17602 // * Code: NoSuchBucket Description: The specified bucket does not exist. 17603 // HTTP Status Code: 404 Not Found SOAP Fault Code Prefix: Client 17604 // 17605 // * Code: NoSuchBucketPolicy Description: The specified bucket does not 17606 // have a bucket policy. HTTP Status Code: 404 Not Found SOAP Fault Code 17607 // Prefix: Client 17608 // 17609 // * Code: NoSuchKey Description: The specified key does not exist. HTTP 17610 // Status Code: 404 Not Found SOAP Fault Code Prefix: Client 17611 // 17612 // * Code: NoSuchLifecycleConfiguration Description: The lifecycle configuration 17613 // does not exist. HTTP Status Code: 404 Not Found SOAP Fault Code Prefix: 17614 // Client 17615 // 17616 // * Code: NoSuchUpload Description: The specified multipart upload does 17617 // not exist. The upload ID might be invalid, or the multipart upload might 17618 // have been aborted or completed. HTTP Status Code: 404 Not Found SOAP Fault 17619 // Code Prefix: Client 17620 // 17621 // * Code: NoSuchVersion Description: Indicates that the version ID specified 17622 // in the request does not match an existing version. HTTP Status Code: 404 17623 // Not Found SOAP Fault Code Prefix: Client 17624 // 17625 // * Code: NotImplemented Description: A header you provided implies functionality 17626 // that is not implemented. HTTP Status Code: 501 Not Implemented SOAP Fault 17627 // Code Prefix: Server 17628 // 17629 // * Code: NotSignedUp Description: Your account is not signed up for the 17630 // Amazon S3 service. You must sign up before you can use Amazon S3. You 17631 // can sign up at the following URL: Amazon S3 (http://aws.amazon.com/s3) 17632 // HTTP Status Code: 403 Forbidden SOAP Fault Code Prefix: Client 17633 // 17634 // * Code: OperationAborted Description: A conflicting conditional action 17635 // is currently in progress against this resource. Try again. HTTP Status 17636 // Code: 409 Conflict SOAP Fault Code Prefix: Client 17637 // 17638 // * Code: PermanentRedirect Description: The bucket you are attempting to 17639 // access must be addressed using the specified endpoint. Send all future 17640 // requests to this endpoint. HTTP Status Code: 301 Moved Permanently SOAP 17641 // Fault Code Prefix: Client 17642 // 17643 // * Code: PreconditionFailed Description: At least one of the preconditions 17644 // you specified did not hold. HTTP Status Code: 412 Precondition Failed 17645 // SOAP Fault Code Prefix: Client 17646 // 17647 // * Code: Redirect Description: Temporary redirect. HTTP Status Code: 307 17648 // Moved Temporarily SOAP Fault Code Prefix: Client 17649 // 17650 // * Code: RestoreAlreadyInProgress Description: Object restore is already 17651 // in progress. HTTP Status Code: 409 Conflict SOAP Fault Code Prefix: Client 17652 // 17653 // * Code: RequestIsNotMultiPartContent Description: Bucket POST must be 17654 // of the enclosure-type multipart/form-data. HTTP Status Code: 400 Bad Request 17655 // SOAP Fault Code Prefix: Client 17656 // 17657 // * Code: RequestTimeout Description: Your socket connection to the server 17658 // was not read from or written to within the timeout period. HTTP Status 17659 // Code: 400 Bad Request SOAP Fault Code Prefix: Client 17660 // 17661 // * Code: RequestTimeTooSkewed Description: The difference between the request 17662 // time and the server's time is too large. HTTP Status Code: 403 Forbidden 17663 // SOAP Fault Code Prefix: Client 17664 // 17665 // * Code: RequestTorrentOfBucketError Description: Requesting the torrent 17666 // file of a bucket is not permitted. HTTP Status Code: 400 Bad Request SOAP 17667 // Fault Code Prefix: Client 17668 // 17669 // * Code: SignatureDoesNotMatch Description: The request signature we calculated 17670 // does not match the signature you provided. Check your Amazon Web Services 17671 // secret access key and signing method. For more information, see REST Authentication 17672 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) 17673 // and SOAP Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html) 17674 // for details. HTTP Status Code: 403 Forbidden SOAP Fault Code Prefix: Client 17675 // 17676 // * Code: ServiceUnavailable Description: Reduce your request rate. HTTP 17677 // Status Code: 503 Service Unavailable SOAP Fault Code Prefix: Server 17678 // 17679 // * Code: SlowDown Description: Reduce your request rate. HTTP Status Code: 17680 // 503 Slow Down SOAP Fault Code Prefix: Server 17681 // 17682 // * Code: TemporaryRedirect Description: You are being redirected to the 17683 // bucket while DNS updates. HTTP Status Code: 307 Moved Temporarily SOAP 17684 // Fault Code Prefix: Client 17685 // 17686 // * Code: TokenRefreshRequired Description: The provided token must be refreshed. 17687 // HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17688 // 17689 // * Code: TooManyBuckets Description: You have attempted to create more 17690 // buckets than allowed. HTTP Status Code: 400 Bad Request SOAP Fault Code 17691 // Prefix: Client 17692 // 17693 // * Code: UnexpectedContent Description: This request does not support content. 17694 // HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17695 // 17696 // * Code: UnresolvableGrantByEmailAddress Description: The email address 17697 // you provided does not match any account on record. HTTP Status Code: 400 17698 // Bad Request SOAP Fault Code Prefix: Client 17699 // 17700 // * Code: UserKeyMustBeSpecified Description: The bucket POST must contain 17701 // the specified field name. If it is specified, check the order of the fields. 17702 // HTTP Status Code: 400 Bad Request SOAP Fault Code Prefix: Client 17703 Code *string `type:"string"` 17704 17705 // The error key. 17706 Key *string `min:"1" type:"string"` 17707 17708 // The error message contains a generic description of the error condition in 17709 // English. It is intended for a human audience. Simple programs display the 17710 // message directly to the end user if they encounter an error condition they 17711 // don't know how or don't care to handle. Sophisticated programs with more 17712 // exhaustive error handling and proper internationalization are more likely 17713 // to ignore the error message. 17714 Message *string `type:"string"` 17715 17716 // The version ID of the error. 17717 VersionId *string `type:"string"` 17718 } 17719 17720 // String returns the string representation. 17721 // 17722 // API parameter values that are decorated as "sensitive" in the API will not 17723 // be included in the string output. The member name will be present, but the 17724 // value will be replaced with "sensitive". 17725 func (s Error) String() string { 17726 return awsutil.Prettify(s) 17727 } 17728 17729 // GoString returns the string representation. 17730 // 17731 // API parameter values that are decorated as "sensitive" in the API will not 17732 // be included in the string output. The member name will be present, but the 17733 // value will be replaced with "sensitive". 17734 func (s Error) GoString() string { 17735 return s.String() 17736 } 17737 17738 // SetCode sets the Code field's value. 17739 func (s *Error) SetCode(v string) *Error { 17740 s.Code = &v 17741 return s 17742 } 17743 17744 // SetKey sets the Key field's value. 17745 func (s *Error) SetKey(v string) *Error { 17746 s.Key = &v 17747 return s 17748 } 17749 17750 // SetMessage sets the Message field's value. 17751 func (s *Error) SetMessage(v string) *Error { 17752 s.Message = &v 17753 return s 17754 } 17755 17756 // SetVersionId sets the VersionId field's value. 17757 func (s *Error) SetVersionId(v string) *Error { 17758 s.VersionId = &v 17759 return s 17760 } 17761 17762 // The error information. 17763 type ErrorDocument struct { 17764 _ struct{} `type:"structure"` 17765 17766 // The object key name to use when a 4XX class error occurs. 17767 // 17768 // Replacement must be made for object keys containing special characters (such 17769 // as carriage returns) when using XML requests. For more information, see XML 17770 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 17771 // 17772 // Key is a required field 17773 Key *string `min:"1" type:"string" required:"true"` 17774 } 17775 17776 // String returns the string representation. 17777 // 17778 // API parameter values that are decorated as "sensitive" in the API will not 17779 // be included in the string output. The member name will be present, but the 17780 // value will be replaced with "sensitive". 17781 func (s ErrorDocument) String() string { 17782 return awsutil.Prettify(s) 17783 } 17784 17785 // GoString returns the string representation. 17786 // 17787 // API parameter values that are decorated as "sensitive" in the API will not 17788 // be included in the string output. The member name will be present, but the 17789 // value will be replaced with "sensitive". 17790 func (s ErrorDocument) GoString() string { 17791 return s.String() 17792 } 17793 17794 // Validate inspects the fields of the type to determine if they are valid. 17795 func (s *ErrorDocument) Validate() error { 17796 invalidParams := request.ErrInvalidParams{Context: "ErrorDocument"} 17797 if s.Key == nil { 17798 invalidParams.Add(request.NewErrParamRequired("Key")) 17799 } 17800 if s.Key != nil && len(*s.Key) < 1 { 17801 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 17802 } 17803 17804 if invalidParams.Len() > 0 { 17805 return invalidParams 17806 } 17807 return nil 17808 } 17809 17810 // SetKey sets the Key field's value. 17811 func (s *ErrorDocument) SetKey(v string) *ErrorDocument { 17812 s.Key = &v 17813 return s 17814 } 17815 17816 // Optional configuration to replicate existing source bucket objects. For more 17817 // information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) 17818 // in the Amazon S3 User Guide. 17819 type ExistingObjectReplication struct { 17820 _ struct{} `type:"structure"` 17821 17822 // Status is a required field 17823 Status *string `type:"string" required:"true" enum:"ExistingObjectReplicationStatus"` 17824 } 17825 17826 // String returns the string representation. 17827 // 17828 // API parameter values that are decorated as "sensitive" in the API will not 17829 // be included in the string output. The member name will be present, but the 17830 // value will be replaced with "sensitive". 17831 func (s ExistingObjectReplication) String() string { 17832 return awsutil.Prettify(s) 17833 } 17834 17835 // GoString returns the string representation. 17836 // 17837 // API parameter values that are decorated as "sensitive" in the API will not 17838 // be included in the string output. The member name will be present, but the 17839 // value will be replaced with "sensitive". 17840 func (s ExistingObjectReplication) GoString() string { 17841 return s.String() 17842 } 17843 17844 // Validate inspects the fields of the type to determine if they are valid. 17845 func (s *ExistingObjectReplication) Validate() error { 17846 invalidParams := request.ErrInvalidParams{Context: "ExistingObjectReplication"} 17847 if s.Status == nil { 17848 invalidParams.Add(request.NewErrParamRequired("Status")) 17849 } 17850 17851 if invalidParams.Len() > 0 { 17852 return invalidParams 17853 } 17854 return nil 17855 } 17856 17857 // SetStatus sets the Status field's value. 17858 func (s *ExistingObjectReplication) SetStatus(v string) *ExistingObjectReplication { 17859 s.Status = &v 17860 return s 17861 } 17862 17863 // Specifies the Amazon S3 object key name to filter on and whether to filter 17864 // on the suffix or prefix of the key name. 17865 type FilterRule struct { 17866 _ struct{} `type:"structure"` 17867 17868 // The object key name prefix or suffix identifying one or more objects to which 17869 // the filtering rule applies. The maximum length is 1,024 characters. Overlapping 17870 // prefixes and suffixes are not supported. For more information, see Configuring 17871 // Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 17872 // in the Amazon S3 User Guide. 17873 Name *string `type:"string" enum:"FilterRuleName"` 17874 17875 // The value that the filter searches for in object key names. 17876 Value *string `type:"string"` 17877 } 17878 17879 // String returns the string representation. 17880 // 17881 // API parameter values that are decorated as "sensitive" in the API will not 17882 // be included in the string output. The member name will be present, but the 17883 // value will be replaced with "sensitive". 17884 func (s FilterRule) String() string { 17885 return awsutil.Prettify(s) 17886 } 17887 17888 // GoString returns the string representation. 17889 // 17890 // API parameter values that are decorated as "sensitive" in the API will not 17891 // be included in the string output. The member name will be present, but the 17892 // value will be replaced with "sensitive". 17893 func (s FilterRule) GoString() string { 17894 return s.String() 17895 } 17896 17897 // SetName sets the Name field's value. 17898 func (s *FilterRule) SetName(v string) *FilterRule { 17899 s.Name = &v 17900 return s 17901 } 17902 17903 // SetValue sets the Value field's value. 17904 func (s *FilterRule) SetValue(v string) *FilterRule { 17905 s.Value = &v 17906 return s 17907 } 17908 17909 type GetBucketAccelerateConfigurationInput struct { 17910 _ struct{} `locationName:"GetBucketAccelerateConfigurationRequest" type:"structure"` 17911 17912 // The name of the bucket for which the accelerate configuration is retrieved. 17913 // 17914 // Bucket is a required field 17915 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 17916 17917 // The account ID of the expected bucket owner. If the bucket is owned by a 17918 // different account, the request will fail with an HTTP 403 (Access Denied) 17919 // error. 17920 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 17921 } 17922 17923 // String returns the string representation. 17924 // 17925 // API parameter values that are decorated as "sensitive" in the API will not 17926 // be included in the string output. The member name will be present, but the 17927 // value will be replaced with "sensitive". 17928 func (s GetBucketAccelerateConfigurationInput) String() string { 17929 return awsutil.Prettify(s) 17930 } 17931 17932 // GoString returns the string representation. 17933 // 17934 // API parameter values that are decorated as "sensitive" in the API will not 17935 // be included in the string output. The member name will be present, but the 17936 // value will be replaced with "sensitive". 17937 func (s GetBucketAccelerateConfigurationInput) GoString() string { 17938 return s.String() 17939 } 17940 17941 // Validate inspects the fields of the type to determine if they are valid. 17942 func (s *GetBucketAccelerateConfigurationInput) Validate() error { 17943 invalidParams := request.ErrInvalidParams{Context: "GetBucketAccelerateConfigurationInput"} 17944 if s.Bucket == nil { 17945 invalidParams.Add(request.NewErrParamRequired("Bucket")) 17946 } 17947 if s.Bucket != nil && len(*s.Bucket) < 1 { 17948 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 17949 } 17950 17951 if invalidParams.Len() > 0 { 17952 return invalidParams 17953 } 17954 return nil 17955 } 17956 17957 // SetBucket sets the Bucket field's value. 17958 func (s *GetBucketAccelerateConfigurationInput) SetBucket(v string) *GetBucketAccelerateConfigurationInput { 17959 s.Bucket = &v 17960 return s 17961 } 17962 17963 func (s *GetBucketAccelerateConfigurationInput) getBucket() (v string) { 17964 if s.Bucket == nil { 17965 return v 17966 } 17967 return *s.Bucket 17968 } 17969 17970 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 17971 func (s *GetBucketAccelerateConfigurationInput) SetExpectedBucketOwner(v string) *GetBucketAccelerateConfigurationInput { 17972 s.ExpectedBucketOwner = &v 17973 return s 17974 } 17975 17976 func (s *GetBucketAccelerateConfigurationInput) getEndpointARN() (arn.Resource, error) { 17977 if s.Bucket == nil { 17978 return nil, fmt.Errorf("member Bucket is nil") 17979 } 17980 return parseEndpointARN(*s.Bucket) 17981 } 17982 17983 func (s *GetBucketAccelerateConfigurationInput) hasEndpointARN() bool { 17984 if s.Bucket == nil { 17985 return false 17986 } 17987 return arn.IsARN(*s.Bucket) 17988 } 17989 17990 // updateArnableField updates the value of the input field that 17991 // takes an ARN as an input. This method is useful to backfill 17992 // the parsed resource name from ARN into the input member. 17993 // It returns a pointer to a modified copy of input and an error. 17994 // Note that original input is not modified. 17995 func (s GetBucketAccelerateConfigurationInput) updateArnableField(v string) (interface{}, error) { 17996 if s.Bucket == nil { 17997 return nil, fmt.Errorf("member Bucket is nil") 17998 } 17999 s.Bucket = aws.String(v) 18000 return &s, nil 18001 } 18002 18003 type GetBucketAccelerateConfigurationOutput struct { 18004 _ struct{} `type:"structure"` 18005 18006 // The accelerate configuration of the bucket. 18007 Status *string `type:"string" enum:"BucketAccelerateStatus"` 18008 } 18009 18010 // String returns the string representation. 18011 // 18012 // API parameter values that are decorated as "sensitive" in the API will not 18013 // be included in the string output. The member name will be present, but the 18014 // value will be replaced with "sensitive". 18015 func (s GetBucketAccelerateConfigurationOutput) String() string { 18016 return awsutil.Prettify(s) 18017 } 18018 18019 // GoString returns the string representation. 18020 // 18021 // API parameter values that are decorated as "sensitive" in the API will not 18022 // be included in the string output. The member name will be present, but the 18023 // value will be replaced with "sensitive". 18024 func (s GetBucketAccelerateConfigurationOutput) GoString() string { 18025 return s.String() 18026 } 18027 18028 // SetStatus sets the Status field's value. 18029 func (s *GetBucketAccelerateConfigurationOutput) SetStatus(v string) *GetBucketAccelerateConfigurationOutput { 18030 s.Status = &v 18031 return s 18032 } 18033 18034 type GetBucketAclInput struct { 18035 _ struct{} `locationName:"GetBucketAclRequest" type:"structure"` 18036 18037 // Specifies the S3 bucket whose ACL is being requested. 18038 // 18039 // Bucket is a required field 18040 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18041 18042 // The account ID of the expected bucket owner. If the bucket is owned by a 18043 // different account, the request will fail with an HTTP 403 (Access Denied) 18044 // error. 18045 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 18046 } 18047 18048 // String returns the string representation. 18049 // 18050 // API parameter values that are decorated as "sensitive" in the API will not 18051 // be included in the string output. The member name will be present, but the 18052 // value will be replaced with "sensitive". 18053 func (s GetBucketAclInput) String() string { 18054 return awsutil.Prettify(s) 18055 } 18056 18057 // GoString returns the string representation. 18058 // 18059 // API parameter values that are decorated as "sensitive" in the API will not 18060 // be included in the string output. The member name will be present, but the 18061 // value will be replaced with "sensitive". 18062 func (s GetBucketAclInput) GoString() string { 18063 return s.String() 18064 } 18065 18066 // Validate inspects the fields of the type to determine if they are valid. 18067 func (s *GetBucketAclInput) Validate() error { 18068 invalidParams := request.ErrInvalidParams{Context: "GetBucketAclInput"} 18069 if s.Bucket == nil { 18070 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18071 } 18072 if s.Bucket != nil && len(*s.Bucket) < 1 { 18073 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 18074 } 18075 18076 if invalidParams.Len() > 0 { 18077 return invalidParams 18078 } 18079 return nil 18080 } 18081 18082 // SetBucket sets the Bucket field's value. 18083 func (s *GetBucketAclInput) SetBucket(v string) *GetBucketAclInput { 18084 s.Bucket = &v 18085 return s 18086 } 18087 18088 func (s *GetBucketAclInput) getBucket() (v string) { 18089 if s.Bucket == nil { 18090 return v 18091 } 18092 return *s.Bucket 18093 } 18094 18095 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 18096 func (s *GetBucketAclInput) SetExpectedBucketOwner(v string) *GetBucketAclInput { 18097 s.ExpectedBucketOwner = &v 18098 return s 18099 } 18100 18101 func (s *GetBucketAclInput) getEndpointARN() (arn.Resource, error) { 18102 if s.Bucket == nil { 18103 return nil, fmt.Errorf("member Bucket is nil") 18104 } 18105 return parseEndpointARN(*s.Bucket) 18106 } 18107 18108 func (s *GetBucketAclInput) hasEndpointARN() bool { 18109 if s.Bucket == nil { 18110 return false 18111 } 18112 return arn.IsARN(*s.Bucket) 18113 } 18114 18115 // updateArnableField updates the value of the input field that 18116 // takes an ARN as an input. This method is useful to backfill 18117 // the parsed resource name from ARN into the input member. 18118 // It returns a pointer to a modified copy of input and an error. 18119 // Note that original input is not modified. 18120 func (s GetBucketAclInput) updateArnableField(v string) (interface{}, error) { 18121 if s.Bucket == nil { 18122 return nil, fmt.Errorf("member Bucket is nil") 18123 } 18124 s.Bucket = aws.String(v) 18125 return &s, nil 18126 } 18127 18128 type GetBucketAclOutput struct { 18129 _ struct{} `type:"structure"` 18130 18131 // A list of grants. 18132 Grants []*Grant `locationName:"AccessControlList" locationNameList:"Grant" type:"list"` 18133 18134 // Container for the bucket owner's display name and ID. 18135 Owner *Owner `type:"structure"` 18136 } 18137 18138 // String returns the string representation. 18139 // 18140 // API parameter values that are decorated as "sensitive" in the API will not 18141 // be included in the string output. The member name will be present, but the 18142 // value will be replaced with "sensitive". 18143 func (s GetBucketAclOutput) String() string { 18144 return awsutil.Prettify(s) 18145 } 18146 18147 // GoString returns the string representation. 18148 // 18149 // API parameter values that are decorated as "sensitive" in the API will not 18150 // be included in the string output. The member name will be present, but the 18151 // value will be replaced with "sensitive". 18152 func (s GetBucketAclOutput) GoString() string { 18153 return s.String() 18154 } 18155 18156 // SetGrants sets the Grants field's value. 18157 func (s *GetBucketAclOutput) SetGrants(v []*Grant) *GetBucketAclOutput { 18158 s.Grants = v 18159 return s 18160 } 18161 18162 // SetOwner sets the Owner field's value. 18163 func (s *GetBucketAclOutput) SetOwner(v *Owner) *GetBucketAclOutput { 18164 s.Owner = v 18165 return s 18166 } 18167 18168 type GetBucketAnalyticsConfigurationInput struct { 18169 _ struct{} `locationName:"GetBucketAnalyticsConfigurationRequest" type:"structure"` 18170 18171 // The name of the bucket from which an analytics configuration is retrieved. 18172 // 18173 // Bucket is a required field 18174 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18175 18176 // The account ID of the expected bucket owner. If the bucket is owned by a 18177 // different account, the request will fail with an HTTP 403 (Access Denied) 18178 // error. 18179 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 18180 18181 // The ID that identifies the analytics configuration. 18182 // 18183 // Id is a required field 18184 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 18185 } 18186 18187 // String returns the string representation. 18188 // 18189 // API parameter values that are decorated as "sensitive" in the API will not 18190 // be included in the string output. The member name will be present, but the 18191 // value will be replaced with "sensitive". 18192 func (s GetBucketAnalyticsConfigurationInput) String() string { 18193 return awsutil.Prettify(s) 18194 } 18195 18196 // GoString returns the string representation. 18197 // 18198 // API parameter values that are decorated as "sensitive" in the API will not 18199 // be included in the string output. The member name will be present, but the 18200 // value will be replaced with "sensitive". 18201 func (s GetBucketAnalyticsConfigurationInput) GoString() string { 18202 return s.String() 18203 } 18204 18205 // Validate inspects the fields of the type to determine if they are valid. 18206 func (s *GetBucketAnalyticsConfigurationInput) Validate() error { 18207 invalidParams := request.ErrInvalidParams{Context: "GetBucketAnalyticsConfigurationInput"} 18208 if s.Bucket == nil { 18209 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18210 } 18211 if s.Bucket != nil && len(*s.Bucket) < 1 { 18212 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 18213 } 18214 if s.Id == nil { 18215 invalidParams.Add(request.NewErrParamRequired("Id")) 18216 } 18217 18218 if invalidParams.Len() > 0 { 18219 return invalidParams 18220 } 18221 return nil 18222 } 18223 18224 // SetBucket sets the Bucket field's value. 18225 func (s *GetBucketAnalyticsConfigurationInput) SetBucket(v string) *GetBucketAnalyticsConfigurationInput { 18226 s.Bucket = &v 18227 return s 18228 } 18229 18230 func (s *GetBucketAnalyticsConfigurationInput) getBucket() (v string) { 18231 if s.Bucket == nil { 18232 return v 18233 } 18234 return *s.Bucket 18235 } 18236 18237 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 18238 func (s *GetBucketAnalyticsConfigurationInput) SetExpectedBucketOwner(v string) *GetBucketAnalyticsConfigurationInput { 18239 s.ExpectedBucketOwner = &v 18240 return s 18241 } 18242 18243 // SetId sets the Id field's value. 18244 func (s *GetBucketAnalyticsConfigurationInput) SetId(v string) *GetBucketAnalyticsConfigurationInput { 18245 s.Id = &v 18246 return s 18247 } 18248 18249 func (s *GetBucketAnalyticsConfigurationInput) getEndpointARN() (arn.Resource, error) { 18250 if s.Bucket == nil { 18251 return nil, fmt.Errorf("member Bucket is nil") 18252 } 18253 return parseEndpointARN(*s.Bucket) 18254 } 18255 18256 func (s *GetBucketAnalyticsConfigurationInput) hasEndpointARN() bool { 18257 if s.Bucket == nil { 18258 return false 18259 } 18260 return arn.IsARN(*s.Bucket) 18261 } 18262 18263 // updateArnableField updates the value of the input field that 18264 // takes an ARN as an input. This method is useful to backfill 18265 // the parsed resource name from ARN into the input member. 18266 // It returns a pointer to a modified copy of input and an error. 18267 // Note that original input is not modified. 18268 func (s GetBucketAnalyticsConfigurationInput) updateArnableField(v string) (interface{}, error) { 18269 if s.Bucket == nil { 18270 return nil, fmt.Errorf("member Bucket is nil") 18271 } 18272 s.Bucket = aws.String(v) 18273 return &s, nil 18274 } 18275 18276 type GetBucketAnalyticsConfigurationOutput struct { 18277 _ struct{} `type:"structure" payload:"AnalyticsConfiguration"` 18278 18279 // The configuration and any analyses for the analytics filter. 18280 AnalyticsConfiguration *AnalyticsConfiguration `type:"structure"` 18281 } 18282 18283 // String returns the string representation. 18284 // 18285 // API parameter values that are decorated as "sensitive" in the API will not 18286 // be included in the string output. The member name will be present, but the 18287 // value will be replaced with "sensitive". 18288 func (s GetBucketAnalyticsConfigurationOutput) String() string { 18289 return awsutil.Prettify(s) 18290 } 18291 18292 // GoString returns the string representation. 18293 // 18294 // API parameter values that are decorated as "sensitive" in the API will not 18295 // be included in the string output. The member name will be present, but the 18296 // value will be replaced with "sensitive". 18297 func (s GetBucketAnalyticsConfigurationOutput) GoString() string { 18298 return s.String() 18299 } 18300 18301 // SetAnalyticsConfiguration sets the AnalyticsConfiguration field's value. 18302 func (s *GetBucketAnalyticsConfigurationOutput) SetAnalyticsConfiguration(v *AnalyticsConfiguration) *GetBucketAnalyticsConfigurationOutput { 18303 s.AnalyticsConfiguration = v 18304 return s 18305 } 18306 18307 type GetBucketCorsInput struct { 18308 _ struct{} `locationName:"GetBucketCorsRequest" type:"structure"` 18309 18310 // The bucket name for which to get the cors configuration. 18311 // 18312 // Bucket is a required field 18313 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18314 18315 // The account ID of the expected bucket owner. If the bucket is owned by a 18316 // different account, the request will fail with an HTTP 403 (Access Denied) 18317 // error. 18318 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 18319 } 18320 18321 // String returns the string representation. 18322 // 18323 // API parameter values that are decorated as "sensitive" in the API will not 18324 // be included in the string output. The member name will be present, but the 18325 // value will be replaced with "sensitive". 18326 func (s GetBucketCorsInput) String() string { 18327 return awsutil.Prettify(s) 18328 } 18329 18330 // GoString returns the string representation. 18331 // 18332 // API parameter values that are decorated as "sensitive" in the API will not 18333 // be included in the string output. The member name will be present, but the 18334 // value will be replaced with "sensitive". 18335 func (s GetBucketCorsInput) GoString() string { 18336 return s.String() 18337 } 18338 18339 // Validate inspects the fields of the type to determine if they are valid. 18340 func (s *GetBucketCorsInput) Validate() error { 18341 invalidParams := request.ErrInvalidParams{Context: "GetBucketCorsInput"} 18342 if s.Bucket == nil { 18343 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18344 } 18345 if s.Bucket != nil && len(*s.Bucket) < 1 { 18346 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 18347 } 18348 18349 if invalidParams.Len() > 0 { 18350 return invalidParams 18351 } 18352 return nil 18353 } 18354 18355 // SetBucket sets the Bucket field's value. 18356 func (s *GetBucketCorsInput) SetBucket(v string) *GetBucketCorsInput { 18357 s.Bucket = &v 18358 return s 18359 } 18360 18361 func (s *GetBucketCorsInput) getBucket() (v string) { 18362 if s.Bucket == nil { 18363 return v 18364 } 18365 return *s.Bucket 18366 } 18367 18368 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 18369 func (s *GetBucketCorsInput) SetExpectedBucketOwner(v string) *GetBucketCorsInput { 18370 s.ExpectedBucketOwner = &v 18371 return s 18372 } 18373 18374 func (s *GetBucketCorsInput) getEndpointARN() (arn.Resource, error) { 18375 if s.Bucket == nil { 18376 return nil, fmt.Errorf("member Bucket is nil") 18377 } 18378 return parseEndpointARN(*s.Bucket) 18379 } 18380 18381 func (s *GetBucketCorsInput) hasEndpointARN() bool { 18382 if s.Bucket == nil { 18383 return false 18384 } 18385 return arn.IsARN(*s.Bucket) 18386 } 18387 18388 // updateArnableField updates the value of the input field that 18389 // takes an ARN as an input. This method is useful to backfill 18390 // the parsed resource name from ARN into the input member. 18391 // It returns a pointer to a modified copy of input and an error. 18392 // Note that original input is not modified. 18393 func (s GetBucketCorsInput) updateArnableField(v string) (interface{}, error) { 18394 if s.Bucket == nil { 18395 return nil, fmt.Errorf("member Bucket is nil") 18396 } 18397 s.Bucket = aws.String(v) 18398 return &s, nil 18399 } 18400 18401 type GetBucketCorsOutput struct { 18402 _ struct{} `type:"structure"` 18403 18404 // A set of origins and methods (cross-origin access that you want to allow). 18405 // You can add up to 100 rules to the configuration. 18406 CORSRules []*CORSRule `locationName:"CORSRule" type:"list" flattened:"true"` 18407 } 18408 18409 // String returns the string representation. 18410 // 18411 // API parameter values that are decorated as "sensitive" in the API will not 18412 // be included in the string output. The member name will be present, but the 18413 // value will be replaced with "sensitive". 18414 func (s GetBucketCorsOutput) String() string { 18415 return awsutil.Prettify(s) 18416 } 18417 18418 // GoString returns the string representation. 18419 // 18420 // API parameter values that are decorated as "sensitive" in the API will not 18421 // be included in the string output. The member name will be present, but the 18422 // value will be replaced with "sensitive". 18423 func (s GetBucketCorsOutput) GoString() string { 18424 return s.String() 18425 } 18426 18427 // SetCORSRules sets the CORSRules field's value. 18428 func (s *GetBucketCorsOutput) SetCORSRules(v []*CORSRule) *GetBucketCorsOutput { 18429 s.CORSRules = v 18430 return s 18431 } 18432 18433 type GetBucketEncryptionInput struct { 18434 _ struct{} `locationName:"GetBucketEncryptionRequest" type:"structure"` 18435 18436 // The name of the bucket from which the server-side encryption configuration 18437 // is retrieved. 18438 // 18439 // Bucket is a required field 18440 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18441 18442 // The account ID of the expected bucket owner. If the bucket is owned by a 18443 // different account, the request will fail with an HTTP 403 (Access Denied) 18444 // error. 18445 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 18446 } 18447 18448 // String returns the string representation. 18449 // 18450 // API parameter values that are decorated as "sensitive" in the API will not 18451 // be included in the string output. The member name will be present, but the 18452 // value will be replaced with "sensitive". 18453 func (s GetBucketEncryptionInput) String() string { 18454 return awsutil.Prettify(s) 18455 } 18456 18457 // GoString returns the string representation. 18458 // 18459 // API parameter values that are decorated as "sensitive" in the API will not 18460 // be included in the string output. The member name will be present, but the 18461 // value will be replaced with "sensitive". 18462 func (s GetBucketEncryptionInput) GoString() string { 18463 return s.String() 18464 } 18465 18466 // Validate inspects the fields of the type to determine if they are valid. 18467 func (s *GetBucketEncryptionInput) Validate() error { 18468 invalidParams := request.ErrInvalidParams{Context: "GetBucketEncryptionInput"} 18469 if s.Bucket == nil { 18470 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18471 } 18472 if s.Bucket != nil && len(*s.Bucket) < 1 { 18473 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 18474 } 18475 18476 if invalidParams.Len() > 0 { 18477 return invalidParams 18478 } 18479 return nil 18480 } 18481 18482 // SetBucket sets the Bucket field's value. 18483 func (s *GetBucketEncryptionInput) SetBucket(v string) *GetBucketEncryptionInput { 18484 s.Bucket = &v 18485 return s 18486 } 18487 18488 func (s *GetBucketEncryptionInput) getBucket() (v string) { 18489 if s.Bucket == nil { 18490 return v 18491 } 18492 return *s.Bucket 18493 } 18494 18495 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 18496 func (s *GetBucketEncryptionInput) SetExpectedBucketOwner(v string) *GetBucketEncryptionInput { 18497 s.ExpectedBucketOwner = &v 18498 return s 18499 } 18500 18501 func (s *GetBucketEncryptionInput) getEndpointARN() (arn.Resource, error) { 18502 if s.Bucket == nil { 18503 return nil, fmt.Errorf("member Bucket is nil") 18504 } 18505 return parseEndpointARN(*s.Bucket) 18506 } 18507 18508 func (s *GetBucketEncryptionInput) hasEndpointARN() bool { 18509 if s.Bucket == nil { 18510 return false 18511 } 18512 return arn.IsARN(*s.Bucket) 18513 } 18514 18515 // updateArnableField updates the value of the input field that 18516 // takes an ARN as an input. This method is useful to backfill 18517 // the parsed resource name from ARN into the input member. 18518 // It returns a pointer to a modified copy of input and an error. 18519 // Note that original input is not modified. 18520 func (s GetBucketEncryptionInput) updateArnableField(v string) (interface{}, error) { 18521 if s.Bucket == nil { 18522 return nil, fmt.Errorf("member Bucket is nil") 18523 } 18524 s.Bucket = aws.String(v) 18525 return &s, nil 18526 } 18527 18528 type GetBucketEncryptionOutput struct { 18529 _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"` 18530 18531 // Specifies the default server-side-encryption configuration. 18532 ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `type:"structure"` 18533 } 18534 18535 // String returns the string representation. 18536 // 18537 // API parameter values that are decorated as "sensitive" in the API will not 18538 // be included in the string output. The member name will be present, but the 18539 // value will be replaced with "sensitive". 18540 func (s GetBucketEncryptionOutput) String() string { 18541 return awsutil.Prettify(s) 18542 } 18543 18544 // GoString returns the string representation. 18545 // 18546 // API parameter values that are decorated as "sensitive" in the API will not 18547 // be included in the string output. The member name will be present, but the 18548 // value will be replaced with "sensitive". 18549 func (s GetBucketEncryptionOutput) GoString() string { 18550 return s.String() 18551 } 18552 18553 // SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value. 18554 func (s *GetBucketEncryptionOutput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *GetBucketEncryptionOutput { 18555 s.ServerSideEncryptionConfiguration = v 18556 return s 18557 } 18558 18559 type GetBucketIntelligentTieringConfigurationInput struct { 18560 _ struct{} `locationName:"GetBucketIntelligentTieringConfigurationRequest" type:"structure"` 18561 18562 // The name of the Amazon S3 bucket whose configuration you want to modify or 18563 // retrieve. 18564 // 18565 // Bucket is a required field 18566 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18567 18568 // The ID used to identify the S3 Intelligent-Tiering configuration. 18569 // 18570 // Id is a required field 18571 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 18572 } 18573 18574 // String returns the string representation. 18575 // 18576 // API parameter values that are decorated as "sensitive" in the API will not 18577 // be included in the string output. The member name will be present, but the 18578 // value will be replaced with "sensitive". 18579 func (s GetBucketIntelligentTieringConfigurationInput) String() string { 18580 return awsutil.Prettify(s) 18581 } 18582 18583 // GoString returns the string representation. 18584 // 18585 // API parameter values that are decorated as "sensitive" in the API will not 18586 // be included in the string output. The member name will be present, but the 18587 // value will be replaced with "sensitive". 18588 func (s GetBucketIntelligentTieringConfigurationInput) GoString() string { 18589 return s.String() 18590 } 18591 18592 // Validate inspects the fields of the type to determine if they are valid. 18593 func (s *GetBucketIntelligentTieringConfigurationInput) Validate() error { 18594 invalidParams := request.ErrInvalidParams{Context: "GetBucketIntelligentTieringConfigurationInput"} 18595 if s.Bucket == nil { 18596 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18597 } 18598 if s.Bucket != nil && len(*s.Bucket) < 1 { 18599 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 18600 } 18601 if s.Id == nil { 18602 invalidParams.Add(request.NewErrParamRequired("Id")) 18603 } 18604 18605 if invalidParams.Len() > 0 { 18606 return invalidParams 18607 } 18608 return nil 18609 } 18610 18611 // SetBucket sets the Bucket field's value. 18612 func (s *GetBucketIntelligentTieringConfigurationInput) SetBucket(v string) *GetBucketIntelligentTieringConfigurationInput { 18613 s.Bucket = &v 18614 return s 18615 } 18616 18617 func (s *GetBucketIntelligentTieringConfigurationInput) getBucket() (v string) { 18618 if s.Bucket == nil { 18619 return v 18620 } 18621 return *s.Bucket 18622 } 18623 18624 // SetId sets the Id field's value. 18625 func (s *GetBucketIntelligentTieringConfigurationInput) SetId(v string) *GetBucketIntelligentTieringConfigurationInput { 18626 s.Id = &v 18627 return s 18628 } 18629 18630 func (s *GetBucketIntelligentTieringConfigurationInput) getEndpointARN() (arn.Resource, error) { 18631 if s.Bucket == nil { 18632 return nil, fmt.Errorf("member Bucket is nil") 18633 } 18634 return parseEndpointARN(*s.Bucket) 18635 } 18636 18637 func (s *GetBucketIntelligentTieringConfigurationInput) hasEndpointARN() bool { 18638 if s.Bucket == nil { 18639 return false 18640 } 18641 return arn.IsARN(*s.Bucket) 18642 } 18643 18644 // updateArnableField updates the value of the input field that 18645 // takes an ARN as an input. This method is useful to backfill 18646 // the parsed resource name from ARN into the input member. 18647 // It returns a pointer to a modified copy of input and an error. 18648 // Note that original input is not modified. 18649 func (s GetBucketIntelligentTieringConfigurationInput) updateArnableField(v string) (interface{}, error) { 18650 if s.Bucket == nil { 18651 return nil, fmt.Errorf("member Bucket is nil") 18652 } 18653 s.Bucket = aws.String(v) 18654 return &s, nil 18655 } 18656 18657 type GetBucketIntelligentTieringConfigurationOutput struct { 18658 _ struct{} `type:"structure" payload:"IntelligentTieringConfiguration"` 18659 18660 // Container for S3 Intelligent-Tiering configuration. 18661 IntelligentTieringConfiguration *IntelligentTieringConfiguration `type:"structure"` 18662 } 18663 18664 // String returns the string representation. 18665 // 18666 // API parameter values that are decorated as "sensitive" in the API will not 18667 // be included in the string output. The member name will be present, but the 18668 // value will be replaced with "sensitive". 18669 func (s GetBucketIntelligentTieringConfigurationOutput) String() string { 18670 return awsutil.Prettify(s) 18671 } 18672 18673 // GoString returns the string representation. 18674 // 18675 // API parameter values that are decorated as "sensitive" in the API will not 18676 // be included in the string output. The member name will be present, but the 18677 // value will be replaced with "sensitive". 18678 func (s GetBucketIntelligentTieringConfigurationOutput) GoString() string { 18679 return s.String() 18680 } 18681 18682 // SetIntelligentTieringConfiguration sets the IntelligentTieringConfiguration field's value. 18683 func (s *GetBucketIntelligentTieringConfigurationOutput) SetIntelligentTieringConfiguration(v *IntelligentTieringConfiguration) *GetBucketIntelligentTieringConfigurationOutput { 18684 s.IntelligentTieringConfiguration = v 18685 return s 18686 } 18687 18688 type GetBucketInventoryConfigurationInput struct { 18689 _ struct{} `locationName:"GetBucketInventoryConfigurationRequest" type:"structure"` 18690 18691 // The name of the bucket containing the inventory configuration to retrieve. 18692 // 18693 // Bucket is a required field 18694 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18695 18696 // The account ID of the expected bucket owner. If the bucket is owned by a 18697 // different account, the request will fail with an HTTP 403 (Access Denied) 18698 // error. 18699 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 18700 18701 // The ID used to identify the inventory configuration. 18702 // 18703 // Id is a required field 18704 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 18705 } 18706 18707 // String returns the string representation. 18708 // 18709 // API parameter values that are decorated as "sensitive" in the API will not 18710 // be included in the string output. The member name will be present, but the 18711 // value will be replaced with "sensitive". 18712 func (s GetBucketInventoryConfigurationInput) String() string { 18713 return awsutil.Prettify(s) 18714 } 18715 18716 // GoString returns the string representation. 18717 // 18718 // API parameter values that are decorated as "sensitive" in the API will not 18719 // be included in the string output. The member name will be present, but the 18720 // value will be replaced with "sensitive". 18721 func (s GetBucketInventoryConfigurationInput) GoString() string { 18722 return s.String() 18723 } 18724 18725 // Validate inspects the fields of the type to determine if they are valid. 18726 func (s *GetBucketInventoryConfigurationInput) Validate() error { 18727 invalidParams := request.ErrInvalidParams{Context: "GetBucketInventoryConfigurationInput"} 18728 if s.Bucket == nil { 18729 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18730 } 18731 if s.Bucket != nil && len(*s.Bucket) < 1 { 18732 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 18733 } 18734 if s.Id == nil { 18735 invalidParams.Add(request.NewErrParamRequired("Id")) 18736 } 18737 18738 if invalidParams.Len() > 0 { 18739 return invalidParams 18740 } 18741 return nil 18742 } 18743 18744 // SetBucket sets the Bucket field's value. 18745 func (s *GetBucketInventoryConfigurationInput) SetBucket(v string) *GetBucketInventoryConfigurationInput { 18746 s.Bucket = &v 18747 return s 18748 } 18749 18750 func (s *GetBucketInventoryConfigurationInput) getBucket() (v string) { 18751 if s.Bucket == nil { 18752 return v 18753 } 18754 return *s.Bucket 18755 } 18756 18757 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 18758 func (s *GetBucketInventoryConfigurationInput) SetExpectedBucketOwner(v string) *GetBucketInventoryConfigurationInput { 18759 s.ExpectedBucketOwner = &v 18760 return s 18761 } 18762 18763 // SetId sets the Id field's value. 18764 func (s *GetBucketInventoryConfigurationInput) SetId(v string) *GetBucketInventoryConfigurationInput { 18765 s.Id = &v 18766 return s 18767 } 18768 18769 func (s *GetBucketInventoryConfigurationInput) getEndpointARN() (arn.Resource, error) { 18770 if s.Bucket == nil { 18771 return nil, fmt.Errorf("member Bucket is nil") 18772 } 18773 return parseEndpointARN(*s.Bucket) 18774 } 18775 18776 func (s *GetBucketInventoryConfigurationInput) hasEndpointARN() bool { 18777 if s.Bucket == nil { 18778 return false 18779 } 18780 return arn.IsARN(*s.Bucket) 18781 } 18782 18783 // updateArnableField updates the value of the input field that 18784 // takes an ARN as an input. This method is useful to backfill 18785 // the parsed resource name from ARN into the input member. 18786 // It returns a pointer to a modified copy of input and an error. 18787 // Note that original input is not modified. 18788 func (s GetBucketInventoryConfigurationInput) updateArnableField(v string) (interface{}, error) { 18789 if s.Bucket == nil { 18790 return nil, fmt.Errorf("member Bucket is nil") 18791 } 18792 s.Bucket = aws.String(v) 18793 return &s, nil 18794 } 18795 18796 type GetBucketInventoryConfigurationOutput struct { 18797 _ struct{} `type:"structure" payload:"InventoryConfiguration"` 18798 18799 // Specifies the inventory configuration. 18800 InventoryConfiguration *InventoryConfiguration `type:"structure"` 18801 } 18802 18803 // String returns the string representation. 18804 // 18805 // API parameter values that are decorated as "sensitive" in the API will not 18806 // be included in the string output. The member name will be present, but the 18807 // value will be replaced with "sensitive". 18808 func (s GetBucketInventoryConfigurationOutput) String() string { 18809 return awsutil.Prettify(s) 18810 } 18811 18812 // GoString returns the string representation. 18813 // 18814 // API parameter values that are decorated as "sensitive" in the API will not 18815 // be included in the string output. The member name will be present, but the 18816 // value will be replaced with "sensitive". 18817 func (s GetBucketInventoryConfigurationOutput) GoString() string { 18818 return s.String() 18819 } 18820 18821 // SetInventoryConfiguration sets the InventoryConfiguration field's value. 18822 func (s *GetBucketInventoryConfigurationOutput) SetInventoryConfiguration(v *InventoryConfiguration) *GetBucketInventoryConfigurationOutput { 18823 s.InventoryConfiguration = v 18824 return s 18825 } 18826 18827 type GetBucketLifecycleConfigurationInput struct { 18828 _ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"` 18829 18830 // The name of the bucket for which to get the lifecycle information. 18831 // 18832 // Bucket is a required field 18833 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18834 18835 // The account ID of the expected bucket owner. If the bucket is owned by a 18836 // different account, the request will fail with an HTTP 403 (Access Denied) 18837 // error. 18838 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 18839 } 18840 18841 // String returns the string representation. 18842 // 18843 // API parameter values that are decorated as "sensitive" in the API will not 18844 // be included in the string output. The member name will be present, but the 18845 // value will be replaced with "sensitive". 18846 func (s GetBucketLifecycleConfigurationInput) String() string { 18847 return awsutil.Prettify(s) 18848 } 18849 18850 // GoString returns the string representation. 18851 // 18852 // API parameter values that are decorated as "sensitive" in the API will not 18853 // be included in the string output. The member name will be present, but the 18854 // value will be replaced with "sensitive". 18855 func (s GetBucketLifecycleConfigurationInput) GoString() string { 18856 return s.String() 18857 } 18858 18859 // Validate inspects the fields of the type to determine if they are valid. 18860 func (s *GetBucketLifecycleConfigurationInput) Validate() error { 18861 invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"} 18862 if s.Bucket == nil { 18863 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18864 } 18865 if s.Bucket != nil && len(*s.Bucket) < 1 { 18866 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 18867 } 18868 18869 if invalidParams.Len() > 0 { 18870 return invalidParams 18871 } 18872 return nil 18873 } 18874 18875 // SetBucket sets the Bucket field's value. 18876 func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput { 18877 s.Bucket = &v 18878 return s 18879 } 18880 18881 func (s *GetBucketLifecycleConfigurationInput) getBucket() (v string) { 18882 if s.Bucket == nil { 18883 return v 18884 } 18885 return *s.Bucket 18886 } 18887 18888 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 18889 func (s *GetBucketLifecycleConfigurationInput) SetExpectedBucketOwner(v string) *GetBucketLifecycleConfigurationInput { 18890 s.ExpectedBucketOwner = &v 18891 return s 18892 } 18893 18894 func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { 18895 if s.Bucket == nil { 18896 return nil, fmt.Errorf("member Bucket is nil") 18897 } 18898 return parseEndpointARN(*s.Bucket) 18899 } 18900 18901 func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool { 18902 if s.Bucket == nil { 18903 return false 18904 } 18905 return arn.IsARN(*s.Bucket) 18906 } 18907 18908 // updateArnableField updates the value of the input field that 18909 // takes an ARN as an input. This method is useful to backfill 18910 // the parsed resource name from ARN into the input member. 18911 // It returns a pointer to a modified copy of input and an error. 18912 // Note that original input is not modified. 18913 func (s GetBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) { 18914 if s.Bucket == nil { 18915 return nil, fmt.Errorf("member Bucket is nil") 18916 } 18917 s.Bucket = aws.String(v) 18918 return &s, nil 18919 } 18920 18921 type GetBucketLifecycleConfigurationOutput struct { 18922 _ struct{} `type:"structure"` 18923 18924 // Container for a lifecycle rule. 18925 Rules []*LifecycleRule `locationName:"Rule" type:"list" flattened:"true"` 18926 } 18927 18928 // String returns the string representation. 18929 // 18930 // API parameter values that are decorated as "sensitive" in the API will not 18931 // be included in the string output. The member name will be present, but the 18932 // value will be replaced with "sensitive". 18933 func (s GetBucketLifecycleConfigurationOutput) String() string { 18934 return awsutil.Prettify(s) 18935 } 18936 18937 // GoString returns the string representation. 18938 // 18939 // API parameter values that are decorated as "sensitive" in the API will not 18940 // be included in the string output. The member name will be present, but the 18941 // value will be replaced with "sensitive". 18942 func (s GetBucketLifecycleConfigurationOutput) GoString() string { 18943 return s.String() 18944 } 18945 18946 // SetRules sets the Rules field's value. 18947 func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput { 18948 s.Rules = v 18949 return s 18950 } 18951 18952 type GetBucketLifecycleInput struct { 18953 _ struct{} `locationName:"GetBucketLifecycleRequest" type:"structure"` 18954 18955 // The name of the bucket for which to get the lifecycle information. 18956 // 18957 // Bucket is a required field 18958 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 18959 18960 // The account ID of the expected bucket owner. If the bucket is owned by a 18961 // different account, the request will fail with an HTTP 403 (Access Denied) 18962 // error. 18963 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 18964 } 18965 18966 // String returns the string representation. 18967 // 18968 // API parameter values that are decorated as "sensitive" in the API will not 18969 // be included in the string output. The member name will be present, but the 18970 // value will be replaced with "sensitive". 18971 func (s GetBucketLifecycleInput) String() string { 18972 return awsutil.Prettify(s) 18973 } 18974 18975 // GoString returns the string representation. 18976 // 18977 // API parameter values that are decorated as "sensitive" in the API will not 18978 // be included in the string output. The member name will be present, but the 18979 // value will be replaced with "sensitive". 18980 func (s GetBucketLifecycleInput) GoString() string { 18981 return s.String() 18982 } 18983 18984 // Validate inspects the fields of the type to determine if they are valid. 18985 func (s *GetBucketLifecycleInput) Validate() error { 18986 invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleInput"} 18987 if s.Bucket == nil { 18988 invalidParams.Add(request.NewErrParamRequired("Bucket")) 18989 } 18990 if s.Bucket != nil && len(*s.Bucket) < 1 { 18991 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 18992 } 18993 18994 if invalidParams.Len() > 0 { 18995 return invalidParams 18996 } 18997 return nil 18998 } 18999 19000 // SetBucket sets the Bucket field's value. 19001 func (s *GetBucketLifecycleInput) SetBucket(v string) *GetBucketLifecycleInput { 19002 s.Bucket = &v 19003 return s 19004 } 19005 19006 func (s *GetBucketLifecycleInput) getBucket() (v string) { 19007 if s.Bucket == nil { 19008 return v 19009 } 19010 return *s.Bucket 19011 } 19012 19013 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 19014 func (s *GetBucketLifecycleInput) SetExpectedBucketOwner(v string) *GetBucketLifecycleInput { 19015 s.ExpectedBucketOwner = &v 19016 return s 19017 } 19018 19019 func (s *GetBucketLifecycleInput) getEndpointARN() (arn.Resource, error) { 19020 if s.Bucket == nil { 19021 return nil, fmt.Errorf("member Bucket is nil") 19022 } 19023 return parseEndpointARN(*s.Bucket) 19024 } 19025 19026 func (s *GetBucketLifecycleInput) hasEndpointARN() bool { 19027 if s.Bucket == nil { 19028 return false 19029 } 19030 return arn.IsARN(*s.Bucket) 19031 } 19032 19033 // updateArnableField updates the value of the input field that 19034 // takes an ARN as an input. This method is useful to backfill 19035 // the parsed resource name from ARN into the input member. 19036 // It returns a pointer to a modified copy of input and an error. 19037 // Note that original input is not modified. 19038 func (s GetBucketLifecycleInput) updateArnableField(v string) (interface{}, error) { 19039 if s.Bucket == nil { 19040 return nil, fmt.Errorf("member Bucket is nil") 19041 } 19042 s.Bucket = aws.String(v) 19043 return &s, nil 19044 } 19045 19046 type GetBucketLifecycleOutput struct { 19047 _ struct{} `type:"structure"` 19048 19049 // Container for a lifecycle rule. 19050 Rules []*Rule `locationName:"Rule" type:"list" flattened:"true"` 19051 } 19052 19053 // String returns the string representation. 19054 // 19055 // API parameter values that are decorated as "sensitive" in the API will not 19056 // be included in the string output. The member name will be present, but the 19057 // value will be replaced with "sensitive". 19058 func (s GetBucketLifecycleOutput) String() string { 19059 return awsutil.Prettify(s) 19060 } 19061 19062 // GoString returns the string representation. 19063 // 19064 // API parameter values that are decorated as "sensitive" in the API will not 19065 // be included in the string output. The member name will be present, but the 19066 // value will be replaced with "sensitive". 19067 func (s GetBucketLifecycleOutput) GoString() string { 19068 return s.String() 19069 } 19070 19071 // SetRules sets the Rules field's value. 19072 func (s *GetBucketLifecycleOutput) SetRules(v []*Rule) *GetBucketLifecycleOutput { 19073 s.Rules = v 19074 return s 19075 } 19076 19077 type GetBucketLocationInput struct { 19078 _ struct{} `locationName:"GetBucketLocationRequest" type:"structure"` 19079 19080 // The name of the bucket for which to get the location. 19081 // 19082 // Bucket is a required field 19083 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19084 19085 // The account ID of the expected bucket owner. If the bucket is owned by a 19086 // different account, the request will fail with an HTTP 403 (Access Denied) 19087 // error. 19088 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 19089 } 19090 19091 // String returns the string representation. 19092 // 19093 // API parameter values that are decorated as "sensitive" in the API will not 19094 // be included in the string output. The member name will be present, but the 19095 // value will be replaced with "sensitive". 19096 func (s GetBucketLocationInput) String() string { 19097 return awsutil.Prettify(s) 19098 } 19099 19100 // GoString returns the string representation. 19101 // 19102 // API parameter values that are decorated as "sensitive" in the API will not 19103 // be included in the string output. The member name will be present, but the 19104 // value will be replaced with "sensitive". 19105 func (s GetBucketLocationInput) GoString() string { 19106 return s.String() 19107 } 19108 19109 // Validate inspects the fields of the type to determine if they are valid. 19110 func (s *GetBucketLocationInput) Validate() error { 19111 invalidParams := request.ErrInvalidParams{Context: "GetBucketLocationInput"} 19112 if s.Bucket == nil { 19113 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19114 } 19115 if s.Bucket != nil && len(*s.Bucket) < 1 { 19116 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 19117 } 19118 19119 if invalidParams.Len() > 0 { 19120 return invalidParams 19121 } 19122 return nil 19123 } 19124 19125 // SetBucket sets the Bucket field's value. 19126 func (s *GetBucketLocationInput) SetBucket(v string) *GetBucketLocationInput { 19127 s.Bucket = &v 19128 return s 19129 } 19130 19131 func (s *GetBucketLocationInput) getBucket() (v string) { 19132 if s.Bucket == nil { 19133 return v 19134 } 19135 return *s.Bucket 19136 } 19137 19138 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 19139 func (s *GetBucketLocationInput) SetExpectedBucketOwner(v string) *GetBucketLocationInput { 19140 s.ExpectedBucketOwner = &v 19141 return s 19142 } 19143 19144 func (s *GetBucketLocationInput) getEndpointARN() (arn.Resource, error) { 19145 if s.Bucket == nil { 19146 return nil, fmt.Errorf("member Bucket is nil") 19147 } 19148 return parseEndpointARN(*s.Bucket) 19149 } 19150 19151 func (s *GetBucketLocationInput) hasEndpointARN() bool { 19152 if s.Bucket == nil { 19153 return false 19154 } 19155 return arn.IsARN(*s.Bucket) 19156 } 19157 19158 // updateArnableField updates the value of the input field that 19159 // takes an ARN as an input. This method is useful to backfill 19160 // the parsed resource name from ARN into the input member. 19161 // It returns a pointer to a modified copy of input and an error. 19162 // Note that original input is not modified. 19163 func (s GetBucketLocationInput) updateArnableField(v string) (interface{}, error) { 19164 if s.Bucket == nil { 19165 return nil, fmt.Errorf("member Bucket is nil") 19166 } 19167 s.Bucket = aws.String(v) 19168 return &s, nil 19169 } 19170 19171 type GetBucketLocationOutput struct { 19172 _ struct{} `type:"structure"` 19173 19174 // Specifies the Region where the bucket resides. For a list of all the Amazon 19175 // S3 supported location constraints by Region, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region). 19176 // Buckets in Region us-east-1 have a LocationConstraint of null. 19177 LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"` 19178 } 19179 19180 // String returns the string representation. 19181 // 19182 // API parameter values that are decorated as "sensitive" in the API will not 19183 // be included in the string output. The member name will be present, but the 19184 // value will be replaced with "sensitive". 19185 func (s GetBucketLocationOutput) String() string { 19186 return awsutil.Prettify(s) 19187 } 19188 19189 // GoString returns the string representation. 19190 // 19191 // API parameter values that are decorated as "sensitive" in the API will not 19192 // be included in the string output. The member name will be present, but the 19193 // value will be replaced with "sensitive". 19194 func (s GetBucketLocationOutput) GoString() string { 19195 return s.String() 19196 } 19197 19198 // SetLocationConstraint sets the LocationConstraint field's value. 19199 func (s *GetBucketLocationOutput) SetLocationConstraint(v string) *GetBucketLocationOutput { 19200 s.LocationConstraint = &v 19201 return s 19202 } 19203 19204 type GetBucketLoggingInput struct { 19205 _ struct{} `locationName:"GetBucketLoggingRequest" type:"structure"` 19206 19207 // The bucket name for which to get the logging information. 19208 // 19209 // Bucket is a required field 19210 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19211 19212 // The account ID of the expected bucket owner. If the bucket is owned by a 19213 // different account, the request will fail with an HTTP 403 (Access Denied) 19214 // error. 19215 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 19216 } 19217 19218 // String returns the string representation. 19219 // 19220 // API parameter values that are decorated as "sensitive" in the API will not 19221 // be included in the string output. The member name will be present, but the 19222 // value will be replaced with "sensitive". 19223 func (s GetBucketLoggingInput) String() string { 19224 return awsutil.Prettify(s) 19225 } 19226 19227 // GoString returns the string representation. 19228 // 19229 // API parameter values that are decorated as "sensitive" in the API will not 19230 // be included in the string output. The member name will be present, but the 19231 // value will be replaced with "sensitive". 19232 func (s GetBucketLoggingInput) GoString() string { 19233 return s.String() 19234 } 19235 19236 // Validate inspects the fields of the type to determine if they are valid. 19237 func (s *GetBucketLoggingInput) Validate() error { 19238 invalidParams := request.ErrInvalidParams{Context: "GetBucketLoggingInput"} 19239 if s.Bucket == nil { 19240 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19241 } 19242 if s.Bucket != nil && len(*s.Bucket) < 1 { 19243 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 19244 } 19245 19246 if invalidParams.Len() > 0 { 19247 return invalidParams 19248 } 19249 return nil 19250 } 19251 19252 // SetBucket sets the Bucket field's value. 19253 func (s *GetBucketLoggingInput) SetBucket(v string) *GetBucketLoggingInput { 19254 s.Bucket = &v 19255 return s 19256 } 19257 19258 func (s *GetBucketLoggingInput) getBucket() (v string) { 19259 if s.Bucket == nil { 19260 return v 19261 } 19262 return *s.Bucket 19263 } 19264 19265 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 19266 func (s *GetBucketLoggingInput) SetExpectedBucketOwner(v string) *GetBucketLoggingInput { 19267 s.ExpectedBucketOwner = &v 19268 return s 19269 } 19270 19271 func (s *GetBucketLoggingInput) getEndpointARN() (arn.Resource, error) { 19272 if s.Bucket == nil { 19273 return nil, fmt.Errorf("member Bucket is nil") 19274 } 19275 return parseEndpointARN(*s.Bucket) 19276 } 19277 19278 func (s *GetBucketLoggingInput) hasEndpointARN() bool { 19279 if s.Bucket == nil { 19280 return false 19281 } 19282 return arn.IsARN(*s.Bucket) 19283 } 19284 19285 // updateArnableField updates the value of the input field that 19286 // takes an ARN as an input. This method is useful to backfill 19287 // the parsed resource name from ARN into the input member. 19288 // It returns a pointer to a modified copy of input and an error. 19289 // Note that original input is not modified. 19290 func (s GetBucketLoggingInput) updateArnableField(v string) (interface{}, error) { 19291 if s.Bucket == nil { 19292 return nil, fmt.Errorf("member Bucket is nil") 19293 } 19294 s.Bucket = aws.String(v) 19295 return &s, nil 19296 } 19297 19298 type GetBucketLoggingOutput struct { 19299 _ struct{} `type:"structure"` 19300 19301 // Describes where logs are stored and the prefix that Amazon S3 assigns to 19302 // all log object keys for a bucket. For more information, see PUT Bucket logging 19303 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) 19304 // in the Amazon S3 API Reference. 19305 LoggingEnabled *LoggingEnabled `type:"structure"` 19306 } 19307 19308 // String returns the string representation. 19309 // 19310 // API parameter values that are decorated as "sensitive" in the API will not 19311 // be included in the string output. The member name will be present, but the 19312 // value will be replaced with "sensitive". 19313 func (s GetBucketLoggingOutput) String() string { 19314 return awsutil.Prettify(s) 19315 } 19316 19317 // GoString returns the string representation. 19318 // 19319 // API parameter values that are decorated as "sensitive" in the API will not 19320 // be included in the string output. The member name will be present, but the 19321 // value will be replaced with "sensitive". 19322 func (s GetBucketLoggingOutput) GoString() string { 19323 return s.String() 19324 } 19325 19326 // SetLoggingEnabled sets the LoggingEnabled field's value. 19327 func (s *GetBucketLoggingOutput) SetLoggingEnabled(v *LoggingEnabled) *GetBucketLoggingOutput { 19328 s.LoggingEnabled = v 19329 return s 19330 } 19331 19332 type GetBucketMetricsConfigurationInput struct { 19333 _ struct{} `locationName:"GetBucketMetricsConfigurationRequest" type:"structure"` 19334 19335 // The name of the bucket containing the metrics configuration to retrieve. 19336 // 19337 // Bucket is a required field 19338 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19339 19340 // The account ID of the expected bucket owner. If the bucket is owned by a 19341 // different account, the request will fail with an HTTP 403 (Access Denied) 19342 // error. 19343 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 19344 19345 // The ID used to identify the metrics configuration. 19346 // 19347 // Id is a required field 19348 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 19349 } 19350 19351 // String returns the string representation. 19352 // 19353 // API parameter values that are decorated as "sensitive" in the API will not 19354 // be included in the string output. The member name will be present, but the 19355 // value will be replaced with "sensitive". 19356 func (s GetBucketMetricsConfigurationInput) String() string { 19357 return awsutil.Prettify(s) 19358 } 19359 19360 // GoString returns the string representation. 19361 // 19362 // API parameter values that are decorated as "sensitive" in the API will not 19363 // be included in the string output. The member name will be present, but the 19364 // value will be replaced with "sensitive". 19365 func (s GetBucketMetricsConfigurationInput) GoString() string { 19366 return s.String() 19367 } 19368 19369 // Validate inspects the fields of the type to determine if they are valid. 19370 func (s *GetBucketMetricsConfigurationInput) Validate() error { 19371 invalidParams := request.ErrInvalidParams{Context: "GetBucketMetricsConfigurationInput"} 19372 if s.Bucket == nil { 19373 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19374 } 19375 if s.Bucket != nil && len(*s.Bucket) < 1 { 19376 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 19377 } 19378 if s.Id == nil { 19379 invalidParams.Add(request.NewErrParamRequired("Id")) 19380 } 19381 19382 if invalidParams.Len() > 0 { 19383 return invalidParams 19384 } 19385 return nil 19386 } 19387 19388 // SetBucket sets the Bucket field's value. 19389 func (s *GetBucketMetricsConfigurationInput) SetBucket(v string) *GetBucketMetricsConfigurationInput { 19390 s.Bucket = &v 19391 return s 19392 } 19393 19394 func (s *GetBucketMetricsConfigurationInput) getBucket() (v string) { 19395 if s.Bucket == nil { 19396 return v 19397 } 19398 return *s.Bucket 19399 } 19400 19401 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 19402 func (s *GetBucketMetricsConfigurationInput) SetExpectedBucketOwner(v string) *GetBucketMetricsConfigurationInput { 19403 s.ExpectedBucketOwner = &v 19404 return s 19405 } 19406 19407 // SetId sets the Id field's value. 19408 func (s *GetBucketMetricsConfigurationInput) SetId(v string) *GetBucketMetricsConfigurationInput { 19409 s.Id = &v 19410 return s 19411 } 19412 19413 func (s *GetBucketMetricsConfigurationInput) getEndpointARN() (arn.Resource, error) { 19414 if s.Bucket == nil { 19415 return nil, fmt.Errorf("member Bucket is nil") 19416 } 19417 return parseEndpointARN(*s.Bucket) 19418 } 19419 19420 func (s *GetBucketMetricsConfigurationInput) hasEndpointARN() bool { 19421 if s.Bucket == nil { 19422 return false 19423 } 19424 return arn.IsARN(*s.Bucket) 19425 } 19426 19427 // updateArnableField updates the value of the input field that 19428 // takes an ARN as an input. This method is useful to backfill 19429 // the parsed resource name from ARN into the input member. 19430 // It returns a pointer to a modified copy of input and an error. 19431 // Note that original input is not modified. 19432 func (s GetBucketMetricsConfigurationInput) updateArnableField(v string) (interface{}, error) { 19433 if s.Bucket == nil { 19434 return nil, fmt.Errorf("member Bucket is nil") 19435 } 19436 s.Bucket = aws.String(v) 19437 return &s, nil 19438 } 19439 19440 type GetBucketMetricsConfigurationOutput struct { 19441 _ struct{} `type:"structure" payload:"MetricsConfiguration"` 19442 19443 // Specifies the metrics configuration. 19444 MetricsConfiguration *MetricsConfiguration `type:"structure"` 19445 } 19446 19447 // String returns the string representation. 19448 // 19449 // API parameter values that are decorated as "sensitive" in the API will not 19450 // be included in the string output. The member name will be present, but the 19451 // value will be replaced with "sensitive". 19452 func (s GetBucketMetricsConfigurationOutput) String() string { 19453 return awsutil.Prettify(s) 19454 } 19455 19456 // GoString returns the string representation. 19457 // 19458 // API parameter values that are decorated as "sensitive" in the API will not 19459 // be included in the string output. The member name will be present, but the 19460 // value will be replaced with "sensitive". 19461 func (s GetBucketMetricsConfigurationOutput) GoString() string { 19462 return s.String() 19463 } 19464 19465 // SetMetricsConfiguration sets the MetricsConfiguration field's value. 19466 func (s *GetBucketMetricsConfigurationOutput) SetMetricsConfiguration(v *MetricsConfiguration) *GetBucketMetricsConfigurationOutput { 19467 s.MetricsConfiguration = v 19468 return s 19469 } 19470 19471 type GetBucketNotificationConfigurationRequest struct { 19472 _ struct{} `locationName:"GetBucketNotificationConfigurationRequest" type:"structure"` 19473 19474 // The name of the bucket for which to get the notification configuration. 19475 // 19476 // Bucket is a required field 19477 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19478 19479 // The account ID of the expected bucket owner. If the bucket is owned by a 19480 // different account, the request will fail with an HTTP 403 (Access Denied) 19481 // error. 19482 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 19483 } 19484 19485 // String returns the string representation. 19486 // 19487 // API parameter values that are decorated as "sensitive" in the API will not 19488 // be included in the string output. The member name will be present, but the 19489 // value will be replaced with "sensitive". 19490 func (s GetBucketNotificationConfigurationRequest) String() string { 19491 return awsutil.Prettify(s) 19492 } 19493 19494 // GoString returns the string representation. 19495 // 19496 // API parameter values that are decorated as "sensitive" in the API will not 19497 // be included in the string output. The member name will be present, but the 19498 // value will be replaced with "sensitive". 19499 func (s GetBucketNotificationConfigurationRequest) GoString() string { 19500 return s.String() 19501 } 19502 19503 // Validate inspects the fields of the type to determine if they are valid. 19504 func (s *GetBucketNotificationConfigurationRequest) Validate() error { 19505 invalidParams := request.ErrInvalidParams{Context: "GetBucketNotificationConfigurationRequest"} 19506 if s.Bucket == nil { 19507 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19508 } 19509 if s.Bucket != nil && len(*s.Bucket) < 1 { 19510 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 19511 } 19512 19513 if invalidParams.Len() > 0 { 19514 return invalidParams 19515 } 19516 return nil 19517 } 19518 19519 // SetBucket sets the Bucket field's value. 19520 func (s *GetBucketNotificationConfigurationRequest) SetBucket(v string) *GetBucketNotificationConfigurationRequest { 19521 s.Bucket = &v 19522 return s 19523 } 19524 19525 func (s *GetBucketNotificationConfigurationRequest) getBucket() (v string) { 19526 if s.Bucket == nil { 19527 return v 19528 } 19529 return *s.Bucket 19530 } 19531 19532 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 19533 func (s *GetBucketNotificationConfigurationRequest) SetExpectedBucketOwner(v string) *GetBucketNotificationConfigurationRequest { 19534 s.ExpectedBucketOwner = &v 19535 return s 19536 } 19537 19538 func (s *GetBucketNotificationConfigurationRequest) getEndpointARN() (arn.Resource, error) { 19539 if s.Bucket == nil { 19540 return nil, fmt.Errorf("member Bucket is nil") 19541 } 19542 return parseEndpointARN(*s.Bucket) 19543 } 19544 19545 func (s *GetBucketNotificationConfigurationRequest) hasEndpointARN() bool { 19546 if s.Bucket == nil { 19547 return false 19548 } 19549 return arn.IsARN(*s.Bucket) 19550 } 19551 19552 // updateArnableField updates the value of the input field that 19553 // takes an ARN as an input. This method is useful to backfill 19554 // the parsed resource name from ARN into the input member. 19555 // It returns a pointer to a modified copy of input and an error. 19556 // Note that original input is not modified. 19557 func (s GetBucketNotificationConfigurationRequest) updateArnableField(v string) (interface{}, error) { 19558 if s.Bucket == nil { 19559 return nil, fmt.Errorf("member Bucket is nil") 19560 } 19561 s.Bucket = aws.String(v) 19562 return &s, nil 19563 } 19564 19565 type GetBucketOwnershipControlsInput struct { 19566 _ struct{} `locationName:"GetBucketOwnershipControlsRequest" type:"structure"` 19567 19568 // The name of the Amazon S3 bucket whose OwnershipControls you want to retrieve. 19569 // 19570 // Bucket is a required field 19571 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19572 19573 // The account ID of the expected bucket owner. If the bucket is owned by a 19574 // different account, the request will fail with an HTTP 403 (Access Denied) 19575 // error. 19576 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 19577 } 19578 19579 // String returns the string representation. 19580 // 19581 // API parameter values that are decorated as "sensitive" in the API will not 19582 // be included in the string output. The member name will be present, but the 19583 // value will be replaced with "sensitive". 19584 func (s GetBucketOwnershipControlsInput) String() string { 19585 return awsutil.Prettify(s) 19586 } 19587 19588 // GoString returns the string representation. 19589 // 19590 // API parameter values that are decorated as "sensitive" in the API will not 19591 // be included in the string output. The member name will be present, but the 19592 // value will be replaced with "sensitive". 19593 func (s GetBucketOwnershipControlsInput) GoString() string { 19594 return s.String() 19595 } 19596 19597 // Validate inspects the fields of the type to determine if they are valid. 19598 func (s *GetBucketOwnershipControlsInput) Validate() error { 19599 invalidParams := request.ErrInvalidParams{Context: "GetBucketOwnershipControlsInput"} 19600 if s.Bucket == nil { 19601 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19602 } 19603 if s.Bucket != nil && len(*s.Bucket) < 1 { 19604 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 19605 } 19606 19607 if invalidParams.Len() > 0 { 19608 return invalidParams 19609 } 19610 return nil 19611 } 19612 19613 // SetBucket sets the Bucket field's value. 19614 func (s *GetBucketOwnershipControlsInput) SetBucket(v string) *GetBucketOwnershipControlsInput { 19615 s.Bucket = &v 19616 return s 19617 } 19618 19619 func (s *GetBucketOwnershipControlsInput) getBucket() (v string) { 19620 if s.Bucket == nil { 19621 return v 19622 } 19623 return *s.Bucket 19624 } 19625 19626 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 19627 func (s *GetBucketOwnershipControlsInput) SetExpectedBucketOwner(v string) *GetBucketOwnershipControlsInput { 19628 s.ExpectedBucketOwner = &v 19629 return s 19630 } 19631 19632 func (s *GetBucketOwnershipControlsInput) getEndpointARN() (arn.Resource, error) { 19633 if s.Bucket == nil { 19634 return nil, fmt.Errorf("member Bucket is nil") 19635 } 19636 return parseEndpointARN(*s.Bucket) 19637 } 19638 19639 func (s *GetBucketOwnershipControlsInput) hasEndpointARN() bool { 19640 if s.Bucket == nil { 19641 return false 19642 } 19643 return arn.IsARN(*s.Bucket) 19644 } 19645 19646 // updateArnableField updates the value of the input field that 19647 // takes an ARN as an input. This method is useful to backfill 19648 // the parsed resource name from ARN into the input member. 19649 // It returns a pointer to a modified copy of input and an error. 19650 // Note that original input is not modified. 19651 func (s GetBucketOwnershipControlsInput) updateArnableField(v string) (interface{}, error) { 19652 if s.Bucket == nil { 19653 return nil, fmt.Errorf("member Bucket is nil") 19654 } 19655 s.Bucket = aws.String(v) 19656 return &s, nil 19657 } 19658 19659 type GetBucketOwnershipControlsOutput struct { 19660 _ struct{} `type:"structure" payload:"OwnershipControls"` 19661 19662 // The OwnershipControls (BucketOwnerPreferred or ObjectWriter) currently in 19663 // effect for this Amazon S3 bucket. 19664 OwnershipControls *OwnershipControls `type:"structure"` 19665 } 19666 19667 // String returns the string representation. 19668 // 19669 // API parameter values that are decorated as "sensitive" in the API will not 19670 // be included in the string output. The member name will be present, but the 19671 // value will be replaced with "sensitive". 19672 func (s GetBucketOwnershipControlsOutput) String() string { 19673 return awsutil.Prettify(s) 19674 } 19675 19676 // GoString returns the string representation. 19677 // 19678 // API parameter values that are decorated as "sensitive" in the API will not 19679 // be included in the string output. The member name will be present, but the 19680 // value will be replaced with "sensitive". 19681 func (s GetBucketOwnershipControlsOutput) GoString() string { 19682 return s.String() 19683 } 19684 19685 // SetOwnershipControls sets the OwnershipControls field's value. 19686 func (s *GetBucketOwnershipControlsOutput) SetOwnershipControls(v *OwnershipControls) *GetBucketOwnershipControlsOutput { 19687 s.OwnershipControls = v 19688 return s 19689 } 19690 19691 type GetBucketPolicyInput struct { 19692 _ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"` 19693 19694 // The bucket name for which to get the bucket policy. 19695 // 19696 // Bucket is a required field 19697 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19698 19699 // The account ID of the expected bucket owner. If the bucket is owned by a 19700 // different account, the request will fail with an HTTP 403 (Access Denied) 19701 // error. 19702 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 19703 } 19704 19705 // String returns the string representation. 19706 // 19707 // API parameter values that are decorated as "sensitive" in the API will not 19708 // be included in the string output. The member name will be present, but the 19709 // value will be replaced with "sensitive". 19710 func (s GetBucketPolicyInput) String() string { 19711 return awsutil.Prettify(s) 19712 } 19713 19714 // GoString returns the string representation. 19715 // 19716 // API parameter values that are decorated as "sensitive" in the API will not 19717 // be included in the string output. The member name will be present, but the 19718 // value will be replaced with "sensitive". 19719 func (s GetBucketPolicyInput) GoString() string { 19720 return s.String() 19721 } 19722 19723 // Validate inspects the fields of the type to determine if they are valid. 19724 func (s *GetBucketPolicyInput) Validate() error { 19725 invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"} 19726 if s.Bucket == nil { 19727 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19728 } 19729 if s.Bucket != nil && len(*s.Bucket) < 1 { 19730 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 19731 } 19732 19733 if invalidParams.Len() > 0 { 19734 return invalidParams 19735 } 19736 return nil 19737 } 19738 19739 // SetBucket sets the Bucket field's value. 19740 func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput { 19741 s.Bucket = &v 19742 return s 19743 } 19744 19745 func (s *GetBucketPolicyInput) getBucket() (v string) { 19746 if s.Bucket == nil { 19747 return v 19748 } 19749 return *s.Bucket 19750 } 19751 19752 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 19753 func (s *GetBucketPolicyInput) SetExpectedBucketOwner(v string) *GetBucketPolicyInput { 19754 s.ExpectedBucketOwner = &v 19755 return s 19756 } 19757 19758 func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) { 19759 if s.Bucket == nil { 19760 return nil, fmt.Errorf("member Bucket is nil") 19761 } 19762 return parseEndpointARN(*s.Bucket) 19763 } 19764 19765 func (s *GetBucketPolicyInput) hasEndpointARN() bool { 19766 if s.Bucket == nil { 19767 return false 19768 } 19769 return arn.IsARN(*s.Bucket) 19770 } 19771 19772 // updateArnableField updates the value of the input field that 19773 // takes an ARN as an input. This method is useful to backfill 19774 // the parsed resource name from ARN into the input member. 19775 // It returns a pointer to a modified copy of input and an error. 19776 // Note that original input is not modified. 19777 func (s GetBucketPolicyInput) updateArnableField(v string) (interface{}, error) { 19778 if s.Bucket == nil { 19779 return nil, fmt.Errorf("member Bucket is nil") 19780 } 19781 s.Bucket = aws.String(v) 19782 return &s, nil 19783 } 19784 19785 type GetBucketPolicyOutput struct { 19786 _ struct{} `type:"structure" payload:"Policy"` 19787 19788 // The bucket policy as a JSON document. 19789 Policy *string `type:"string"` 19790 } 19791 19792 // String returns the string representation. 19793 // 19794 // API parameter values that are decorated as "sensitive" in the API will not 19795 // be included in the string output. The member name will be present, but the 19796 // value will be replaced with "sensitive". 19797 func (s GetBucketPolicyOutput) String() string { 19798 return awsutil.Prettify(s) 19799 } 19800 19801 // GoString returns the string representation. 19802 // 19803 // API parameter values that are decorated as "sensitive" in the API will not 19804 // be included in the string output. The member name will be present, but the 19805 // value will be replaced with "sensitive". 19806 func (s GetBucketPolicyOutput) GoString() string { 19807 return s.String() 19808 } 19809 19810 // SetPolicy sets the Policy field's value. 19811 func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput { 19812 s.Policy = &v 19813 return s 19814 } 19815 19816 type GetBucketPolicyStatusInput struct { 19817 _ struct{} `locationName:"GetBucketPolicyStatusRequest" type:"structure"` 19818 19819 // The name of the Amazon S3 bucket whose policy status you want to retrieve. 19820 // 19821 // Bucket is a required field 19822 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19823 19824 // The account ID of the expected bucket owner. If the bucket is owned by a 19825 // different account, the request will fail with an HTTP 403 (Access Denied) 19826 // error. 19827 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 19828 } 19829 19830 // String returns the string representation. 19831 // 19832 // API parameter values that are decorated as "sensitive" in the API will not 19833 // be included in the string output. The member name will be present, but the 19834 // value will be replaced with "sensitive". 19835 func (s GetBucketPolicyStatusInput) String() string { 19836 return awsutil.Prettify(s) 19837 } 19838 19839 // GoString returns the string representation. 19840 // 19841 // API parameter values that are decorated as "sensitive" in the API will not 19842 // be included in the string output. The member name will be present, but the 19843 // value will be replaced with "sensitive". 19844 func (s GetBucketPolicyStatusInput) GoString() string { 19845 return s.String() 19846 } 19847 19848 // Validate inspects the fields of the type to determine if they are valid. 19849 func (s *GetBucketPolicyStatusInput) Validate() error { 19850 invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyStatusInput"} 19851 if s.Bucket == nil { 19852 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19853 } 19854 if s.Bucket != nil && len(*s.Bucket) < 1 { 19855 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 19856 } 19857 19858 if invalidParams.Len() > 0 { 19859 return invalidParams 19860 } 19861 return nil 19862 } 19863 19864 // SetBucket sets the Bucket field's value. 19865 func (s *GetBucketPolicyStatusInput) SetBucket(v string) *GetBucketPolicyStatusInput { 19866 s.Bucket = &v 19867 return s 19868 } 19869 19870 func (s *GetBucketPolicyStatusInput) getBucket() (v string) { 19871 if s.Bucket == nil { 19872 return v 19873 } 19874 return *s.Bucket 19875 } 19876 19877 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 19878 func (s *GetBucketPolicyStatusInput) SetExpectedBucketOwner(v string) *GetBucketPolicyStatusInput { 19879 s.ExpectedBucketOwner = &v 19880 return s 19881 } 19882 19883 func (s *GetBucketPolicyStatusInput) getEndpointARN() (arn.Resource, error) { 19884 if s.Bucket == nil { 19885 return nil, fmt.Errorf("member Bucket is nil") 19886 } 19887 return parseEndpointARN(*s.Bucket) 19888 } 19889 19890 func (s *GetBucketPolicyStatusInput) hasEndpointARN() bool { 19891 if s.Bucket == nil { 19892 return false 19893 } 19894 return arn.IsARN(*s.Bucket) 19895 } 19896 19897 // updateArnableField updates the value of the input field that 19898 // takes an ARN as an input. This method is useful to backfill 19899 // the parsed resource name from ARN into the input member. 19900 // It returns a pointer to a modified copy of input and an error. 19901 // Note that original input is not modified. 19902 func (s GetBucketPolicyStatusInput) updateArnableField(v string) (interface{}, error) { 19903 if s.Bucket == nil { 19904 return nil, fmt.Errorf("member Bucket is nil") 19905 } 19906 s.Bucket = aws.String(v) 19907 return &s, nil 19908 } 19909 19910 type GetBucketPolicyStatusOutput struct { 19911 _ struct{} `type:"structure" payload:"PolicyStatus"` 19912 19913 // The policy status for the specified bucket. 19914 PolicyStatus *PolicyStatus `type:"structure"` 19915 } 19916 19917 // String returns the string representation. 19918 // 19919 // API parameter values that are decorated as "sensitive" in the API will not 19920 // be included in the string output. The member name will be present, but the 19921 // value will be replaced with "sensitive". 19922 func (s GetBucketPolicyStatusOutput) String() string { 19923 return awsutil.Prettify(s) 19924 } 19925 19926 // GoString returns the string representation. 19927 // 19928 // API parameter values that are decorated as "sensitive" in the API will not 19929 // be included in the string output. The member name will be present, but the 19930 // value will be replaced with "sensitive". 19931 func (s GetBucketPolicyStatusOutput) GoString() string { 19932 return s.String() 19933 } 19934 19935 // SetPolicyStatus sets the PolicyStatus field's value. 19936 func (s *GetBucketPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetBucketPolicyStatusOutput { 19937 s.PolicyStatus = v 19938 return s 19939 } 19940 19941 type GetBucketReplicationInput struct { 19942 _ struct{} `locationName:"GetBucketReplicationRequest" type:"structure"` 19943 19944 // The bucket name for which to get the replication information. 19945 // 19946 // Bucket is a required field 19947 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 19948 19949 // The account ID of the expected bucket owner. If the bucket is owned by a 19950 // different account, the request will fail with an HTTP 403 (Access Denied) 19951 // error. 19952 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 19953 } 19954 19955 // String returns the string representation. 19956 // 19957 // API parameter values that are decorated as "sensitive" in the API will not 19958 // be included in the string output. The member name will be present, but the 19959 // value will be replaced with "sensitive". 19960 func (s GetBucketReplicationInput) String() string { 19961 return awsutil.Prettify(s) 19962 } 19963 19964 // GoString returns the string representation. 19965 // 19966 // API parameter values that are decorated as "sensitive" in the API will not 19967 // be included in the string output. The member name will be present, but the 19968 // value will be replaced with "sensitive". 19969 func (s GetBucketReplicationInput) GoString() string { 19970 return s.String() 19971 } 19972 19973 // Validate inspects the fields of the type to determine if they are valid. 19974 func (s *GetBucketReplicationInput) Validate() error { 19975 invalidParams := request.ErrInvalidParams{Context: "GetBucketReplicationInput"} 19976 if s.Bucket == nil { 19977 invalidParams.Add(request.NewErrParamRequired("Bucket")) 19978 } 19979 if s.Bucket != nil && len(*s.Bucket) < 1 { 19980 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 19981 } 19982 19983 if invalidParams.Len() > 0 { 19984 return invalidParams 19985 } 19986 return nil 19987 } 19988 19989 // SetBucket sets the Bucket field's value. 19990 func (s *GetBucketReplicationInput) SetBucket(v string) *GetBucketReplicationInput { 19991 s.Bucket = &v 19992 return s 19993 } 19994 19995 func (s *GetBucketReplicationInput) getBucket() (v string) { 19996 if s.Bucket == nil { 19997 return v 19998 } 19999 return *s.Bucket 20000 } 20001 20002 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 20003 func (s *GetBucketReplicationInput) SetExpectedBucketOwner(v string) *GetBucketReplicationInput { 20004 s.ExpectedBucketOwner = &v 20005 return s 20006 } 20007 20008 func (s *GetBucketReplicationInput) getEndpointARN() (arn.Resource, error) { 20009 if s.Bucket == nil { 20010 return nil, fmt.Errorf("member Bucket is nil") 20011 } 20012 return parseEndpointARN(*s.Bucket) 20013 } 20014 20015 func (s *GetBucketReplicationInput) hasEndpointARN() bool { 20016 if s.Bucket == nil { 20017 return false 20018 } 20019 return arn.IsARN(*s.Bucket) 20020 } 20021 20022 // updateArnableField updates the value of the input field that 20023 // takes an ARN as an input. This method is useful to backfill 20024 // the parsed resource name from ARN into the input member. 20025 // It returns a pointer to a modified copy of input and an error. 20026 // Note that original input is not modified. 20027 func (s GetBucketReplicationInput) updateArnableField(v string) (interface{}, error) { 20028 if s.Bucket == nil { 20029 return nil, fmt.Errorf("member Bucket is nil") 20030 } 20031 s.Bucket = aws.String(v) 20032 return &s, nil 20033 } 20034 20035 type GetBucketReplicationOutput struct { 20036 _ struct{} `type:"structure" payload:"ReplicationConfiguration"` 20037 20038 // A container for replication rules. You can add up to 1,000 rules. The maximum 20039 // size of a replication configuration is 2 MB. 20040 ReplicationConfiguration *ReplicationConfiguration `type:"structure"` 20041 } 20042 20043 // String returns the string representation. 20044 // 20045 // API parameter values that are decorated as "sensitive" in the API will not 20046 // be included in the string output. The member name will be present, but the 20047 // value will be replaced with "sensitive". 20048 func (s GetBucketReplicationOutput) String() string { 20049 return awsutil.Prettify(s) 20050 } 20051 20052 // GoString returns the string representation. 20053 // 20054 // API parameter values that are decorated as "sensitive" in the API will not 20055 // be included in the string output. The member name will be present, but the 20056 // value will be replaced with "sensitive". 20057 func (s GetBucketReplicationOutput) GoString() string { 20058 return s.String() 20059 } 20060 20061 // SetReplicationConfiguration sets the ReplicationConfiguration field's value. 20062 func (s *GetBucketReplicationOutput) SetReplicationConfiguration(v *ReplicationConfiguration) *GetBucketReplicationOutput { 20063 s.ReplicationConfiguration = v 20064 return s 20065 } 20066 20067 type GetBucketRequestPaymentInput struct { 20068 _ struct{} `locationName:"GetBucketRequestPaymentRequest" type:"structure"` 20069 20070 // The name of the bucket for which to get the payment request configuration 20071 // 20072 // Bucket is a required field 20073 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 20074 20075 // The account ID of the expected bucket owner. If the bucket is owned by a 20076 // different account, the request will fail with an HTTP 403 (Access Denied) 20077 // error. 20078 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 20079 } 20080 20081 // String returns the string representation. 20082 // 20083 // API parameter values that are decorated as "sensitive" in the API will not 20084 // be included in the string output. The member name will be present, but the 20085 // value will be replaced with "sensitive". 20086 func (s GetBucketRequestPaymentInput) String() string { 20087 return awsutil.Prettify(s) 20088 } 20089 20090 // GoString returns the string representation. 20091 // 20092 // API parameter values that are decorated as "sensitive" in the API will not 20093 // be included in the string output. The member name will be present, but the 20094 // value will be replaced with "sensitive". 20095 func (s GetBucketRequestPaymentInput) GoString() string { 20096 return s.String() 20097 } 20098 20099 // Validate inspects the fields of the type to determine if they are valid. 20100 func (s *GetBucketRequestPaymentInput) Validate() error { 20101 invalidParams := request.ErrInvalidParams{Context: "GetBucketRequestPaymentInput"} 20102 if s.Bucket == nil { 20103 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20104 } 20105 if s.Bucket != nil && len(*s.Bucket) < 1 { 20106 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 20107 } 20108 20109 if invalidParams.Len() > 0 { 20110 return invalidParams 20111 } 20112 return nil 20113 } 20114 20115 // SetBucket sets the Bucket field's value. 20116 func (s *GetBucketRequestPaymentInput) SetBucket(v string) *GetBucketRequestPaymentInput { 20117 s.Bucket = &v 20118 return s 20119 } 20120 20121 func (s *GetBucketRequestPaymentInput) getBucket() (v string) { 20122 if s.Bucket == nil { 20123 return v 20124 } 20125 return *s.Bucket 20126 } 20127 20128 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 20129 func (s *GetBucketRequestPaymentInput) SetExpectedBucketOwner(v string) *GetBucketRequestPaymentInput { 20130 s.ExpectedBucketOwner = &v 20131 return s 20132 } 20133 20134 func (s *GetBucketRequestPaymentInput) getEndpointARN() (arn.Resource, error) { 20135 if s.Bucket == nil { 20136 return nil, fmt.Errorf("member Bucket is nil") 20137 } 20138 return parseEndpointARN(*s.Bucket) 20139 } 20140 20141 func (s *GetBucketRequestPaymentInput) hasEndpointARN() bool { 20142 if s.Bucket == nil { 20143 return false 20144 } 20145 return arn.IsARN(*s.Bucket) 20146 } 20147 20148 // updateArnableField updates the value of the input field that 20149 // takes an ARN as an input. This method is useful to backfill 20150 // the parsed resource name from ARN into the input member. 20151 // It returns a pointer to a modified copy of input and an error. 20152 // Note that original input is not modified. 20153 func (s GetBucketRequestPaymentInput) updateArnableField(v string) (interface{}, error) { 20154 if s.Bucket == nil { 20155 return nil, fmt.Errorf("member Bucket is nil") 20156 } 20157 s.Bucket = aws.String(v) 20158 return &s, nil 20159 } 20160 20161 type GetBucketRequestPaymentOutput struct { 20162 _ struct{} `type:"structure"` 20163 20164 // Specifies who pays for the download and request fees. 20165 Payer *string `type:"string" enum:"Payer"` 20166 } 20167 20168 // String returns the string representation. 20169 // 20170 // API parameter values that are decorated as "sensitive" in the API will not 20171 // be included in the string output. The member name will be present, but the 20172 // value will be replaced with "sensitive". 20173 func (s GetBucketRequestPaymentOutput) String() string { 20174 return awsutil.Prettify(s) 20175 } 20176 20177 // GoString returns the string representation. 20178 // 20179 // API parameter values that are decorated as "sensitive" in the API will not 20180 // be included in the string output. The member name will be present, but the 20181 // value will be replaced with "sensitive". 20182 func (s GetBucketRequestPaymentOutput) GoString() string { 20183 return s.String() 20184 } 20185 20186 // SetPayer sets the Payer field's value. 20187 func (s *GetBucketRequestPaymentOutput) SetPayer(v string) *GetBucketRequestPaymentOutput { 20188 s.Payer = &v 20189 return s 20190 } 20191 20192 type GetBucketTaggingInput struct { 20193 _ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"` 20194 20195 // The name of the bucket for which to get the tagging information. 20196 // 20197 // Bucket is a required field 20198 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 20199 20200 // The account ID of the expected bucket owner. If the bucket is owned by a 20201 // different account, the request will fail with an HTTP 403 (Access Denied) 20202 // error. 20203 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 20204 } 20205 20206 // String returns the string representation. 20207 // 20208 // API parameter values that are decorated as "sensitive" in the API will not 20209 // be included in the string output. The member name will be present, but the 20210 // value will be replaced with "sensitive". 20211 func (s GetBucketTaggingInput) String() string { 20212 return awsutil.Prettify(s) 20213 } 20214 20215 // GoString returns the string representation. 20216 // 20217 // API parameter values that are decorated as "sensitive" in the API will not 20218 // be included in the string output. The member name will be present, but the 20219 // value will be replaced with "sensitive". 20220 func (s GetBucketTaggingInput) GoString() string { 20221 return s.String() 20222 } 20223 20224 // Validate inspects the fields of the type to determine if they are valid. 20225 func (s *GetBucketTaggingInput) Validate() error { 20226 invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"} 20227 if s.Bucket == nil { 20228 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20229 } 20230 if s.Bucket != nil && len(*s.Bucket) < 1 { 20231 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 20232 } 20233 20234 if invalidParams.Len() > 0 { 20235 return invalidParams 20236 } 20237 return nil 20238 } 20239 20240 // SetBucket sets the Bucket field's value. 20241 func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput { 20242 s.Bucket = &v 20243 return s 20244 } 20245 20246 func (s *GetBucketTaggingInput) getBucket() (v string) { 20247 if s.Bucket == nil { 20248 return v 20249 } 20250 return *s.Bucket 20251 } 20252 20253 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 20254 func (s *GetBucketTaggingInput) SetExpectedBucketOwner(v string) *GetBucketTaggingInput { 20255 s.ExpectedBucketOwner = &v 20256 return s 20257 } 20258 20259 func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) { 20260 if s.Bucket == nil { 20261 return nil, fmt.Errorf("member Bucket is nil") 20262 } 20263 return parseEndpointARN(*s.Bucket) 20264 } 20265 20266 func (s *GetBucketTaggingInput) hasEndpointARN() bool { 20267 if s.Bucket == nil { 20268 return false 20269 } 20270 return arn.IsARN(*s.Bucket) 20271 } 20272 20273 // updateArnableField updates the value of the input field that 20274 // takes an ARN as an input. This method is useful to backfill 20275 // the parsed resource name from ARN into the input member. 20276 // It returns a pointer to a modified copy of input and an error. 20277 // Note that original input is not modified. 20278 func (s GetBucketTaggingInput) updateArnableField(v string) (interface{}, error) { 20279 if s.Bucket == nil { 20280 return nil, fmt.Errorf("member Bucket is nil") 20281 } 20282 s.Bucket = aws.String(v) 20283 return &s, nil 20284 } 20285 20286 type GetBucketTaggingOutput struct { 20287 _ struct{} `type:"structure"` 20288 20289 // Contains the tag set. 20290 // 20291 // TagSet is a required field 20292 TagSet []*Tag `locationNameList:"Tag" type:"list" required:"true"` 20293 } 20294 20295 // String returns the string representation. 20296 // 20297 // API parameter values that are decorated as "sensitive" in the API will not 20298 // be included in the string output. The member name will be present, but the 20299 // value will be replaced with "sensitive". 20300 func (s GetBucketTaggingOutput) String() string { 20301 return awsutil.Prettify(s) 20302 } 20303 20304 // GoString returns the string representation. 20305 // 20306 // API parameter values that are decorated as "sensitive" in the API will not 20307 // be included in the string output. The member name will be present, but the 20308 // value will be replaced with "sensitive". 20309 func (s GetBucketTaggingOutput) GoString() string { 20310 return s.String() 20311 } 20312 20313 // SetTagSet sets the TagSet field's value. 20314 func (s *GetBucketTaggingOutput) SetTagSet(v []*Tag) *GetBucketTaggingOutput { 20315 s.TagSet = v 20316 return s 20317 } 20318 20319 type GetBucketVersioningInput struct { 20320 _ struct{} `locationName:"GetBucketVersioningRequest" type:"structure"` 20321 20322 // The name of the bucket for which to get the versioning information. 20323 // 20324 // Bucket is a required field 20325 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 20326 20327 // The account ID of the expected bucket owner. If the bucket is owned by a 20328 // different account, the request will fail with an HTTP 403 (Access Denied) 20329 // error. 20330 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 20331 } 20332 20333 // String returns the string representation. 20334 // 20335 // API parameter values that are decorated as "sensitive" in the API will not 20336 // be included in the string output. The member name will be present, but the 20337 // value will be replaced with "sensitive". 20338 func (s GetBucketVersioningInput) String() string { 20339 return awsutil.Prettify(s) 20340 } 20341 20342 // GoString returns the string representation. 20343 // 20344 // API parameter values that are decorated as "sensitive" in the API will not 20345 // be included in the string output. The member name will be present, but the 20346 // value will be replaced with "sensitive". 20347 func (s GetBucketVersioningInput) GoString() string { 20348 return s.String() 20349 } 20350 20351 // Validate inspects the fields of the type to determine if they are valid. 20352 func (s *GetBucketVersioningInput) Validate() error { 20353 invalidParams := request.ErrInvalidParams{Context: "GetBucketVersioningInput"} 20354 if s.Bucket == nil { 20355 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20356 } 20357 if s.Bucket != nil && len(*s.Bucket) < 1 { 20358 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 20359 } 20360 20361 if invalidParams.Len() > 0 { 20362 return invalidParams 20363 } 20364 return nil 20365 } 20366 20367 // SetBucket sets the Bucket field's value. 20368 func (s *GetBucketVersioningInput) SetBucket(v string) *GetBucketVersioningInput { 20369 s.Bucket = &v 20370 return s 20371 } 20372 20373 func (s *GetBucketVersioningInput) getBucket() (v string) { 20374 if s.Bucket == nil { 20375 return v 20376 } 20377 return *s.Bucket 20378 } 20379 20380 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 20381 func (s *GetBucketVersioningInput) SetExpectedBucketOwner(v string) *GetBucketVersioningInput { 20382 s.ExpectedBucketOwner = &v 20383 return s 20384 } 20385 20386 func (s *GetBucketVersioningInput) getEndpointARN() (arn.Resource, error) { 20387 if s.Bucket == nil { 20388 return nil, fmt.Errorf("member Bucket is nil") 20389 } 20390 return parseEndpointARN(*s.Bucket) 20391 } 20392 20393 func (s *GetBucketVersioningInput) hasEndpointARN() bool { 20394 if s.Bucket == nil { 20395 return false 20396 } 20397 return arn.IsARN(*s.Bucket) 20398 } 20399 20400 // updateArnableField updates the value of the input field that 20401 // takes an ARN as an input. This method is useful to backfill 20402 // the parsed resource name from ARN into the input member. 20403 // It returns a pointer to a modified copy of input and an error. 20404 // Note that original input is not modified. 20405 func (s GetBucketVersioningInput) updateArnableField(v string) (interface{}, error) { 20406 if s.Bucket == nil { 20407 return nil, fmt.Errorf("member Bucket is nil") 20408 } 20409 s.Bucket = aws.String(v) 20410 return &s, nil 20411 } 20412 20413 type GetBucketVersioningOutput struct { 20414 _ struct{} `type:"structure"` 20415 20416 // Specifies whether MFA delete is enabled in the bucket versioning configuration. 20417 // This element is only returned if the bucket has been configured with MFA 20418 // delete. If the bucket has never been so configured, this element is not returned. 20419 MFADelete *string `locationName:"MfaDelete" type:"string" enum:"MFADeleteStatus"` 20420 20421 // The versioning state of the bucket. 20422 Status *string `type:"string" enum:"BucketVersioningStatus"` 20423 } 20424 20425 // String returns the string representation. 20426 // 20427 // API parameter values that are decorated as "sensitive" in the API will not 20428 // be included in the string output. The member name will be present, but the 20429 // value will be replaced with "sensitive". 20430 func (s GetBucketVersioningOutput) String() string { 20431 return awsutil.Prettify(s) 20432 } 20433 20434 // GoString returns the string representation. 20435 // 20436 // API parameter values that are decorated as "sensitive" in the API will not 20437 // be included in the string output. The member name will be present, but the 20438 // value will be replaced with "sensitive". 20439 func (s GetBucketVersioningOutput) GoString() string { 20440 return s.String() 20441 } 20442 20443 // SetMFADelete sets the MFADelete field's value. 20444 func (s *GetBucketVersioningOutput) SetMFADelete(v string) *GetBucketVersioningOutput { 20445 s.MFADelete = &v 20446 return s 20447 } 20448 20449 // SetStatus sets the Status field's value. 20450 func (s *GetBucketVersioningOutput) SetStatus(v string) *GetBucketVersioningOutput { 20451 s.Status = &v 20452 return s 20453 } 20454 20455 type GetBucketWebsiteInput struct { 20456 _ struct{} `locationName:"GetBucketWebsiteRequest" type:"structure"` 20457 20458 // The bucket name for which to get the website configuration. 20459 // 20460 // Bucket is a required field 20461 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 20462 20463 // The account ID of the expected bucket owner. If the bucket is owned by a 20464 // different account, the request will fail with an HTTP 403 (Access Denied) 20465 // error. 20466 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 20467 } 20468 20469 // String returns the string representation. 20470 // 20471 // API parameter values that are decorated as "sensitive" in the API will not 20472 // be included in the string output. The member name will be present, but the 20473 // value will be replaced with "sensitive". 20474 func (s GetBucketWebsiteInput) String() string { 20475 return awsutil.Prettify(s) 20476 } 20477 20478 // GoString returns the string representation. 20479 // 20480 // API parameter values that are decorated as "sensitive" in the API will not 20481 // be included in the string output. The member name will be present, but the 20482 // value will be replaced with "sensitive". 20483 func (s GetBucketWebsiteInput) GoString() string { 20484 return s.String() 20485 } 20486 20487 // Validate inspects the fields of the type to determine if they are valid. 20488 func (s *GetBucketWebsiteInput) Validate() error { 20489 invalidParams := request.ErrInvalidParams{Context: "GetBucketWebsiteInput"} 20490 if s.Bucket == nil { 20491 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20492 } 20493 if s.Bucket != nil && len(*s.Bucket) < 1 { 20494 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 20495 } 20496 20497 if invalidParams.Len() > 0 { 20498 return invalidParams 20499 } 20500 return nil 20501 } 20502 20503 // SetBucket sets the Bucket field's value. 20504 func (s *GetBucketWebsiteInput) SetBucket(v string) *GetBucketWebsiteInput { 20505 s.Bucket = &v 20506 return s 20507 } 20508 20509 func (s *GetBucketWebsiteInput) getBucket() (v string) { 20510 if s.Bucket == nil { 20511 return v 20512 } 20513 return *s.Bucket 20514 } 20515 20516 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 20517 func (s *GetBucketWebsiteInput) SetExpectedBucketOwner(v string) *GetBucketWebsiteInput { 20518 s.ExpectedBucketOwner = &v 20519 return s 20520 } 20521 20522 func (s *GetBucketWebsiteInput) getEndpointARN() (arn.Resource, error) { 20523 if s.Bucket == nil { 20524 return nil, fmt.Errorf("member Bucket is nil") 20525 } 20526 return parseEndpointARN(*s.Bucket) 20527 } 20528 20529 func (s *GetBucketWebsiteInput) hasEndpointARN() bool { 20530 if s.Bucket == nil { 20531 return false 20532 } 20533 return arn.IsARN(*s.Bucket) 20534 } 20535 20536 // updateArnableField updates the value of the input field that 20537 // takes an ARN as an input. This method is useful to backfill 20538 // the parsed resource name from ARN into the input member. 20539 // It returns a pointer to a modified copy of input and an error. 20540 // Note that original input is not modified. 20541 func (s GetBucketWebsiteInput) updateArnableField(v string) (interface{}, error) { 20542 if s.Bucket == nil { 20543 return nil, fmt.Errorf("member Bucket is nil") 20544 } 20545 s.Bucket = aws.String(v) 20546 return &s, nil 20547 } 20548 20549 type GetBucketWebsiteOutput struct { 20550 _ struct{} `type:"structure"` 20551 20552 // The object key name of the website error document to use for 4XX class errors. 20553 ErrorDocument *ErrorDocument `type:"structure"` 20554 20555 // The name of the index document for the website (for example index.html). 20556 IndexDocument *IndexDocument `type:"structure"` 20557 20558 // Specifies the redirect behavior of all requests to a website endpoint of 20559 // an Amazon S3 bucket. 20560 RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"` 20561 20562 // Rules that define when a redirect is applied and the redirect behavior. 20563 RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"` 20564 } 20565 20566 // String returns the string representation. 20567 // 20568 // API parameter values that are decorated as "sensitive" in the API will not 20569 // be included in the string output. The member name will be present, but the 20570 // value will be replaced with "sensitive". 20571 func (s GetBucketWebsiteOutput) String() string { 20572 return awsutil.Prettify(s) 20573 } 20574 20575 // GoString returns the string representation. 20576 // 20577 // API parameter values that are decorated as "sensitive" in the API will not 20578 // be included in the string output. The member name will be present, but the 20579 // value will be replaced with "sensitive". 20580 func (s GetBucketWebsiteOutput) GoString() string { 20581 return s.String() 20582 } 20583 20584 // SetErrorDocument sets the ErrorDocument field's value. 20585 func (s *GetBucketWebsiteOutput) SetErrorDocument(v *ErrorDocument) *GetBucketWebsiteOutput { 20586 s.ErrorDocument = v 20587 return s 20588 } 20589 20590 // SetIndexDocument sets the IndexDocument field's value. 20591 func (s *GetBucketWebsiteOutput) SetIndexDocument(v *IndexDocument) *GetBucketWebsiteOutput { 20592 s.IndexDocument = v 20593 return s 20594 } 20595 20596 // SetRedirectAllRequestsTo sets the RedirectAllRequestsTo field's value. 20597 func (s *GetBucketWebsiteOutput) SetRedirectAllRequestsTo(v *RedirectAllRequestsTo) *GetBucketWebsiteOutput { 20598 s.RedirectAllRequestsTo = v 20599 return s 20600 } 20601 20602 // SetRoutingRules sets the RoutingRules field's value. 20603 func (s *GetBucketWebsiteOutput) SetRoutingRules(v []*RoutingRule) *GetBucketWebsiteOutput { 20604 s.RoutingRules = v 20605 return s 20606 } 20607 20608 type GetObjectAclInput struct { 20609 _ struct{} `locationName:"GetObjectAclRequest" type:"structure"` 20610 20611 // The bucket name that contains the object for which to get the ACL information. 20612 // 20613 // When using this action with an access point, you must direct requests to 20614 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 20615 // When using this action with an access point through the Amazon Web Services 20616 // SDKs, you provide the access point ARN in place of the bucket name. For more 20617 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 20618 // in the Amazon S3 User Guide. 20619 // 20620 // Bucket is a required field 20621 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 20622 20623 // The account ID of the expected bucket owner. If the bucket is owned by a 20624 // different account, the request will fail with an HTTP 403 (Access Denied) 20625 // error. 20626 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 20627 20628 // The key of the object for which to get the ACL information. 20629 // 20630 // Key is a required field 20631 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 20632 20633 // Confirms that the requester knows that they will be charged for the request. 20634 // Bucket owners need not specify this parameter in their requests. For information 20635 // about downloading objects from requester pays buckets, see Downloading Objects 20636 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 20637 // in the Amazon S3 User Guide. 20638 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 20639 20640 // VersionId used to reference a specific version of the object. 20641 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 20642 } 20643 20644 // String returns the string representation. 20645 // 20646 // API parameter values that are decorated as "sensitive" in the API will not 20647 // be included in the string output. The member name will be present, but the 20648 // value will be replaced with "sensitive". 20649 func (s GetObjectAclInput) String() string { 20650 return awsutil.Prettify(s) 20651 } 20652 20653 // GoString returns the string representation. 20654 // 20655 // API parameter values that are decorated as "sensitive" in the API will not 20656 // be included in the string output. The member name will be present, but the 20657 // value will be replaced with "sensitive". 20658 func (s GetObjectAclInput) GoString() string { 20659 return s.String() 20660 } 20661 20662 // Validate inspects the fields of the type to determine if they are valid. 20663 func (s *GetObjectAclInput) Validate() error { 20664 invalidParams := request.ErrInvalidParams{Context: "GetObjectAclInput"} 20665 if s.Bucket == nil { 20666 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20667 } 20668 if s.Bucket != nil && len(*s.Bucket) < 1 { 20669 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 20670 } 20671 if s.Key == nil { 20672 invalidParams.Add(request.NewErrParamRequired("Key")) 20673 } 20674 if s.Key != nil && len(*s.Key) < 1 { 20675 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 20676 } 20677 20678 if invalidParams.Len() > 0 { 20679 return invalidParams 20680 } 20681 return nil 20682 } 20683 20684 // SetBucket sets the Bucket field's value. 20685 func (s *GetObjectAclInput) SetBucket(v string) *GetObjectAclInput { 20686 s.Bucket = &v 20687 return s 20688 } 20689 20690 func (s *GetObjectAclInput) getBucket() (v string) { 20691 if s.Bucket == nil { 20692 return v 20693 } 20694 return *s.Bucket 20695 } 20696 20697 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 20698 func (s *GetObjectAclInput) SetExpectedBucketOwner(v string) *GetObjectAclInput { 20699 s.ExpectedBucketOwner = &v 20700 return s 20701 } 20702 20703 // SetKey sets the Key field's value. 20704 func (s *GetObjectAclInput) SetKey(v string) *GetObjectAclInput { 20705 s.Key = &v 20706 return s 20707 } 20708 20709 // SetRequestPayer sets the RequestPayer field's value. 20710 func (s *GetObjectAclInput) SetRequestPayer(v string) *GetObjectAclInput { 20711 s.RequestPayer = &v 20712 return s 20713 } 20714 20715 // SetVersionId sets the VersionId field's value. 20716 func (s *GetObjectAclInput) SetVersionId(v string) *GetObjectAclInput { 20717 s.VersionId = &v 20718 return s 20719 } 20720 20721 func (s *GetObjectAclInput) getEndpointARN() (arn.Resource, error) { 20722 if s.Bucket == nil { 20723 return nil, fmt.Errorf("member Bucket is nil") 20724 } 20725 return parseEndpointARN(*s.Bucket) 20726 } 20727 20728 func (s *GetObjectAclInput) hasEndpointARN() bool { 20729 if s.Bucket == nil { 20730 return false 20731 } 20732 return arn.IsARN(*s.Bucket) 20733 } 20734 20735 // updateArnableField updates the value of the input field that 20736 // takes an ARN as an input. This method is useful to backfill 20737 // the parsed resource name from ARN into the input member. 20738 // It returns a pointer to a modified copy of input and an error. 20739 // Note that original input is not modified. 20740 func (s GetObjectAclInput) updateArnableField(v string) (interface{}, error) { 20741 if s.Bucket == nil { 20742 return nil, fmt.Errorf("member Bucket is nil") 20743 } 20744 s.Bucket = aws.String(v) 20745 return &s, nil 20746 } 20747 20748 type GetObjectAclOutput struct { 20749 _ struct{} `type:"structure"` 20750 20751 // A list of grants. 20752 Grants []*Grant `locationName:"AccessControlList" locationNameList:"Grant" type:"list"` 20753 20754 // Container for the bucket owner's display name and ID. 20755 Owner *Owner `type:"structure"` 20756 20757 // If present, indicates that the requester was successfully charged for the 20758 // request. 20759 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 20760 } 20761 20762 // String returns the string representation. 20763 // 20764 // API parameter values that are decorated as "sensitive" in the API will not 20765 // be included in the string output. The member name will be present, but the 20766 // value will be replaced with "sensitive". 20767 func (s GetObjectAclOutput) String() string { 20768 return awsutil.Prettify(s) 20769 } 20770 20771 // GoString returns the string representation. 20772 // 20773 // API parameter values that are decorated as "sensitive" in the API will not 20774 // be included in the string output. The member name will be present, but the 20775 // value will be replaced with "sensitive". 20776 func (s GetObjectAclOutput) GoString() string { 20777 return s.String() 20778 } 20779 20780 // SetGrants sets the Grants field's value. 20781 func (s *GetObjectAclOutput) SetGrants(v []*Grant) *GetObjectAclOutput { 20782 s.Grants = v 20783 return s 20784 } 20785 20786 // SetOwner sets the Owner field's value. 20787 func (s *GetObjectAclOutput) SetOwner(v *Owner) *GetObjectAclOutput { 20788 s.Owner = v 20789 return s 20790 } 20791 20792 // SetRequestCharged sets the RequestCharged field's value. 20793 func (s *GetObjectAclOutput) SetRequestCharged(v string) *GetObjectAclOutput { 20794 s.RequestCharged = &v 20795 return s 20796 } 20797 20798 type GetObjectInput struct { 20799 _ struct{} `locationName:"GetObjectRequest" type:"structure"` 20800 20801 // The bucket name containing the object. 20802 // 20803 // When using this action with an access point, you must direct requests to 20804 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 20805 // When using this action with an access point through the Amazon Web Services 20806 // SDKs, you provide the access point ARN in place of the bucket name. For more 20807 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 20808 // in the Amazon S3 User Guide. 20809 // 20810 // When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com. 20811 // 20812 // When using this action with Amazon S3 on Outposts, you must direct requests 20813 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 20814 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 20815 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 20816 // you provide the Outposts bucket ARN in place of the bucket name. For more 20817 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 20818 // in the Amazon S3 User Guide. 20819 // 20820 // Bucket is a required field 20821 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 20822 20823 // The account ID of the expected bucket owner. If the bucket is owned by a 20824 // different account, the request will fail with an HTTP 403 (Access Denied) 20825 // error. 20826 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 20827 20828 // Return the object only if its entity tag (ETag) is the same as the one specified, 20829 // otherwise return a 412 (precondition failed). 20830 IfMatch *string `location:"header" locationName:"If-Match" type:"string"` 20831 20832 // Return the object only if it has been modified since the specified time, 20833 // otherwise return a 304 (not modified). 20834 IfModifiedSince *time.Time `location:"header" locationName:"If-Modified-Since" type:"timestamp"` 20835 20836 // Return the object only if its entity tag (ETag) is different from the one 20837 // specified, otherwise return a 304 (not modified). 20838 IfNoneMatch *string `location:"header" locationName:"If-None-Match" type:"string"` 20839 20840 // Return the object only if it has not been modified since the specified time, 20841 // otherwise return a 412 (precondition failed). 20842 IfUnmodifiedSince *time.Time `location:"header" locationName:"If-Unmodified-Since" type:"timestamp"` 20843 20844 // Key of the object to get. 20845 // 20846 // Key is a required field 20847 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 20848 20849 // Part number of the object being read. This is a positive integer between 20850 // 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. 20851 // Useful for downloading just a part of an object. 20852 PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"` 20853 20854 // Downloads the specified range bytes of an object. For more information about 20855 // the HTTP Range header, see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 20856 // (https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35). 20857 // 20858 // Amazon S3 doesn't support retrieving multiple ranges of data per GET request. 20859 Range *string `location:"header" locationName:"Range" type:"string"` 20860 20861 // Confirms that the requester knows that they will be charged for the request. 20862 // Bucket owners need not specify this parameter in their requests. For information 20863 // about downloading objects from requester pays buckets, see Downloading Objects 20864 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 20865 // in the Amazon S3 User Guide. 20866 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 20867 20868 // Sets the Cache-Control header of the response. 20869 ResponseCacheControl *string `location:"querystring" locationName:"response-cache-control" type:"string"` 20870 20871 // Sets the Content-Disposition header of the response 20872 ResponseContentDisposition *string `location:"querystring" locationName:"response-content-disposition" type:"string"` 20873 20874 // Sets the Content-Encoding header of the response. 20875 ResponseContentEncoding *string `location:"querystring" locationName:"response-content-encoding" type:"string"` 20876 20877 // Sets the Content-Language header of the response. 20878 ResponseContentLanguage *string `location:"querystring" locationName:"response-content-language" type:"string"` 20879 20880 // Sets the Content-Type header of the response. 20881 ResponseContentType *string `location:"querystring" locationName:"response-content-type" type:"string"` 20882 20883 // Sets the Expires header of the response. 20884 ResponseExpires *time.Time `location:"querystring" locationName:"response-expires" type:"timestamp" timestampFormat:"rfc822"` 20885 20886 // Specifies the algorithm to use to when decrypting the object (for example, 20887 // AES256). 20888 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 20889 20890 // Specifies the customer-provided encryption key for Amazon S3 used to encrypt 20891 // the data. This value is used to decrypt the object when recovering it and 20892 // must match the one used when storing the data. The key must be appropriate 20893 // for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm 20894 // header. 20895 // 20896 // SSECustomerKey is a sensitive parameter and its value will be 20897 // replaced with "sensitive" in string returned by GetObjectInput's 20898 // String and GoString methods. 20899 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 20900 20901 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 20902 // Amazon S3 uses this header for a message integrity check to ensure that the 20903 // encryption key was transmitted without error. 20904 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 20905 20906 // VersionId used to reference a specific version of the object. 20907 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 20908 } 20909 20910 // String returns the string representation. 20911 // 20912 // API parameter values that are decorated as "sensitive" in the API will not 20913 // be included in the string output. The member name will be present, but the 20914 // value will be replaced with "sensitive". 20915 func (s GetObjectInput) String() string { 20916 return awsutil.Prettify(s) 20917 } 20918 20919 // GoString returns the string representation. 20920 // 20921 // API parameter values that are decorated as "sensitive" in the API will not 20922 // be included in the string output. The member name will be present, but the 20923 // value will be replaced with "sensitive". 20924 func (s GetObjectInput) GoString() string { 20925 return s.String() 20926 } 20927 20928 // Validate inspects the fields of the type to determine if they are valid. 20929 func (s *GetObjectInput) Validate() error { 20930 invalidParams := request.ErrInvalidParams{Context: "GetObjectInput"} 20931 if s.Bucket == nil { 20932 invalidParams.Add(request.NewErrParamRequired("Bucket")) 20933 } 20934 if s.Bucket != nil && len(*s.Bucket) < 1 { 20935 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 20936 } 20937 if s.Key == nil { 20938 invalidParams.Add(request.NewErrParamRequired("Key")) 20939 } 20940 if s.Key != nil && len(*s.Key) < 1 { 20941 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 20942 } 20943 20944 if invalidParams.Len() > 0 { 20945 return invalidParams 20946 } 20947 return nil 20948 } 20949 20950 // SetBucket sets the Bucket field's value. 20951 func (s *GetObjectInput) SetBucket(v string) *GetObjectInput { 20952 s.Bucket = &v 20953 return s 20954 } 20955 20956 func (s *GetObjectInput) getBucket() (v string) { 20957 if s.Bucket == nil { 20958 return v 20959 } 20960 return *s.Bucket 20961 } 20962 20963 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 20964 func (s *GetObjectInput) SetExpectedBucketOwner(v string) *GetObjectInput { 20965 s.ExpectedBucketOwner = &v 20966 return s 20967 } 20968 20969 // SetIfMatch sets the IfMatch field's value. 20970 func (s *GetObjectInput) SetIfMatch(v string) *GetObjectInput { 20971 s.IfMatch = &v 20972 return s 20973 } 20974 20975 // SetIfModifiedSince sets the IfModifiedSince field's value. 20976 func (s *GetObjectInput) SetIfModifiedSince(v time.Time) *GetObjectInput { 20977 s.IfModifiedSince = &v 20978 return s 20979 } 20980 20981 // SetIfNoneMatch sets the IfNoneMatch field's value. 20982 func (s *GetObjectInput) SetIfNoneMatch(v string) *GetObjectInput { 20983 s.IfNoneMatch = &v 20984 return s 20985 } 20986 20987 // SetIfUnmodifiedSince sets the IfUnmodifiedSince field's value. 20988 func (s *GetObjectInput) SetIfUnmodifiedSince(v time.Time) *GetObjectInput { 20989 s.IfUnmodifiedSince = &v 20990 return s 20991 } 20992 20993 // SetKey sets the Key field's value. 20994 func (s *GetObjectInput) SetKey(v string) *GetObjectInput { 20995 s.Key = &v 20996 return s 20997 } 20998 20999 // SetPartNumber sets the PartNumber field's value. 21000 func (s *GetObjectInput) SetPartNumber(v int64) *GetObjectInput { 21001 s.PartNumber = &v 21002 return s 21003 } 21004 21005 // SetRange sets the Range field's value. 21006 func (s *GetObjectInput) SetRange(v string) *GetObjectInput { 21007 s.Range = &v 21008 return s 21009 } 21010 21011 // SetRequestPayer sets the RequestPayer field's value. 21012 func (s *GetObjectInput) SetRequestPayer(v string) *GetObjectInput { 21013 s.RequestPayer = &v 21014 return s 21015 } 21016 21017 // SetResponseCacheControl sets the ResponseCacheControl field's value. 21018 func (s *GetObjectInput) SetResponseCacheControl(v string) *GetObjectInput { 21019 s.ResponseCacheControl = &v 21020 return s 21021 } 21022 21023 // SetResponseContentDisposition sets the ResponseContentDisposition field's value. 21024 func (s *GetObjectInput) SetResponseContentDisposition(v string) *GetObjectInput { 21025 s.ResponseContentDisposition = &v 21026 return s 21027 } 21028 21029 // SetResponseContentEncoding sets the ResponseContentEncoding field's value. 21030 func (s *GetObjectInput) SetResponseContentEncoding(v string) *GetObjectInput { 21031 s.ResponseContentEncoding = &v 21032 return s 21033 } 21034 21035 // SetResponseContentLanguage sets the ResponseContentLanguage field's value. 21036 func (s *GetObjectInput) SetResponseContentLanguage(v string) *GetObjectInput { 21037 s.ResponseContentLanguage = &v 21038 return s 21039 } 21040 21041 // SetResponseContentType sets the ResponseContentType field's value. 21042 func (s *GetObjectInput) SetResponseContentType(v string) *GetObjectInput { 21043 s.ResponseContentType = &v 21044 return s 21045 } 21046 21047 // SetResponseExpires sets the ResponseExpires field's value. 21048 func (s *GetObjectInput) SetResponseExpires(v time.Time) *GetObjectInput { 21049 s.ResponseExpires = &v 21050 return s 21051 } 21052 21053 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 21054 func (s *GetObjectInput) SetSSECustomerAlgorithm(v string) *GetObjectInput { 21055 s.SSECustomerAlgorithm = &v 21056 return s 21057 } 21058 21059 // SetSSECustomerKey sets the SSECustomerKey field's value. 21060 func (s *GetObjectInput) SetSSECustomerKey(v string) *GetObjectInput { 21061 s.SSECustomerKey = &v 21062 return s 21063 } 21064 21065 func (s *GetObjectInput) getSSECustomerKey() (v string) { 21066 if s.SSECustomerKey == nil { 21067 return v 21068 } 21069 return *s.SSECustomerKey 21070 } 21071 21072 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 21073 func (s *GetObjectInput) SetSSECustomerKeyMD5(v string) *GetObjectInput { 21074 s.SSECustomerKeyMD5 = &v 21075 return s 21076 } 21077 21078 // SetVersionId sets the VersionId field's value. 21079 func (s *GetObjectInput) SetVersionId(v string) *GetObjectInput { 21080 s.VersionId = &v 21081 return s 21082 } 21083 21084 func (s *GetObjectInput) getEndpointARN() (arn.Resource, error) { 21085 if s.Bucket == nil { 21086 return nil, fmt.Errorf("member Bucket is nil") 21087 } 21088 return parseEndpointARN(*s.Bucket) 21089 } 21090 21091 func (s *GetObjectInput) hasEndpointARN() bool { 21092 if s.Bucket == nil { 21093 return false 21094 } 21095 return arn.IsARN(*s.Bucket) 21096 } 21097 21098 // updateArnableField updates the value of the input field that 21099 // takes an ARN as an input. This method is useful to backfill 21100 // the parsed resource name from ARN into the input member. 21101 // It returns a pointer to a modified copy of input and an error. 21102 // Note that original input is not modified. 21103 func (s GetObjectInput) updateArnableField(v string) (interface{}, error) { 21104 if s.Bucket == nil { 21105 return nil, fmt.Errorf("member Bucket is nil") 21106 } 21107 s.Bucket = aws.String(v) 21108 return &s, nil 21109 } 21110 21111 type GetObjectLegalHoldInput struct { 21112 _ struct{} `locationName:"GetObjectLegalHoldRequest" type:"structure"` 21113 21114 // The bucket name containing the object whose Legal Hold status you want to 21115 // retrieve. 21116 // 21117 // When using this action with an access point, you must direct requests to 21118 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 21119 // When using this action with an access point through the Amazon Web Services 21120 // SDKs, you provide the access point ARN in place of the bucket name. For more 21121 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 21122 // in the Amazon S3 User Guide. 21123 // 21124 // Bucket is a required field 21125 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 21126 21127 // The account ID of the expected bucket owner. If the bucket is owned by a 21128 // different account, the request will fail with an HTTP 403 (Access Denied) 21129 // error. 21130 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 21131 21132 // The key name for the object whose Legal Hold status you want to retrieve. 21133 // 21134 // Key is a required field 21135 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 21136 21137 // Confirms that the requester knows that they will be charged for the request. 21138 // Bucket owners need not specify this parameter in their requests. For information 21139 // about downloading objects from requester pays buckets, see Downloading Objects 21140 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 21141 // in the Amazon S3 User Guide. 21142 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 21143 21144 // The version ID of the object whose Legal Hold status you want to retrieve. 21145 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 21146 } 21147 21148 // String returns the string representation. 21149 // 21150 // API parameter values that are decorated as "sensitive" in the API will not 21151 // be included in the string output. The member name will be present, but the 21152 // value will be replaced with "sensitive". 21153 func (s GetObjectLegalHoldInput) String() string { 21154 return awsutil.Prettify(s) 21155 } 21156 21157 // GoString returns the string representation. 21158 // 21159 // API parameter values that are decorated as "sensitive" in the API will not 21160 // be included in the string output. The member name will be present, but the 21161 // value will be replaced with "sensitive". 21162 func (s GetObjectLegalHoldInput) GoString() string { 21163 return s.String() 21164 } 21165 21166 // Validate inspects the fields of the type to determine if they are valid. 21167 func (s *GetObjectLegalHoldInput) Validate() error { 21168 invalidParams := request.ErrInvalidParams{Context: "GetObjectLegalHoldInput"} 21169 if s.Bucket == nil { 21170 invalidParams.Add(request.NewErrParamRequired("Bucket")) 21171 } 21172 if s.Bucket != nil && len(*s.Bucket) < 1 { 21173 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 21174 } 21175 if s.Key == nil { 21176 invalidParams.Add(request.NewErrParamRequired("Key")) 21177 } 21178 if s.Key != nil && len(*s.Key) < 1 { 21179 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 21180 } 21181 21182 if invalidParams.Len() > 0 { 21183 return invalidParams 21184 } 21185 return nil 21186 } 21187 21188 // SetBucket sets the Bucket field's value. 21189 func (s *GetObjectLegalHoldInput) SetBucket(v string) *GetObjectLegalHoldInput { 21190 s.Bucket = &v 21191 return s 21192 } 21193 21194 func (s *GetObjectLegalHoldInput) getBucket() (v string) { 21195 if s.Bucket == nil { 21196 return v 21197 } 21198 return *s.Bucket 21199 } 21200 21201 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 21202 func (s *GetObjectLegalHoldInput) SetExpectedBucketOwner(v string) *GetObjectLegalHoldInput { 21203 s.ExpectedBucketOwner = &v 21204 return s 21205 } 21206 21207 // SetKey sets the Key field's value. 21208 func (s *GetObjectLegalHoldInput) SetKey(v string) *GetObjectLegalHoldInput { 21209 s.Key = &v 21210 return s 21211 } 21212 21213 // SetRequestPayer sets the RequestPayer field's value. 21214 func (s *GetObjectLegalHoldInput) SetRequestPayer(v string) *GetObjectLegalHoldInput { 21215 s.RequestPayer = &v 21216 return s 21217 } 21218 21219 // SetVersionId sets the VersionId field's value. 21220 func (s *GetObjectLegalHoldInput) SetVersionId(v string) *GetObjectLegalHoldInput { 21221 s.VersionId = &v 21222 return s 21223 } 21224 21225 func (s *GetObjectLegalHoldInput) getEndpointARN() (arn.Resource, error) { 21226 if s.Bucket == nil { 21227 return nil, fmt.Errorf("member Bucket is nil") 21228 } 21229 return parseEndpointARN(*s.Bucket) 21230 } 21231 21232 func (s *GetObjectLegalHoldInput) hasEndpointARN() bool { 21233 if s.Bucket == nil { 21234 return false 21235 } 21236 return arn.IsARN(*s.Bucket) 21237 } 21238 21239 // updateArnableField updates the value of the input field that 21240 // takes an ARN as an input. This method is useful to backfill 21241 // the parsed resource name from ARN into the input member. 21242 // It returns a pointer to a modified copy of input and an error. 21243 // Note that original input is not modified. 21244 func (s GetObjectLegalHoldInput) updateArnableField(v string) (interface{}, error) { 21245 if s.Bucket == nil { 21246 return nil, fmt.Errorf("member Bucket is nil") 21247 } 21248 s.Bucket = aws.String(v) 21249 return &s, nil 21250 } 21251 21252 type GetObjectLegalHoldOutput struct { 21253 _ struct{} `type:"structure" payload:"LegalHold"` 21254 21255 // The current Legal Hold status for the specified object. 21256 LegalHold *ObjectLockLegalHold `type:"structure"` 21257 } 21258 21259 // String returns the string representation. 21260 // 21261 // API parameter values that are decorated as "sensitive" in the API will not 21262 // be included in the string output. The member name will be present, but the 21263 // value will be replaced with "sensitive". 21264 func (s GetObjectLegalHoldOutput) String() string { 21265 return awsutil.Prettify(s) 21266 } 21267 21268 // GoString returns the string representation. 21269 // 21270 // API parameter values that are decorated as "sensitive" in the API will not 21271 // be included in the string output. The member name will be present, but the 21272 // value will be replaced with "sensitive". 21273 func (s GetObjectLegalHoldOutput) GoString() string { 21274 return s.String() 21275 } 21276 21277 // SetLegalHold sets the LegalHold field's value. 21278 func (s *GetObjectLegalHoldOutput) SetLegalHold(v *ObjectLockLegalHold) *GetObjectLegalHoldOutput { 21279 s.LegalHold = v 21280 return s 21281 } 21282 21283 type GetObjectLockConfigurationInput struct { 21284 _ struct{} `locationName:"GetObjectLockConfigurationRequest" type:"structure"` 21285 21286 // The bucket whose Object Lock configuration you want to retrieve. 21287 // 21288 // When using this action with an access point, you must direct requests to 21289 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 21290 // When using this action with an access point through the Amazon Web Services 21291 // SDKs, you provide the access point ARN in place of the bucket name. For more 21292 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 21293 // in the Amazon S3 User Guide. 21294 // 21295 // Bucket is a required field 21296 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 21297 21298 // The account ID of the expected bucket owner. If the bucket is owned by a 21299 // different account, the request will fail with an HTTP 403 (Access Denied) 21300 // error. 21301 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 21302 } 21303 21304 // String returns the string representation. 21305 // 21306 // API parameter values that are decorated as "sensitive" in the API will not 21307 // be included in the string output. The member name will be present, but the 21308 // value will be replaced with "sensitive". 21309 func (s GetObjectLockConfigurationInput) String() string { 21310 return awsutil.Prettify(s) 21311 } 21312 21313 // GoString returns the string representation. 21314 // 21315 // API parameter values that are decorated as "sensitive" in the API will not 21316 // be included in the string output. The member name will be present, but the 21317 // value will be replaced with "sensitive". 21318 func (s GetObjectLockConfigurationInput) GoString() string { 21319 return s.String() 21320 } 21321 21322 // Validate inspects the fields of the type to determine if they are valid. 21323 func (s *GetObjectLockConfigurationInput) Validate() error { 21324 invalidParams := request.ErrInvalidParams{Context: "GetObjectLockConfigurationInput"} 21325 if s.Bucket == nil { 21326 invalidParams.Add(request.NewErrParamRequired("Bucket")) 21327 } 21328 if s.Bucket != nil && len(*s.Bucket) < 1 { 21329 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 21330 } 21331 21332 if invalidParams.Len() > 0 { 21333 return invalidParams 21334 } 21335 return nil 21336 } 21337 21338 // SetBucket sets the Bucket field's value. 21339 func (s *GetObjectLockConfigurationInput) SetBucket(v string) *GetObjectLockConfigurationInput { 21340 s.Bucket = &v 21341 return s 21342 } 21343 21344 func (s *GetObjectLockConfigurationInput) getBucket() (v string) { 21345 if s.Bucket == nil { 21346 return v 21347 } 21348 return *s.Bucket 21349 } 21350 21351 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 21352 func (s *GetObjectLockConfigurationInput) SetExpectedBucketOwner(v string) *GetObjectLockConfigurationInput { 21353 s.ExpectedBucketOwner = &v 21354 return s 21355 } 21356 21357 func (s *GetObjectLockConfigurationInput) getEndpointARN() (arn.Resource, error) { 21358 if s.Bucket == nil { 21359 return nil, fmt.Errorf("member Bucket is nil") 21360 } 21361 return parseEndpointARN(*s.Bucket) 21362 } 21363 21364 func (s *GetObjectLockConfigurationInput) hasEndpointARN() bool { 21365 if s.Bucket == nil { 21366 return false 21367 } 21368 return arn.IsARN(*s.Bucket) 21369 } 21370 21371 // updateArnableField updates the value of the input field that 21372 // takes an ARN as an input. This method is useful to backfill 21373 // the parsed resource name from ARN into the input member. 21374 // It returns a pointer to a modified copy of input and an error. 21375 // Note that original input is not modified. 21376 func (s GetObjectLockConfigurationInput) updateArnableField(v string) (interface{}, error) { 21377 if s.Bucket == nil { 21378 return nil, fmt.Errorf("member Bucket is nil") 21379 } 21380 s.Bucket = aws.String(v) 21381 return &s, nil 21382 } 21383 21384 type GetObjectLockConfigurationOutput struct { 21385 _ struct{} `type:"structure" payload:"ObjectLockConfiguration"` 21386 21387 // The specified bucket's Object Lock configuration. 21388 ObjectLockConfiguration *ObjectLockConfiguration `type:"structure"` 21389 } 21390 21391 // String returns the string representation. 21392 // 21393 // API parameter values that are decorated as "sensitive" in the API will not 21394 // be included in the string output. The member name will be present, but the 21395 // value will be replaced with "sensitive". 21396 func (s GetObjectLockConfigurationOutput) String() string { 21397 return awsutil.Prettify(s) 21398 } 21399 21400 // GoString returns the string representation. 21401 // 21402 // API parameter values that are decorated as "sensitive" in the API will not 21403 // be included in the string output. The member name will be present, but the 21404 // value will be replaced with "sensitive". 21405 func (s GetObjectLockConfigurationOutput) GoString() string { 21406 return s.String() 21407 } 21408 21409 // SetObjectLockConfiguration sets the ObjectLockConfiguration field's value. 21410 func (s *GetObjectLockConfigurationOutput) SetObjectLockConfiguration(v *ObjectLockConfiguration) *GetObjectLockConfigurationOutput { 21411 s.ObjectLockConfiguration = v 21412 return s 21413 } 21414 21415 type GetObjectOutput struct { 21416 _ struct{} `type:"structure" payload:"Body"` 21417 21418 // Indicates that a range of bytes was specified. 21419 AcceptRanges *string `location:"header" locationName:"accept-ranges" type:"string"` 21420 21421 // Object data. 21422 Body io.ReadCloser `type:"blob"` 21423 21424 // Indicates whether the object uses an S3 Bucket Key for server-side encryption 21425 // with Amazon Web Services KMS (SSE-KMS). 21426 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 21427 21428 // Specifies caching behavior along the request/reply chain. 21429 CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` 21430 21431 // Specifies presentational information for the object. 21432 ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"` 21433 21434 // Specifies what content encodings have been applied to the object and thus 21435 // what decoding mechanisms must be applied to obtain the media-type referenced 21436 // by the Content-Type header field. 21437 ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` 21438 21439 // The language the content is in. 21440 ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` 21441 21442 // Size of the body in bytes. 21443 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` 21444 21445 // The portion of the object returned in the response. 21446 ContentRange *string `location:"header" locationName:"Content-Range" type:"string"` 21447 21448 // A standard MIME type describing the format of the object data. 21449 ContentType *string `location:"header" locationName:"Content-Type" type:"string"` 21450 21451 // Specifies whether the object retrieved was (true) or was not (false) a Delete 21452 // Marker. If false, this response header does not appear in the response. 21453 DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` 21454 21455 // An ETag is an opaque identifier assigned by a web server to a specific version 21456 // of a resource found at a URL. 21457 ETag *string `location:"header" locationName:"ETag" type:"string"` 21458 21459 // If the object expiration is configured (see PUT Bucket lifecycle), the response 21460 // includes this header. It includes the expiry-date and rule-id key-value pairs 21461 // providing object expiration information. The value of the rule-id is URL 21462 // encoded. 21463 Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` 21464 21465 // The date and time at which the object is no longer cacheable. 21466 Expires *string `location:"header" locationName:"Expires" type:"string"` 21467 21468 // Creation date of the object. 21469 LastModified *time.Time `location:"header" locationName:"Last-Modified" type:"timestamp"` 21470 21471 // A map of metadata to store with the object in S3. 21472 // 21473 // By default unmarshaled keys are written as a map keys in following canonicalized format: 21474 // the first letter and any letter following a hyphen will be capitalized, and the rest as lowercase. 21475 // Set `aws.Config.LowerCaseHeaderMaps` to `true` to write unmarshaled keys to the map as lowercase. 21476 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` 21477 21478 // This is set to the number of metadata entries not returned in x-amz-meta 21479 // headers. This can happen if you create metadata using an API like SOAP that 21480 // supports more flexible metadata than the REST API. For example, using SOAP, 21481 // you can create metadata whose values are not legal HTTP headers. 21482 MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"` 21483 21484 // Indicates whether this object has an active legal hold. This field is only 21485 // returned if you have permission to view an object's legal hold status. 21486 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 21487 21488 // The Object Lock mode currently in place for this object. 21489 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 21490 21491 // The date and time when this object's Object Lock will expire. 21492 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 21493 21494 // The count of parts this object has. 21495 PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"` 21496 21497 // Amazon S3 can return this if your request involves a bucket that is either 21498 // a source or destination in a replication rule. 21499 ReplicationStatus *string `location:"header" locationName:"x-amz-replication-status" type:"string" enum:"ReplicationStatus"` 21500 21501 // If present, indicates that the requester was successfully charged for the 21502 // request. 21503 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 21504 21505 // Provides information about object restoration action and expiration time 21506 // of the restored object copy. 21507 Restore *string `location:"header" locationName:"x-amz-restore" type:"string"` 21508 21509 // If server-side encryption with a customer-provided encryption key was requested, 21510 // the response will include this header confirming the encryption algorithm 21511 // used. 21512 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 21513 21514 // If server-side encryption with a customer-provided encryption key was requested, 21515 // the response will include this header to provide round-trip message integrity 21516 // verification of the customer-provided encryption key. 21517 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 21518 21519 // If present, specifies the ID of the Amazon Web Services Key Management Service 21520 // (Amazon Web Services KMS) symmetric customer managed key that was used for 21521 // the object. 21522 // 21523 // SSEKMSKeyId is a sensitive parameter and its value will be 21524 // replaced with "sensitive" in string returned by GetObjectOutput's 21525 // String and GoString methods. 21526 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 21527 21528 // The server-side encryption algorithm used when storing this object in Amazon 21529 // S3 (for example, AES256, aws:kms). 21530 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 21531 21532 // Provides storage class information of the object. Amazon S3 returns this 21533 // header for all objects except for S3 Standard storage class objects. 21534 StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` 21535 21536 // The number of tags, if any, on the object. 21537 TagCount *int64 `location:"header" locationName:"x-amz-tagging-count" type:"integer"` 21538 21539 // Version of the object. 21540 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 21541 21542 // If the bucket is configured as a website, redirects requests for this object 21543 // to another object in the same bucket or to an external URL. Amazon S3 stores 21544 // the value of this header in the object metadata. 21545 WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` 21546 } 21547 21548 // String returns the string representation. 21549 // 21550 // API parameter values that are decorated as "sensitive" in the API will not 21551 // be included in the string output. The member name will be present, but the 21552 // value will be replaced with "sensitive". 21553 func (s GetObjectOutput) String() string { 21554 return awsutil.Prettify(s) 21555 } 21556 21557 // GoString returns the string representation. 21558 // 21559 // API parameter values that are decorated as "sensitive" in the API will not 21560 // be included in the string output. The member name will be present, but the 21561 // value will be replaced with "sensitive". 21562 func (s GetObjectOutput) GoString() string { 21563 return s.String() 21564 } 21565 21566 // SetAcceptRanges sets the AcceptRanges field's value. 21567 func (s *GetObjectOutput) SetAcceptRanges(v string) *GetObjectOutput { 21568 s.AcceptRanges = &v 21569 return s 21570 } 21571 21572 // SetBody sets the Body field's value. 21573 func (s *GetObjectOutput) SetBody(v io.ReadCloser) *GetObjectOutput { 21574 s.Body = v 21575 return s 21576 } 21577 21578 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 21579 func (s *GetObjectOutput) SetBucketKeyEnabled(v bool) *GetObjectOutput { 21580 s.BucketKeyEnabled = &v 21581 return s 21582 } 21583 21584 // SetCacheControl sets the CacheControl field's value. 21585 func (s *GetObjectOutput) SetCacheControl(v string) *GetObjectOutput { 21586 s.CacheControl = &v 21587 return s 21588 } 21589 21590 // SetContentDisposition sets the ContentDisposition field's value. 21591 func (s *GetObjectOutput) SetContentDisposition(v string) *GetObjectOutput { 21592 s.ContentDisposition = &v 21593 return s 21594 } 21595 21596 // SetContentEncoding sets the ContentEncoding field's value. 21597 func (s *GetObjectOutput) SetContentEncoding(v string) *GetObjectOutput { 21598 s.ContentEncoding = &v 21599 return s 21600 } 21601 21602 // SetContentLanguage sets the ContentLanguage field's value. 21603 func (s *GetObjectOutput) SetContentLanguage(v string) *GetObjectOutput { 21604 s.ContentLanguage = &v 21605 return s 21606 } 21607 21608 // SetContentLength sets the ContentLength field's value. 21609 func (s *GetObjectOutput) SetContentLength(v int64) *GetObjectOutput { 21610 s.ContentLength = &v 21611 return s 21612 } 21613 21614 // SetContentRange sets the ContentRange field's value. 21615 func (s *GetObjectOutput) SetContentRange(v string) *GetObjectOutput { 21616 s.ContentRange = &v 21617 return s 21618 } 21619 21620 // SetContentType sets the ContentType field's value. 21621 func (s *GetObjectOutput) SetContentType(v string) *GetObjectOutput { 21622 s.ContentType = &v 21623 return s 21624 } 21625 21626 // SetDeleteMarker sets the DeleteMarker field's value. 21627 func (s *GetObjectOutput) SetDeleteMarker(v bool) *GetObjectOutput { 21628 s.DeleteMarker = &v 21629 return s 21630 } 21631 21632 // SetETag sets the ETag field's value. 21633 func (s *GetObjectOutput) SetETag(v string) *GetObjectOutput { 21634 s.ETag = &v 21635 return s 21636 } 21637 21638 // SetExpiration sets the Expiration field's value. 21639 func (s *GetObjectOutput) SetExpiration(v string) *GetObjectOutput { 21640 s.Expiration = &v 21641 return s 21642 } 21643 21644 // SetExpires sets the Expires field's value. 21645 func (s *GetObjectOutput) SetExpires(v string) *GetObjectOutput { 21646 s.Expires = &v 21647 return s 21648 } 21649 21650 // SetLastModified sets the LastModified field's value. 21651 func (s *GetObjectOutput) SetLastModified(v time.Time) *GetObjectOutput { 21652 s.LastModified = &v 21653 return s 21654 } 21655 21656 // SetMetadata sets the Metadata field's value. 21657 func (s *GetObjectOutput) SetMetadata(v map[string]*string) *GetObjectOutput { 21658 s.Metadata = v 21659 return s 21660 } 21661 21662 // SetMissingMeta sets the MissingMeta field's value. 21663 func (s *GetObjectOutput) SetMissingMeta(v int64) *GetObjectOutput { 21664 s.MissingMeta = &v 21665 return s 21666 } 21667 21668 // SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value. 21669 func (s *GetObjectOutput) SetObjectLockLegalHoldStatus(v string) *GetObjectOutput { 21670 s.ObjectLockLegalHoldStatus = &v 21671 return s 21672 } 21673 21674 // SetObjectLockMode sets the ObjectLockMode field's value. 21675 func (s *GetObjectOutput) SetObjectLockMode(v string) *GetObjectOutput { 21676 s.ObjectLockMode = &v 21677 return s 21678 } 21679 21680 // SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value. 21681 func (s *GetObjectOutput) SetObjectLockRetainUntilDate(v time.Time) *GetObjectOutput { 21682 s.ObjectLockRetainUntilDate = &v 21683 return s 21684 } 21685 21686 // SetPartsCount sets the PartsCount field's value. 21687 func (s *GetObjectOutput) SetPartsCount(v int64) *GetObjectOutput { 21688 s.PartsCount = &v 21689 return s 21690 } 21691 21692 // SetReplicationStatus sets the ReplicationStatus field's value. 21693 func (s *GetObjectOutput) SetReplicationStatus(v string) *GetObjectOutput { 21694 s.ReplicationStatus = &v 21695 return s 21696 } 21697 21698 // SetRequestCharged sets the RequestCharged field's value. 21699 func (s *GetObjectOutput) SetRequestCharged(v string) *GetObjectOutput { 21700 s.RequestCharged = &v 21701 return s 21702 } 21703 21704 // SetRestore sets the Restore field's value. 21705 func (s *GetObjectOutput) SetRestore(v string) *GetObjectOutput { 21706 s.Restore = &v 21707 return s 21708 } 21709 21710 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 21711 func (s *GetObjectOutput) SetSSECustomerAlgorithm(v string) *GetObjectOutput { 21712 s.SSECustomerAlgorithm = &v 21713 return s 21714 } 21715 21716 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 21717 func (s *GetObjectOutput) SetSSECustomerKeyMD5(v string) *GetObjectOutput { 21718 s.SSECustomerKeyMD5 = &v 21719 return s 21720 } 21721 21722 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 21723 func (s *GetObjectOutput) SetSSEKMSKeyId(v string) *GetObjectOutput { 21724 s.SSEKMSKeyId = &v 21725 return s 21726 } 21727 21728 // SetServerSideEncryption sets the ServerSideEncryption field's value. 21729 func (s *GetObjectOutput) SetServerSideEncryption(v string) *GetObjectOutput { 21730 s.ServerSideEncryption = &v 21731 return s 21732 } 21733 21734 // SetStorageClass sets the StorageClass field's value. 21735 func (s *GetObjectOutput) SetStorageClass(v string) *GetObjectOutput { 21736 s.StorageClass = &v 21737 return s 21738 } 21739 21740 // SetTagCount sets the TagCount field's value. 21741 func (s *GetObjectOutput) SetTagCount(v int64) *GetObjectOutput { 21742 s.TagCount = &v 21743 return s 21744 } 21745 21746 // SetVersionId sets the VersionId field's value. 21747 func (s *GetObjectOutput) SetVersionId(v string) *GetObjectOutput { 21748 s.VersionId = &v 21749 return s 21750 } 21751 21752 // SetWebsiteRedirectLocation sets the WebsiteRedirectLocation field's value. 21753 func (s *GetObjectOutput) SetWebsiteRedirectLocation(v string) *GetObjectOutput { 21754 s.WebsiteRedirectLocation = &v 21755 return s 21756 } 21757 21758 type GetObjectRetentionInput struct { 21759 _ struct{} `locationName:"GetObjectRetentionRequest" type:"structure"` 21760 21761 // The bucket name containing the object whose retention settings you want to 21762 // retrieve. 21763 // 21764 // When using this action with an access point, you must direct requests to 21765 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 21766 // When using this action with an access point through the Amazon Web Services 21767 // SDKs, you provide the access point ARN in place of the bucket name. For more 21768 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 21769 // in the Amazon S3 User Guide. 21770 // 21771 // Bucket is a required field 21772 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 21773 21774 // The account ID of the expected bucket owner. If the bucket is owned by a 21775 // different account, the request will fail with an HTTP 403 (Access Denied) 21776 // error. 21777 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 21778 21779 // The key name for the object whose retention settings you want to retrieve. 21780 // 21781 // Key is a required field 21782 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 21783 21784 // Confirms that the requester knows that they will be charged for the request. 21785 // Bucket owners need not specify this parameter in their requests. For information 21786 // about downloading objects from requester pays buckets, see Downloading Objects 21787 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 21788 // in the Amazon S3 User Guide. 21789 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 21790 21791 // The version ID for the object whose retention settings you want to retrieve. 21792 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 21793 } 21794 21795 // String returns the string representation. 21796 // 21797 // API parameter values that are decorated as "sensitive" in the API will not 21798 // be included in the string output. The member name will be present, but the 21799 // value will be replaced with "sensitive". 21800 func (s GetObjectRetentionInput) String() string { 21801 return awsutil.Prettify(s) 21802 } 21803 21804 // GoString returns the string representation. 21805 // 21806 // API parameter values that are decorated as "sensitive" in the API will not 21807 // be included in the string output. The member name will be present, but the 21808 // value will be replaced with "sensitive". 21809 func (s GetObjectRetentionInput) GoString() string { 21810 return s.String() 21811 } 21812 21813 // Validate inspects the fields of the type to determine if they are valid. 21814 func (s *GetObjectRetentionInput) Validate() error { 21815 invalidParams := request.ErrInvalidParams{Context: "GetObjectRetentionInput"} 21816 if s.Bucket == nil { 21817 invalidParams.Add(request.NewErrParamRequired("Bucket")) 21818 } 21819 if s.Bucket != nil && len(*s.Bucket) < 1 { 21820 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 21821 } 21822 if s.Key == nil { 21823 invalidParams.Add(request.NewErrParamRequired("Key")) 21824 } 21825 if s.Key != nil && len(*s.Key) < 1 { 21826 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 21827 } 21828 21829 if invalidParams.Len() > 0 { 21830 return invalidParams 21831 } 21832 return nil 21833 } 21834 21835 // SetBucket sets the Bucket field's value. 21836 func (s *GetObjectRetentionInput) SetBucket(v string) *GetObjectRetentionInput { 21837 s.Bucket = &v 21838 return s 21839 } 21840 21841 func (s *GetObjectRetentionInput) getBucket() (v string) { 21842 if s.Bucket == nil { 21843 return v 21844 } 21845 return *s.Bucket 21846 } 21847 21848 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 21849 func (s *GetObjectRetentionInput) SetExpectedBucketOwner(v string) *GetObjectRetentionInput { 21850 s.ExpectedBucketOwner = &v 21851 return s 21852 } 21853 21854 // SetKey sets the Key field's value. 21855 func (s *GetObjectRetentionInput) SetKey(v string) *GetObjectRetentionInput { 21856 s.Key = &v 21857 return s 21858 } 21859 21860 // SetRequestPayer sets the RequestPayer field's value. 21861 func (s *GetObjectRetentionInput) SetRequestPayer(v string) *GetObjectRetentionInput { 21862 s.RequestPayer = &v 21863 return s 21864 } 21865 21866 // SetVersionId sets the VersionId field's value. 21867 func (s *GetObjectRetentionInput) SetVersionId(v string) *GetObjectRetentionInput { 21868 s.VersionId = &v 21869 return s 21870 } 21871 21872 func (s *GetObjectRetentionInput) getEndpointARN() (arn.Resource, error) { 21873 if s.Bucket == nil { 21874 return nil, fmt.Errorf("member Bucket is nil") 21875 } 21876 return parseEndpointARN(*s.Bucket) 21877 } 21878 21879 func (s *GetObjectRetentionInput) hasEndpointARN() bool { 21880 if s.Bucket == nil { 21881 return false 21882 } 21883 return arn.IsARN(*s.Bucket) 21884 } 21885 21886 // updateArnableField updates the value of the input field that 21887 // takes an ARN as an input. This method is useful to backfill 21888 // the parsed resource name from ARN into the input member. 21889 // It returns a pointer to a modified copy of input and an error. 21890 // Note that original input is not modified. 21891 func (s GetObjectRetentionInput) updateArnableField(v string) (interface{}, error) { 21892 if s.Bucket == nil { 21893 return nil, fmt.Errorf("member Bucket is nil") 21894 } 21895 s.Bucket = aws.String(v) 21896 return &s, nil 21897 } 21898 21899 type GetObjectRetentionOutput struct { 21900 _ struct{} `type:"structure" payload:"Retention"` 21901 21902 // The container element for an object's retention settings. 21903 Retention *ObjectLockRetention `type:"structure"` 21904 } 21905 21906 // String returns the string representation. 21907 // 21908 // API parameter values that are decorated as "sensitive" in the API will not 21909 // be included in the string output. The member name will be present, but the 21910 // value will be replaced with "sensitive". 21911 func (s GetObjectRetentionOutput) String() string { 21912 return awsutil.Prettify(s) 21913 } 21914 21915 // GoString returns the string representation. 21916 // 21917 // API parameter values that are decorated as "sensitive" in the API will not 21918 // be included in the string output. The member name will be present, but the 21919 // value will be replaced with "sensitive". 21920 func (s GetObjectRetentionOutput) GoString() string { 21921 return s.String() 21922 } 21923 21924 // SetRetention sets the Retention field's value. 21925 func (s *GetObjectRetentionOutput) SetRetention(v *ObjectLockRetention) *GetObjectRetentionOutput { 21926 s.Retention = v 21927 return s 21928 } 21929 21930 type GetObjectTaggingInput struct { 21931 _ struct{} `locationName:"GetObjectTaggingRequest" type:"structure"` 21932 21933 // The bucket name containing the object for which to get the tagging information. 21934 // 21935 // When using this action with an access point, you must direct requests to 21936 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 21937 // When using this action with an access point through the Amazon Web Services 21938 // SDKs, you provide the access point ARN in place of the bucket name. For more 21939 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 21940 // in the Amazon S3 User Guide. 21941 // 21942 // When using this action with Amazon S3 on Outposts, you must direct requests 21943 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 21944 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 21945 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 21946 // you provide the Outposts bucket ARN in place of the bucket name. For more 21947 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 21948 // in the Amazon S3 User Guide. 21949 // 21950 // Bucket is a required field 21951 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 21952 21953 // The account ID of the expected bucket owner. If the bucket is owned by a 21954 // different account, the request will fail with an HTTP 403 (Access Denied) 21955 // error. 21956 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 21957 21958 // Object key for which to get the tagging information. 21959 // 21960 // Key is a required field 21961 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 21962 21963 // Confirms that the requester knows that they will be charged for the request. 21964 // Bucket owners need not specify this parameter in their requests. For information 21965 // about downloading objects from requester pays buckets, see Downloading Objects 21966 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 21967 // in the Amazon S3 User Guide. 21968 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 21969 21970 // The versionId of the object for which to get the tagging information. 21971 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 21972 } 21973 21974 // String returns the string representation. 21975 // 21976 // API parameter values that are decorated as "sensitive" in the API will not 21977 // be included in the string output. The member name will be present, but the 21978 // value will be replaced with "sensitive". 21979 func (s GetObjectTaggingInput) String() string { 21980 return awsutil.Prettify(s) 21981 } 21982 21983 // GoString returns the string representation. 21984 // 21985 // API parameter values that are decorated as "sensitive" in the API will not 21986 // be included in the string output. The member name will be present, but the 21987 // value will be replaced with "sensitive". 21988 func (s GetObjectTaggingInput) GoString() string { 21989 return s.String() 21990 } 21991 21992 // Validate inspects the fields of the type to determine if they are valid. 21993 func (s *GetObjectTaggingInput) Validate() error { 21994 invalidParams := request.ErrInvalidParams{Context: "GetObjectTaggingInput"} 21995 if s.Bucket == nil { 21996 invalidParams.Add(request.NewErrParamRequired("Bucket")) 21997 } 21998 if s.Bucket != nil && len(*s.Bucket) < 1 { 21999 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 22000 } 22001 if s.Key == nil { 22002 invalidParams.Add(request.NewErrParamRequired("Key")) 22003 } 22004 if s.Key != nil && len(*s.Key) < 1 { 22005 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 22006 } 22007 22008 if invalidParams.Len() > 0 { 22009 return invalidParams 22010 } 22011 return nil 22012 } 22013 22014 // SetBucket sets the Bucket field's value. 22015 func (s *GetObjectTaggingInput) SetBucket(v string) *GetObjectTaggingInput { 22016 s.Bucket = &v 22017 return s 22018 } 22019 22020 func (s *GetObjectTaggingInput) getBucket() (v string) { 22021 if s.Bucket == nil { 22022 return v 22023 } 22024 return *s.Bucket 22025 } 22026 22027 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 22028 func (s *GetObjectTaggingInput) SetExpectedBucketOwner(v string) *GetObjectTaggingInput { 22029 s.ExpectedBucketOwner = &v 22030 return s 22031 } 22032 22033 // SetKey sets the Key field's value. 22034 func (s *GetObjectTaggingInput) SetKey(v string) *GetObjectTaggingInput { 22035 s.Key = &v 22036 return s 22037 } 22038 22039 // SetRequestPayer sets the RequestPayer field's value. 22040 func (s *GetObjectTaggingInput) SetRequestPayer(v string) *GetObjectTaggingInput { 22041 s.RequestPayer = &v 22042 return s 22043 } 22044 22045 // SetVersionId sets the VersionId field's value. 22046 func (s *GetObjectTaggingInput) SetVersionId(v string) *GetObjectTaggingInput { 22047 s.VersionId = &v 22048 return s 22049 } 22050 22051 func (s *GetObjectTaggingInput) getEndpointARN() (arn.Resource, error) { 22052 if s.Bucket == nil { 22053 return nil, fmt.Errorf("member Bucket is nil") 22054 } 22055 return parseEndpointARN(*s.Bucket) 22056 } 22057 22058 func (s *GetObjectTaggingInput) hasEndpointARN() bool { 22059 if s.Bucket == nil { 22060 return false 22061 } 22062 return arn.IsARN(*s.Bucket) 22063 } 22064 22065 // updateArnableField updates the value of the input field that 22066 // takes an ARN as an input. This method is useful to backfill 22067 // the parsed resource name from ARN into the input member. 22068 // It returns a pointer to a modified copy of input and an error. 22069 // Note that original input is not modified. 22070 func (s GetObjectTaggingInput) updateArnableField(v string) (interface{}, error) { 22071 if s.Bucket == nil { 22072 return nil, fmt.Errorf("member Bucket is nil") 22073 } 22074 s.Bucket = aws.String(v) 22075 return &s, nil 22076 } 22077 22078 type GetObjectTaggingOutput struct { 22079 _ struct{} `type:"structure"` 22080 22081 // Contains the tag set. 22082 // 22083 // TagSet is a required field 22084 TagSet []*Tag `locationNameList:"Tag" type:"list" required:"true"` 22085 22086 // The versionId of the object for which you got the tagging information. 22087 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 22088 } 22089 22090 // String returns the string representation. 22091 // 22092 // API parameter values that are decorated as "sensitive" in the API will not 22093 // be included in the string output. The member name will be present, but the 22094 // value will be replaced with "sensitive". 22095 func (s GetObjectTaggingOutput) String() string { 22096 return awsutil.Prettify(s) 22097 } 22098 22099 // GoString returns the string representation. 22100 // 22101 // API parameter values that are decorated as "sensitive" in the API will not 22102 // be included in the string output. The member name will be present, but the 22103 // value will be replaced with "sensitive". 22104 func (s GetObjectTaggingOutput) GoString() string { 22105 return s.String() 22106 } 22107 22108 // SetTagSet sets the TagSet field's value. 22109 func (s *GetObjectTaggingOutput) SetTagSet(v []*Tag) *GetObjectTaggingOutput { 22110 s.TagSet = v 22111 return s 22112 } 22113 22114 // SetVersionId sets the VersionId field's value. 22115 func (s *GetObjectTaggingOutput) SetVersionId(v string) *GetObjectTaggingOutput { 22116 s.VersionId = &v 22117 return s 22118 } 22119 22120 type GetObjectTorrentInput struct { 22121 _ struct{} `locationName:"GetObjectTorrentRequest" type:"structure"` 22122 22123 // The name of the bucket containing the object for which to get the torrent 22124 // files. 22125 // 22126 // Bucket is a required field 22127 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 22128 22129 // The account ID of the expected bucket owner. If the bucket is owned by a 22130 // different account, the request will fail with an HTTP 403 (Access Denied) 22131 // error. 22132 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 22133 22134 // The object key for which to get the information. 22135 // 22136 // Key is a required field 22137 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 22138 22139 // Confirms that the requester knows that they will be charged for the request. 22140 // Bucket owners need not specify this parameter in their requests. For information 22141 // about downloading objects from requester pays buckets, see Downloading Objects 22142 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 22143 // in the Amazon S3 User Guide. 22144 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 22145 } 22146 22147 // String returns the string representation. 22148 // 22149 // API parameter values that are decorated as "sensitive" in the API will not 22150 // be included in the string output. The member name will be present, but the 22151 // value will be replaced with "sensitive". 22152 func (s GetObjectTorrentInput) String() string { 22153 return awsutil.Prettify(s) 22154 } 22155 22156 // GoString returns the string representation. 22157 // 22158 // API parameter values that are decorated as "sensitive" in the API will not 22159 // be included in the string output. The member name will be present, but the 22160 // value will be replaced with "sensitive". 22161 func (s GetObjectTorrentInput) GoString() string { 22162 return s.String() 22163 } 22164 22165 // Validate inspects the fields of the type to determine if they are valid. 22166 func (s *GetObjectTorrentInput) Validate() error { 22167 invalidParams := request.ErrInvalidParams{Context: "GetObjectTorrentInput"} 22168 if s.Bucket == nil { 22169 invalidParams.Add(request.NewErrParamRequired("Bucket")) 22170 } 22171 if s.Bucket != nil && len(*s.Bucket) < 1 { 22172 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 22173 } 22174 if s.Key == nil { 22175 invalidParams.Add(request.NewErrParamRequired("Key")) 22176 } 22177 if s.Key != nil && len(*s.Key) < 1 { 22178 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 22179 } 22180 22181 if invalidParams.Len() > 0 { 22182 return invalidParams 22183 } 22184 return nil 22185 } 22186 22187 // SetBucket sets the Bucket field's value. 22188 func (s *GetObjectTorrentInput) SetBucket(v string) *GetObjectTorrentInput { 22189 s.Bucket = &v 22190 return s 22191 } 22192 22193 func (s *GetObjectTorrentInput) getBucket() (v string) { 22194 if s.Bucket == nil { 22195 return v 22196 } 22197 return *s.Bucket 22198 } 22199 22200 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 22201 func (s *GetObjectTorrentInput) SetExpectedBucketOwner(v string) *GetObjectTorrentInput { 22202 s.ExpectedBucketOwner = &v 22203 return s 22204 } 22205 22206 // SetKey sets the Key field's value. 22207 func (s *GetObjectTorrentInput) SetKey(v string) *GetObjectTorrentInput { 22208 s.Key = &v 22209 return s 22210 } 22211 22212 // SetRequestPayer sets the RequestPayer field's value. 22213 func (s *GetObjectTorrentInput) SetRequestPayer(v string) *GetObjectTorrentInput { 22214 s.RequestPayer = &v 22215 return s 22216 } 22217 22218 func (s *GetObjectTorrentInput) getEndpointARN() (arn.Resource, error) { 22219 if s.Bucket == nil { 22220 return nil, fmt.Errorf("member Bucket is nil") 22221 } 22222 return parseEndpointARN(*s.Bucket) 22223 } 22224 22225 func (s *GetObjectTorrentInput) hasEndpointARN() bool { 22226 if s.Bucket == nil { 22227 return false 22228 } 22229 return arn.IsARN(*s.Bucket) 22230 } 22231 22232 // updateArnableField updates the value of the input field that 22233 // takes an ARN as an input. This method is useful to backfill 22234 // the parsed resource name from ARN into the input member. 22235 // It returns a pointer to a modified copy of input and an error. 22236 // Note that original input is not modified. 22237 func (s GetObjectTorrentInput) updateArnableField(v string) (interface{}, error) { 22238 if s.Bucket == nil { 22239 return nil, fmt.Errorf("member Bucket is nil") 22240 } 22241 s.Bucket = aws.String(v) 22242 return &s, nil 22243 } 22244 22245 type GetObjectTorrentOutput struct { 22246 _ struct{} `type:"structure" payload:"Body"` 22247 22248 // A Bencoded dictionary as defined by the BitTorrent specification 22249 Body io.ReadCloser `type:"blob"` 22250 22251 // If present, indicates that the requester was successfully charged for the 22252 // request. 22253 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 22254 } 22255 22256 // String returns the string representation. 22257 // 22258 // API parameter values that are decorated as "sensitive" in the API will not 22259 // be included in the string output. The member name will be present, but the 22260 // value will be replaced with "sensitive". 22261 func (s GetObjectTorrentOutput) String() string { 22262 return awsutil.Prettify(s) 22263 } 22264 22265 // GoString returns the string representation. 22266 // 22267 // API parameter values that are decorated as "sensitive" in the API will not 22268 // be included in the string output. The member name will be present, but the 22269 // value will be replaced with "sensitive". 22270 func (s GetObjectTorrentOutput) GoString() string { 22271 return s.String() 22272 } 22273 22274 // SetBody sets the Body field's value. 22275 func (s *GetObjectTorrentOutput) SetBody(v io.ReadCloser) *GetObjectTorrentOutput { 22276 s.Body = v 22277 return s 22278 } 22279 22280 // SetRequestCharged sets the RequestCharged field's value. 22281 func (s *GetObjectTorrentOutput) SetRequestCharged(v string) *GetObjectTorrentOutput { 22282 s.RequestCharged = &v 22283 return s 22284 } 22285 22286 type GetPublicAccessBlockInput struct { 22287 _ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"` 22288 22289 // The name of the Amazon S3 bucket whose PublicAccessBlock configuration you 22290 // want to retrieve. 22291 // 22292 // Bucket is a required field 22293 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 22294 22295 // The account ID of the expected bucket owner. If the bucket is owned by a 22296 // different account, the request will fail with an HTTP 403 (Access Denied) 22297 // error. 22298 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 22299 } 22300 22301 // String returns the string representation. 22302 // 22303 // API parameter values that are decorated as "sensitive" in the API will not 22304 // be included in the string output. The member name will be present, but the 22305 // value will be replaced with "sensitive". 22306 func (s GetPublicAccessBlockInput) String() string { 22307 return awsutil.Prettify(s) 22308 } 22309 22310 // GoString returns the string representation. 22311 // 22312 // API parameter values that are decorated as "sensitive" in the API will not 22313 // be included in the string output. The member name will be present, but the 22314 // value will be replaced with "sensitive". 22315 func (s GetPublicAccessBlockInput) GoString() string { 22316 return s.String() 22317 } 22318 22319 // Validate inspects the fields of the type to determine if they are valid. 22320 func (s *GetPublicAccessBlockInput) Validate() error { 22321 invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"} 22322 if s.Bucket == nil { 22323 invalidParams.Add(request.NewErrParamRequired("Bucket")) 22324 } 22325 if s.Bucket != nil && len(*s.Bucket) < 1 { 22326 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 22327 } 22328 22329 if invalidParams.Len() > 0 { 22330 return invalidParams 22331 } 22332 return nil 22333 } 22334 22335 // SetBucket sets the Bucket field's value. 22336 func (s *GetPublicAccessBlockInput) SetBucket(v string) *GetPublicAccessBlockInput { 22337 s.Bucket = &v 22338 return s 22339 } 22340 22341 func (s *GetPublicAccessBlockInput) getBucket() (v string) { 22342 if s.Bucket == nil { 22343 return v 22344 } 22345 return *s.Bucket 22346 } 22347 22348 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 22349 func (s *GetPublicAccessBlockInput) SetExpectedBucketOwner(v string) *GetPublicAccessBlockInput { 22350 s.ExpectedBucketOwner = &v 22351 return s 22352 } 22353 22354 func (s *GetPublicAccessBlockInput) getEndpointARN() (arn.Resource, error) { 22355 if s.Bucket == nil { 22356 return nil, fmt.Errorf("member Bucket is nil") 22357 } 22358 return parseEndpointARN(*s.Bucket) 22359 } 22360 22361 func (s *GetPublicAccessBlockInput) hasEndpointARN() bool { 22362 if s.Bucket == nil { 22363 return false 22364 } 22365 return arn.IsARN(*s.Bucket) 22366 } 22367 22368 // updateArnableField updates the value of the input field that 22369 // takes an ARN as an input. This method is useful to backfill 22370 // the parsed resource name from ARN into the input member. 22371 // It returns a pointer to a modified copy of input and an error. 22372 // Note that original input is not modified. 22373 func (s GetPublicAccessBlockInput) updateArnableField(v string) (interface{}, error) { 22374 if s.Bucket == nil { 22375 return nil, fmt.Errorf("member Bucket is nil") 22376 } 22377 s.Bucket = aws.String(v) 22378 return &s, nil 22379 } 22380 22381 type GetPublicAccessBlockOutput struct { 22382 _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"` 22383 22384 // The PublicAccessBlock configuration currently in effect for this Amazon S3 22385 // bucket. 22386 PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` 22387 } 22388 22389 // String returns the string representation. 22390 // 22391 // API parameter values that are decorated as "sensitive" in the API will not 22392 // be included in the string output. The member name will be present, but the 22393 // value will be replaced with "sensitive". 22394 func (s GetPublicAccessBlockOutput) String() string { 22395 return awsutil.Prettify(s) 22396 } 22397 22398 // GoString returns the string representation. 22399 // 22400 // API parameter values that are decorated as "sensitive" in the API will not 22401 // be included in the string output. The member name will be present, but the 22402 // value will be replaced with "sensitive". 22403 func (s GetPublicAccessBlockOutput) GoString() string { 22404 return s.String() 22405 } 22406 22407 // SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. 22408 func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput { 22409 s.PublicAccessBlockConfiguration = v 22410 return s 22411 } 22412 22413 // Container for S3 Glacier job parameters. 22414 type GlacierJobParameters struct { 22415 _ struct{} `type:"structure"` 22416 22417 // Retrieval tier at which the restore will be processed. 22418 // 22419 // Tier is a required field 22420 Tier *string `type:"string" required:"true" enum:"Tier"` 22421 } 22422 22423 // String returns the string representation. 22424 // 22425 // API parameter values that are decorated as "sensitive" in the API will not 22426 // be included in the string output. The member name will be present, but the 22427 // value will be replaced with "sensitive". 22428 func (s GlacierJobParameters) String() string { 22429 return awsutil.Prettify(s) 22430 } 22431 22432 // GoString returns the string representation. 22433 // 22434 // API parameter values that are decorated as "sensitive" in the API will not 22435 // be included in the string output. The member name will be present, but the 22436 // value will be replaced with "sensitive". 22437 func (s GlacierJobParameters) GoString() string { 22438 return s.String() 22439 } 22440 22441 // Validate inspects the fields of the type to determine if they are valid. 22442 func (s *GlacierJobParameters) Validate() error { 22443 invalidParams := request.ErrInvalidParams{Context: "GlacierJobParameters"} 22444 if s.Tier == nil { 22445 invalidParams.Add(request.NewErrParamRequired("Tier")) 22446 } 22447 22448 if invalidParams.Len() > 0 { 22449 return invalidParams 22450 } 22451 return nil 22452 } 22453 22454 // SetTier sets the Tier field's value. 22455 func (s *GlacierJobParameters) SetTier(v string) *GlacierJobParameters { 22456 s.Tier = &v 22457 return s 22458 } 22459 22460 // Container for grant information. 22461 type Grant struct { 22462 _ struct{} `type:"structure"` 22463 22464 // The person being granted permissions. 22465 Grantee *Grantee `type:"structure" xmlPrefix:"xsi" xmlURI:"http://www.w3.org/2001/XMLSchema-instance"` 22466 22467 // Specifies the permission given to the grantee. 22468 Permission *string `type:"string" enum:"Permission"` 22469 } 22470 22471 // String returns the string representation. 22472 // 22473 // API parameter values that are decorated as "sensitive" in the API will not 22474 // be included in the string output. The member name will be present, but the 22475 // value will be replaced with "sensitive". 22476 func (s Grant) String() string { 22477 return awsutil.Prettify(s) 22478 } 22479 22480 // GoString returns the string representation. 22481 // 22482 // API parameter values that are decorated as "sensitive" in the API will not 22483 // be included in the string output. The member name will be present, but the 22484 // value will be replaced with "sensitive". 22485 func (s Grant) GoString() string { 22486 return s.String() 22487 } 22488 22489 // Validate inspects the fields of the type to determine if they are valid. 22490 func (s *Grant) Validate() error { 22491 invalidParams := request.ErrInvalidParams{Context: "Grant"} 22492 if s.Grantee != nil { 22493 if err := s.Grantee.Validate(); err != nil { 22494 invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams)) 22495 } 22496 } 22497 22498 if invalidParams.Len() > 0 { 22499 return invalidParams 22500 } 22501 return nil 22502 } 22503 22504 // SetGrantee sets the Grantee field's value. 22505 func (s *Grant) SetGrantee(v *Grantee) *Grant { 22506 s.Grantee = v 22507 return s 22508 } 22509 22510 // SetPermission sets the Permission field's value. 22511 func (s *Grant) SetPermission(v string) *Grant { 22512 s.Permission = &v 22513 return s 22514 } 22515 22516 // Container for the person being granted permissions. 22517 type Grantee struct { 22518 _ struct{} `type:"structure" xmlPrefix:"xsi" xmlURI:"http://www.w3.org/2001/XMLSchema-instance"` 22519 22520 // Screen name of the grantee. 22521 DisplayName *string `type:"string"` 22522 22523 // Email address of the grantee. 22524 // 22525 // Using email addresses to specify a grantee is only supported in the following 22526 // Amazon Web Services Regions: 22527 // 22528 // * US East (N. Virginia) 22529 // 22530 // * US West (N. California) 22531 // 22532 // * US West (Oregon) 22533 // 22534 // * Asia Pacific (Singapore) 22535 // 22536 // * Asia Pacific (Sydney) 22537 // 22538 // * Asia Pacific (Tokyo) 22539 // 22540 // * Europe (Ireland) 22541 // 22542 // * South America (São Paulo) 22543 // 22544 // For a list of all the Amazon S3 supported Regions and endpoints, see Regions 22545 // and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 22546 // in the Amazon Web Services General Reference. 22547 EmailAddress *string `type:"string"` 22548 22549 // The canonical user ID of the grantee. 22550 ID *string `type:"string"` 22551 22552 // Type of grantee 22553 // 22554 // Type is a required field 22555 Type *string `locationName:"xsi:type" type:"string" xmlAttribute:"true" required:"true" enum:"Type"` 22556 22557 // URI of the grantee group. 22558 URI *string `type:"string"` 22559 } 22560 22561 // String returns the string representation. 22562 // 22563 // API parameter values that are decorated as "sensitive" in the API will not 22564 // be included in the string output. The member name will be present, but the 22565 // value will be replaced with "sensitive". 22566 func (s Grantee) String() string { 22567 return awsutil.Prettify(s) 22568 } 22569 22570 // GoString returns the string representation. 22571 // 22572 // API parameter values that are decorated as "sensitive" in the API will not 22573 // be included in the string output. The member name will be present, but the 22574 // value will be replaced with "sensitive". 22575 func (s Grantee) GoString() string { 22576 return s.String() 22577 } 22578 22579 // Validate inspects the fields of the type to determine if they are valid. 22580 func (s *Grantee) Validate() error { 22581 invalidParams := request.ErrInvalidParams{Context: "Grantee"} 22582 if s.Type == nil { 22583 invalidParams.Add(request.NewErrParamRequired("Type")) 22584 } 22585 22586 if invalidParams.Len() > 0 { 22587 return invalidParams 22588 } 22589 return nil 22590 } 22591 22592 // SetDisplayName sets the DisplayName field's value. 22593 func (s *Grantee) SetDisplayName(v string) *Grantee { 22594 s.DisplayName = &v 22595 return s 22596 } 22597 22598 // SetEmailAddress sets the EmailAddress field's value. 22599 func (s *Grantee) SetEmailAddress(v string) *Grantee { 22600 s.EmailAddress = &v 22601 return s 22602 } 22603 22604 // SetID sets the ID field's value. 22605 func (s *Grantee) SetID(v string) *Grantee { 22606 s.ID = &v 22607 return s 22608 } 22609 22610 // SetType sets the Type field's value. 22611 func (s *Grantee) SetType(v string) *Grantee { 22612 s.Type = &v 22613 return s 22614 } 22615 22616 // SetURI sets the URI field's value. 22617 func (s *Grantee) SetURI(v string) *Grantee { 22618 s.URI = &v 22619 return s 22620 } 22621 22622 type HeadBucketInput struct { 22623 _ struct{} `locationName:"HeadBucketRequest" type:"structure"` 22624 22625 // The bucket name. 22626 // 22627 // When using this action with an access point, you must direct requests to 22628 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 22629 // When using this action with an access point through the Amazon Web Services 22630 // SDKs, you provide the access point ARN in place of the bucket name. For more 22631 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 22632 // in the Amazon S3 User Guide. 22633 // 22634 // When using this action with Amazon S3 on Outposts, you must direct requests 22635 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 22636 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 22637 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 22638 // you provide the Outposts bucket ARN in place of the bucket name. For more 22639 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 22640 // in the Amazon S3 User Guide. 22641 // 22642 // Bucket is a required field 22643 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 22644 22645 // The account ID of the expected bucket owner. If the bucket is owned by a 22646 // different account, the request will fail with an HTTP 403 (Access Denied) 22647 // error. 22648 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 22649 } 22650 22651 // String returns the string representation. 22652 // 22653 // API parameter values that are decorated as "sensitive" in the API will not 22654 // be included in the string output. The member name will be present, but the 22655 // value will be replaced with "sensitive". 22656 func (s HeadBucketInput) String() string { 22657 return awsutil.Prettify(s) 22658 } 22659 22660 // GoString returns the string representation. 22661 // 22662 // API parameter values that are decorated as "sensitive" in the API will not 22663 // be included in the string output. The member name will be present, but the 22664 // value will be replaced with "sensitive". 22665 func (s HeadBucketInput) GoString() string { 22666 return s.String() 22667 } 22668 22669 // Validate inspects the fields of the type to determine if they are valid. 22670 func (s *HeadBucketInput) Validate() error { 22671 invalidParams := request.ErrInvalidParams{Context: "HeadBucketInput"} 22672 if s.Bucket == nil { 22673 invalidParams.Add(request.NewErrParamRequired("Bucket")) 22674 } 22675 if s.Bucket != nil && len(*s.Bucket) < 1 { 22676 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 22677 } 22678 22679 if invalidParams.Len() > 0 { 22680 return invalidParams 22681 } 22682 return nil 22683 } 22684 22685 // SetBucket sets the Bucket field's value. 22686 func (s *HeadBucketInput) SetBucket(v string) *HeadBucketInput { 22687 s.Bucket = &v 22688 return s 22689 } 22690 22691 func (s *HeadBucketInput) getBucket() (v string) { 22692 if s.Bucket == nil { 22693 return v 22694 } 22695 return *s.Bucket 22696 } 22697 22698 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 22699 func (s *HeadBucketInput) SetExpectedBucketOwner(v string) *HeadBucketInput { 22700 s.ExpectedBucketOwner = &v 22701 return s 22702 } 22703 22704 func (s *HeadBucketInput) getEndpointARN() (arn.Resource, error) { 22705 if s.Bucket == nil { 22706 return nil, fmt.Errorf("member Bucket is nil") 22707 } 22708 return parseEndpointARN(*s.Bucket) 22709 } 22710 22711 func (s *HeadBucketInput) hasEndpointARN() bool { 22712 if s.Bucket == nil { 22713 return false 22714 } 22715 return arn.IsARN(*s.Bucket) 22716 } 22717 22718 // updateArnableField updates the value of the input field that 22719 // takes an ARN as an input. This method is useful to backfill 22720 // the parsed resource name from ARN into the input member. 22721 // It returns a pointer to a modified copy of input and an error. 22722 // Note that original input is not modified. 22723 func (s HeadBucketInput) updateArnableField(v string) (interface{}, error) { 22724 if s.Bucket == nil { 22725 return nil, fmt.Errorf("member Bucket is nil") 22726 } 22727 s.Bucket = aws.String(v) 22728 return &s, nil 22729 } 22730 22731 type HeadBucketOutput struct { 22732 _ struct{} `type:"structure"` 22733 } 22734 22735 // String returns the string representation. 22736 // 22737 // API parameter values that are decorated as "sensitive" in the API will not 22738 // be included in the string output. The member name will be present, but the 22739 // value will be replaced with "sensitive". 22740 func (s HeadBucketOutput) String() string { 22741 return awsutil.Prettify(s) 22742 } 22743 22744 // GoString returns the string representation. 22745 // 22746 // API parameter values that are decorated as "sensitive" in the API will not 22747 // be included in the string output. The member name will be present, but the 22748 // value will be replaced with "sensitive". 22749 func (s HeadBucketOutput) GoString() string { 22750 return s.String() 22751 } 22752 22753 type HeadObjectInput struct { 22754 _ struct{} `locationName:"HeadObjectRequest" type:"structure"` 22755 22756 // The name of the bucket containing the object. 22757 // 22758 // When using this action with an access point, you must direct requests to 22759 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 22760 // When using this action with an access point through the Amazon Web Services 22761 // SDKs, you provide the access point ARN in place of the bucket name. For more 22762 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 22763 // in the Amazon S3 User Guide. 22764 // 22765 // When using this action with Amazon S3 on Outposts, you must direct requests 22766 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 22767 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 22768 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 22769 // you provide the Outposts bucket ARN in place of the bucket name. For more 22770 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 22771 // in the Amazon S3 User Guide. 22772 // 22773 // Bucket is a required field 22774 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 22775 22776 // The account ID of the expected bucket owner. If the bucket is owned by a 22777 // different account, the request will fail with an HTTP 403 (Access Denied) 22778 // error. 22779 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 22780 22781 // Return the object only if its entity tag (ETag) is the same as the one specified, 22782 // otherwise return a 412 (precondition failed). 22783 IfMatch *string `location:"header" locationName:"If-Match" type:"string"` 22784 22785 // Return the object only if it has been modified since the specified time, 22786 // otherwise return a 304 (not modified). 22787 IfModifiedSince *time.Time `location:"header" locationName:"If-Modified-Since" type:"timestamp"` 22788 22789 // Return the object only if its entity tag (ETag) is different from the one 22790 // specified, otherwise return a 304 (not modified). 22791 IfNoneMatch *string `location:"header" locationName:"If-None-Match" type:"string"` 22792 22793 // Return the object only if it has not been modified since the specified time, 22794 // otherwise return a 412 (precondition failed). 22795 IfUnmodifiedSince *time.Time `location:"header" locationName:"If-Unmodified-Since" type:"timestamp"` 22796 22797 // The object key. 22798 // 22799 // Key is a required field 22800 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 22801 22802 // Part number of the object being read. This is a positive integer between 22803 // 1 and 10,000. Effectively performs a 'ranged' HEAD request for the part specified. 22804 // Useful querying about the size of the part and the number of parts in this 22805 // object. 22806 PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"` 22807 22808 // Downloads the specified range bytes of an object. For more information about 22809 // the HTTP Range header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 22810 // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35). 22811 // 22812 // Amazon S3 doesn't support retrieving multiple ranges of data per GET request. 22813 Range *string `location:"header" locationName:"Range" type:"string"` 22814 22815 // Confirms that the requester knows that they will be charged for the request. 22816 // Bucket owners need not specify this parameter in their requests. For information 22817 // about downloading objects from requester pays buckets, see Downloading Objects 22818 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 22819 // in the Amazon S3 User Guide. 22820 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 22821 22822 // Specifies the algorithm to use to when encrypting the object (for example, 22823 // AES256). 22824 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 22825 22826 // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting 22827 // data. This value is used to store the object and then it is discarded; Amazon 22828 // S3 does not store the encryption key. The key must be appropriate for use 22829 // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm 22830 // header. 22831 // 22832 // SSECustomerKey is a sensitive parameter and its value will be 22833 // replaced with "sensitive" in string returned by HeadObjectInput's 22834 // String and GoString methods. 22835 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 22836 22837 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 22838 // Amazon S3 uses this header for a message integrity check to ensure that the 22839 // encryption key was transmitted without error. 22840 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 22841 22842 // VersionId used to reference a specific version of the object. 22843 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 22844 } 22845 22846 // String returns the string representation. 22847 // 22848 // API parameter values that are decorated as "sensitive" in the API will not 22849 // be included in the string output. The member name will be present, but the 22850 // value will be replaced with "sensitive". 22851 func (s HeadObjectInput) String() string { 22852 return awsutil.Prettify(s) 22853 } 22854 22855 // GoString returns the string representation. 22856 // 22857 // API parameter values that are decorated as "sensitive" in the API will not 22858 // be included in the string output. The member name will be present, but the 22859 // value will be replaced with "sensitive". 22860 func (s HeadObjectInput) GoString() string { 22861 return s.String() 22862 } 22863 22864 // Validate inspects the fields of the type to determine if they are valid. 22865 func (s *HeadObjectInput) Validate() error { 22866 invalidParams := request.ErrInvalidParams{Context: "HeadObjectInput"} 22867 if s.Bucket == nil { 22868 invalidParams.Add(request.NewErrParamRequired("Bucket")) 22869 } 22870 if s.Bucket != nil && len(*s.Bucket) < 1 { 22871 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 22872 } 22873 if s.Key == nil { 22874 invalidParams.Add(request.NewErrParamRequired("Key")) 22875 } 22876 if s.Key != nil && len(*s.Key) < 1 { 22877 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 22878 } 22879 22880 if invalidParams.Len() > 0 { 22881 return invalidParams 22882 } 22883 return nil 22884 } 22885 22886 // SetBucket sets the Bucket field's value. 22887 func (s *HeadObjectInput) SetBucket(v string) *HeadObjectInput { 22888 s.Bucket = &v 22889 return s 22890 } 22891 22892 func (s *HeadObjectInput) getBucket() (v string) { 22893 if s.Bucket == nil { 22894 return v 22895 } 22896 return *s.Bucket 22897 } 22898 22899 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 22900 func (s *HeadObjectInput) SetExpectedBucketOwner(v string) *HeadObjectInput { 22901 s.ExpectedBucketOwner = &v 22902 return s 22903 } 22904 22905 // SetIfMatch sets the IfMatch field's value. 22906 func (s *HeadObjectInput) SetIfMatch(v string) *HeadObjectInput { 22907 s.IfMatch = &v 22908 return s 22909 } 22910 22911 // SetIfModifiedSince sets the IfModifiedSince field's value. 22912 func (s *HeadObjectInput) SetIfModifiedSince(v time.Time) *HeadObjectInput { 22913 s.IfModifiedSince = &v 22914 return s 22915 } 22916 22917 // SetIfNoneMatch sets the IfNoneMatch field's value. 22918 func (s *HeadObjectInput) SetIfNoneMatch(v string) *HeadObjectInput { 22919 s.IfNoneMatch = &v 22920 return s 22921 } 22922 22923 // SetIfUnmodifiedSince sets the IfUnmodifiedSince field's value. 22924 func (s *HeadObjectInput) SetIfUnmodifiedSince(v time.Time) *HeadObjectInput { 22925 s.IfUnmodifiedSince = &v 22926 return s 22927 } 22928 22929 // SetKey sets the Key field's value. 22930 func (s *HeadObjectInput) SetKey(v string) *HeadObjectInput { 22931 s.Key = &v 22932 return s 22933 } 22934 22935 // SetPartNumber sets the PartNumber field's value. 22936 func (s *HeadObjectInput) SetPartNumber(v int64) *HeadObjectInput { 22937 s.PartNumber = &v 22938 return s 22939 } 22940 22941 // SetRange sets the Range field's value. 22942 func (s *HeadObjectInput) SetRange(v string) *HeadObjectInput { 22943 s.Range = &v 22944 return s 22945 } 22946 22947 // SetRequestPayer sets the RequestPayer field's value. 22948 func (s *HeadObjectInput) SetRequestPayer(v string) *HeadObjectInput { 22949 s.RequestPayer = &v 22950 return s 22951 } 22952 22953 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 22954 func (s *HeadObjectInput) SetSSECustomerAlgorithm(v string) *HeadObjectInput { 22955 s.SSECustomerAlgorithm = &v 22956 return s 22957 } 22958 22959 // SetSSECustomerKey sets the SSECustomerKey field's value. 22960 func (s *HeadObjectInput) SetSSECustomerKey(v string) *HeadObjectInput { 22961 s.SSECustomerKey = &v 22962 return s 22963 } 22964 22965 func (s *HeadObjectInput) getSSECustomerKey() (v string) { 22966 if s.SSECustomerKey == nil { 22967 return v 22968 } 22969 return *s.SSECustomerKey 22970 } 22971 22972 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 22973 func (s *HeadObjectInput) SetSSECustomerKeyMD5(v string) *HeadObjectInput { 22974 s.SSECustomerKeyMD5 = &v 22975 return s 22976 } 22977 22978 // SetVersionId sets the VersionId field's value. 22979 func (s *HeadObjectInput) SetVersionId(v string) *HeadObjectInput { 22980 s.VersionId = &v 22981 return s 22982 } 22983 22984 func (s *HeadObjectInput) getEndpointARN() (arn.Resource, error) { 22985 if s.Bucket == nil { 22986 return nil, fmt.Errorf("member Bucket is nil") 22987 } 22988 return parseEndpointARN(*s.Bucket) 22989 } 22990 22991 func (s *HeadObjectInput) hasEndpointARN() bool { 22992 if s.Bucket == nil { 22993 return false 22994 } 22995 return arn.IsARN(*s.Bucket) 22996 } 22997 22998 // updateArnableField updates the value of the input field that 22999 // takes an ARN as an input. This method is useful to backfill 23000 // the parsed resource name from ARN into the input member. 23001 // It returns a pointer to a modified copy of input and an error. 23002 // Note that original input is not modified. 23003 func (s HeadObjectInput) updateArnableField(v string) (interface{}, error) { 23004 if s.Bucket == nil { 23005 return nil, fmt.Errorf("member Bucket is nil") 23006 } 23007 s.Bucket = aws.String(v) 23008 return &s, nil 23009 } 23010 23011 type HeadObjectOutput struct { 23012 _ struct{} `type:"structure"` 23013 23014 // Indicates that a range of bytes was specified. 23015 AcceptRanges *string `location:"header" locationName:"accept-ranges" type:"string"` 23016 23017 // The archive state of the head object. 23018 ArchiveStatus *string `location:"header" locationName:"x-amz-archive-status" type:"string" enum:"ArchiveStatus"` 23019 23020 // Indicates whether the object uses an S3 Bucket Key for server-side encryption 23021 // with Amazon Web Services KMS (SSE-KMS). 23022 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 23023 23024 // Specifies caching behavior along the request/reply chain. 23025 CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` 23026 23027 // Specifies presentational information for the object. 23028 ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"` 23029 23030 // Specifies what content encodings have been applied to the object and thus 23031 // what decoding mechanisms must be applied to obtain the media-type referenced 23032 // by the Content-Type header field. 23033 ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` 23034 23035 // The language the content is in. 23036 ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` 23037 23038 // Size of the body in bytes. 23039 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` 23040 23041 // A standard MIME type describing the format of the object data. 23042 ContentType *string `location:"header" locationName:"Content-Type" type:"string"` 23043 23044 // Specifies whether the object retrieved was (true) or was not (false) a Delete 23045 // Marker. If false, this response header does not appear in the response. 23046 DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` 23047 23048 // An ETag is an opaque identifier assigned by a web server to a specific version 23049 // of a resource found at a URL. 23050 ETag *string `location:"header" locationName:"ETag" type:"string"` 23051 23052 // If the object expiration is configured (see PUT Bucket lifecycle), the response 23053 // includes this header. It includes the expiry-date and rule-id key-value pairs 23054 // providing object expiration information. The value of the rule-id is URL 23055 // encoded. 23056 Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` 23057 23058 // The date and time at which the object is no longer cacheable. 23059 Expires *string `location:"header" locationName:"Expires" type:"string"` 23060 23061 // Creation date of the object. 23062 LastModified *time.Time `location:"header" locationName:"Last-Modified" type:"timestamp"` 23063 23064 // A map of metadata to store with the object in S3. 23065 // 23066 // By default unmarshaled keys are written as a map keys in following canonicalized format: 23067 // the first letter and any letter following a hyphen will be capitalized, and the rest as lowercase. 23068 // Set `aws.Config.LowerCaseHeaderMaps` to `true` to write unmarshaled keys to the map as lowercase. 23069 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` 23070 23071 // This is set to the number of metadata entries not returned in x-amz-meta 23072 // headers. This can happen if you create metadata using an API like SOAP that 23073 // supports more flexible metadata than the REST API. For example, using SOAP, 23074 // you can create metadata whose values are not legal HTTP headers. 23075 MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"` 23076 23077 // Specifies whether a legal hold is in effect for this object. This header 23078 // is only returned if the requester has the s3:GetObjectLegalHold permission. 23079 // This header is not returned if the specified version of this object has never 23080 // had a legal hold applied. For more information about S3 Object Lock, see 23081 // Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 23082 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 23083 23084 // The Object Lock mode, if any, that's in effect for this object. This header 23085 // is only returned if the requester has the s3:GetObjectRetention permission. 23086 // For more information about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 23087 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 23088 23089 // The date and time when the Object Lock retention period expires. This header 23090 // is only returned if the requester has the s3:GetObjectRetention permission. 23091 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 23092 23093 // The count of parts this object has. 23094 PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"` 23095 23096 // Amazon S3 can return this header if your request involves a bucket that is 23097 // either a source or a destination in a replication rule. 23098 // 23099 // In replication, you have a source bucket on which you configure replication 23100 // and destination bucket or buckets where Amazon S3 stores object replicas. 23101 // When you request an object (GetObject) or object metadata (HeadObject) from 23102 // these buckets, Amazon S3 will return the x-amz-replication-status header 23103 // in the response as follows: 23104 // 23105 // * If requesting an object from the source bucket — Amazon S3 will return 23106 // the x-amz-replication-status header if the object in your request is eligible 23107 // for replication. For example, suppose that in your replication configuration, 23108 // you specify object prefix TaxDocs requesting Amazon S3 to replicate objects 23109 // with key prefix TaxDocs. Any objects you upload with this key name prefix, 23110 // for example TaxDocs/document1.pdf, are eligible for replication. For any 23111 // object request with this key name prefix, Amazon S3 will return the x-amz-replication-status 23112 // header with value PENDING, COMPLETED or FAILED indicating object replication 23113 // status. 23114 // 23115 // * If requesting an object from a destination bucket — Amazon S3 will 23116 // return the x-amz-replication-status header with value REPLICA if the object 23117 // in your request is a replica that Amazon S3 created and there is no replica 23118 // modification replication in progress. 23119 // 23120 // * When replicating objects to multiple destination buckets the x-amz-replication-status 23121 // header acts differently. The header of the source object will only return 23122 // a value of COMPLETED when replication is successful to all destinations. 23123 // The header will remain at value PENDING until replication has completed 23124 // for all destinations. If one or more destinations fails replication the 23125 // header will return FAILED. 23126 // 23127 // For more information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). 23128 ReplicationStatus *string `location:"header" locationName:"x-amz-replication-status" type:"string" enum:"ReplicationStatus"` 23129 23130 // If present, indicates that the requester was successfully charged for the 23131 // request. 23132 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 23133 23134 // If the object is an archived object (an object whose storage class is GLACIER), 23135 // the response includes this header if either the archive restoration is in 23136 // progress (see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) 23137 // or an archive copy is already restored. 23138 // 23139 // If an archive copy is already restored, the header value indicates when Amazon 23140 // S3 is scheduled to delete the object copy. For example: 23141 // 23142 // x-amz-restore: ongoing-request="false", expiry-date="Fri, 21 Dec 2012 00:00:00 23143 // GMT" 23144 // 23145 // If the object restoration is in progress, the header returns the value ongoing-request="true". 23146 // 23147 // For more information about archiving objects, see Transitioning Objects: 23148 // General Considerations (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations). 23149 Restore *string `location:"header" locationName:"x-amz-restore" type:"string"` 23150 23151 // If server-side encryption with a customer-provided encryption key was requested, 23152 // the response will include this header confirming the encryption algorithm 23153 // used. 23154 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 23155 23156 // If server-side encryption with a customer-provided encryption key was requested, 23157 // the response will include this header to provide round-trip message integrity 23158 // verification of the customer-provided encryption key. 23159 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 23160 23161 // If present, specifies the ID of the Amazon Web Services Key Management Service 23162 // (Amazon Web Services KMS) symmetric customer managed key that was used for 23163 // the object. 23164 // 23165 // SSEKMSKeyId is a sensitive parameter and its value will be 23166 // replaced with "sensitive" in string returned by HeadObjectOutput's 23167 // String and GoString methods. 23168 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 23169 23170 // If the object is stored using server-side encryption either with an Amazon 23171 // Web Services KMS key or an Amazon S3-managed encryption key, the response 23172 // includes this header with the value of the server-side encryption algorithm 23173 // used when storing this object in Amazon S3 (for example, AES256, aws:kms). 23174 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 23175 23176 // Provides storage class information of the object. Amazon S3 returns this 23177 // header for all objects except for S3 Standard storage class objects. 23178 // 23179 // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html). 23180 StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` 23181 23182 // Version of the object. 23183 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 23184 23185 // If the bucket is configured as a website, redirects requests for this object 23186 // to another object in the same bucket or to an external URL. Amazon S3 stores 23187 // the value of this header in the object metadata. 23188 WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` 23189 } 23190 23191 // String returns the string representation. 23192 // 23193 // API parameter values that are decorated as "sensitive" in the API will not 23194 // be included in the string output. The member name will be present, but the 23195 // value will be replaced with "sensitive". 23196 func (s HeadObjectOutput) String() string { 23197 return awsutil.Prettify(s) 23198 } 23199 23200 // GoString returns the string representation. 23201 // 23202 // API parameter values that are decorated as "sensitive" in the API will not 23203 // be included in the string output. The member name will be present, but the 23204 // value will be replaced with "sensitive". 23205 func (s HeadObjectOutput) GoString() string { 23206 return s.String() 23207 } 23208 23209 // SetAcceptRanges sets the AcceptRanges field's value. 23210 func (s *HeadObjectOutput) SetAcceptRanges(v string) *HeadObjectOutput { 23211 s.AcceptRanges = &v 23212 return s 23213 } 23214 23215 // SetArchiveStatus sets the ArchiveStatus field's value. 23216 func (s *HeadObjectOutput) SetArchiveStatus(v string) *HeadObjectOutput { 23217 s.ArchiveStatus = &v 23218 return s 23219 } 23220 23221 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 23222 func (s *HeadObjectOutput) SetBucketKeyEnabled(v bool) *HeadObjectOutput { 23223 s.BucketKeyEnabled = &v 23224 return s 23225 } 23226 23227 // SetCacheControl sets the CacheControl field's value. 23228 func (s *HeadObjectOutput) SetCacheControl(v string) *HeadObjectOutput { 23229 s.CacheControl = &v 23230 return s 23231 } 23232 23233 // SetContentDisposition sets the ContentDisposition field's value. 23234 func (s *HeadObjectOutput) SetContentDisposition(v string) *HeadObjectOutput { 23235 s.ContentDisposition = &v 23236 return s 23237 } 23238 23239 // SetContentEncoding sets the ContentEncoding field's value. 23240 func (s *HeadObjectOutput) SetContentEncoding(v string) *HeadObjectOutput { 23241 s.ContentEncoding = &v 23242 return s 23243 } 23244 23245 // SetContentLanguage sets the ContentLanguage field's value. 23246 func (s *HeadObjectOutput) SetContentLanguage(v string) *HeadObjectOutput { 23247 s.ContentLanguage = &v 23248 return s 23249 } 23250 23251 // SetContentLength sets the ContentLength field's value. 23252 func (s *HeadObjectOutput) SetContentLength(v int64) *HeadObjectOutput { 23253 s.ContentLength = &v 23254 return s 23255 } 23256 23257 // SetContentType sets the ContentType field's value. 23258 func (s *HeadObjectOutput) SetContentType(v string) *HeadObjectOutput { 23259 s.ContentType = &v 23260 return s 23261 } 23262 23263 // SetDeleteMarker sets the DeleteMarker field's value. 23264 func (s *HeadObjectOutput) SetDeleteMarker(v bool) *HeadObjectOutput { 23265 s.DeleteMarker = &v 23266 return s 23267 } 23268 23269 // SetETag sets the ETag field's value. 23270 func (s *HeadObjectOutput) SetETag(v string) *HeadObjectOutput { 23271 s.ETag = &v 23272 return s 23273 } 23274 23275 // SetExpiration sets the Expiration field's value. 23276 func (s *HeadObjectOutput) SetExpiration(v string) *HeadObjectOutput { 23277 s.Expiration = &v 23278 return s 23279 } 23280 23281 // SetExpires sets the Expires field's value. 23282 func (s *HeadObjectOutput) SetExpires(v string) *HeadObjectOutput { 23283 s.Expires = &v 23284 return s 23285 } 23286 23287 // SetLastModified sets the LastModified field's value. 23288 func (s *HeadObjectOutput) SetLastModified(v time.Time) *HeadObjectOutput { 23289 s.LastModified = &v 23290 return s 23291 } 23292 23293 // SetMetadata sets the Metadata field's value. 23294 func (s *HeadObjectOutput) SetMetadata(v map[string]*string) *HeadObjectOutput { 23295 s.Metadata = v 23296 return s 23297 } 23298 23299 // SetMissingMeta sets the MissingMeta field's value. 23300 func (s *HeadObjectOutput) SetMissingMeta(v int64) *HeadObjectOutput { 23301 s.MissingMeta = &v 23302 return s 23303 } 23304 23305 // SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value. 23306 func (s *HeadObjectOutput) SetObjectLockLegalHoldStatus(v string) *HeadObjectOutput { 23307 s.ObjectLockLegalHoldStatus = &v 23308 return s 23309 } 23310 23311 // SetObjectLockMode sets the ObjectLockMode field's value. 23312 func (s *HeadObjectOutput) SetObjectLockMode(v string) *HeadObjectOutput { 23313 s.ObjectLockMode = &v 23314 return s 23315 } 23316 23317 // SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value. 23318 func (s *HeadObjectOutput) SetObjectLockRetainUntilDate(v time.Time) *HeadObjectOutput { 23319 s.ObjectLockRetainUntilDate = &v 23320 return s 23321 } 23322 23323 // SetPartsCount sets the PartsCount field's value. 23324 func (s *HeadObjectOutput) SetPartsCount(v int64) *HeadObjectOutput { 23325 s.PartsCount = &v 23326 return s 23327 } 23328 23329 // SetReplicationStatus sets the ReplicationStatus field's value. 23330 func (s *HeadObjectOutput) SetReplicationStatus(v string) *HeadObjectOutput { 23331 s.ReplicationStatus = &v 23332 return s 23333 } 23334 23335 // SetRequestCharged sets the RequestCharged field's value. 23336 func (s *HeadObjectOutput) SetRequestCharged(v string) *HeadObjectOutput { 23337 s.RequestCharged = &v 23338 return s 23339 } 23340 23341 // SetRestore sets the Restore field's value. 23342 func (s *HeadObjectOutput) SetRestore(v string) *HeadObjectOutput { 23343 s.Restore = &v 23344 return s 23345 } 23346 23347 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 23348 func (s *HeadObjectOutput) SetSSECustomerAlgorithm(v string) *HeadObjectOutput { 23349 s.SSECustomerAlgorithm = &v 23350 return s 23351 } 23352 23353 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 23354 func (s *HeadObjectOutput) SetSSECustomerKeyMD5(v string) *HeadObjectOutput { 23355 s.SSECustomerKeyMD5 = &v 23356 return s 23357 } 23358 23359 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 23360 func (s *HeadObjectOutput) SetSSEKMSKeyId(v string) *HeadObjectOutput { 23361 s.SSEKMSKeyId = &v 23362 return s 23363 } 23364 23365 // SetServerSideEncryption sets the ServerSideEncryption field's value. 23366 func (s *HeadObjectOutput) SetServerSideEncryption(v string) *HeadObjectOutput { 23367 s.ServerSideEncryption = &v 23368 return s 23369 } 23370 23371 // SetStorageClass sets the StorageClass field's value. 23372 func (s *HeadObjectOutput) SetStorageClass(v string) *HeadObjectOutput { 23373 s.StorageClass = &v 23374 return s 23375 } 23376 23377 // SetVersionId sets the VersionId field's value. 23378 func (s *HeadObjectOutput) SetVersionId(v string) *HeadObjectOutput { 23379 s.VersionId = &v 23380 return s 23381 } 23382 23383 // SetWebsiteRedirectLocation sets the WebsiteRedirectLocation field's value. 23384 func (s *HeadObjectOutput) SetWebsiteRedirectLocation(v string) *HeadObjectOutput { 23385 s.WebsiteRedirectLocation = &v 23386 return s 23387 } 23388 23389 // Container for the Suffix element. 23390 type IndexDocument struct { 23391 _ struct{} `type:"structure"` 23392 23393 // A suffix that is appended to a request that is for a directory on the website 23394 // endpoint (for example,if the suffix is index.html and you make a request 23395 // to samplebucket/images/ the data that is returned will be for the object 23396 // with the key name images/index.html) The suffix must not be empty and must 23397 // not include a slash character. 23398 // 23399 // Replacement must be made for object keys containing special characters (such 23400 // as carriage returns) when using XML requests. For more information, see XML 23401 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 23402 // 23403 // Suffix is a required field 23404 Suffix *string `type:"string" required:"true"` 23405 } 23406 23407 // String returns the string representation. 23408 // 23409 // API parameter values that are decorated as "sensitive" in the API will not 23410 // be included in the string output. The member name will be present, but the 23411 // value will be replaced with "sensitive". 23412 func (s IndexDocument) String() string { 23413 return awsutil.Prettify(s) 23414 } 23415 23416 // GoString returns the string representation. 23417 // 23418 // API parameter values that are decorated as "sensitive" in the API will not 23419 // be included in the string output. The member name will be present, but the 23420 // value will be replaced with "sensitive". 23421 func (s IndexDocument) GoString() string { 23422 return s.String() 23423 } 23424 23425 // Validate inspects the fields of the type to determine if they are valid. 23426 func (s *IndexDocument) Validate() error { 23427 invalidParams := request.ErrInvalidParams{Context: "IndexDocument"} 23428 if s.Suffix == nil { 23429 invalidParams.Add(request.NewErrParamRequired("Suffix")) 23430 } 23431 23432 if invalidParams.Len() > 0 { 23433 return invalidParams 23434 } 23435 return nil 23436 } 23437 23438 // SetSuffix sets the Suffix field's value. 23439 func (s *IndexDocument) SetSuffix(v string) *IndexDocument { 23440 s.Suffix = &v 23441 return s 23442 } 23443 23444 // Container element that identifies who initiated the multipart upload. 23445 type Initiator struct { 23446 _ struct{} `type:"structure"` 23447 23448 // Name of the Principal. 23449 DisplayName *string `type:"string"` 23450 23451 // If the principal is an Amazon Web Services account, it provides the Canonical 23452 // User ID. If the principal is an IAM User, it provides a user ARN value. 23453 ID *string `type:"string"` 23454 } 23455 23456 // String returns the string representation. 23457 // 23458 // API parameter values that are decorated as "sensitive" in the API will not 23459 // be included in the string output. The member name will be present, but the 23460 // value will be replaced with "sensitive". 23461 func (s Initiator) String() string { 23462 return awsutil.Prettify(s) 23463 } 23464 23465 // GoString returns the string representation. 23466 // 23467 // API parameter values that are decorated as "sensitive" in the API will not 23468 // be included in the string output. The member name will be present, but the 23469 // value will be replaced with "sensitive". 23470 func (s Initiator) GoString() string { 23471 return s.String() 23472 } 23473 23474 // SetDisplayName sets the DisplayName field's value. 23475 func (s *Initiator) SetDisplayName(v string) *Initiator { 23476 s.DisplayName = &v 23477 return s 23478 } 23479 23480 // SetID sets the ID field's value. 23481 func (s *Initiator) SetID(v string) *Initiator { 23482 s.ID = &v 23483 return s 23484 } 23485 23486 // Describes the serialization format of the object. 23487 type InputSerialization struct { 23488 _ struct{} `type:"structure"` 23489 23490 // Describes the serialization of a CSV-encoded object. 23491 CSV *CSVInput `type:"structure"` 23492 23493 // Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default 23494 // Value: NONE. 23495 CompressionType *string `type:"string" enum:"CompressionType"` 23496 23497 // Specifies JSON as object's input serialization format. 23498 JSON *JSONInput `type:"structure"` 23499 23500 // Specifies Parquet as object's input serialization format. 23501 Parquet *ParquetInput `type:"structure"` 23502 } 23503 23504 // String returns the string representation. 23505 // 23506 // API parameter values that are decorated as "sensitive" in the API will not 23507 // be included in the string output. The member name will be present, but the 23508 // value will be replaced with "sensitive". 23509 func (s InputSerialization) String() string { 23510 return awsutil.Prettify(s) 23511 } 23512 23513 // GoString returns the string representation. 23514 // 23515 // API parameter values that are decorated as "sensitive" in the API will not 23516 // be included in the string output. The member name will be present, but the 23517 // value will be replaced with "sensitive". 23518 func (s InputSerialization) GoString() string { 23519 return s.String() 23520 } 23521 23522 // SetCSV sets the CSV field's value. 23523 func (s *InputSerialization) SetCSV(v *CSVInput) *InputSerialization { 23524 s.CSV = v 23525 return s 23526 } 23527 23528 // SetCompressionType sets the CompressionType field's value. 23529 func (s *InputSerialization) SetCompressionType(v string) *InputSerialization { 23530 s.CompressionType = &v 23531 return s 23532 } 23533 23534 // SetJSON sets the JSON field's value. 23535 func (s *InputSerialization) SetJSON(v *JSONInput) *InputSerialization { 23536 s.JSON = v 23537 return s 23538 } 23539 23540 // SetParquet sets the Parquet field's value. 23541 func (s *InputSerialization) SetParquet(v *ParquetInput) *InputSerialization { 23542 s.Parquet = v 23543 return s 23544 } 23545 23546 // A container for specifying S3 Intelligent-Tiering filters. The filters determine 23547 // the subset of objects to which the rule applies. 23548 type IntelligentTieringAndOperator struct { 23549 _ struct{} `type:"structure"` 23550 23551 // An object key name prefix that identifies the subset of objects to which 23552 // the configuration applies. 23553 Prefix *string `type:"string"` 23554 23555 // All of these tags must exist in the object's tag set in order for the configuration 23556 // to apply. 23557 Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` 23558 } 23559 23560 // String returns the string representation. 23561 // 23562 // API parameter values that are decorated as "sensitive" in the API will not 23563 // be included in the string output. The member name will be present, but the 23564 // value will be replaced with "sensitive". 23565 func (s IntelligentTieringAndOperator) String() string { 23566 return awsutil.Prettify(s) 23567 } 23568 23569 // GoString returns the string representation. 23570 // 23571 // API parameter values that are decorated as "sensitive" in the API will not 23572 // be included in the string output. The member name will be present, but the 23573 // value will be replaced with "sensitive". 23574 func (s IntelligentTieringAndOperator) GoString() string { 23575 return s.String() 23576 } 23577 23578 // Validate inspects the fields of the type to determine if they are valid. 23579 func (s *IntelligentTieringAndOperator) Validate() error { 23580 invalidParams := request.ErrInvalidParams{Context: "IntelligentTieringAndOperator"} 23581 if s.Tags != nil { 23582 for i, v := range s.Tags { 23583 if v == nil { 23584 continue 23585 } 23586 if err := v.Validate(); err != nil { 23587 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 23588 } 23589 } 23590 } 23591 23592 if invalidParams.Len() > 0 { 23593 return invalidParams 23594 } 23595 return nil 23596 } 23597 23598 // SetPrefix sets the Prefix field's value. 23599 func (s *IntelligentTieringAndOperator) SetPrefix(v string) *IntelligentTieringAndOperator { 23600 s.Prefix = &v 23601 return s 23602 } 23603 23604 // SetTags sets the Tags field's value. 23605 func (s *IntelligentTieringAndOperator) SetTags(v []*Tag) *IntelligentTieringAndOperator { 23606 s.Tags = v 23607 return s 23608 } 23609 23610 // Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket. 23611 // 23612 // For information about the S3 Intelligent-Tiering storage class, see Storage 23613 // class for automatically optimizing frequently and infrequently accessed objects 23614 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). 23615 type IntelligentTieringConfiguration struct { 23616 _ struct{} `type:"structure"` 23617 23618 // Specifies a bucket filter. The configuration only includes objects that meet 23619 // the filter's criteria. 23620 Filter *IntelligentTieringFilter `type:"structure"` 23621 23622 // The ID used to identify the S3 Intelligent-Tiering configuration. 23623 // 23624 // Id is a required field 23625 Id *string `type:"string" required:"true"` 23626 23627 // Specifies the status of the configuration. 23628 // 23629 // Status is a required field 23630 Status *string `type:"string" required:"true" enum:"IntelligentTieringStatus"` 23631 23632 // Specifies the S3 Intelligent-Tiering storage class tier of the configuration. 23633 // 23634 // Tierings is a required field 23635 Tierings []*Tiering `locationName:"Tiering" type:"list" flattened:"true" required:"true"` 23636 } 23637 23638 // String returns the string representation. 23639 // 23640 // API parameter values that are decorated as "sensitive" in the API will not 23641 // be included in the string output. The member name will be present, but the 23642 // value will be replaced with "sensitive". 23643 func (s IntelligentTieringConfiguration) String() string { 23644 return awsutil.Prettify(s) 23645 } 23646 23647 // GoString returns the string representation. 23648 // 23649 // API parameter values that are decorated as "sensitive" in the API will not 23650 // be included in the string output. The member name will be present, but the 23651 // value will be replaced with "sensitive". 23652 func (s IntelligentTieringConfiguration) GoString() string { 23653 return s.String() 23654 } 23655 23656 // Validate inspects the fields of the type to determine if they are valid. 23657 func (s *IntelligentTieringConfiguration) Validate() error { 23658 invalidParams := request.ErrInvalidParams{Context: "IntelligentTieringConfiguration"} 23659 if s.Id == nil { 23660 invalidParams.Add(request.NewErrParamRequired("Id")) 23661 } 23662 if s.Status == nil { 23663 invalidParams.Add(request.NewErrParamRequired("Status")) 23664 } 23665 if s.Tierings == nil { 23666 invalidParams.Add(request.NewErrParamRequired("Tierings")) 23667 } 23668 if s.Filter != nil { 23669 if err := s.Filter.Validate(); err != nil { 23670 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 23671 } 23672 } 23673 if s.Tierings != nil { 23674 for i, v := range s.Tierings { 23675 if v == nil { 23676 continue 23677 } 23678 if err := v.Validate(); err != nil { 23679 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tierings", i), err.(request.ErrInvalidParams)) 23680 } 23681 } 23682 } 23683 23684 if invalidParams.Len() > 0 { 23685 return invalidParams 23686 } 23687 return nil 23688 } 23689 23690 // SetFilter sets the Filter field's value. 23691 func (s *IntelligentTieringConfiguration) SetFilter(v *IntelligentTieringFilter) *IntelligentTieringConfiguration { 23692 s.Filter = v 23693 return s 23694 } 23695 23696 // SetId sets the Id field's value. 23697 func (s *IntelligentTieringConfiguration) SetId(v string) *IntelligentTieringConfiguration { 23698 s.Id = &v 23699 return s 23700 } 23701 23702 // SetStatus sets the Status field's value. 23703 func (s *IntelligentTieringConfiguration) SetStatus(v string) *IntelligentTieringConfiguration { 23704 s.Status = &v 23705 return s 23706 } 23707 23708 // SetTierings sets the Tierings field's value. 23709 func (s *IntelligentTieringConfiguration) SetTierings(v []*Tiering) *IntelligentTieringConfiguration { 23710 s.Tierings = v 23711 return s 23712 } 23713 23714 // The Filter is used to identify objects that the S3 Intelligent-Tiering configuration 23715 // applies to. 23716 type IntelligentTieringFilter struct { 23717 _ struct{} `type:"structure"` 23718 23719 // A conjunction (logical AND) of predicates, which is used in evaluating a 23720 // metrics filter. The operator must have at least two predicates, and an object 23721 // must match all of the predicates in order for the filter to apply. 23722 And *IntelligentTieringAndOperator `type:"structure"` 23723 23724 // An object key name prefix that identifies the subset of objects to which 23725 // the rule applies. 23726 // 23727 // Replacement must be made for object keys containing special characters (such 23728 // as carriage returns) when using XML requests. For more information, see XML 23729 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 23730 Prefix *string `type:"string"` 23731 23732 // A container of a key value name pair. 23733 Tag *Tag `type:"structure"` 23734 } 23735 23736 // String returns the string representation. 23737 // 23738 // API parameter values that are decorated as "sensitive" in the API will not 23739 // be included in the string output. The member name will be present, but the 23740 // value will be replaced with "sensitive". 23741 func (s IntelligentTieringFilter) String() string { 23742 return awsutil.Prettify(s) 23743 } 23744 23745 // GoString returns the string representation. 23746 // 23747 // API parameter values that are decorated as "sensitive" in the API will not 23748 // be included in the string output. The member name will be present, but the 23749 // value will be replaced with "sensitive". 23750 func (s IntelligentTieringFilter) GoString() string { 23751 return s.String() 23752 } 23753 23754 // Validate inspects the fields of the type to determine if they are valid. 23755 func (s *IntelligentTieringFilter) Validate() error { 23756 invalidParams := request.ErrInvalidParams{Context: "IntelligentTieringFilter"} 23757 if s.And != nil { 23758 if err := s.And.Validate(); err != nil { 23759 invalidParams.AddNested("And", err.(request.ErrInvalidParams)) 23760 } 23761 } 23762 if s.Tag != nil { 23763 if err := s.Tag.Validate(); err != nil { 23764 invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) 23765 } 23766 } 23767 23768 if invalidParams.Len() > 0 { 23769 return invalidParams 23770 } 23771 return nil 23772 } 23773 23774 // SetAnd sets the And field's value. 23775 func (s *IntelligentTieringFilter) SetAnd(v *IntelligentTieringAndOperator) *IntelligentTieringFilter { 23776 s.And = v 23777 return s 23778 } 23779 23780 // SetPrefix sets the Prefix field's value. 23781 func (s *IntelligentTieringFilter) SetPrefix(v string) *IntelligentTieringFilter { 23782 s.Prefix = &v 23783 return s 23784 } 23785 23786 // SetTag sets the Tag field's value. 23787 func (s *IntelligentTieringFilter) SetTag(v *Tag) *IntelligentTieringFilter { 23788 s.Tag = v 23789 return s 23790 } 23791 23792 // Specifies the inventory configuration for an Amazon S3 bucket. For more information, 23793 // see GET Bucket inventory (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) 23794 // in the Amazon S3 API Reference. 23795 type InventoryConfiguration struct { 23796 _ struct{} `type:"structure"` 23797 23798 // Contains information about where to publish the inventory results. 23799 // 23800 // Destination is a required field 23801 Destination *InventoryDestination `type:"structure" required:"true"` 23802 23803 // Specifies an inventory filter. The inventory only includes objects that meet 23804 // the filter's criteria. 23805 Filter *InventoryFilter `type:"structure"` 23806 23807 // The ID used to identify the inventory configuration. 23808 // 23809 // Id is a required field 23810 Id *string `type:"string" required:"true"` 23811 23812 // Object versions to include in the inventory list. If set to All, the list 23813 // includes all the object versions, which adds the version-related fields VersionId, 23814 // IsLatest, and DeleteMarker to the list. If set to Current, the list does 23815 // not contain these version-related fields. 23816 // 23817 // IncludedObjectVersions is a required field 23818 IncludedObjectVersions *string `type:"string" required:"true" enum:"InventoryIncludedObjectVersions"` 23819 23820 // Specifies whether the inventory is enabled or disabled. If set to True, an 23821 // inventory list is generated. If set to False, no inventory list is generated. 23822 // 23823 // IsEnabled is a required field 23824 IsEnabled *bool `type:"boolean" required:"true"` 23825 23826 // Contains the optional fields that are included in the inventory results. 23827 OptionalFields []*string `locationNameList:"Field" type:"list"` 23828 23829 // Specifies the schedule for generating inventory results. 23830 // 23831 // Schedule is a required field 23832 Schedule *InventorySchedule `type:"structure" required:"true"` 23833 } 23834 23835 // String returns the string representation. 23836 // 23837 // API parameter values that are decorated as "sensitive" in the API will not 23838 // be included in the string output. The member name will be present, but the 23839 // value will be replaced with "sensitive". 23840 func (s InventoryConfiguration) String() string { 23841 return awsutil.Prettify(s) 23842 } 23843 23844 // GoString returns the string representation. 23845 // 23846 // API parameter values that are decorated as "sensitive" in the API will not 23847 // be included in the string output. The member name will be present, but the 23848 // value will be replaced with "sensitive". 23849 func (s InventoryConfiguration) GoString() string { 23850 return s.String() 23851 } 23852 23853 // Validate inspects the fields of the type to determine if they are valid. 23854 func (s *InventoryConfiguration) Validate() error { 23855 invalidParams := request.ErrInvalidParams{Context: "InventoryConfiguration"} 23856 if s.Destination == nil { 23857 invalidParams.Add(request.NewErrParamRequired("Destination")) 23858 } 23859 if s.Id == nil { 23860 invalidParams.Add(request.NewErrParamRequired("Id")) 23861 } 23862 if s.IncludedObjectVersions == nil { 23863 invalidParams.Add(request.NewErrParamRequired("IncludedObjectVersions")) 23864 } 23865 if s.IsEnabled == nil { 23866 invalidParams.Add(request.NewErrParamRequired("IsEnabled")) 23867 } 23868 if s.Schedule == nil { 23869 invalidParams.Add(request.NewErrParamRequired("Schedule")) 23870 } 23871 if s.Destination != nil { 23872 if err := s.Destination.Validate(); err != nil { 23873 invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) 23874 } 23875 } 23876 if s.Filter != nil { 23877 if err := s.Filter.Validate(); err != nil { 23878 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 23879 } 23880 } 23881 if s.Schedule != nil { 23882 if err := s.Schedule.Validate(); err != nil { 23883 invalidParams.AddNested("Schedule", err.(request.ErrInvalidParams)) 23884 } 23885 } 23886 23887 if invalidParams.Len() > 0 { 23888 return invalidParams 23889 } 23890 return nil 23891 } 23892 23893 // SetDestination sets the Destination field's value. 23894 func (s *InventoryConfiguration) SetDestination(v *InventoryDestination) *InventoryConfiguration { 23895 s.Destination = v 23896 return s 23897 } 23898 23899 // SetFilter sets the Filter field's value. 23900 func (s *InventoryConfiguration) SetFilter(v *InventoryFilter) *InventoryConfiguration { 23901 s.Filter = v 23902 return s 23903 } 23904 23905 // SetId sets the Id field's value. 23906 func (s *InventoryConfiguration) SetId(v string) *InventoryConfiguration { 23907 s.Id = &v 23908 return s 23909 } 23910 23911 // SetIncludedObjectVersions sets the IncludedObjectVersions field's value. 23912 func (s *InventoryConfiguration) SetIncludedObjectVersions(v string) *InventoryConfiguration { 23913 s.IncludedObjectVersions = &v 23914 return s 23915 } 23916 23917 // SetIsEnabled sets the IsEnabled field's value. 23918 func (s *InventoryConfiguration) SetIsEnabled(v bool) *InventoryConfiguration { 23919 s.IsEnabled = &v 23920 return s 23921 } 23922 23923 // SetOptionalFields sets the OptionalFields field's value. 23924 func (s *InventoryConfiguration) SetOptionalFields(v []*string) *InventoryConfiguration { 23925 s.OptionalFields = v 23926 return s 23927 } 23928 23929 // SetSchedule sets the Schedule field's value. 23930 func (s *InventoryConfiguration) SetSchedule(v *InventorySchedule) *InventoryConfiguration { 23931 s.Schedule = v 23932 return s 23933 } 23934 23935 // Specifies the inventory configuration for an Amazon S3 bucket. 23936 type InventoryDestination struct { 23937 _ struct{} `type:"structure"` 23938 23939 // Contains the bucket name, file format, bucket owner (optional), and prefix 23940 // (optional) where inventory results are published. 23941 // 23942 // S3BucketDestination is a required field 23943 S3BucketDestination *InventoryS3BucketDestination `type:"structure" required:"true"` 23944 } 23945 23946 // String returns the string representation. 23947 // 23948 // API parameter values that are decorated as "sensitive" in the API will not 23949 // be included in the string output. The member name will be present, but the 23950 // value will be replaced with "sensitive". 23951 func (s InventoryDestination) String() string { 23952 return awsutil.Prettify(s) 23953 } 23954 23955 // GoString returns the string representation. 23956 // 23957 // API parameter values that are decorated as "sensitive" in the API will not 23958 // be included in the string output. The member name will be present, but the 23959 // value will be replaced with "sensitive". 23960 func (s InventoryDestination) GoString() string { 23961 return s.String() 23962 } 23963 23964 // Validate inspects the fields of the type to determine if they are valid. 23965 func (s *InventoryDestination) Validate() error { 23966 invalidParams := request.ErrInvalidParams{Context: "InventoryDestination"} 23967 if s.S3BucketDestination == nil { 23968 invalidParams.Add(request.NewErrParamRequired("S3BucketDestination")) 23969 } 23970 if s.S3BucketDestination != nil { 23971 if err := s.S3BucketDestination.Validate(); err != nil { 23972 invalidParams.AddNested("S3BucketDestination", err.(request.ErrInvalidParams)) 23973 } 23974 } 23975 23976 if invalidParams.Len() > 0 { 23977 return invalidParams 23978 } 23979 return nil 23980 } 23981 23982 // SetS3BucketDestination sets the S3BucketDestination field's value. 23983 func (s *InventoryDestination) SetS3BucketDestination(v *InventoryS3BucketDestination) *InventoryDestination { 23984 s.S3BucketDestination = v 23985 return s 23986 } 23987 23988 // Contains the type of server-side encryption used to encrypt the inventory 23989 // results. 23990 type InventoryEncryption struct { 23991 _ struct{} `type:"structure"` 23992 23993 // Specifies the use of SSE-KMS to encrypt delivered inventory reports. 23994 SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"` 23995 23996 // Specifies the use of SSE-S3 to encrypt delivered inventory reports. 23997 SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"` 23998 } 23999 24000 // String returns the string representation. 24001 // 24002 // API parameter values that are decorated as "sensitive" in the API will not 24003 // be included in the string output. The member name will be present, but the 24004 // value will be replaced with "sensitive". 24005 func (s InventoryEncryption) String() string { 24006 return awsutil.Prettify(s) 24007 } 24008 24009 // GoString returns the string representation. 24010 // 24011 // API parameter values that are decorated as "sensitive" in the API will not 24012 // be included in the string output. The member name will be present, but the 24013 // value will be replaced with "sensitive". 24014 func (s InventoryEncryption) GoString() string { 24015 return s.String() 24016 } 24017 24018 // Validate inspects the fields of the type to determine if they are valid. 24019 func (s *InventoryEncryption) Validate() error { 24020 invalidParams := request.ErrInvalidParams{Context: "InventoryEncryption"} 24021 if s.SSEKMS != nil { 24022 if err := s.SSEKMS.Validate(); err != nil { 24023 invalidParams.AddNested("SSEKMS", err.(request.ErrInvalidParams)) 24024 } 24025 } 24026 24027 if invalidParams.Len() > 0 { 24028 return invalidParams 24029 } 24030 return nil 24031 } 24032 24033 // SetSSEKMS sets the SSEKMS field's value. 24034 func (s *InventoryEncryption) SetSSEKMS(v *SSEKMS) *InventoryEncryption { 24035 s.SSEKMS = v 24036 return s 24037 } 24038 24039 // SetSSES3 sets the SSES3 field's value. 24040 func (s *InventoryEncryption) SetSSES3(v *SSES3) *InventoryEncryption { 24041 s.SSES3 = v 24042 return s 24043 } 24044 24045 // Specifies an inventory filter. The inventory only includes objects that meet 24046 // the filter's criteria. 24047 type InventoryFilter struct { 24048 _ struct{} `type:"structure"` 24049 24050 // The prefix that an object must have to be included in the inventory results. 24051 // 24052 // Prefix is a required field 24053 Prefix *string `type:"string" required:"true"` 24054 } 24055 24056 // String returns the string representation. 24057 // 24058 // API parameter values that are decorated as "sensitive" in the API will not 24059 // be included in the string output. The member name will be present, but the 24060 // value will be replaced with "sensitive". 24061 func (s InventoryFilter) String() string { 24062 return awsutil.Prettify(s) 24063 } 24064 24065 // GoString returns the string representation. 24066 // 24067 // API parameter values that are decorated as "sensitive" in the API will not 24068 // be included in the string output. The member name will be present, but the 24069 // value will be replaced with "sensitive". 24070 func (s InventoryFilter) GoString() string { 24071 return s.String() 24072 } 24073 24074 // Validate inspects the fields of the type to determine if they are valid. 24075 func (s *InventoryFilter) Validate() error { 24076 invalidParams := request.ErrInvalidParams{Context: "InventoryFilter"} 24077 if s.Prefix == nil { 24078 invalidParams.Add(request.NewErrParamRequired("Prefix")) 24079 } 24080 24081 if invalidParams.Len() > 0 { 24082 return invalidParams 24083 } 24084 return nil 24085 } 24086 24087 // SetPrefix sets the Prefix field's value. 24088 func (s *InventoryFilter) SetPrefix(v string) *InventoryFilter { 24089 s.Prefix = &v 24090 return s 24091 } 24092 24093 // Contains the bucket name, file format, bucket owner (optional), and prefix 24094 // (optional) where inventory results are published. 24095 type InventoryS3BucketDestination struct { 24096 _ struct{} `type:"structure"` 24097 24098 // The account ID that owns the destination S3 bucket. If no account ID is provided, 24099 // the owner is not validated before exporting data. 24100 // 24101 // Although this value is optional, we strongly recommend that you set it to 24102 // help prevent problems if the destination bucket ownership changes. 24103 AccountId *string `type:"string"` 24104 24105 // The Amazon Resource Name (ARN) of the bucket where inventory results will 24106 // be published. 24107 // 24108 // Bucket is a required field 24109 Bucket *string `type:"string" required:"true"` 24110 24111 // Contains the type of server-side encryption used to encrypt the inventory 24112 // results. 24113 Encryption *InventoryEncryption `type:"structure"` 24114 24115 // Specifies the output format of the inventory results. 24116 // 24117 // Format is a required field 24118 Format *string `type:"string" required:"true" enum:"InventoryFormat"` 24119 24120 // The prefix that is prepended to all inventory results. 24121 Prefix *string `type:"string"` 24122 } 24123 24124 // String returns the string representation. 24125 // 24126 // API parameter values that are decorated as "sensitive" in the API will not 24127 // be included in the string output. The member name will be present, but the 24128 // value will be replaced with "sensitive". 24129 func (s InventoryS3BucketDestination) String() string { 24130 return awsutil.Prettify(s) 24131 } 24132 24133 // GoString returns the string representation. 24134 // 24135 // API parameter values that are decorated as "sensitive" in the API will not 24136 // be included in the string output. The member name will be present, but the 24137 // value will be replaced with "sensitive". 24138 func (s InventoryS3BucketDestination) GoString() string { 24139 return s.String() 24140 } 24141 24142 // Validate inspects the fields of the type to determine if they are valid. 24143 func (s *InventoryS3BucketDestination) Validate() error { 24144 invalidParams := request.ErrInvalidParams{Context: "InventoryS3BucketDestination"} 24145 if s.Bucket == nil { 24146 invalidParams.Add(request.NewErrParamRequired("Bucket")) 24147 } 24148 if s.Format == nil { 24149 invalidParams.Add(request.NewErrParamRequired("Format")) 24150 } 24151 if s.Encryption != nil { 24152 if err := s.Encryption.Validate(); err != nil { 24153 invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams)) 24154 } 24155 } 24156 24157 if invalidParams.Len() > 0 { 24158 return invalidParams 24159 } 24160 return nil 24161 } 24162 24163 // SetAccountId sets the AccountId field's value. 24164 func (s *InventoryS3BucketDestination) SetAccountId(v string) *InventoryS3BucketDestination { 24165 s.AccountId = &v 24166 return s 24167 } 24168 24169 // SetBucket sets the Bucket field's value. 24170 func (s *InventoryS3BucketDestination) SetBucket(v string) *InventoryS3BucketDestination { 24171 s.Bucket = &v 24172 return s 24173 } 24174 24175 func (s *InventoryS3BucketDestination) getBucket() (v string) { 24176 if s.Bucket == nil { 24177 return v 24178 } 24179 return *s.Bucket 24180 } 24181 24182 // SetEncryption sets the Encryption field's value. 24183 func (s *InventoryS3BucketDestination) SetEncryption(v *InventoryEncryption) *InventoryS3BucketDestination { 24184 s.Encryption = v 24185 return s 24186 } 24187 24188 // SetFormat sets the Format field's value. 24189 func (s *InventoryS3BucketDestination) SetFormat(v string) *InventoryS3BucketDestination { 24190 s.Format = &v 24191 return s 24192 } 24193 24194 // SetPrefix sets the Prefix field's value. 24195 func (s *InventoryS3BucketDestination) SetPrefix(v string) *InventoryS3BucketDestination { 24196 s.Prefix = &v 24197 return s 24198 } 24199 24200 // Specifies the schedule for generating inventory results. 24201 type InventorySchedule struct { 24202 _ struct{} `type:"structure"` 24203 24204 // Specifies how frequently inventory results are produced. 24205 // 24206 // Frequency is a required field 24207 Frequency *string `type:"string" required:"true" enum:"InventoryFrequency"` 24208 } 24209 24210 // String returns the string representation. 24211 // 24212 // API parameter values that are decorated as "sensitive" in the API will not 24213 // be included in the string output. The member name will be present, but the 24214 // value will be replaced with "sensitive". 24215 func (s InventorySchedule) String() string { 24216 return awsutil.Prettify(s) 24217 } 24218 24219 // GoString returns the string representation. 24220 // 24221 // API parameter values that are decorated as "sensitive" in the API will not 24222 // be included in the string output. The member name will be present, but the 24223 // value will be replaced with "sensitive". 24224 func (s InventorySchedule) GoString() string { 24225 return s.String() 24226 } 24227 24228 // Validate inspects the fields of the type to determine if they are valid. 24229 func (s *InventorySchedule) Validate() error { 24230 invalidParams := request.ErrInvalidParams{Context: "InventorySchedule"} 24231 if s.Frequency == nil { 24232 invalidParams.Add(request.NewErrParamRequired("Frequency")) 24233 } 24234 24235 if invalidParams.Len() > 0 { 24236 return invalidParams 24237 } 24238 return nil 24239 } 24240 24241 // SetFrequency sets the Frequency field's value. 24242 func (s *InventorySchedule) SetFrequency(v string) *InventorySchedule { 24243 s.Frequency = &v 24244 return s 24245 } 24246 24247 // Specifies JSON as object's input serialization format. 24248 type JSONInput struct { 24249 _ struct{} `type:"structure"` 24250 24251 // The type of JSON. Valid values: Document, Lines. 24252 Type *string `type:"string" enum:"JSONType"` 24253 } 24254 24255 // String returns the string representation. 24256 // 24257 // API parameter values that are decorated as "sensitive" in the API will not 24258 // be included in the string output. The member name will be present, but the 24259 // value will be replaced with "sensitive". 24260 func (s JSONInput) String() string { 24261 return awsutil.Prettify(s) 24262 } 24263 24264 // GoString returns the string representation. 24265 // 24266 // API parameter values that are decorated as "sensitive" in the API will not 24267 // be included in the string output. The member name will be present, but the 24268 // value will be replaced with "sensitive". 24269 func (s JSONInput) GoString() string { 24270 return s.String() 24271 } 24272 24273 // SetType sets the Type field's value. 24274 func (s *JSONInput) SetType(v string) *JSONInput { 24275 s.Type = &v 24276 return s 24277 } 24278 24279 // Specifies JSON as request's output serialization format. 24280 type JSONOutput struct { 24281 _ struct{} `type:"structure"` 24282 24283 // The value used to separate individual records in the output. If no value 24284 // is specified, Amazon S3 uses a newline character ('\n'). 24285 RecordDelimiter *string `type:"string"` 24286 } 24287 24288 // String returns the string representation. 24289 // 24290 // API parameter values that are decorated as "sensitive" in the API will not 24291 // be included in the string output. The member name will be present, but the 24292 // value will be replaced with "sensitive". 24293 func (s JSONOutput) String() string { 24294 return awsutil.Prettify(s) 24295 } 24296 24297 // GoString returns the string representation. 24298 // 24299 // API parameter values that are decorated as "sensitive" in the API will not 24300 // be included in the string output. The member name will be present, but the 24301 // value will be replaced with "sensitive". 24302 func (s JSONOutput) GoString() string { 24303 return s.String() 24304 } 24305 24306 // SetRecordDelimiter sets the RecordDelimiter field's value. 24307 func (s *JSONOutput) SetRecordDelimiter(v string) *JSONOutput { 24308 s.RecordDelimiter = &v 24309 return s 24310 } 24311 24312 // A container for object key name prefix and suffix filtering rules. 24313 type KeyFilter struct { 24314 _ struct{} `type:"structure"` 24315 24316 // A list of containers for the key-value pair that defines the criteria for 24317 // the filter rule. 24318 FilterRules []*FilterRule `locationName:"FilterRule" type:"list" flattened:"true"` 24319 } 24320 24321 // String returns the string representation. 24322 // 24323 // API parameter values that are decorated as "sensitive" in the API will not 24324 // be included in the string output. The member name will be present, but the 24325 // value will be replaced with "sensitive". 24326 func (s KeyFilter) String() string { 24327 return awsutil.Prettify(s) 24328 } 24329 24330 // GoString returns the string representation. 24331 // 24332 // API parameter values that are decorated as "sensitive" in the API will not 24333 // be included in the string output. The member name will be present, but the 24334 // value will be replaced with "sensitive". 24335 func (s KeyFilter) GoString() string { 24336 return s.String() 24337 } 24338 24339 // SetFilterRules sets the FilterRules field's value. 24340 func (s *KeyFilter) SetFilterRules(v []*FilterRule) *KeyFilter { 24341 s.FilterRules = v 24342 return s 24343 } 24344 24345 // A container for specifying the configuration for Lambda notifications. 24346 type LambdaFunctionConfiguration struct { 24347 _ struct{} `type:"structure"` 24348 24349 // The Amazon S3 bucket event for which to invoke the Lambda function. For more 24350 // information, see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 24351 // in the Amazon S3 User Guide. 24352 // 24353 // Events is a required field 24354 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 24355 24356 // Specifies object key name filtering rules. For information about key name 24357 // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 24358 // in the Amazon S3 User Guide. 24359 Filter *NotificationConfigurationFilter `type:"structure"` 24360 24361 // An optional unique identifier for configurations in a notification configuration. 24362 // If you don't provide one, Amazon S3 will assign an ID. 24363 Id *string `type:"string"` 24364 24365 // The Amazon Resource Name (ARN) of the Lambda function that Amazon S3 invokes 24366 // when the specified event type occurs. 24367 // 24368 // LambdaFunctionArn is a required field 24369 LambdaFunctionArn *string `locationName:"CloudFunction" type:"string" required:"true"` 24370 } 24371 24372 // String returns the string representation. 24373 // 24374 // API parameter values that are decorated as "sensitive" in the API will not 24375 // be included in the string output. The member name will be present, but the 24376 // value will be replaced with "sensitive". 24377 func (s LambdaFunctionConfiguration) String() string { 24378 return awsutil.Prettify(s) 24379 } 24380 24381 // GoString returns the string representation. 24382 // 24383 // API parameter values that are decorated as "sensitive" in the API will not 24384 // be included in the string output. The member name will be present, but the 24385 // value will be replaced with "sensitive". 24386 func (s LambdaFunctionConfiguration) GoString() string { 24387 return s.String() 24388 } 24389 24390 // Validate inspects the fields of the type to determine if they are valid. 24391 func (s *LambdaFunctionConfiguration) Validate() error { 24392 invalidParams := request.ErrInvalidParams{Context: "LambdaFunctionConfiguration"} 24393 if s.Events == nil { 24394 invalidParams.Add(request.NewErrParamRequired("Events")) 24395 } 24396 if s.LambdaFunctionArn == nil { 24397 invalidParams.Add(request.NewErrParamRequired("LambdaFunctionArn")) 24398 } 24399 24400 if invalidParams.Len() > 0 { 24401 return invalidParams 24402 } 24403 return nil 24404 } 24405 24406 // SetEvents sets the Events field's value. 24407 func (s *LambdaFunctionConfiguration) SetEvents(v []*string) *LambdaFunctionConfiguration { 24408 s.Events = v 24409 return s 24410 } 24411 24412 // SetFilter sets the Filter field's value. 24413 func (s *LambdaFunctionConfiguration) SetFilter(v *NotificationConfigurationFilter) *LambdaFunctionConfiguration { 24414 s.Filter = v 24415 return s 24416 } 24417 24418 // SetId sets the Id field's value. 24419 func (s *LambdaFunctionConfiguration) SetId(v string) *LambdaFunctionConfiguration { 24420 s.Id = &v 24421 return s 24422 } 24423 24424 // SetLambdaFunctionArn sets the LambdaFunctionArn field's value. 24425 func (s *LambdaFunctionConfiguration) SetLambdaFunctionArn(v string) *LambdaFunctionConfiguration { 24426 s.LambdaFunctionArn = &v 24427 return s 24428 } 24429 24430 // Container for lifecycle rules. You can add as many as 1000 rules. 24431 type LifecycleConfiguration struct { 24432 _ struct{} `type:"structure"` 24433 24434 // Specifies lifecycle configuration rules for an Amazon S3 bucket. 24435 // 24436 // Rules is a required field 24437 Rules []*Rule `locationName:"Rule" type:"list" flattened:"true" required:"true"` 24438 } 24439 24440 // String returns the string representation. 24441 // 24442 // API parameter values that are decorated as "sensitive" in the API will not 24443 // be included in the string output. The member name will be present, but the 24444 // value will be replaced with "sensitive". 24445 func (s LifecycleConfiguration) String() string { 24446 return awsutil.Prettify(s) 24447 } 24448 24449 // GoString returns the string representation. 24450 // 24451 // API parameter values that are decorated as "sensitive" in the API will not 24452 // be included in the string output. The member name will be present, but the 24453 // value will be replaced with "sensitive". 24454 func (s LifecycleConfiguration) GoString() string { 24455 return s.String() 24456 } 24457 24458 // Validate inspects the fields of the type to determine if they are valid. 24459 func (s *LifecycleConfiguration) Validate() error { 24460 invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"} 24461 if s.Rules == nil { 24462 invalidParams.Add(request.NewErrParamRequired("Rules")) 24463 } 24464 if s.Rules != nil { 24465 for i, v := range s.Rules { 24466 if v == nil { 24467 continue 24468 } 24469 if err := v.Validate(); err != nil { 24470 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 24471 } 24472 } 24473 } 24474 24475 if invalidParams.Len() > 0 { 24476 return invalidParams 24477 } 24478 return nil 24479 } 24480 24481 // SetRules sets the Rules field's value. 24482 func (s *LifecycleConfiguration) SetRules(v []*Rule) *LifecycleConfiguration { 24483 s.Rules = v 24484 return s 24485 } 24486 24487 // Container for the expiration for the lifecycle of the object. 24488 type LifecycleExpiration struct { 24489 _ struct{} `type:"structure"` 24490 24491 // Indicates at what date the object is to be moved or deleted. Should be in 24492 // GMT ISO 8601 Format. 24493 Date *time.Time `type:"timestamp" timestampFormat:"iso8601"` 24494 24495 // Indicates the lifetime, in days, of the objects that are subject to the rule. 24496 // The value must be a non-zero positive integer. 24497 Days *int64 `type:"integer"` 24498 24499 // Indicates whether Amazon S3 will remove a delete marker with no noncurrent 24500 // versions. If set to true, the delete marker will be expired; if set to false 24501 // the policy takes no action. This cannot be specified with Days or Date in 24502 // a Lifecycle Expiration Policy. 24503 ExpiredObjectDeleteMarker *bool `type:"boolean"` 24504 } 24505 24506 // String returns the string representation. 24507 // 24508 // API parameter values that are decorated as "sensitive" in the API will not 24509 // be included in the string output. The member name will be present, but the 24510 // value will be replaced with "sensitive". 24511 func (s LifecycleExpiration) String() string { 24512 return awsutil.Prettify(s) 24513 } 24514 24515 // GoString returns the string representation. 24516 // 24517 // API parameter values that are decorated as "sensitive" in the API will not 24518 // be included in the string output. The member name will be present, but the 24519 // value will be replaced with "sensitive". 24520 func (s LifecycleExpiration) GoString() string { 24521 return s.String() 24522 } 24523 24524 // SetDate sets the Date field's value. 24525 func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration { 24526 s.Date = &v 24527 return s 24528 } 24529 24530 // SetDays sets the Days field's value. 24531 func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration { 24532 s.Days = &v 24533 return s 24534 } 24535 24536 // SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value. 24537 func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration { 24538 s.ExpiredObjectDeleteMarker = &v 24539 return s 24540 } 24541 24542 // A lifecycle rule for individual objects in an Amazon S3 bucket. 24543 type LifecycleRule struct { 24544 _ struct{} `type:"structure"` 24545 24546 // Specifies the days since the initiation of an incomplete multipart upload 24547 // that Amazon S3 will wait before permanently removing all parts of the upload. 24548 // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket 24549 // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) 24550 // in the Amazon S3 User Guide. 24551 AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` 24552 24553 // Specifies the expiration for the lifecycle of the object in the form of date, 24554 // days and, whether the object has a delete marker. 24555 Expiration *LifecycleExpiration `type:"structure"` 24556 24557 // The Filter is used to identify objects that a Lifecycle Rule applies to. 24558 // A Filter must have exactly one of Prefix, Tag, or And specified. Filter is 24559 // required if the LifecycleRule does not containt a Prefix element. 24560 Filter *LifecycleRuleFilter `type:"structure"` 24561 24562 // Unique identifier for the rule. The value cannot be longer than 255 characters. 24563 ID *string `type:"string"` 24564 24565 // Specifies when noncurrent object versions expire. Upon expiration, Amazon 24566 // S3 permanently deletes the noncurrent object versions. You set this lifecycle 24567 // configuration action on a bucket that has versioning enabled (or suspended) 24568 // to request that Amazon S3 delete noncurrent object versions at a specific 24569 // period in the object's lifetime. 24570 NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` 24571 24572 // Specifies the transition rule for the lifecycle rule that describes when 24573 // noncurrent objects transition to a specific storage class. If your bucket 24574 // is versioning-enabled (or versioning is suspended), you can set this action 24575 // to request that Amazon S3 transition noncurrent object versions to a specific 24576 // storage class at a set period in the object's lifetime. 24577 NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationName:"NoncurrentVersionTransition" type:"list" flattened:"true"` 24578 24579 // Prefix identifying one or more objects to which the rule applies. This is 24580 // no longer used; use Filter instead. 24581 // 24582 // Replacement must be made for object keys containing special characters (such 24583 // as carriage returns) when using XML requests. For more information, see XML 24584 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 24585 // 24586 // Deprecated: Prefix has been deprecated 24587 Prefix *string `deprecated:"true" type:"string"` 24588 24589 // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule 24590 // is not currently being applied. 24591 // 24592 // Status is a required field 24593 Status *string `type:"string" required:"true" enum:"ExpirationStatus"` 24594 24595 // Specifies when an Amazon S3 object transitions to a specified storage class. 24596 Transitions []*Transition `locationName:"Transition" type:"list" flattened:"true"` 24597 } 24598 24599 // String returns the string representation. 24600 // 24601 // API parameter values that are decorated as "sensitive" in the API will not 24602 // be included in the string output. The member name will be present, but the 24603 // value will be replaced with "sensitive". 24604 func (s LifecycleRule) String() string { 24605 return awsutil.Prettify(s) 24606 } 24607 24608 // GoString returns the string representation. 24609 // 24610 // API parameter values that are decorated as "sensitive" in the API will not 24611 // be included in the string output. The member name will be present, but the 24612 // value will be replaced with "sensitive". 24613 func (s LifecycleRule) GoString() string { 24614 return s.String() 24615 } 24616 24617 // Validate inspects the fields of the type to determine if they are valid. 24618 func (s *LifecycleRule) Validate() error { 24619 invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"} 24620 if s.Status == nil { 24621 invalidParams.Add(request.NewErrParamRequired("Status")) 24622 } 24623 if s.Filter != nil { 24624 if err := s.Filter.Validate(); err != nil { 24625 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 24626 } 24627 } 24628 24629 if invalidParams.Len() > 0 { 24630 return invalidParams 24631 } 24632 return nil 24633 } 24634 24635 // SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value. 24636 func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule { 24637 s.AbortIncompleteMultipartUpload = v 24638 return s 24639 } 24640 24641 // SetExpiration sets the Expiration field's value. 24642 func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule { 24643 s.Expiration = v 24644 return s 24645 } 24646 24647 // SetFilter sets the Filter field's value. 24648 func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule { 24649 s.Filter = v 24650 return s 24651 } 24652 24653 // SetID sets the ID field's value. 24654 func (s *LifecycleRule) SetID(v string) *LifecycleRule { 24655 s.ID = &v 24656 return s 24657 } 24658 24659 // SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value. 24660 func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule { 24661 s.NoncurrentVersionExpiration = v 24662 return s 24663 } 24664 24665 // SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value. 24666 func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule { 24667 s.NoncurrentVersionTransitions = v 24668 return s 24669 } 24670 24671 // SetPrefix sets the Prefix field's value. 24672 func (s *LifecycleRule) SetPrefix(v string) *LifecycleRule { 24673 s.Prefix = &v 24674 return s 24675 } 24676 24677 // SetStatus sets the Status field's value. 24678 func (s *LifecycleRule) SetStatus(v string) *LifecycleRule { 24679 s.Status = &v 24680 return s 24681 } 24682 24683 // SetTransitions sets the Transitions field's value. 24684 func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule { 24685 s.Transitions = v 24686 return s 24687 } 24688 24689 // This is used in a Lifecycle Rule Filter to apply a logical AND to two or 24690 // more predicates. The Lifecycle Rule will apply to any object matching all 24691 // of the predicates configured inside the And operator. 24692 type LifecycleRuleAndOperator struct { 24693 _ struct{} `type:"structure"` 24694 24695 // Prefix identifying one or more objects to which the rule applies. 24696 Prefix *string `type:"string"` 24697 24698 // All of these tags must exist in the object's tag set in order for the rule 24699 // to apply. 24700 Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` 24701 } 24702 24703 // String returns the string representation. 24704 // 24705 // API parameter values that are decorated as "sensitive" in the API will not 24706 // be included in the string output. The member name will be present, but the 24707 // value will be replaced with "sensitive". 24708 func (s LifecycleRuleAndOperator) String() string { 24709 return awsutil.Prettify(s) 24710 } 24711 24712 // GoString returns the string representation. 24713 // 24714 // API parameter values that are decorated as "sensitive" in the API will not 24715 // be included in the string output. The member name will be present, but the 24716 // value will be replaced with "sensitive". 24717 func (s LifecycleRuleAndOperator) GoString() string { 24718 return s.String() 24719 } 24720 24721 // Validate inspects the fields of the type to determine if they are valid. 24722 func (s *LifecycleRuleAndOperator) Validate() error { 24723 invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"} 24724 if s.Tags != nil { 24725 for i, v := range s.Tags { 24726 if v == nil { 24727 continue 24728 } 24729 if err := v.Validate(); err != nil { 24730 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 24731 } 24732 } 24733 } 24734 24735 if invalidParams.Len() > 0 { 24736 return invalidParams 24737 } 24738 return nil 24739 } 24740 24741 // SetPrefix sets the Prefix field's value. 24742 func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator { 24743 s.Prefix = &v 24744 return s 24745 } 24746 24747 // SetTags sets the Tags field's value. 24748 func (s *LifecycleRuleAndOperator) SetTags(v []*Tag) *LifecycleRuleAndOperator { 24749 s.Tags = v 24750 return s 24751 } 24752 24753 // The Filter is used to identify objects that a Lifecycle Rule applies to. 24754 // A Filter must have exactly one of Prefix, Tag, or And specified. 24755 type LifecycleRuleFilter struct { 24756 _ struct{} `type:"structure"` 24757 24758 // This is used in a Lifecycle Rule Filter to apply a logical AND to two or 24759 // more predicates. The Lifecycle Rule will apply to any object matching all 24760 // of the predicates configured inside the And operator. 24761 And *LifecycleRuleAndOperator `type:"structure"` 24762 24763 // Prefix identifying one or more objects to which the rule applies. 24764 // 24765 // Replacement must be made for object keys containing special characters (such 24766 // as carriage returns) when using XML requests. For more information, see XML 24767 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 24768 Prefix *string `type:"string"` 24769 24770 // This tag must exist in the object's tag set in order for the rule to apply. 24771 Tag *Tag `type:"structure"` 24772 } 24773 24774 // String returns the string representation. 24775 // 24776 // API parameter values that are decorated as "sensitive" in the API will not 24777 // be included in the string output. The member name will be present, but the 24778 // value will be replaced with "sensitive". 24779 func (s LifecycleRuleFilter) String() string { 24780 return awsutil.Prettify(s) 24781 } 24782 24783 // GoString returns the string representation. 24784 // 24785 // API parameter values that are decorated as "sensitive" in the API will not 24786 // be included in the string output. The member name will be present, but the 24787 // value will be replaced with "sensitive". 24788 func (s LifecycleRuleFilter) GoString() string { 24789 return s.String() 24790 } 24791 24792 // Validate inspects the fields of the type to determine if they are valid. 24793 func (s *LifecycleRuleFilter) Validate() error { 24794 invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"} 24795 if s.And != nil { 24796 if err := s.And.Validate(); err != nil { 24797 invalidParams.AddNested("And", err.(request.ErrInvalidParams)) 24798 } 24799 } 24800 if s.Tag != nil { 24801 if err := s.Tag.Validate(); err != nil { 24802 invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) 24803 } 24804 } 24805 24806 if invalidParams.Len() > 0 { 24807 return invalidParams 24808 } 24809 return nil 24810 } 24811 24812 // SetAnd sets the And field's value. 24813 func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter { 24814 s.And = v 24815 return s 24816 } 24817 24818 // SetPrefix sets the Prefix field's value. 24819 func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter { 24820 s.Prefix = &v 24821 return s 24822 } 24823 24824 // SetTag sets the Tag field's value. 24825 func (s *LifecycleRuleFilter) SetTag(v *Tag) *LifecycleRuleFilter { 24826 s.Tag = v 24827 return s 24828 } 24829 24830 type ListBucketAnalyticsConfigurationsInput struct { 24831 _ struct{} `locationName:"ListBucketAnalyticsConfigurationsRequest" type:"structure"` 24832 24833 // The name of the bucket from which analytics configurations are retrieved. 24834 // 24835 // Bucket is a required field 24836 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 24837 24838 // The ContinuationToken that represents a placeholder from where this request 24839 // should begin. 24840 ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` 24841 24842 // The account ID of the expected bucket owner. If the bucket is owned by a 24843 // different account, the request will fail with an HTTP 403 (Access Denied) 24844 // error. 24845 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 24846 } 24847 24848 // String returns the string representation. 24849 // 24850 // API parameter values that are decorated as "sensitive" in the API will not 24851 // be included in the string output. The member name will be present, but the 24852 // value will be replaced with "sensitive". 24853 func (s ListBucketAnalyticsConfigurationsInput) String() string { 24854 return awsutil.Prettify(s) 24855 } 24856 24857 // GoString returns the string representation. 24858 // 24859 // API parameter values that are decorated as "sensitive" in the API will not 24860 // be included in the string output. The member name will be present, but the 24861 // value will be replaced with "sensitive". 24862 func (s ListBucketAnalyticsConfigurationsInput) GoString() string { 24863 return s.String() 24864 } 24865 24866 // Validate inspects the fields of the type to determine if they are valid. 24867 func (s *ListBucketAnalyticsConfigurationsInput) Validate() error { 24868 invalidParams := request.ErrInvalidParams{Context: "ListBucketAnalyticsConfigurationsInput"} 24869 if s.Bucket == nil { 24870 invalidParams.Add(request.NewErrParamRequired("Bucket")) 24871 } 24872 if s.Bucket != nil && len(*s.Bucket) < 1 { 24873 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 24874 } 24875 24876 if invalidParams.Len() > 0 { 24877 return invalidParams 24878 } 24879 return nil 24880 } 24881 24882 // SetBucket sets the Bucket field's value. 24883 func (s *ListBucketAnalyticsConfigurationsInput) SetBucket(v string) *ListBucketAnalyticsConfigurationsInput { 24884 s.Bucket = &v 24885 return s 24886 } 24887 24888 func (s *ListBucketAnalyticsConfigurationsInput) getBucket() (v string) { 24889 if s.Bucket == nil { 24890 return v 24891 } 24892 return *s.Bucket 24893 } 24894 24895 // SetContinuationToken sets the ContinuationToken field's value. 24896 func (s *ListBucketAnalyticsConfigurationsInput) SetContinuationToken(v string) *ListBucketAnalyticsConfigurationsInput { 24897 s.ContinuationToken = &v 24898 return s 24899 } 24900 24901 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 24902 func (s *ListBucketAnalyticsConfigurationsInput) SetExpectedBucketOwner(v string) *ListBucketAnalyticsConfigurationsInput { 24903 s.ExpectedBucketOwner = &v 24904 return s 24905 } 24906 24907 func (s *ListBucketAnalyticsConfigurationsInput) getEndpointARN() (arn.Resource, error) { 24908 if s.Bucket == nil { 24909 return nil, fmt.Errorf("member Bucket is nil") 24910 } 24911 return parseEndpointARN(*s.Bucket) 24912 } 24913 24914 func (s *ListBucketAnalyticsConfigurationsInput) hasEndpointARN() bool { 24915 if s.Bucket == nil { 24916 return false 24917 } 24918 return arn.IsARN(*s.Bucket) 24919 } 24920 24921 // updateArnableField updates the value of the input field that 24922 // takes an ARN as an input. This method is useful to backfill 24923 // the parsed resource name from ARN into the input member. 24924 // It returns a pointer to a modified copy of input and an error. 24925 // Note that original input is not modified. 24926 func (s ListBucketAnalyticsConfigurationsInput) updateArnableField(v string) (interface{}, error) { 24927 if s.Bucket == nil { 24928 return nil, fmt.Errorf("member Bucket is nil") 24929 } 24930 s.Bucket = aws.String(v) 24931 return &s, nil 24932 } 24933 24934 type ListBucketAnalyticsConfigurationsOutput struct { 24935 _ struct{} `type:"structure"` 24936 24937 // The list of analytics configurations for a bucket. 24938 AnalyticsConfigurationList []*AnalyticsConfiguration `locationName:"AnalyticsConfiguration" type:"list" flattened:"true"` 24939 24940 // The marker that is used as a starting point for this analytics configuration 24941 // list response. This value is present if it was sent in the request. 24942 ContinuationToken *string `type:"string"` 24943 24944 // Indicates whether the returned list of analytics configurations is complete. 24945 // A value of true indicates that the list is not complete and the NextContinuationToken 24946 // will be provided for a subsequent request. 24947 IsTruncated *bool `type:"boolean"` 24948 24949 // NextContinuationToken is sent when isTruncated is true, which indicates that 24950 // there are more analytics configurations to list. The next request must include 24951 // this NextContinuationToken. The token is obfuscated and is not a usable value. 24952 NextContinuationToken *string `type:"string"` 24953 } 24954 24955 // String returns the string representation. 24956 // 24957 // API parameter values that are decorated as "sensitive" in the API will not 24958 // be included in the string output. The member name will be present, but the 24959 // value will be replaced with "sensitive". 24960 func (s ListBucketAnalyticsConfigurationsOutput) String() string { 24961 return awsutil.Prettify(s) 24962 } 24963 24964 // GoString returns the string representation. 24965 // 24966 // API parameter values that are decorated as "sensitive" in the API will not 24967 // be included in the string output. The member name will be present, but the 24968 // value will be replaced with "sensitive". 24969 func (s ListBucketAnalyticsConfigurationsOutput) GoString() string { 24970 return s.String() 24971 } 24972 24973 // SetAnalyticsConfigurationList sets the AnalyticsConfigurationList field's value. 24974 func (s *ListBucketAnalyticsConfigurationsOutput) SetAnalyticsConfigurationList(v []*AnalyticsConfiguration) *ListBucketAnalyticsConfigurationsOutput { 24975 s.AnalyticsConfigurationList = v 24976 return s 24977 } 24978 24979 // SetContinuationToken sets the ContinuationToken field's value. 24980 func (s *ListBucketAnalyticsConfigurationsOutput) SetContinuationToken(v string) *ListBucketAnalyticsConfigurationsOutput { 24981 s.ContinuationToken = &v 24982 return s 24983 } 24984 24985 // SetIsTruncated sets the IsTruncated field's value. 24986 func (s *ListBucketAnalyticsConfigurationsOutput) SetIsTruncated(v bool) *ListBucketAnalyticsConfigurationsOutput { 24987 s.IsTruncated = &v 24988 return s 24989 } 24990 24991 // SetNextContinuationToken sets the NextContinuationToken field's value. 24992 func (s *ListBucketAnalyticsConfigurationsOutput) SetNextContinuationToken(v string) *ListBucketAnalyticsConfigurationsOutput { 24993 s.NextContinuationToken = &v 24994 return s 24995 } 24996 24997 type ListBucketIntelligentTieringConfigurationsInput struct { 24998 _ struct{} `locationName:"ListBucketIntelligentTieringConfigurationsRequest" type:"structure"` 24999 25000 // The name of the Amazon S3 bucket whose configuration you want to modify or 25001 // retrieve. 25002 // 25003 // Bucket is a required field 25004 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 25005 25006 // The ContinuationToken that represents a placeholder from where this request 25007 // should begin. 25008 ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` 25009 } 25010 25011 // String returns the string representation. 25012 // 25013 // API parameter values that are decorated as "sensitive" in the API will not 25014 // be included in the string output. The member name will be present, but the 25015 // value will be replaced with "sensitive". 25016 func (s ListBucketIntelligentTieringConfigurationsInput) String() string { 25017 return awsutil.Prettify(s) 25018 } 25019 25020 // GoString returns the string representation. 25021 // 25022 // API parameter values that are decorated as "sensitive" in the API will not 25023 // be included in the string output. The member name will be present, but the 25024 // value will be replaced with "sensitive". 25025 func (s ListBucketIntelligentTieringConfigurationsInput) GoString() string { 25026 return s.String() 25027 } 25028 25029 // Validate inspects the fields of the type to determine if they are valid. 25030 func (s *ListBucketIntelligentTieringConfigurationsInput) Validate() error { 25031 invalidParams := request.ErrInvalidParams{Context: "ListBucketIntelligentTieringConfigurationsInput"} 25032 if s.Bucket == nil { 25033 invalidParams.Add(request.NewErrParamRequired("Bucket")) 25034 } 25035 if s.Bucket != nil && len(*s.Bucket) < 1 { 25036 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 25037 } 25038 25039 if invalidParams.Len() > 0 { 25040 return invalidParams 25041 } 25042 return nil 25043 } 25044 25045 // SetBucket sets the Bucket field's value. 25046 func (s *ListBucketIntelligentTieringConfigurationsInput) SetBucket(v string) *ListBucketIntelligentTieringConfigurationsInput { 25047 s.Bucket = &v 25048 return s 25049 } 25050 25051 func (s *ListBucketIntelligentTieringConfigurationsInput) getBucket() (v string) { 25052 if s.Bucket == nil { 25053 return v 25054 } 25055 return *s.Bucket 25056 } 25057 25058 // SetContinuationToken sets the ContinuationToken field's value. 25059 func (s *ListBucketIntelligentTieringConfigurationsInput) SetContinuationToken(v string) *ListBucketIntelligentTieringConfigurationsInput { 25060 s.ContinuationToken = &v 25061 return s 25062 } 25063 25064 func (s *ListBucketIntelligentTieringConfigurationsInput) getEndpointARN() (arn.Resource, error) { 25065 if s.Bucket == nil { 25066 return nil, fmt.Errorf("member Bucket is nil") 25067 } 25068 return parseEndpointARN(*s.Bucket) 25069 } 25070 25071 func (s *ListBucketIntelligentTieringConfigurationsInput) hasEndpointARN() bool { 25072 if s.Bucket == nil { 25073 return false 25074 } 25075 return arn.IsARN(*s.Bucket) 25076 } 25077 25078 // updateArnableField updates the value of the input field that 25079 // takes an ARN as an input. This method is useful to backfill 25080 // the parsed resource name from ARN into the input member. 25081 // It returns a pointer to a modified copy of input and an error. 25082 // Note that original input is not modified. 25083 func (s ListBucketIntelligentTieringConfigurationsInput) updateArnableField(v string) (interface{}, error) { 25084 if s.Bucket == nil { 25085 return nil, fmt.Errorf("member Bucket is nil") 25086 } 25087 s.Bucket = aws.String(v) 25088 return &s, nil 25089 } 25090 25091 type ListBucketIntelligentTieringConfigurationsOutput struct { 25092 _ struct{} `type:"structure"` 25093 25094 // The ContinuationToken that represents a placeholder from where this request 25095 // should begin. 25096 ContinuationToken *string `type:"string"` 25097 25098 // The list of S3 Intelligent-Tiering configurations for a bucket. 25099 IntelligentTieringConfigurationList []*IntelligentTieringConfiguration `locationName:"IntelligentTieringConfiguration" type:"list" flattened:"true"` 25100 25101 // Indicates whether the returned list of analytics configurations is complete. 25102 // A value of true indicates that the list is not complete and the NextContinuationToken 25103 // will be provided for a subsequent request. 25104 IsTruncated *bool `type:"boolean"` 25105 25106 // The marker used to continue this inventory configuration listing. Use the 25107 // NextContinuationToken from this response to continue the listing in a subsequent 25108 // request. The continuation token is an opaque value that Amazon S3 understands. 25109 NextContinuationToken *string `type:"string"` 25110 } 25111 25112 // String returns the string representation. 25113 // 25114 // API parameter values that are decorated as "sensitive" in the API will not 25115 // be included in the string output. The member name will be present, but the 25116 // value will be replaced with "sensitive". 25117 func (s ListBucketIntelligentTieringConfigurationsOutput) String() string { 25118 return awsutil.Prettify(s) 25119 } 25120 25121 // GoString returns the string representation. 25122 // 25123 // API parameter values that are decorated as "sensitive" in the API will not 25124 // be included in the string output. The member name will be present, but the 25125 // value will be replaced with "sensitive". 25126 func (s ListBucketIntelligentTieringConfigurationsOutput) GoString() string { 25127 return s.String() 25128 } 25129 25130 // SetContinuationToken sets the ContinuationToken field's value. 25131 func (s *ListBucketIntelligentTieringConfigurationsOutput) SetContinuationToken(v string) *ListBucketIntelligentTieringConfigurationsOutput { 25132 s.ContinuationToken = &v 25133 return s 25134 } 25135 25136 // SetIntelligentTieringConfigurationList sets the IntelligentTieringConfigurationList field's value. 25137 func (s *ListBucketIntelligentTieringConfigurationsOutput) SetIntelligentTieringConfigurationList(v []*IntelligentTieringConfiguration) *ListBucketIntelligentTieringConfigurationsOutput { 25138 s.IntelligentTieringConfigurationList = v 25139 return s 25140 } 25141 25142 // SetIsTruncated sets the IsTruncated field's value. 25143 func (s *ListBucketIntelligentTieringConfigurationsOutput) SetIsTruncated(v bool) *ListBucketIntelligentTieringConfigurationsOutput { 25144 s.IsTruncated = &v 25145 return s 25146 } 25147 25148 // SetNextContinuationToken sets the NextContinuationToken field's value. 25149 func (s *ListBucketIntelligentTieringConfigurationsOutput) SetNextContinuationToken(v string) *ListBucketIntelligentTieringConfigurationsOutput { 25150 s.NextContinuationToken = &v 25151 return s 25152 } 25153 25154 type ListBucketInventoryConfigurationsInput struct { 25155 _ struct{} `locationName:"ListBucketInventoryConfigurationsRequest" type:"structure"` 25156 25157 // The name of the bucket containing the inventory configurations to retrieve. 25158 // 25159 // Bucket is a required field 25160 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 25161 25162 // The marker used to continue an inventory configuration listing that has been 25163 // truncated. Use the NextContinuationToken from a previously truncated list 25164 // response to continue the listing. The continuation token is an opaque value 25165 // that Amazon S3 understands. 25166 ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` 25167 25168 // The account ID of the expected bucket owner. If the bucket is owned by a 25169 // different account, the request will fail with an HTTP 403 (Access Denied) 25170 // error. 25171 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 25172 } 25173 25174 // String returns the string representation. 25175 // 25176 // API parameter values that are decorated as "sensitive" in the API will not 25177 // be included in the string output. The member name will be present, but the 25178 // value will be replaced with "sensitive". 25179 func (s ListBucketInventoryConfigurationsInput) String() string { 25180 return awsutil.Prettify(s) 25181 } 25182 25183 // GoString returns the string representation. 25184 // 25185 // API parameter values that are decorated as "sensitive" in the API will not 25186 // be included in the string output. The member name will be present, but the 25187 // value will be replaced with "sensitive". 25188 func (s ListBucketInventoryConfigurationsInput) GoString() string { 25189 return s.String() 25190 } 25191 25192 // Validate inspects the fields of the type to determine if they are valid. 25193 func (s *ListBucketInventoryConfigurationsInput) Validate() error { 25194 invalidParams := request.ErrInvalidParams{Context: "ListBucketInventoryConfigurationsInput"} 25195 if s.Bucket == nil { 25196 invalidParams.Add(request.NewErrParamRequired("Bucket")) 25197 } 25198 if s.Bucket != nil && len(*s.Bucket) < 1 { 25199 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 25200 } 25201 25202 if invalidParams.Len() > 0 { 25203 return invalidParams 25204 } 25205 return nil 25206 } 25207 25208 // SetBucket sets the Bucket field's value. 25209 func (s *ListBucketInventoryConfigurationsInput) SetBucket(v string) *ListBucketInventoryConfigurationsInput { 25210 s.Bucket = &v 25211 return s 25212 } 25213 25214 func (s *ListBucketInventoryConfigurationsInput) getBucket() (v string) { 25215 if s.Bucket == nil { 25216 return v 25217 } 25218 return *s.Bucket 25219 } 25220 25221 // SetContinuationToken sets the ContinuationToken field's value. 25222 func (s *ListBucketInventoryConfigurationsInput) SetContinuationToken(v string) *ListBucketInventoryConfigurationsInput { 25223 s.ContinuationToken = &v 25224 return s 25225 } 25226 25227 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 25228 func (s *ListBucketInventoryConfigurationsInput) SetExpectedBucketOwner(v string) *ListBucketInventoryConfigurationsInput { 25229 s.ExpectedBucketOwner = &v 25230 return s 25231 } 25232 25233 func (s *ListBucketInventoryConfigurationsInput) getEndpointARN() (arn.Resource, error) { 25234 if s.Bucket == nil { 25235 return nil, fmt.Errorf("member Bucket is nil") 25236 } 25237 return parseEndpointARN(*s.Bucket) 25238 } 25239 25240 func (s *ListBucketInventoryConfigurationsInput) hasEndpointARN() bool { 25241 if s.Bucket == nil { 25242 return false 25243 } 25244 return arn.IsARN(*s.Bucket) 25245 } 25246 25247 // updateArnableField updates the value of the input field that 25248 // takes an ARN as an input. This method is useful to backfill 25249 // the parsed resource name from ARN into the input member. 25250 // It returns a pointer to a modified copy of input and an error. 25251 // Note that original input is not modified. 25252 func (s ListBucketInventoryConfigurationsInput) updateArnableField(v string) (interface{}, error) { 25253 if s.Bucket == nil { 25254 return nil, fmt.Errorf("member Bucket is nil") 25255 } 25256 s.Bucket = aws.String(v) 25257 return &s, nil 25258 } 25259 25260 type ListBucketInventoryConfigurationsOutput struct { 25261 _ struct{} `type:"structure"` 25262 25263 // If sent in the request, the marker that is used as a starting point for this 25264 // inventory configuration list response. 25265 ContinuationToken *string `type:"string"` 25266 25267 // The list of inventory configurations for a bucket. 25268 InventoryConfigurationList []*InventoryConfiguration `locationName:"InventoryConfiguration" type:"list" flattened:"true"` 25269 25270 // Tells whether the returned list of inventory configurations is complete. 25271 // A value of true indicates that the list is not complete and the NextContinuationToken 25272 // is provided for a subsequent request. 25273 IsTruncated *bool `type:"boolean"` 25274 25275 // The marker used to continue this inventory configuration listing. Use the 25276 // NextContinuationToken from this response to continue the listing in a subsequent 25277 // request. The continuation token is an opaque value that Amazon S3 understands. 25278 NextContinuationToken *string `type:"string"` 25279 } 25280 25281 // String returns the string representation. 25282 // 25283 // API parameter values that are decorated as "sensitive" in the API will not 25284 // be included in the string output. The member name will be present, but the 25285 // value will be replaced with "sensitive". 25286 func (s ListBucketInventoryConfigurationsOutput) String() string { 25287 return awsutil.Prettify(s) 25288 } 25289 25290 // GoString returns the string representation. 25291 // 25292 // API parameter values that are decorated as "sensitive" in the API will not 25293 // be included in the string output. The member name will be present, but the 25294 // value will be replaced with "sensitive". 25295 func (s ListBucketInventoryConfigurationsOutput) GoString() string { 25296 return s.String() 25297 } 25298 25299 // SetContinuationToken sets the ContinuationToken field's value. 25300 func (s *ListBucketInventoryConfigurationsOutput) SetContinuationToken(v string) *ListBucketInventoryConfigurationsOutput { 25301 s.ContinuationToken = &v 25302 return s 25303 } 25304 25305 // SetInventoryConfigurationList sets the InventoryConfigurationList field's value. 25306 func (s *ListBucketInventoryConfigurationsOutput) SetInventoryConfigurationList(v []*InventoryConfiguration) *ListBucketInventoryConfigurationsOutput { 25307 s.InventoryConfigurationList = v 25308 return s 25309 } 25310 25311 // SetIsTruncated sets the IsTruncated field's value. 25312 func (s *ListBucketInventoryConfigurationsOutput) SetIsTruncated(v bool) *ListBucketInventoryConfigurationsOutput { 25313 s.IsTruncated = &v 25314 return s 25315 } 25316 25317 // SetNextContinuationToken sets the NextContinuationToken field's value. 25318 func (s *ListBucketInventoryConfigurationsOutput) SetNextContinuationToken(v string) *ListBucketInventoryConfigurationsOutput { 25319 s.NextContinuationToken = &v 25320 return s 25321 } 25322 25323 type ListBucketMetricsConfigurationsInput struct { 25324 _ struct{} `locationName:"ListBucketMetricsConfigurationsRequest" type:"structure"` 25325 25326 // The name of the bucket containing the metrics configurations to retrieve. 25327 // 25328 // Bucket is a required field 25329 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 25330 25331 // The marker that is used to continue a metrics configuration listing that 25332 // has been truncated. Use the NextContinuationToken from a previously truncated 25333 // list response to continue the listing. The continuation token is an opaque 25334 // value that Amazon S3 understands. 25335 ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` 25336 25337 // The account ID of the expected bucket owner. If the bucket is owned by a 25338 // different account, the request will fail with an HTTP 403 (Access Denied) 25339 // error. 25340 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 25341 } 25342 25343 // String returns the string representation. 25344 // 25345 // API parameter values that are decorated as "sensitive" in the API will not 25346 // be included in the string output. The member name will be present, but the 25347 // value will be replaced with "sensitive". 25348 func (s ListBucketMetricsConfigurationsInput) String() string { 25349 return awsutil.Prettify(s) 25350 } 25351 25352 // GoString returns the string representation. 25353 // 25354 // API parameter values that are decorated as "sensitive" in the API will not 25355 // be included in the string output. The member name will be present, but the 25356 // value will be replaced with "sensitive". 25357 func (s ListBucketMetricsConfigurationsInput) GoString() string { 25358 return s.String() 25359 } 25360 25361 // Validate inspects the fields of the type to determine if they are valid. 25362 func (s *ListBucketMetricsConfigurationsInput) Validate() error { 25363 invalidParams := request.ErrInvalidParams{Context: "ListBucketMetricsConfigurationsInput"} 25364 if s.Bucket == nil { 25365 invalidParams.Add(request.NewErrParamRequired("Bucket")) 25366 } 25367 if s.Bucket != nil && len(*s.Bucket) < 1 { 25368 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 25369 } 25370 25371 if invalidParams.Len() > 0 { 25372 return invalidParams 25373 } 25374 return nil 25375 } 25376 25377 // SetBucket sets the Bucket field's value. 25378 func (s *ListBucketMetricsConfigurationsInput) SetBucket(v string) *ListBucketMetricsConfigurationsInput { 25379 s.Bucket = &v 25380 return s 25381 } 25382 25383 func (s *ListBucketMetricsConfigurationsInput) getBucket() (v string) { 25384 if s.Bucket == nil { 25385 return v 25386 } 25387 return *s.Bucket 25388 } 25389 25390 // SetContinuationToken sets the ContinuationToken field's value. 25391 func (s *ListBucketMetricsConfigurationsInput) SetContinuationToken(v string) *ListBucketMetricsConfigurationsInput { 25392 s.ContinuationToken = &v 25393 return s 25394 } 25395 25396 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 25397 func (s *ListBucketMetricsConfigurationsInput) SetExpectedBucketOwner(v string) *ListBucketMetricsConfigurationsInput { 25398 s.ExpectedBucketOwner = &v 25399 return s 25400 } 25401 25402 func (s *ListBucketMetricsConfigurationsInput) getEndpointARN() (arn.Resource, error) { 25403 if s.Bucket == nil { 25404 return nil, fmt.Errorf("member Bucket is nil") 25405 } 25406 return parseEndpointARN(*s.Bucket) 25407 } 25408 25409 func (s *ListBucketMetricsConfigurationsInput) hasEndpointARN() bool { 25410 if s.Bucket == nil { 25411 return false 25412 } 25413 return arn.IsARN(*s.Bucket) 25414 } 25415 25416 // updateArnableField updates the value of the input field that 25417 // takes an ARN as an input. This method is useful to backfill 25418 // the parsed resource name from ARN into the input member. 25419 // It returns a pointer to a modified copy of input and an error. 25420 // Note that original input is not modified. 25421 func (s ListBucketMetricsConfigurationsInput) updateArnableField(v string) (interface{}, error) { 25422 if s.Bucket == nil { 25423 return nil, fmt.Errorf("member Bucket is nil") 25424 } 25425 s.Bucket = aws.String(v) 25426 return &s, nil 25427 } 25428 25429 type ListBucketMetricsConfigurationsOutput struct { 25430 _ struct{} `type:"structure"` 25431 25432 // The marker that is used as a starting point for this metrics configuration 25433 // list response. This value is present if it was sent in the request. 25434 ContinuationToken *string `type:"string"` 25435 25436 // Indicates whether the returned list of metrics configurations is complete. 25437 // A value of true indicates that the list is not complete and the NextContinuationToken 25438 // will be provided for a subsequent request. 25439 IsTruncated *bool `type:"boolean"` 25440 25441 // The list of metrics configurations for a bucket. 25442 MetricsConfigurationList []*MetricsConfiguration `locationName:"MetricsConfiguration" type:"list" flattened:"true"` 25443 25444 // The marker used to continue a metrics configuration listing that has been 25445 // truncated. Use the NextContinuationToken from a previously truncated list 25446 // response to continue the listing. The continuation token is an opaque value 25447 // that Amazon S3 understands. 25448 NextContinuationToken *string `type:"string"` 25449 } 25450 25451 // String returns the string representation. 25452 // 25453 // API parameter values that are decorated as "sensitive" in the API will not 25454 // be included in the string output. The member name will be present, but the 25455 // value will be replaced with "sensitive". 25456 func (s ListBucketMetricsConfigurationsOutput) String() string { 25457 return awsutil.Prettify(s) 25458 } 25459 25460 // GoString returns the string representation. 25461 // 25462 // API parameter values that are decorated as "sensitive" in the API will not 25463 // be included in the string output. The member name will be present, but the 25464 // value will be replaced with "sensitive". 25465 func (s ListBucketMetricsConfigurationsOutput) GoString() string { 25466 return s.String() 25467 } 25468 25469 // SetContinuationToken sets the ContinuationToken field's value. 25470 func (s *ListBucketMetricsConfigurationsOutput) SetContinuationToken(v string) *ListBucketMetricsConfigurationsOutput { 25471 s.ContinuationToken = &v 25472 return s 25473 } 25474 25475 // SetIsTruncated sets the IsTruncated field's value. 25476 func (s *ListBucketMetricsConfigurationsOutput) SetIsTruncated(v bool) *ListBucketMetricsConfigurationsOutput { 25477 s.IsTruncated = &v 25478 return s 25479 } 25480 25481 // SetMetricsConfigurationList sets the MetricsConfigurationList field's value. 25482 func (s *ListBucketMetricsConfigurationsOutput) SetMetricsConfigurationList(v []*MetricsConfiguration) *ListBucketMetricsConfigurationsOutput { 25483 s.MetricsConfigurationList = v 25484 return s 25485 } 25486 25487 // SetNextContinuationToken sets the NextContinuationToken field's value. 25488 func (s *ListBucketMetricsConfigurationsOutput) SetNextContinuationToken(v string) *ListBucketMetricsConfigurationsOutput { 25489 s.NextContinuationToken = &v 25490 return s 25491 } 25492 25493 type ListBucketsInput struct { 25494 _ struct{} `type:"structure"` 25495 } 25496 25497 // String returns the string representation. 25498 // 25499 // API parameter values that are decorated as "sensitive" in the API will not 25500 // be included in the string output. The member name will be present, but the 25501 // value will be replaced with "sensitive". 25502 func (s ListBucketsInput) String() string { 25503 return awsutil.Prettify(s) 25504 } 25505 25506 // GoString returns the string representation. 25507 // 25508 // API parameter values that are decorated as "sensitive" in the API will not 25509 // be included in the string output. The member name will be present, but the 25510 // value will be replaced with "sensitive". 25511 func (s ListBucketsInput) GoString() string { 25512 return s.String() 25513 } 25514 25515 type ListBucketsOutput struct { 25516 _ struct{} `type:"structure"` 25517 25518 // The list of buckets owned by the requestor. 25519 Buckets []*Bucket `locationNameList:"Bucket" type:"list"` 25520 25521 // The owner of the buckets listed. 25522 Owner *Owner `type:"structure"` 25523 } 25524 25525 // String returns the string representation. 25526 // 25527 // API parameter values that are decorated as "sensitive" in the API will not 25528 // be included in the string output. The member name will be present, but the 25529 // value will be replaced with "sensitive". 25530 func (s ListBucketsOutput) String() string { 25531 return awsutil.Prettify(s) 25532 } 25533 25534 // GoString returns the string representation. 25535 // 25536 // API parameter values that are decorated as "sensitive" in the API will not 25537 // be included in the string output. The member name will be present, but the 25538 // value will be replaced with "sensitive". 25539 func (s ListBucketsOutput) GoString() string { 25540 return s.String() 25541 } 25542 25543 // SetBuckets sets the Buckets field's value. 25544 func (s *ListBucketsOutput) SetBuckets(v []*Bucket) *ListBucketsOutput { 25545 s.Buckets = v 25546 return s 25547 } 25548 25549 // SetOwner sets the Owner field's value. 25550 func (s *ListBucketsOutput) SetOwner(v *Owner) *ListBucketsOutput { 25551 s.Owner = v 25552 return s 25553 } 25554 25555 type ListMultipartUploadsInput struct { 25556 _ struct{} `locationName:"ListMultipartUploadsRequest" type:"structure"` 25557 25558 // The name of the bucket to which the multipart upload was initiated. 25559 // 25560 // When using this action with an access point, you must direct requests to 25561 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 25562 // When using this action with an access point through the Amazon Web Services 25563 // SDKs, you provide the access point ARN in place of the bucket name. For more 25564 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 25565 // in the Amazon S3 User Guide. 25566 // 25567 // When using this action with Amazon S3 on Outposts, you must direct requests 25568 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 25569 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 25570 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 25571 // you provide the Outposts bucket ARN in place of the bucket name. For more 25572 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 25573 // in the Amazon S3 User Guide. 25574 // 25575 // Bucket is a required field 25576 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 25577 25578 // Character you use to group keys. 25579 // 25580 // All keys that contain the same string between the prefix, if specified, and 25581 // the first occurrence of the delimiter after the prefix are grouped under 25582 // a single result element, CommonPrefixes. If you don't specify the prefix 25583 // parameter, then the substring starts at the beginning of the key. The keys 25584 // that are grouped under CommonPrefixes result element are not returned elsewhere 25585 // in the response. 25586 Delimiter *string `location:"querystring" locationName:"delimiter" type:"string"` 25587 25588 // Requests Amazon S3 to encode the object keys in the response and specifies 25589 // the encoding method to use. An object key may contain any Unicode character; 25590 // however, XML 1.0 parser cannot parse some characters, such as characters 25591 // with an ASCII value from 0 to 10. For characters that are not supported in 25592 // XML 1.0, you can add this parameter to request that Amazon S3 encode the 25593 // keys in the response. 25594 EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` 25595 25596 // The account ID of the expected bucket owner. If the bucket is owned by a 25597 // different account, the request will fail with an HTTP 403 (Access Denied) 25598 // error. 25599 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 25600 25601 // Together with upload-id-marker, this parameter specifies the multipart upload 25602 // after which listing should begin. 25603 // 25604 // If upload-id-marker is not specified, only the keys lexicographically greater 25605 // than the specified key-marker will be included in the list. 25606 // 25607 // If upload-id-marker is specified, any multipart uploads for a key equal to 25608 // the key-marker might also be included, provided those multipart uploads have 25609 // upload IDs lexicographically greater than the specified upload-id-marker. 25610 KeyMarker *string `location:"querystring" locationName:"key-marker" type:"string"` 25611 25612 // Sets the maximum number of multipart uploads, from 1 to 1,000, to return 25613 // in the response body. 1,000 is the maximum number of uploads that can be 25614 // returned in a response. 25615 MaxUploads *int64 `location:"querystring" locationName:"max-uploads" type:"integer"` 25616 25617 // Lists in-progress uploads only for those keys that begin with the specified 25618 // prefix. You can use prefixes to separate a bucket into different grouping 25619 // of keys. (You can think of using prefix to make groups in the same way you'd 25620 // use a folder in a file system.) 25621 Prefix *string `location:"querystring" locationName:"prefix" type:"string"` 25622 25623 // Together with key-marker, specifies the multipart upload after which listing 25624 // should begin. If key-marker is not specified, the upload-id-marker parameter 25625 // is ignored. Otherwise, any multipart uploads for a key equal to the key-marker 25626 // might be included in the list only if they have an upload ID lexicographically 25627 // greater than the specified upload-id-marker. 25628 UploadIdMarker *string `location:"querystring" locationName:"upload-id-marker" type:"string"` 25629 } 25630 25631 // String returns the string representation. 25632 // 25633 // API parameter values that are decorated as "sensitive" in the API will not 25634 // be included in the string output. The member name will be present, but the 25635 // value will be replaced with "sensitive". 25636 func (s ListMultipartUploadsInput) String() string { 25637 return awsutil.Prettify(s) 25638 } 25639 25640 // GoString returns the string representation. 25641 // 25642 // API parameter values that are decorated as "sensitive" in the API will not 25643 // be included in the string output. The member name will be present, but the 25644 // value will be replaced with "sensitive". 25645 func (s ListMultipartUploadsInput) GoString() string { 25646 return s.String() 25647 } 25648 25649 // Validate inspects the fields of the type to determine if they are valid. 25650 func (s *ListMultipartUploadsInput) Validate() error { 25651 invalidParams := request.ErrInvalidParams{Context: "ListMultipartUploadsInput"} 25652 if s.Bucket == nil { 25653 invalidParams.Add(request.NewErrParamRequired("Bucket")) 25654 } 25655 if s.Bucket != nil && len(*s.Bucket) < 1 { 25656 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 25657 } 25658 25659 if invalidParams.Len() > 0 { 25660 return invalidParams 25661 } 25662 return nil 25663 } 25664 25665 // SetBucket sets the Bucket field's value. 25666 func (s *ListMultipartUploadsInput) SetBucket(v string) *ListMultipartUploadsInput { 25667 s.Bucket = &v 25668 return s 25669 } 25670 25671 func (s *ListMultipartUploadsInput) getBucket() (v string) { 25672 if s.Bucket == nil { 25673 return v 25674 } 25675 return *s.Bucket 25676 } 25677 25678 // SetDelimiter sets the Delimiter field's value. 25679 func (s *ListMultipartUploadsInput) SetDelimiter(v string) *ListMultipartUploadsInput { 25680 s.Delimiter = &v 25681 return s 25682 } 25683 25684 // SetEncodingType sets the EncodingType field's value. 25685 func (s *ListMultipartUploadsInput) SetEncodingType(v string) *ListMultipartUploadsInput { 25686 s.EncodingType = &v 25687 return s 25688 } 25689 25690 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 25691 func (s *ListMultipartUploadsInput) SetExpectedBucketOwner(v string) *ListMultipartUploadsInput { 25692 s.ExpectedBucketOwner = &v 25693 return s 25694 } 25695 25696 // SetKeyMarker sets the KeyMarker field's value. 25697 func (s *ListMultipartUploadsInput) SetKeyMarker(v string) *ListMultipartUploadsInput { 25698 s.KeyMarker = &v 25699 return s 25700 } 25701 25702 // SetMaxUploads sets the MaxUploads field's value. 25703 func (s *ListMultipartUploadsInput) SetMaxUploads(v int64) *ListMultipartUploadsInput { 25704 s.MaxUploads = &v 25705 return s 25706 } 25707 25708 // SetPrefix sets the Prefix field's value. 25709 func (s *ListMultipartUploadsInput) SetPrefix(v string) *ListMultipartUploadsInput { 25710 s.Prefix = &v 25711 return s 25712 } 25713 25714 // SetUploadIdMarker sets the UploadIdMarker field's value. 25715 func (s *ListMultipartUploadsInput) SetUploadIdMarker(v string) *ListMultipartUploadsInput { 25716 s.UploadIdMarker = &v 25717 return s 25718 } 25719 25720 func (s *ListMultipartUploadsInput) getEndpointARN() (arn.Resource, error) { 25721 if s.Bucket == nil { 25722 return nil, fmt.Errorf("member Bucket is nil") 25723 } 25724 return parseEndpointARN(*s.Bucket) 25725 } 25726 25727 func (s *ListMultipartUploadsInput) hasEndpointARN() bool { 25728 if s.Bucket == nil { 25729 return false 25730 } 25731 return arn.IsARN(*s.Bucket) 25732 } 25733 25734 // updateArnableField updates the value of the input field that 25735 // takes an ARN as an input. This method is useful to backfill 25736 // the parsed resource name from ARN into the input member. 25737 // It returns a pointer to a modified copy of input and an error. 25738 // Note that original input is not modified. 25739 func (s ListMultipartUploadsInput) updateArnableField(v string) (interface{}, error) { 25740 if s.Bucket == nil { 25741 return nil, fmt.Errorf("member Bucket is nil") 25742 } 25743 s.Bucket = aws.String(v) 25744 return &s, nil 25745 } 25746 25747 type ListMultipartUploadsOutput struct { 25748 _ struct{} `type:"structure"` 25749 25750 // The name of the bucket to which the multipart upload was initiated. Does 25751 // not return the access point ARN or access point alias if used. 25752 Bucket *string `type:"string"` 25753 25754 // If you specify a delimiter in the request, then the result returns each distinct 25755 // key prefix containing the delimiter in a CommonPrefixes element. The distinct 25756 // key prefixes are returned in the Prefix child element. 25757 CommonPrefixes []*CommonPrefix `type:"list" flattened:"true"` 25758 25759 // Contains the delimiter you specified in the request. If you don't specify 25760 // a delimiter in your request, this element is absent from the response. 25761 Delimiter *string `type:"string"` 25762 25763 // Encoding type used by Amazon S3 to encode object keys in the response. 25764 // 25765 // If you specify encoding-type request parameter, Amazon S3 includes this element 25766 // in the response, and returns encoded key name values in the following response 25767 // elements: 25768 // 25769 // Delimiter, KeyMarker, Prefix, NextKeyMarker, Key. 25770 EncodingType *string `type:"string" enum:"EncodingType"` 25771 25772 // Indicates whether the returned list of multipart uploads is truncated. A 25773 // value of true indicates that the list was truncated. The list can be truncated 25774 // if the number of multipart uploads exceeds the limit allowed or specified 25775 // by max uploads. 25776 IsTruncated *bool `type:"boolean"` 25777 25778 // The key at or after which the listing began. 25779 KeyMarker *string `type:"string"` 25780 25781 // Maximum number of multipart uploads that could have been included in the 25782 // response. 25783 MaxUploads *int64 `type:"integer"` 25784 25785 // When a list is truncated, this element specifies the value that should be 25786 // used for the key-marker request parameter in a subsequent request. 25787 NextKeyMarker *string `type:"string"` 25788 25789 // When a list is truncated, this element specifies the value that should be 25790 // used for the upload-id-marker request parameter in a subsequent request. 25791 NextUploadIdMarker *string `type:"string"` 25792 25793 // When a prefix is provided in the request, this field contains the specified 25794 // prefix. The result contains only keys starting with the specified prefix. 25795 Prefix *string `type:"string"` 25796 25797 // Upload ID after which listing began. 25798 UploadIdMarker *string `type:"string"` 25799 25800 // Container for elements related to a particular multipart upload. A response 25801 // can contain zero or more Upload elements. 25802 Uploads []*MultipartUpload `locationName:"Upload" type:"list" flattened:"true"` 25803 } 25804 25805 // String returns the string representation. 25806 // 25807 // API parameter values that are decorated as "sensitive" in the API will not 25808 // be included in the string output. The member name will be present, but the 25809 // value will be replaced with "sensitive". 25810 func (s ListMultipartUploadsOutput) String() string { 25811 return awsutil.Prettify(s) 25812 } 25813 25814 // GoString returns the string representation. 25815 // 25816 // API parameter values that are decorated as "sensitive" in the API will not 25817 // be included in the string output. The member name will be present, but the 25818 // value will be replaced with "sensitive". 25819 func (s ListMultipartUploadsOutput) GoString() string { 25820 return s.String() 25821 } 25822 25823 // SetBucket sets the Bucket field's value. 25824 func (s *ListMultipartUploadsOutput) SetBucket(v string) *ListMultipartUploadsOutput { 25825 s.Bucket = &v 25826 return s 25827 } 25828 25829 func (s *ListMultipartUploadsOutput) getBucket() (v string) { 25830 if s.Bucket == nil { 25831 return v 25832 } 25833 return *s.Bucket 25834 } 25835 25836 // SetCommonPrefixes sets the CommonPrefixes field's value. 25837 func (s *ListMultipartUploadsOutput) SetCommonPrefixes(v []*CommonPrefix) *ListMultipartUploadsOutput { 25838 s.CommonPrefixes = v 25839 return s 25840 } 25841 25842 // SetDelimiter sets the Delimiter field's value. 25843 func (s *ListMultipartUploadsOutput) SetDelimiter(v string) *ListMultipartUploadsOutput { 25844 s.Delimiter = &v 25845 return s 25846 } 25847 25848 // SetEncodingType sets the EncodingType field's value. 25849 func (s *ListMultipartUploadsOutput) SetEncodingType(v string) *ListMultipartUploadsOutput { 25850 s.EncodingType = &v 25851 return s 25852 } 25853 25854 // SetIsTruncated sets the IsTruncated field's value. 25855 func (s *ListMultipartUploadsOutput) SetIsTruncated(v bool) *ListMultipartUploadsOutput { 25856 s.IsTruncated = &v 25857 return s 25858 } 25859 25860 // SetKeyMarker sets the KeyMarker field's value. 25861 func (s *ListMultipartUploadsOutput) SetKeyMarker(v string) *ListMultipartUploadsOutput { 25862 s.KeyMarker = &v 25863 return s 25864 } 25865 25866 // SetMaxUploads sets the MaxUploads field's value. 25867 func (s *ListMultipartUploadsOutput) SetMaxUploads(v int64) *ListMultipartUploadsOutput { 25868 s.MaxUploads = &v 25869 return s 25870 } 25871 25872 // SetNextKeyMarker sets the NextKeyMarker field's value. 25873 func (s *ListMultipartUploadsOutput) SetNextKeyMarker(v string) *ListMultipartUploadsOutput { 25874 s.NextKeyMarker = &v 25875 return s 25876 } 25877 25878 // SetNextUploadIdMarker sets the NextUploadIdMarker field's value. 25879 func (s *ListMultipartUploadsOutput) SetNextUploadIdMarker(v string) *ListMultipartUploadsOutput { 25880 s.NextUploadIdMarker = &v 25881 return s 25882 } 25883 25884 // SetPrefix sets the Prefix field's value. 25885 func (s *ListMultipartUploadsOutput) SetPrefix(v string) *ListMultipartUploadsOutput { 25886 s.Prefix = &v 25887 return s 25888 } 25889 25890 // SetUploadIdMarker sets the UploadIdMarker field's value. 25891 func (s *ListMultipartUploadsOutput) SetUploadIdMarker(v string) *ListMultipartUploadsOutput { 25892 s.UploadIdMarker = &v 25893 return s 25894 } 25895 25896 // SetUploads sets the Uploads field's value. 25897 func (s *ListMultipartUploadsOutput) SetUploads(v []*MultipartUpload) *ListMultipartUploadsOutput { 25898 s.Uploads = v 25899 return s 25900 } 25901 25902 type ListObjectVersionsInput struct { 25903 _ struct{} `locationName:"ListObjectVersionsRequest" type:"structure"` 25904 25905 // The bucket name that contains the objects. 25906 // 25907 // Bucket is a required field 25908 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 25909 25910 // A delimiter is a character that you specify to group keys. All keys that 25911 // contain the same string between the prefix and the first occurrence of the 25912 // delimiter are grouped under a single result element in CommonPrefixes. These 25913 // groups are counted as one result against the max-keys limitation. These keys 25914 // are not returned elsewhere in the response. 25915 Delimiter *string `location:"querystring" locationName:"delimiter" type:"string"` 25916 25917 // Requests Amazon S3 to encode the object keys in the response and specifies 25918 // the encoding method to use. An object key may contain any Unicode character; 25919 // however, XML 1.0 parser cannot parse some characters, such as characters 25920 // with an ASCII value from 0 to 10. For characters that are not supported in 25921 // XML 1.0, you can add this parameter to request that Amazon S3 encode the 25922 // keys in the response. 25923 EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` 25924 25925 // The account ID of the expected bucket owner. If the bucket is owned by a 25926 // different account, the request will fail with an HTTP 403 (Access Denied) 25927 // error. 25928 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 25929 25930 // Specifies the key to start with when listing objects in a bucket. 25931 KeyMarker *string `location:"querystring" locationName:"key-marker" type:"string"` 25932 25933 // Sets the maximum number of keys returned in the response. By default the 25934 // action returns up to 1,000 key names. The response might contain fewer keys 25935 // but will never contain more. If additional keys satisfy the search criteria, 25936 // but were not returned because max-keys was exceeded, the response contains 25937 // <isTruncated>true</isTruncated>. To return the additional keys, see key-marker 25938 // and version-id-marker. 25939 MaxKeys *int64 `location:"querystring" locationName:"max-keys" type:"integer"` 25940 25941 // Use this parameter to select only those keys that begin with the specified 25942 // prefix. You can use prefixes to separate a bucket into different groupings 25943 // of keys. (You can think of using prefix to make groups in the same way you'd 25944 // use a folder in a file system.) You can use prefix with delimiter to roll 25945 // up numerous objects into a single result under CommonPrefixes. 25946 Prefix *string `location:"querystring" locationName:"prefix" type:"string"` 25947 25948 // Specifies the object version you want to start listing from. 25949 VersionIdMarker *string `location:"querystring" locationName:"version-id-marker" type:"string"` 25950 } 25951 25952 // String returns the string representation. 25953 // 25954 // API parameter values that are decorated as "sensitive" in the API will not 25955 // be included in the string output. The member name will be present, but the 25956 // value will be replaced with "sensitive". 25957 func (s ListObjectVersionsInput) String() string { 25958 return awsutil.Prettify(s) 25959 } 25960 25961 // GoString returns the string representation. 25962 // 25963 // API parameter values that are decorated as "sensitive" in the API will not 25964 // be included in the string output. The member name will be present, but the 25965 // value will be replaced with "sensitive". 25966 func (s ListObjectVersionsInput) GoString() string { 25967 return s.String() 25968 } 25969 25970 // Validate inspects the fields of the type to determine if they are valid. 25971 func (s *ListObjectVersionsInput) Validate() error { 25972 invalidParams := request.ErrInvalidParams{Context: "ListObjectVersionsInput"} 25973 if s.Bucket == nil { 25974 invalidParams.Add(request.NewErrParamRequired("Bucket")) 25975 } 25976 if s.Bucket != nil && len(*s.Bucket) < 1 { 25977 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 25978 } 25979 25980 if invalidParams.Len() > 0 { 25981 return invalidParams 25982 } 25983 return nil 25984 } 25985 25986 // SetBucket sets the Bucket field's value. 25987 func (s *ListObjectVersionsInput) SetBucket(v string) *ListObjectVersionsInput { 25988 s.Bucket = &v 25989 return s 25990 } 25991 25992 func (s *ListObjectVersionsInput) getBucket() (v string) { 25993 if s.Bucket == nil { 25994 return v 25995 } 25996 return *s.Bucket 25997 } 25998 25999 // SetDelimiter sets the Delimiter field's value. 26000 func (s *ListObjectVersionsInput) SetDelimiter(v string) *ListObjectVersionsInput { 26001 s.Delimiter = &v 26002 return s 26003 } 26004 26005 // SetEncodingType sets the EncodingType field's value. 26006 func (s *ListObjectVersionsInput) SetEncodingType(v string) *ListObjectVersionsInput { 26007 s.EncodingType = &v 26008 return s 26009 } 26010 26011 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 26012 func (s *ListObjectVersionsInput) SetExpectedBucketOwner(v string) *ListObjectVersionsInput { 26013 s.ExpectedBucketOwner = &v 26014 return s 26015 } 26016 26017 // SetKeyMarker sets the KeyMarker field's value. 26018 func (s *ListObjectVersionsInput) SetKeyMarker(v string) *ListObjectVersionsInput { 26019 s.KeyMarker = &v 26020 return s 26021 } 26022 26023 // SetMaxKeys sets the MaxKeys field's value. 26024 func (s *ListObjectVersionsInput) SetMaxKeys(v int64) *ListObjectVersionsInput { 26025 s.MaxKeys = &v 26026 return s 26027 } 26028 26029 // SetPrefix sets the Prefix field's value. 26030 func (s *ListObjectVersionsInput) SetPrefix(v string) *ListObjectVersionsInput { 26031 s.Prefix = &v 26032 return s 26033 } 26034 26035 // SetVersionIdMarker sets the VersionIdMarker field's value. 26036 func (s *ListObjectVersionsInput) SetVersionIdMarker(v string) *ListObjectVersionsInput { 26037 s.VersionIdMarker = &v 26038 return s 26039 } 26040 26041 func (s *ListObjectVersionsInput) getEndpointARN() (arn.Resource, error) { 26042 if s.Bucket == nil { 26043 return nil, fmt.Errorf("member Bucket is nil") 26044 } 26045 return parseEndpointARN(*s.Bucket) 26046 } 26047 26048 func (s *ListObjectVersionsInput) hasEndpointARN() bool { 26049 if s.Bucket == nil { 26050 return false 26051 } 26052 return arn.IsARN(*s.Bucket) 26053 } 26054 26055 // updateArnableField updates the value of the input field that 26056 // takes an ARN as an input. This method is useful to backfill 26057 // the parsed resource name from ARN into the input member. 26058 // It returns a pointer to a modified copy of input and an error. 26059 // Note that original input is not modified. 26060 func (s ListObjectVersionsInput) updateArnableField(v string) (interface{}, error) { 26061 if s.Bucket == nil { 26062 return nil, fmt.Errorf("member Bucket is nil") 26063 } 26064 s.Bucket = aws.String(v) 26065 return &s, nil 26066 } 26067 26068 type ListObjectVersionsOutput struct { 26069 _ struct{} `type:"structure"` 26070 26071 // All of the keys rolled up into a common prefix count as a single return when 26072 // calculating the number of returns. 26073 CommonPrefixes []*CommonPrefix `type:"list" flattened:"true"` 26074 26075 // Container for an object that is a delete marker. 26076 DeleteMarkers []*DeleteMarkerEntry `locationName:"DeleteMarker" type:"list" flattened:"true"` 26077 26078 // The delimiter grouping the included keys. A delimiter is a character that 26079 // you specify to group keys. All keys that contain the same string between 26080 // the prefix and the first occurrence of the delimiter are grouped under a 26081 // single result element in CommonPrefixes. These groups are counted as one 26082 // result against the max-keys limitation. These keys are not returned elsewhere 26083 // in the response. 26084 Delimiter *string `type:"string"` 26085 26086 // Encoding type used by Amazon S3 to encode object key names in the XML response. 26087 // 26088 // If you specify encoding-type request parameter, Amazon S3 includes this element 26089 // in the response, and returns encoded key name values in the following response 26090 // elements: 26091 // 26092 // KeyMarker, NextKeyMarker, Prefix, Key, and Delimiter. 26093 EncodingType *string `type:"string" enum:"EncodingType"` 26094 26095 // A flag that indicates whether Amazon S3 returned all of the results that 26096 // satisfied the search criteria. If your results were truncated, you can make 26097 // a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker 26098 // response parameters as a starting place in another request to return the 26099 // rest of the results. 26100 IsTruncated *bool `type:"boolean"` 26101 26102 // Marks the last key returned in a truncated response. 26103 KeyMarker *string `type:"string"` 26104 26105 // Specifies the maximum number of objects to return. 26106 MaxKeys *int64 `type:"integer"` 26107 26108 // The bucket name. 26109 Name *string `type:"string"` 26110 26111 // When the number of responses exceeds the value of MaxKeys, NextKeyMarker 26112 // specifies the first key not returned that satisfies the search criteria. 26113 // Use this value for the key-marker request parameter in a subsequent request. 26114 NextKeyMarker *string `type:"string"` 26115 26116 // When the number of responses exceeds the value of MaxKeys, NextVersionIdMarker 26117 // specifies the first object version not returned that satisfies the search 26118 // criteria. Use this value for the version-id-marker request parameter in a 26119 // subsequent request. 26120 NextVersionIdMarker *string `type:"string"` 26121 26122 // Selects objects that start with the value supplied by this parameter. 26123 Prefix *string `type:"string"` 26124 26125 // Marks the last version of the key returned in a truncated response. 26126 VersionIdMarker *string `type:"string"` 26127 26128 // Container for version information. 26129 Versions []*ObjectVersion `locationName:"Version" type:"list" flattened:"true"` 26130 } 26131 26132 // String returns the string representation. 26133 // 26134 // API parameter values that are decorated as "sensitive" in the API will not 26135 // be included in the string output. The member name will be present, but the 26136 // value will be replaced with "sensitive". 26137 func (s ListObjectVersionsOutput) String() string { 26138 return awsutil.Prettify(s) 26139 } 26140 26141 // GoString returns the string representation. 26142 // 26143 // API parameter values that are decorated as "sensitive" in the API will not 26144 // be included in the string output. The member name will be present, but the 26145 // value will be replaced with "sensitive". 26146 func (s ListObjectVersionsOutput) GoString() string { 26147 return s.String() 26148 } 26149 26150 // SetCommonPrefixes sets the CommonPrefixes field's value. 26151 func (s *ListObjectVersionsOutput) SetCommonPrefixes(v []*CommonPrefix) *ListObjectVersionsOutput { 26152 s.CommonPrefixes = v 26153 return s 26154 } 26155 26156 // SetDeleteMarkers sets the DeleteMarkers field's value. 26157 func (s *ListObjectVersionsOutput) SetDeleteMarkers(v []*DeleteMarkerEntry) *ListObjectVersionsOutput { 26158 s.DeleteMarkers = v 26159 return s 26160 } 26161 26162 // SetDelimiter sets the Delimiter field's value. 26163 func (s *ListObjectVersionsOutput) SetDelimiter(v string) *ListObjectVersionsOutput { 26164 s.Delimiter = &v 26165 return s 26166 } 26167 26168 // SetEncodingType sets the EncodingType field's value. 26169 func (s *ListObjectVersionsOutput) SetEncodingType(v string) *ListObjectVersionsOutput { 26170 s.EncodingType = &v 26171 return s 26172 } 26173 26174 // SetIsTruncated sets the IsTruncated field's value. 26175 func (s *ListObjectVersionsOutput) SetIsTruncated(v bool) *ListObjectVersionsOutput { 26176 s.IsTruncated = &v 26177 return s 26178 } 26179 26180 // SetKeyMarker sets the KeyMarker field's value. 26181 func (s *ListObjectVersionsOutput) SetKeyMarker(v string) *ListObjectVersionsOutput { 26182 s.KeyMarker = &v 26183 return s 26184 } 26185 26186 // SetMaxKeys sets the MaxKeys field's value. 26187 func (s *ListObjectVersionsOutput) SetMaxKeys(v int64) *ListObjectVersionsOutput { 26188 s.MaxKeys = &v 26189 return s 26190 } 26191 26192 // SetName sets the Name field's value. 26193 func (s *ListObjectVersionsOutput) SetName(v string) *ListObjectVersionsOutput { 26194 s.Name = &v 26195 return s 26196 } 26197 26198 // SetNextKeyMarker sets the NextKeyMarker field's value. 26199 func (s *ListObjectVersionsOutput) SetNextKeyMarker(v string) *ListObjectVersionsOutput { 26200 s.NextKeyMarker = &v 26201 return s 26202 } 26203 26204 // SetNextVersionIdMarker sets the NextVersionIdMarker field's value. 26205 func (s *ListObjectVersionsOutput) SetNextVersionIdMarker(v string) *ListObjectVersionsOutput { 26206 s.NextVersionIdMarker = &v 26207 return s 26208 } 26209 26210 // SetPrefix sets the Prefix field's value. 26211 func (s *ListObjectVersionsOutput) SetPrefix(v string) *ListObjectVersionsOutput { 26212 s.Prefix = &v 26213 return s 26214 } 26215 26216 // SetVersionIdMarker sets the VersionIdMarker field's value. 26217 func (s *ListObjectVersionsOutput) SetVersionIdMarker(v string) *ListObjectVersionsOutput { 26218 s.VersionIdMarker = &v 26219 return s 26220 } 26221 26222 // SetVersions sets the Versions field's value. 26223 func (s *ListObjectVersionsOutput) SetVersions(v []*ObjectVersion) *ListObjectVersionsOutput { 26224 s.Versions = v 26225 return s 26226 } 26227 26228 type ListObjectsInput struct { 26229 _ struct{} `locationName:"ListObjectsRequest" type:"structure"` 26230 26231 // The name of the bucket containing the objects. 26232 // 26233 // When using this action with an access point, you must direct requests to 26234 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 26235 // When using this action with an access point through the Amazon Web Services 26236 // SDKs, you provide the access point ARN in place of the bucket name. For more 26237 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 26238 // in the Amazon S3 User Guide. 26239 // 26240 // When using this action with Amazon S3 on Outposts, you must direct requests 26241 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 26242 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 26243 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 26244 // you provide the Outposts bucket ARN in place of the bucket name. For more 26245 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 26246 // in the Amazon S3 User Guide. 26247 // 26248 // Bucket is a required field 26249 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 26250 26251 // A delimiter is a character you use to group keys. 26252 Delimiter *string `location:"querystring" locationName:"delimiter" type:"string"` 26253 26254 // Requests Amazon S3 to encode the object keys in the response and specifies 26255 // the encoding method to use. An object key may contain any Unicode character; 26256 // however, XML 1.0 parser cannot parse some characters, such as characters 26257 // with an ASCII value from 0 to 10. For characters that are not supported in 26258 // XML 1.0, you can add this parameter to request that Amazon S3 encode the 26259 // keys in the response. 26260 EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` 26261 26262 // The account ID of the expected bucket owner. If the bucket is owned by a 26263 // different account, the request will fail with an HTTP 403 (Access Denied) 26264 // error. 26265 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 26266 26267 // Marker is where you want Amazon S3 to start listing from. Amazon S3 starts 26268 // listing after this specified key. Marker can be any key in the bucket. 26269 Marker *string `location:"querystring" locationName:"marker" type:"string"` 26270 26271 // Sets the maximum number of keys returned in the response. By default the 26272 // action returns up to 1,000 key names. The response might contain fewer keys 26273 // but will never contain more. 26274 MaxKeys *int64 `location:"querystring" locationName:"max-keys" type:"integer"` 26275 26276 // Limits the response to keys that begin with the specified prefix. 26277 Prefix *string `location:"querystring" locationName:"prefix" type:"string"` 26278 26279 // Confirms that the requester knows that she or he will be charged for the 26280 // list objects request. Bucket owners need not specify this parameter in their 26281 // requests. 26282 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 26283 } 26284 26285 // String returns the string representation. 26286 // 26287 // API parameter values that are decorated as "sensitive" in the API will not 26288 // be included in the string output. The member name will be present, but the 26289 // value will be replaced with "sensitive". 26290 func (s ListObjectsInput) String() string { 26291 return awsutil.Prettify(s) 26292 } 26293 26294 // GoString returns the string representation. 26295 // 26296 // API parameter values that are decorated as "sensitive" in the API will not 26297 // be included in the string output. The member name will be present, but the 26298 // value will be replaced with "sensitive". 26299 func (s ListObjectsInput) GoString() string { 26300 return s.String() 26301 } 26302 26303 // Validate inspects the fields of the type to determine if they are valid. 26304 func (s *ListObjectsInput) Validate() error { 26305 invalidParams := request.ErrInvalidParams{Context: "ListObjectsInput"} 26306 if s.Bucket == nil { 26307 invalidParams.Add(request.NewErrParamRequired("Bucket")) 26308 } 26309 if s.Bucket != nil && len(*s.Bucket) < 1 { 26310 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 26311 } 26312 26313 if invalidParams.Len() > 0 { 26314 return invalidParams 26315 } 26316 return nil 26317 } 26318 26319 // SetBucket sets the Bucket field's value. 26320 func (s *ListObjectsInput) SetBucket(v string) *ListObjectsInput { 26321 s.Bucket = &v 26322 return s 26323 } 26324 26325 func (s *ListObjectsInput) getBucket() (v string) { 26326 if s.Bucket == nil { 26327 return v 26328 } 26329 return *s.Bucket 26330 } 26331 26332 // SetDelimiter sets the Delimiter field's value. 26333 func (s *ListObjectsInput) SetDelimiter(v string) *ListObjectsInput { 26334 s.Delimiter = &v 26335 return s 26336 } 26337 26338 // SetEncodingType sets the EncodingType field's value. 26339 func (s *ListObjectsInput) SetEncodingType(v string) *ListObjectsInput { 26340 s.EncodingType = &v 26341 return s 26342 } 26343 26344 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 26345 func (s *ListObjectsInput) SetExpectedBucketOwner(v string) *ListObjectsInput { 26346 s.ExpectedBucketOwner = &v 26347 return s 26348 } 26349 26350 // SetMarker sets the Marker field's value. 26351 func (s *ListObjectsInput) SetMarker(v string) *ListObjectsInput { 26352 s.Marker = &v 26353 return s 26354 } 26355 26356 // SetMaxKeys sets the MaxKeys field's value. 26357 func (s *ListObjectsInput) SetMaxKeys(v int64) *ListObjectsInput { 26358 s.MaxKeys = &v 26359 return s 26360 } 26361 26362 // SetPrefix sets the Prefix field's value. 26363 func (s *ListObjectsInput) SetPrefix(v string) *ListObjectsInput { 26364 s.Prefix = &v 26365 return s 26366 } 26367 26368 // SetRequestPayer sets the RequestPayer field's value. 26369 func (s *ListObjectsInput) SetRequestPayer(v string) *ListObjectsInput { 26370 s.RequestPayer = &v 26371 return s 26372 } 26373 26374 func (s *ListObjectsInput) getEndpointARN() (arn.Resource, error) { 26375 if s.Bucket == nil { 26376 return nil, fmt.Errorf("member Bucket is nil") 26377 } 26378 return parseEndpointARN(*s.Bucket) 26379 } 26380 26381 func (s *ListObjectsInput) hasEndpointARN() bool { 26382 if s.Bucket == nil { 26383 return false 26384 } 26385 return arn.IsARN(*s.Bucket) 26386 } 26387 26388 // updateArnableField updates the value of the input field that 26389 // takes an ARN as an input. This method is useful to backfill 26390 // the parsed resource name from ARN into the input member. 26391 // It returns a pointer to a modified copy of input and an error. 26392 // Note that original input is not modified. 26393 func (s ListObjectsInput) updateArnableField(v string) (interface{}, error) { 26394 if s.Bucket == nil { 26395 return nil, fmt.Errorf("member Bucket is nil") 26396 } 26397 s.Bucket = aws.String(v) 26398 return &s, nil 26399 } 26400 26401 type ListObjectsOutput struct { 26402 _ struct{} `type:"structure"` 26403 26404 // All of the keys (up to 1,000) rolled up in a common prefix count as a single 26405 // return when calculating the number of returns. 26406 // 26407 // A response can contain CommonPrefixes only if you specify a delimiter. 26408 // 26409 // CommonPrefixes contains all (if there are any) keys between Prefix and the 26410 // next occurrence of the string specified by the delimiter. 26411 // 26412 // CommonPrefixes lists keys that act like subdirectories in the directory specified 26413 // by Prefix. 26414 // 26415 // For example, if the prefix is notes/ and the delimiter is a slash (/) as 26416 // in notes/summer/july, the common prefix is notes/summer/. All of the keys 26417 // that roll up into a common prefix count as a single return when calculating 26418 // the number of returns. 26419 CommonPrefixes []*CommonPrefix `type:"list" flattened:"true"` 26420 26421 // Metadata about each object returned. 26422 Contents []*Object `type:"list" flattened:"true"` 26423 26424 // Causes keys that contain the same string between the prefix and the first 26425 // occurrence of the delimiter to be rolled up into a single result element 26426 // in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere 26427 // in the response. Each rolled-up result counts as only one return against 26428 // the MaxKeys value. 26429 Delimiter *string `type:"string"` 26430 26431 // Encoding type used by Amazon S3 to encode object keys in the response. 26432 EncodingType *string `type:"string" enum:"EncodingType"` 26433 26434 // A flag that indicates whether Amazon S3 returned all of the results that 26435 // satisfied the search criteria. 26436 IsTruncated *bool `type:"boolean"` 26437 26438 // Indicates where in the bucket listing begins. Marker is included in the response 26439 // if it was sent with the request. 26440 Marker *string `type:"string"` 26441 26442 // The maximum number of keys returned in the response body. 26443 MaxKeys *int64 `type:"integer"` 26444 26445 // The bucket name. 26446 Name *string `type:"string"` 26447 26448 // When response is truncated (the IsTruncated element value in the response 26449 // is true), you can use the key name in this field as marker in the subsequent 26450 // request to get next set of objects. Amazon S3 lists objects in alphabetical 26451 // order Note: This element is returned only if you have delimiter request parameter 26452 // specified. If response does not include the NextMarker and it is truncated, 26453 // you can use the value of the last Key in the response as the marker in the 26454 // subsequent request to get the next set of object keys. 26455 NextMarker *string `type:"string"` 26456 26457 // Keys that begin with the indicated prefix. 26458 Prefix *string `type:"string"` 26459 } 26460 26461 // String returns the string representation. 26462 // 26463 // API parameter values that are decorated as "sensitive" in the API will not 26464 // be included in the string output. The member name will be present, but the 26465 // value will be replaced with "sensitive". 26466 func (s ListObjectsOutput) String() string { 26467 return awsutil.Prettify(s) 26468 } 26469 26470 // GoString returns the string representation. 26471 // 26472 // API parameter values that are decorated as "sensitive" in the API will not 26473 // be included in the string output. The member name will be present, but the 26474 // value will be replaced with "sensitive". 26475 func (s ListObjectsOutput) GoString() string { 26476 return s.String() 26477 } 26478 26479 // SetCommonPrefixes sets the CommonPrefixes field's value. 26480 func (s *ListObjectsOutput) SetCommonPrefixes(v []*CommonPrefix) *ListObjectsOutput { 26481 s.CommonPrefixes = v 26482 return s 26483 } 26484 26485 // SetContents sets the Contents field's value. 26486 func (s *ListObjectsOutput) SetContents(v []*Object) *ListObjectsOutput { 26487 s.Contents = v 26488 return s 26489 } 26490 26491 // SetDelimiter sets the Delimiter field's value. 26492 func (s *ListObjectsOutput) SetDelimiter(v string) *ListObjectsOutput { 26493 s.Delimiter = &v 26494 return s 26495 } 26496 26497 // SetEncodingType sets the EncodingType field's value. 26498 func (s *ListObjectsOutput) SetEncodingType(v string) *ListObjectsOutput { 26499 s.EncodingType = &v 26500 return s 26501 } 26502 26503 // SetIsTruncated sets the IsTruncated field's value. 26504 func (s *ListObjectsOutput) SetIsTruncated(v bool) *ListObjectsOutput { 26505 s.IsTruncated = &v 26506 return s 26507 } 26508 26509 // SetMarker sets the Marker field's value. 26510 func (s *ListObjectsOutput) SetMarker(v string) *ListObjectsOutput { 26511 s.Marker = &v 26512 return s 26513 } 26514 26515 // SetMaxKeys sets the MaxKeys field's value. 26516 func (s *ListObjectsOutput) SetMaxKeys(v int64) *ListObjectsOutput { 26517 s.MaxKeys = &v 26518 return s 26519 } 26520 26521 // SetName sets the Name field's value. 26522 func (s *ListObjectsOutput) SetName(v string) *ListObjectsOutput { 26523 s.Name = &v 26524 return s 26525 } 26526 26527 // SetNextMarker sets the NextMarker field's value. 26528 func (s *ListObjectsOutput) SetNextMarker(v string) *ListObjectsOutput { 26529 s.NextMarker = &v 26530 return s 26531 } 26532 26533 // SetPrefix sets the Prefix field's value. 26534 func (s *ListObjectsOutput) SetPrefix(v string) *ListObjectsOutput { 26535 s.Prefix = &v 26536 return s 26537 } 26538 26539 type ListObjectsV2Input struct { 26540 _ struct{} `locationName:"ListObjectsV2Request" type:"structure"` 26541 26542 // Bucket name to list. 26543 // 26544 // When using this action with an access point, you must direct requests to 26545 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 26546 // When using this action with an access point through the Amazon Web Services 26547 // SDKs, you provide the access point ARN in place of the bucket name. For more 26548 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 26549 // in the Amazon S3 User Guide. 26550 // 26551 // When using this action with Amazon S3 on Outposts, you must direct requests 26552 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 26553 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 26554 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 26555 // you provide the Outposts bucket ARN in place of the bucket name. For more 26556 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 26557 // in the Amazon S3 User Guide. 26558 // 26559 // Bucket is a required field 26560 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 26561 26562 // ContinuationToken indicates Amazon S3 that the list is being continued on 26563 // this bucket with a token. ContinuationToken is obfuscated and is not a real 26564 // key. 26565 ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` 26566 26567 // A delimiter is a character you use to group keys. 26568 Delimiter *string `location:"querystring" locationName:"delimiter" type:"string"` 26569 26570 // Encoding type used by Amazon S3 to encode object keys in the response. 26571 EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` 26572 26573 // The account ID of the expected bucket owner. If the bucket is owned by a 26574 // different account, the request will fail with an HTTP 403 (Access Denied) 26575 // error. 26576 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 26577 26578 // The owner field is not present in listV2 by default, if you want to return 26579 // owner field with each key in the result then set the fetch owner field to 26580 // true. 26581 FetchOwner *bool `location:"querystring" locationName:"fetch-owner" type:"boolean"` 26582 26583 // Sets the maximum number of keys returned in the response. By default the 26584 // action returns up to 1,000 key names. The response might contain fewer keys 26585 // but will never contain more. 26586 MaxKeys *int64 `location:"querystring" locationName:"max-keys" type:"integer"` 26587 26588 // Limits the response to keys that begin with the specified prefix. 26589 Prefix *string `location:"querystring" locationName:"prefix" type:"string"` 26590 26591 // Confirms that the requester knows that she or he will be charged for the 26592 // list objects request in V2 style. Bucket owners need not specify this parameter 26593 // in their requests. 26594 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 26595 26596 // StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts 26597 // listing after this specified key. StartAfter can be any key in the bucket. 26598 StartAfter *string `location:"querystring" locationName:"start-after" type:"string"` 26599 } 26600 26601 // String returns the string representation. 26602 // 26603 // API parameter values that are decorated as "sensitive" in the API will not 26604 // be included in the string output. The member name will be present, but the 26605 // value will be replaced with "sensitive". 26606 func (s ListObjectsV2Input) String() string { 26607 return awsutil.Prettify(s) 26608 } 26609 26610 // GoString returns the string representation. 26611 // 26612 // API parameter values that are decorated as "sensitive" in the API will not 26613 // be included in the string output. The member name will be present, but the 26614 // value will be replaced with "sensitive". 26615 func (s ListObjectsV2Input) GoString() string { 26616 return s.String() 26617 } 26618 26619 // Validate inspects the fields of the type to determine if they are valid. 26620 func (s *ListObjectsV2Input) Validate() error { 26621 invalidParams := request.ErrInvalidParams{Context: "ListObjectsV2Input"} 26622 if s.Bucket == nil { 26623 invalidParams.Add(request.NewErrParamRequired("Bucket")) 26624 } 26625 if s.Bucket != nil && len(*s.Bucket) < 1 { 26626 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 26627 } 26628 26629 if invalidParams.Len() > 0 { 26630 return invalidParams 26631 } 26632 return nil 26633 } 26634 26635 // SetBucket sets the Bucket field's value. 26636 func (s *ListObjectsV2Input) SetBucket(v string) *ListObjectsV2Input { 26637 s.Bucket = &v 26638 return s 26639 } 26640 26641 func (s *ListObjectsV2Input) getBucket() (v string) { 26642 if s.Bucket == nil { 26643 return v 26644 } 26645 return *s.Bucket 26646 } 26647 26648 // SetContinuationToken sets the ContinuationToken field's value. 26649 func (s *ListObjectsV2Input) SetContinuationToken(v string) *ListObjectsV2Input { 26650 s.ContinuationToken = &v 26651 return s 26652 } 26653 26654 // SetDelimiter sets the Delimiter field's value. 26655 func (s *ListObjectsV2Input) SetDelimiter(v string) *ListObjectsV2Input { 26656 s.Delimiter = &v 26657 return s 26658 } 26659 26660 // SetEncodingType sets the EncodingType field's value. 26661 func (s *ListObjectsV2Input) SetEncodingType(v string) *ListObjectsV2Input { 26662 s.EncodingType = &v 26663 return s 26664 } 26665 26666 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 26667 func (s *ListObjectsV2Input) SetExpectedBucketOwner(v string) *ListObjectsV2Input { 26668 s.ExpectedBucketOwner = &v 26669 return s 26670 } 26671 26672 // SetFetchOwner sets the FetchOwner field's value. 26673 func (s *ListObjectsV2Input) SetFetchOwner(v bool) *ListObjectsV2Input { 26674 s.FetchOwner = &v 26675 return s 26676 } 26677 26678 // SetMaxKeys sets the MaxKeys field's value. 26679 func (s *ListObjectsV2Input) SetMaxKeys(v int64) *ListObjectsV2Input { 26680 s.MaxKeys = &v 26681 return s 26682 } 26683 26684 // SetPrefix sets the Prefix field's value. 26685 func (s *ListObjectsV2Input) SetPrefix(v string) *ListObjectsV2Input { 26686 s.Prefix = &v 26687 return s 26688 } 26689 26690 // SetRequestPayer sets the RequestPayer field's value. 26691 func (s *ListObjectsV2Input) SetRequestPayer(v string) *ListObjectsV2Input { 26692 s.RequestPayer = &v 26693 return s 26694 } 26695 26696 // SetStartAfter sets the StartAfter field's value. 26697 func (s *ListObjectsV2Input) SetStartAfter(v string) *ListObjectsV2Input { 26698 s.StartAfter = &v 26699 return s 26700 } 26701 26702 func (s *ListObjectsV2Input) getEndpointARN() (arn.Resource, error) { 26703 if s.Bucket == nil { 26704 return nil, fmt.Errorf("member Bucket is nil") 26705 } 26706 return parseEndpointARN(*s.Bucket) 26707 } 26708 26709 func (s *ListObjectsV2Input) hasEndpointARN() bool { 26710 if s.Bucket == nil { 26711 return false 26712 } 26713 return arn.IsARN(*s.Bucket) 26714 } 26715 26716 // updateArnableField updates the value of the input field that 26717 // takes an ARN as an input. This method is useful to backfill 26718 // the parsed resource name from ARN into the input member. 26719 // It returns a pointer to a modified copy of input and an error. 26720 // Note that original input is not modified. 26721 func (s ListObjectsV2Input) updateArnableField(v string) (interface{}, error) { 26722 if s.Bucket == nil { 26723 return nil, fmt.Errorf("member Bucket is nil") 26724 } 26725 s.Bucket = aws.String(v) 26726 return &s, nil 26727 } 26728 26729 type ListObjectsV2Output struct { 26730 _ struct{} `type:"structure"` 26731 26732 // All of the keys (up to 1,000) rolled up into a common prefix count as a single 26733 // return when calculating the number of returns. 26734 // 26735 // A response can contain CommonPrefixes only if you specify a delimiter. 26736 // 26737 // CommonPrefixes contains all (if there are any) keys between Prefix and the 26738 // next occurrence of the string specified by a delimiter. 26739 // 26740 // CommonPrefixes lists keys that act like subdirectories in the directory specified 26741 // by Prefix. 26742 // 26743 // For example, if the prefix is notes/ and the delimiter is a slash (/) as 26744 // in notes/summer/july, the common prefix is notes/summer/. All of the keys 26745 // that roll up into a common prefix count as a single return when calculating 26746 // the number of returns. 26747 CommonPrefixes []*CommonPrefix `type:"list" flattened:"true"` 26748 26749 // Metadata about each object returned. 26750 Contents []*Object `type:"list" flattened:"true"` 26751 26752 // If ContinuationToken was sent with the request, it is included in the response. 26753 ContinuationToken *string `type:"string"` 26754 26755 // Causes keys that contain the same string between the prefix and the first 26756 // occurrence of the delimiter to be rolled up into a single result element 26757 // in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere 26758 // in the response. Each rolled-up result counts as only one return against 26759 // the MaxKeys value. 26760 Delimiter *string `type:"string"` 26761 26762 // Encoding type used by Amazon S3 to encode object key names in the XML response. 26763 // 26764 // If you specify the encoding-type request parameter, Amazon S3 includes this 26765 // element in the response, and returns encoded key name values in the following 26766 // response elements: 26767 // 26768 // Delimiter, Prefix, Key, and StartAfter. 26769 EncodingType *string `type:"string" enum:"EncodingType"` 26770 26771 // Set to false if all of the results were returned. Set to true if more keys 26772 // are available to return. If the number of results exceeds that specified 26773 // by MaxKeys, all of the results might not be returned. 26774 IsTruncated *bool `type:"boolean"` 26775 26776 // KeyCount is the number of keys returned with this request. KeyCount will 26777 // always be less than or equals to MaxKeys field. Say you ask for 50 keys, 26778 // your result will include less than equals 50 keys 26779 KeyCount *int64 `type:"integer"` 26780 26781 // Sets the maximum number of keys returned in the response. By default the 26782 // action returns up to 1,000 key names. The response might contain fewer keys 26783 // but will never contain more. 26784 MaxKeys *int64 `type:"integer"` 26785 26786 // The bucket name. 26787 // 26788 // When using this action with an access point, you must direct requests to 26789 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 26790 // When using this action with an access point through the Amazon Web Services 26791 // SDKs, you provide the access point ARN in place of the bucket name. For more 26792 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 26793 // in the Amazon S3 User Guide. 26794 // 26795 // When using this action with Amazon S3 on Outposts, you must direct requests 26796 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 26797 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 26798 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 26799 // you provide the Outposts bucket ARN in place of the bucket name. For more 26800 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 26801 // in the Amazon S3 User Guide. 26802 Name *string `type:"string"` 26803 26804 // NextContinuationToken is sent when isTruncated is true, which means there 26805 // are more keys in the bucket that can be listed. The next list requests to 26806 // Amazon S3 can be continued with this NextContinuationToken. NextContinuationToken 26807 // is obfuscated and is not a real key 26808 NextContinuationToken *string `type:"string"` 26809 26810 // Keys that begin with the indicated prefix. 26811 Prefix *string `type:"string"` 26812 26813 // If StartAfter was sent with the request, it is included in the response. 26814 StartAfter *string `type:"string"` 26815 } 26816 26817 // String returns the string representation. 26818 // 26819 // API parameter values that are decorated as "sensitive" in the API will not 26820 // be included in the string output. The member name will be present, but the 26821 // value will be replaced with "sensitive". 26822 func (s ListObjectsV2Output) String() string { 26823 return awsutil.Prettify(s) 26824 } 26825 26826 // GoString returns the string representation. 26827 // 26828 // API parameter values that are decorated as "sensitive" in the API will not 26829 // be included in the string output. The member name will be present, but the 26830 // value will be replaced with "sensitive". 26831 func (s ListObjectsV2Output) GoString() string { 26832 return s.String() 26833 } 26834 26835 // SetCommonPrefixes sets the CommonPrefixes field's value. 26836 func (s *ListObjectsV2Output) SetCommonPrefixes(v []*CommonPrefix) *ListObjectsV2Output { 26837 s.CommonPrefixes = v 26838 return s 26839 } 26840 26841 // SetContents sets the Contents field's value. 26842 func (s *ListObjectsV2Output) SetContents(v []*Object) *ListObjectsV2Output { 26843 s.Contents = v 26844 return s 26845 } 26846 26847 // SetContinuationToken sets the ContinuationToken field's value. 26848 func (s *ListObjectsV2Output) SetContinuationToken(v string) *ListObjectsV2Output { 26849 s.ContinuationToken = &v 26850 return s 26851 } 26852 26853 // SetDelimiter sets the Delimiter field's value. 26854 func (s *ListObjectsV2Output) SetDelimiter(v string) *ListObjectsV2Output { 26855 s.Delimiter = &v 26856 return s 26857 } 26858 26859 // SetEncodingType sets the EncodingType field's value. 26860 func (s *ListObjectsV2Output) SetEncodingType(v string) *ListObjectsV2Output { 26861 s.EncodingType = &v 26862 return s 26863 } 26864 26865 // SetIsTruncated sets the IsTruncated field's value. 26866 func (s *ListObjectsV2Output) SetIsTruncated(v bool) *ListObjectsV2Output { 26867 s.IsTruncated = &v 26868 return s 26869 } 26870 26871 // SetKeyCount sets the KeyCount field's value. 26872 func (s *ListObjectsV2Output) SetKeyCount(v int64) *ListObjectsV2Output { 26873 s.KeyCount = &v 26874 return s 26875 } 26876 26877 // SetMaxKeys sets the MaxKeys field's value. 26878 func (s *ListObjectsV2Output) SetMaxKeys(v int64) *ListObjectsV2Output { 26879 s.MaxKeys = &v 26880 return s 26881 } 26882 26883 // SetName sets the Name field's value. 26884 func (s *ListObjectsV2Output) SetName(v string) *ListObjectsV2Output { 26885 s.Name = &v 26886 return s 26887 } 26888 26889 // SetNextContinuationToken sets the NextContinuationToken field's value. 26890 func (s *ListObjectsV2Output) SetNextContinuationToken(v string) *ListObjectsV2Output { 26891 s.NextContinuationToken = &v 26892 return s 26893 } 26894 26895 // SetPrefix sets the Prefix field's value. 26896 func (s *ListObjectsV2Output) SetPrefix(v string) *ListObjectsV2Output { 26897 s.Prefix = &v 26898 return s 26899 } 26900 26901 // SetStartAfter sets the StartAfter field's value. 26902 func (s *ListObjectsV2Output) SetStartAfter(v string) *ListObjectsV2Output { 26903 s.StartAfter = &v 26904 return s 26905 } 26906 26907 type ListPartsInput struct { 26908 _ struct{} `locationName:"ListPartsRequest" type:"structure"` 26909 26910 // The name of the bucket to which the parts are being uploaded. 26911 // 26912 // When using this action with an access point, you must direct requests to 26913 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 26914 // When using this action with an access point through the Amazon Web Services 26915 // SDKs, you provide the access point ARN in place of the bucket name. For more 26916 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 26917 // in the Amazon S3 User Guide. 26918 // 26919 // When using this action with Amazon S3 on Outposts, you must direct requests 26920 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 26921 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 26922 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 26923 // you provide the Outposts bucket ARN in place of the bucket name. For more 26924 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 26925 // in the Amazon S3 User Guide. 26926 // 26927 // Bucket is a required field 26928 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 26929 26930 // The account ID of the expected bucket owner. If the bucket is owned by a 26931 // different account, the request will fail with an HTTP 403 (Access Denied) 26932 // error. 26933 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 26934 26935 // Object key for which the multipart upload was initiated. 26936 // 26937 // Key is a required field 26938 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 26939 26940 // Sets the maximum number of parts to return. 26941 MaxParts *int64 `location:"querystring" locationName:"max-parts" type:"integer"` 26942 26943 // Specifies the part after which listing should begin. Only parts with higher 26944 // part numbers will be listed. 26945 PartNumberMarker *int64 `location:"querystring" locationName:"part-number-marker" type:"integer"` 26946 26947 // Confirms that the requester knows that they will be charged for the request. 26948 // Bucket owners need not specify this parameter in their requests. For information 26949 // about downloading objects from requester pays buckets, see Downloading Objects 26950 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 26951 // in the Amazon S3 User Guide. 26952 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 26953 26954 // Upload ID identifying the multipart upload whose parts are being listed. 26955 // 26956 // UploadId is a required field 26957 UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"` 26958 } 26959 26960 // String returns the string representation. 26961 // 26962 // API parameter values that are decorated as "sensitive" in the API will not 26963 // be included in the string output. The member name will be present, but the 26964 // value will be replaced with "sensitive". 26965 func (s ListPartsInput) String() string { 26966 return awsutil.Prettify(s) 26967 } 26968 26969 // GoString returns the string representation. 26970 // 26971 // API parameter values that are decorated as "sensitive" in the API will not 26972 // be included in the string output. The member name will be present, but the 26973 // value will be replaced with "sensitive". 26974 func (s ListPartsInput) GoString() string { 26975 return s.String() 26976 } 26977 26978 // Validate inspects the fields of the type to determine if they are valid. 26979 func (s *ListPartsInput) Validate() error { 26980 invalidParams := request.ErrInvalidParams{Context: "ListPartsInput"} 26981 if s.Bucket == nil { 26982 invalidParams.Add(request.NewErrParamRequired("Bucket")) 26983 } 26984 if s.Bucket != nil && len(*s.Bucket) < 1 { 26985 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 26986 } 26987 if s.Key == nil { 26988 invalidParams.Add(request.NewErrParamRequired("Key")) 26989 } 26990 if s.Key != nil && len(*s.Key) < 1 { 26991 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 26992 } 26993 if s.UploadId == nil { 26994 invalidParams.Add(request.NewErrParamRequired("UploadId")) 26995 } 26996 26997 if invalidParams.Len() > 0 { 26998 return invalidParams 26999 } 27000 return nil 27001 } 27002 27003 // SetBucket sets the Bucket field's value. 27004 func (s *ListPartsInput) SetBucket(v string) *ListPartsInput { 27005 s.Bucket = &v 27006 return s 27007 } 27008 27009 func (s *ListPartsInput) getBucket() (v string) { 27010 if s.Bucket == nil { 27011 return v 27012 } 27013 return *s.Bucket 27014 } 27015 27016 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 27017 func (s *ListPartsInput) SetExpectedBucketOwner(v string) *ListPartsInput { 27018 s.ExpectedBucketOwner = &v 27019 return s 27020 } 27021 27022 // SetKey sets the Key field's value. 27023 func (s *ListPartsInput) SetKey(v string) *ListPartsInput { 27024 s.Key = &v 27025 return s 27026 } 27027 27028 // SetMaxParts sets the MaxParts field's value. 27029 func (s *ListPartsInput) SetMaxParts(v int64) *ListPartsInput { 27030 s.MaxParts = &v 27031 return s 27032 } 27033 27034 // SetPartNumberMarker sets the PartNumberMarker field's value. 27035 func (s *ListPartsInput) SetPartNumberMarker(v int64) *ListPartsInput { 27036 s.PartNumberMarker = &v 27037 return s 27038 } 27039 27040 // SetRequestPayer sets the RequestPayer field's value. 27041 func (s *ListPartsInput) SetRequestPayer(v string) *ListPartsInput { 27042 s.RequestPayer = &v 27043 return s 27044 } 27045 27046 // SetUploadId sets the UploadId field's value. 27047 func (s *ListPartsInput) SetUploadId(v string) *ListPartsInput { 27048 s.UploadId = &v 27049 return s 27050 } 27051 27052 func (s *ListPartsInput) getEndpointARN() (arn.Resource, error) { 27053 if s.Bucket == nil { 27054 return nil, fmt.Errorf("member Bucket is nil") 27055 } 27056 return parseEndpointARN(*s.Bucket) 27057 } 27058 27059 func (s *ListPartsInput) hasEndpointARN() bool { 27060 if s.Bucket == nil { 27061 return false 27062 } 27063 return arn.IsARN(*s.Bucket) 27064 } 27065 27066 // updateArnableField updates the value of the input field that 27067 // takes an ARN as an input. This method is useful to backfill 27068 // the parsed resource name from ARN into the input member. 27069 // It returns a pointer to a modified copy of input and an error. 27070 // Note that original input is not modified. 27071 func (s ListPartsInput) updateArnableField(v string) (interface{}, error) { 27072 if s.Bucket == nil { 27073 return nil, fmt.Errorf("member Bucket is nil") 27074 } 27075 s.Bucket = aws.String(v) 27076 return &s, nil 27077 } 27078 27079 type ListPartsOutput struct { 27080 _ struct{} `type:"structure"` 27081 27082 // If the bucket has a lifecycle rule configured with an action to abort incomplete 27083 // multipart uploads and the prefix in the lifecycle rule matches the object 27084 // name in the request, then the response includes this header indicating when 27085 // the initiated multipart upload will become eligible for abort operation. 27086 // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket 27087 // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). 27088 // 27089 // The response will also include the x-amz-abort-rule-id header that will provide 27090 // the ID of the lifecycle configuration rule that defines this action. 27091 AbortDate *time.Time `location:"header" locationName:"x-amz-abort-date" type:"timestamp"` 27092 27093 // This header is returned along with the x-amz-abort-date header. It identifies 27094 // applicable lifecycle configuration rule that defines the action to abort 27095 // incomplete multipart uploads. 27096 AbortRuleId *string `location:"header" locationName:"x-amz-abort-rule-id" type:"string"` 27097 27098 // The name of the bucket to which the multipart upload was initiated. Does 27099 // not return the access point ARN or access point alias if used. 27100 Bucket *string `type:"string"` 27101 27102 // Container element that identifies who initiated the multipart upload. If 27103 // the initiator is an Amazon Web Services account, this element provides the 27104 // same information as the Owner element. If the initiator is an IAM User, this 27105 // element provides the user ARN and display name. 27106 Initiator *Initiator `type:"structure"` 27107 27108 // Indicates whether the returned list of parts is truncated. A true value indicates 27109 // that the list was truncated. A list can be truncated if the number of parts 27110 // exceeds the limit returned in the MaxParts element. 27111 IsTruncated *bool `type:"boolean"` 27112 27113 // Object key for which the multipart upload was initiated. 27114 Key *string `min:"1" type:"string"` 27115 27116 // Maximum number of parts that were allowed in the response. 27117 MaxParts *int64 `type:"integer"` 27118 27119 // When a list is truncated, this element specifies the last part in the list, 27120 // as well as the value to use for the part-number-marker request parameter 27121 // in a subsequent request. 27122 NextPartNumberMarker *int64 `type:"integer"` 27123 27124 // Container element that identifies the object owner, after the object is created. 27125 // If multipart upload is initiated by an IAM user, this element provides the 27126 // parent account ID and display name. 27127 Owner *Owner `type:"structure"` 27128 27129 // When a list is truncated, this element specifies the last part in the list, 27130 // as well as the value to use for the part-number-marker request parameter 27131 // in a subsequent request. 27132 PartNumberMarker *int64 `type:"integer"` 27133 27134 // Container for elements related to a particular part. A response can contain 27135 // zero or more Part elements. 27136 Parts []*Part `locationName:"Part" type:"list" flattened:"true"` 27137 27138 // If present, indicates that the requester was successfully charged for the 27139 // request. 27140 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 27141 27142 // Class of storage (STANDARD or REDUCED_REDUNDANCY) used to store the uploaded 27143 // object. 27144 StorageClass *string `type:"string" enum:"StorageClass"` 27145 27146 // Upload ID identifying the multipart upload whose parts are being listed. 27147 UploadId *string `type:"string"` 27148 } 27149 27150 // String returns the string representation. 27151 // 27152 // API parameter values that are decorated as "sensitive" in the API will not 27153 // be included in the string output. The member name will be present, but the 27154 // value will be replaced with "sensitive". 27155 func (s ListPartsOutput) String() string { 27156 return awsutil.Prettify(s) 27157 } 27158 27159 // GoString returns the string representation. 27160 // 27161 // API parameter values that are decorated as "sensitive" in the API will not 27162 // be included in the string output. The member name will be present, but the 27163 // value will be replaced with "sensitive". 27164 func (s ListPartsOutput) GoString() string { 27165 return s.String() 27166 } 27167 27168 // SetAbortDate sets the AbortDate field's value. 27169 func (s *ListPartsOutput) SetAbortDate(v time.Time) *ListPartsOutput { 27170 s.AbortDate = &v 27171 return s 27172 } 27173 27174 // SetAbortRuleId sets the AbortRuleId field's value. 27175 func (s *ListPartsOutput) SetAbortRuleId(v string) *ListPartsOutput { 27176 s.AbortRuleId = &v 27177 return s 27178 } 27179 27180 // SetBucket sets the Bucket field's value. 27181 func (s *ListPartsOutput) SetBucket(v string) *ListPartsOutput { 27182 s.Bucket = &v 27183 return s 27184 } 27185 27186 func (s *ListPartsOutput) getBucket() (v string) { 27187 if s.Bucket == nil { 27188 return v 27189 } 27190 return *s.Bucket 27191 } 27192 27193 // SetInitiator sets the Initiator field's value. 27194 func (s *ListPartsOutput) SetInitiator(v *Initiator) *ListPartsOutput { 27195 s.Initiator = v 27196 return s 27197 } 27198 27199 // SetIsTruncated sets the IsTruncated field's value. 27200 func (s *ListPartsOutput) SetIsTruncated(v bool) *ListPartsOutput { 27201 s.IsTruncated = &v 27202 return s 27203 } 27204 27205 // SetKey sets the Key field's value. 27206 func (s *ListPartsOutput) SetKey(v string) *ListPartsOutput { 27207 s.Key = &v 27208 return s 27209 } 27210 27211 // SetMaxParts sets the MaxParts field's value. 27212 func (s *ListPartsOutput) SetMaxParts(v int64) *ListPartsOutput { 27213 s.MaxParts = &v 27214 return s 27215 } 27216 27217 // SetNextPartNumberMarker sets the NextPartNumberMarker field's value. 27218 func (s *ListPartsOutput) SetNextPartNumberMarker(v int64) *ListPartsOutput { 27219 s.NextPartNumberMarker = &v 27220 return s 27221 } 27222 27223 // SetOwner sets the Owner field's value. 27224 func (s *ListPartsOutput) SetOwner(v *Owner) *ListPartsOutput { 27225 s.Owner = v 27226 return s 27227 } 27228 27229 // SetPartNumberMarker sets the PartNumberMarker field's value. 27230 func (s *ListPartsOutput) SetPartNumberMarker(v int64) *ListPartsOutput { 27231 s.PartNumberMarker = &v 27232 return s 27233 } 27234 27235 // SetParts sets the Parts field's value. 27236 func (s *ListPartsOutput) SetParts(v []*Part) *ListPartsOutput { 27237 s.Parts = v 27238 return s 27239 } 27240 27241 // SetRequestCharged sets the RequestCharged field's value. 27242 func (s *ListPartsOutput) SetRequestCharged(v string) *ListPartsOutput { 27243 s.RequestCharged = &v 27244 return s 27245 } 27246 27247 // SetStorageClass sets the StorageClass field's value. 27248 func (s *ListPartsOutput) SetStorageClass(v string) *ListPartsOutput { 27249 s.StorageClass = &v 27250 return s 27251 } 27252 27253 // SetUploadId sets the UploadId field's value. 27254 func (s *ListPartsOutput) SetUploadId(v string) *ListPartsOutput { 27255 s.UploadId = &v 27256 return s 27257 } 27258 27259 // Describes an Amazon S3 location that will receive the results of the restore 27260 // request. 27261 type Location struct { 27262 _ struct{} `type:"structure"` 27263 27264 // A list of grants that control access to the staged results. 27265 AccessControlList []*Grant `locationNameList:"Grant" type:"list"` 27266 27267 // The name of the bucket where the restore results will be placed. 27268 // 27269 // BucketName is a required field 27270 BucketName *string `type:"string" required:"true"` 27271 27272 // The canned ACL to apply to the restore results. 27273 CannedACL *string `type:"string" enum:"ObjectCannedACL"` 27274 27275 // Contains the type of server-side encryption used. 27276 Encryption *Encryption `type:"structure"` 27277 27278 // The prefix that is prepended to the restore results for this request. 27279 // 27280 // Prefix is a required field 27281 Prefix *string `type:"string" required:"true"` 27282 27283 // The class of storage used to store the restore results. 27284 StorageClass *string `type:"string" enum:"StorageClass"` 27285 27286 // The tag-set that is applied to the restore results. 27287 Tagging *Tagging `type:"structure"` 27288 27289 // A list of metadata to store with the restore results in S3. 27290 UserMetadata []*MetadataEntry `locationNameList:"MetadataEntry" type:"list"` 27291 } 27292 27293 // String returns the string representation. 27294 // 27295 // API parameter values that are decorated as "sensitive" in the API will not 27296 // be included in the string output. The member name will be present, but the 27297 // value will be replaced with "sensitive". 27298 func (s Location) String() string { 27299 return awsutil.Prettify(s) 27300 } 27301 27302 // GoString returns the string representation. 27303 // 27304 // API parameter values that are decorated as "sensitive" in the API will not 27305 // be included in the string output. The member name will be present, but the 27306 // value will be replaced with "sensitive". 27307 func (s Location) GoString() string { 27308 return s.String() 27309 } 27310 27311 // Validate inspects the fields of the type to determine if they are valid. 27312 func (s *Location) Validate() error { 27313 invalidParams := request.ErrInvalidParams{Context: "Location"} 27314 if s.BucketName == nil { 27315 invalidParams.Add(request.NewErrParamRequired("BucketName")) 27316 } 27317 if s.Prefix == nil { 27318 invalidParams.Add(request.NewErrParamRequired("Prefix")) 27319 } 27320 if s.AccessControlList != nil { 27321 for i, v := range s.AccessControlList { 27322 if v == nil { 27323 continue 27324 } 27325 if err := v.Validate(); err != nil { 27326 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlList", i), err.(request.ErrInvalidParams)) 27327 } 27328 } 27329 } 27330 if s.Encryption != nil { 27331 if err := s.Encryption.Validate(); err != nil { 27332 invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams)) 27333 } 27334 } 27335 if s.Tagging != nil { 27336 if err := s.Tagging.Validate(); err != nil { 27337 invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams)) 27338 } 27339 } 27340 27341 if invalidParams.Len() > 0 { 27342 return invalidParams 27343 } 27344 return nil 27345 } 27346 27347 // SetAccessControlList sets the AccessControlList field's value. 27348 func (s *Location) SetAccessControlList(v []*Grant) *Location { 27349 s.AccessControlList = v 27350 return s 27351 } 27352 27353 // SetBucketName sets the BucketName field's value. 27354 func (s *Location) SetBucketName(v string) *Location { 27355 s.BucketName = &v 27356 return s 27357 } 27358 27359 // SetCannedACL sets the CannedACL field's value. 27360 func (s *Location) SetCannedACL(v string) *Location { 27361 s.CannedACL = &v 27362 return s 27363 } 27364 27365 // SetEncryption sets the Encryption field's value. 27366 func (s *Location) SetEncryption(v *Encryption) *Location { 27367 s.Encryption = v 27368 return s 27369 } 27370 27371 // SetPrefix sets the Prefix field's value. 27372 func (s *Location) SetPrefix(v string) *Location { 27373 s.Prefix = &v 27374 return s 27375 } 27376 27377 // SetStorageClass sets the StorageClass field's value. 27378 func (s *Location) SetStorageClass(v string) *Location { 27379 s.StorageClass = &v 27380 return s 27381 } 27382 27383 // SetTagging sets the Tagging field's value. 27384 func (s *Location) SetTagging(v *Tagging) *Location { 27385 s.Tagging = v 27386 return s 27387 } 27388 27389 // SetUserMetadata sets the UserMetadata field's value. 27390 func (s *Location) SetUserMetadata(v []*MetadataEntry) *Location { 27391 s.UserMetadata = v 27392 return s 27393 } 27394 27395 // Describes where logs are stored and the prefix that Amazon S3 assigns to 27396 // all log object keys for a bucket. For more information, see PUT Bucket logging 27397 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) 27398 // in the Amazon S3 API Reference. 27399 type LoggingEnabled struct { 27400 _ struct{} `type:"structure"` 27401 27402 // Specifies the bucket where you want Amazon S3 to store server access logs. 27403 // You can have your logs delivered to any bucket that you own, including the 27404 // same bucket that is being logged. You can also configure multiple buckets 27405 // to deliver their logs to the same target bucket. In this case, you should 27406 // choose a different TargetPrefix for each source bucket so that the delivered 27407 // log files can be distinguished by key. 27408 // 27409 // TargetBucket is a required field 27410 TargetBucket *string `type:"string" required:"true"` 27411 27412 // Container for granting information. 27413 TargetGrants []*TargetGrant `locationNameList:"Grant" type:"list"` 27414 27415 // A prefix for all log object keys. If you store log files from multiple Amazon 27416 // S3 buckets in a single bucket, you can use a prefix to distinguish which 27417 // log files came from which bucket. 27418 // 27419 // TargetPrefix is a required field 27420 TargetPrefix *string `type:"string" required:"true"` 27421 } 27422 27423 // String returns the string representation. 27424 // 27425 // API parameter values that are decorated as "sensitive" in the API will not 27426 // be included in the string output. The member name will be present, but the 27427 // value will be replaced with "sensitive". 27428 func (s LoggingEnabled) String() string { 27429 return awsutil.Prettify(s) 27430 } 27431 27432 // GoString returns the string representation. 27433 // 27434 // API parameter values that are decorated as "sensitive" in the API will not 27435 // be included in the string output. The member name will be present, but the 27436 // value will be replaced with "sensitive". 27437 func (s LoggingEnabled) GoString() string { 27438 return s.String() 27439 } 27440 27441 // Validate inspects the fields of the type to determine if they are valid. 27442 func (s *LoggingEnabled) Validate() error { 27443 invalidParams := request.ErrInvalidParams{Context: "LoggingEnabled"} 27444 if s.TargetBucket == nil { 27445 invalidParams.Add(request.NewErrParamRequired("TargetBucket")) 27446 } 27447 if s.TargetPrefix == nil { 27448 invalidParams.Add(request.NewErrParamRequired("TargetPrefix")) 27449 } 27450 if s.TargetGrants != nil { 27451 for i, v := range s.TargetGrants { 27452 if v == nil { 27453 continue 27454 } 27455 if err := v.Validate(); err != nil { 27456 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetGrants", i), err.(request.ErrInvalidParams)) 27457 } 27458 } 27459 } 27460 27461 if invalidParams.Len() > 0 { 27462 return invalidParams 27463 } 27464 return nil 27465 } 27466 27467 // SetTargetBucket sets the TargetBucket field's value. 27468 func (s *LoggingEnabled) SetTargetBucket(v string) *LoggingEnabled { 27469 s.TargetBucket = &v 27470 return s 27471 } 27472 27473 // SetTargetGrants sets the TargetGrants field's value. 27474 func (s *LoggingEnabled) SetTargetGrants(v []*TargetGrant) *LoggingEnabled { 27475 s.TargetGrants = v 27476 return s 27477 } 27478 27479 // SetTargetPrefix sets the TargetPrefix field's value. 27480 func (s *LoggingEnabled) SetTargetPrefix(v string) *LoggingEnabled { 27481 s.TargetPrefix = &v 27482 return s 27483 } 27484 27485 // A metadata key-value pair to store with an object. 27486 type MetadataEntry struct { 27487 _ struct{} `type:"structure"` 27488 27489 // Name of the Object. 27490 Name *string `type:"string"` 27491 27492 // Value of the Object. 27493 Value *string `type:"string"` 27494 } 27495 27496 // String returns the string representation. 27497 // 27498 // API parameter values that are decorated as "sensitive" in the API will not 27499 // be included in the string output. The member name will be present, but the 27500 // value will be replaced with "sensitive". 27501 func (s MetadataEntry) String() string { 27502 return awsutil.Prettify(s) 27503 } 27504 27505 // GoString returns the string representation. 27506 // 27507 // API parameter values that are decorated as "sensitive" in the API will not 27508 // be included in the string output. The member name will be present, but the 27509 // value will be replaced with "sensitive". 27510 func (s MetadataEntry) GoString() string { 27511 return s.String() 27512 } 27513 27514 // SetName sets the Name field's value. 27515 func (s *MetadataEntry) SetName(v string) *MetadataEntry { 27516 s.Name = &v 27517 return s 27518 } 27519 27520 // SetValue sets the Value field's value. 27521 func (s *MetadataEntry) SetValue(v string) *MetadataEntry { 27522 s.Value = &v 27523 return s 27524 } 27525 27526 // A container specifying replication metrics-related settings enabling replication 27527 // metrics and events. 27528 type Metrics struct { 27529 _ struct{} `type:"structure"` 27530 27531 // A container specifying the time threshold for emitting the s3:Replication:OperationMissedThreshold 27532 // event. 27533 EventThreshold *ReplicationTimeValue `type:"structure"` 27534 27535 // Specifies whether the replication metrics are enabled. 27536 // 27537 // Status is a required field 27538 Status *string `type:"string" required:"true" enum:"MetricsStatus"` 27539 } 27540 27541 // String returns the string representation. 27542 // 27543 // API parameter values that are decorated as "sensitive" in the API will not 27544 // be included in the string output. The member name will be present, but the 27545 // value will be replaced with "sensitive". 27546 func (s Metrics) String() string { 27547 return awsutil.Prettify(s) 27548 } 27549 27550 // GoString returns the string representation. 27551 // 27552 // API parameter values that are decorated as "sensitive" in the API will not 27553 // be included in the string output. The member name will be present, but the 27554 // value will be replaced with "sensitive". 27555 func (s Metrics) GoString() string { 27556 return s.String() 27557 } 27558 27559 // Validate inspects the fields of the type to determine if they are valid. 27560 func (s *Metrics) Validate() error { 27561 invalidParams := request.ErrInvalidParams{Context: "Metrics"} 27562 if s.Status == nil { 27563 invalidParams.Add(request.NewErrParamRequired("Status")) 27564 } 27565 27566 if invalidParams.Len() > 0 { 27567 return invalidParams 27568 } 27569 return nil 27570 } 27571 27572 // SetEventThreshold sets the EventThreshold field's value. 27573 func (s *Metrics) SetEventThreshold(v *ReplicationTimeValue) *Metrics { 27574 s.EventThreshold = v 27575 return s 27576 } 27577 27578 // SetStatus sets the Status field's value. 27579 func (s *Metrics) SetStatus(v string) *Metrics { 27580 s.Status = &v 27581 return s 27582 } 27583 27584 // A conjunction (logical AND) of predicates, which is used in evaluating a 27585 // metrics filter. The operator must have at least two predicates, and an object 27586 // must match all of the predicates in order for the filter to apply. 27587 type MetricsAndOperator struct { 27588 _ struct{} `type:"structure"` 27589 27590 // The access point ARN used when evaluating an AND predicate. 27591 AccessPointArn *string `type:"string"` 27592 27593 // The prefix used when evaluating an AND predicate. 27594 Prefix *string `type:"string"` 27595 27596 // The list of tags used when evaluating an AND predicate. 27597 Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` 27598 } 27599 27600 // String returns the string representation. 27601 // 27602 // API parameter values that are decorated as "sensitive" in the API will not 27603 // be included in the string output. The member name will be present, but the 27604 // value will be replaced with "sensitive". 27605 func (s MetricsAndOperator) String() string { 27606 return awsutil.Prettify(s) 27607 } 27608 27609 // GoString returns the string representation. 27610 // 27611 // API parameter values that are decorated as "sensitive" in the API will not 27612 // be included in the string output. The member name will be present, but the 27613 // value will be replaced with "sensitive". 27614 func (s MetricsAndOperator) GoString() string { 27615 return s.String() 27616 } 27617 27618 // Validate inspects the fields of the type to determine if they are valid. 27619 func (s *MetricsAndOperator) Validate() error { 27620 invalidParams := request.ErrInvalidParams{Context: "MetricsAndOperator"} 27621 if s.Tags != nil { 27622 for i, v := range s.Tags { 27623 if v == nil { 27624 continue 27625 } 27626 if err := v.Validate(); err != nil { 27627 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 27628 } 27629 } 27630 } 27631 27632 if invalidParams.Len() > 0 { 27633 return invalidParams 27634 } 27635 return nil 27636 } 27637 27638 // SetAccessPointArn sets the AccessPointArn field's value. 27639 func (s *MetricsAndOperator) SetAccessPointArn(v string) *MetricsAndOperator { 27640 s.AccessPointArn = &v 27641 return s 27642 } 27643 27644 // SetPrefix sets the Prefix field's value. 27645 func (s *MetricsAndOperator) SetPrefix(v string) *MetricsAndOperator { 27646 s.Prefix = &v 27647 return s 27648 } 27649 27650 // SetTags sets the Tags field's value. 27651 func (s *MetricsAndOperator) SetTags(v []*Tag) *MetricsAndOperator { 27652 s.Tags = v 27653 return s 27654 } 27655 27656 // Specifies a metrics configuration for the CloudWatch request metrics (specified 27657 // by the metrics configuration ID) from an Amazon S3 bucket. If you're updating 27658 // an existing metrics configuration, note that this is a full replacement of 27659 // the existing metrics configuration. If you don't include the elements you 27660 // want to keep, they are erased. For more information, see PutBucketMetricsConfiguration 27661 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html). 27662 type MetricsConfiguration struct { 27663 _ struct{} `type:"structure"` 27664 27665 // Specifies a metrics configuration filter. The metrics configuration will 27666 // only include objects that meet the filter's criteria. A filter must be a 27667 // prefix, an object tag, an access point ARN, or a conjunction (MetricsAndOperator). 27668 Filter *MetricsFilter `type:"structure"` 27669 27670 // The ID used to identify the metrics configuration. 27671 // 27672 // Id is a required field 27673 Id *string `type:"string" required:"true"` 27674 } 27675 27676 // String returns the string representation. 27677 // 27678 // API parameter values that are decorated as "sensitive" in the API will not 27679 // be included in the string output. The member name will be present, but the 27680 // value will be replaced with "sensitive". 27681 func (s MetricsConfiguration) String() string { 27682 return awsutil.Prettify(s) 27683 } 27684 27685 // GoString returns the string representation. 27686 // 27687 // API parameter values that are decorated as "sensitive" in the API will not 27688 // be included in the string output. The member name will be present, but the 27689 // value will be replaced with "sensitive". 27690 func (s MetricsConfiguration) GoString() string { 27691 return s.String() 27692 } 27693 27694 // Validate inspects the fields of the type to determine if they are valid. 27695 func (s *MetricsConfiguration) Validate() error { 27696 invalidParams := request.ErrInvalidParams{Context: "MetricsConfiguration"} 27697 if s.Id == nil { 27698 invalidParams.Add(request.NewErrParamRequired("Id")) 27699 } 27700 if s.Filter != nil { 27701 if err := s.Filter.Validate(); err != nil { 27702 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 27703 } 27704 } 27705 27706 if invalidParams.Len() > 0 { 27707 return invalidParams 27708 } 27709 return nil 27710 } 27711 27712 // SetFilter sets the Filter field's value. 27713 func (s *MetricsConfiguration) SetFilter(v *MetricsFilter) *MetricsConfiguration { 27714 s.Filter = v 27715 return s 27716 } 27717 27718 // SetId sets the Id field's value. 27719 func (s *MetricsConfiguration) SetId(v string) *MetricsConfiguration { 27720 s.Id = &v 27721 return s 27722 } 27723 27724 // Specifies a metrics configuration filter. The metrics configuration only 27725 // includes objects that meet the filter's criteria. A filter must be a prefix, 27726 // an object tag, an access point ARN, or a conjunction (MetricsAndOperator). 27727 // For more information, see PutBucketMetricsConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html). 27728 type MetricsFilter struct { 27729 _ struct{} `type:"structure"` 27730 27731 // The access point ARN used when evaluating a metrics filter. 27732 AccessPointArn *string `type:"string"` 27733 27734 // A conjunction (logical AND) of predicates, which is used in evaluating a 27735 // metrics filter. The operator must have at least two predicates, and an object 27736 // must match all of the predicates in order for the filter to apply. 27737 And *MetricsAndOperator `type:"structure"` 27738 27739 // The prefix used when evaluating a metrics filter. 27740 Prefix *string `type:"string"` 27741 27742 // The tag used when evaluating a metrics filter. 27743 Tag *Tag `type:"structure"` 27744 } 27745 27746 // String returns the string representation. 27747 // 27748 // API parameter values that are decorated as "sensitive" in the API will not 27749 // be included in the string output. The member name will be present, but the 27750 // value will be replaced with "sensitive". 27751 func (s MetricsFilter) String() string { 27752 return awsutil.Prettify(s) 27753 } 27754 27755 // GoString returns the string representation. 27756 // 27757 // API parameter values that are decorated as "sensitive" in the API will not 27758 // be included in the string output. The member name will be present, but the 27759 // value will be replaced with "sensitive". 27760 func (s MetricsFilter) GoString() string { 27761 return s.String() 27762 } 27763 27764 // Validate inspects the fields of the type to determine if they are valid. 27765 func (s *MetricsFilter) Validate() error { 27766 invalidParams := request.ErrInvalidParams{Context: "MetricsFilter"} 27767 if s.And != nil { 27768 if err := s.And.Validate(); err != nil { 27769 invalidParams.AddNested("And", err.(request.ErrInvalidParams)) 27770 } 27771 } 27772 if s.Tag != nil { 27773 if err := s.Tag.Validate(); err != nil { 27774 invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) 27775 } 27776 } 27777 27778 if invalidParams.Len() > 0 { 27779 return invalidParams 27780 } 27781 return nil 27782 } 27783 27784 // SetAccessPointArn sets the AccessPointArn field's value. 27785 func (s *MetricsFilter) SetAccessPointArn(v string) *MetricsFilter { 27786 s.AccessPointArn = &v 27787 return s 27788 } 27789 27790 // SetAnd sets the And field's value. 27791 func (s *MetricsFilter) SetAnd(v *MetricsAndOperator) *MetricsFilter { 27792 s.And = v 27793 return s 27794 } 27795 27796 // SetPrefix sets the Prefix field's value. 27797 func (s *MetricsFilter) SetPrefix(v string) *MetricsFilter { 27798 s.Prefix = &v 27799 return s 27800 } 27801 27802 // SetTag sets the Tag field's value. 27803 func (s *MetricsFilter) SetTag(v *Tag) *MetricsFilter { 27804 s.Tag = v 27805 return s 27806 } 27807 27808 // Container for the MultipartUpload for the Amazon S3 object. 27809 type MultipartUpload struct { 27810 _ struct{} `type:"structure"` 27811 27812 // Date and time at which the multipart upload was initiated. 27813 Initiated *time.Time `type:"timestamp"` 27814 27815 // Identifies who initiated the multipart upload. 27816 Initiator *Initiator `type:"structure"` 27817 27818 // Key of the object for which the multipart upload was initiated. 27819 Key *string `min:"1" type:"string"` 27820 27821 // Specifies the owner of the object that is part of the multipart upload. 27822 Owner *Owner `type:"structure"` 27823 27824 // The class of storage used to store the object. 27825 StorageClass *string `type:"string" enum:"StorageClass"` 27826 27827 // Upload ID that identifies the multipart upload. 27828 UploadId *string `type:"string"` 27829 } 27830 27831 // String returns the string representation. 27832 // 27833 // API parameter values that are decorated as "sensitive" in the API will not 27834 // be included in the string output. The member name will be present, but the 27835 // value will be replaced with "sensitive". 27836 func (s MultipartUpload) String() string { 27837 return awsutil.Prettify(s) 27838 } 27839 27840 // GoString returns the string representation. 27841 // 27842 // API parameter values that are decorated as "sensitive" in the API will not 27843 // be included in the string output. The member name will be present, but the 27844 // value will be replaced with "sensitive". 27845 func (s MultipartUpload) GoString() string { 27846 return s.String() 27847 } 27848 27849 // SetInitiated sets the Initiated field's value. 27850 func (s *MultipartUpload) SetInitiated(v time.Time) *MultipartUpload { 27851 s.Initiated = &v 27852 return s 27853 } 27854 27855 // SetInitiator sets the Initiator field's value. 27856 func (s *MultipartUpload) SetInitiator(v *Initiator) *MultipartUpload { 27857 s.Initiator = v 27858 return s 27859 } 27860 27861 // SetKey sets the Key field's value. 27862 func (s *MultipartUpload) SetKey(v string) *MultipartUpload { 27863 s.Key = &v 27864 return s 27865 } 27866 27867 // SetOwner sets the Owner field's value. 27868 func (s *MultipartUpload) SetOwner(v *Owner) *MultipartUpload { 27869 s.Owner = v 27870 return s 27871 } 27872 27873 // SetStorageClass sets the StorageClass field's value. 27874 func (s *MultipartUpload) SetStorageClass(v string) *MultipartUpload { 27875 s.StorageClass = &v 27876 return s 27877 } 27878 27879 // SetUploadId sets the UploadId field's value. 27880 func (s *MultipartUpload) SetUploadId(v string) *MultipartUpload { 27881 s.UploadId = &v 27882 return s 27883 } 27884 27885 // Specifies when noncurrent object versions expire. Upon expiration, Amazon 27886 // S3 permanently deletes the noncurrent object versions. You set this lifecycle 27887 // configuration action on a bucket that has versioning enabled (or suspended) 27888 // to request that Amazon S3 delete noncurrent object versions at a specific 27889 // period in the object's lifetime. 27890 type NoncurrentVersionExpiration struct { 27891 _ struct{} `type:"structure"` 27892 27893 // Specifies the number of days an object is noncurrent before Amazon S3 can 27894 // perform the associated action. For information about the noncurrent days 27895 // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent 27896 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) 27897 // in the Amazon S3 User Guide. 27898 NoncurrentDays *int64 `type:"integer"` 27899 } 27900 27901 // String returns the string representation. 27902 // 27903 // API parameter values that are decorated as "sensitive" in the API will not 27904 // be included in the string output. The member name will be present, but the 27905 // value will be replaced with "sensitive". 27906 func (s NoncurrentVersionExpiration) String() string { 27907 return awsutil.Prettify(s) 27908 } 27909 27910 // GoString returns the string representation. 27911 // 27912 // API parameter values that are decorated as "sensitive" in the API will not 27913 // be included in the string output. The member name will be present, but the 27914 // value will be replaced with "sensitive". 27915 func (s NoncurrentVersionExpiration) GoString() string { 27916 return s.String() 27917 } 27918 27919 // SetNoncurrentDays sets the NoncurrentDays field's value. 27920 func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVersionExpiration { 27921 s.NoncurrentDays = &v 27922 return s 27923 } 27924 27925 // Container for the transition rule that describes when noncurrent objects 27926 // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, 27927 // or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning 27928 // is suspended), you can set this action to request that Amazon S3 transition 27929 // noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, 27930 // GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's 27931 // lifetime. 27932 type NoncurrentVersionTransition struct { 27933 _ struct{} `type:"structure"` 27934 27935 // Specifies the number of days an object is noncurrent before Amazon S3 can 27936 // perform the associated action. For information about the noncurrent days 27937 // calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent 27938 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) 27939 // in the Amazon S3 User Guide. 27940 NoncurrentDays *int64 `type:"integer"` 27941 27942 // The class of storage used to store the object. 27943 StorageClass *string `type:"string" enum:"TransitionStorageClass"` 27944 } 27945 27946 // String returns the string representation. 27947 // 27948 // API parameter values that are decorated as "sensitive" in the API will not 27949 // be included in the string output. The member name will be present, but the 27950 // value will be replaced with "sensitive". 27951 func (s NoncurrentVersionTransition) String() string { 27952 return awsutil.Prettify(s) 27953 } 27954 27955 // GoString returns the string representation. 27956 // 27957 // API parameter values that are decorated as "sensitive" in the API will not 27958 // be included in the string output. The member name will be present, but the 27959 // value will be replaced with "sensitive". 27960 func (s NoncurrentVersionTransition) GoString() string { 27961 return s.String() 27962 } 27963 27964 // SetNoncurrentDays sets the NoncurrentDays field's value. 27965 func (s *NoncurrentVersionTransition) SetNoncurrentDays(v int64) *NoncurrentVersionTransition { 27966 s.NoncurrentDays = &v 27967 return s 27968 } 27969 27970 // SetStorageClass sets the StorageClass field's value. 27971 func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersionTransition { 27972 s.StorageClass = &v 27973 return s 27974 } 27975 27976 // A container for specifying the notification configuration of the bucket. 27977 // If this element is empty, notifications are turned off for the bucket. 27978 type NotificationConfiguration struct { 27979 _ struct{} `type:"structure"` 27980 27981 // Describes the Lambda functions to invoke and the events for which to invoke 27982 // them. 27983 LambdaFunctionConfigurations []*LambdaFunctionConfiguration `locationName:"CloudFunctionConfiguration" type:"list" flattened:"true"` 27984 27985 // The Amazon Simple Queue Service queues to publish messages to and the events 27986 // for which to publish messages. 27987 QueueConfigurations []*QueueConfiguration `locationName:"QueueConfiguration" type:"list" flattened:"true"` 27988 27989 // The topic to which notifications are sent and the events for which notifications 27990 // are generated. 27991 TopicConfigurations []*TopicConfiguration `locationName:"TopicConfiguration" type:"list" flattened:"true"` 27992 } 27993 27994 // String returns the string representation. 27995 // 27996 // API parameter values that are decorated as "sensitive" in the API will not 27997 // be included in the string output. The member name will be present, but the 27998 // value will be replaced with "sensitive". 27999 func (s NotificationConfiguration) String() string { 28000 return awsutil.Prettify(s) 28001 } 28002 28003 // GoString returns the string representation. 28004 // 28005 // API parameter values that are decorated as "sensitive" in the API will not 28006 // be included in the string output. The member name will be present, but the 28007 // value will be replaced with "sensitive". 28008 func (s NotificationConfiguration) GoString() string { 28009 return s.String() 28010 } 28011 28012 // Validate inspects the fields of the type to determine if they are valid. 28013 func (s *NotificationConfiguration) Validate() error { 28014 invalidParams := request.ErrInvalidParams{Context: "NotificationConfiguration"} 28015 if s.LambdaFunctionConfigurations != nil { 28016 for i, v := range s.LambdaFunctionConfigurations { 28017 if v == nil { 28018 continue 28019 } 28020 if err := v.Validate(); err != nil { 28021 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LambdaFunctionConfigurations", i), err.(request.ErrInvalidParams)) 28022 } 28023 } 28024 } 28025 if s.QueueConfigurations != nil { 28026 for i, v := range s.QueueConfigurations { 28027 if v == nil { 28028 continue 28029 } 28030 if err := v.Validate(); err != nil { 28031 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "QueueConfigurations", i), err.(request.ErrInvalidParams)) 28032 } 28033 } 28034 } 28035 if s.TopicConfigurations != nil { 28036 for i, v := range s.TopicConfigurations { 28037 if v == nil { 28038 continue 28039 } 28040 if err := v.Validate(); err != nil { 28041 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TopicConfigurations", i), err.(request.ErrInvalidParams)) 28042 } 28043 } 28044 } 28045 28046 if invalidParams.Len() > 0 { 28047 return invalidParams 28048 } 28049 return nil 28050 } 28051 28052 // SetLambdaFunctionConfigurations sets the LambdaFunctionConfigurations field's value. 28053 func (s *NotificationConfiguration) SetLambdaFunctionConfigurations(v []*LambdaFunctionConfiguration) *NotificationConfiguration { 28054 s.LambdaFunctionConfigurations = v 28055 return s 28056 } 28057 28058 // SetQueueConfigurations sets the QueueConfigurations field's value. 28059 func (s *NotificationConfiguration) SetQueueConfigurations(v []*QueueConfiguration) *NotificationConfiguration { 28060 s.QueueConfigurations = v 28061 return s 28062 } 28063 28064 // SetTopicConfigurations sets the TopicConfigurations field's value. 28065 func (s *NotificationConfiguration) SetTopicConfigurations(v []*TopicConfiguration) *NotificationConfiguration { 28066 s.TopicConfigurations = v 28067 return s 28068 } 28069 28070 type NotificationConfigurationDeprecated struct { 28071 _ struct{} `type:"structure"` 28072 28073 // Container for specifying the Lambda notification configuration. 28074 CloudFunctionConfiguration *CloudFunctionConfiguration `type:"structure"` 28075 28076 // This data type is deprecated. This data type specifies the configuration 28077 // for publishing messages to an Amazon Simple Queue Service (Amazon SQS) queue 28078 // when Amazon S3 detects specified events. 28079 QueueConfiguration *QueueConfigurationDeprecated `type:"structure"` 28080 28081 // This data type is deprecated. A container for specifying the configuration 28082 // for publication of messages to an Amazon Simple Notification Service (Amazon 28083 // SNS) topic when Amazon S3 detects specified events. 28084 TopicConfiguration *TopicConfigurationDeprecated `type:"structure"` 28085 } 28086 28087 // String returns the string representation. 28088 // 28089 // API parameter values that are decorated as "sensitive" in the API will not 28090 // be included in the string output. The member name will be present, but the 28091 // value will be replaced with "sensitive". 28092 func (s NotificationConfigurationDeprecated) String() string { 28093 return awsutil.Prettify(s) 28094 } 28095 28096 // GoString returns the string representation. 28097 // 28098 // API parameter values that are decorated as "sensitive" in the API will not 28099 // be included in the string output. The member name will be present, but the 28100 // value will be replaced with "sensitive". 28101 func (s NotificationConfigurationDeprecated) GoString() string { 28102 return s.String() 28103 } 28104 28105 // SetCloudFunctionConfiguration sets the CloudFunctionConfiguration field's value. 28106 func (s *NotificationConfigurationDeprecated) SetCloudFunctionConfiguration(v *CloudFunctionConfiguration) *NotificationConfigurationDeprecated { 28107 s.CloudFunctionConfiguration = v 28108 return s 28109 } 28110 28111 // SetQueueConfiguration sets the QueueConfiguration field's value. 28112 func (s *NotificationConfigurationDeprecated) SetQueueConfiguration(v *QueueConfigurationDeprecated) *NotificationConfigurationDeprecated { 28113 s.QueueConfiguration = v 28114 return s 28115 } 28116 28117 // SetTopicConfiguration sets the TopicConfiguration field's value. 28118 func (s *NotificationConfigurationDeprecated) SetTopicConfiguration(v *TopicConfigurationDeprecated) *NotificationConfigurationDeprecated { 28119 s.TopicConfiguration = v 28120 return s 28121 } 28122 28123 // Specifies object key name filtering rules. For information about key name 28124 // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 28125 // in the Amazon S3 User Guide. 28126 type NotificationConfigurationFilter struct { 28127 _ struct{} `type:"structure"` 28128 28129 // A container for object key name prefix and suffix filtering rules. 28130 Key *KeyFilter `locationName:"S3Key" type:"structure"` 28131 } 28132 28133 // String returns the string representation. 28134 // 28135 // API parameter values that are decorated as "sensitive" in the API will not 28136 // be included in the string output. The member name will be present, but the 28137 // value will be replaced with "sensitive". 28138 func (s NotificationConfigurationFilter) String() string { 28139 return awsutil.Prettify(s) 28140 } 28141 28142 // GoString returns the string representation. 28143 // 28144 // API parameter values that are decorated as "sensitive" in the API will not 28145 // be included in the string output. The member name will be present, but the 28146 // value will be replaced with "sensitive". 28147 func (s NotificationConfigurationFilter) GoString() string { 28148 return s.String() 28149 } 28150 28151 // SetKey sets the Key field's value. 28152 func (s *NotificationConfigurationFilter) SetKey(v *KeyFilter) *NotificationConfigurationFilter { 28153 s.Key = v 28154 return s 28155 } 28156 28157 // An object consists of data and its descriptive metadata. 28158 type Object struct { 28159 _ struct{} `type:"structure"` 28160 28161 // The entity tag is a hash of the object. The ETag reflects changes only to 28162 // the contents of an object, not its metadata. The ETag may or may not be an 28163 // MD5 digest of the object data. Whether or not it is depends on how the object 28164 // was created and how it is encrypted as described below: 28165 // 28166 // * Objects created by the PUT Object, POST Object, or Copy operation, or 28167 // through the Amazon Web Services Management Console, and are encrypted 28168 // by SSE-S3 or plaintext, have ETags that are an MD5 digest of their object 28169 // data. 28170 // 28171 // * Objects created by the PUT Object, POST Object, or Copy operation, or 28172 // through the Amazon Web Services Management Console, and are encrypted 28173 // by SSE-C or SSE-KMS, have ETags that are not an MD5 digest of their object 28174 // data. 28175 // 28176 // * If an object is created by either the Multipart Upload or Part Copy 28177 // operation, the ETag is not an MD5 digest, regardless of the method of 28178 // encryption. 28179 ETag *string `type:"string"` 28180 28181 // The name that you assign to an object. You use the object key to retrieve 28182 // the object. 28183 Key *string `min:"1" type:"string"` 28184 28185 // Creation date of the object. 28186 LastModified *time.Time `type:"timestamp"` 28187 28188 // The owner of the object 28189 Owner *Owner `type:"structure"` 28190 28191 // Size in bytes of the object 28192 Size *int64 `type:"integer"` 28193 28194 // The class of storage used to store the object. 28195 StorageClass *string `type:"string" enum:"ObjectStorageClass"` 28196 } 28197 28198 // String returns the string representation. 28199 // 28200 // API parameter values that are decorated as "sensitive" in the API will not 28201 // be included in the string output. The member name will be present, but the 28202 // value will be replaced with "sensitive". 28203 func (s Object) String() string { 28204 return awsutil.Prettify(s) 28205 } 28206 28207 // GoString returns the string representation. 28208 // 28209 // API parameter values that are decorated as "sensitive" in the API will not 28210 // be included in the string output. The member name will be present, but the 28211 // value will be replaced with "sensitive". 28212 func (s Object) GoString() string { 28213 return s.String() 28214 } 28215 28216 // SetETag sets the ETag field's value. 28217 func (s *Object) SetETag(v string) *Object { 28218 s.ETag = &v 28219 return s 28220 } 28221 28222 // SetKey sets the Key field's value. 28223 func (s *Object) SetKey(v string) *Object { 28224 s.Key = &v 28225 return s 28226 } 28227 28228 // SetLastModified sets the LastModified field's value. 28229 func (s *Object) SetLastModified(v time.Time) *Object { 28230 s.LastModified = &v 28231 return s 28232 } 28233 28234 // SetOwner sets the Owner field's value. 28235 func (s *Object) SetOwner(v *Owner) *Object { 28236 s.Owner = v 28237 return s 28238 } 28239 28240 // SetSize sets the Size field's value. 28241 func (s *Object) SetSize(v int64) *Object { 28242 s.Size = &v 28243 return s 28244 } 28245 28246 // SetStorageClass sets the StorageClass field's value. 28247 func (s *Object) SetStorageClass(v string) *Object { 28248 s.StorageClass = &v 28249 return s 28250 } 28251 28252 // Object Identifier is unique value to identify objects. 28253 type ObjectIdentifier struct { 28254 _ struct{} `type:"structure"` 28255 28256 // Key name of the object. 28257 // 28258 // Replacement must be made for object keys containing special characters (such 28259 // as carriage returns) when using XML requests. For more information, see XML 28260 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 28261 // 28262 // Key is a required field 28263 Key *string `min:"1" type:"string" required:"true"` 28264 28265 // VersionId for the specific version of the object to delete. 28266 VersionId *string `type:"string"` 28267 } 28268 28269 // String returns the string representation. 28270 // 28271 // API parameter values that are decorated as "sensitive" in the API will not 28272 // be included in the string output. The member name will be present, but the 28273 // value will be replaced with "sensitive". 28274 func (s ObjectIdentifier) String() string { 28275 return awsutil.Prettify(s) 28276 } 28277 28278 // GoString returns the string representation. 28279 // 28280 // API parameter values that are decorated as "sensitive" in the API will not 28281 // be included in the string output. The member name will be present, but the 28282 // value will be replaced with "sensitive". 28283 func (s ObjectIdentifier) GoString() string { 28284 return s.String() 28285 } 28286 28287 // Validate inspects the fields of the type to determine if they are valid. 28288 func (s *ObjectIdentifier) Validate() error { 28289 invalidParams := request.ErrInvalidParams{Context: "ObjectIdentifier"} 28290 if s.Key == nil { 28291 invalidParams.Add(request.NewErrParamRequired("Key")) 28292 } 28293 if s.Key != nil && len(*s.Key) < 1 { 28294 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 28295 } 28296 28297 if invalidParams.Len() > 0 { 28298 return invalidParams 28299 } 28300 return nil 28301 } 28302 28303 // SetKey sets the Key field's value. 28304 func (s *ObjectIdentifier) SetKey(v string) *ObjectIdentifier { 28305 s.Key = &v 28306 return s 28307 } 28308 28309 // SetVersionId sets the VersionId field's value. 28310 func (s *ObjectIdentifier) SetVersionId(v string) *ObjectIdentifier { 28311 s.VersionId = &v 28312 return s 28313 } 28314 28315 // The container element for Object Lock configuration parameters. 28316 type ObjectLockConfiguration struct { 28317 _ struct{} `type:"structure"` 28318 28319 // Indicates whether this bucket has an Object Lock configuration enabled. Enable 28320 // ObjectLockEnabled when you apply ObjectLockConfiguration to a bucket. 28321 ObjectLockEnabled *string `type:"string" enum:"ObjectLockEnabled"` 28322 28323 // Specifies the Object Lock rule for the specified object. Enable the this 28324 // rule when you apply ObjectLockConfiguration to a bucket. Bucket settings 28325 // require both a mode and a period. The period can be either Days or Years 28326 // but you must select one. You cannot specify Days and Years at the same time. 28327 Rule *ObjectLockRule `type:"structure"` 28328 } 28329 28330 // String returns the string representation. 28331 // 28332 // API parameter values that are decorated as "sensitive" in the API will not 28333 // be included in the string output. The member name will be present, but the 28334 // value will be replaced with "sensitive". 28335 func (s ObjectLockConfiguration) String() string { 28336 return awsutil.Prettify(s) 28337 } 28338 28339 // GoString returns the string representation. 28340 // 28341 // API parameter values that are decorated as "sensitive" in the API will not 28342 // be included in the string output. The member name will be present, but the 28343 // value will be replaced with "sensitive". 28344 func (s ObjectLockConfiguration) GoString() string { 28345 return s.String() 28346 } 28347 28348 // SetObjectLockEnabled sets the ObjectLockEnabled field's value. 28349 func (s *ObjectLockConfiguration) SetObjectLockEnabled(v string) *ObjectLockConfiguration { 28350 s.ObjectLockEnabled = &v 28351 return s 28352 } 28353 28354 // SetRule sets the Rule field's value. 28355 func (s *ObjectLockConfiguration) SetRule(v *ObjectLockRule) *ObjectLockConfiguration { 28356 s.Rule = v 28357 return s 28358 } 28359 28360 // A Legal Hold configuration for an object. 28361 type ObjectLockLegalHold struct { 28362 _ struct{} `type:"structure"` 28363 28364 // Indicates whether the specified object has a Legal Hold in place. 28365 Status *string `type:"string" enum:"ObjectLockLegalHoldStatus"` 28366 } 28367 28368 // String returns the string representation. 28369 // 28370 // API parameter values that are decorated as "sensitive" in the API will not 28371 // be included in the string output. The member name will be present, but the 28372 // value will be replaced with "sensitive". 28373 func (s ObjectLockLegalHold) String() string { 28374 return awsutil.Prettify(s) 28375 } 28376 28377 // GoString returns the string representation. 28378 // 28379 // API parameter values that are decorated as "sensitive" in the API will not 28380 // be included in the string output. The member name will be present, but the 28381 // value will be replaced with "sensitive". 28382 func (s ObjectLockLegalHold) GoString() string { 28383 return s.String() 28384 } 28385 28386 // SetStatus sets the Status field's value. 28387 func (s *ObjectLockLegalHold) SetStatus(v string) *ObjectLockLegalHold { 28388 s.Status = &v 28389 return s 28390 } 28391 28392 // A Retention configuration for an object. 28393 type ObjectLockRetention struct { 28394 _ struct{} `type:"structure"` 28395 28396 // Indicates the Retention mode for the specified object. 28397 Mode *string `type:"string" enum:"ObjectLockRetentionMode"` 28398 28399 // The date on which this Object Lock Retention will expire. 28400 RetainUntilDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` 28401 } 28402 28403 // String returns the string representation. 28404 // 28405 // API parameter values that are decorated as "sensitive" in the API will not 28406 // be included in the string output. The member name will be present, but the 28407 // value will be replaced with "sensitive". 28408 func (s ObjectLockRetention) String() string { 28409 return awsutil.Prettify(s) 28410 } 28411 28412 // GoString returns the string representation. 28413 // 28414 // API parameter values that are decorated as "sensitive" in the API will not 28415 // be included in the string output. The member name will be present, but the 28416 // value will be replaced with "sensitive". 28417 func (s ObjectLockRetention) GoString() string { 28418 return s.String() 28419 } 28420 28421 // SetMode sets the Mode field's value. 28422 func (s *ObjectLockRetention) SetMode(v string) *ObjectLockRetention { 28423 s.Mode = &v 28424 return s 28425 } 28426 28427 // SetRetainUntilDate sets the RetainUntilDate field's value. 28428 func (s *ObjectLockRetention) SetRetainUntilDate(v time.Time) *ObjectLockRetention { 28429 s.RetainUntilDate = &v 28430 return s 28431 } 28432 28433 // The container element for an Object Lock rule. 28434 type ObjectLockRule struct { 28435 _ struct{} `type:"structure"` 28436 28437 // The default Object Lock retention mode and period that you want to apply 28438 // to new objects placed in the specified bucket. Bucket settings require both 28439 // a mode and a period. The period can be either Days or Years but you must 28440 // select one. You cannot specify Days and Years at the same time. 28441 DefaultRetention *DefaultRetention `type:"structure"` 28442 } 28443 28444 // String returns the string representation. 28445 // 28446 // API parameter values that are decorated as "sensitive" in the API will not 28447 // be included in the string output. The member name will be present, but the 28448 // value will be replaced with "sensitive". 28449 func (s ObjectLockRule) String() string { 28450 return awsutil.Prettify(s) 28451 } 28452 28453 // GoString returns the string representation. 28454 // 28455 // API parameter values that are decorated as "sensitive" in the API will not 28456 // be included in the string output. The member name will be present, but the 28457 // value will be replaced with "sensitive". 28458 func (s ObjectLockRule) GoString() string { 28459 return s.String() 28460 } 28461 28462 // SetDefaultRetention sets the DefaultRetention field's value. 28463 func (s *ObjectLockRule) SetDefaultRetention(v *DefaultRetention) *ObjectLockRule { 28464 s.DefaultRetention = v 28465 return s 28466 } 28467 28468 // The version of an object. 28469 type ObjectVersion struct { 28470 _ struct{} `type:"structure"` 28471 28472 // The entity tag is an MD5 hash of that version of the object. 28473 ETag *string `type:"string"` 28474 28475 // Specifies whether the object is (true) or is not (false) the latest version 28476 // of an object. 28477 IsLatest *bool `type:"boolean"` 28478 28479 // The object key. 28480 Key *string `min:"1" type:"string"` 28481 28482 // Date and time the object was last modified. 28483 LastModified *time.Time `type:"timestamp"` 28484 28485 // Specifies the owner of the object. 28486 Owner *Owner `type:"structure"` 28487 28488 // Size in bytes of the object. 28489 Size *int64 `type:"integer"` 28490 28491 // The class of storage used to store the object. 28492 StorageClass *string `type:"string" enum:"ObjectVersionStorageClass"` 28493 28494 // Version ID of an object. 28495 VersionId *string `type:"string"` 28496 } 28497 28498 // String returns the string representation. 28499 // 28500 // API parameter values that are decorated as "sensitive" in the API will not 28501 // be included in the string output. The member name will be present, but the 28502 // value will be replaced with "sensitive". 28503 func (s ObjectVersion) String() string { 28504 return awsutil.Prettify(s) 28505 } 28506 28507 // GoString returns the string representation. 28508 // 28509 // API parameter values that are decorated as "sensitive" in the API will not 28510 // be included in the string output. The member name will be present, but the 28511 // value will be replaced with "sensitive". 28512 func (s ObjectVersion) GoString() string { 28513 return s.String() 28514 } 28515 28516 // SetETag sets the ETag field's value. 28517 func (s *ObjectVersion) SetETag(v string) *ObjectVersion { 28518 s.ETag = &v 28519 return s 28520 } 28521 28522 // SetIsLatest sets the IsLatest field's value. 28523 func (s *ObjectVersion) SetIsLatest(v bool) *ObjectVersion { 28524 s.IsLatest = &v 28525 return s 28526 } 28527 28528 // SetKey sets the Key field's value. 28529 func (s *ObjectVersion) SetKey(v string) *ObjectVersion { 28530 s.Key = &v 28531 return s 28532 } 28533 28534 // SetLastModified sets the LastModified field's value. 28535 func (s *ObjectVersion) SetLastModified(v time.Time) *ObjectVersion { 28536 s.LastModified = &v 28537 return s 28538 } 28539 28540 // SetOwner sets the Owner field's value. 28541 func (s *ObjectVersion) SetOwner(v *Owner) *ObjectVersion { 28542 s.Owner = v 28543 return s 28544 } 28545 28546 // SetSize sets the Size field's value. 28547 func (s *ObjectVersion) SetSize(v int64) *ObjectVersion { 28548 s.Size = &v 28549 return s 28550 } 28551 28552 // SetStorageClass sets the StorageClass field's value. 28553 func (s *ObjectVersion) SetStorageClass(v string) *ObjectVersion { 28554 s.StorageClass = &v 28555 return s 28556 } 28557 28558 // SetVersionId sets the VersionId field's value. 28559 func (s *ObjectVersion) SetVersionId(v string) *ObjectVersion { 28560 s.VersionId = &v 28561 return s 28562 } 28563 28564 // Describes the location where the restore job's output is stored. 28565 type OutputLocation struct { 28566 _ struct{} `type:"structure"` 28567 28568 // Describes an S3 location that will receive the results of the restore request. 28569 S3 *Location `type:"structure"` 28570 } 28571 28572 // String returns the string representation. 28573 // 28574 // API parameter values that are decorated as "sensitive" in the API will not 28575 // be included in the string output. The member name will be present, but the 28576 // value will be replaced with "sensitive". 28577 func (s OutputLocation) String() string { 28578 return awsutil.Prettify(s) 28579 } 28580 28581 // GoString returns the string representation. 28582 // 28583 // API parameter values that are decorated as "sensitive" in the API will not 28584 // be included in the string output. The member name will be present, but the 28585 // value will be replaced with "sensitive". 28586 func (s OutputLocation) GoString() string { 28587 return s.String() 28588 } 28589 28590 // Validate inspects the fields of the type to determine if they are valid. 28591 func (s *OutputLocation) Validate() error { 28592 invalidParams := request.ErrInvalidParams{Context: "OutputLocation"} 28593 if s.S3 != nil { 28594 if err := s.S3.Validate(); err != nil { 28595 invalidParams.AddNested("S3", err.(request.ErrInvalidParams)) 28596 } 28597 } 28598 28599 if invalidParams.Len() > 0 { 28600 return invalidParams 28601 } 28602 return nil 28603 } 28604 28605 // SetS3 sets the S3 field's value. 28606 func (s *OutputLocation) SetS3(v *Location) *OutputLocation { 28607 s.S3 = v 28608 return s 28609 } 28610 28611 // Describes how results of the Select job are serialized. 28612 type OutputSerialization struct { 28613 _ struct{} `type:"structure"` 28614 28615 // Describes the serialization of CSV-encoded Select results. 28616 CSV *CSVOutput `type:"structure"` 28617 28618 // Specifies JSON as request's output serialization format. 28619 JSON *JSONOutput `type:"structure"` 28620 } 28621 28622 // String returns the string representation. 28623 // 28624 // API parameter values that are decorated as "sensitive" in the API will not 28625 // be included in the string output. The member name will be present, but the 28626 // value will be replaced with "sensitive". 28627 func (s OutputSerialization) String() string { 28628 return awsutil.Prettify(s) 28629 } 28630 28631 // GoString returns the string representation. 28632 // 28633 // API parameter values that are decorated as "sensitive" in the API will not 28634 // be included in the string output. The member name will be present, but the 28635 // value will be replaced with "sensitive". 28636 func (s OutputSerialization) GoString() string { 28637 return s.String() 28638 } 28639 28640 // SetCSV sets the CSV field's value. 28641 func (s *OutputSerialization) SetCSV(v *CSVOutput) *OutputSerialization { 28642 s.CSV = v 28643 return s 28644 } 28645 28646 // SetJSON sets the JSON field's value. 28647 func (s *OutputSerialization) SetJSON(v *JSONOutput) *OutputSerialization { 28648 s.JSON = v 28649 return s 28650 } 28651 28652 // Container for the owner's display name and ID. 28653 type Owner struct { 28654 _ struct{} `type:"structure"` 28655 28656 // Container for the display name of the owner. 28657 DisplayName *string `type:"string"` 28658 28659 // Container for the ID of the owner. 28660 ID *string `type:"string"` 28661 } 28662 28663 // String returns the string representation. 28664 // 28665 // API parameter values that are decorated as "sensitive" in the API will not 28666 // be included in the string output. The member name will be present, but the 28667 // value will be replaced with "sensitive". 28668 func (s Owner) String() string { 28669 return awsutil.Prettify(s) 28670 } 28671 28672 // GoString returns the string representation. 28673 // 28674 // API parameter values that are decorated as "sensitive" in the API will not 28675 // be included in the string output. The member name will be present, but the 28676 // value will be replaced with "sensitive". 28677 func (s Owner) GoString() string { 28678 return s.String() 28679 } 28680 28681 // SetDisplayName sets the DisplayName field's value. 28682 func (s *Owner) SetDisplayName(v string) *Owner { 28683 s.DisplayName = &v 28684 return s 28685 } 28686 28687 // SetID sets the ID field's value. 28688 func (s *Owner) SetID(v string) *Owner { 28689 s.ID = &v 28690 return s 28691 } 28692 28693 // The container element for a bucket's ownership controls. 28694 type OwnershipControls struct { 28695 _ struct{} `type:"structure"` 28696 28697 // The container element for an ownership control rule. 28698 // 28699 // Rules is a required field 28700 Rules []*OwnershipControlsRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` 28701 } 28702 28703 // String returns the string representation. 28704 // 28705 // API parameter values that are decorated as "sensitive" in the API will not 28706 // be included in the string output. The member name will be present, but the 28707 // value will be replaced with "sensitive". 28708 func (s OwnershipControls) String() string { 28709 return awsutil.Prettify(s) 28710 } 28711 28712 // GoString returns the string representation. 28713 // 28714 // API parameter values that are decorated as "sensitive" in the API will not 28715 // be included in the string output. The member name will be present, but the 28716 // value will be replaced with "sensitive". 28717 func (s OwnershipControls) GoString() string { 28718 return s.String() 28719 } 28720 28721 // Validate inspects the fields of the type to determine if they are valid. 28722 func (s *OwnershipControls) Validate() error { 28723 invalidParams := request.ErrInvalidParams{Context: "OwnershipControls"} 28724 if s.Rules == nil { 28725 invalidParams.Add(request.NewErrParamRequired("Rules")) 28726 } 28727 if s.Rules != nil { 28728 for i, v := range s.Rules { 28729 if v == nil { 28730 continue 28731 } 28732 if err := v.Validate(); err != nil { 28733 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 28734 } 28735 } 28736 } 28737 28738 if invalidParams.Len() > 0 { 28739 return invalidParams 28740 } 28741 return nil 28742 } 28743 28744 // SetRules sets the Rules field's value. 28745 func (s *OwnershipControls) SetRules(v []*OwnershipControlsRule) *OwnershipControls { 28746 s.Rules = v 28747 return s 28748 } 28749 28750 // The container element for an ownership control rule. 28751 type OwnershipControlsRule struct { 28752 _ struct{} `type:"structure"` 28753 28754 // The container element for object ownership for a bucket's ownership controls. 28755 // 28756 // BucketOwnerPreferred - Objects uploaded to the bucket change ownership to 28757 // the bucket owner if the objects are uploaded with the bucket-owner-full-control 28758 // canned ACL. 28759 // 28760 // ObjectWriter - The uploading account will own the object if the object is 28761 // uploaded with the bucket-owner-full-control canned ACL. 28762 // 28763 // ObjectOwnership is a required field 28764 ObjectOwnership *string `type:"string" required:"true" enum:"ObjectOwnership"` 28765 } 28766 28767 // String returns the string representation. 28768 // 28769 // API parameter values that are decorated as "sensitive" in the API will not 28770 // be included in the string output. The member name will be present, but the 28771 // value will be replaced with "sensitive". 28772 func (s OwnershipControlsRule) String() string { 28773 return awsutil.Prettify(s) 28774 } 28775 28776 // GoString returns the string representation. 28777 // 28778 // API parameter values that are decorated as "sensitive" in the API will not 28779 // be included in the string output. The member name will be present, but the 28780 // value will be replaced with "sensitive". 28781 func (s OwnershipControlsRule) GoString() string { 28782 return s.String() 28783 } 28784 28785 // Validate inspects the fields of the type to determine if they are valid. 28786 func (s *OwnershipControlsRule) Validate() error { 28787 invalidParams := request.ErrInvalidParams{Context: "OwnershipControlsRule"} 28788 if s.ObjectOwnership == nil { 28789 invalidParams.Add(request.NewErrParamRequired("ObjectOwnership")) 28790 } 28791 28792 if invalidParams.Len() > 0 { 28793 return invalidParams 28794 } 28795 return nil 28796 } 28797 28798 // SetObjectOwnership sets the ObjectOwnership field's value. 28799 func (s *OwnershipControlsRule) SetObjectOwnership(v string) *OwnershipControlsRule { 28800 s.ObjectOwnership = &v 28801 return s 28802 } 28803 28804 // Container for Parquet. 28805 type ParquetInput struct { 28806 _ struct{} `type:"structure"` 28807 } 28808 28809 // String returns the string representation. 28810 // 28811 // API parameter values that are decorated as "sensitive" in the API will not 28812 // be included in the string output. The member name will be present, but the 28813 // value will be replaced with "sensitive". 28814 func (s ParquetInput) String() string { 28815 return awsutil.Prettify(s) 28816 } 28817 28818 // GoString returns the string representation. 28819 // 28820 // API parameter values that are decorated as "sensitive" in the API will not 28821 // be included in the string output. The member name will be present, but the 28822 // value will be replaced with "sensitive". 28823 func (s ParquetInput) GoString() string { 28824 return s.String() 28825 } 28826 28827 // Container for elements related to a part. 28828 type Part struct { 28829 _ struct{} `type:"structure"` 28830 28831 // Entity tag returned when the part was uploaded. 28832 ETag *string `type:"string"` 28833 28834 // Date and time at which the part was uploaded. 28835 LastModified *time.Time `type:"timestamp"` 28836 28837 // Part number identifying the part. This is a positive integer between 1 and 28838 // 10,000. 28839 PartNumber *int64 `type:"integer"` 28840 28841 // Size in bytes of the uploaded part data. 28842 Size *int64 `type:"integer"` 28843 } 28844 28845 // String returns the string representation. 28846 // 28847 // API parameter values that are decorated as "sensitive" in the API will not 28848 // be included in the string output. The member name will be present, but the 28849 // value will be replaced with "sensitive". 28850 func (s Part) String() string { 28851 return awsutil.Prettify(s) 28852 } 28853 28854 // GoString returns the string representation. 28855 // 28856 // API parameter values that are decorated as "sensitive" in the API will not 28857 // be included in the string output. The member name will be present, but the 28858 // value will be replaced with "sensitive". 28859 func (s Part) GoString() string { 28860 return s.String() 28861 } 28862 28863 // SetETag sets the ETag field's value. 28864 func (s *Part) SetETag(v string) *Part { 28865 s.ETag = &v 28866 return s 28867 } 28868 28869 // SetLastModified sets the LastModified field's value. 28870 func (s *Part) SetLastModified(v time.Time) *Part { 28871 s.LastModified = &v 28872 return s 28873 } 28874 28875 // SetPartNumber sets the PartNumber field's value. 28876 func (s *Part) SetPartNumber(v int64) *Part { 28877 s.PartNumber = &v 28878 return s 28879 } 28880 28881 // SetSize sets the Size field's value. 28882 func (s *Part) SetSize(v int64) *Part { 28883 s.Size = &v 28884 return s 28885 } 28886 28887 // The container element for a bucket's policy status. 28888 type PolicyStatus struct { 28889 _ struct{} `type:"structure"` 28890 28891 // The policy status for this bucket. TRUE indicates that this bucket is public. 28892 // FALSE indicates that the bucket is not public. 28893 IsPublic *bool `locationName:"IsPublic" type:"boolean"` 28894 } 28895 28896 // String returns the string representation. 28897 // 28898 // API parameter values that are decorated as "sensitive" in the API will not 28899 // be included in the string output. The member name will be present, but the 28900 // value will be replaced with "sensitive". 28901 func (s PolicyStatus) String() string { 28902 return awsutil.Prettify(s) 28903 } 28904 28905 // GoString returns the string representation. 28906 // 28907 // API parameter values that are decorated as "sensitive" in the API will not 28908 // be included in the string output. The member name will be present, but the 28909 // value will be replaced with "sensitive". 28910 func (s PolicyStatus) GoString() string { 28911 return s.String() 28912 } 28913 28914 // SetIsPublic sets the IsPublic field's value. 28915 func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus { 28916 s.IsPublic = &v 28917 return s 28918 } 28919 28920 // This data type contains information about progress of an operation. 28921 type Progress struct { 28922 _ struct{} `type:"structure"` 28923 28924 // The current number of uncompressed object bytes processed. 28925 BytesProcessed *int64 `type:"long"` 28926 28927 // The current number of bytes of records payload data returned. 28928 BytesReturned *int64 `type:"long"` 28929 28930 // The current number of object bytes scanned. 28931 BytesScanned *int64 `type:"long"` 28932 } 28933 28934 // String returns the string representation. 28935 // 28936 // API parameter values that are decorated as "sensitive" in the API will not 28937 // be included in the string output. The member name will be present, but the 28938 // value will be replaced with "sensitive". 28939 func (s Progress) String() string { 28940 return awsutil.Prettify(s) 28941 } 28942 28943 // GoString returns the string representation. 28944 // 28945 // API parameter values that are decorated as "sensitive" in the API will not 28946 // be included in the string output. The member name will be present, but the 28947 // value will be replaced with "sensitive". 28948 func (s Progress) GoString() string { 28949 return s.String() 28950 } 28951 28952 // SetBytesProcessed sets the BytesProcessed field's value. 28953 func (s *Progress) SetBytesProcessed(v int64) *Progress { 28954 s.BytesProcessed = &v 28955 return s 28956 } 28957 28958 // SetBytesReturned sets the BytesReturned field's value. 28959 func (s *Progress) SetBytesReturned(v int64) *Progress { 28960 s.BytesReturned = &v 28961 return s 28962 } 28963 28964 // SetBytesScanned sets the BytesScanned field's value. 28965 func (s *Progress) SetBytesScanned(v int64) *Progress { 28966 s.BytesScanned = &v 28967 return s 28968 } 28969 28970 // This data type contains information about the progress event of an operation. 28971 type ProgressEvent struct { 28972 _ struct{} `locationName:"ProgressEvent" type:"structure" payload:"Details"` 28973 28974 // The Progress event details. 28975 Details *Progress `locationName:"Details" type:"structure"` 28976 } 28977 28978 // String returns the string representation. 28979 // 28980 // API parameter values that are decorated as "sensitive" in the API will not 28981 // be included in the string output. The member name will be present, but the 28982 // value will be replaced with "sensitive". 28983 func (s ProgressEvent) String() string { 28984 return awsutil.Prettify(s) 28985 } 28986 28987 // GoString returns the string representation. 28988 // 28989 // API parameter values that are decorated as "sensitive" in the API will not 28990 // be included in the string output. The member name will be present, but the 28991 // value will be replaced with "sensitive". 28992 func (s ProgressEvent) GoString() string { 28993 return s.String() 28994 } 28995 28996 // SetDetails sets the Details field's value. 28997 func (s *ProgressEvent) SetDetails(v *Progress) *ProgressEvent { 28998 s.Details = v 28999 return s 29000 } 29001 29002 // The ProgressEvent is and event in the SelectObjectContentEventStream group of events. 29003 func (s *ProgressEvent) eventSelectObjectContentEventStream() {} 29004 29005 // UnmarshalEvent unmarshals the EventStream Message into the ProgressEvent value. 29006 // This method is only used internally within the SDK's EventStream handling. 29007 func (s *ProgressEvent) UnmarshalEvent( 29008 payloadUnmarshaler protocol.PayloadUnmarshaler, 29009 msg eventstream.Message, 29010 ) error { 29011 if err := payloadUnmarshaler.UnmarshalPayload( 29012 bytes.NewReader(msg.Payload), s, 29013 ); err != nil { 29014 return err 29015 } 29016 return nil 29017 } 29018 29019 // MarshalEvent marshals the type into an stream event value. This method 29020 // should only used internally within the SDK's EventStream handling. 29021 func (s *ProgressEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 29022 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 29023 var buf bytes.Buffer 29024 if err = pm.MarshalPayload(&buf, s); err != nil { 29025 return eventstream.Message{}, err 29026 } 29027 msg.Payload = buf.Bytes() 29028 return msg, err 29029 } 29030 29031 // The PublicAccessBlock configuration that you want to apply to this Amazon 29032 // S3 bucket. You can enable the configuration options in any combination. For 29033 // more information about when Amazon S3 considers a bucket or object public, 29034 // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) 29035 // in the Amazon S3 User Guide. 29036 type PublicAccessBlockConfiguration struct { 29037 _ struct{} `type:"structure"` 29038 29039 // Specifies whether Amazon S3 should block public access control lists (ACLs) 29040 // for this bucket and objects in this bucket. Setting this element to TRUE 29041 // causes the following behavior: 29042 // 29043 // * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is 29044 // public. 29045 // 29046 // * PUT Object calls fail if the request includes a public ACL. 29047 // 29048 // * PUT Bucket calls fail if the request includes a public ACL. 29049 // 29050 // Enabling this setting doesn't affect existing policies or ACLs. 29051 BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"` 29052 29053 // Specifies whether Amazon S3 should block public bucket policies for this 29054 // bucket. Setting this element to TRUE causes Amazon S3 to reject calls to 29055 // PUT Bucket policy if the specified bucket policy allows public access. 29056 // 29057 // Enabling this setting doesn't affect existing bucket policies. 29058 BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"` 29059 29060 // Specifies whether Amazon S3 should ignore public ACLs for this bucket and 29061 // objects in this bucket. Setting this element to TRUE causes Amazon S3 to 29062 // ignore all public ACLs on this bucket and objects in this bucket. 29063 // 29064 // Enabling this setting doesn't affect the persistence of any existing ACLs 29065 // and doesn't prevent new public ACLs from being set. 29066 IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"` 29067 29068 // Specifies whether Amazon S3 should restrict public bucket policies for this 29069 // bucket. Setting this element to TRUE restricts access to this bucket to only 29070 // Amazon Web Service principals and authorized users within this account if 29071 // the bucket has a public policy. 29072 // 29073 // Enabling this setting doesn't affect previously stored bucket policies, except 29074 // that public and cross-account access within any public bucket policy, including 29075 // non-public delegation to specific accounts, is blocked. 29076 RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"` 29077 } 29078 29079 // String returns the string representation. 29080 // 29081 // API parameter values that are decorated as "sensitive" in the API will not 29082 // be included in the string output. The member name will be present, but the 29083 // value will be replaced with "sensitive". 29084 func (s PublicAccessBlockConfiguration) String() string { 29085 return awsutil.Prettify(s) 29086 } 29087 29088 // GoString returns the string representation. 29089 // 29090 // API parameter values that are decorated as "sensitive" in the API will not 29091 // be included in the string output. The member name will be present, but the 29092 // value will be replaced with "sensitive". 29093 func (s PublicAccessBlockConfiguration) GoString() string { 29094 return s.String() 29095 } 29096 29097 // SetBlockPublicAcls sets the BlockPublicAcls field's value. 29098 func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration { 29099 s.BlockPublicAcls = &v 29100 return s 29101 } 29102 29103 // SetBlockPublicPolicy sets the BlockPublicPolicy field's value. 29104 func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration { 29105 s.BlockPublicPolicy = &v 29106 return s 29107 } 29108 29109 // SetIgnorePublicAcls sets the IgnorePublicAcls field's value. 29110 func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration { 29111 s.IgnorePublicAcls = &v 29112 return s 29113 } 29114 29115 // SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value. 29116 func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration { 29117 s.RestrictPublicBuckets = &v 29118 return s 29119 } 29120 29121 type PutBucketAccelerateConfigurationInput struct { 29122 _ struct{} `locationName:"PutBucketAccelerateConfigurationRequest" type:"structure" payload:"AccelerateConfiguration"` 29123 29124 // Container for setting the transfer acceleration state. 29125 // 29126 // AccelerateConfiguration is a required field 29127 AccelerateConfiguration *AccelerateConfiguration `locationName:"AccelerateConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 29128 29129 // The name of the bucket for which the accelerate configuration is set. 29130 // 29131 // Bucket is a required field 29132 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 29133 29134 // The account ID of the expected bucket owner. If the bucket is owned by a 29135 // different account, the request will fail with an HTTP 403 (Access Denied) 29136 // error. 29137 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 29138 } 29139 29140 // String returns the string representation. 29141 // 29142 // API parameter values that are decorated as "sensitive" in the API will not 29143 // be included in the string output. The member name will be present, but the 29144 // value will be replaced with "sensitive". 29145 func (s PutBucketAccelerateConfigurationInput) String() string { 29146 return awsutil.Prettify(s) 29147 } 29148 29149 // GoString returns the string representation. 29150 // 29151 // API parameter values that are decorated as "sensitive" in the API will not 29152 // be included in the string output. The member name will be present, but the 29153 // value will be replaced with "sensitive". 29154 func (s PutBucketAccelerateConfigurationInput) GoString() string { 29155 return s.String() 29156 } 29157 29158 // Validate inspects the fields of the type to determine if they are valid. 29159 func (s *PutBucketAccelerateConfigurationInput) Validate() error { 29160 invalidParams := request.ErrInvalidParams{Context: "PutBucketAccelerateConfigurationInput"} 29161 if s.AccelerateConfiguration == nil { 29162 invalidParams.Add(request.NewErrParamRequired("AccelerateConfiguration")) 29163 } 29164 if s.Bucket == nil { 29165 invalidParams.Add(request.NewErrParamRequired("Bucket")) 29166 } 29167 if s.Bucket != nil && len(*s.Bucket) < 1 { 29168 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 29169 } 29170 29171 if invalidParams.Len() > 0 { 29172 return invalidParams 29173 } 29174 return nil 29175 } 29176 29177 // SetAccelerateConfiguration sets the AccelerateConfiguration field's value. 29178 func (s *PutBucketAccelerateConfigurationInput) SetAccelerateConfiguration(v *AccelerateConfiguration) *PutBucketAccelerateConfigurationInput { 29179 s.AccelerateConfiguration = v 29180 return s 29181 } 29182 29183 // SetBucket sets the Bucket field's value. 29184 func (s *PutBucketAccelerateConfigurationInput) SetBucket(v string) *PutBucketAccelerateConfigurationInput { 29185 s.Bucket = &v 29186 return s 29187 } 29188 29189 func (s *PutBucketAccelerateConfigurationInput) getBucket() (v string) { 29190 if s.Bucket == nil { 29191 return v 29192 } 29193 return *s.Bucket 29194 } 29195 29196 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 29197 func (s *PutBucketAccelerateConfigurationInput) SetExpectedBucketOwner(v string) *PutBucketAccelerateConfigurationInput { 29198 s.ExpectedBucketOwner = &v 29199 return s 29200 } 29201 29202 func (s *PutBucketAccelerateConfigurationInput) getEndpointARN() (arn.Resource, error) { 29203 if s.Bucket == nil { 29204 return nil, fmt.Errorf("member Bucket is nil") 29205 } 29206 return parseEndpointARN(*s.Bucket) 29207 } 29208 29209 func (s *PutBucketAccelerateConfigurationInput) hasEndpointARN() bool { 29210 if s.Bucket == nil { 29211 return false 29212 } 29213 return arn.IsARN(*s.Bucket) 29214 } 29215 29216 // updateArnableField updates the value of the input field that 29217 // takes an ARN as an input. This method is useful to backfill 29218 // the parsed resource name from ARN into the input member. 29219 // It returns a pointer to a modified copy of input and an error. 29220 // Note that original input is not modified. 29221 func (s PutBucketAccelerateConfigurationInput) updateArnableField(v string) (interface{}, error) { 29222 if s.Bucket == nil { 29223 return nil, fmt.Errorf("member Bucket is nil") 29224 } 29225 s.Bucket = aws.String(v) 29226 return &s, nil 29227 } 29228 29229 type PutBucketAccelerateConfigurationOutput struct { 29230 _ struct{} `type:"structure"` 29231 } 29232 29233 // String returns the string representation. 29234 // 29235 // API parameter values that are decorated as "sensitive" in the API will not 29236 // be included in the string output. The member name will be present, but the 29237 // value will be replaced with "sensitive". 29238 func (s PutBucketAccelerateConfigurationOutput) String() string { 29239 return awsutil.Prettify(s) 29240 } 29241 29242 // GoString returns the string representation. 29243 // 29244 // API parameter values that are decorated as "sensitive" in the API will not 29245 // be included in the string output. The member name will be present, but the 29246 // value will be replaced with "sensitive". 29247 func (s PutBucketAccelerateConfigurationOutput) GoString() string { 29248 return s.String() 29249 } 29250 29251 type PutBucketAclInput struct { 29252 _ struct{} `locationName:"PutBucketAclRequest" type:"structure" payload:"AccessControlPolicy"` 29253 29254 // The canned ACL to apply to the bucket. 29255 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"` 29256 29257 // Contains the elements that set the ACL permissions for an object per grantee. 29258 AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 29259 29260 // The bucket to which to apply the ACL. 29261 // 29262 // Bucket is a required field 29263 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 29264 29265 // The account ID of the expected bucket owner. If the bucket is owned by a 29266 // different account, the request will fail with an HTTP 403 (Access Denied) 29267 // error. 29268 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 29269 29270 // Allows grantee the read, write, read ACP, and write ACP permissions on the 29271 // bucket. 29272 GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` 29273 29274 // Allows grantee to list the objects in the bucket. 29275 GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` 29276 29277 // Allows grantee to read the bucket ACL. 29278 GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` 29279 29280 // Allows grantee to create new objects in the bucket. 29281 // 29282 // For the bucket and object owners of existing objects, also allows deletions 29283 // and overwrites of those objects. 29284 GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` 29285 29286 // Allows grantee to write the ACL for the applicable bucket. 29287 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` 29288 } 29289 29290 // String returns the string representation. 29291 // 29292 // API parameter values that are decorated as "sensitive" in the API will not 29293 // be included in the string output. The member name will be present, but the 29294 // value will be replaced with "sensitive". 29295 func (s PutBucketAclInput) String() string { 29296 return awsutil.Prettify(s) 29297 } 29298 29299 // GoString returns the string representation. 29300 // 29301 // API parameter values that are decorated as "sensitive" in the API will not 29302 // be included in the string output. The member name will be present, but the 29303 // value will be replaced with "sensitive". 29304 func (s PutBucketAclInput) GoString() string { 29305 return s.String() 29306 } 29307 29308 // Validate inspects the fields of the type to determine if they are valid. 29309 func (s *PutBucketAclInput) Validate() error { 29310 invalidParams := request.ErrInvalidParams{Context: "PutBucketAclInput"} 29311 if s.Bucket == nil { 29312 invalidParams.Add(request.NewErrParamRequired("Bucket")) 29313 } 29314 if s.Bucket != nil && len(*s.Bucket) < 1 { 29315 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 29316 } 29317 if s.AccessControlPolicy != nil { 29318 if err := s.AccessControlPolicy.Validate(); err != nil { 29319 invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams)) 29320 } 29321 } 29322 29323 if invalidParams.Len() > 0 { 29324 return invalidParams 29325 } 29326 return nil 29327 } 29328 29329 // SetACL sets the ACL field's value. 29330 func (s *PutBucketAclInput) SetACL(v string) *PutBucketAclInput { 29331 s.ACL = &v 29332 return s 29333 } 29334 29335 // SetAccessControlPolicy sets the AccessControlPolicy field's value. 29336 func (s *PutBucketAclInput) SetAccessControlPolicy(v *AccessControlPolicy) *PutBucketAclInput { 29337 s.AccessControlPolicy = v 29338 return s 29339 } 29340 29341 // SetBucket sets the Bucket field's value. 29342 func (s *PutBucketAclInput) SetBucket(v string) *PutBucketAclInput { 29343 s.Bucket = &v 29344 return s 29345 } 29346 29347 func (s *PutBucketAclInput) getBucket() (v string) { 29348 if s.Bucket == nil { 29349 return v 29350 } 29351 return *s.Bucket 29352 } 29353 29354 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 29355 func (s *PutBucketAclInput) SetExpectedBucketOwner(v string) *PutBucketAclInput { 29356 s.ExpectedBucketOwner = &v 29357 return s 29358 } 29359 29360 // SetGrantFullControl sets the GrantFullControl field's value. 29361 func (s *PutBucketAclInput) SetGrantFullControl(v string) *PutBucketAclInput { 29362 s.GrantFullControl = &v 29363 return s 29364 } 29365 29366 // SetGrantRead sets the GrantRead field's value. 29367 func (s *PutBucketAclInput) SetGrantRead(v string) *PutBucketAclInput { 29368 s.GrantRead = &v 29369 return s 29370 } 29371 29372 // SetGrantReadACP sets the GrantReadACP field's value. 29373 func (s *PutBucketAclInput) SetGrantReadACP(v string) *PutBucketAclInput { 29374 s.GrantReadACP = &v 29375 return s 29376 } 29377 29378 // SetGrantWrite sets the GrantWrite field's value. 29379 func (s *PutBucketAclInput) SetGrantWrite(v string) *PutBucketAclInput { 29380 s.GrantWrite = &v 29381 return s 29382 } 29383 29384 // SetGrantWriteACP sets the GrantWriteACP field's value. 29385 func (s *PutBucketAclInput) SetGrantWriteACP(v string) *PutBucketAclInput { 29386 s.GrantWriteACP = &v 29387 return s 29388 } 29389 29390 func (s *PutBucketAclInput) getEndpointARN() (arn.Resource, error) { 29391 if s.Bucket == nil { 29392 return nil, fmt.Errorf("member Bucket is nil") 29393 } 29394 return parseEndpointARN(*s.Bucket) 29395 } 29396 29397 func (s *PutBucketAclInput) hasEndpointARN() bool { 29398 if s.Bucket == nil { 29399 return false 29400 } 29401 return arn.IsARN(*s.Bucket) 29402 } 29403 29404 // updateArnableField updates the value of the input field that 29405 // takes an ARN as an input. This method is useful to backfill 29406 // the parsed resource name from ARN into the input member. 29407 // It returns a pointer to a modified copy of input and an error. 29408 // Note that original input is not modified. 29409 func (s PutBucketAclInput) updateArnableField(v string) (interface{}, error) { 29410 if s.Bucket == nil { 29411 return nil, fmt.Errorf("member Bucket is nil") 29412 } 29413 s.Bucket = aws.String(v) 29414 return &s, nil 29415 } 29416 29417 type PutBucketAclOutput struct { 29418 _ struct{} `type:"structure"` 29419 } 29420 29421 // String returns the string representation. 29422 // 29423 // API parameter values that are decorated as "sensitive" in the API will not 29424 // be included in the string output. The member name will be present, but the 29425 // value will be replaced with "sensitive". 29426 func (s PutBucketAclOutput) String() string { 29427 return awsutil.Prettify(s) 29428 } 29429 29430 // GoString returns the string representation. 29431 // 29432 // API parameter values that are decorated as "sensitive" in the API will not 29433 // be included in the string output. The member name will be present, but the 29434 // value will be replaced with "sensitive". 29435 func (s PutBucketAclOutput) GoString() string { 29436 return s.String() 29437 } 29438 29439 type PutBucketAnalyticsConfigurationInput struct { 29440 _ struct{} `locationName:"PutBucketAnalyticsConfigurationRequest" type:"structure" payload:"AnalyticsConfiguration"` 29441 29442 // The configuration and any analyses for the analytics filter. 29443 // 29444 // AnalyticsConfiguration is a required field 29445 AnalyticsConfiguration *AnalyticsConfiguration `locationName:"AnalyticsConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 29446 29447 // The name of the bucket to which an analytics configuration is stored. 29448 // 29449 // Bucket is a required field 29450 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 29451 29452 // The account ID of the expected bucket owner. If the bucket is owned by a 29453 // different account, the request will fail with an HTTP 403 (Access Denied) 29454 // error. 29455 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 29456 29457 // The ID that identifies the analytics configuration. 29458 // 29459 // Id is a required field 29460 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 29461 } 29462 29463 // String returns the string representation. 29464 // 29465 // API parameter values that are decorated as "sensitive" in the API will not 29466 // be included in the string output. The member name will be present, but the 29467 // value will be replaced with "sensitive". 29468 func (s PutBucketAnalyticsConfigurationInput) String() string { 29469 return awsutil.Prettify(s) 29470 } 29471 29472 // GoString returns the string representation. 29473 // 29474 // API parameter values that are decorated as "sensitive" in the API will not 29475 // be included in the string output. The member name will be present, but the 29476 // value will be replaced with "sensitive". 29477 func (s PutBucketAnalyticsConfigurationInput) GoString() string { 29478 return s.String() 29479 } 29480 29481 // Validate inspects the fields of the type to determine if they are valid. 29482 func (s *PutBucketAnalyticsConfigurationInput) Validate() error { 29483 invalidParams := request.ErrInvalidParams{Context: "PutBucketAnalyticsConfigurationInput"} 29484 if s.AnalyticsConfiguration == nil { 29485 invalidParams.Add(request.NewErrParamRequired("AnalyticsConfiguration")) 29486 } 29487 if s.Bucket == nil { 29488 invalidParams.Add(request.NewErrParamRequired("Bucket")) 29489 } 29490 if s.Bucket != nil && len(*s.Bucket) < 1 { 29491 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 29492 } 29493 if s.Id == nil { 29494 invalidParams.Add(request.NewErrParamRequired("Id")) 29495 } 29496 if s.AnalyticsConfiguration != nil { 29497 if err := s.AnalyticsConfiguration.Validate(); err != nil { 29498 invalidParams.AddNested("AnalyticsConfiguration", err.(request.ErrInvalidParams)) 29499 } 29500 } 29501 29502 if invalidParams.Len() > 0 { 29503 return invalidParams 29504 } 29505 return nil 29506 } 29507 29508 // SetAnalyticsConfiguration sets the AnalyticsConfiguration field's value. 29509 func (s *PutBucketAnalyticsConfigurationInput) SetAnalyticsConfiguration(v *AnalyticsConfiguration) *PutBucketAnalyticsConfigurationInput { 29510 s.AnalyticsConfiguration = v 29511 return s 29512 } 29513 29514 // SetBucket sets the Bucket field's value. 29515 func (s *PutBucketAnalyticsConfigurationInput) SetBucket(v string) *PutBucketAnalyticsConfigurationInput { 29516 s.Bucket = &v 29517 return s 29518 } 29519 29520 func (s *PutBucketAnalyticsConfigurationInput) getBucket() (v string) { 29521 if s.Bucket == nil { 29522 return v 29523 } 29524 return *s.Bucket 29525 } 29526 29527 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 29528 func (s *PutBucketAnalyticsConfigurationInput) SetExpectedBucketOwner(v string) *PutBucketAnalyticsConfigurationInput { 29529 s.ExpectedBucketOwner = &v 29530 return s 29531 } 29532 29533 // SetId sets the Id field's value. 29534 func (s *PutBucketAnalyticsConfigurationInput) SetId(v string) *PutBucketAnalyticsConfigurationInput { 29535 s.Id = &v 29536 return s 29537 } 29538 29539 func (s *PutBucketAnalyticsConfigurationInput) getEndpointARN() (arn.Resource, error) { 29540 if s.Bucket == nil { 29541 return nil, fmt.Errorf("member Bucket is nil") 29542 } 29543 return parseEndpointARN(*s.Bucket) 29544 } 29545 29546 func (s *PutBucketAnalyticsConfigurationInput) hasEndpointARN() bool { 29547 if s.Bucket == nil { 29548 return false 29549 } 29550 return arn.IsARN(*s.Bucket) 29551 } 29552 29553 // updateArnableField updates the value of the input field that 29554 // takes an ARN as an input. This method is useful to backfill 29555 // the parsed resource name from ARN into the input member. 29556 // It returns a pointer to a modified copy of input and an error. 29557 // Note that original input is not modified. 29558 func (s PutBucketAnalyticsConfigurationInput) updateArnableField(v string) (interface{}, error) { 29559 if s.Bucket == nil { 29560 return nil, fmt.Errorf("member Bucket is nil") 29561 } 29562 s.Bucket = aws.String(v) 29563 return &s, nil 29564 } 29565 29566 type PutBucketAnalyticsConfigurationOutput struct { 29567 _ struct{} `type:"structure"` 29568 } 29569 29570 // String returns the string representation. 29571 // 29572 // API parameter values that are decorated as "sensitive" in the API will not 29573 // be included in the string output. The member name will be present, but the 29574 // value will be replaced with "sensitive". 29575 func (s PutBucketAnalyticsConfigurationOutput) String() string { 29576 return awsutil.Prettify(s) 29577 } 29578 29579 // GoString returns the string representation. 29580 // 29581 // API parameter values that are decorated as "sensitive" in the API will not 29582 // be included in the string output. The member name will be present, but the 29583 // value will be replaced with "sensitive". 29584 func (s PutBucketAnalyticsConfigurationOutput) GoString() string { 29585 return s.String() 29586 } 29587 29588 type PutBucketCorsInput struct { 29589 _ struct{} `locationName:"PutBucketCorsRequest" type:"structure" payload:"CORSConfiguration"` 29590 29591 // Specifies the bucket impacted by the corsconfiguration. 29592 // 29593 // Bucket is a required field 29594 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 29595 29596 // Describes the cross-origin access configuration for objects in an Amazon 29597 // S3 bucket. For more information, see Enabling Cross-Origin Resource Sharing 29598 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon 29599 // S3 User Guide. 29600 // 29601 // CORSConfiguration is a required field 29602 CORSConfiguration *CORSConfiguration `locationName:"CORSConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 29603 29604 // The account ID of the expected bucket owner. If the bucket is owned by a 29605 // different account, the request will fail with an HTTP 403 (Access Denied) 29606 // error. 29607 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 29608 } 29609 29610 // String returns the string representation. 29611 // 29612 // API parameter values that are decorated as "sensitive" in the API will not 29613 // be included in the string output. The member name will be present, but the 29614 // value will be replaced with "sensitive". 29615 func (s PutBucketCorsInput) String() string { 29616 return awsutil.Prettify(s) 29617 } 29618 29619 // GoString returns the string representation. 29620 // 29621 // API parameter values that are decorated as "sensitive" in the API will not 29622 // be included in the string output. The member name will be present, but the 29623 // value will be replaced with "sensitive". 29624 func (s PutBucketCorsInput) GoString() string { 29625 return s.String() 29626 } 29627 29628 // Validate inspects the fields of the type to determine if they are valid. 29629 func (s *PutBucketCorsInput) Validate() error { 29630 invalidParams := request.ErrInvalidParams{Context: "PutBucketCorsInput"} 29631 if s.Bucket == nil { 29632 invalidParams.Add(request.NewErrParamRequired("Bucket")) 29633 } 29634 if s.Bucket != nil && len(*s.Bucket) < 1 { 29635 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 29636 } 29637 if s.CORSConfiguration == nil { 29638 invalidParams.Add(request.NewErrParamRequired("CORSConfiguration")) 29639 } 29640 if s.CORSConfiguration != nil { 29641 if err := s.CORSConfiguration.Validate(); err != nil { 29642 invalidParams.AddNested("CORSConfiguration", err.(request.ErrInvalidParams)) 29643 } 29644 } 29645 29646 if invalidParams.Len() > 0 { 29647 return invalidParams 29648 } 29649 return nil 29650 } 29651 29652 // SetBucket sets the Bucket field's value. 29653 func (s *PutBucketCorsInput) SetBucket(v string) *PutBucketCorsInput { 29654 s.Bucket = &v 29655 return s 29656 } 29657 29658 func (s *PutBucketCorsInput) getBucket() (v string) { 29659 if s.Bucket == nil { 29660 return v 29661 } 29662 return *s.Bucket 29663 } 29664 29665 // SetCORSConfiguration sets the CORSConfiguration field's value. 29666 func (s *PutBucketCorsInput) SetCORSConfiguration(v *CORSConfiguration) *PutBucketCorsInput { 29667 s.CORSConfiguration = v 29668 return s 29669 } 29670 29671 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 29672 func (s *PutBucketCorsInput) SetExpectedBucketOwner(v string) *PutBucketCorsInput { 29673 s.ExpectedBucketOwner = &v 29674 return s 29675 } 29676 29677 func (s *PutBucketCorsInput) getEndpointARN() (arn.Resource, error) { 29678 if s.Bucket == nil { 29679 return nil, fmt.Errorf("member Bucket is nil") 29680 } 29681 return parseEndpointARN(*s.Bucket) 29682 } 29683 29684 func (s *PutBucketCorsInput) hasEndpointARN() bool { 29685 if s.Bucket == nil { 29686 return false 29687 } 29688 return arn.IsARN(*s.Bucket) 29689 } 29690 29691 // updateArnableField updates the value of the input field that 29692 // takes an ARN as an input. This method is useful to backfill 29693 // the parsed resource name from ARN into the input member. 29694 // It returns a pointer to a modified copy of input and an error. 29695 // Note that original input is not modified. 29696 func (s PutBucketCorsInput) updateArnableField(v string) (interface{}, error) { 29697 if s.Bucket == nil { 29698 return nil, fmt.Errorf("member Bucket is nil") 29699 } 29700 s.Bucket = aws.String(v) 29701 return &s, nil 29702 } 29703 29704 type PutBucketCorsOutput struct { 29705 _ struct{} `type:"structure"` 29706 } 29707 29708 // String returns the string representation. 29709 // 29710 // API parameter values that are decorated as "sensitive" in the API will not 29711 // be included in the string output. The member name will be present, but the 29712 // value will be replaced with "sensitive". 29713 func (s PutBucketCorsOutput) String() string { 29714 return awsutil.Prettify(s) 29715 } 29716 29717 // GoString returns the string representation. 29718 // 29719 // API parameter values that are decorated as "sensitive" in the API will not 29720 // be included in the string output. The member name will be present, but the 29721 // value will be replaced with "sensitive". 29722 func (s PutBucketCorsOutput) GoString() string { 29723 return s.String() 29724 } 29725 29726 type PutBucketEncryptionInput struct { 29727 _ struct{} `locationName:"PutBucketEncryptionRequest" type:"structure" payload:"ServerSideEncryptionConfiguration"` 29728 29729 // Specifies default encryption for a bucket using server-side encryption with 29730 // Amazon S3-managed keys (SSE-S3) or customer managed keys (SSE-KMS). For information 29731 // about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket 29732 // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) 29733 // in the Amazon S3 User Guide. 29734 // 29735 // Bucket is a required field 29736 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 29737 29738 // The account ID of the expected bucket owner. If the bucket is owned by a 29739 // different account, the request will fail with an HTTP 403 (Access Denied) 29740 // error. 29741 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 29742 29743 // Specifies the default server-side-encryption configuration. 29744 // 29745 // ServerSideEncryptionConfiguration is a required field 29746 ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"ServerSideEncryptionConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 29747 } 29748 29749 // String returns the string representation. 29750 // 29751 // API parameter values that are decorated as "sensitive" in the API will not 29752 // be included in the string output. The member name will be present, but the 29753 // value will be replaced with "sensitive". 29754 func (s PutBucketEncryptionInput) String() string { 29755 return awsutil.Prettify(s) 29756 } 29757 29758 // GoString returns the string representation. 29759 // 29760 // API parameter values that are decorated as "sensitive" in the API will not 29761 // be included in the string output. The member name will be present, but the 29762 // value will be replaced with "sensitive". 29763 func (s PutBucketEncryptionInput) GoString() string { 29764 return s.String() 29765 } 29766 29767 // Validate inspects the fields of the type to determine if they are valid. 29768 func (s *PutBucketEncryptionInput) Validate() error { 29769 invalidParams := request.ErrInvalidParams{Context: "PutBucketEncryptionInput"} 29770 if s.Bucket == nil { 29771 invalidParams.Add(request.NewErrParamRequired("Bucket")) 29772 } 29773 if s.Bucket != nil && len(*s.Bucket) < 1 { 29774 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 29775 } 29776 if s.ServerSideEncryptionConfiguration == nil { 29777 invalidParams.Add(request.NewErrParamRequired("ServerSideEncryptionConfiguration")) 29778 } 29779 if s.ServerSideEncryptionConfiguration != nil { 29780 if err := s.ServerSideEncryptionConfiguration.Validate(); err != nil { 29781 invalidParams.AddNested("ServerSideEncryptionConfiguration", err.(request.ErrInvalidParams)) 29782 } 29783 } 29784 29785 if invalidParams.Len() > 0 { 29786 return invalidParams 29787 } 29788 return nil 29789 } 29790 29791 // SetBucket sets the Bucket field's value. 29792 func (s *PutBucketEncryptionInput) SetBucket(v string) *PutBucketEncryptionInput { 29793 s.Bucket = &v 29794 return s 29795 } 29796 29797 func (s *PutBucketEncryptionInput) getBucket() (v string) { 29798 if s.Bucket == nil { 29799 return v 29800 } 29801 return *s.Bucket 29802 } 29803 29804 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 29805 func (s *PutBucketEncryptionInput) SetExpectedBucketOwner(v string) *PutBucketEncryptionInput { 29806 s.ExpectedBucketOwner = &v 29807 return s 29808 } 29809 29810 // SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value. 29811 func (s *PutBucketEncryptionInput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *PutBucketEncryptionInput { 29812 s.ServerSideEncryptionConfiguration = v 29813 return s 29814 } 29815 29816 func (s *PutBucketEncryptionInput) getEndpointARN() (arn.Resource, error) { 29817 if s.Bucket == nil { 29818 return nil, fmt.Errorf("member Bucket is nil") 29819 } 29820 return parseEndpointARN(*s.Bucket) 29821 } 29822 29823 func (s *PutBucketEncryptionInput) hasEndpointARN() bool { 29824 if s.Bucket == nil { 29825 return false 29826 } 29827 return arn.IsARN(*s.Bucket) 29828 } 29829 29830 // updateArnableField updates the value of the input field that 29831 // takes an ARN as an input. This method is useful to backfill 29832 // the parsed resource name from ARN into the input member. 29833 // It returns a pointer to a modified copy of input and an error. 29834 // Note that original input is not modified. 29835 func (s PutBucketEncryptionInput) updateArnableField(v string) (interface{}, error) { 29836 if s.Bucket == nil { 29837 return nil, fmt.Errorf("member Bucket is nil") 29838 } 29839 s.Bucket = aws.String(v) 29840 return &s, nil 29841 } 29842 29843 type PutBucketEncryptionOutput struct { 29844 _ struct{} `type:"structure"` 29845 } 29846 29847 // String returns the string representation. 29848 // 29849 // API parameter values that are decorated as "sensitive" in the API will not 29850 // be included in the string output. The member name will be present, but the 29851 // value will be replaced with "sensitive". 29852 func (s PutBucketEncryptionOutput) String() string { 29853 return awsutil.Prettify(s) 29854 } 29855 29856 // GoString returns the string representation. 29857 // 29858 // API parameter values that are decorated as "sensitive" in the API will not 29859 // be included in the string output. The member name will be present, but the 29860 // value will be replaced with "sensitive". 29861 func (s PutBucketEncryptionOutput) GoString() string { 29862 return s.String() 29863 } 29864 29865 type PutBucketIntelligentTieringConfigurationInput struct { 29866 _ struct{} `locationName:"PutBucketIntelligentTieringConfigurationRequest" type:"structure" payload:"IntelligentTieringConfiguration"` 29867 29868 // The name of the Amazon S3 bucket whose configuration you want to modify or 29869 // retrieve. 29870 // 29871 // Bucket is a required field 29872 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 29873 29874 // The ID used to identify the S3 Intelligent-Tiering configuration. 29875 // 29876 // Id is a required field 29877 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 29878 29879 // Container for S3 Intelligent-Tiering configuration. 29880 // 29881 // IntelligentTieringConfiguration is a required field 29882 IntelligentTieringConfiguration *IntelligentTieringConfiguration `locationName:"IntelligentTieringConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 29883 } 29884 29885 // String returns the string representation. 29886 // 29887 // API parameter values that are decorated as "sensitive" in the API will not 29888 // be included in the string output. The member name will be present, but the 29889 // value will be replaced with "sensitive". 29890 func (s PutBucketIntelligentTieringConfigurationInput) String() string { 29891 return awsutil.Prettify(s) 29892 } 29893 29894 // GoString returns the string representation. 29895 // 29896 // API parameter values that are decorated as "sensitive" in the API will not 29897 // be included in the string output. The member name will be present, but the 29898 // value will be replaced with "sensitive". 29899 func (s PutBucketIntelligentTieringConfigurationInput) GoString() string { 29900 return s.String() 29901 } 29902 29903 // Validate inspects the fields of the type to determine if they are valid. 29904 func (s *PutBucketIntelligentTieringConfigurationInput) Validate() error { 29905 invalidParams := request.ErrInvalidParams{Context: "PutBucketIntelligentTieringConfigurationInput"} 29906 if s.Bucket == nil { 29907 invalidParams.Add(request.NewErrParamRequired("Bucket")) 29908 } 29909 if s.Bucket != nil && len(*s.Bucket) < 1 { 29910 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 29911 } 29912 if s.Id == nil { 29913 invalidParams.Add(request.NewErrParamRequired("Id")) 29914 } 29915 if s.IntelligentTieringConfiguration == nil { 29916 invalidParams.Add(request.NewErrParamRequired("IntelligentTieringConfiguration")) 29917 } 29918 if s.IntelligentTieringConfiguration != nil { 29919 if err := s.IntelligentTieringConfiguration.Validate(); err != nil { 29920 invalidParams.AddNested("IntelligentTieringConfiguration", err.(request.ErrInvalidParams)) 29921 } 29922 } 29923 29924 if invalidParams.Len() > 0 { 29925 return invalidParams 29926 } 29927 return nil 29928 } 29929 29930 // SetBucket sets the Bucket field's value. 29931 func (s *PutBucketIntelligentTieringConfigurationInput) SetBucket(v string) *PutBucketIntelligentTieringConfigurationInput { 29932 s.Bucket = &v 29933 return s 29934 } 29935 29936 func (s *PutBucketIntelligentTieringConfigurationInput) getBucket() (v string) { 29937 if s.Bucket == nil { 29938 return v 29939 } 29940 return *s.Bucket 29941 } 29942 29943 // SetId sets the Id field's value. 29944 func (s *PutBucketIntelligentTieringConfigurationInput) SetId(v string) *PutBucketIntelligentTieringConfigurationInput { 29945 s.Id = &v 29946 return s 29947 } 29948 29949 // SetIntelligentTieringConfiguration sets the IntelligentTieringConfiguration field's value. 29950 func (s *PutBucketIntelligentTieringConfigurationInput) SetIntelligentTieringConfiguration(v *IntelligentTieringConfiguration) *PutBucketIntelligentTieringConfigurationInput { 29951 s.IntelligentTieringConfiguration = v 29952 return s 29953 } 29954 29955 func (s *PutBucketIntelligentTieringConfigurationInput) getEndpointARN() (arn.Resource, error) { 29956 if s.Bucket == nil { 29957 return nil, fmt.Errorf("member Bucket is nil") 29958 } 29959 return parseEndpointARN(*s.Bucket) 29960 } 29961 29962 func (s *PutBucketIntelligentTieringConfigurationInput) hasEndpointARN() bool { 29963 if s.Bucket == nil { 29964 return false 29965 } 29966 return arn.IsARN(*s.Bucket) 29967 } 29968 29969 // updateArnableField updates the value of the input field that 29970 // takes an ARN as an input. This method is useful to backfill 29971 // the parsed resource name from ARN into the input member. 29972 // It returns a pointer to a modified copy of input and an error. 29973 // Note that original input is not modified. 29974 func (s PutBucketIntelligentTieringConfigurationInput) updateArnableField(v string) (interface{}, error) { 29975 if s.Bucket == nil { 29976 return nil, fmt.Errorf("member Bucket is nil") 29977 } 29978 s.Bucket = aws.String(v) 29979 return &s, nil 29980 } 29981 29982 type PutBucketIntelligentTieringConfigurationOutput struct { 29983 _ struct{} `type:"structure"` 29984 } 29985 29986 // String returns the string representation. 29987 // 29988 // API parameter values that are decorated as "sensitive" in the API will not 29989 // be included in the string output. The member name will be present, but the 29990 // value will be replaced with "sensitive". 29991 func (s PutBucketIntelligentTieringConfigurationOutput) String() string { 29992 return awsutil.Prettify(s) 29993 } 29994 29995 // GoString returns the string representation. 29996 // 29997 // API parameter values that are decorated as "sensitive" in the API will not 29998 // be included in the string output. The member name will be present, but the 29999 // value will be replaced with "sensitive". 30000 func (s PutBucketIntelligentTieringConfigurationOutput) GoString() string { 30001 return s.String() 30002 } 30003 30004 type PutBucketInventoryConfigurationInput struct { 30005 _ struct{} `locationName:"PutBucketInventoryConfigurationRequest" type:"structure" payload:"InventoryConfiguration"` 30006 30007 // The name of the bucket where the inventory configuration will be stored. 30008 // 30009 // Bucket is a required field 30010 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 30011 30012 // The account ID of the expected bucket owner. If the bucket is owned by a 30013 // different account, the request will fail with an HTTP 403 (Access Denied) 30014 // error. 30015 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 30016 30017 // The ID used to identify the inventory configuration. 30018 // 30019 // Id is a required field 30020 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 30021 30022 // Specifies the inventory configuration. 30023 // 30024 // InventoryConfiguration is a required field 30025 InventoryConfiguration *InventoryConfiguration `locationName:"InventoryConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 30026 } 30027 30028 // String returns the string representation. 30029 // 30030 // API parameter values that are decorated as "sensitive" in the API will not 30031 // be included in the string output. The member name will be present, but the 30032 // value will be replaced with "sensitive". 30033 func (s PutBucketInventoryConfigurationInput) String() string { 30034 return awsutil.Prettify(s) 30035 } 30036 30037 // GoString returns the string representation. 30038 // 30039 // API parameter values that are decorated as "sensitive" in the API will not 30040 // be included in the string output. The member name will be present, but the 30041 // value will be replaced with "sensitive". 30042 func (s PutBucketInventoryConfigurationInput) GoString() string { 30043 return s.String() 30044 } 30045 30046 // Validate inspects the fields of the type to determine if they are valid. 30047 func (s *PutBucketInventoryConfigurationInput) Validate() error { 30048 invalidParams := request.ErrInvalidParams{Context: "PutBucketInventoryConfigurationInput"} 30049 if s.Bucket == nil { 30050 invalidParams.Add(request.NewErrParamRequired("Bucket")) 30051 } 30052 if s.Bucket != nil && len(*s.Bucket) < 1 { 30053 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 30054 } 30055 if s.Id == nil { 30056 invalidParams.Add(request.NewErrParamRequired("Id")) 30057 } 30058 if s.InventoryConfiguration == nil { 30059 invalidParams.Add(request.NewErrParamRequired("InventoryConfiguration")) 30060 } 30061 if s.InventoryConfiguration != nil { 30062 if err := s.InventoryConfiguration.Validate(); err != nil { 30063 invalidParams.AddNested("InventoryConfiguration", err.(request.ErrInvalidParams)) 30064 } 30065 } 30066 30067 if invalidParams.Len() > 0 { 30068 return invalidParams 30069 } 30070 return nil 30071 } 30072 30073 // SetBucket sets the Bucket field's value. 30074 func (s *PutBucketInventoryConfigurationInput) SetBucket(v string) *PutBucketInventoryConfigurationInput { 30075 s.Bucket = &v 30076 return s 30077 } 30078 30079 func (s *PutBucketInventoryConfigurationInput) getBucket() (v string) { 30080 if s.Bucket == nil { 30081 return v 30082 } 30083 return *s.Bucket 30084 } 30085 30086 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 30087 func (s *PutBucketInventoryConfigurationInput) SetExpectedBucketOwner(v string) *PutBucketInventoryConfigurationInput { 30088 s.ExpectedBucketOwner = &v 30089 return s 30090 } 30091 30092 // SetId sets the Id field's value. 30093 func (s *PutBucketInventoryConfigurationInput) SetId(v string) *PutBucketInventoryConfigurationInput { 30094 s.Id = &v 30095 return s 30096 } 30097 30098 // SetInventoryConfiguration sets the InventoryConfiguration field's value. 30099 func (s *PutBucketInventoryConfigurationInput) SetInventoryConfiguration(v *InventoryConfiguration) *PutBucketInventoryConfigurationInput { 30100 s.InventoryConfiguration = v 30101 return s 30102 } 30103 30104 func (s *PutBucketInventoryConfigurationInput) getEndpointARN() (arn.Resource, error) { 30105 if s.Bucket == nil { 30106 return nil, fmt.Errorf("member Bucket is nil") 30107 } 30108 return parseEndpointARN(*s.Bucket) 30109 } 30110 30111 func (s *PutBucketInventoryConfigurationInput) hasEndpointARN() bool { 30112 if s.Bucket == nil { 30113 return false 30114 } 30115 return arn.IsARN(*s.Bucket) 30116 } 30117 30118 // updateArnableField updates the value of the input field that 30119 // takes an ARN as an input. This method is useful to backfill 30120 // the parsed resource name from ARN into the input member. 30121 // It returns a pointer to a modified copy of input and an error. 30122 // Note that original input is not modified. 30123 func (s PutBucketInventoryConfigurationInput) updateArnableField(v string) (interface{}, error) { 30124 if s.Bucket == nil { 30125 return nil, fmt.Errorf("member Bucket is nil") 30126 } 30127 s.Bucket = aws.String(v) 30128 return &s, nil 30129 } 30130 30131 type PutBucketInventoryConfigurationOutput struct { 30132 _ struct{} `type:"structure"` 30133 } 30134 30135 // String returns the string representation. 30136 // 30137 // API parameter values that are decorated as "sensitive" in the API will not 30138 // be included in the string output. The member name will be present, but the 30139 // value will be replaced with "sensitive". 30140 func (s PutBucketInventoryConfigurationOutput) String() string { 30141 return awsutil.Prettify(s) 30142 } 30143 30144 // GoString returns the string representation. 30145 // 30146 // API parameter values that are decorated as "sensitive" in the API will not 30147 // be included in the string output. The member name will be present, but the 30148 // value will be replaced with "sensitive". 30149 func (s PutBucketInventoryConfigurationOutput) GoString() string { 30150 return s.String() 30151 } 30152 30153 type PutBucketLifecycleConfigurationInput struct { 30154 _ struct{} `locationName:"PutBucketLifecycleConfigurationRequest" type:"structure" payload:"LifecycleConfiguration"` 30155 30156 // The name of the bucket for which to set the configuration. 30157 // 30158 // Bucket is a required field 30159 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 30160 30161 // The account ID of the expected bucket owner. If the bucket is owned by a 30162 // different account, the request will fail with an HTTP 403 (Access Denied) 30163 // error. 30164 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 30165 30166 // Container for lifecycle rules. You can add as many as 1,000 rules. 30167 LifecycleConfiguration *BucketLifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 30168 } 30169 30170 // String returns the string representation. 30171 // 30172 // API parameter values that are decorated as "sensitive" in the API will not 30173 // be included in the string output. The member name will be present, but the 30174 // value will be replaced with "sensitive". 30175 func (s PutBucketLifecycleConfigurationInput) String() string { 30176 return awsutil.Prettify(s) 30177 } 30178 30179 // GoString returns the string representation. 30180 // 30181 // API parameter values that are decorated as "sensitive" in the API will not 30182 // be included in the string output. The member name will be present, but the 30183 // value will be replaced with "sensitive". 30184 func (s PutBucketLifecycleConfigurationInput) GoString() string { 30185 return s.String() 30186 } 30187 30188 // Validate inspects the fields of the type to determine if they are valid. 30189 func (s *PutBucketLifecycleConfigurationInput) Validate() error { 30190 invalidParams := request.ErrInvalidParams{Context: "PutBucketLifecycleConfigurationInput"} 30191 if s.Bucket == nil { 30192 invalidParams.Add(request.NewErrParamRequired("Bucket")) 30193 } 30194 if s.Bucket != nil && len(*s.Bucket) < 1 { 30195 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 30196 } 30197 if s.LifecycleConfiguration != nil { 30198 if err := s.LifecycleConfiguration.Validate(); err != nil { 30199 invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams)) 30200 } 30201 } 30202 30203 if invalidParams.Len() > 0 { 30204 return invalidParams 30205 } 30206 return nil 30207 } 30208 30209 // SetBucket sets the Bucket field's value. 30210 func (s *PutBucketLifecycleConfigurationInput) SetBucket(v string) *PutBucketLifecycleConfigurationInput { 30211 s.Bucket = &v 30212 return s 30213 } 30214 30215 func (s *PutBucketLifecycleConfigurationInput) getBucket() (v string) { 30216 if s.Bucket == nil { 30217 return v 30218 } 30219 return *s.Bucket 30220 } 30221 30222 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 30223 func (s *PutBucketLifecycleConfigurationInput) SetExpectedBucketOwner(v string) *PutBucketLifecycleConfigurationInput { 30224 s.ExpectedBucketOwner = &v 30225 return s 30226 } 30227 30228 // SetLifecycleConfiguration sets the LifecycleConfiguration field's value. 30229 func (s *PutBucketLifecycleConfigurationInput) SetLifecycleConfiguration(v *BucketLifecycleConfiguration) *PutBucketLifecycleConfigurationInput { 30230 s.LifecycleConfiguration = v 30231 return s 30232 } 30233 30234 func (s *PutBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { 30235 if s.Bucket == nil { 30236 return nil, fmt.Errorf("member Bucket is nil") 30237 } 30238 return parseEndpointARN(*s.Bucket) 30239 } 30240 30241 func (s *PutBucketLifecycleConfigurationInput) hasEndpointARN() bool { 30242 if s.Bucket == nil { 30243 return false 30244 } 30245 return arn.IsARN(*s.Bucket) 30246 } 30247 30248 // updateArnableField updates the value of the input field that 30249 // takes an ARN as an input. This method is useful to backfill 30250 // the parsed resource name from ARN into the input member. 30251 // It returns a pointer to a modified copy of input and an error. 30252 // Note that original input is not modified. 30253 func (s PutBucketLifecycleConfigurationInput) updateArnableField(v string) (interface{}, error) { 30254 if s.Bucket == nil { 30255 return nil, fmt.Errorf("member Bucket is nil") 30256 } 30257 s.Bucket = aws.String(v) 30258 return &s, nil 30259 } 30260 30261 type PutBucketLifecycleConfigurationOutput struct { 30262 _ struct{} `type:"structure"` 30263 } 30264 30265 // String returns the string representation. 30266 // 30267 // API parameter values that are decorated as "sensitive" in the API will not 30268 // be included in the string output. The member name will be present, but the 30269 // value will be replaced with "sensitive". 30270 func (s PutBucketLifecycleConfigurationOutput) String() string { 30271 return awsutil.Prettify(s) 30272 } 30273 30274 // GoString returns the string representation. 30275 // 30276 // API parameter values that are decorated as "sensitive" in the API will not 30277 // be included in the string output. The member name will be present, but the 30278 // value will be replaced with "sensitive". 30279 func (s PutBucketLifecycleConfigurationOutput) GoString() string { 30280 return s.String() 30281 } 30282 30283 type PutBucketLifecycleInput struct { 30284 _ struct{} `locationName:"PutBucketLifecycleRequest" type:"structure" payload:"LifecycleConfiguration"` 30285 30286 // Bucket is a required field 30287 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 30288 30289 // The account ID of the expected bucket owner. If the bucket is owned by a 30290 // different account, the request will fail with an HTTP 403 (Access Denied) 30291 // error. 30292 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 30293 30294 // Container for lifecycle rules. You can add as many as 1000 rules. 30295 LifecycleConfiguration *LifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 30296 } 30297 30298 // String returns the string representation. 30299 // 30300 // API parameter values that are decorated as "sensitive" in the API will not 30301 // be included in the string output. The member name will be present, but the 30302 // value will be replaced with "sensitive". 30303 func (s PutBucketLifecycleInput) String() string { 30304 return awsutil.Prettify(s) 30305 } 30306 30307 // GoString returns the string representation. 30308 // 30309 // API parameter values that are decorated as "sensitive" in the API will not 30310 // be included in the string output. The member name will be present, but the 30311 // value will be replaced with "sensitive". 30312 func (s PutBucketLifecycleInput) GoString() string { 30313 return s.String() 30314 } 30315 30316 // Validate inspects the fields of the type to determine if they are valid. 30317 func (s *PutBucketLifecycleInput) Validate() error { 30318 invalidParams := request.ErrInvalidParams{Context: "PutBucketLifecycleInput"} 30319 if s.Bucket == nil { 30320 invalidParams.Add(request.NewErrParamRequired("Bucket")) 30321 } 30322 if s.Bucket != nil && len(*s.Bucket) < 1 { 30323 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 30324 } 30325 if s.LifecycleConfiguration != nil { 30326 if err := s.LifecycleConfiguration.Validate(); err != nil { 30327 invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams)) 30328 } 30329 } 30330 30331 if invalidParams.Len() > 0 { 30332 return invalidParams 30333 } 30334 return nil 30335 } 30336 30337 // SetBucket sets the Bucket field's value. 30338 func (s *PutBucketLifecycleInput) SetBucket(v string) *PutBucketLifecycleInput { 30339 s.Bucket = &v 30340 return s 30341 } 30342 30343 func (s *PutBucketLifecycleInput) getBucket() (v string) { 30344 if s.Bucket == nil { 30345 return v 30346 } 30347 return *s.Bucket 30348 } 30349 30350 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 30351 func (s *PutBucketLifecycleInput) SetExpectedBucketOwner(v string) *PutBucketLifecycleInput { 30352 s.ExpectedBucketOwner = &v 30353 return s 30354 } 30355 30356 // SetLifecycleConfiguration sets the LifecycleConfiguration field's value. 30357 func (s *PutBucketLifecycleInput) SetLifecycleConfiguration(v *LifecycleConfiguration) *PutBucketLifecycleInput { 30358 s.LifecycleConfiguration = v 30359 return s 30360 } 30361 30362 func (s *PutBucketLifecycleInput) getEndpointARN() (arn.Resource, error) { 30363 if s.Bucket == nil { 30364 return nil, fmt.Errorf("member Bucket is nil") 30365 } 30366 return parseEndpointARN(*s.Bucket) 30367 } 30368 30369 func (s *PutBucketLifecycleInput) hasEndpointARN() bool { 30370 if s.Bucket == nil { 30371 return false 30372 } 30373 return arn.IsARN(*s.Bucket) 30374 } 30375 30376 // updateArnableField updates the value of the input field that 30377 // takes an ARN as an input. This method is useful to backfill 30378 // the parsed resource name from ARN into the input member. 30379 // It returns a pointer to a modified copy of input and an error. 30380 // Note that original input is not modified. 30381 func (s PutBucketLifecycleInput) updateArnableField(v string) (interface{}, error) { 30382 if s.Bucket == nil { 30383 return nil, fmt.Errorf("member Bucket is nil") 30384 } 30385 s.Bucket = aws.String(v) 30386 return &s, nil 30387 } 30388 30389 type PutBucketLifecycleOutput struct { 30390 _ struct{} `type:"structure"` 30391 } 30392 30393 // String returns the string representation. 30394 // 30395 // API parameter values that are decorated as "sensitive" in the API will not 30396 // be included in the string output. The member name will be present, but the 30397 // value will be replaced with "sensitive". 30398 func (s PutBucketLifecycleOutput) String() string { 30399 return awsutil.Prettify(s) 30400 } 30401 30402 // GoString returns the string representation. 30403 // 30404 // API parameter values that are decorated as "sensitive" in the API will not 30405 // be included in the string output. The member name will be present, but the 30406 // value will be replaced with "sensitive". 30407 func (s PutBucketLifecycleOutput) GoString() string { 30408 return s.String() 30409 } 30410 30411 type PutBucketLoggingInput struct { 30412 _ struct{} `locationName:"PutBucketLoggingRequest" type:"structure" payload:"BucketLoggingStatus"` 30413 30414 // The name of the bucket for which to set the logging parameters. 30415 // 30416 // Bucket is a required field 30417 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 30418 30419 // Container for logging status information. 30420 // 30421 // BucketLoggingStatus is a required field 30422 BucketLoggingStatus *BucketLoggingStatus `locationName:"BucketLoggingStatus" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 30423 30424 // The account ID of the expected bucket owner. If the bucket is owned by a 30425 // different account, the request will fail with an HTTP 403 (Access Denied) 30426 // error. 30427 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 30428 } 30429 30430 // String returns the string representation. 30431 // 30432 // API parameter values that are decorated as "sensitive" in the API will not 30433 // be included in the string output. The member name will be present, but the 30434 // value will be replaced with "sensitive". 30435 func (s PutBucketLoggingInput) String() string { 30436 return awsutil.Prettify(s) 30437 } 30438 30439 // GoString returns the string representation. 30440 // 30441 // API parameter values that are decorated as "sensitive" in the API will not 30442 // be included in the string output. The member name will be present, but the 30443 // value will be replaced with "sensitive". 30444 func (s PutBucketLoggingInput) GoString() string { 30445 return s.String() 30446 } 30447 30448 // Validate inspects the fields of the type to determine if they are valid. 30449 func (s *PutBucketLoggingInput) Validate() error { 30450 invalidParams := request.ErrInvalidParams{Context: "PutBucketLoggingInput"} 30451 if s.Bucket == nil { 30452 invalidParams.Add(request.NewErrParamRequired("Bucket")) 30453 } 30454 if s.Bucket != nil && len(*s.Bucket) < 1 { 30455 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 30456 } 30457 if s.BucketLoggingStatus == nil { 30458 invalidParams.Add(request.NewErrParamRequired("BucketLoggingStatus")) 30459 } 30460 if s.BucketLoggingStatus != nil { 30461 if err := s.BucketLoggingStatus.Validate(); err != nil { 30462 invalidParams.AddNested("BucketLoggingStatus", err.(request.ErrInvalidParams)) 30463 } 30464 } 30465 30466 if invalidParams.Len() > 0 { 30467 return invalidParams 30468 } 30469 return nil 30470 } 30471 30472 // SetBucket sets the Bucket field's value. 30473 func (s *PutBucketLoggingInput) SetBucket(v string) *PutBucketLoggingInput { 30474 s.Bucket = &v 30475 return s 30476 } 30477 30478 func (s *PutBucketLoggingInput) getBucket() (v string) { 30479 if s.Bucket == nil { 30480 return v 30481 } 30482 return *s.Bucket 30483 } 30484 30485 // SetBucketLoggingStatus sets the BucketLoggingStatus field's value. 30486 func (s *PutBucketLoggingInput) SetBucketLoggingStatus(v *BucketLoggingStatus) *PutBucketLoggingInput { 30487 s.BucketLoggingStatus = v 30488 return s 30489 } 30490 30491 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 30492 func (s *PutBucketLoggingInput) SetExpectedBucketOwner(v string) *PutBucketLoggingInput { 30493 s.ExpectedBucketOwner = &v 30494 return s 30495 } 30496 30497 func (s *PutBucketLoggingInput) getEndpointARN() (arn.Resource, error) { 30498 if s.Bucket == nil { 30499 return nil, fmt.Errorf("member Bucket is nil") 30500 } 30501 return parseEndpointARN(*s.Bucket) 30502 } 30503 30504 func (s *PutBucketLoggingInput) hasEndpointARN() bool { 30505 if s.Bucket == nil { 30506 return false 30507 } 30508 return arn.IsARN(*s.Bucket) 30509 } 30510 30511 // updateArnableField updates the value of the input field that 30512 // takes an ARN as an input. This method is useful to backfill 30513 // the parsed resource name from ARN into the input member. 30514 // It returns a pointer to a modified copy of input and an error. 30515 // Note that original input is not modified. 30516 func (s PutBucketLoggingInput) updateArnableField(v string) (interface{}, error) { 30517 if s.Bucket == nil { 30518 return nil, fmt.Errorf("member Bucket is nil") 30519 } 30520 s.Bucket = aws.String(v) 30521 return &s, nil 30522 } 30523 30524 type PutBucketLoggingOutput struct { 30525 _ struct{} `type:"structure"` 30526 } 30527 30528 // String returns the string representation. 30529 // 30530 // API parameter values that are decorated as "sensitive" in the API will not 30531 // be included in the string output. The member name will be present, but the 30532 // value will be replaced with "sensitive". 30533 func (s PutBucketLoggingOutput) String() string { 30534 return awsutil.Prettify(s) 30535 } 30536 30537 // GoString returns the string representation. 30538 // 30539 // API parameter values that are decorated as "sensitive" in the API will not 30540 // be included in the string output. The member name will be present, but the 30541 // value will be replaced with "sensitive". 30542 func (s PutBucketLoggingOutput) GoString() string { 30543 return s.String() 30544 } 30545 30546 type PutBucketMetricsConfigurationInput struct { 30547 _ struct{} `locationName:"PutBucketMetricsConfigurationRequest" type:"structure" payload:"MetricsConfiguration"` 30548 30549 // The name of the bucket for which the metrics configuration is set. 30550 // 30551 // Bucket is a required field 30552 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 30553 30554 // The account ID of the expected bucket owner. If the bucket is owned by a 30555 // different account, the request will fail with an HTTP 403 (Access Denied) 30556 // error. 30557 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 30558 30559 // The ID used to identify the metrics configuration. 30560 // 30561 // Id is a required field 30562 Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` 30563 30564 // Specifies the metrics configuration. 30565 // 30566 // MetricsConfiguration is a required field 30567 MetricsConfiguration *MetricsConfiguration `locationName:"MetricsConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 30568 } 30569 30570 // String returns the string representation. 30571 // 30572 // API parameter values that are decorated as "sensitive" in the API will not 30573 // be included in the string output. The member name will be present, but the 30574 // value will be replaced with "sensitive". 30575 func (s PutBucketMetricsConfigurationInput) String() string { 30576 return awsutil.Prettify(s) 30577 } 30578 30579 // GoString returns the string representation. 30580 // 30581 // API parameter values that are decorated as "sensitive" in the API will not 30582 // be included in the string output. The member name will be present, but the 30583 // value will be replaced with "sensitive". 30584 func (s PutBucketMetricsConfigurationInput) GoString() string { 30585 return s.String() 30586 } 30587 30588 // Validate inspects the fields of the type to determine if they are valid. 30589 func (s *PutBucketMetricsConfigurationInput) Validate() error { 30590 invalidParams := request.ErrInvalidParams{Context: "PutBucketMetricsConfigurationInput"} 30591 if s.Bucket == nil { 30592 invalidParams.Add(request.NewErrParamRequired("Bucket")) 30593 } 30594 if s.Bucket != nil && len(*s.Bucket) < 1 { 30595 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 30596 } 30597 if s.Id == nil { 30598 invalidParams.Add(request.NewErrParamRequired("Id")) 30599 } 30600 if s.MetricsConfiguration == nil { 30601 invalidParams.Add(request.NewErrParamRequired("MetricsConfiguration")) 30602 } 30603 if s.MetricsConfiguration != nil { 30604 if err := s.MetricsConfiguration.Validate(); err != nil { 30605 invalidParams.AddNested("MetricsConfiguration", err.(request.ErrInvalidParams)) 30606 } 30607 } 30608 30609 if invalidParams.Len() > 0 { 30610 return invalidParams 30611 } 30612 return nil 30613 } 30614 30615 // SetBucket sets the Bucket field's value. 30616 func (s *PutBucketMetricsConfigurationInput) SetBucket(v string) *PutBucketMetricsConfigurationInput { 30617 s.Bucket = &v 30618 return s 30619 } 30620 30621 func (s *PutBucketMetricsConfigurationInput) getBucket() (v string) { 30622 if s.Bucket == nil { 30623 return v 30624 } 30625 return *s.Bucket 30626 } 30627 30628 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 30629 func (s *PutBucketMetricsConfigurationInput) SetExpectedBucketOwner(v string) *PutBucketMetricsConfigurationInput { 30630 s.ExpectedBucketOwner = &v 30631 return s 30632 } 30633 30634 // SetId sets the Id field's value. 30635 func (s *PutBucketMetricsConfigurationInput) SetId(v string) *PutBucketMetricsConfigurationInput { 30636 s.Id = &v 30637 return s 30638 } 30639 30640 // SetMetricsConfiguration sets the MetricsConfiguration field's value. 30641 func (s *PutBucketMetricsConfigurationInput) SetMetricsConfiguration(v *MetricsConfiguration) *PutBucketMetricsConfigurationInput { 30642 s.MetricsConfiguration = v 30643 return s 30644 } 30645 30646 func (s *PutBucketMetricsConfigurationInput) getEndpointARN() (arn.Resource, error) { 30647 if s.Bucket == nil { 30648 return nil, fmt.Errorf("member Bucket is nil") 30649 } 30650 return parseEndpointARN(*s.Bucket) 30651 } 30652 30653 func (s *PutBucketMetricsConfigurationInput) hasEndpointARN() bool { 30654 if s.Bucket == nil { 30655 return false 30656 } 30657 return arn.IsARN(*s.Bucket) 30658 } 30659 30660 // updateArnableField updates the value of the input field that 30661 // takes an ARN as an input. This method is useful to backfill 30662 // the parsed resource name from ARN into the input member. 30663 // It returns a pointer to a modified copy of input and an error. 30664 // Note that original input is not modified. 30665 func (s PutBucketMetricsConfigurationInput) updateArnableField(v string) (interface{}, error) { 30666 if s.Bucket == nil { 30667 return nil, fmt.Errorf("member Bucket is nil") 30668 } 30669 s.Bucket = aws.String(v) 30670 return &s, nil 30671 } 30672 30673 type PutBucketMetricsConfigurationOutput struct { 30674 _ struct{} `type:"structure"` 30675 } 30676 30677 // String returns the string representation. 30678 // 30679 // API parameter values that are decorated as "sensitive" in the API will not 30680 // be included in the string output. The member name will be present, but the 30681 // value will be replaced with "sensitive". 30682 func (s PutBucketMetricsConfigurationOutput) String() string { 30683 return awsutil.Prettify(s) 30684 } 30685 30686 // GoString returns the string representation. 30687 // 30688 // API parameter values that are decorated as "sensitive" in the API will not 30689 // be included in the string output. The member name will be present, but the 30690 // value will be replaced with "sensitive". 30691 func (s PutBucketMetricsConfigurationOutput) GoString() string { 30692 return s.String() 30693 } 30694 30695 type PutBucketNotificationConfigurationInput struct { 30696 _ struct{} `locationName:"PutBucketNotificationConfigurationRequest" type:"structure" payload:"NotificationConfiguration"` 30697 30698 // The name of the bucket. 30699 // 30700 // Bucket is a required field 30701 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 30702 30703 // The account ID of the expected bucket owner. If the bucket is owned by a 30704 // different account, the request will fail with an HTTP 403 (Access Denied) 30705 // error. 30706 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 30707 30708 // A container for specifying the notification configuration of the bucket. 30709 // If this element is empty, notifications are turned off for the bucket. 30710 // 30711 // NotificationConfiguration is a required field 30712 NotificationConfiguration *NotificationConfiguration `locationName:"NotificationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 30713 } 30714 30715 // String returns the string representation. 30716 // 30717 // API parameter values that are decorated as "sensitive" in the API will not 30718 // be included in the string output. The member name will be present, but the 30719 // value will be replaced with "sensitive". 30720 func (s PutBucketNotificationConfigurationInput) String() string { 30721 return awsutil.Prettify(s) 30722 } 30723 30724 // GoString returns the string representation. 30725 // 30726 // API parameter values that are decorated as "sensitive" in the API will not 30727 // be included in the string output. The member name will be present, but the 30728 // value will be replaced with "sensitive". 30729 func (s PutBucketNotificationConfigurationInput) GoString() string { 30730 return s.String() 30731 } 30732 30733 // Validate inspects the fields of the type to determine if they are valid. 30734 func (s *PutBucketNotificationConfigurationInput) Validate() error { 30735 invalidParams := request.ErrInvalidParams{Context: "PutBucketNotificationConfigurationInput"} 30736 if s.Bucket == nil { 30737 invalidParams.Add(request.NewErrParamRequired("Bucket")) 30738 } 30739 if s.Bucket != nil && len(*s.Bucket) < 1 { 30740 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 30741 } 30742 if s.NotificationConfiguration == nil { 30743 invalidParams.Add(request.NewErrParamRequired("NotificationConfiguration")) 30744 } 30745 if s.NotificationConfiguration != nil { 30746 if err := s.NotificationConfiguration.Validate(); err != nil { 30747 invalidParams.AddNested("NotificationConfiguration", err.(request.ErrInvalidParams)) 30748 } 30749 } 30750 30751 if invalidParams.Len() > 0 { 30752 return invalidParams 30753 } 30754 return nil 30755 } 30756 30757 // SetBucket sets the Bucket field's value. 30758 func (s *PutBucketNotificationConfigurationInput) SetBucket(v string) *PutBucketNotificationConfigurationInput { 30759 s.Bucket = &v 30760 return s 30761 } 30762 30763 func (s *PutBucketNotificationConfigurationInput) getBucket() (v string) { 30764 if s.Bucket == nil { 30765 return v 30766 } 30767 return *s.Bucket 30768 } 30769 30770 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 30771 func (s *PutBucketNotificationConfigurationInput) SetExpectedBucketOwner(v string) *PutBucketNotificationConfigurationInput { 30772 s.ExpectedBucketOwner = &v 30773 return s 30774 } 30775 30776 // SetNotificationConfiguration sets the NotificationConfiguration field's value. 30777 func (s *PutBucketNotificationConfigurationInput) SetNotificationConfiguration(v *NotificationConfiguration) *PutBucketNotificationConfigurationInput { 30778 s.NotificationConfiguration = v 30779 return s 30780 } 30781 30782 func (s *PutBucketNotificationConfigurationInput) getEndpointARN() (arn.Resource, error) { 30783 if s.Bucket == nil { 30784 return nil, fmt.Errorf("member Bucket is nil") 30785 } 30786 return parseEndpointARN(*s.Bucket) 30787 } 30788 30789 func (s *PutBucketNotificationConfigurationInput) hasEndpointARN() bool { 30790 if s.Bucket == nil { 30791 return false 30792 } 30793 return arn.IsARN(*s.Bucket) 30794 } 30795 30796 // updateArnableField updates the value of the input field that 30797 // takes an ARN as an input. This method is useful to backfill 30798 // the parsed resource name from ARN into the input member. 30799 // It returns a pointer to a modified copy of input and an error. 30800 // Note that original input is not modified. 30801 func (s PutBucketNotificationConfigurationInput) updateArnableField(v string) (interface{}, error) { 30802 if s.Bucket == nil { 30803 return nil, fmt.Errorf("member Bucket is nil") 30804 } 30805 s.Bucket = aws.String(v) 30806 return &s, nil 30807 } 30808 30809 type PutBucketNotificationConfigurationOutput struct { 30810 _ struct{} `type:"structure"` 30811 } 30812 30813 // String returns the string representation. 30814 // 30815 // API parameter values that are decorated as "sensitive" in the API will not 30816 // be included in the string output. The member name will be present, but the 30817 // value will be replaced with "sensitive". 30818 func (s PutBucketNotificationConfigurationOutput) String() string { 30819 return awsutil.Prettify(s) 30820 } 30821 30822 // GoString returns the string representation. 30823 // 30824 // API parameter values that are decorated as "sensitive" in the API will not 30825 // be included in the string output. The member name will be present, but the 30826 // value will be replaced with "sensitive". 30827 func (s PutBucketNotificationConfigurationOutput) GoString() string { 30828 return s.String() 30829 } 30830 30831 type PutBucketNotificationInput struct { 30832 _ struct{} `locationName:"PutBucketNotificationRequest" type:"structure" payload:"NotificationConfiguration"` 30833 30834 // The name of the bucket. 30835 // 30836 // Bucket is a required field 30837 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 30838 30839 // The account ID of the expected bucket owner. If the bucket is owned by a 30840 // different account, the request will fail with an HTTP 403 (Access Denied) 30841 // error. 30842 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 30843 30844 // The container for the configuration. 30845 // 30846 // NotificationConfiguration is a required field 30847 NotificationConfiguration *NotificationConfigurationDeprecated `locationName:"NotificationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 30848 } 30849 30850 // String returns the string representation. 30851 // 30852 // API parameter values that are decorated as "sensitive" in the API will not 30853 // be included in the string output. The member name will be present, but the 30854 // value will be replaced with "sensitive". 30855 func (s PutBucketNotificationInput) String() string { 30856 return awsutil.Prettify(s) 30857 } 30858 30859 // GoString returns the string representation. 30860 // 30861 // API parameter values that are decorated as "sensitive" in the API will not 30862 // be included in the string output. The member name will be present, but the 30863 // value will be replaced with "sensitive". 30864 func (s PutBucketNotificationInput) GoString() string { 30865 return s.String() 30866 } 30867 30868 // Validate inspects the fields of the type to determine if they are valid. 30869 func (s *PutBucketNotificationInput) Validate() error { 30870 invalidParams := request.ErrInvalidParams{Context: "PutBucketNotificationInput"} 30871 if s.Bucket == nil { 30872 invalidParams.Add(request.NewErrParamRequired("Bucket")) 30873 } 30874 if s.Bucket != nil && len(*s.Bucket) < 1 { 30875 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 30876 } 30877 if s.NotificationConfiguration == nil { 30878 invalidParams.Add(request.NewErrParamRequired("NotificationConfiguration")) 30879 } 30880 30881 if invalidParams.Len() > 0 { 30882 return invalidParams 30883 } 30884 return nil 30885 } 30886 30887 // SetBucket sets the Bucket field's value. 30888 func (s *PutBucketNotificationInput) SetBucket(v string) *PutBucketNotificationInput { 30889 s.Bucket = &v 30890 return s 30891 } 30892 30893 func (s *PutBucketNotificationInput) getBucket() (v string) { 30894 if s.Bucket == nil { 30895 return v 30896 } 30897 return *s.Bucket 30898 } 30899 30900 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 30901 func (s *PutBucketNotificationInput) SetExpectedBucketOwner(v string) *PutBucketNotificationInput { 30902 s.ExpectedBucketOwner = &v 30903 return s 30904 } 30905 30906 // SetNotificationConfiguration sets the NotificationConfiguration field's value. 30907 func (s *PutBucketNotificationInput) SetNotificationConfiguration(v *NotificationConfigurationDeprecated) *PutBucketNotificationInput { 30908 s.NotificationConfiguration = v 30909 return s 30910 } 30911 30912 func (s *PutBucketNotificationInput) getEndpointARN() (arn.Resource, error) { 30913 if s.Bucket == nil { 30914 return nil, fmt.Errorf("member Bucket is nil") 30915 } 30916 return parseEndpointARN(*s.Bucket) 30917 } 30918 30919 func (s *PutBucketNotificationInput) hasEndpointARN() bool { 30920 if s.Bucket == nil { 30921 return false 30922 } 30923 return arn.IsARN(*s.Bucket) 30924 } 30925 30926 // updateArnableField updates the value of the input field that 30927 // takes an ARN as an input. This method is useful to backfill 30928 // the parsed resource name from ARN into the input member. 30929 // It returns a pointer to a modified copy of input and an error. 30930 // Note that original input is not modified. 30931 func (s PutBucketNotificationInput) updateArnableField(v string) (interface{}, error) { 30932 if s.Bucket == nil { 30933 return nil, fmt.Errorf("member Bucket is nil") 30934 } 30935 s.Bucket = aws.String(v) 30936 return &s, nil 30937 } 30938 30939 type PutBucketNotificationOutput struct { 30940 _ struct{} `type:"structure"` 30941 } 30942 30943 // String returns the string representation. 30944 // 30945 // API parameter values that are decorated as "sensitive" in the API will not 30946 // be included in the string output. The member name will be present, but the 30947 // value will be replaced with "sensitive". 30948 func (s PutBucketNotificationOutput) String() string { 30949 return awsutil.Prettify(s) 30950 } 30951 30952 // GoString returns the string representation. 30953 // 30954 // API parameter values that are decorated as "sensitive" in the API will not 30955 // be included in the string output. The member name will be present, but the 30956 // value will be replaced with "sensitive". 30957 func (s PutBucketNotificationOutput) GoString() string { 30958 return s.String() 30959 } 30960 30961 type PutBucketOwnershipControlsInput struct { 30962 _ struct{} `locationName:"PutBucketOwnershipControlsRequest" type:"structure" payload:"OwnershipControls"` 30963 30964 // The name of the Amazon S3 bucket whose OwnershipControls you want to set. 30965 // 30966 // Bucket is a required field 30967 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 30968 30969 // The account ID of the expected bucket owner. If the bucket is owned by a 30970 // different account, the request will fail with an HTTP 403 (Access Denied) 30971 // error. 30972 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 30973 30974 // The OwnershipControls (BucketOwnerPreferred or ObjectWriter) that you want 30975 // to apply to this Amazon S3 bucket. 30976 // 30977 // OwnershipControls is a required field 30978 OwnershipControls *OwnershipControls `locationName:"OwnershipControls" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 30979 } 30980 30981 // String returns the string representation. 30982 // 30983 // API parameter values that are decorated as "sensitive" in the API will not 30984 // be included in the string output. The member name will be present, but the 30985 // value will be replaced with "sensitive". 30986 func (s PutBucketOwnershipControlsInput) String() string { 30987 return awsutil.Prettify(s) 30988 } 30989 30990 // GoString returns the string representation. 30991 // 30992 // API parameter values that are decorated as "sensitive" in the API will not 30993 // be included in the string output. The member name will be present, but the 30994 // value will be replaced with "sensitive". 30995 func (s PutBucketOwnershipControlsInput) GoString() string { 30996 return s.String() 30997 } 30998 30999 // Validate inspects the fields of the type to determine if they are valid. 31000 func (s *PutBucketOwnershipControlsInput) Validate() error { 31001 invalidParams := request.ErrInvalidParams{Context: "PutBucketOwnershipControlsInput"} 31002 if s.Bucket == nil { 31003 invalidParams.Add(request.NewErrParamRequired("Bucket")) 31004 } 31005 if s.Bucket != nil && len(*s.Bucket) < 1 { 31006 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 31007 } 31008 if s.OwnershipControls == nil { 31009 invalidParams.Add(request.NewErrParamRequired("OwnershipControls")) 31010 } 31011 if s.OwnershipControls != nil { 31012 if err := s.OwnershipControls.Validate(); err != nil { 31013 invalidParams.AddNested("OwnershipControls", err.(request.ErrInvalidParams)) 31014 } 31015 } 31016 31017 if invalidParams.Len() > 0 { 31018 return invalidParams 31019 } 31020 return nil 31021 } 31022 31023 // SetBucket sets the Bucket field's value. 31024 func (s *PutBucketOwnershipControlsInput) SetBucket(v string) *PutBucketOwnershipControlsInput { 31025 s.Bucket = &v 31026 return s 31027 } 31028 31029 func (s *PutBucketOwnershipControlsInput) getBucket() (v string) { 31030 if s.Bucket == nil { 31031 return v 31032 } 31033 return *s.Bucket 31034 } 31035 31036 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 31037 func (s *PutBucketOwnershipControlsInput) SetExpectedBucketOwner(v string) *PutBucketOwnershipControlsInput { 31038 s.ExpectedBucketOwner = &v 31039 return s 31040 } 31041 31042 // SetOwnershipControls sets the OwnershipControls field's value. 31043 func (s *PutBucketOwnershipControlsInput) SetOwnershipControls(v *OwnershipControls) *PutBucketOwnershipControlsInput { 31044 s.OwnershipControls = v 31045 return s 31046 } 31047 31048 func (s *PutBucketOwnershipControlsInput) getEndpointARN() (arn.Resource, error) { 31049 if s.Bucket == nil { 31050 return nil, fmt.Errorf("member Bucket is nil") 31051 } 31052 return parseEndpointARN(*s.Bucket) 31053 } 31054 31055 func (s *PutBucketOwnershipControlsInput) hasEndpointARN() bool { 31056 if s.Bucket == nil { 31057 return false 31058 } 31059 return arn.IsARN(*s.Bucket) 31060 } 31061 31062 // updateArnableField updates the value of the input field that 31063 // takes an ARN as an input. This method is useful to backfill 31064 // the parsed resource name from ARN into the input member. 31065 // It returns a pointer to a modified copy of input and an error. 31066 // Note that original input is not modified. 31067 func (s PutBucketOwnershipControlsInput) updateArnableField(v string) (interface{}, error) { 31068 if s.Bucket == nil { 31069 return nil, fmt.Errorf("member Bucket is nil") 31070 } 31071 s.Bucket = aws.String(v) 31072 return &s, nil 31073 } 31074 31075 type PutBucketOwnershipControlsOutput struct { 31076 _ struct{} `type:"structure"` 31077 } 31078 31079 // String returns the string representation. 31080 // 31081 // API parameter values that are decorated as "sensitive" in the API will not 31082 // be included in the string output. The member name will be present, but the 31083 // value will be replaced with "sensitive". 31084 func (s PutBucketOwnershipControlsOutput) String() string { 31085 return awsutil.Prettify(s) 31086 } 31087 31088 // GoString returns the string representation. 31089 // 31090 // API parameter values that are decorated as "sensitive" in the API will not 31091 // be included in the string output. The member name will be present, but the 31092 // value will be replaced with "sensitive". 31093 func (s PutBucketOwnershipControlsOutput) GoString() string { 31094 return s.String() 31095 } 31096 31097 type PutBucketPolicyInput struct { 31098 _ struct{} `locationName:"PutBucketPolicyRequest" type:"structure" payload:"Policy"` 31099 31100 // The name of the bucket. 31101 // 31102 // Bucket is a required field 31103 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 31104 31105 // Set this parameter to true to confirm that you want to remove your permissions 31106 // to change this bucket policy in the future. 31107 ConfirmRemoveSelfBucketAccess *bool `location:"header" locationName:"x-amz-confirm-remove-self-bucket-access" type:"boolean"` 31108 31109 // The account ID of the expected bucket owner. If the bucket is owned by a 31110 // different account, the request will fail with an HTTP 403 (Access Denied) 31111 // error. 31112 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 31113 31114 // The bucket policy as a JSON document. 31115 // 31116 // Policy is a required field 31117 Policy *string `type:"string" required:"true"` 31118 } 31119 31120 // String returns the string representation. 31121 // 31122 // API parameter values that are decorated as "sensitive" in the API will not 31123 // be included in the string output. The member name will be present, but the 31124 // value will be replaced with "sensitive". 31125 func (s PutBucketPolicyInput) String() string { 31126 return awsutil.Prettify(s) 31127 } 31128 31129 // GoString returns the string representation. 31130 // 31131 // API parameter values that are decorated as "sensitive" in the API will not 31132 // be included in the string output. The member name will be present, but the 31133 // value will be replaced with "sensitive". 31134 func (s PutBucketPolicyInput) GoString() string { 31135 return s.String() 31136 } 31137 31138 // Validate inspects the fields of the type to determine if they are valid. 31139 func (s *PutBucketPolicyInput) Validate() error { 31140 invalidParams := request.ErrInvalidParams{Context: "PutBucketPolicyInput"} 31141 if s.Bucket == nil { 31142 invalidParams.Add(request.NewErrParamRequired("Bucket")) 31143 } 31144 if s.Bucket != nil && len(*s.Bucket) < 1 { 31145 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 31146 } 31147 if s.Policy == nil { 31148 invalidParams.Add(request.NewErrParamRequired("Policy")) 31149 } 31150 31151 if invalidParams.Len() > 0 { 31152 return invalidParams 31153 } 31154 return nil 31155 } 31156 31157 // SetBucket sets the Bucket field's value. 31158 func (s *PutBucketPolicyInput) SetBucket(v string) *PutBucketPolicyInput { 31159 s.Bucket = &v 31160 return s 31161 } 31162 31163 func (s *PutBucketPolicyInput) getBucket() (v string) { 31164 if s.Bucket == nil { 31165 return v 31166 } 31167 return *s.Bucket 31168 } 31169 31170 // SetConfirmRemoveSelfBucketAccess sets the ConfirmRemoveSelfBucketAccess field's value. 31171 func (s *PutBucketPolicyInput) SetConfirmRemoveSelfBucketAccess(v bool) *PutBucketPolicyInput { 31172 s.ConfirmRemoveSelfBucketAccess = &v 31173 return s 31174 } 31175 31176 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 31177 func (s *PutBucketPolicyInput) SetExpectedBucketOwner(v string) *PutBucketPolicyInput { 31178 s.ExpectedBucketOwner = &v 31179 return s 31180 } 31181 31182 // SetPolicy sets the Policy field's value. 31183 func (s *PutBucketPolicyInput) SetPolicy(v string) *PutBucketPolicyInput { 31184 s.Policy = &v 31185 return s 31186 } 31187 31188 func (s *PutBucketPolicyInput) getEndpointARN() (arn.Resource, error) { 31189 if s.Bucket == nil { 31190 return nil, fmt.Errorf("member Bucket is nil") 31191 } 31192 return parseEndpointARN(*s.Bucket) 31193 } 31194 31195 func (s *PutBucketPolicyInput) hasEndpointARN() bool { 31196 if s.Bucket == nil { 31197 return false 31198 } 31199 return arn.IsARN(*s.Bucket) 31200 } 31201 31202 // updateArnableField updates the value of the input field that 31203 // takes an ARN as an input. This method is useful to backfill 31204 // the parsed resource name from ARN into the input member. 31205 // It returns a pointer to a modified copy of input and an error. 31206 // Note that original input is not modified. 31207 func (s PutBucketPolicyInput) updateArnableField(v string) (interface{}, error) { 31208 if s.Bucket == nil { 31209 return nil, fmt.Errorf("member Bucket is nil") 31210 } 31211 s.Bucket = aws.String(v) 31212 return &s, nil 31213 } 31214 31215 type PutBucketPolicyOutput struct { 31216 _ struct{} `type:"structure"` 31217 } 31218 31219 // String returns the string representation. 31220 // 31221 // API parameter values that are decorated as "sensitive" in the API will not 31222 // be included in the string output. The member name will be present, but the 31223 // value will be replaced with "sensitive". 31224 func (s PutBucketPolicyOutput) String() string { 31225 return awsutil.Prettify(s) 31226 } 31227 31228 // GoString returns the string representation. 31229 // 31230 // API parameter values that are decorated as "sensitive" in the API will not 31231 // be included in the string output. The member name will be present, but the 31232 // value will be replaced with "sensitive". 31233 func (s PutBucketPolicyOutput) GoString() string { 31234 return s.String() 31235 } 31236 31237 type PutBucketReplicationInput struct { 31238 _ struct{} `locationName:"PutBucketReplicationRequest" type:"structure" payload:"ReplicationConfiguration"` 31239 31240 // The name of the bucket 31241 // 31242 // Bucket is a required field 31243 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 31244 31245 // The account ID of the expected bucket owner. If the bucket is owned by a 31246 // different account, the request will fail with an HTTP 403 (Access Denied) 31247 // error. 31248 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 31249 31250 // A container for replication rules. You can add up to 1,000 rules. The maximum 31251 // size of a replication configuration is 2 MB. 31252 // 31253 // ReplicationConfiguration is a required field 31254 ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 31255 31256 // A token to allow Object Lock to be enabled for an existing bucket. 31257 Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"` 31258 } 31259 31260 // String returns the string representation. 31261 // 31262 // API parameter values that are decorated as "sensitive" in the API will not 31263 // be included in the string output. The member name will be present, but the 31264 // value will be replaced with "sensitive". 31265 func (s PutBucketReplicationInput) String() string { 31266 return awsutil.Prettify(s) 31267 } 31268 31269 // GoString returns the string representation. 31270 // 31271 // API parameter values that are decorated as "sensitive" in the API will not 31272 // be included in the string output. The member name will be present, but the 31273 // value will be replaced with "sensitive". 31274 func (s PutBucketReplicationInput) GoString() string { 31275 return s.String() 31276 } 31277 31278 // Validate inspects the fields of the type to determine if they are valid. 31279 func (s *PutBucketReplicationInput) Validate() error { 31280 invalidParams := request.ErrInvalidParams{Context: "PutBucketReplicationInput"} 31281 if s.Bucket == nil { 31282 invalidParams.Add(request.NewErrParamRequired("Bucket")) 31283 } 31284 if s.Bucket != nil && len(*s.Bucket) < 1 { 31285 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 31286 } 31287 if s.ReplicationConfiguration == nil { 31288 invalidParams.Add(request.NewErrParamRequired("ReplicationConfiguration")) 31289 } 31290 if s.ReplicationConfiguration != nil { 31291 if err := s.ReplicationConfiguration.Validate(); err != nil { 31292 invalidParams.AddNested("ReplicationConfiguration", err.(request.ErrInvalidParams)) 31293 } 31294 } 31295 31296 if invalidParams.Len() > 0 { 31297 return invalidParams 31298 } 31299 return nil 31300 } 31301 31302 // SetBucket sets the Bucket field's value. 31303 func (s *PutBucketReplicationInput) SetBucket(v string) *PutBucketReplicationInput { 31304 s.Bucket = &v 31305 return s 31306 } 31307 31308 func (s *PutBucketReplicationInput) getBucket() (v string) { 31309 if s.Bucket == nil { 31310 return v 31311 } 31312 return *s.Bucket 31313 } 31314 31315 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 31316 func (s *PutBucketReplicationInput) SetExpectedBucketOwner(v string) *PutBucketReplicationInput { 31317 s.ExpectedBucketOwner = &v 31318 return s 31319 } 31320 31321 // SetReplicationConfiguration sets the ReplicationConfiguration field's value. 31322 func (s *PutBucketReplicationInput) SetReplicationConfiguration(v *ReplicationConfiguration) *PutBucketReplicationInput { 31323 s.ReplicationConfiguration = v 31324 return s 31325 } 31326 31327 // SetToken sets the Token field's value. 31328 func (s *PutBucketReplicationInput) SetToken(v string) *PutBucketReplicationInput { 31329 s.Token = &v 31330 return s 31331 } 31332 31333 func (s *PutBucketReplicationInput) getEndpointARN() (arn.Resource, error) { 31334 if s.Bucket == nil { 31335 return nil, fmt.Errorf("member Bucket is nil") 31336 } 31337 return parseEndpointARN(*s.Bucket) 31338 } 31339 31340 func (s *PutBucketReplicationInput) hasEndpointARN() bool { 31341 if s.Bucket == nil { 31342 return false 31343 } 31344 return arn.IsARN(*s.Bucket) 31345 } 31346 31347 // updateArnableField updates the value of the input field that 31348 // takes an ARN as an input. This method is useful to backfill 31349 // the parsed resource name from ARN into the input member. 31350 // It returns a pointer to a modified copy of input and an error. 31351 // Note that original input is not modified. 31352 func (s PutBucketReplicationInput) updateArnableField(v string) (interface{}, error) { 31353 if s.Bucket == nil { 31354 return nil, fmt.Errorf("member Bucket is nil") 31355 } 31356 s.Bucket = aws.String(v) 31357 return &s, nil 31358 } 31359 31360 type PutBucketReplicationOutput struct { 31361 _ struct{} `type:"structure"` 31362 } 31363 31364 // String returns the string representation. 31365 // 31366 // API parameter values that are decorated as "sensitive" in the API will not 31367 // be included in the string output. The member name will be present, but the 31368 // value will be replaced with "sensitive". 31369 func (s PutBucketReplicationOutput) String() string { 31370 return awsutil.Prettify(s) 31371 } 31372 31373 // GoString returns the string representation. 31374 // 31375 // API parameter values that are decorated as "sensitive" in the API will not 31376 // be included in the string output. The member name will be present, but the 31377 // value will be replaced with "sensitive". 31378 func (s PutBucketReplicationOutput) GoString() string { 31379 return s.String() 31380 } 31381 31382 type PutBucketRequestPaymentInput struct { 31383 _ struct{} `locationName:"PutBucketRequestPaymentRequest" type:"structure" payload:"RequestPaymentConfiguration"` 31384 31385 // The bucket name. 31386 // 31387 // Bucket is a required field 31388 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 31389 31390 // The account ID of the expected bucket owner. If the bucket is owned by a 31391 // different account, the request will fail with an HTTP 403 (Access Denied) 31392 // error. 31393 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 31394 31395 // Container for Payer. 31396 // 31397 // RequestPaymentConfiguration is a required field 31398 RequestPaymentConfiguration *RequestPaymentConfiguration `locationName:"RequestPaymentConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 31399 } 31400 31401 // String returns the string representation. 31402 // 31403 // API parameter values that are decorated as "sensitive" in the API will not 31404 // be included in the string output. The member name will be present, but the 31405 // value will be replaced with "sensitive". 31406 func (s PutBucketRequestPaymentInput) String() string { 31407 return awsutil.Prettify(s) 31408 } 31409 31410 // GoString returns the string representation. 31411 // 31412 // API parameter values that are decorated as "sensitive" in the API will not 31413 // be included in the string output. The member name will be present, but the 31414 // value will be replaced with "sensitive". 31415 func (s PutBucketRequestPaymentInput) GoString() string { 31416 return s.String() 31417 } 31418 31419 // Validate inspects the fields of the type to determine if they are valid. 31420 func (s *PutBucketRequestPaymentInput) Validate() error { 31421 invalidParams := request.ErrInvalidParams{Context: "PutBucketRequestPaymentInput"} 31422 if s.Bucket == nil { 31423 invalidParams.Add(request.NewErrParamRequired("Bucket")) 31424 } 31425 if s.Bucket != nil && len(*s.Bucket) < 1 { 31426 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 31427 } 31428 if s.RequestPaymentConfiguration == nil { 31429 invalidParams.Add(request.NewErrParamRequired("RequestPaymentConfiguration")) 31430 } 31431 if s.RequestPaymentConfiguration != nil { 31432 if err := s.RequestPaymentConfiguration.Validate(); err != nil { 31433 invalidParams.AddNested("RequestPaymentConfiguration", err.(request.ErrInvalidParams)) 31434 } 31435 } 31436 31437 if invalidParams.Len() > 0 { 31438 return invalidParams 31439 } 31440 return nil 31441 } 31442 31443 // SetBucket sets the Bucket field's value. 31444 func (s *PutBucketRequestPaymentInput) SetBucket(v string) *PutBucketRequestPaymentInput { 31445 s.Bucket = &v 31446 return s 31447 } 31448 31449 func (s *PutBucketRequestPaymentInput) getBucket() (v string) { 31450 if s.Bucket == nil { 31451 return v 31452 } 31453 return *s.Bucket 31454 } 31455 31456 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 31457 func (s *PutBucketRequestPaymentInput) SetExpectedBucketOwner(v string) *PutBucketRequestPaymentInput { 31458 s.ExpectedBucketOwner = &v 31459 return s 31460 } 31461 31462 // SetRequestPaymentConfiguration sets the RequestPaymentConfiguration field's value. 31463 func (s *PutBucketRequestPaymentInput) SetRequestPaymentConfiguration(v *RequestPaymentConfiguration) *PutBucketRequestPaymentInput { 31464 s.RequestPaymentConfiguration = v 31465 return s 31466 } 31467 31468 func (s *PutBucketRequestPaymentInput) getEndpointARN() (arn.Resource, error) { 31469 if s.Bucket == nil { 31470 return nil, fmt.Errorf("member Bucket is nil") 31471 } 31472 return parseEndpointARN(*s.Bucket) 31473 } 31474 31475 func (s *PutBucketRequestPaymentInput) hasEndpointARN() bool { 31476 if s.Bucket == nil { 31477 return false 31478 } 31479 return arn.IsARN(*s.Bucket) 31480 } 31481 31482 // updateArnableField updates the value of the input field that 31483 // takes an ARN as an input. This method is useful to backfill 31484 // the parsed resource name from ARN into the input member. 31485 // It returns a pointer to a modified copy of input and an error. 31486 // Note that original input is not modified. 31487 func (s PutBucketRequestPaymentInput) updateArnableField(v string) (interface{}, error) { 31488 if s.Bucket == nil { 31489 return nil, fmt.Errorf("member Bucket is nil") 31490 } 31491 s.Bucket = aws.String(v) 31492 return &s, nil 31493 } 31494 31495 type PutBucketRequestPaymentOutput struct { 31496 _ struct{} `type:"structure"` 31497 } 31498 31499 // String returns the string representation. 31500 // 31501 // API parameter values that are decorated as "sensitive" in the API will not 31502 // be included in the string output. The member name will be present, but the 31503 // value will be replaced with "sensitive". 31504 func (s PutBucketRequestPaymentOutput) String() string { 31505 return awsutil.Prettify(s) 31506 } 31507 31508 // GoString returns the string representation. 31509 // 31510 // API parameter values that are decorated as "sensitive" in the API will not 31511 // be included in the string output. The member name will be present, but the 31512 // value will be replaced with "sensitive". 31513 func (s PutBucketRequestPaymentOutput) GoString() string { 31514 return s.String() 31515 } 31516 31517 type PutBucketTaggingInput struct { 31518 _ struct{} `locationName:"PutBucketTaggingRequest" type:"structure" payload:"Tagging"` 31519 31520 // The bucket name. 31521 // 31522 // Bucket is a required field 31523 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 31524 31525 // The account ID of the expected bucket owner. If the bucket is owned by a 31526 // different account, the request will fail with an HTTP 403 (Access Denied) 31527 // error. 31528 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 31529 31530 // Container for the TagSet and Tag elements. 31531 // 31532 // Tagging is a required field 31533 Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 31534 } 31535 31536 // String returns the string representation. 31537 // 31538 // API parameter values that are decorated as "sensitive" in the API will not 31539 // be included in the string output. The member name will be present, but the 31540 // value will be replaced with "sensitive". 31541 func (s PutBucketTaggingInput) String() string { 31542 return awsutil.Prettify(s) 31543 } 31544 31545 // GoString returns the string representation. 31546 // 31547 // API parameter values that are decorated as "sensitive" in the API will not 31548 // be included in the string output. The member name will be present, but the 31549 // value will be replaced with "sensitive". 31550 func (s PutBucketTaggingInput) GoString() string { 31551 return s.String() 31552 } 31553 31554 // Validate inspects the fields of the type to determine if they are valid. 31555 func (s *PutBucketTaggingInput) Validate() error { 31556 invalidParams := request.ErrInvalidParams{Context: "PutBucketTaggingInput"} 31557 if s.Bucket == nil { 31558 invalidParams.Add(request.NewErrParamRequired("Bucket")) 31559 } 31560 if s.Bucket != nil && len(*s.Bucket) < 1 { 31561 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 31562 } 31563 if s.Tagging == nil { 31564 invalidParams.Add(request.NewErrParamRequired("Tagging")) 31565 } 31566 if s.Tagging != nil { 31567 if err := s.Tagging.Validate(); err != nil { 31568 invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams)) 31569 } 31570 } 31571 31572 if invalidParams.Len() > 0 { 31573 return invalidParams 31574 } 31575 return nil 31576 } 31577 31578 // SetBucket sets the Bucket field's value. 31579 func (s *PutBucketTaggingInput) SetBucket(v string) *PutBucketTaggingInput { 31580 s.Bucket = &v 31581 return s 31582 } 31583 31584 func (s *PutBucketTaggingInput) getBucket() (v string) { 31585 if s.Bucket == nil { 31586 return v 31587 } 31588 return *s.Bucket 31589 } 31590 31591 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 31592 func (s *PutBucketTaggingInput) SetExpectedBucketOwner(v string) *PutBucketTaggingInput { 31593 s.ExpectedBucketOwner = &v 31594 return s 31595 } 31596 31597 // SetTagging sets the Tagging field's value. 31598 func (s *PutBucketTaggingInput) SetTagging(v *Tagging) *PutBucketTaggingInput { 31599 s.Tagging = v 31600 return s 31601 } 31602 31603 func (s *PutBucketTaggingInput) getEndpointARN() (arn.Resource, error) { 31604 if s.Bucket == nil { 31605 return nil, fmt.Errorf("member Bucket is nil") 31606 } 31607 return parseEndpointARN(*s.Bucket) 31608 } 31609 31610 func (s *PutBucketTaggingInput) hasEndpointARN() bool { 31611 if s.Bucket == nil { 31612 return false 31613 } 31614 return arn.IsARN(*s.Bucket) 31615 } 31616 31617 // updateArnableField updates the value of the input field that 31618 // takes an ARN as an input. This method is useful to backfill 31619 // the parsed resource name from ARN into the input member. 31620 // It returns a pointer to a modified copy of input and an error. 31621 // Note that original input is not modified. 31622 func (s PutBucketTaggingInput) updateArnableField(v string) (interface{}, error) { 31623 if s.Bucket == nil { 31624 return nil, fmt.Errorf("member Bucket is nil") 31625 } 31626 s.Bucket = aws.String(v) 31627 return &s, nil 31628 } 31629 31630 type PutBucketTaggingOutput struct { 31631 _ struct{} `type:"structure"` 31632 } 31633 31634 // String returns the string representation. 31635 // 31636 // API parameter values that are decorated as "sensitive" in the API will not 31637 // be included in the string output. The member name will be present, but the 31638 // value will be replaced with "sensitive". 31639 func (s PutBucketTaggingOutput) String() string { 31640 return awsutil.Prettify(s) 31641 } 31642 31643 // GoString returns the string representation. 31644 // 31645 // API parameter values that are decorated as "sensitive" in the API will not 31646 // be included in the string output. The member name will be present, but the 31647 // value will be replaced with "sensitive". 31648 func (s PutBucketTaggingOutput) GoString() string { 31649 return s.String() 31650 } 31651 31652 type PutBucketVersioningInput struct { 31653 _ struct{} `locationName:"PutBucketVersioningRequest" type:"structure" payload:"VersioningConfiguration"` 31654 31655 // The bucket name. 31656 // 31657 // Bucket is a required field 31658 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 31659 31660 // The account ID of the expected bucket owner. If the bucket is owned by a 31661 // different account, the request will fail with an HTTP 403 (Access Denied) 31662 // error. 31663 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 31664 31665 // The concatenation of the authentication device's serial number, a space, 31666 // and the value that is displayed on your authentication device. 31667 MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` 31668 31669 // Container for setting the versioning state. 31670 // 31671 // VersioningConfiguration is a required field 31672 VersioningConfiguration *VersioningConfiguration `locationName:"VersioningConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 31673 } 31674 31675 // String returns the string representation. 31676 // 31677 // API parameter values that are decorated as "sensitive" in the API will not 31678 // be included in the string output. The member name will be present, but the 31679 // value will be replaced with "sensitive". 31680 func (s PutBucketVersioningInput) String() string { 31681 return awsutil.Prettify(s) 31682 } 31683 31684 // GoString returns the string representation. 31685 // 31686 // API parameter values that are decorated as "sensitive" in the API will not 31687 // be included in the string output. The member name will be present, but the 31688 // value will be replaced with "sensitive". 31689 func (s PutBucketVersioningInput) GoString() string { 31690 return s.String() 31691 } 31692 31693 // Validate inspects the fields of the type to determine if they are valid. 31694 func (s *PutBucketVersioningInput) Validate() error { 31695 invalidParams := request.ErrInvalidParams{Context: "PutBucketVersioningInput"} 31696 if s.Bucket == nil { 31697 invalidParams.Add(request.NewErrParamRequired("Bucket")) 31698 } 31699 if s.Bucket != nil && len(*s.Bucket) < 1 { 31700 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 31701 } 31702 if s.VersioningConfiguration == nil { 31703 invalidParams.Add(request.NewErrParamRequired("VersioningConfiguration")) 31704 } 31705 31706 if invalidParams.Len() > 0 { 31707 return invalidParams 31708 } 31709 return nil 31710 } 31711 31712 // SetBucket sets the Bucket field's value. 31713 func (s *PutBucketVersioningInput) SetBucket(v string) *PutBucketVersioningInput { 31714 s.Bucket = &v 31715 return s 31716 } 31717 31718 func (s *PutBucketVersioningInput) getBucket() (v string) { 31719 if s.Bucket == nil { 31720 return v 31721 } 31722 return *s.Bucket 31723 } 31724 31725 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 31726 func (s *PutBucketVersioningInput) SetExpectedBucketOwner(v string) *PutBucketVersioningInput { 31727 s.ExpectedBucketOwner = &v 31728 return s 31729 } 31730 31731 // SetMFA sets the MFA field's value. 31732 func (s *PutBucketVersioningInput) SetMFA(v string) *PutBucketVersioningInput { 31733 s.MFA = &v 31734 return s 31735 } 31736 31737 // SetVersioningConfiguration sets the VersioningConfiguration field's value. 31738 func (s *PutBucketVersioningInput) SetVersioningConfiguration(v *VersioningConfiguration) *PutBucketVersioningInput { 31739 s.VersioningConfiguration = v 31740 return s 31741 } 31742 31743 func (s *PutBucketVersioningInput) getEndpointARN() (arn.Resource, error) { 31744 if s.Bucket == nil { 31745 return nil, fmt.Errorf("member Bucket is nil") 31746 } 31747 return parseEndpointARN(*s.Bucket) 31748 } 31749 31750 func (s *PutBucketVersioningInput) hasEndpointARN() bool { 31751 if s.Bucket == nil { 31752 return false 31753 } 31754 return arn.IsARN(*s.Bucket) 31755 } 31756 31757 // updateArnableField updates the value of the input field that 31758 // takes an ARN as an input. This method is useful to backfill 31759 // the parsed resource name from ARN into the input member. 31760 // It returns a pointer to a modified copy of input and an error. 31761 // Note that original input is not modified. 31762 func (s PutBucketVersioningInput) updateArnableField(v string) (interface{}, error) { 31763 if s.Bucket == nil { 31764 return nil, fmt.Errorf("member Bucket is nil") 31765 } 31766 s.Bucket = aws.String(v) 31767 return &s, nil 31768 } 31769 31770 type PutBucketVersioningOutput struct { 31771 _ struct{} `type:"structure"` 31772 } 31773 31774 // String returns the string representation. 31775 // 31776 // API parameter values that are decorated as "sensitive" in the API will not 31777 // be included in the string output. The member name will be present, but the 31778 // value will be replaced with "sensitive". 31779 func (s PutBucketVersioningOutput) String() string { 31780 return awsutil.Prettify(s) 31781 } 31782 31783 // GoString returns the string representation. 31784 // 31785 // API parameter values that are decorated as "sensitive" in the API will not 31786 // be included in the string output. The member name will be present, but the 31787 // value will be replaced with "sensitive". 31788 func (s PutBucketVersioningOutput) GoString() string { 31789 return s.String() 31790 } 31791 31792 type PutBucketWebsiteInput struct { 31793 _ struct{} `locationName:"PutBucketWebsiteRequest" type:"structure" payload:"WebsiteConfiguration"` 31794 31795 // The bucket name. 31796 // 31797 // Bucket is a required field 31798 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 31799 31800 // The account ID of the expected bucket owner. If the bucket is owned by a 31801 // different account, the request will fail with an HTTP 403 (Access Denied) 31802 // error. 31803 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 31804 31805 // Container for the request. 31806 // 31807 // WebsiteConfiguration is a required field 31808 WebsiteConfiguration *WebsiteConfiguration `locationName:"WebsiteConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 31809 } 31810 31811 // String returns the string representation. 31812 // 31813 // API parameter values that are decorated as "sensitive" in the API will not 31814 // be included in the string output. The member name will be present, but the 31815 // value will be replaced with "sensitive". 31816 func (s PutBucketWebsiteInput) String() string { 31817 return awsutil.Prettify(s) 31818 } 31819 31820 // GoString returns the string representation. 31821 // 31822 // API parameter values that are decorated as "sensitive" in the API will not 31823 // be included in the string output. The member name will be present, but the 31824 // value will be replaced with "sensitive". 31825 func (s PutBucketWebsiteInput) GoString() string { 31826 return s.String() 31827 } 31828 31829 // Validate inspects the fields of the type to determine if they are valid. 31830 func (s *PutBucketWebsiteInput) Validate() error { 31831 invalidParams := request.ErrInvalidParams{Context: "PutBucketWebsiteInput"} 31832 if s.Bucket == nil { 31833 invalidParams.Add(request.NewErrParamRequired("Bucket")) 31834 } 31835 if s.Bucket != nil && len(*s.Bucket) < 1 { 31836 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 31837 } 31838 if s.WebsiteConfiguration == nil { 31839 invalidParams.Add(request.NewErrParamRequired("WebsiteConfiguration")) 31840 } 31841 if s.WebsiteConfiguration != nil { 31842 if err := s.WebsiteConfiguration.Validate(); err != nil { 31843 invalidParams.AddNested("WebsiteConfiguration", err.(request.ErrInvalidParams)) 31844 } 31845 } 31846 31847 if invalidParams.Len() > 0 { 31848 return invalidParams 31849 } 31850 return nil 31851 } 31852 31853 // SetBucket sets the Bucket field's value. 31854 func (s *PutBucketWebsiteInput) SetBucket(v string) *PutBucketWebsiteInput { 31855 s.Bucket = &v 31856 return s 31857 } 31858 31859 func (s *PutBucketWebsiteInput) getBucket() (v string) { 31860 if s.Bucket == nil { 31861 return v 31862 } 31863 return *s.Bucket 31864 } 31865 31866 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 31867 func (s *PutBucketWebsiteInput) SetExpectedBucketOwner(v string) *PutBucketWebsiteInput { 31868 s.ExpectedBucketOwner = &v 31869 return s 31870 } 31871 31872 // SetWebsiteConfiguration sets the WebsiteConfiguration field's value. 31873 func (s *PutBucketWebsiteInput) SetWebsiteConfiguration(v *WebsiteConfiguration) *PutBucketWebsiteInput { 31874 s.WebsiteConfiguration = v 31875 return s 31876 } 31877 31878 func (s *PutBucketWebsiteInput) getEndpointARN() (arn.Resource, error) { 31879 if s.Bucket == nil { 31880 return nil, fmt.Errorf("member Bucket is nil") 31881 } 31882 return parseEndpointARN(*s.Bucket) 31883 } 31884 31885 func (s *PutBucketWebsiteInput) hasEndpointARN() bool { 31886 if s.Bucket == nil { 31887 return false 31888 } 31889 return arn.IsARN(*s.Bucket) 31890 } 31891 31892 // updateArnableField updates the value of the input field that 31893 // takes an ARN as an input. This method is useful to backfill 31894 // the parsed resource name from ARN into the input member. 31895 // It returns a pointer to a modified copy of input and an error. 31896 // Note that original input is not modified. 31897 func (s PutBucketWebsiteInput) updateArnableField(v string) (interface{}, error) { 31898 if s.Bucket == nil { 31899 return nil, fmt.Errorf("member Bucket is nil") 31900 } 31901 s.Bucket = aws.String(v) 31902 return &s, nil 31903 } 31904 31905 type PutBucketWebsiteOutput struct { 31906 _ struct{} `type:"structure"` 31907 } 31908 31909 // String returns the string representation. 31910 // 31911 // API parameter values that are decorated as "sensitive" in the API will not 31912 // be included in the string output. The member name will be present, but the 31913 // value will be replaced with "sensitive". 31914 func (s PutBucketWebsiteOutput) String() string { 31915 return awsutil.Prettify(s) 31916 } 31917 31918 // GoString returns the string representation. 31919 // 31920 // API parameter values that are decorated as "sensitive" in the API will not 31921 // be included in the string output. The member name will be present, but the 31922 // value will be replaced with "sensitive". 31923 func (s PutBucketWebsiteOutput) GoString() string { 31924 return s.String() 31925 } 31926 31927 type PutObjectAclInput struct { 31928 _ struct{} `locationName:"PutObjectAclRequest" type:"structure" payload:"AccessControlPolicy"` 31929 31930 // The canned ACL to apply to the object. For more information, see Canned ACL 31931 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). 31932 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` 31933 31934 // Contains the elements that set the ACL permissions for an object per grantee. 31935 AccessControlPolicy *AccessControlPolicy `locationName:"AccessControlPolicy" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 31936 31937 // The bucket name that contains the object to which you want to attach the 31938 // ACL. 31939 // 31940 // When using this action with an access point, you must direct requests to 31941 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 31942 // When using this action with an access point through the Amazon Web Services 31943 // SDKs, you provide the access point ARN in place of the bucket name. For more 31944 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 31945 // in the Amazon S3 User Guide. 31946 // 31947 // Bucket is a required field 31948 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 31949 31950 // The account ID of the expected bucket owner. If the bucket is owned by a 31951 // different account, the request will fail with an HTTP 403 (Access Denied) 31952 // error. 31953 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 31954 31955 // Allows grantee the read, write, read ACP, and write ACP permissions on the 31956 // bucket. 31957 // 31958 // This action is not supported by Amazon S3 on Outposts. 31959 GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` 31960 31961 // Allows grantee to list the objects in the bucket. 31962 // 31963 // This action is not supported by Amazon S3 on Outposts. 31964 GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` 31965 31966 // Allows grantee to read the bucket ACL. 31967 // 31968 // This action is not supported by Amazon S3 on Outposts. 31969 GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` 31970 31971 // Allows grantee to create new objects in the bucket. 31972 // 31973 // For the bucket and object owners of existing objects, also allows deletions 31974 // and overwrites of those objects. 31975 GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` 31976 31977 // Allows grantee to write the ACL for the applicable bucket. 31978 // 31979 // This action is not supported by Amazon S3 on Outposts. 31980 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` 31981 31982 // Key for which the PUT action was initiated. 31983 // 31984 // When using this action with an access point, you must direct requests to 31985 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 31986 // When using this action with an access point through the Amazon Web Services 31987 // SDKs, you provide the access point ARN in place of the bucket name. For more 31988 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 31989 // in the Amazon S3 User Guide. 31990 // 31991 // When using this action with Amazon S3 on Outposts, you must direct requests 31992 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 31993 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 31994 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 31995 // you provide the Outposts bucket ARN in place of the bucket name. For more 31996 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 31997 // in the Amazon S3 User Guide. 31998 // 31999 // Key is a required field 32000 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 32001 32002 // Confirms that the requester knows that they will be charged for the request. 32003 // Bucket owners need not specify this parameter in their requests. For information 32004 // about downloading objects from requester pays buckets, see Downloading Objects 32005 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 32006 // in the Amazon S3 User Guide. 32007 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 32008 32009 // VersionId used to reference a specific version of the object. 32010 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 32011 } 32012 32013 // String returns the string representation. 32014 // 32015 // API parameter values that are decorated as "sensitive" in the API will not 32016 // be included in the string output. The member name will be present, but the 32017 // value will be replaced with "sensitive". 32018 func (s PutObjectAclInput) String() string { 32019 return awsutil.Prettify(s) 32020 } 32021 32022 // GoString returns the string representation. 32023 // 32024 // API parameter values that are decorated as "sensitive" in the API will not 32025 // be included in the string output. The member name will be present, but the 32026 // value will be replaced with "sensitive". 32027 func (s PutObjectAclInput) GoString() string { 32028 return s.String() 32029 } 32030 32031 // Validate inspects the fields of the type to determine if they are valid. 32032 func (s *PutObjectAclInput) Validate() error { 32033 invalidParams := request.ErrInvalidParams{Context: "PutObjectAclInput"} 32034 if s.Bucket == nil { 32035 invalidParams.Add(request.NewErrParamRequired("Bucket")) 32036 } 32037 if s.Bucket != nil && len(*s.Bucket) < 1 { 32038 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 32039 } 32040 if s.Key == nil { 32041 invalidParams.Add(request.NewErrParamRequired("Key")) 32042 } 32043 if s.Key != nil && len(*s.Key) < 1 { 32044 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 32045 } 32046 if s.AccessControlPolicy != nil { 32047 if err := s.AccessControlPolicy.Validate(); err != nil { 32048 invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams)) 32049 } 32050 } 32051 32052 if invalidParams.Len() > 0 { 32053 return invalidParams 32054 } 32055 return nil 32056 } 32057 32058 // SetACL sets the ACL field's value. 32059 func (s *PutObjectAclInput) SetACL(v string) *PutObjectAclInput { 32060 s.ACL = &v 32061 return s 32062 } 32063 32064 // SetAccessControlPolicy sets the AccessControlPolicy field's value. 32065 func (s *PutObjectAclInput) SetAccessControlPolicy(v *AccessControlPolicy) *PutObjectAclInput { 32066 s.AccessControlPolicy = v 32067 return s 32068 } 32069 32070 // SetBucket sets the Bucket field's value. 32071 func (s *PutObjectAclInput) SetBucket(v string) *PutObjectAclInput { 32072 s.Bucket = &v 32073 return s 32074 } 32075 32076 func (s *PutObjectAclInput) getBucket() (v string) { 32077 if s.Bucket == nil { 32078 return v 32079 } 32080 return *s.Bucket 32081 } 32082 32083 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 32084 func (s *PutObjectAclInput) SetExpectedBucketOwner(v string) *PutObjectAclInput { 32085 s.ExpectedBucketOwner = &v 32086 return s 32087 } 32088 32089 // SetGrantFullControl sets the GrantFullControl field's value. 32090 func (s *PutObjectAclInput) SetGrantFullControl(v string) *PutObjectAclInput { 32091 s.GrantFullControl = &v 32092 return s 32093 } 32094 32095 // SetGrantRead sets the GrantRead field's value. 32096 func (s *PutObjectAclInput) SetGrantRead(v string) *PutObjectAclInput { 32097 s.GrantRead = &v 32098 return s 32099 } 32100 32101 // SetGrantReadACP sets the GrantReadACP field's value. 32102 func (s *PutObjectAclInput) SetGrantReadACP(v string) *PutObjectAclInput { 32103 s.GrantReadACP = &v 32104 return s 32105 } 32106 32107 // SetGrantWrite sets the GrantWrite field's value. 32108 func (s *PutObjectAclInput) SetGrantWrite(v string) *PutObjectAclInput { 32109 s.GrantWrite = &v 32110 return s 32111 } 32112 32113 // SetGrantWriteACP sets the GrantWriteACP field's value. 32114 func (s *PutObjectAclInput) SetGrantWriteACP(v string) *PutObjectAclInput { 32115 s.GrantWriteACP = &v 32116 return s 32117 } 32118 32119 // SetKey sets the Key field's value. 32120 func (s *PutObjectAclInput) SetKey(v string) *PutObjectAclInput { 32121 s.Key = &v 32122 return s 32123 } 32124 32125 // SetRequestPayer sets the RequestPayer field's value. 32126 func (s *PutObjectAclInput) SetRequestPayer(v string) *PutObjectAclInput { 32127 s.RequestPayer = &v 32128 return s 32129 } 32130 32131 // SetVersionId sets the VersionId field's value. 32132 func (s *PutObjectAclInput) SetVersionId(v string) *PutObjectAclInput { 32133 s.VersionId = &v 32134 return s 32135 } 32136 32137 func (s *PutObjectAclInput) getEndpointARN() (arn.Resource, error) { 32138 if s.Bucket == nil { 32139 return nil, fmt.Errorf("member Bucket is nil") 32140 } 32141 return parseEndpointARN(*s.Bucket) 32142 } 32143 32144 func (s *PutObjectAclInput) hasEndpointARN() bool { 32145 if s.Bucket == nil { 32146 return false 32147 } 32148 return arn.IsARN(*s.Bucket) 32149 } 32150 32151 // updateArnableField updates the value of the input field that 32152 // takes an ARN as an input. This method is useful to backfill 32153 // the parsed resource name from ARN into the input member. 32154 // It returns a pointer to a modified copy of input and an error. 32155 // Note that original input is not modified. 32156 func (s PutObjectAclInput) updateArnableField(v string) (interface{}, error) { 32157 if s.Bucket == nil { 32158 return nil, fmt.Errorf("member Bucket is nil") 32159 } 32160 s.Bucket = aws.String(v) 32161 return &s, nil 32162 } 32163 32164 type PutObjectAclOutput struct { 32165 _ struct{} `type:"structure"` 32166 32167 // If present, indicates that the requester was successfully charged for the 32168 // request. 32169 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 32170 } 32171 32172 // String returns the string representation. 32173 // 32174 // API parameter values that are decorated as "sensitive" in the API will not 32175 // be included in the string output. The member name will be present, but the 32176 // value will be replaced with "sensitive". 32177 func (s PutObjectAclOutput) String() string { 32178 return awsutil.Prettify(s) 32179 } 32180 32181 // GoString returns the string representation. 32182 // 32183 // API parameter values that are decorated as "sensitive" in the API will not 32184 // be included in the string output. The member name will be present, but the 32185 // value will be replaced with "sensitive". 32186 func (s PutObjectAclOutput) GoString() string { 32187 return s.String() 32188 } 32189 32190 // SetRequestCharged sets the RequestCharged field's value. 32191 func (s *PutObjectAclOutput) SetRequestCharged(v string) *PutObjectAclOutput { 32192 s.RequestCharged = &v 32193 return s 32194 } 32195 32196 type PutObjectInput struct { 32197 _ struct{} `locationName:"PutObjectRequest" type:"structure" payload:"Body"` 32198 32199 // The canned ACL to apply to the object. For more information, see Canned ACL 32200 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). 32201 // 32202 // This action is not supported by Amazon S3 on Outposts. 32203 ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` 32204 32205 // Object data. 32206 Body io.ReadSeeker `type:"blob"` 32207 32208 // The bucket name to which the PUT action was initiated. 32209 // 32210 // When using this action with an access point, you must direct requests to 32211 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 32212 // When using this action with an access point through the Amazon Web Services 32213 // SDKs, you provide the access point ARN in place of the bucket name. For more 32214 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 32215 // in the Amazon S3 User Guide. 32216 // 32217 // When using this action with Amazon S3 on Outposts, you must direct requests 32218 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 32219 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 32220 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 32221 // you provide the Outposts bucket ARN in place of the bucket name. For more 32222 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 32223 // in the Amazon S3 User Guide. 32224 // 32225 // Bucket is a required field 32226 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 32227 32228 // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption 32229 // with server-side encryption using AWS KMS (SSE-KMS). Setting this header 32230 // to true causes Amazon S3 to use an S3 Bucket Key for object encryption with 32231 // SSE-KMS. 32232 // 32233 // Specifying this header with a PUT action doesn’t affect bucket-level settings 32234 // for S3 Bucket Key. 32235 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 32236 32237 // Can be used to specify caching behavior along the request/reply chain. For 32238 // more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9 32239 // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9). 32240 CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` 32241 32242 // Specifies presentational information for the object. For more information, 32243 // see http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1). 32244 ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"` 32245 32246 // Specifies what content encodings have been applied to the object and thus 32247 // what decoding mechanisms must be applied to obtain the media-type referenced 32248 // by the Content-Type header field. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11 32249 // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11). 32250 ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` 32251 32252 // The language the content is in. 32253 ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` 32254 32255 // Size of the body in bytes. This parameter is useful when the size of the 32256 // body cannot be determined automatically. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13 32257 // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13). 32258 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` 32259 32260 // The base64-encoded 128-bit MD5 digest of the message (without the headers) 32261 // according to RFC 1864. This header can be used as a message integrity check 32262 // to verify that the data is the same data that was originally sent. Although 32263 // it is optional, we recommend using the Content-MD5 mechanism as an end-to-end 32264 // integrity check. For more information about REST request authentication, 32265 // see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). 32266 ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` 32267 32268 // A standard MIME type describing the format of the contents. For more information, 32269 // see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17). 32270 ContentType *string `location:"header" locationName:"Content-Type" type:"string"` 32271 32272 // The account ID of the expected bucket owner. If the bucket is owned by a 32273 // different account, the request will fail with an HTTP 403 (Access Denied) 32274 // error. 32275 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 32276 32277 // The date and time at which the object is no longer cacheable. For more information, 32278 // see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21). 32279 Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"` 32280 32281 // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. 32282 // 32283 // This action is not supported by Amazon S3 on Outposts. 32284 GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` 32285 32286 // Allows grantee to read the object data and its metadata. 32287 // 32288 // This action is not supported by Amazon S3 on Outposts. 32289 GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` 32290 32291 // Allows grantee to read the object ACL. 32292 // 32293 // This action is not supported by Amazon S3 on Outposts. 32294 GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` 32295 32296 // Allows grantee to write the ACL for the applicable object. 32297 // 32298 // This action is not supported by Amazon S3 on Outposts. 32299 GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` 32300 32301 // Object key for which the PUT action was initiated. 32302 // 32303 // Key is a required field 32304 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 32305 32306 // A map of metadata to store with the object in S3. 32307 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` 32308 32309 // Specifies whether a legal hold will be applied to this object. For more information 32310 // about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). 32311 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 32312 32313 // The Object Lock mode that you want to apply to this object. 32314 ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 32315 32316 // The date and time when you want this object's Object Lock to expire. Must 32317 // be formatted as a timestamp parameter. 32318 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 32319 32320 // Confirms that the requester knows that they will be charged for the request. 32321 // Bucket owners need not specify this parameter in their requests. For information 32322 // about downloading objects from requester pays buckets, see Downloading Objects 32323 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 32324 // in the Amazon S3 User Guide. 32325 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 32326 32327 // Specifies the algorithm to use to when encrypting the object (for example, 32328 // AES256). 32329 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 32330 32331 // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting 32332 // data. This value is used to store the object and then it is discarded; Amazon 32333 // S3 does not store the encryption key. The key must be appropriate for use 32334 // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm 32335 // header. 32336 // 32337 // SSECustomerKey is a sensitive parameter and its value will be 32338 // replaced with "sensitive" in string returned by PutObjectInput's 32339 // String and GoString methods. 32340 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 32341 32342 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 32343 // Amazon S3 uses this header for a message integrity check to ensure that the 32344 // encryption key was transmitted without error. 32345 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 32346 32347 // Specifies the Amazon Web Services KMS Encryption Context to use for object 32348 // encryption. The value of this header is a base64-encoded UTF-8 string holding 32349 // JSON with the encryption context key-value pairs. 32350 // 32351 // SSEKMSEncryptionContext is a sensitive parameter and its value will be 32352 // replaced with "sensitive" in string returned by PutObjectInput's 32353 // String and GoString methods. 32354 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` 32355 32356 // If x-amz-server-side-encryption is present and has the value of aws:kms, 32357 // this header specifies the ID of the Amazon Web Services Key Management Service 32358 // (Amazon Web Services KMS) symmetrical customer managed key that was used 32359 // for the object. If you specify x-amz-server-side-encryption:aws:kms, but 32360 // do not providex-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses 32361 // the Amazon Web Services managed key to protect the data. If the KMS key does 32362 // not exist in the same account issuing the command, you must use the full 32363 // ARN and not just the ID. 32364 // 32365 // SSEKMSKeyId is a sensitive parameter and its value will be 32366 // replaced with "sensitive" in string returned by PutObjectInput's 32367 // String and GoString methods. 32368 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 32369 32370 // The server-side encryption algorithm used when storing this object in Amazon 32371 // S3 (for example, AES256, aws:kms). 32372 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 32373 32374 // By default, Amazon S3 uses the STANDARD Storage Class to store newly created 32375 // objects. The STANDARD storage class provides high durability and high availability. 32376 // Depending on performance needs, you can specify a different Storage Class. 32377 // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, 32378 // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) 32379 // in the Amazon S3 User Guide. 32380 StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` 32381 32382 // The tag-set for the object. The tag-set must be encoded as URL Query parameters. 32383 // (For example, "Key1=Value1") 32384 Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` 32385 32386 // If the bucket is configured as a website, redirects requests for this object 32387 // to another object in the same bucket or to an external URL. Amazon S3 stores 32388 // the value of this header in the object metadata. For information about object 32389 // metadata, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html). 32390 // 32391 // In the following example, the request header sets the redirect to an object 32392 // (anotherPage.html) in the same bucket: 32393 // 32394 // x-amz-website-redirect-location: /anotherPage.html 32395 // 32396 // In the following example, the request header sets the object redirect to 32397 // another website: 32398 // 32399 // x-amz-website-redirect-location: http://www.example.com/ 32400 // 32401 // For more information about website hosting in Amazon S3, see Hosting Websites 32402 // on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) 32403 // and How to Configure Website Page Redirects (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). 32404 WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` 32405 } 32406 32407 // String returns the string representation. 32408 // 32409 // API parameter values that are decorated as "sensitive" in the API will not 32410 // be included in the string output. The member name will be present, but the 32411 // value will be replaced with "sensitive". 32412 func (s PutObjectInput) String() string { 32413 return awsutil.Prettify(s) 32414 } 32415 32416 // GoString returns the string representation. 32417 // 32418 // API parameter values that are decorated as "sensitive" in the API will not 32419 // be included in the string output. The member name will be present, but the 32420 // value will be replaced with "sensitive". 32421 func (s PutObjectInput) GoString() string { 32422 return s.String() 32423 } 32424 32425 // Validate inspects the fields of the type to determine if they are valid. 32426 func (s *PutObjectInput) Validate() error { 32427 invalidParams := request.ErrInvalidParams{Context: "PutObjectInput"} 32428 if s.Bucket == nil { 32429 invalidParams.Add(request.NewErrParamRequired("Bucket")) 32430 } 32431 if s.Bucket != nil && len(*s.Bucket) < 1 { 32432 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 32433 } 32434 if s.Key == nil { 32435 invalidParams.Add(request.NewErrParamRequired("Key")) 32436 } 32437 if s.Key != nil && len(*s.Key) < 1 { 32438 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 32439 } 32440 32441 if invalidParams.Len() > 0 { 32442 return invalidParams 32443 } 32444 return nil 32445 } 32446 32447 // SetACL sets the ACL field's value. 32448 func (s *PutObjectInput) SetACL(v string) *PutObjectInput { 32449 s.ACL = &v 32450 return s 32451 } 32452 32453 // SetBody sets the Body field's value. 32454 func (s *PutObjectInput) SetBody(v io.ReadSeeker) *PutObjectInput { 32455 s.Body = v 32456 return s 32457 } 32458 32459 // SetBucket sets the Bucket field's value. 32460 func (s *PutObjectInput) SetBucket(v string) *PutObjectInput { 32461 s.Bucket = &v 32462 return s 32463 } 32464 32465 func (s *PutObjectInput) getBucket() (v string) { 32466 if s.Bucket == nil { 32467 return v 32468 } 32469 return *s.Bucket 32470 } 32471 32472 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 32473 func (s *PutObjectInput) SetBucketKeyEnabled(v bool) *PutObjectInput { 32474 s.BucketKeyEnabled = &v 32475 return s 32476 } 32477 32478 // SetCacheControl sets the CacheControl field's value. 32479 func (s *PutObjectInput) SetCacheControl(v string) *PutObjectInput { 32480 s.CacheControl = &v 32481 return s 32482 } 32483 32484 // SetContentDisposition sets the ContentDisposition field's value. 32485 func (s *PutObjectInput) SetContentDisposition(v string) *PutObjectInput { 32486 s.ContentDisposition = &v 32487 return s 32488 } 32489 32490 // SetContentEncoding sets the ContentEncoding field's value. 32491 func (s *PutObjectInput) SetContentEncoding(v string) *PutObjectInput { 32492 s.ContentEncoding = &v 32493 return s 32494 } 32495 32496 // SetContentLanguage sets the ContentLanguage field's value. 32497 func (s *PutObjectInput) SetContentLanguage(v string) *PutObjectInput { 32498 s.ContentLanguage = &v 32499 return s 32500 } 32501 32502 // SetContentLength sets the ContentLength field's value. 32503 func (s *PutObjectInput) SetContentLength(v int64) *PutObjectInput { 32504 s.ContentLength = &v 32505 return s 32506 } 32507 32508 // SetContentMD5 sets the ContentMD5 field's value. 32509 func (s *PutObjectInput) SetContentMD5(v string) *PutObjectInput { 32510 s.ContentMD5 = &v 32511 return s 32512 } 32513 32514 // SetContentType sets the ContentType field's value. 32515 func (s *PutObjectInput) SetContentType(v string) *PutObjectInput { 32516 s.ContentType = &v 32517 return s 32518 } 32519 32520 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 32521 func (s *PutObjectInput) SetExpectedBucketOwner(v string) *PutObjectInput { 32522 s.ExpectedBucketOwner = &v 32523 return s 32524 } 32525 32526 // SetExpires sets the Expires field's value. 32527 func (s *PutObjectInput) SetExpires(v time.Time) *PutObjectInput { 32528 s.Expires = &v 32529 return s 32530 } 32531 32532 // SetGrantFullControl sets the GrantFullControl field's value. 32533 func (s *PutObjectInput) SetGrantFullControl(v string) *PutObjectInput { 32534 s.GrantFullControl = &v 32535 return s 32536 } 32537 32538 // SetGrantRead sets the GrantRead field's value. 32539 func (s *PutObjectInput) SetGrantRead(v string) *PutObjectInput { 32540 s.GrantRead = &v 32541 return s 32542 } 32543 32544 // SetGrantReadACP sets the GrantReadACP field's value. 32545 func (s *PutObjectInput) SetGrantReadACP(v string) *PutObjectInput { 32546 s.GrantReadACP = &v 32547 return s 32548 } 32549 32550 // SetGrantWriteACP sets the GrantWriteACP field's value. 32551 func (s *PutObjectInput) SetGrantWriteACP(v string) *PutObjectInput { 32552 s.GrantWriteACP = &v 32553 return s 32554 } 32555 32556 // SetKey sets the Key field's value. 32557 func (s *PutObjectInput) SetKey(v string) *PutObjectInput { 32558 s.Key = &v 32559 return s 32560 } 32561 32562 // SetMetadata sets the Metadata field's value. 32563 func (s *PutObjectInput) SetMetadata(v map[string]*string) *PutObjectInput { 32564 s.Metadata = v 32565 return s 32566 } 32567 32568 // SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value. 32569 func (s *PutObjectInput) SetObjectLockLegalHoldStatus(v string) *PutObjectInput { 32570 s.ObjectLockLegalHoldStatus = &v 32571 return s 32572 } 32573 32574 // SetObjectLockMode sets the ObjectLockMode field's value. 32575 func (s *PutObjectInput) SetObjectLockMode(v string) *PutObjectInput { 32576 s.ObjectLockMode = &v 32577 return s 32578 } 32579 32580 // SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value. 32581 func (s *PutObjectInput) SetObjectLockRetainUntilDate(v time.Time) *PutObjectInput { 32582 s.ObjectLockRetainUntilDate = &v 32583 return s 32584 } 32585 32586 // SetRequestPayer sets the RequestPayer field's value. 32587 func (s *PutObjectInput) SetRequestPayer(v string) *PutObjectInput { 32588 s.RequestPayer = &v 32589 return s 32590 } 32591 32592 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 32593 func (s *PutObjectInput) SetSSECustomerAlgorithm(v string) *PutObjectInput { 32594 s.SSECustomerAlgorithm = &v 32595 return s 32596 } 32597 32598 // SetSSECustomerKey sets the SSECustomerKey field's value. 32599 func (s *PutObjectInput) SetSSECustomerKey(v string) *PutObjectInput { 32600 s.SSECustomerKey = &v 32601 return s 32602 } 32603 32604 func (s *PutObjectInput) getSSECustomerKey() (v string) { 32605 if s.SSECustomerKey == nil { 32606 return v 32607 } 32608 return *s.SSECustomerKey 32609 } 32610 32611 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 32612 func (s *PutObjectInput) SetSSECustomerKeyMD5(v string) *PutObjectInput { 32613 s.SSECustomerKeyMD5 = &v 32614 return s 32615 } 32616 32617 // SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value. 32618 func (s *PutObjectInput) SetSSEKMSEncryptionContext(v string) *PutObjectInput { 32619 s.SSEKMSEncryptionContext = &v 32620 return s 32621 } 32622 32623 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 32624 func (s *PutObjectInput) SetSSEKMSKeyId(v string) *PutObjectInput { 32625 s.SSEKMSKeyId = &v 32626 return s 32627 } 32628 32629 // SetServerSideEncryption sets the ServerSideEncryption field's value. 32630 func (s *PutObjectInput) SetServerSideEncryption(v string) *PutObjectInput { 32631 s.ServerSideEncryption = &v 32632 return s 32633 } 32634 32635 // SetStorageClass sets the StorageClass field's value. 32636 func (s *PutObjectInput) SetStorageClass(v string) *PutObjectInput { 32637 s.StorageClass = &v 32638 return s 32639 } 32640 32641 // SetTagging sets the Tagging field's value. 32642 func (s *PutObjectInput) SetTagging(v string) *PutObjectInput { 32643 s.Tagging = &v 32644 return s 32645 } 32646 32647 // SetWebsiteRedirectLocation sets the WebsiteRedirectLocation field's value. 32648 func (s *PutObjectInput) SetWebsiteRedirectLocation(v string) *PutObjectInput { 32649 s.WebsiteRedirectLocation = &v 32650 return s 32651 } 32652 32653 func (s *PutObjectInput) getEndpointARN() (arn.Resource, error) { 32654 if s.Bucket == nil { 32655 return nil, fmt.Errorf("member Bucket is nil") 32656 } 32657 return parseEndpointARN(*s.Bucket) 32658 } 32659 32660 func (s *PutObjectInput) hasEndpointARN() bool { 32661 if s.Bucket == nil { 32662 return false 32663 } 32664 return arn.IsARN(*s.Bucket) 32665 } 32666 32667 // updateArnableField updates the value of the input field that 32668 // takes an ARN as an input. This method is useful to backfill 32669 // the parsed resource name from ARN into the input member. 32670 // It returns a pointer to a modified copy of input and an error. 32671 // Note that original input is not modified. 32672 func (s PutObjectInput) updateArnableField(v string) (interface{}, error) { 32673 if s.Bucket == nil { 32674 return nil, fmt.Errorf("member Bucket is nil") 32675 } 32676 s.Bucket = aws.String(v) 32677 return &s, nil 32678 } 32679 32680 type PutObjectLegalHoldInput struct { 32681 _ struct{} `locationName:"PutObjectLegalHoldRequest" type:"structure" payload:"LegalHold"` 32682 32683 // The bucket name containing the object that you want to place a Legal Hold 32684 // on. 32685 // 32686 // When using this action with an access point, you must direct requests to 32687 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 32688 // When using this action with an access point through the Amazon Web Services 32689 // SDKs, you provide the access point ARN in place of the bucket name. For more 32690 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 32691 // in the Amazon S3 User Guide. 32692 // 32693 // Bucket is a required field 32694 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 32695 32696 // The account ID of the expected bucket owner. If the bucket is owned by a 32697 // different account, the request will fail with an HTTP 403 (Access Denied) 32698 // error. 32699 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 32700 32701 // The key name for the object that you want to place a Legal Hold on. 32702 // 32703 // Key is a required field 32704 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 32705 32706 // Container element for the Legal Hold configuration you want to apply to the 32707 // specified object. 32708 LegalHold *ObjectLockLegalHold `locationName:"LegalHold" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 32709 32710 // Confirms that the requester knows that they will be charged for the request. 32711 // Bucket owners need not specify this parameter in their requests. For information 32712 // about downloading objects from requester pays buckets, see Downloading Objects 32713 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 32714 // in the Amazon S3 User Guide. 32715 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 32716 32717 // The version ID of the object that you want to place a Legal Hold on. 32718 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 32719 } 32720 32721 // String returns the string representation. 32722 // 32723 // API parameter values that are decorated as "sensitive" in the API will not 32724 // be included in the string output. The member name will be present, but the 32725 // value will be replaced with "sensitive". 32726 func (s PutObjectLegalHoldInput) String() string { 32727 return awsutil.Prettify(s) 32728 } 32729 32730 // GoString returns the string representation. 32731 // 32732 // API parameter values that are decorated as "sensitive" in the API will not 32733 // be included in the string output. The member name will be present, but the 32734 // value will be replaced with "sensitive". 32735 func (s PutObjectLegalHoldInput) GoString() string { 32736 return s.String() 32737 } 32738 32739 // Validate inspects the fields of the type to determine if they are valid. 32740 func (s *PutObjectLegalHoldInput) Validate() error { 32741 invalidParams := request.ErrInvalidParams{Context: "PutObjectLegalHoldInput"} 32742 if s.Bucket == nil { 32743 invalidParams.Add(request.NewErrParamRequired("Bucket")) 32744 } 32745 if s.Bucket != nil && len(*s.Bucket) < 1 { 32746 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 32747 } 32748 if s.Key == nil { 32749 invalidParams.Add(request.NewErrParamRequired("Key")) 32750 } 32751 if s.Key != nil && len(*s.Key) < 1 { 32752 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 32753 } 32754 32755 if invalidParams.Len() > 0 { 32756 return invalidParams 32757 } 32758 return nil 32759 } 32760 32761 // SetBucket sets the Bucket field's value. 32762 func (s *PutObjectLegalHoldInput) SetBucket(v string) *PutObjectLegalHoldInput { 32763 s.Bucket = &v 32764 return s 32765 } 32766 32767 func (s *PutObjectLegalHoldInput) getBucket() (v string) { 32768 if s.Bucket == nil { 32769 return v 32770 } 32771 return *s.Bucket 32772 } 32773 32774 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 32775 func (s *PutObjectLegalHoldInput) SetExpectedBucketOwner(v string) *PutObjectLegalHoldInput { 32776 s.ExpectedBucketOwner = &v 32777 return s 32778 } 32779 32780 // SetKey sets the Key field's value. 32781 func (s *PutObjectLegalHoldInput) SetKey(v string) *PutObjectLegalHoldInput { 32782 s.Key = &v 32783 return s 32784 } 32785 32786 // SetLegalHold sets the LegalHold field's value. 32787 func (s *PutObjectLegalHoldInput) SetLegalHold(v *ObjectLockLegalHold) *PutObjectLegalHoldInput { 32788 s.LegalHold = v 32789 return s 32790 } 32791 32792 // SetRequestPayer sets the RequestPayer field's value. 32793 func (s *PutObjectLegalHoldInput) SetRequestPayer(v string) *PutObjectLegalHoldInput { 32794 s.RequestPayer = &v 32795 return s 32796 } 32797 32798 // SetVersionId sets the VersionId field's value. 32799 func (s *PutObjectLegalHoldInput) SetVersionId(v string) *PutObjectLegalHoldInput { 32800 s.VersionId = &v 32801 return s 32802 } 32803 32804 func (s *PutObjectLegalHoldInput) getEndpointARN() (arn.Resource, error) { 32805 if s.Bucket == nil { 32806 return nil, fmt.Errorf("member Bucket is nil") 32807 } 32808 return parseEndpointARN(*s.Bucket) 32809 } 32810 32811 func (s *PutObjectLegalHoldInput) hasEndpointARN() bool { 32812 if s.Bucket == nil { 32813 return false 32814 } 32815 return arn.IsARN(*s.Bucket) 32816 } 32817 32818 // updateArnableField updates the value of the input field that 32819 // takes an ARN as an input. This method is useful to backfill 32820 // the parsed resource name from ARN into the input member. 32821 // It returns a pointer to a modified copy of input and an error. 32822 // Note that original input is not modified. 32823 func (s PutObjectLegalHoldInput) updateArnableField(v string) (interface{}, error) { 32824 if s.Bucket == nil { 32825 return nil, fmt.Errorf("member Bucket is nil") 32826 } 32827 s.Bucket = aws.String(v) 32828 return &s, nil 32829 } 32830 32831 type PutObjectLegalHoldOutput struct { 32832 _ struct{} `type:"structure"` 32833 32834 // If present, indicates that the requester was successfully charged for the 32835 // request. 32836 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 32837 } 32838 32839 // String returns the string representation. 32840 // 32841 // API parameter values that are decorated as "sensitive" in the API will not 32842 // be included in the string output. The member name will be present, but the 32843 // value will be replaced with "sensitive". 32844 func (s PutObjectLegalHoldOutput) String() string { 32845 return awsutil.Prettify(s) 32846 } 32847 32848 // GoString returns the string representation. 32849 // 32850 // API parameter values that are decorated as "sensitive" in the API will not 32851 // be included in the string output. The member name will be present, but the 32852 // value will be replaced with "sensitive". 32853 func (s PutObjectLegalHoldOutput) GoString() string { 32854 return s.String() 32855 } 32856 32857 // SetRequestCharged sets the RequestCharged field's value. 32858 func (s *PutObjectLegalHoldOutput) SetRequestCharged(v string) *PutObjectLegalHoldOutput { 32859 s.RequestCharged = &v 32860 return s 32861 } 32862 32863 type PutObjectLockConfigurationInput struct { 32864 _ struct{} `locationName:"PutObjectLockConfigurationRequest" type:"structure" payload:"ObjectLockConfiguration"` 32865 32866 // The bucket whose Object Lock configuration you want to create or replace. 32867 // 32868 // Bucket is a required field 32869 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 32870 32871 // The account ID of the expected bucket owner. If the bucket is owned by a 32872 // different account, the request will fail with an HTTP 403 (Access Denied) 32873 // error. 32874 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 32875 32876 // The Object Lock configuration that you want to apply to the specified bucket. 32877 ObjectLockConfiguration *ObjectLockConfiguration `locationName:"ObjectLockConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 32878 32879 // Confirms that the requester knows that they will be charged for the request. 32880 // Bucket owners need not specify this parameter in their requests. For information 32881 // about downloading objects from requester pays buckets, see Downloading Objects 32882 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 32883 // in the Amazon S3 User Guide. 32884 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 32885 32886 // A token to allow Object Lock to be enabled for an existing bucket. 32887 Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"` 32888 } 32889 32890 // String returns the string representation. 32891 // 32892 // API parameter values that are decorated as "sensitive" in the API will not 32893 // be included in the string output. The member name will be present, but the 32894 // value will be replaced with "sensitive". 32895 func (s PutObjectLockConfigurationInput) String() string { 32896 return awsutil.Prettify(s) 32897 } 32898 32899 // GoString returns the string representation. 32900 // 32901 // API parameter values that are decorated as "sensitive" in the API will not 32902 // be included in the string output. The member name will be present, but the 32903 // value will be replaced with "sensitive". 32904 func (s PutObjectLockConfigurationInput) GoString() string { 32905 return s.String() 32906 } 32907 32908 // Validate inspects the fields of the type to determine if they are valid. 32909 func (s *PutObjectLockConfigurationInput) Validate() error { 32910 invalidParams := request.ErrInvalidParams{Context: "PutObjectLockConfigurationInput"} 32911 if s.Bucket == nil { 32912 invalidParams.Add(request.NewErrParamRequired("Bucket")) 32913 } 32914 if s.Bucket != nil && len(*s.Bucket) < 1 { 32915 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 32916 } 32917 32918 if invalidParams.Len() > 0 { 32919 return invalidParams 32920 } 32921 return nil 32922 } 32923 32924 // SetBucket sets the Bucket field's value. 32925 func (s *PutObjectLockConfigurationInput) SetBucket(v string) *PutObjectLockConfigurationInput { 32926 s.Bucket = &v 32927 return s 32928 } 32929 32930 func (s *PutObjectLockConfigurationInput) getBucket() (v string) { 32931 if s.Bucket == nil { 32932 return v 32933 } 32934 return *s.Bucket 32935 } 32936 32937 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 32938 func (s *PutObjectLockConfigurationInput) SetExpectedBucketOwner(v string) *PutObjectLockConfigurationInput { 32939 s.ExpectedBucketOwner = &v 32940 return s 32941 } 32942 32943 // SetObjectLockConfiguration sets the ObjectLockConfiguration field's value. 32944 func (s *PutObjectLockConfigurationInput) SetObjectLockConfiguration(v *ObjectLockConfiguration) *PutObjectLockConfigurationInput { 32945 s.ObjectLockConfiguration = v 32946 return s 32947 } 32948 32949 // SetRequestPayer sets the RequestPayer field's value. 32950 func (s *PutObjectLockConfigurationInput) SetRequestPayer(v string) *PutObjectLockConfigurationInput { 32951 s.RequestPayer = &v 32952 return s 32953 } 32954 32955 // SetToken sets the Token field's value. 32956 func (s *PutObjectLockConfigurationInput) SetToken(v string) *PutObjectLockConfigurationInput { 32957 s.Token = &v 32958 return s 32959 } 32960 32961 func (s *PutObjectLockConfigurationInput) getEndpointARN() (arn.Resource, error) { 32962 if s.Bucket == nil { 32963 return nil, fmt.Errorf("member Bucket is nil") 32964 } 32965 return parseEndpointARN(*s.Bucket) 32966 } 32967 32968 func (s *PutObjectLockConfigurationInput) hasEndpointARN() bool { 32969 if s.Bucket == nil { 32970 return false 32971 } 32972 return arn.IsARN(*s.Bucket) 32973 } 32974 32975 // updateArnableField updates the value of the input field that 32976 // takes an ARN as an input. This method is useful to backfill 32977 // the parsed resource name from ARN into the input member. 32978 // It returns a pointer to a modified copy of input and an error. 32979 // Note that original input is not modified. 32980 func (s PutObjectLockConfigurationInput) updateArnableField(v string) (interface{}, error) { 32981 if s.Bucket == nil { 32982 return nil, fmt.Errorf("member Bucket is nil") 32983 } 32984 s.Bucket = aws.String(v) 32985 return &s, nil 32986 } 32987 32988 type PutObjectLockConfigurationOutput struct { 32989 _ struct{} `type:"structure"` 32990 32991 // If present, indicates that the requester was successfully charged for the 32992 // request. 32993 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 32994 } 32995 32996 // String returns the string representation. 32997 // 32998 // API parameter values that are decorated as "sensitive" in the API will not 32999 // be included in the string output. The member name will be present, but the 33000 // value will be replaced with "sensitive". 33001 func (s PutObjectLockConfigurationOutput) String() string { 33002 return awsutil.Prettify(s) 33003 } 33004 33005 // GoString returns the string representation. 33006 // 33007 // API parameter values that are decorated as "sensitive" in the API will not 33008 // be included in the string output. The member name will be present, but the 33009 // value will be replaced with "sensitive". 33010 func (s PutObjectLockConfigurationOutput) GoString() string { 33011 return s.String() 33012 } 33013 33014 // SetRequestCharged sets the RequestCharged field's value. 33015 func (s *PutObjectLockConfigurationOutput) SetRequestCharged(v string) *PutObjectLockConfigurationOutput { 33016 s.RequestCharged = &v 33017 return s 33018 } 33019 33020 type PutObjectOutput struct { 33021 _ struct{} `type:"structure"` 33022 33023 // Indicates whether the uploaded object uses an S3 Bucket Key for server-side 33024 // encryption with Amazon Web Services KMS (SSE-KMS). 33025 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 33026 33027 // Entity tag for the uploaded object. 33028 ETag *string `location:"header" locationName:"ETag" type:"string"` 33029 33030 // If the expiration is configured for the object (see PutBucketLifecycleConfiguration 33031 // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)), 33032 // the response includes this header. It includes the expiry-date and rule-id 33033 // key-value pairs that provide information about object expiration. The value 33034 // of the rule-id is URL encoded. 33035 Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` 33036 33037 // If present, indicates that the requester was successfully charged for the 33038 // request. 33039 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 33040 33041 // If server-side encryption with a customer-provided encryption key was requested, 33042 // the response will include this header confirming the encryption algorithm 33043 // used. 33044 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 33045 33046 // If server-side encryption with a customer-provided encryption key was requested, 33047 // the response will include this header to provide round-trip message integrity 33048 // verification of the customer-provided encryption key. 33049 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 33050 33051 // If present, specifies the Amazon Web Services KMS Encryption Context to use 33052 // for object encryption. The value of this header is a base64-encoded UTF-8 33053 // string holding JSON with the encryption context key-value pairs. 33054 // 33055 // SSEKMSEncryptionContext is a sensitive parameter and its value will be 33056 // replaced with "sensitive" in string returned by PutObjectOutput's 33057 // String and GoString methods. 33058 SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` 33059 33060 // If x-amz-server-side-encryption is present and has the value of aws:kms, 33061 // this header specifies the ID of the Amazon Web Services Key Management Service 33062 // (Amazon Web Services KMS) symmetric customer managed key that was used for 33063 // the object. 33064 // 33065 // SSEKMSKeyId is a sensitive parameter and its value will be 33066 // replaced with "sensitive" in string returned by PutObjectOutput's 33067 // String and GoString methods. 33068 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 33069 33070 // If you specified server-side encryption either with an Amazon Web Services 33071 // KMS key or Amazon S3-managed encryption key in your PUT request, the response 33072 // includes this header. It confirms the encryption algorithm that Amazon S3 33073 // used to encrypt the object. 33074 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 33075 33076 // Version of the object. 33077 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 33078 } 33079 33080 // String returns the string representation. 33081 // 33082 // API parameter values that are decorated as "sensitive" in the API will not 33083 // be included in the string output. The member name will be present, but the 33084 // value will be replaced with "sensitive". 33085 func (s PutObjectOutput) String() string { 33086 return awsutil.Prettify(s) 33087 } 33088 33089 // GoString returns the string representation. 33090 // 33091 // API parameter values that are decorated as "sensitive" in the API will not 33092 // be included in the string output. The member name will be present, but the 33093 // value will be replaced with "sensitive". 33094 func (s PutObjectOutput) GoString() string { 33095 return s.String() 33096 } 33097 33098 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 33099 func (s *PutObjectOutput) SetBucketKeyEnabled(v bool) *PutObjectOutput { 33100 s.BucketKeyEnabled = &v 33101 return s 33102 } 33103 33104 // SetETag sets the ETag field's value. 33105 func (s *PutObjectOutput) SetETag(v string) *PutObjectOutput { 33106 s.ETag = &v 33107 return s 33108 } 33109 33110 // SetExpiration sets the Expiration field's value. 33111 func (s *PutObjectOutput) SetExpiration(v string) *PutObjectOutput { 33112 s.Expiration = &v 33113 return s 33114 } 33115 33116 // SetRequestCharged sets the RequestCharged field's value. 33117 func (s *PutObjectOutput) SetRequestCharged(v string) *PutObjectOutput { 33118 s.RequestCharged = &v 33119 return s 33120 } 33121 33122 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 33123 func (s *PutObjectOutput) SetSSECustomerAlgorithm(v string) *PutObjectOutput { 33124 s.SSECustomerAlgorithm = &v 33125 return s 33126 } 33127 33128 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 33129 func (s *PutObjectOutput) SetSSECustomerKeyMD5(v string) *PutObjectOutput { 33130 s.SSECustomerKeyMD5 = &v 33131 return s 33132 } 33133 33134 // SetSSEKMSEncryptionContext sets the SSEKMSEncryptionContext field's value. 33135 func (s *PutObjectOutput) SetSSEKMSEncryptionContext(v string) *PutObjectOutput { 33136 s.SSEKMSEncryptionContext = &v 33137 return s 33138 } 33139 33140 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 33141 func (s *PutObjectOutput) SetSSEKMSKeyId(v string) *PutObjectOutput { 33142 s.SSEKMSKeyId = &v 33143 return s 33144 } 33145 33146 // SetServerSideEncryption sets the ServerSideEncryption field's value. 33147 func (s *PutObjectOutput) SetServerSideEncryption(v string) *PutObjectOutput { 33148 s.ServerSideEncryption = &v 33149 return s 33150 } 33151 33152 // SetVersionId sets the VersionId field's value. 33153 func (s *PutObjectOutput) SetVersionId(v string) *PutObjectOutput { 33154 s.VersionId = &v 33155 return s 33156 } 33157 33158 type PutObjectRetentionInput struct { 33159 _ struct{} `locationName:"PutObjectRetentionRequest" type:"structure" payload:"Retention"` 33160 33161 // The bucket name that contains the object you want to apply this Object Retention 33162 // configuration to. 33163 // 33164 // When using this action with an access point, you must direct requests to 33165 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 33166 // When using this action with an access point through the Amazon Web Services 33167 // SDKs, you provide the access point ARN in place of the bucket name. For more 33168 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 33169 // in the Amazon S3 User Guide. 33170 // 33171 // Bucket is a required field 33172 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 33173 33174 // Indicates whether this action should bypass Governance-mode restrictions. 33175 BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` 33176 33177 // The account ID of the expected bucket owner. If the bucket is owned by a 33178 // different account, the request will fail with an HTTP 403 (Access Denied) 33179 // error. 33180 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 33181 33182 // The key name for the object that you want to apply this Object Retention 33183 // configuration to. 33184 // 33185 // Key is a required field 33186 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 33187 33188 // Confirms that the requester knows that they will be charged for the request. 33189 // Bucket owners need not specify this parameter in their requests. For information 33190 // about downloading objects from requester pays buckets, see Downloading Objects 33191 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 33192 // in the Amazon S3 User Guide. 33193 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 33194 33195 // The container element for the Object Retention configuration. 33196 Retention *ObjectLockRetention `locationName:"Retention" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 33197 33198 // The version ID for the object that you want to apply this Object Retention 33199 // configuration to. 33200 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 33201 } 33202 33203 // String returns the string representation. 33204 // 33205 // API parameter values that are decorated as "sensitive" in the API will not 33206 // be included in the string output. The member name will be present, but the 33207 // value will be replaced with "sensitive". 33208 func (s PutObjectRetentionInput) String() string { 33209 return awsutil.Prettify(s) 33210 } 33211 33212 // GoString returns the string representation. 33213 // 33214 // API parameter values that are decorated as "sensitive" in the API will not 33215 // be included in the string output. The member name will be present, but the 33216 // value will be replaced with "sensitive". 33217 func (s PutObjectRetentionInput) GoString() string { 33218 return s.String() 33219 } 33220 33221 // Validate inspects the fields of the type to determine if they are valid. 33222 func (s *PutObjectRetentionInput) Validate() error { 33223 invalidParams := request.ErrInvalidParams{Context: "PutObjectRetentionInput"} 33224 if s.Bucket == nil { 33225 invalidParams.Add(request.NewErrParamRequired("Bucket")) 33226 } 33227 if s.Bucket != nil && len(*s.Bucket) < 1 { 33228 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 33229 } 33230 if s.Key == nil { 33231 invalidParams.Add(request.NewErrParamRequired("Key")) 33232 } 33233 if s.Key != nil && len(*s.Key) < 1 { 33234 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 33235 } 33236 33237 if invalidParams.Len() > 0 { 33238 return invalidParams 33239 } 33240 return nil 33241 } 33242 33243 // SetBucket sets the Bucket field's value. 33244 func (s *PutObjectRetentionInput) SetBucket(v string) *PutObjectRetentionInput { 33245 s.Bucket = &v 33246 return s 33247 } 33248 33249 func (s *PutObjectRetentionInput) getBucket() (v string) { 33250 if s.Bucket == nil { 33251 return v 33252 } 33253 return *s.Bucket 33254 } 33255 33256 // SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value. 33257 func (s *PutObjectRetentionInput) SetBypassGovernanceRetention(v bool) *PutObjectRetentionInput { 33258 s.BypassGovernanceRetention = &v 33259 return s 33260 } 33261 33262 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 33263 func (s *PutObjectRetentionInput) SetExpectedBucketOwner(v string) *PutObjectRetentionInput { 33264 s.ExpectedBucketOwner = &v 33265 return s 33266 } 33267 33268 // SetKey sets the Key field's value. 33269 func (s *PutObjectRetentionInput) SetKey(v string) *PutObjectRetentionInput { 33270 s.Key = &v 33271 return s 33272 } 33273 33274 // SetRequestPayer sets the RequestPayer field's value. 33275 func (s *PutObjectRetentionInput) SetRequestPayer(v string) *PutObjectRetentionInput { 33276 s.RequestPayer = &v 33277 return s 33278 } 33279 33280 // SetRetention sets the Retention field's value. 33281 func (s *PutObjectRetentionInput) SetRetention(v *ObjectLockRetention) *PutObjectRetentionInput { 33282 s.Retention = v 33283 return s 33284 } 33285 33286 // SetVersionId sets the VersionId field's value. 33287 func (s *PutObjectRetentionInput) SetVersionId(v string) *PutObjectRetentionInput { 33288 s.VersionId = &v 33289 return s 33290 } 33291 33292 func (s *PutObjectRetentionInput) getEndpointARN() (arn.Resource, error) { 33293 if s.Bucket == nil { 33294 return nil, fmt.Errorf("member Bucket is nil") 33295 } 33296 return parseEndpointARN(*s.Bucket) 33297 } 33298 33299 func (s *PutObjectRetentionInput) hasEndpointARN() bool { 33300 if s.Bucket == nil { 33301 return false 33302 } 33303 return arn.IsARN(*s.Bucket) 33304 } 33305 33306 // updateArnableField updates the value of the input field that 33307 // takes an ARN as an input. This method is useful to backfill 33308 // the parsed resource name from ARN into the input member. 33309 // It returns a pointer to a modified copy of input and an error. 33310 // Note that original input is not modified. 33311 func (s PutObjectRetentionInput) updateArnableField(v string) (interface{}, error) { 33312 if s.Bucket == nil { 33313 return nil, fmt.Errorf("member Bucket is nil") 33314 } 33315 s.Bucket = aws.String(v) 33316 return &s, nil 33317 } 33318 33319 type PutObjectRetentionOutput struct { 33320 _ struct{} `type:"structure"` 33321 33322 // If present, indicates that the requester was successfully charged for the 33323 // request. 33324 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 33325 } 33326 33327 // String returns the string representation. 33328 // 33329 // API parameter values that are decorated as "sensitive" in the API will not 33330 // be included in the string output. The member name will be present, but the 33331 // value will be replaced with "sensitive". 33332 func (s PutObjectRetentionOutput) String() string { 33333 return awsutil.Prettify(s) 33334 } 33335 33336 // GoString returns the string representation. 33337 // 33338 // API parameter values that are decorated as "sensitive" in the API will not 33339 // be included in the string output. The member name will be present, but the 33340 // value will be replaced with "sensitive". 33341 func (s PutObjectRetentionOutput) GoString() string { 33342 return s.String() 33343 } 33344 33345 // SetRequestCharged sets the RequestCharged field's value. 33346 func (s *PutObjectRetentionOutput) SetRequestCharged(v string) *PutObjectRetentionOutput { 33347 s.RequestCharged = &v 33348 return s 33349 } 33350 33351 type PutObjectTaggingInput struct { 33352 _ struct{} `locationName:"PutObjectTaggingRequest" type:"structure" payload:"Tagging"` 33353 33354 // The bucket name containing the object. 33355 // 33356 // When using this action with an access point, you must direct requests to 33357 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 33358 // When using this action with an access point through the Amazon Web Services 33359 // SDKs, you provide the access point ARN in place of the bucket name. For more 33360 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 33361 // in the Amazon S3 User Guide. 33362 // 33363 // When using this action with Amazon S3 on Outposts, you must direct requests 33364 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 33365 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 33366 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 33367 // you provide the Outposts bucket ARN in place of the bucket name. For more 33368 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 33369 // in the Amazon S3 User Guide. 33370 // 33371 // Bucket is a required field 33372 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 33373 33374 // The account ID of the expected bucket owner. If the bucket is owned by a 33375 // different account, the request will fail with an HTTP 403 (Access Denied) 33376 // error. 33377 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 33378 33379 // Name of the object key. 33380 // 33381 // Key is a required field 33382 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 33383 33384 // Confirms that the requester knows that they will be charged for the request. 33385 // Bucket owners need not specify this parameter in their requests. For information 33386 // about downloading objects from requester pays buckets, see Downloading Objects 33387 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 33388 // in the Amazon S3 User Guide. 33389 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 33390 33391 // Container for the TagSet and Tag elements 33392 // 33393 // Tagging is a required field 33394 Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 33395 33396 // The versionId of the object that the tag-set will be added to. 33397 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 33398 } 33399 33400 // String returns the string representation. 33401 // 33402 // API parameter values that are decorated as "sensitive" in the API will not 33403 // be included in the string output. The member name will be present, but the 33404 // value will be replaced with "sensitive". 33405 func (s PutObjectTaggingInput) String() string { 33406 return awsutil.Prettify(s) 33407 } 33408 33409 // GoString returns the string representation. 33410 // 33411 // API parameter values that are decorated as "sensitive" in the API will not 33412 // be included in the string output. The member name will be present, but the 33413 // value will be replaced with "sensitive". 33414 func (s PutObjectTaggingInput) GoString() string { 33415 return s.String() 33416 } 33417 33418 // Validate inspects the fields of the type to determine if they are valid. 33419 func (s *PutObjectTaggingInput) Validate() error { 33420 invalidParams := request.ErrInvalidParams{Context: "PutObjectTaggingInput"} 33421 if s.Bucket == nil { 33422 invalidParams.Add(request.NewErrParamRequired("Bucket")) 33423 } 33424 if s.Bucket != nil && len(*s.Bucket) < 1 { 33425 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 33426 } 33427 if s.Key == nil { 33428 invalidParams.Add(request.NewErrParamRequired("Key")) 33429 } 33430 if s.Key != nil && len(*s.Key) < 1 { 33431 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 33432 } 33433 if s.Tagging == nil { 33434 invalidParams.Add(request.NewErrParamRequired("Tagging")) 33435 } 33436 if s.Tagging != nil { 33437 if err := s.Tagging.Validate(); err != nil { 33438 invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams)) 33439 } 33440 } 33441 33442 if invalidParams.Len() > 0 { 33443 return invalidParams 33444 } 33445 return nil 33446 } 33447 33448 // SetBucket sets the Bucket field's value. 33449 func (s *PutObjectTaggingInput) SetBucket(v string) *PutObjectTaggingInput { 33450 s.Bucket = &v 33451 return s 33452 } 33453 33454 func (s *PutObjectTaggingInput) getBucket() (v string) { 33455 if s.Bucket == nil { 33456 return v 33457 } 33458 return *s.Bucket 33459 } 33460 33461 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 33462 func (s *PutObjectTaggingInput) SetExpectedBucketOwner(v string) *PutObjectTaggingInput { 33463 s.ExpectedBucketOwner = &v 33464 return s 33465 } 33466 33467 // SetKey sets the Key field's value. 33468 func (s *PutObjectTaggingInput) SetKey(v string) *PutObjectTaggingInput { 33469 s.Key = &v 33470 return s 33471 } 33472 33473 // SetRequestPayer sets the RequestPayer field's value. 33474 func (s *PutObjectTaggingInput) SetRequestPayer(v string) *PutObjectTaggingInput { 33475 s.RequestPayer = &v 33476 return s 33477 } 33478 33479 // SetTagging sets the Tagging field's value. 33480 func (s *PutObjectTaggingInput) SetTagging(v *Tagging) *PutObjectTaggingInput { 33481 s.Tagging = v 33482 return s 33483 } 33484 33485 // SetVersionId sets the VersionId field's value. 33486 func (s *PutObjectTaggingInput) SetVersionId(v string) *PutObjectTaggingInput { 33487 s.VersionId = &v 33488 return s 33489 } 33490 33491 func (s *PutObjectTaggingInput) getEndpointARN() (arn.Resource, error) { 33492 if s.Bucket == nil { 33493 return nil, fmt.Errorf("member Bucket is nil") 33494 } 33495 return parseEndpointARN(*s.Bucket) 33496 } 33497 33498 func (s *PutObjectTaggingInput) hasEndpointARN() bool { 33499 if s.Bucket == nil { 33500 return false 33501 } 33502 return arn.IsARN(*s.Bucket) 33503 } 33504 33505 // updateArnableField updates the value of the input field that 33506 // takes an ARN as an input. This method is useful to backfill 33507 // the parsed resource name from ARN into the input member. 33508 // It returns a pointer to a modified copy of input and an error. 33509 // Note that original input is not modified. 33510 func (s PutObjectTaggingInput) updateArnableField(v string) (interface{}, error) { 33511 if s.Bucket == nil { 33512 return nil, fmt.Errorf("member Bucket is nil") 33513 } 33514 s.Bucket = aws.String(v) 33515 return &s, nil 33516 } 33517 33518 type PutObjectTaggingOutput struct { 33519 _ struct{} `type:"structure"` 33520 33521 // The versionId of the object the tag-set was added to. 33522 VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` 33523 } 33524 33525 // String returns the string representation. 33526 // 33527 // API parameter values that are decorated as "sensitive" in the API will not 33528 // be included in the string output. The member name will be present, but the 33529 // value will be replaced with "sensitive". 33530 func (s PutObjectTaggingOutput) String() string { 33531 return awsutil.Prettify(s) 33532 } 33533 33534 // GoString returns the string representation. 33535 // 33536 // API parameter values that are decorated as "sensitive" in the API will not 33537 // be included in the string output. The member name will be present, but the 33538 // value will be replaced with "sensitive". 33539 func (s PutObjectTaggingOutput) GoString() string { 33540 return s.String() 33541 } 33542 33543 // SetVersionId sets the VersionId field's value. 33544 func (s *PutObjectTaggingOutput) SetVersionId(v string) *PutObjectTaggingOutput { 33545 s.VersionId = &v 33546 return s 33547 } 33548 33549 type PutPublicAccessBlockInput struct { 33550 _ struct{} `locationName:"PutPublicAccessBlockRequest" type:"structure" payload:"PublicAccessBlockConfiguration"` 33551 33552 // The name of the Amazon S3 bucket whose PublicAccessBlock configuration you 33553 // want to set. 33554 // 33555 // Bucket is a required field 33556 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 33557 33558 // The account ID of the expected bucket owner. If the bucket is owned by a 33559 // different account, the request will fail with an HTTP 403 (Access Denied) 33560 // error. 33561 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 33562 33563 // The PublicAccessBlock configuration that you want to apply to this Amazon 33564 // S3 bucket. You can enable the configuration options in any combination. For 33565 // more information about when Amazon S3 considers a bucket or object public, 33566 // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) 33567 // in the Amazon S3 User Guide. 33568 // 33569 // PublicAccessBlockConfiguration is a required field 33570 PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 33571 } 33572 33573 // String returns the string representation. 33574 // 33575 // API parameter values that are decorated as "sensitive" in the API will not 33576 // be included in the string output. The member name will be present, but the 33577 // value will be replaced with "sensitive". 33578 func (s PutPublicAccessBlockInput) String() string { 33579 return awsutil.Prettify(s) 33580 } 33581 33582 // GoString returns the string representation. 33583 // 33584 // API parameter values that are decorated as "sensitive" in the API will not 33585 // be included in the string output. The member name will be present, but the 33586 // value will be replaced with "sensitive". 33587 func (s PutPublicAccessBlockInput) GoString() string { 33588 return s.String() 33589 } 33590 33591 // Validate inspects the fields of the type to determine if they are valid. 33592 func (s *PutPublicAccessBlockInput) Validate() error { 33593 invalidParams := request.ErrInvalidParams{Context: "PutPublicAccessBlockInput"} 33594 if s.Bucket == nil { 33595 invalidParams.Add(request.NewErrParamRequired("Bucket")) 33596 } 33597 if s.Bucket != nil && len(*s.Bucket) < 1 { 33598 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 33599 } 33600 if s.PublicAccessBlockConfiguration == nil { 33601 invalidParams.Add(request.NewErrParamRequired("PublicAccessBlockConfiguration")) 33602 } 33603 33604 if invalidParams.Len() > 0 { 33605 return invalidParams 33606 } 33607 return nil 33608 } 33609 33610 // SetBucket sets the Bucket field's value. 33611 func (s *PutPublicAccessBlockInput) SetBucket(v string) *PutPublicAccessBlockInput { 33612 s.Bucket = &v 33613 return s 33614 } 33615 33616 func (s *PutPublicAccessBlockInput) getBucket() (v string) { 33617 if s.Bucket == nil { 33618 return v 33619 } 33620 return *s.Bucket 33621 } 33622 33623 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 33624 func (s *PutPublicAccessBlockInput) SetExpectedBucketOwner(v string) *PutPublicAccessBlockInput { 33625 s.ExpectedBucketOwner = &v 33626 return s 33627 } 33628 33629 // SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. 33630 func (s *PutPublicAccessBlockInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *PutPublicAccessBlockInput { 33631 s.PublicAccessBlockConfiguration = v 33632 return s 33633 } 33634 33635 func (s *PutPublicAccessBlockInput) getEndpointARN() (arn.Resource, error) { 33636 if s.Bucket == nil { 33637 return nil, fmt.Errorf("member Bucket is nil") 33638 } 33639 return parseEndpointARN(*s.Bucket) 33640 } 33641 33642 func (s *PutPublicAccessBlockInput) hasEndpointARN() bool { 33643 if s.Bucket == nil { 33644 return false 33645 } 33646 return arn.IsARN(*s.Bucket) 33647 } 33648 33649 // updateArnableField updates the value of the input field that 33650 // takes an ARN as an input. This method is useful to backfill 33651 // the parsed resource name from ARN into the input member. 33652 // It returns a pointer to a modified copy of input and an error. 33653 // Note that original input is not modified. 33654 func (s PutPublicAccessBlockInput) updateArnableField(v string) (interface{}, error) { 33655 if s.Bucket == nil { 33656 return nil, fmt.Errorf("member Bucket is nil") 33657 } 33658 s.Bucket = aws.String(v) 33659 return &s, nil 33660 } 33661 33662 type PutPublicAccessBlockOutput struct { 33663 _ struct{} `type:"structure"` 33664 } 33665 33666 // String returns the string representation. 33667 // 33668 // API parameter values that are decorated as "sensitive" in the API will not 33669 // be included in the string output. The member name will be present, but the 33670 // value will be replaced with "sensitive". 33671 func (s PutPublicAccessBlockOutput) String() string { 33672 return awsutil.Prettify(s) 33673 } 33674 33675 // GoString returns the string representation. 33676 // 33677 // API parameter values that are decorated as "sensitive" in the API will not 33678 // be included in the string output. The member name will be present, but the 33679 // value will be replaced with "sensitive". 33680 func (s PutPublicAccessBlockOutput) GoString() string { 33681 return s.String() 33682 } 33683 33684 // Specifies the configuration for publishing messages to an Amazon Simple Queue 33685 // Service (Amazon SQS) queue when Amazon S3 detects specified events. 33686 type QueueConfiguration struct { 33687 _ struct{} `type:"structure"` 33688 33689 // A collection of bucket events for which to send notifications 33690 // 33691 // Events is a required field 33692 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 33693 33694 // Specifies object key name filtering rules. For information about key name 33695 // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 33696 // in the Amazon S3 User Guide. 33697 Filter *NotificationConfigurationFilter `type:"structure"` 33698 33699 // An optional unique identifier for configurations in a notification configuration. 33700 // If you don't provide one, Amazon S3 will assign an ID. 33701 Id *string `type:"string"` 33702 33703 // The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 33704 // publishes a message when it detects events of the specified type. 33705 // 33706 // QueueArn is a required field 33707 QueueArn *string `locationName:"Queue" type:"string" required:"true"` 33708 } 33709 33710 // String returns the string representation. 33711 // 33712 // API parameter values that are decorated as "sensitive" in the API will not 33713 // be included in the string output. The member name will be present, but the 33714 // value will be replaced with "sensitive". 33715 func (s QueueConfiguration) String() string { 33716 return awsutil.Prettify(s) 33717 } 33718 33719 // GoString returns the string representation. 33720 // 33721 // API parameter values that are decorated as "sensitive" in the API will not 33722 // be included in the string output. The member name will be present, but the 33723 // value will be replaced with "sensitive". 33724 func (s QueueConfiguration) GoString() string { 33725 return s.String() 33726 } 33727 33728 // Validate inspects the fields of the type to determine if they are valid. 33729 func (s *QueueConfiguration) Validate() error { 33730 invalidParams := request.ErrInvalidParams{Context: "QueueConfiguration"} 33731 if s.Events == nil { 33732 invalidParams.Add(request.NewErrParamRequired("Events")) 33733 } 33734 if s.QueueArn == nil { 33735 invalidParams.Add(request.NewErrParamRequired("QueueArn")) 33736 } 33737 33738 if invalidParams.Len() > 0 { 33739 return invalidParams 33740 } 33741 return nil 33742 } 33743 33744 // SetEvents sets the Events field's value. 33745 func (s *QueueConfiguration) SetEvents(v []*string) *QueueConfiguration { 33746 s.Events = v 33747 return s 33748 } 33749 33750 // SetFilter sets the Filter field's value. 33751 func (s *QueueConfiguration) SetFilter(v *NotificationConfigurationFilter) *QueueConfiguration { 33752 s.Filter = v 33753 return s 33754 } 33755 33756 // SetId sets the Id field's value. 33757 func (s *QueueConfiguration) SetId(v string) *QueueConfiguration { 33758 s.Id = &v 33759 return s 33760 } 33761 33762 // SetQueueArn sets the QueueArn field's value. 33763 func (s *QueueConfiguration) SetQueueArn(v string) *QueueConfiguration { 33764 s.QueueArn = &v 33765 return s 33766 } 33767 33768 // This data type is deprecated. Use QueueConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_QueueConfiguration.html) 33769 // for the same purposes. This data type specifies the configuration for publishing 33770 // messages to an Amazon Simple Queue Service (Amazon SQS) queue when Amazon 33771 // S3 detects specified events. 33772 type QueueConfigurationDeprecated struct { 33773 _ struct{} `type:"structure"` 33774 33775 // The bucket event for which to send notifications. 33776 // 33777 // Deprecated: Event has been deprecated 33778 Event *string `deprecated:"true" type:"string" enum:"Event"` 33779 33780 // A collection of bucket events for which to send notifications. 33781 Events []*string `locationName:"Event" type:"list" flattened:"true"` 33782 33783 // An optional unique identifier for configurations in a notification configuration. 33784 // If you don't provide one, Amazon S3 will assign an ID. 33785 Id *string `type:"string"` 33786 33787 // The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 33788 // publishes a message when it detects events of the specified type. 33789 Queue *string `type:"string"` 33790 } 33791 33792 // String returns the string representation. 33793 // 33794 // API parameter values that are decorated as "sensitive" in the API will not 33795 // be included in the string output. The member name will be present, but the 33796 // value will be replaced with "sensitive". 33797 func (s QueueConfigurationDeprecated) String() string { 33798 return awsutil.Prettify(s) 33799 } 33800 33801 // GoString returns the string representation. 33802 // 33803 // API parameter values that are decorated as "sensitive" in the API will not 33804 // be included in the string output. The member name will be present, but the 33805 // value will be replaced with "sensitive". 33806 func (s QueueConfigurationDeprecated) GoString() string { 33807 return s.String() 33808 } 33809 33810 // SetEvent sets the Event field's value. 33811 func (s *QueueConfigurationDeprecated) SetEvent(v string) *QueueConfigurationDeprecated { 33812 s.Event = &v 33813 return s 33814 } 33815 33816 // SetEvents sets the Events field's value. 33817 func (s *QueueConfigurationDeprecated) SetEvents(v []*string) *QueueConfigurationDeprecated { 33818 s.Events = v 33819 return s 33820 } 33821 33822 // SetId sets the Id field's value. 33823 func (s *QueueConfigurationDeprecated) SetId(v string) *QueueConfigurationDeprecated { 33824 s.Id = &v 33825 return s 33826 } 33827 33828 // SetQueue sets the Queue field's value. 33829 func (s *QueueConfigurationDeprecated) SetQueue(v string) *QueueConfigurationDeprecated { 33830 s.Queue = &v 33831 return s 33832 } 33833 33834 // The container for the records event. 33835 type RecordsEvent struct { 33836 _ struct{} `locationName:"RecordsEvent" type:"structure" payload:"Payload"` 33837 33838 // The byte array of partial, one or more result records. 33839 // Payload is automatically base64 encoded/decoded by the SDK. 33840 Payload []byte `type:"blob"` 33841 } 33842 33843 // String returns the string representation. 33844 // 33845 // API parameter values that are decorated as "sensitive" in the API will not 33846 // be included in the string output. The member name will be present, but the 33847 // value will be replaced with "sensitive". 33848 func (s RecordsEvent) String() string { 33849 return awsutil.Prettify(s) 33850 } 33851 33852 // GoString returns the string representation. 33853 // 33854 // API parameter values that are decorated as "sensitive" in the API will not 33855 // be included in the string output. The member name will be present, but the 33856 // value will be replaced with "sensitive". 33857 func (s RecordsEvent) GoString() string { 33858 return s.String() 33859 } 33860 33861 // SetPayload sets the Payload field's value. 33862 func (s *RecordsEvent) SetPayload(v []byte) *RecordsEvent { 33863 s.Payload = v 33864 return s 33865 } 33866 33867 // The RecordsEvent is and event in the SelectObjectContentEventStream group of events. 33868 func (s *RecordsEvent) eventSelectObjectContentEventStream() {} 33869 33870 // UnmarshalEvent unmarshals the EventStream Message into the RecordsEvent value. 33871 // This method is only used internally within the SDK's EventStream handling. 33872 func (s *RecordsEvent) UnmarshalEvent( 33873 payloadUnmarshaler protocol.PayloadUnmarshaler, 33874 msg eventstream.Message, 33875 ) error { 33876 s.Payload = make([]byte, len(msg.Payload)) 33877 copy(s.Payload, msg.Payload) 33878 return nil 33879 } 33880 33881 // MarshalEvent marshals the type into an stream event value. This method 33882 // should only used internally within the SDK's EventStream handling. 33883 func (s *RecordsEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 33884 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 33885 msg.Headers.Set(":content-type", eventstream.StringValue("application/octet-stream")) 33886 msg.Payload = s.Payload 33887 return msg, err 33888 } 33889 33890 // Specifies how requests are redirected. In the event of an error, you can 33891 // specify a different error code to return. 33892 type Redirect struct { 33893 _ struct{} `type:"structure"` 33894 33895 // The host name to use in the redirect request. 33896 HostName *string `type:"string"` 33897 33898 // The HTTP redirect code to use on the response. Not required if one of the 33899 // siblings is present. 33900 HttpRedirectCode *string `type:"string"` 33901 33902 // Protocol to use when redirecting requests. The default is the protocol that 33903 // is used in the original request. 33904 Protocol *string `type:"string" enum:"Protocol"` 33905 33906 // The object key prefix to use in the redirect request. For example, to redirect 33907 // requests for all pages with prefix docs/ (objects in the docs/ folder) to 33908 // documents/, you can set a condition block with KeyPrefixEquals set to docs/ 33909 // and in the Redirect set ReplaceKeyPrefixWith to /documents. Not required 33910 // if one of the siblings is present. Can be present only if ReplaceKeyWith 33911 // is not provided. 33912 // 33913 // Replacement must be made for object keys containing special characters (such 33914 // as carriage returns) when using XML requests. For more information, see XML 33915 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 33916 ReplaceKeyPrefixWith *string `type:"string"` 33917 33918 // The specific object key to use in the redirect request. For example, redirect 33919 // request to error.html. Not required if one of the siblings is present. Can 33920 // be present only if ReplaceKeyPrefixWith is not provided. 33921 // 33922 // Replacement must be made for object keys containing special characters (such 33923 // as carriage returns) when using XML requests. For more information, see XML 33924 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 33925 ReplaceKeyWith *string `type:"string"` 33926 } 33927 33928 // String returns the string representation. 33929 // 33930 // API parameter values that are decorated as "sensitive" in the API will not 33931 // be included in the string output. The member name will be present, but the 33932 // value will be replaced with "sensitive". 33933 func (s Redirect) String() string { 33934 return awsutil.Prettify(s) 33935 } 33936 33937 // GoString returns the string representation. 33938 // 33939 // API parameter values that are decorated as "sensitive" in the API will not 33940 // be included in the string output. The member name will be present, but the 33941 // value will be replaced with "sensitive". 33942 func (s Redirect) GoString() string { 33943 return s.String() 33944 } 33945 33946 // SetHostName sets the HostName field's value. 33947 func (s *Redirect) SetHostName(v string) *Redirect { 33948 s.HostName = &v 33949 return s 33950 } 33951 33952 // SetHttpRedirectCode sets the HttpRedirectCode field's value. 33953 func (s *Redirect) SetHttpRedirectCode(v string) *Redirect { 33954 s.HttpRedirectCode = &v 33955 return s 33956 } 33957 33958 // SetProtocol sets the Protocol field's value. 33959 func (s *Redirect) SetProtocol(v string) *Redirect { 33960 s.Protocol = &v 33961 return s 33962 } 33963 33964 // SetReplaceKeyPrefixWith sets the ReplaceKeyPrefixWith field's value. 33965 func (s *Redirect) SetReplaceKeyPrefixWith(v string) *Redirect { 33966 s.ReplaceKeyPrefixWith = &v 33967 return s 33968 } 33969 33970 // SetReplaceKeyWith sets the ReplaceKeyWith field's value. 33971 func (s *Redirect) SetReplaceKeyWith(v string) *Redirect { 33972 s.ReplaceKeyWith = &v 33973 return s 33974 } 33975 33976 // Specifies the redirect behavior of all requests to a website endpoint of 33977 // an Amazon S3 bucket. 33978 type RedirectAllRequestsTo struct { 33979 _ struct{} `type:"structure"` 33980 33981 // Name of the host where requests are redirected. 33982 // 33983 // HostName is a required field 33984 HostName *string `type:"string" required:"true"` 33985 33986 // Protocol to use when redirecting requests. The default is the protocol that 33987 // is used in the original request. 33988 Protocol *string `type:"string" enum:"Protocol"` 33989 } 33990 33991 // String returns the string representation. 33992 // 33993 // API parameter values that are decorated as "sensitive" in the API will not 33994 // be included in the string output. The member name will be present, but the 33995 // value will be replaced with "sensitive". 33996 func (s RedirectAllRequestsTo) String() string { 33997 return awsutil.Prettify(s) 33998 } 33999 34000 // GoString returns the string representation. 34001 // 34002 // API parameter values that are decorated as "sensitive" in the API will not 34003 // be included in the string output. The member name will be present, but the 34004 // value will be replaced with "sensitive". 34005 func (s RedirectAllRequestsTo) GoString() string { 34006 return s.String() 34007 } 34008 34009 // Validate inspects the fields of the type to determine if they are valid. 34010 func (s *RedirectAllRequestsTo) Validate() error { 34011 invalidParams := request.ErrInvalidParams{Context: "RedirectAllRequestsTo"} 34012 if s.HostName == nil { 34013 invalidParams.Add(request.NewErrParamRequired("HostName")) 34014 } 34015 34016 if invalidParams.Len() > 0 { 34017 return invalidParams 34018 } 34019 return nil 34020 } 34021 34022 // SetHostName sets the HostName field's value. 34023 func (s *RedirectAllRequestsTo) SetHostName(v string) *RedirectAllRequestsTo { 34024 s.HostName = &v 34025 return s 34026 } 34027 34028 // SetProtocol sets the Protocol field's value. 34029 func (s *RedirectAllRequestsTo) SetProtocol(v string) *RedirectAllRequestsTo { 34030 s.Protocol = &v 34031 return s 34032 } 34033 34034 // A filter that you can specify for selection for modifications on replicas. 34035 // Amazon S3 doesn't replicate replica modifications by default. In the latest 34036 // version of replication configuration (when Filter is specified), you can 34037 // specify this element and set the status to Enabled to replicate modifications 34038 // on replicas. 34039 // 34040 // If you don't specify the Filter element, Amazon S3 assumes that the replication 34041 // configuration is the earlier version, V1. In the earlier version, this element 34042 // is not allowed. 34043 type ReplicaModifications struct { 34044 _ struct{} `type:"structure"` 34045 34046 // Specifies whether Amazon S3 replicates modifications on replicas. 34047 // 34048 // Status is a required field 34049 Status *string `type:"string" required:"true" enum:"ReplicaModificationsStatus"` 34050 } 34051 34052 // String returns the string representation. 34053 // 34054 // API parameter values that are decorated as "sensitive" in the API will not 34055 // be included in the string output. The member name will be present, but the 34056 // value will be replaced with "sensitive". 34057 func (s ReplicaModifications) String() string { 34058 return awsutil.Prettify(s) 34059 } 34060 34061 // GoString returns the string representation. 34062 // 34063 // API parameter values that are decorated as "sensitive" in the API will not 34064 // be included in the string output. The member name will be present, but the 34065 // value will be replaced with "sensitive". 34066 func (s ReplicaModifications) GoString() string { 34067 return s.String() 34068 } 34069 34070 // Validate inspects the fields of the type to determine if they are valid. 34071 func (s *ReplicaModifications) Validate() error { 34072 invalidParams := request.ErrInvalidParams{Context: "ReplicaModifications"} 34073 if s.Status == nil { 34074 invalidParams.Add(request.NewErrParamRequired("Status")) 34075 } 34076 34077 if invalidParams.Len() > 0 { 34078 return invalidParams 34079 } 34080 return nil 34081 } 34082 34083 // SetStatus sets the Status field's value. 34084 func (s *ReplicaModifications) SetStatus(v string) *ReplicaModifications { 34085 s.Status = &v 34086 return s 34087 } 34088 34089 // A container for replication rules. You can add up to 1,000 rules. The maximum 34090 // size of a replication configuration is 2 MB. 34091 type ReplicationConfiguration struct { 34092 _ struct{} `type:"structure"` 34093 34094 // The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) 34095 // role that Amazon S3 assumes when replicating objects. For more information, 34096 // see How to Set Up Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) 34097 // in the Amazon S3 User Guide. 34098 // 34099 // Role is a required field 34100 Role *string `type:"string" required:"true"` 34101 34102 // A container for one or more replication rules. A replication configuration 34103 // must have at least one rule and can contain a maximum of 1,000 rules. 34104 // 34105 // Rules is a required field 34106 Rules []*ReplicationRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` 34107 } 34108 34109 // String returns the string representation. 34110 // 34111 // API parameter values that are decorated as "sensitive" in the API will not 34112 // be included in the string output. The member name will be present, but the 34113 // value will be replaced with "sensitive". 34114 func (s ReplicationConfiguration) String() string { 34115 return awsutil.Prettify(s) 34116 } 34117 34118 // GoString returns the string representation. 34119 // 34120 // API parameter values that are decorated as "sensitive" in the API will not 34121 // be included in the string output. The member name will be present, but the 34122 // value will be replaced with "sensitive". 34123 func (s ReplicationConfiguration) GoString() string { 34124 return s.String() 34125 } 34126 34127 // Validate inspects the fields of the type to determine if they are valid. 34128 func (s *ReplicationConfiguration) Validate() error { 34129 invalidParams := request.ErrInvalidParams{Context: "ReplicationConfiguration"} 34130 if s.Role == nil { 34131 invalidParams.Add(request.NewErrParamRequired("Role")) 34132 } 34133 if s.Rules == nil { 34134 invalidParams.Add(request.NewErrParamRequired("Rules")) 34135 } 34136 if s.Rules != nil { 34137 for i, v := range s.Rules { 34138 if v == nil { 34139 continue 34140 } 34141 if err := v.Validate(); err != nil { 34142 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 34143 } 34144 } 34145 } 34146 34147 if invalidParams.Len() > 0 { 34148 return invalidParams 34149 } 34150 return nil 34151 } 34152 34153 // SetRole sets the Role field's value. 34154 func (s *ReplicationConfiguration) SetRole(v string) *ReplicationConfiguration { 34155 s.Role = &v 34156 return s 34157 } 34158 34159 // SetRules sets the Rules field's value. 34160 func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationConfiguration { 34161 s.Rules = v 34162 return s 34163 } 34164 34165 // Specifies which Amazon S3 objects to replicate and where to store the replicas. 34166 type ReplicationRule struct { 34167 _ struct{} `type:"structure"` 34168 34169 // Specifies whether Amazon S3 replicates delete markers. If you specify a Filter 34170 // in your replication configuration, you must also include a DeleteMarkerReplication 34171 // element. If your Filter includes a Tag element, the DeleteMarkerReplication 34172 // Status must be set to Disabled, because Amazon S3 does not support replicating 34173 // delete markers for tag-based rules. For an example configuration, see Basic 34174 // Rule Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). 34175 // 34176 // For more information about delete marker replication, see Basic Rule Configuration 34177 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). 34178 // 34179 // If you are using an earlier version of the replication configuration, Amazon 34180 // S3 handles replication of delete markers differently. For more information, 34181 // see Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). 34182 DeleteMarkerReplication *DeleteMarkerReplication `type:"structure"` 34183 34184 // A container for information about the replication destination and its configurations 34185 // including enabling the S3 Replication Time Control (S3 RTC). 34186 // 34187 // Destination is a required field 34188 Destination *Destination `type:"structure" required:"true"` 34189 34190 // Optional configuration to replicate existing source bucket objects. For more 34191 // information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) 34192 // in the Amazon S3 User Guide. 34193 ExistingObjectReplication *ExistingObjectReplication `type:"structure"` 34194 34195 // A filter that identifies the subset of objects to which the replication rule 34196 // applies. A Filter must specify exactly one Prefix, Tag, or an And child element. 34197 Filter *ReplicationRuleFilter `type:"structure"` 34198 34199 // A unique identifier for the rule. The maximum value is 255 characters. 34200 ID *string `type:"string"` 34201 34202 // An object key name prefix that identifies the object or objects to which 34203 // the rule applies. The maximum prefix length is 1,024 characters. To include 34204 // all objects in a bucket, specify an empty string. 34205 // 34206 // Replacement must be made for object keys containing special characters (such 34207 // as carriage returns) when using XML requests. For more information, see XML 34208 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 34209 // 34210 // Deprecated: Prefix has been deprecated 34211 Prefix *string `deprecated:"true" type:"string"` 34212 34213 // The priority indicates which rule has precedence whenever two or more replication 34214 // rules conflict. Amazon S3 will attempt to replicate objects according to 34215 // all replication rules. However, if there are two or more rules with the same 34216 // destination bucket, then objects will be replicated according to the rule 34217 // with the highest priority. The higher the number, the higher the priority. 34218 // 34219 // For more information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) 34220 // in the Amazon S3 User Guide. 34221 Priority *int64 `type:"integer"` 34222 34223 // A container that describes additional filters for identifying the source 34224 // objects that you want to replicate. You can choose to enable or disable the 34225 // replication of these objects. Currently, Amazon S3 supports only the filter 34226 // that you can specify for objects created with server-side encryption using 34227 // a customer managed key stored in Amazon Web Services Key Management Service 34228 // (SSE-KMS). 34229 SourceSelectionCriteria *SourceSelectionCriteria `type:"structure"` 34230 34231 // Specifies whether the rule is enabled. 34232 // 34233 // Status is a required field 34234 Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"` 34235 } 34236 34237 // String returns the string representation. 34238 // 34239 // API parameter values that are decorated as "sensitive" in the API will not 34240 // be included in the string output. The member name will be present, but the 34241 // value will be replaced with "sensitive". 34242 func (s ReplicationRule) String() string { 34243 return awsutil.Prettify(s) 34244 } 34245 34246 // GoString returns the string representation. 34247 // 34248 // API parameter values that are decorated as "sensitive" in the API will not 34249 // be included in the string output. The member name will be present, but the 34250 // value will be replaced with "sensitive". 34251 func (s ReplicationRule) GoString() string { 34252 return s.String() 34253 } 34254 34255 // Validate inspects the fields of the type to determine if they are valid. 34256 func (s *ReplicationRule) Validate() error { 34257 invalidParams := request.ErrInvalidParams{Context: "ReplicationRule"} 34258 if s.Destination == nil { 34259 invalidParams.Add(request.NewErrParamRequired("Destination")) 34260 } 34261 if s.Status == nil { 34262 invalidParams.Add(request.NewErrParamRequired("Status")) 34263 } 34264 if s.Destination != nil { 34265 if err := s.Destination.Validate(); err != nil { 34266 invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) 34267 } 34268 } 34269 if s.ExistingObjectReplication != nil { 34270 if err := s.ExistingObjectReplication.Validate(); err != nil { 34271 invalidParams.AddNested("ExistingObjectReplication", err.(request.ErrInvalidParams)) 34272 } 34273 } 34274 if s.Filter != nil { 34275 if err := s.Filter.Validate(); err != nil { 34276 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 34277 } 34278 } 34279 if s.SourceSelectionCriteria != nil { 34280 if err := s.SourceSelectionCriteria.Validate(); err != nil { 34281 invalidParams.AddNested("SourceSelectionCriteria", err.(request.ErrInvalidParams)) 34282 } 34283 } 34284 34285 if invalidParams.Len() > 0 { 34286 return invalidParams 34287 } 34288 return nil 34289 } 34290 34291 // SetDeleteMarkerReplication sets the DeleteMarkerReplication field's value. 34292 func (s *ReplicationRule) SetDeleteMarkerReplication(v *DeleteMarkerReplication) *ReplicationRule { 34293 s.DeleteMarkerReplication = v 34294 return s 34295 } 34296 34297 // SetDestination sets the Destination field's value. 34298 func (s *ReplicationRule) SetDestination(v *Destination) *ReplicationRule { 34299 s.Destination = v 34300 return s 34301 } 34302 34303 // SetExistingObjectReplication sets the ExistingObjectReplication field's value. 34304 func (s *ReplicationRule) SetExistingObjectReplication(v *ExistingObjectReplication) *ReplicationRule { 34305 s.ExistingObjectReplication = v 34306 return s 34307 } 34308 34309 // SetFilter sets the Filter field's value. 34310 func (s *ReplicationRule) SetFilter(v *ReplicationRuleFilter) *ReplicationRule { 34311 s.Filter = v 34312 return s 34313 } 34314 34315 // SetID sets the ID field's value. 34316 func (s *ReplicationRule) SetID(v string) *ReplicationRule { 34317 s.ID = &v 34318 return s 34319 } 34320 34321 // SetPrefix sets the Prefix field's value. 34322 func (s *ReplicationRule) SetPrefix(v string) *ReplicationRule { 34323 s.Prefix = &v 34324 return s 34325 } 34326 34327 // SetPriority sets the Priority field's value. 34328 func (s *ReplicationRule) SetPriority(v int64) *ReplicationRule { 34329 s.Priority = &v 34330 return s 34331 } 34332 34333 // SetSourceSelectionCriteria sets the SourceSelectionCriteria field's value. 34334 func (s *ReplicationRule) SetSourceSelectionCriteria(v *SourceSelectionCriteria) *ReplicationRule { 34335 s.SourceSelectionCriteria = v 34336 return s 34337 } 34338 34339 // SetStatus sets the Status field's value. 34340 func (s *ReplicationRule) SetStatus(v string) *ReplicationRule { 34341 s.Status = &v 34342 return s 34343 } 34344 34345 // A container for specifying rule filters. The filters determine the subset 34346 // of objects to which the rule applies. This element is required only if you 34347 // specify more than one filter. 34348 // 34349 // For example: 34350 // 34351 // * If you specify both a Prefix and a Tag filter, wrap these filters in 34352 // an And tag. 34353 // 34354 // * If you specify a filter based on multiple tags, wrap the Tag elements 34355 // in an And tag. 34356 type ReplicationRuleAndOperator struct { 34357 _ struct{} `type:"structure"` 34358 34359 // An object key name prefix that identifies the subset of objects to which 34360 // the rule applies. 34361 Prefix *string `type:"string"` 34362 34363 // An array of tags containing key and value pairs. 34364 Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` 34365 } 34366 34367 // String returns the string representation. 34368 // 34369 // API parameter values that are decorated as "sensitive" in the API will not 34370 // be included in the string output. The member name will be present, but the 34371 // value will be replaced with "sensitive". 34372 func (s ReplicationRuleAndOperator) String() string { 34373 return awsutil.Prettify(s) 34374 } 34375 34376 // GoString returns the string representation. 34377 // 34378 // API parameter values that are decorated as "sensitive" in the API will not 34379 // be included in the string output. The member name will be present, but the 34380 // value will be replaced with "sensitive". 34381 func (s ReplicationRuleAndOperator) GoString() string { 34382 return s.String() 34383 } 34384 34385 // Validate inspects the fields of the type to determine if they are valid. 34386 func (s *ReplicationRuleAndOperator) Validate() error { 34387 invalidParams := request.ErrInvalidParams{Context: "ReplicationRuleAndOperator"} 34388 if s.Tags != nil { 34389 for i, v := range s.Tags { 34390 if v == nil { 34391 continue 34392 } 34393 if err := v.Validate(); err != nil { 34394 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 34395 } 34396 } 34397 } 34398 34399 if invalidParams.Len() > 0 { 34400 return invalidParams 34401 } 34402 return nil 34403 } 34404 34405 // SetPrefix sets the Prefix field's value. 34406 func (s *ReplicationRuleAndOperator) SetPrefix(v string) *ReplicationRuleAndOperator { 34407 s.Prefix = &v 34408 return s 34409 } 34410 34411 // SetTags sets the Tags field's value. 34412 func (s *ReplicationRuleAndOperator) SetTags(v []*Tag) *ReplicationRuleAndOperator { 34413 s.Tags = v 34414 return s 34415 } 34416 34417 // A filter that identifies the subset of objects to which the replication rule 34418 // applies. A Filter must specify exactly one Prefix, Tag, or an And child element. 34419 type ReplicationRuleFilter struct { 34420 _ struct{} `type:"structure"` 34421 34422 // A container for specifying rule filters. The filters determine the subset 34423 // of objects to which the rule applies. This element is required only if you 34424 // specify more than one filter. For example: 34425 // 34426 // * If you specify both a Prefix and a Tag filter, wrap these filters in 34427 // an And tag. 34428 // 34429 // * If you specify a filter based on multiple tags, wrap the Tag elements 34430 // in an And tag. 34431 And *ReplicationRuleAndOperator `type:"structure"` 34432 34433 // An object key name prefix that identifies the subset of objects to which 34434 // the rule applies. 34435 // 34436 // Replacement must be made for object keys containing special characters (such 34437 // as carriage returns) when using XML requests. For more information, see XML 34438 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 34439 Prefix *string `type:"string"` 34440 34441 // A container for specifying a tag key and value. 34442 // 34443 // The rule applies only to objects that have the tag in their tag set. 34444 Tag *Tag `type:"structure"` 34445 } 34446 34447 // String returns the string representation. 34448 // 34449 // API parameter values that are decorated as "sensitive" in the API will not 34450 // be included in the string output. The member name will be present, but the 34451 // value will be replaced with "sensitive". 34452 func (s ReplicationRuleFilter) String() string { 34453 return awsutil.Prettify(s) 34454 } 34455 34456 // GoString returns the string representation. 34457 // 34458 // API parameter values that are decorated as "sensitive" in the API will not 34459 // be included in the string output. The member name will be present, but the 34460 // value will be replaced with "sensitive". 34461 func (s ReplicationRuleFilter) GoString() string { 34462 return s.String() 34463 } 34464 34465 // Validate inspects the fields of the type to determine if they are valid. 34466 func (s *ReplicationRuleFilter) Validate() error { 34467 invalidParams := request.ErrInvalidParams{Context: "ReplicationRuleFilter"} 34468 if s.And != nil { 34469 if err := s.And.Validate(); err != nil { 34470 invalidParams.AddNested("And", err.(request.ErrInvalidParams)) 34471 } 34472 } 34473 if s.Tag != nil { 34474 if err := s.Tag.Validate(); err != nil { 34475 invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) 34476 } 34477 } 34478 34479 if invalidParams.Len() > 0 { 34480 return invalidParams 34481 } 34482 return nil 34483 } 34484 34485 // SetAnd sets the And field's value. 34486 func (s *ReplicationRuleFilter) SetAnd(v *ReplicationRuleAndOperator) *ReplicationRuleFilter { 34487 s.And = v 34488 return s 34489 } 34490 34491 // SetPrefix sets the Prefix field's value. 34492 func (s *ReplicationRuleFilter) SetPrefix(v string) *ReplicationRuleFilter { 34493 s.Prefix = &v 34494 return s 34495 } 34496 34497 // SetTag sets the Tag field's value. 34498 func (s *ReplicationRuleFilter) SetTag(v *Tag) *ReplicationRuleFilter { 34499 s.Tag = v 34500 return s 34501 } 34502 34503 // A container specifying S3 Replication Time Control (S3 RTC) related information, 34504 // including whether S3 RTC is enabled and the time when all objects and operations 34505 // on objects must be replicated. Must be specified together with a Metrics 34506 // block. 34507 type ReplicationTime struct { 34508 _ struct{} `type:"structure"` 34509 34510 // Specifies whether the replication time is enabled. 34511 // 34512 // Status is a required field 34513 Status *string `type:"string" required:"true" enum:"ReplicationTimeStatus"` 34514 34515 // A container specifying the time by which replication should be complete for 34516 // all objects and operations on objects. 34517 // 34518 // Time is a required field 34519 Time *ReplicationTimeValue `type:"structure" required:"true"` 34520 } 34521 34522 // String returns the string representation. 34523 // 34524 // API parameter values that are decorated as "sensitive" in the API will not 34525 // be included in the string output. The member name will be present, but the 34526 // value will be replaced with "sensitive". 34527 func (s ReplicationTime) String() string { 34528 return awsutil.Prettify(s) 34529 } 34530 34531 // GoString returns the string representation. 34532 // 34533 // API parameter values that are decorated as "sensitive" in the API will not 34534 // be included in the string output. The member name will be present, but the 34535 // value will be replaced with "sensitive". 34536 func (s ReplicationTime) GoString() string { 34537 return s.String() 34538 } 34539 34540 // Validate inspects the fields of the type to determine if they are valid. 34541 func (s *ReplicationTime) Validate() error { 34542 invalidParams := request.ErrInvalidParams{Context: "ReplicationTime"} 34543 if s.Status == nil { 34544 invalidParams.Add(request.NewErrParamRequired("Status")) 34545 } 34546 if s.Time == nil { 34547 invalidParams.Add(request.NewErrParamRequired("Time")) 34548 } 34549 34550 if invalidParams.Len() > 0 { 34551 return invalidParams 34552 } 34553 return nil 34554 } 34555 34556 // SetStatus sets the Status field's value. 34557 func (s *ReplicationTime) SetStatus(v string) *ReplicationTime { 34558 s.Status = &v 34559 return s 34560 } 34561 34562 // SetTime sets the Time field's value. 34563 func (s *ReplicationTime) SetTime(v *ReplicationTimeValue) *ReplicationTime { 34564 s.Time = v 34565 return s 34566 } 34567 34568 // A container specifying the time value for S3 Replication Time Control (S3 34569 // RTC) and replication metrics EventThreshold. 34570 type ReplicationTimeValue struct { 34571 _ struct{} `type:"structure"` 34572 34573 // Contains an integer specifying time in minutes. 34574 // 34575 // Valid value: 15 34576 Minutes *int64 `type:"integer"` 34577 } 34578 34579 // String returns the string representation. 34580 // 34581 // API parameter values that are decorated as "sensitive" in the API will not 34582 // be included in the string output. The member name will be present, but the 34583 // value will be replaced with "sensitive". 34584 func (s ReplicationTimeValue) String() string { 34585 return awsutil.Prettify(s) 34586 } 34587 34588 // GoString returns the string representation. 34589 // 34590 // API parameter values that are decorated as "sensitive" in the API will not 34591 // be included in the string output. The member name will be present, but the 34592 // value will be replaced with "sensitive". 34593 func (s ReplicationTimeValue) GoString() string { 34594 return s.String() 34595 } 34596 34597 // SetMinutes sets the Minutes field's value. 34598 func (s *ReplicationTimeValue) SetMinutes(v int64) *ReplicationTimeValue { 34599 s.Minutes = &v 34600 return s 34601 } 34602 34603 // Container for Payer. 34604 type RequestPaymentConfiguration struct { 34605 _ struct{} `type:"structure"` 34606 34607 // Specifies who pays for the download and request fees. 34608 // 34609 // Payer is a required field 34610 Payer *string `type:"string" required:"true" enum:"Payer"` 34611 } 34612 34613 // String returns the string representation. 34614 // 34615 // API parameter values that are decorated as "sensitive" in the API will not 34616 // be included in the string output. The member name will be present, but the 34617 // value will be replaced with "sensitive". 34618 func (s RequestPaymentConfiguration) String() string { 34619 return awsutil.Prettify(s) 34620 } 34621 34622 // GoString returns the string representation. 34623 // 34624 // API parameter values that are decorated as "sensitive" in the API will not 34625 // be included in the string output. The member name will be present, but the 34626 // value will be replaced with "sensitive". 34627 func (s RequestPaymentConfiguration) GoString() string { 34628 return s.String() 34629 } 34630 34631 // Validate inspects the fields of the type to determine if they are valid. 34632 func (s *RequestPaymentConfiguration) Validate() error { 34633 invalidParams := request.ErrInvalidParams{Context: "RequestPaymentConfiguration"} 34634 if s.Payer == nil { 34635 invalidParams.Add(request.NewErrParamRequired("Payer")) 34636 } 34637 34638 if invalidParams.Len() > 0 { 34639 return invalidParams 34640 } 34641 return nil 34642 } 34643 34644 // SetPayer sets the Payer field's value. 34645 func (s *RequestPaymentConfiguration) SetPayer(v string) *RequestPaymentConfiguration { 34646 s.Payer = &v 34647 return s 34648 } 34649 34650 // Container for specifying if periodic QueryProgress messages should be sent. 34651 type RequestProgress struct { 34652 _ struct{} `type:"structure"` 34653 34654 // Specifies whether periodic QueryProgress frames should be sent. Valid values: 34655 // TRUE, FALSE. Default value: FALSE. 34656 Enabled *bool `type:"boolean"` 34657 } 34658 34659 // String returns the string representation. 34660 // 34661 // API parameter values that are decorated as "sensitive" in the API will not 34662 // be included in the string output. The member name will be present, but the 34663 // value will be replaced with "sensitive". 34664 func (s RequestProgress) String() string { 34665 return awsutil.Prettify(s) 34666 } 34667 34668 // GoString returns the string representation. 34669 // 34670 // API parameter values that are decorated as "sensitive" in the API will not 34671 // be included in the string output. The member name will be present, but the 34672 // value will be replaced with "sensitive". 34673 func (s RequestProgress) GoString() string { 34674 return s.String() 34675 } 34676 34677 // SetEnabled sets the Enabled field's value. 34678 func (s *RequestProgress) SetEnabled(v bool) *RequestProgress { 34679 s.Enabled = &v 34680 return s 34681 } 34682 34683 type RestoreObjectInput struct { 34684 _ struct{} `locationName:"RestoreObjectRequest" type:"structure" payload:"RestoreRequest"` 34685 34686 // The bucket name containing the object to restore. 34687 // 34688 // When using this action with an access point, you must direct requests to 34689 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 34690 // When using this action with an access point through the Amazon Web Services 34691 // SDKs, you provide the access point ARN in place of the bucket name. For more 34692 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 34693 // in the Amazon S3 User Guide. 34694 // 34695 // When using this action with Amazon S3 on Outposts, you must direct requests 34696 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 34697 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 34698 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 34699 // you provide the Outposts bucket ARN in place of the bucket name. For more 34700 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 34701 // in the Amazon S3 User Guide. 34702 // 34703 // Bucket is a required field 34704 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 34705 34706 // The account ID of the expected bucket owner. If the bucket is owned by a 34707 // different account, the request will fail with an HTTP 403 (Access Denied) 34708 // error. 34709 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 34710 34711 // Object key for which the action was initiated. 34712 // 34713 // Key is a required field 34714 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 34715 34716 // Confirms that the requester knows that they will be charged for the request. 34717 // Bucket owners need not specify this parameter in their requests. For information 34718 // about downloading objects from requester pays buckets, see Downloading Objects 34719 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 34720 // in the Amazon S3 User Guide. 34721 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 34722 34723 // Container for restore job parameters. 34724 RestoreRequest *RestoreRequest `locationName:"RestoreRequest" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 34725 34726 // VersionId used to reference a specific version of the object. 34727 VersionId *string `location:"querystring" locationName:"versionId" type:"string"` 34728 } 34729 34730 // String returns the string representation. 34731 // 34732 // API parameter values that are decorated as "sensitive" in the API will not 34733 // be included in the string output. The member name will be present, but the 34734 // value will be replaced with "sensitive". 34735 func (s RestoreObjectInput) String() string { 34736 return awsutil.Prettify(s) 34737 } 34738 34739 // GoString returns the string representation. 34740 // 34741 // API parameter values that are decorated as "sensitive" in the API will not 34742 // be included in the string output. The member name will be present, but the 34743 // value will be replaced with "sensitive". 34744 func (s RestoreObjectInput) GoString() string { 34745 return s.String() 34746 } 34747 34748 // Validate inspects the fields of the type to determine if they are valid. 34749 func (s *RestoreObjectInput) Validate() error { 34750 invalidParams := request.ErrInvalidParams{Context: "RestoreObjectInput"} 34751 if s.Bucket == nil { 34752 invalidParams.Add(request.NewErrParamRequired("Bucket")) 34753 } 34754 if s.Bucket != nil && len(*s.Bucket) < 1 { 34755 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 34756 } 34757 if s.Key == nil { 34758 invalidParams.Add(request.NewErrParamRequired("Key")) 34759 } 34760 if s.Key != nil && len(*s.Key) < 1 { 34761 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 34762 } 34763 if s.RestoreRequest != nil { 34764 if err := s.RestoreRequest.Validate(); err != nil { 34765 invalidParams.AddNested("RestoreRequest", err.(request.ErrInvalidParams)) 34766 } 34767 } 34768 34769 if invalidParams.Len() > 0 { 34770 return invalidParams 34771 } 34772 return nil 34773 } 34774 34775 // SetBucket sets the Bucket field's value. 34776 func (s *RestoreObjectInput) SetBucket(v string) *RestoreObjectInput { 34777 s.Bucket = &v 34778 return s 34779 } 34780 34781 func (s *RestoreObjectInput) getBucket() (v string) { 34782 if s.Bucket == nil { 34783 return v 34784 } 34785 return *s.Bucket 34786 } 34787 34788 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 34789 func (s *RestoreObjectInput) SetExpectedBucketOwner(v string) *RestoreObjectInput { 34790 s.ExpectedBucketOwner = &v 34791 return s 34792 } 34793 34794 // SetKey sets the Key field's value. 34795 func (s *RestoreObjectInput) SetKey(v string) *RestoreObjectInput { 34796 s.Key = &v 34797 return s 34798 } 34799 34800 // SetRequestPayer sets the RequestPayer field's value. 34801 func (s *RestoreObjectInput) SetRequestPayer(v string) *RestoreObjectInput { 34802 s.RequestPayer = &v 34803 return s 34804 } 34805 34806 // SetRestoreRequest sets the RestoreRequest field's value. 34807 func (s *RestoreObjectInput) SetRestoreRequest(v *RestoreRequest) *RestoreObjectInput { 34808 s.RestoreRequest = v 34809 return s 34810 } 34811 34812 // SetVersionId sets the VersionId field's value. 34813 func (s *RestoreObjectInput) SetVersionId(v string) *RestoreObjectInput { 34814 s.VersionId = &v 34815 return s 34816 } 34817 34818 func (s *RestoreObjectInput) getEndpointARN() (arn.Resource, error) { 34819 if s.Bucket == nil { 34820 return nil, fmt.Errorf("member Bucket is nil") 34821 } 34822 return parseEndpointARN(*s.Bucket) 34823 } 34824 34825 func (s *RestoreObjectInput) hasEndpointARN() bool { 34826 if s.Bucket == nil { 34827 return false 34828 } 34829 return arn.IsARN(*s.Bucket) 34830 } 34831 34832 // updateArnableField updates the value of the input field that 34833 // takes an ARN as an input. This method is useful to backfill 34834 // the parsed resource name from ARN into the input member. 34835 // It returns a pointer to a modified copy of input and an error. 34836 // Note that original input is not modified. 34837 func (s RestoreObjectInput) updateArnableField(v string) (interface{}, error) { 34838 if s.Bucket == nil { 34839 return nil, fmt.Errorf("member Bucket is nil") 34840 } 34841 s.Bucket = aws.String(v) 34842 return &s, nil 34843 } 34844 34845 type RestoreObjectOutput struct { 34846 _ struct{} `type:"structure"` 34847 34848 // If present, indicates that the requester was successfully charged for the 34849 // request. 34850 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 34851 34852 // Indicates the path in the provided S3 output location where Select results 34853 // will be restored to. 34854 RestoreOutputPath *string `location:"header" locationName:"x-amz-restore-output-path" type:"string"` 34855 } 34856 34857 // String returns the string representation. 34858 // 34859 // API parameter values that are decorated as "sensitive" in the API will not 34860 // be included in the string output. The member name will be present, but the 34861 // value will be replaced with "sensitive". 34862 func (s RestoreObjectOutput) String() string { 34863 return awsutil.Prettify(s) 34864 } 34865 34866 // GoString returns the string representation. 34867 // 34868 // API parameter values that are decorated as "sensitive" in the API will not 34869 // be included in the string output. The member name will be present, but the 34870 // value will be replaced with "sensitive". 34871 func (s RestoreObjectOutput) GoString() string { 34872 return s.String() 34873 } 34874 34875 // SetRequestCharged sets the RequestCharged field's value. 34876 func (s *RestoreObjectOutput) SetRequestCharged(v string) *RestoreObjectOutput { 34877 s.RequestCharged = &v 34878 return s 34879 } 34880 34881 // SetRestoreOutputPath sets the RestoreOutputPath field's value. 34882 func (s *RestoreObjectOutput) SetRestoreOutputPath(v string) *RestoreObjectOutput { 34883 s.RestoreOutputPath = &v 34884 return s 34885 } 34886 34887 // Container for restore job parameters. 34888 type RestoreRequest struct { 34889 _ struct{} `type:"structure"` 34890 34891 // Lifetime of the active copy in days. Do not use with restores that specify 34892 // OutputLocation. 34893 // 34894 // The Days element is required for regular restores, and must not be provided 34895 // for select requests. 34896 Days *int64 `type:"integer"` 34897 34898 // The optional description for the job. 34899 Description *string `type:"string"` 34900 34901 // S3 Glacier related parameters pertaining to this job. Do not use with restores 34902 // that specify OutputLocation. 34903 GlacierJobParameters *GlacierJobParameters `type:"structure"` 34904 34905 // Describes the location where the restore job's output is stored. 34906 OutputLocation *OutputLocation `type:"structure"` 34907 34908 // Describes the parameters for Select job types. 34909 SelectParameters *SelectParameters `type:"structure"` 34910 34911 // Retrieval tier at which the restore will be processed. 34912 Tier *string `type:"string" enum:"Tier"` 34913 34914 // Type of restore request. 34915 Type *string `type:"string" enum:"RestoreRequestType"` 34916 } 34917 34918 // String returns the string representation. 34919 // 34920 // API parameter values that are decorated as "sensitive" in the API will not 34921 // be included in the string output. The member name will be present, but the 34922 // value will be replaced with "sensitive". 34923 func (s RestoreRequest) String() string { 34924 return awsutil.Prettify(s) 34925 } 34926 34927 // GoString returns the string representation. 34928 // 34929 // API parameter values that are decorated as "sensitive" in the API will not 34930 // be included in the string output. The member name will be present, but the 34931 // value will be replaced with "sensitive". 34932 func (s RestoreRequest) GoString() string { 34933 return s.String() 34934 } 34935 34936 // Validate inspects the fields of the type to determine if they are valid. 34937 func (s *RestoreRequest) Validate() error { 34938 invalidParams := request.ErrInvalidParams{Context: "RestoreRequest"} 34939 if s.GlacierJobParameters != nil { 34940 if err := s.GlacierJobParameters.Validate(); err != nil { 34941 invalidParams.AddNested("GlacierJobParameters", err.(request.ErrInvalidParams)) 34942 } 34943 } 34944 if s.OutputLocation != nil { 34945 if err := s.OutputLocation.Validate(); err != nil { 34946 invalidParams.AddNested("OutputLocation", err.(request.ErrInvalidParams)) 34947 } 34948 } 34949 if s.SelectParameters != nil { 34950 if err := s.SelectParameters.Validate(); err != nil { 34951 invalidParams.AddNested("SelectParameters", err.(request.ErrInvalidParams)) 34952 } 34953 } 34954 34955 if invalidParams.Len() > 0 { 34956 return invalidParams 34957 } 34958 return nil 34959 } 34960 34961 // SetDays sets the Days field's value. 34962 func (s *RestoreRequest) SetDays(v int64) *RestoreRequest { 34963 s.Days = &v 34964 return s 34965 } 34966 34967 // SetDescription sets the Description field's value. 34968 func (s *RestoreRequest) SetDescription(v string) *RestoreRequest { 34969 s.Description = &v 34970 return s 34971 } 34972 34973 // SetGlacierJobParameters sets the GlacierJobParameters field's value. 34974 func (s *RestoreRequest) SetGlacierJobParameters(v *GlacierJobParameters) *RestoreRequest { 34975 s.GlacierJobParameters = v 34976 return s 34977 } 34978 34979 // SetOutputLocation sets the OutputLocation field's value. 34980 func (s *RestoreRequest) SetOutputLocation(v *OutputLocation) *RestoreRequest { 34981 s.OutputLocation = v 34982 return s 34983 } 34984 34985 // SetSelectParameters sets the SelectParameters field's value. 34986 func (s *RestoreRequest) SetSelectParameters(v *SelectParameters) *RestoreRequest { 34987 s.SelectParameters = v 34988 return s 34989 } 34990 34991 // SetTier sets the Tier field's value. 34992 func (s *RestoreRequest) SetTier(v string) *RestoreRequest { 34993 s.Tier = &v 34994 return s 34995 } 34996 34997 // SetType sets the Type field's value. 34998 func (s *RestoreRequest) SetType(v string) *RestoreRequest { 34999 s.Type = &v 35000 return s 35001 } 35002 35003 // Specifies the redirect behavior and when a redirect is applied. For more 35004 // information about routing rules, see Configuring advanced conditional redirects 35005 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects) 35006 // in the Amazon S3 User Guide. 35007 type RoutingRule struct { 35008 _ struct{} `type:"structure"` 35009 35010 // A container for describing a condition that must be met for the specified 35011 // redirect to apply. For example, 1. If request is for pages in the /docs folder, 35012 // redirect to the /documents folder. 2. If request results in HTTP error 4xx, 35013 // redirect request to another host where you might process the error. 35014 Condition *Condition `type:"structure"` 35015 35016 // Container for redirect information. You can redirect requests to another 35017 // host, to another page, or with another protocol. In the event of an error, 35018 // you can specify a different error code to return. 35019 // 35020 // Redirect is a required field 35021 Redirect *Redirect `type:"structure" required:"true"` 35022 } 35023 35024 // String returns the string representation. 35025 // 35026 // API parameter values that are decorated as "sensitive" in the API will not 35027 // be included in the string output. The member name will be present, but the 35028 // value will be replaced with "sensitive". 35029 func (s RoutingRule) String() string { 35030 return awsutil.Prettify(s) 35031 } 35032 35033 // GoString returns the string representation. 35034 // 35035 // API parameter values that are decorated as "sensitive" in the API will not 35036 // be included in the string output. The member name will be present, but the 35037 // value will be replaced with "sensitive". 35038 func (s RoutingRule) GoString() string { 35039 return s.String() 35040 } 35041 35042 // Validate inspects the fields of the type to determine if they are valid. 35043 func (s *RoutingRule) Validate() error { 35044 invalidParams := request.ErrInvalidParams{Context: "RoutingRule"} 35045 if s.Redirect == nil { 35046 invalidParams.Add(request.NewErrParamRequired("Redirect")) 35047 } 35048 35049 if invalidParams.Len() > 0 { 35050 return invalidParams 35051 } 35052 return nil 35053 } 35054 35055 // SetCondition sets the Condition field's value. 35056 func (s *RoutingRule) SetCondition(v *Condition) *RoutingRule { 35057 s.Condition = v 35058 return s 35059 } 35060 35061 // SetRedirect sets the Redirect field's value. 35062 func (s *RoutingRule) SetRedirect(v *Redirect) *RoutingRule { 35063 s.Redirect = v 35064 return s 35065 } 35066 35067 // Specifies lifecycle rules for an Amazon S3 bucket. For more information, 35068 // see Put Bucket Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) 35069 // in the Amazon S3 API Reference. For examples, see Put Bucket Lifecycle Configuration 35070 // Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html#API_PutBucketLifecycleConfiguration_Examples). 35071 type Rule struct { 35072 _ struct{} `type:"structure"` 35073 35074 // Specifies the days since the initiation of an incomplete multipart upload 35075 // that Amazon S3 will wait before permanently removing all parts of the upload. 35076 // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket 35077 // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) 35078 // in the Amazon S3 User Guide. 35079 AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` 35080 35081 // Specifies the expiration for the lifecycle of the object. 35082 Expiration *LifecycleExpiration `type:"structure"` 35083 35084 // Unique identifier for the rule. The value can't be longer than 255 characters. 35085 ID *string `type:"string"` 35086 35087 // Specifies when noncurrent object versions expire. Upon expiration, Amazon 35088 // S3 permanently deletes the noncurrent object versions. You set this lifecycle 35089 // configuration action on a bucket that has versioning enabled (or suspended) 35090 // to request that Amazon S3 delete noncurrent object versions at a specific 35091 // period in the object's lifetime. 35092 NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` 35093 35094 // Container for the transition rule that describes when noncurrent objects 35095 // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, 35096 // or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning 35097 // is suspended), you can set this action to request that Amazon S3 transition 35098 // noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, 35099 // GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's 35100 // lifetime. 35101 NoncurrentVersionTransition *NoncurrentVersionTransition `type:"structure"` 35102 35103 // Object key prefix that identifies one or more objects to which this rule 35104 // applies. 35105 // 35106 // Replacement must be made for object keys containing special characters (such 35107 // as carriage returns) when using XML requests. For more information, see XML 35108 // related object key constraints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). 35109 // 35110 // Prefix is a required field 35111 Prefix *string `type:"string" required:"true"` 35112 35113 // If Enabled, the rule is currently being applied. If Disabled, the rule is 35114 // not currently being applied. 35115 // 35116 // Status is a required field 35117 Status *string `type:"string" required:"true" enum:"ExpirationStatus"` 35118 35119 // Specifies when an object transitions to a specified storage class. For more 35120 // information about Amazon S3 lifecycle configuration rules, see Transitioning 35121 // Objects Using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) 35122 // in the Amazon S3 User Guide. 35123 Transition *Transition `type:"structure"` 35124 } 35125 35126 // String returns the string representation. 35127 // 35128 // API parameter values that are decorated as "sensitive" in the API will not 35129 // be included in the string output. The member name will be present, but the 35130 // value will be replaced with "sensitive". 35131 func (s Rule) String() string { 35132 return awsutil.Prettify(s) 35133 } 35134 35135 // GoString returns the string representation. 35136 // 35137 // API parameter values that are decorated as "sensitive" in the API will not 35138 // be included in the string output. The member name will be present, but the 35139 // value will be replaced with "sensitive". 35140 func (s Rule) GoString() string { 35141 return s.String() 35142 } 35143 35144 // Validate inspects the fields of the type to determine if they are valid. 35145 func (s *Rule) Validate() error { 35146 invalidParams := request.ErrInvalidParams{Context: "Rule"} 35147 if s.Prefix == nil { 35148 invalidParams.Add(request.NewErrParamRequired("Prefix")) 35149 } 35150 if s.Status == nil { 35151 invalidParams.Add(request.NewErrParamRequired("Status")) 35152 } 35153 35154 if invalidParams.Len() > 0 { 35155 return invalidParams 35156 } 35157 return nil 35158 } 35159 35160 // SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value. 35161 func (s *Rule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *Rule { 35162 s.AbortIncompleteMultipartUpload = v 35163 return s 35164 } 35165 35166 // SetExpiration sets the Expiration field's value. 35167 func (s *Rule) SetExpiration(v *LifecycleExpiration) *Rule { 35168 s.Expiration = v 35169 return s 35170 } 35171 35172 // SetID sets the ID field's value. 35173 func (s *Rule) SetID(v string) *Rule { 35174 s.ID = &v 35175 return s 35176 } 35177 35178 // SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value. 35179 func (s *Rule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *Rule { 35180 s.NoncurrentVersionExpiration = v 35181 return s 35182 } 35183 35184 // SetNoncurrentVersionTransition sets the NoncurrentVersionTransition field's value. 35185 func (s *Rule) SetNoncurrentVersionTransition(v *NoncurrentVersionTransition) *Rule { 35186 s.NoncurrentVersionTransition = v 35187 return s 35188 } 35189 35190 // SetPrefix sets the Prefix field's value. 35191 func (s *Rule) SetPrefix(v string) *Rule { 35192 s.Prefix = &v 35193 return s 35194 } 35195 35196 // SetStatus sets the Status field's value. 35197 func (s *Rule) SetStatus(v string) *Rule { 35198 s.Status = &v 35199 return s 35200 } 35201 35202 // SetTransition sets the Transition field's value. 35203 func (s *Rule) SetTransition(v *Transition) *Rule { 35204 s.Transition = v 35205 return s 35206 } 35207 35208 // Specifies the use of SSE-KMS to encrypt delivered inventory reports. 35209 type SSEKMS struct { 35210 _ struct{} `locationName:"SSE-KMS" type:"structure"` 35211 35212 // Specifies the ID of the Amazon Web Services Key Management Service (Amazon 35213 // Web Services KMS) symmetric customer managed key to use for encrypting inventory 35214 // reports. 35215 // 35216 // KeyId is a sensitive parameter and its value will be 35217 // replaced with "sensitive" in string returned by SSEKMS's 35218 // String and GoString methods. 35219 // 35220 // KeyId is a required field 35221 KeyId *string `type:"string" required:"true" sensitive:"true"` 35222 } 35223 35224 // String returns the string representation. 35225 // 35226 // API parameter values that are decorated as "sensitive" in the API will not 35227 // be included in the string output. The member name will be present, but the 35228 // value will be replaced with "sensitive". 35229 func (s SSEKMS) String() string { 35230 return awsutil.Prettify(s) 35231 } 35232 35233 // GoString returns the string representation. 35234 // 35235 // API parameter values that are decorated as "sensitive" in the API will not 35236 // be included in the string output. The member name will be present, but the 35237 // value will be replaced with "sensitive". 35238 func (s SSEKMS) GoString() string { 35239 return s.String() 35240 } 35241 35242 // Validate inspects the fields of the type to determine if they are valid. 35243 func (s *SSEKMS) Validate() error { 35244 invalidParams := request.ErrInvalidParams{Context: "SSEKMS"} 35245 if s.KeyId == nil { 35246 invalidParams.Add(request.NewErrParamRequired("KeyId")) 35247 } 35248 35249 if invalidParams.Len() > 0 { 35250 return invalidParams 35251 } 35252 return nil 35253 } 35254 35255 // SetKeyId sets the KeyId field's value. 35256 func (s *SSEKMS) SetKeyId(v string) *SSEKMS { 35257 s.KeyId = &v 35258 return s 35259 } 35260 35261 // Specifies the use of SSE-S3 to encrypt delivered inventory reports. 35262 type SSES3 struct { 35263 _ struct{} `locationName:"SSE-S3" type:"structure"` 35264 } 35265 35266 // String returns the string representation. 35267 // 35268 // API parameter values that are decorated as "sensitive" in the API will not 35269 // be included in the string output. The member name will be present, but the 35270 // value will be replaced with "sensitive". 35271 func (s SSES3) String() string { 35272 return awsutil.Prettify(s) 35273 } 35274 35275 // GoString returns the string representation. 35276 // 35277 // API parameter values that are decorated as "sensitive" in the API will not 35278 // be included in the string output. The member name will be present, but the 35279 // value will be replaced with "sensitive". 35280 func (s SSES3) GoString() string { 35281 return s.String() 35282 } 35283 35284 // Specifies the byte range of the object to get the records from. A record 35285 // is processed when its first byte is contained by the range. This parameter 35286 // is optional, but when specified, it must not be empty. See RFC 2616, Section 35287 // 14.35.1 about how to specify the start and end of the range. 35288 type ScanRange struct { 35289 _ struct{} `type:"structure"` 35290 35291 // Specifies the end of the byte range. This parameter is optional. Valid values: 35292 // non-negative integers. The default value is one less than the size of the 35293 // object being queried. If only the End parameter is supplied, it is interpreted 35294 // to mean scan the last N bytes of the file. For example, <scanrange><end>50</end></scanrange> 35295 // means scan the last 50 bytes. 35296 End *int64 `type:"long"` 35297 35298 // Specifies the start of the byte range. This parameter is optional. Valid 35299 // values: non-negative integers. The default value is 0. If only start is supplied, 35300 // it means scan from that point to the end of the file.For example; <scanrange><start>50</start></scanrange> 35301 // means scan from byte 50 until the end of the file. 35302 Start *int64 `type:"long"` 35303 } 35304 35305 // String returns the string representation. 35306 // 35307 // API parameter values that are decorated as "sensitive" in the API will not 35308 // be included in the string output. The member name will be present, but the 35309 // value will be replaced with "sensitive". 35310 func (s ScanRange) String() string { 35311 return awsutil.Prettify(s) 35312 } 35313 35314 // GoString returns the string representation. 35315 // 35316 // API parameter values that are decorated as "sensitive" in the API will not 35317 // be included in the string output. The member name will be present, but the 35318 // value will be replaced with "sensitive". 35319 func (s ScanRange) GoString() string { 35320 return s.String() 35321 } 35322 35323 // SetEnd sets the End field's value. 35324 func (s *ScanRange) SetEnd(v int64) *ScanRange { 35325 s.End = &v 35326 return s 35327 } 35328 35329 // SetStart sets the Start field's value. 35330 func (s *ScanRange) SetStart(v int64) *ScanRange { 35331 s.Start = &v 35332 return s 35333 } 35334 35335 // SelectObjectContentEventStreamEvent groups together all EventStream 35336 // events writes for SelectObjectContentEventStream. 35337 // 35338 // These events are: 35339 // 35340 // * ContinuationEvent 35341 // * EndEvent 35342 // * ProgressEvent 35343 // * RecordsEvent 35344 // * StatsEvent 35345 type SelectObjectContentEventStreamEvent interface { 35346 eventSelectObjectContentEventStream() 35347 eventstreamapi.Marshaler 35348 eventstreamapi.Unmarshaler 35349 } 35350 35351 // SelectObjectContentEventStreamReader provides the interface for reading to the stream. The 35352 // default implementation for this interface will be SelectObjectContentEventStreamData. 35353 // 35354 // The reader's Close method must allow multiple concurrent calls. 35355 // 35356 // These events are: 35357 // 35358 // * ContinuationEvent 35359 // * EndEvent 35360 // * ProgressEvent 35361 // * RecordsEvent 35362 // * StatsEvent 35363 // * SelectObjectContentEventStreamUnknownEvent 35364 type SelectObjectContentEventStreamReader interface { 35365 // Returns a channel of events as they are read from the event stream. 35366 Events() <-chan SelectObjectContentEventStreamEvent 35367 35368 // Close will stop the reader reading events from the stream. 35369 Close() error 35370 35371 // Returns any error that has occurred while reading from the event stream. 35372 Err() error 35373 } 35374 35375 type readSelectObjectContentEventStream struct { 35376 eventReader *eventstreamapi.EventReader 35377 stream chan SelectObjectContentEventStreamEvent 35378 err *eventstreamapi.OnceError 35379 35380 done chan struct{} 35381 closeOnce sync.Once 35382 } 35383 35384 func newReadSelectObjectContentEventStream(eventReader *eventstreamapi.EventReader) *readSelectObjectContentEventStream { 35385 r := &readSelectObjectContentEventStream{ 35386 eventReader: eventReader, 35387 stream: make(chan SelectObjectContentEventStreamEvent), 35388 done: make(chan struct{}), 35389 err: eventstreamapi.NewOnceError(), 35390 } 35391 go r.readEventStream() 35392 35393 return r 35394 } 35395 35396 // Close will close the underlying event stream reader. 35397 func (r *readSelectObjectContentEventStream) Close() error { 35398 r.closeOnce.Do(r.safeClose) 35399 return r.Err() 35400 } 35401 35402 func (r *readSelectObjectContentEventStream) ErrorSet() <-chan struct{} { 35403 return r.err.ErrorSet() 35404 } 35405 35406 func (r *readSelectObjectContentEventStream) Closed() <-chan struct{} { 35407 return r.done 35408 } 35409 35410 func (r *readSelectObjectContentEventStream) safeClose() { 35411 close(r.done) 35412 } 35413 35414 func (r *readSelectObjectContentEventStream) Err() error { 35415 return r.err.Err() 35416 } 35417 35418 func (r *readSelectObjectContentEventStream) Events() <-chan SelectObjectContentEventStreamEvent { 35419 return r.stream 35420 } 35421 35422 func (r *readSelectObjectContentEventStream) readEventStream() { 35423 defer r.Close() 35424 defer close(r.stream) 35425 35426 for { 35427 event, err := r.eventReader.ReadEvent() 35428 if err != nil { 35429 if err == io.EOF { 35430 return 35431 } 35432 select { 35433 case <-r.done: 35434 // If closed already ignore the error 35435 return 35436 default: 35437 } 35438 if _, ok := err.(*eventstreamapi.UnknownMessageTypeError); ok { 35439 continue 35440 } 35441 r.err.SetError(err) 35442 return 35443 } 35444 35445 select { 35446 case r.stream <- event.(SelectObjectContentEventStreamEvent): 35447 case <-r.done: 35448 return 35449 } 35450 } 35451 } 35452 35453 type unmarshalerForSelectObjectContentEventStreamEvent struct { 35454 metadata protocol.ResponseMetadata 35455 } 35456 35457 func (u unmarshalerForSelectObjectContentEventStreamEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) { 35458 switch eventType { 35459 case "Cont": 35460 return &ContinuationEvent{}, nil 35461 case "End": 35462 return &EndEvent{}, nil 35463 case "Progress": 35464 return &ProgressEvent{}, nil 35465 case "Records": 35466 return &RecordsEvent{}, nil 35467 case "Stats": 35468 return &StatsEvent{}, nil 35469 default: 35470 return &SelectObjectContentEventStreamUnknownEvent{Type: eventType}, nil 35471 } 35472 } 35473 35474 // SelectObjectContentEventStreamUnknownEvent provides a failsafe event for the 35475 // SelectObjectContentEventStream group of events when an unknown event is received. 35476 type SelectObjectContentEventStreamUnknownEvent struct { 35477 Type string 35478 Message eventstream.Message 35479 } 35480 35481 // The SelectObjectContentEventStreamUnknownEvent is and event in the SelectObjectContentEventStream 35482 // group of events. 35483 func (s *SelectObjectContentEventStreamUnknownEvent) eventSelectObjectContentEventStream() {} 35484 35485 // MarshalEvent marshals the type into an stream event value. This method 35486 // should only used internally within the SDK's EventStream handling. 35487 func (e *SelectObjectContentEventStreamUnknownEvent) MarshalEvent(pm protocol.PayloadMarshaler) ( 35488 msg eventstream.Message, err error, 35489 ) { 35490 return e.Message.Clone(), nil 35491 } 35492 35493 // UnmarshalEvent unmarshals the EventStream Message into the SelectObjectContentEventStreamData value. 35494 // This method is only used internally within the SDK's EventStream handling. 35495 func (e *SelectObjectContentEventStreamUnknownEvent) UnmarshalEvent( 35496 payloadUnmarshaler protocol.PayloadUnmarshaler, 35497 msg eventstream.Message, 35498 ) error { 35499 e.Message = msg.Clone() 35500 return nil 35501 } 35502 35503 // Request to filter the contents of an Amazon S3 object based on a simple Structured 35504 // Query Language (SQL) statement. In the request, along with the SQL expression, 35505 // you must specify a data serialization format (JSON or CSV) of the object. 35506 // Amazon S3 uses this to parse object data into records. It returns only records 35507 // that match the specified SQL expression. You must also specify the data serialization 35508 // format for the response. For more information, see S3Select API Documentation 35509 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html). 35510 type SelectObjectContentInput struct { 35511 _ struct{} `locationName:"SelectObjectContentRequest" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` 35512 35513 // The S3 bucket. 35514 // 35515 // Bucket is a required field 35516 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 35517 35518 // The account ID of the expected bucket owner. If the bucket is owned by a 35519 // different account, the request will fail with an HTTP 403 (Access Denied) 35520 // error. 35521 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 35522 35523 // The expression that is used to query the object. 35524 // 35525 // Expression is a required field 35526 Expression *string `type:"string" required:"true"` 35527 35528 // The type of the provided expression (for example, SQL). 35529 // 35530 // ExpressionType is a required field 35531 ExpressionType *string `type:"string" required:"true" enum:"ExpressionType"` 35532 35533 // Describes the format of the data in the object that is being queried. 35534 // 35535 // InputSerialization is a required field 35536 InputSerialization *InputSerialization `type:"structure" required:"true"` 35537 35538 // The object key. 35539 // 35540 // Key is a required field 35541 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 35542 35543 // Describes the format of the data that you want Amazon S3 to return in response. 35544 // 35545 // OutputSerialization is a required field 35546 OutputSerialization *OutputSerialization `type:"structure" required:"true"` 35547 35548 // Specifies if periodic request progress information should be enabled. 35549 RequestProgress *RequestProgress `type:"structure"` 35550 35551 // The SSE Algorithm used to encrypt the object. For more information, see Server-Side 35552 // Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 35553 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 35554 35555 // The SSE Customer Key. For more information, see Server-Side Encryption (Using 35556 // Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 35557 // 35558 // SSECustomerKey is a sensitive parameter and its value will be 35559 // replaced with "sensitive" in string returned by SelectObjectContentInput's 35560 // String and GoString methods. 35561 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 35562 35563 // The SSE Customer Key MD5. For more information, see Server-Side Encryption 35564 // (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). 35565 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 35566 35567 // Specifies the byte range of the object to get the records from. A record 35568 // is processed when its first byte is contained by the range. This parameter 35569 // is optional, but when specified, it must not be empty. See RFC 2616, Section 35570 // 14.35.1 about how to specify the start and end of the range. 35571 // 35572 // ScanRangemay be used in the following ways: 35573 // 35574 // * <scanrange><start>50</start><end>100</end></scanrange> - process only 35575 // the records starting between the bytes 50 and 100 (inclusive, counting 35576 // from zero) 35577 // 35578 // * <scanrange><start>50</start></scanrange> - process only the records 35579 // starting after the byte 50 35580 // 35581 // * <scanrange><end>50</end></scanrange> - process only the records within 35582 // the last 50 bytes of the file. 35583 ScanRange *ScanRange `type:"structure"` 35584 } 35585 35586 // String returns the string representation. 35587 // 35588 // API parameter values that are decorated as "sensitive" in the API will not 35589 // be included in the string output. The member name will be present, but the 35590 // value will be replaced with "sensitive". 35591 func (s SelectObjectContentInput) String() string { 35592 return awsutil.Prettify(s) 35593 } 35594 35595 // GoString returns the string representation. 35596 // 35597 // API parameter values that are decorated as "sensitive" in the API will not 35598 // be included in the string output. The member name will be present, but the 35599 // value will be replaced with "sensitive". 35600 func (s SelectObjectContentInput) GoString() string { 35601 return s.String() 35602 } 35603 35604 // Validate inspects the fields of the type to determine if they are valid. 35605 func (s *SelectObjectContentInput) Validate() error { 35606 invalidParams := request.ErrInvalidParams{Context: "SelectObjectContentInput"} 35607 if s.Bucket == nil { 35608 invalidParams.Add(request.NewErrParamRequired("Bucket")) 35609 } 35610 if s.Bucket != nil && len(*s.Bucket) < 1 { 35611 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 35612 } 35613 if s.Expression == nil { 35614 invalidParams.Add(request.NewErrParamRequired("Expression")) 35615 } 35616 if s.ExpressionType == nil { 35617 invalidParams.Add(request.NewErrParamRequired("ExpressionType")) 35618 } 35619 if s.InputSerialization == nil { 35620 invalidParams.Add(request.NewErrParamRequired("InputSerialization")) 35621 } 35622 if s.Key == nil { 35623 invalidParams.Add(request.NewErrParamRequired("Key")) 35624 } 35625 if s.Key != nil && len(*s.Key) < 1 { 35626 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 35627 } 35628 if s.OutputSerialization == nil { 35629 invalidParams.Add(request.NewErrParamRequired("OutputSerialization")) 35630 } 35631 35632 if invalidParams.Len() > 0 { 35633 return invalidParams 35634 } 35635 return nil 35636 } 35637 35638 // SetBucket sets the Bucket field's value. 35639 func (s *SelectObjectContentInput) SetBucket(v string) *SelectObjectContentInput { 35640 s.Bucket = &v 35641 return s 35642 } 35643 35644 func (s *SelectObjectContentInput) getBucket() (v string) { 35645 if s.Bucket == nil { 35646 return v 35647 } 35648 return *s.Bucket 35649 } 35650 35651 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 35652 func (s *SelectObjectContentInput) SetExpectedBucketOwner(v string) *SelectObjectContentInput { 35653 s.ExpectedBucketOwner = &v 35654 return s 35655 } 35656 35657 // SetExpression sets the Expression field's value. 35658 func (s *SelectObjectContentInput) SetExpression(v string) *SelectObjectContentInput { 35659 s.Expression = &v 35660 return s 35661 } 35662 35663 // SetExpressionType sets the ExpressionType field's value. 35664 func (s *SelectObjectContentInput) SetExpressionType(v string) *SelectObjectContentInput { 35665 s.ExpressionType = &v 35666 return s 35667 } 35668 35669 // SetInputSerialization sets the InputSerialization field's value. 35670 func (s *SelectObjectContentInput) SetInputSerialization(v *InputSerialization) *SelectObjectContentInput { 35671 s.InputSerialization = v 35672 return s 35673 } 35674 35675 // SetKey sets the Key field's value. 35676 func (s *SelectObjectContentInput) SetKey(v string) *SelectObjectContentInput { 35677 s.Key = &v 35678 return s 35679 } 35680 35681 // SetOutputSerialization sets the OutputSerialization field's value. 35682 func (s *SelectObjectContentInput) SetOutputSerialization(v *OutputSerialization) *SelectObjectContentInput { 35683 s.OutputSerialization = v 35684 return s 35685 } 35686 35687 // SetRequestProgress sets the RequestProgress field's value. 35688 func (s *SelectObjectContentInput) SetRequestProgress(v *RequestProgress) *SelectObjectContentInput { 35689 s.RequestProgress = v 35690 return s 35691 } 35692 35693 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 35694 func (s *SelectObjectContentInput) SetSSECustomerAlgorithm(v string) *SelectObjectContentInput { 35695 s.SSECustomerAlgorithm = &v 35696 return s 35697 } 35698 35699 // SetSSECustomerKey sets the SSECustomerKey field's value. 35700 func (s *SelectObjectContentInput) SetSSECustomerKey(v string) *SelectObjectContentInput { 35701 s.SSECustomerKey = &v 35702 return s 35703 } 35704 35705 func (s *SelectObjectContentInput) getSSECustomerKey() (v string) { 35706 if s.SSECustomerKey == nil { 35707 return v 35708 } 35709 return *s.SSECustomerKey 35710 } 35711 35712 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 35713 func (s *SelectObjectContentInput) SetSSECustomerKeyMD5(v string) *SelectObjectContentInput { 35714 s.SSECustomerKeyMD5 = &v 35715 return s 35716 } 35717 35718 // SetScanRange sets the ScanRange field's value. 35719 func (s *SelectObjectContentInput) SetScanRange(v *ScanRange) *SelectObjectContentInput { 35720 s.ScanRange = v 35721 return s 35722 } 35723 35724 func (s *SelectObjectContentInput) getEndpointARN() (arn.Resource, error) { 35725 if s.Bucket == nil { 35726 return nil, fmt.Errorf("member Bucket is nil") 35727 } 35728 return parseEndpointARN(*s.Bucket) 35729 } 35730 35731 func (s *SelectObjectContentInput) hasEndpointARN() bool { 35732 if s.Bucket == nil { 35733 return false 35734 } 35735 return arn.IsARN(*s.Bucket) 35736 } 35737 35738 // updateArnableField updates the value of the input field that 35739 // takes an ARN as an input. This method is useful to backfill 35740 // the parsed resource name from ARN into the input member. 35741 // It returns a pointer to a modified copy of input and an error. 35742 // Note that original input is not modified. 35743 func (s SelectObjectContentInput) updateArnableField(v string) (interface{}, error) { 35744 if s.Bucket == nil { 35745 return nil, fmt.Errorf("member Bucket is nil") 35746 } 35747 s.Bucket = aws.String(v) 35748 return &s, nil 35749 } 35750 35751 type SelectObjectContentOutput struct { 35752 _ struct{} `type:"structure" payload:"Payload"` 35753 35754 EventStream *SelectObjectContentEventStream 35755 } 35756 35757 // String returns the string representation. 35758 // 35759 // API parameter values that are decorated as "sensitive" in the API will not 35760 // be included in the string output. The member name will be present, but the 35761 // value will be replaced with "sensitive". 35762 func (s SelectObjectContentOutput) String() string { 35763 return awsutil.Prettify(s) 35764 } 35765 35766 // GoString returns the string representation. 35767 // 35768 // API parameter values that are decorated as "sensitive" in the API will not 35769 // be included in the string output. The member name will be present, but the 35770 // value will be replaced with "sensitive". 35771 func (s SelectObjectContentOutput) GoString() string { 35772 return s.String() 35773 } 35774 35775 func (s *SelectObjectContentOutput) SetEventStream(v *SelectObjectContentEventStream) *SelectObjectContentOutput { 35776 s.EventStream = v 35777 return s 35778 } 35779 func (s *SelectObjectContentOutput) GetEventStream() *SelectObjectContentEventStream { 35780 return s.EventStream 35781 } 35782 35783 // GetStream returns the type to interact with the event stream. 35784 func (s *SelectObjectContentOutput) GetStream() *SelectObjectContentEventStream { 35785 return s.EventStream 35786 } 35787 35788 // Describes the parameters for Select job types. 35789 type SelectParameters struct { 35790 _ struct{} `type:"structure"` 35791 35792 // The expression that is used to query the object. 35793 // 35794 // Expression is a required field 35795 Expression *string `type:"string" required:"true"` 35796 35797 // The type of the provided expression (for example, SQL). 35798 // 35799 // ExpressionType is a required field 35800 ExpressionType *string `type:"string" required:"true" enum:"ExpressionType"` 35801 35802 // Describes the serialization format of the object. 35803 // 35804 // InputSerialization is a required field 35805 InputSerialization *InputSerialization `type:"structure" required:"true"` 35806 35807 // Describes how the results of the Select job are serialized. 35808 // 35809 // OutputSerialization is a required field 35810 OutputSerialization *OutputSerialization `type:"structure" required:"true"` 35811 } 35812 35813 // String returns the string representation. 35814 // 35815 // API parameter values that are decorated as "sensitive" in the API will not 35816 // be included in the string output. The member name will be present, but the 35817 // value will be replaced with "sensitive". 35818 func (s SelectParameters) String() string { 35819 return awsutil.Prettify(s) 35820 } 35821 35822 // GoString returns the string representation. 35823 // 35824 // API parameter values that are decorated as "sensitive" in the API will not 35825 // be included in the string output. The member name will be present, but the 35826 // value will be replaced with "sensitive". 35827 func (s SelectParameters) GoString() string { 35828 return s.String() 35829 } 35830 35831 // Validate inspects the fields of the type to determine if they are valid. 35832 func (s *SelectParameters) Validate() error { 35833 invalidParams := request.ErrInvalidParams{Context: "SelectParameters"} 35834 if s.Expression == nil { 35835 invalidParams.Add(request.NewErrParamRequired("Expression")) 35836 } 35837 if s.ExpressionType == nil { 35838 invalidParams.Add(request.NewErrParamRequired("ExpressionType")) 35839 } 35840 if s.InputSerialization == nil { 35841 invalidParams.Add(request.NewErrParamRequired("InputSerialization")) 35842 } 35843 if s.OutputSerialization == nil { 35844 invalidParams.Add(request.NewErrParamRequired("OutputSerialization")) 35845 } 35846 35847 if invalidParams.Len() > 0 { 35848 return invalidParams 35849 } 35850 return nil 35851 } 35852 35853 // SetExpression sets the Expression field's value. 35854 func (s *SelectParameters) SetExpression(v string) *SelectParameters { 35855 s.Expression = &v 35856 return s 35857 } 35858 35859 // SetExpressionType sets the ExpressionType field's value. 35860 func (s *SelectParameters) SetExpressionType(v string) *SelectParameters { 35861 s.ExpressionType = &v 35862 return s 35863 } 35864 35865 // SetInputSerialization sets the InputSerialization field's value. 35866 func (s *SelectParameters) SetInputSerialization(v *InputSerialization) *SelectParameters { 35867 s.InputSerialization = v 35868 return s 35869 } 35870 35871 // SetOutputSerialization sets the OutputSerialization field's value. 35872 func (s *SelectParameters) SetOutputSerialization(v *OutputSerialization) *SelectParameters { 35873 s.OutputSerialization = v 35874 return s 35875 } 35876 35877 // Describes the default server-side encryption to apply to new objects in the 35878 // bucket. If a PUT Object request doesn't specify any server-side encryption, 35879 // this default encryption will be applied. For more information, see PUT Bucket 35880 // encryption (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) 35881 // in the Amazon S3 API Reference. 35882 type ServerSideEncryptionByDefault struct { 35883 _ struct{} `type:"structure"` 35884 35885 // Amazon Web Services Key Management Service (KMS) customer Amazon Web Services 35886 // KMS key ID to use for the default encryption. This parameter is allowed if 35887 // and only if SSEAlgorithm is set to aws:kms. 35888 // 35889 // You can specify the key ID or the Amazon Resource Name (ARN) of the KMS key. 35890 // However, if you are using encryption with cross-account operations, you must 35891 // use a fully qualified KMS key ARN. For more information, see Using encryption 35892 // for cross-account operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy). 35893 // 35894 // For example: 35895 // 35896 // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab 35897 // 35898 // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab 35899 // 35900 // Amazon S3 only supports symmetric KMS keys and not asymmetric KMS keys. For 35901 // more information, see Using symmetric and asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 35902 // in the Amazon Web Services Key Management Service Developer Guide. 35903 // 35904 // KMSMasterKeyID is a sensitive parameter and its value will be 35905 // replaced with "sensitive" in string returned by ServerSideEncryptionByDefault's 35906 // String and GoString methods. 35907 KMSMasterKeyID *string `type:"string" sensitive:"true"` 35908 35909 // Server-side encryption algorithm to use for the default encryption. 35910 // 35911 // SSEAlgorithm is a required field 35912 SSEAlgorithm *string `type:"string" required:"true" enum:"ServerSideEncryption"` 35913 } 35914 35915 // String returns the string representation. 35916 // 35917 // API parameter values that are decorated as "sensitive" in the API will not 35918 // be included in the string output. The member name will be present, but the 35919 // value will be replaced with "sensitive". 35920 func (s ServerSideEncryptionByDefault) String() string { 35921 return awsutil.Prettify(s) 35922 } 35923 35924 // GoString returns the string representation. 35925 // 35926 // API parameter values that are decorated as "sensitive" in the API will not 35927 // be included in the string output. The member name will be present, but the 35928 // value will be replaced with "sensitive". 35929 func (s ServerSideEncryptionByDefault) GoString() string { 35930 return s.String() 35931 } 35932 35933 // Validate inspects the fields of the type to determine if they are valid. 35934 func (s *ServerSideEncryptionByDefault) Validate() error { 35935 invalidParams := request.ErrInvalidParams{Context: "ServerSideEncryptionByDefault"} 35936 if s.SSEAlgorithm == nil { 35937 invalidParams.Add(request.NewErrParamRequired("SSEAlgorithm")) 35938 } 35939 35940 if invalidParams.Len() > 0 { 35941 return invalidParams 35942 } 35943 return nil 35944 } 35945 35946 // SetKMSMasterKeyID sets the KMSMasterKeyID field's value. 35947 func (s *ServerSideEncryptionByDefault) SetKMSMasterKeyID(v string) *ServerSideEncryptionByDefault { 35948 s.KMSMasterKeyID = &v 35949 return s 35950 } 35951 35952 // SetSSEAlgorithm sets the SSEAlgorithm field's value. 35953 func (s *ServerSideEncryptionByDefault) SetSSEAlgorithm(v string) *ServerSideEncryptionByDefault { 35954 s.SSEAlgorithm = &v 35955 return s 35956 } 35957 35958 // Specifies the default server-side-encryption configuration. 35959 type ServerSideEncryptionConfiguration struct { 35960 _ struct{} `type:"structure"` 35961 35962 // Container for information about a particular server-side encryption configuration 35963 // rule. 35964 // 35965 // Rules is a required field 35966 Rules []*ServerSideEncryptionRule `locationName:"Rule" type:"list" flattened:"true" required:"true"` 35967 } 35968 35969 // String returns the string representation. 35970 // 35971 // API parameter values that are decorated as "sensitive" in the API will not 35972 // be included in the string output. The member name will be present, but the 35973 // value will be replaced with "sensitive". 35974 func (s ServerSideEncryptionConfiguration) String() string { 35975 return awsutil.Prettify(s) 35976 } 35977 35978 // GoString returns the string representation. 35979 // 35980 // API parameter values that are decorated as "sensitive" in the API will not 35981 // be included in the string output. The member name will be present, but the 35982 // value will be replaced with "sensitive". 35983 func (s ServerSideEncryptionConfiguration) GoString() string { 35984 return s.String() 35985 } 35986 35987 // Validate inspects the fields of the type to determine if they are valid. 35988 func (s *ServerSideEncryptionConfiguration) Validate() error { 35989 invalidParams := request.ErrInvalidParams{Context: "ServerSideEncryptionConfiguration"} 35990 if s.Rules == nil { 35991 invalidParams.Add(request.NewErrParamRequired("Rules")) 35992 } 35993 if s.Rules != nil { 35994 for i, v := range s.Rules { 35995 if v == nil { 35996 continue 35997 } 35998 if err := v.Validate(); err != nil { 35999 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 36000 } 36001 } 36002 } 36003 36004 if invalidParams.Len() > 0 { 36005 return invalidParams 36006 } 36007 return nil 36008 } 36009 36010 // SetRules sets the Rules field's value. 36011 func (s *ServerSideEncryptionConfiguration) SetRules(v []*ServerSideEncryptionRule) *ServerSideEncryptionConfiguration { 36012 s.Rules = v 36013 return s 36014 } 36015 36016 // Specifies the default server-side encryption configuration. 36017 type ServerSideEncryptionRule struct { 36018 _ struct{} `type:"structure"` 36019 36020 // Specifies the default server-side encryption to apply to new objects in the 36021 // bucket. If a PUT Object request doesn't specify any server-side encryption, 36022 // this default encryption will be applied. 36023 ApplyServerSideEncryptionByDefault *ServerSideEncryptionByDefault `type:"structure"` 36024 36025 // Specifies whether Amazon S3 should use an S3 Bucket Key with server-side 36026 // encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects 36027 // are not affected. Setting the BucketKeyEnabled element to true causes Amazon 36028 // S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. 36029 // 36030 // For more information, see Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) 36031 // in the Amazon S3 User Guide. 36032 BucketKeyEnabled *bool `type:"boolean"` 36033 } 36034 36035 // String returns the string representation. 36036 // 36037 // API parameter values that are decorated as "sensitive" in the API will not 36038 // be included in the string output. The member name will be present, but the 36039 // value will be replaced with "sensitive". 36040 func (s ServerSideEncryptionRule) String() string { 36041 return awsutil.Prettify(s) 36042 } 36043 36044 // GoString returns the string representation. 36045 // 36046 // API parameter values that are decorated as "sensitive" in the API will not 36047 // be included in the string output. The member name will be present, but the 36048 // value will be replaced with "sensitive". 36049 func (s ServerSideEncryptionRule) GoString() string { 36050 return s.String() 36051 } 36052 36053 // Validate inspects the fields of the type to determine if they are valid. 36054 func (s *ServerSideEncryptionRule) Validate() error { 36055 invalidParams := request.ErrInvalidParams{Context: "ServerSideEncryptionRule"} 36056 if s.ApplyServerSideEncryptionByDefault != nil { 36057 if err := s.ApplyServerSideEncryptionByDefault.Validate(); err != nil { 36058 invalidParams.AddNested("ApplyServerSideEncryptionByDefault", err.(request.ErrInvalidParams)) 36059 } 36060 } 36061 36062 if invalidParams.Len() > 0 { 36063 return invalidParams 36064 } 36065 return nil 36066 } 36067 36068 // SetApplyServerSideEncryptionByDefault sets the ApplyServerSideEncryptionByDefault field's value. 36069 func (s *ServerSideEncryptionRule) SetApplyServerSideEncryptionByDefault(v *ServerSideEncryptionByDefault) *ServerSideEncryptionRule { 36070 s.ApplyServerSideEncryptionByDefault = v 36071 return s 36072 } 36073 36074 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 36075 func (s *ServerSideEncryptionRule) SetBucketKeyEnabled(v bool) *ServerSideEncryptionRule { 36076 s.BucketKeyEnabled = &v 36077 return s 36078 } 36079 36080 // A container that describes additional filters for identifying the source 36081 // objects that you want to replicate. You can choose to enable or disable the 36082 // replication of these objects. Currently, Amazon S3 supports only the filter 36083 // that you can specify for objects created with server-side encryption using 36084 // a customer managed key stored in Amazon Web Services Key Management Service 36085 // (SSE-KMS). 36086 type SourceSelectionCriteria struct { 36087 _ struct{} `type:"structure"` 36088 36089 // A filter that you can specify for selections for modifications on replicas. 36090 // Amazon S3 doesn't replicate replica modifications by default. In the latest 36091 // version of replication configuration (when Filter is specified), you can 36092 // specify this element and set the status to Enabled to replicate modifications 36093 // on replicas. 36094 // 36095 // If you don't specify the Filter element, Amazon S3 assumes that the replication 36096 // configuration is the earlier version, V1. In the earlier version, this element 36097 // is not allowed 36098 ReplicaModifications *ReplicaModifications `type:"structure"` 36099 36100 // A container for filter information for the selection of Amazon S3 objects 36101 // encrypted with Amazon Web Services KMS. If you include SourceSelectionCriteria 36102 // in the replication configuration, this element is required. 36103 SseKmsEncryptedObjects *SseKmsEncryptedObjects `type:"structure"` 36104 } 36105 36106 // String returns the string representation. 36107 // 36108 // API parameter values that are decorated as "sensitive" in the API will not 36109 // be included in the string output. The member name will be present, but the 36110 // value will be replaced with "sensitive". 36111 func (s SourceSelectionCriteria) String() string { 36112 return awsutil.Prettify(s) 36113 } 36114 36115 // GoString returns the string representation. 36116 // 36117 // API parameter values that are decorated as "sensitive" in the API will not 36118 // be included in the string output. The member name will be present, but the 36119 // value will be replaced with "sensitive". 36120 func (s SourceSelectionCriteria) GoString() string { 36121 return s.String() 36122 } 36123 36124 // Validate inspects the fields of the type to determine if they are valid. 36125 func (s *SourceSelectionCriteria) Validate() error { 36126 invalidParams := request.ErrInvalidParams{Context: "SourceSelectionCriteria"} 36127 if s.ReplicaModifications != nil { 36128 if err := s.ReplicaModifications.Validate(); err != nil { 36129 invalidParams.AddNested("ReplicaModifications", err.(request.ErrInvalidParams)) 36130 } 36131 } 36132 if s.SseKmsEncryptedObjects != nil { 36133 if err := s.SseKmsEncryptedObjects.Validate(); err != nil { 36134 invalidParams.AddNested("SseKmsEncryptedObjects", err.(request.ErrInvalidParams)) 36135 } 36136 } 36137 36138 if invalidParams.Len() > 0 { 36139 return invalidParams 36140 } 36141 return nil 36142 } 36143 36144 // SetReplicaModifications sets the ReplicaModifications field's value. 36145 func (s *SourceSelectionCriteria) SetReplicaModifications(v *ReplicaModifications) *SourceSelectionCriteria { 36146 s.ReplicaModifications = v 36147 return s 36148 } 36149 36150 // SetSseKmsEncryptedObjects sets the SseKmsEncryptedObjects field's value. 36151 func (s *SourceSelectionCriteria) SetSseKmsEncryptedObjects(v *SseKmsEncryptedObjects) *SourceSelectionCriteria { 36152 s.SseKmsEncryptedObjects = v 36153 return s 36154 } 36155 36156 // A container for filter information for the selection of S3 objects encrypted 36157 // with Amazon Web Services KMS. 36158 type SseKmsEncryptedObjects struct { 36159 _ struct{} `type:"structure"` 36160 36161 // Specifies whether Amazon S3 replicates objects created with server-side encryption 36162 // using an Amazon Web Services KMS key stored in Amazon Web Services Key Management 36163 // Service. 36164 // 36165 // Status is a required field 36166 Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"` 36167 } 36168 36169 // String returns the string representation. 36170 // 36171 // API parameter values that are decorated as "sensitive" in the API will not 36172 // be included in the string output. The member name will be present, but the 36173 // value will be replaced with "sensitive". 36174 func (s SseKmsEncryptedObjects) String() string { 36175 return awsutil.Prettify(s) 36176 } 36177 36178 // GoString returns the string representation. 36179 // 36180 // API parameter values that are decorated as "sensitive" in the API will not 36181 // be included in the string output. The member name will be present, but the 36182 // value will be replaced with "sensitive". 36183 func (s SseKmsEncryptedObjects) GoString() string { 36184 return s.String() 36185 } 36186 36187 // Validate inspects the fields of the type to determine if they are valid. 36188 func (s *SseKmsEncryptedObjects) Validate() error { 36189 invalidParams := request.ErrInvalidParams{Context: "SseKmsEncryptedObjects"} 36190 if s.Status == nil { 36191 invalidParams.Add(request.NewErrParamRequired("Status")) 36192 } 36193 36194 if invalidParams.Len() > 0 { 36195 return invalidParams 36196 } 36197 return nil 36198 } 36199 36200 // SetStatus sets the Status field's value. 36201 func (s *SseKmsEncryptedObjects) SetStatus(v string) *SseKmsEncryptedObjects { 36202 s.Status = &v 36203 return s 36204 } 36205 36206 // Container for the stats details. 36207 type Stats struct { 36208 _ struct{} `type:"structure"` 36209 36210 // The total number of uncompressed object bytes processed. 36211 BytesProcessed *int64 `type:"long"` 36212 36213 // The total number of bytes of records payload data returned. 36214 BytesReturned *int64 `type:"long"` 36215 36216 // The total number of object bytes scanned. 36217 BytesScanned *int64 `type:"long"` 36218 } 36219 36220 // String returns the string representation. 36221 // 36222 // API parameter values that are decorated as "sensitive" in the API will not 36223 // be included in the string output. The member name will be present, but the 36224 // value will be replaced with "sensitive". 36225 func (s Stats) String() string { 36226 return awsutil.Prettify(s) 36227 } 36228 36229 // GoString returns the string representation. 36230 // 36231 // API parameter values that are decorated as "sensitive" in the API will not 36232 // be included in the string output. The member name will be present, but the 36233 // value will be replaced with "sensitive". 36234 func (s Stats) GoString() string { 36235 return s.String() 36236 } 36237 36238 // SetBytesProcessed sets the BytesProcessed field's value. 36239 func (s *Stats) SetBytesProcessed(v int64) *Stats { 36240 s.BytesProcessed = &v 36241 return s 36242 } 36243 36244 // SetBytesReturned sets the BytesReturned field's value. 36245 func (s *Stats) SetBytesReturned(v int64) *Stats { 36246 s.BytesReturned = &v 36247 return s 36248 } 36249 36250 // SetBytesScanned sets the BytesScanned field's value. 36251 func (s *Stats) SetBytesScanned(v int64) *Stats { 36252 s.BytesScanned = &v 36253 return s 36254 } 36255 36256 // Container for the Stats Event. 36257 type StatsEvent struct { 36258 _ struct{} `locationName:"StatsEvent" type:"structure" payload:"Details"` 36259 36260 // The Stats event details. 36261 Details *Stats `locationName:"Details" type:"structure"` 36262 } 36263 36264 // String returns the string representation. 36265 // 36266 // API parameter values that are decorated as "sensitive" in the API will not 36267 // be included in the string output. The member name will be present, but the 36268 // value will be replaced with "sensitive". 36269 func (s StatsEvent) String() string { 36270 return awsutil.Prettify(s) 36271 } 36272 36273 // GoString returns the string representation. 36274 // 36275 // API parameter values that are decorated as "sensitive" in the API will not 36276 // be included in the string output. The member name will be present, but the 36277 // value will be replaced with "sensitive". 36278 func (s StatsEvent) GoString() string { 36279 return s.String() 36280 } 36281 36282 // SetDetails sets the Details field's value. 36283 func (s *StatsEvent) SetDetails(v *Stats) *StatsEvent { 36284 s.Details = v 36285 return s 36286 } 36287 36288 // The StatsEvent is and event in the SelectObjectContentEventStream group of events. 36289 func (s *StatsEvent) eventSelectObjectContentEventStream() {} 36290 36291 // UnmarshalEvent unmarshals the EventStream Message into the StatsEvent value. 36292 // This method is only used internally within the SDK's EventStream handling. 36293 func (s *StatsEvent) UnmarshalEvent( 36294 payloadUnmarshaler protocol.PayloadUnmarshaler, 36295 msg eventstream.Message, 36296 ) error { 36297 if err := payloadUnmarshaler.UnmarshalPayload( 36298 bytes.NewReader(msg.Payload), s, 36299 ); err != nil { 36300 return err 36301 } 36302 return nil 36303 } 36304 36305 // MarshalEvent marshals the type into an stream event value. This method 36306 // should only used internally within the SDK's EventStream handling. 36307 func (s *StatsEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 36308 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 36309 var buf bytes.Buffer 36310 if err = pm.MarshalPayload(&buf, s); err != nil { 36311 return eventstream.Message{}, err 36312 } 36313 msg.Payload = buf.Bytes() 36314 return msg, err 36315 } 36316 36317 // Specifies data related to access patterns to be collected and made available 36318 // to analyze the tradeoffs between different storage classes for an Amazon 36319 // S3 bucket. 36320 type StorageClassAnalysis struct { 36321 _ struct{} `type:"structure"` 36322 36323 // Specifies how data related to the storage class analysis for an Amazon S3 36324 // bucket should be exported. 36325 DataExport *StorageClassAnalysisDataExport `type:"structure"` 36326 } 36327 36328 // String returns the string representation. 36329 // 36330 // API parameter values that are decorated as "sensitive" in the API will not 36331 // be included in the string output. The member name will be present, but the 36332 // value will be replaced with "sensitive". 36333 func (s StorageClassAnalysis) String() string { 36334 return awsutil.Prettify(s) 36335 } 36336 36337 // GoString returns the string representation. 36338 // 36339 // API parameter values that are decorated as "sensitive" in the API will not 36340 // be included in the string output. The member name will be present, but the 36341 // value will be replaced with "sensitive". 36342 func (s StorageClassAnalysis) GoString() string { 36343 return s.String() 36344 } 36345 36346 // Validate inspects the fields of the type to determine if they are valid. 36347 func (s *StorageClassAnalysis) Validate() error { 36348 invalidParams := request.ErrInvalidParams{Context: "StorageClassAnalysis"} 36349 if s.DataExport != nil { 36350 if err := s.DataExport.Validate(); err != nil { 36351 invalidParams.AddNested("DataExport", err.(request.ErrInvalidParams)) 36352 } 36353 } 36354 36355 if invalidParams.Len() > 0 { 36356 return invalidParams 36357 } 36358 return nil 36359 } 36360 36361 // SetDataExport sets the DataExport field's value. 36362 func (s *StorageClassAnalysis) SetDataExport(v *StorageClassAnalysisDataExport) *StorageClassAnalysis { 36363 s.DataExport = v 36364 return s 36365 } 36366 36367 // Container for data related to the storage class analysis for an Amazon S3 36368 // bucket for export. 36369 type StorageClassAnalysisDataExport struct { 36370 _ struct{} `type:"structure"` 36371 36372 // The place to store the data for an analysis. 36373 // 36374 // Destination is a required field 36375 Destination *AnalyticsExportDestination `type:"structure" required:"true"` 36376 36377 // The version of the output schema to use when exporting data. Must be V_1. 36378 // 36379 // OutputSchemaVersion is a required field 36380 OutputSchemaVersion *string `type:"string" required:"true" enum:"StorageClassAnalysisSchemaVersion"` 36381 } 36382 36383 // String returns the string representation. 36384 // 36385 // API parameter values that are decorated as "sensitive" in the API will not 36386 // be included in the string output. The member name will be present, but the 36387 // value will be replaced with "sensitive". 36388 func (s StorageClassAnalysisDataExport) String() string { 36389 return awsutil.Prettify(s) 36390 } 36391 36392 // GoString returns the string representation. 36393 // 36394 // API parameter values that are decorated as "sensitive" in the API will not 36395 // be included in the string output. The member name will be present, but the 36396 // value will be replaced with "sensitive". 36397 func (s StorageClassAnalysisDataExport) GoString() string { 36398 return s.String() 36399 } 36400 36401 // Validate inspects the fields of the type to determine if they are valid. 36402 func (s *StorageClassAnalysisDataExport) Validate() error { 36403 invalidParams := request.ErrInvalidParams{Context: "StorageClassAnalysisDataExport"} 36404 if s.Destination == nil { 36405 invalidParams.Add(request.NewErrParamRequired("Destination")) 36406 } 36407 if s.OutputSchemaVersion == nil { 36408 invalidParams.Add(request.NewErrParamRequired("OutputSchemaVersion")) 36409 } 36410 if s.Destination != nil { 36411 if err := s.Destination.Validate(); err != nil { 36412 invalidParams.AddNested("Destination", err.(request.ErrInvalidParams)) 36413 } 36414 } 36415 36416 if invalidParams.Len() > 0 { 36417 return invalidParams 36418 } 36419 return nil 36420 } 36421 36422 // SetDestination sets the Destination field's value. 36423 func (s *StorageClassAnalysisDataExport) SetDestination(v *AnalyticsExportDestination) *StorageClassAnalysisDataExport { 36424 s.Destination = v 36425 return s 36426 } 36427 36428 // SetOutputSchemaVersion sets the OutputSchemaVersion field's value. 36429 func (s *StorageClassAnalysisDataExport) SetOutputSchemaVersion(v string) *StorageClassAnalysisDataExport { 36430 s.OutputSchemaVersion = &v 36431 return s 36432 } 36433 36434 // A container of a key value name pair. 36435 type Tag struct { 36436 _ struct{} `type:"structure"` 36437 36438 // Name of the object key. 36439 // 36440 // Key is a required field 36441 Key *string `min:"1" type:"string" required:"true"` 36442 36443 // Value of the tag. 36444 // 36445 // Value is a required field 36446 Value *string `type:"string" required:"true"` 36447 } 36448 36449 // String returns the string representation. 36450 // 36451 // API parameter values that are decorated as "sensitive" in the API will not 36452 // be included in the string output. The member name will be present, but the 36453 // value will be replaced with "sensitive". 36454 func (s Tag) String() string { 36455 return awsutil.Prettify(s) 36456 } 36457 36458 // GoString returns the string representation. 36459 // 36460 // API parameter values that are decorated as "sensitive" in the API will not 36461 // be included in the string output. The member name will be present, but the 36462 // value will be replaced with "sensitive". 36463 func (s Tag) GoString() string { 36464 return s.String() 36465 } 36466 36467 // Validate inspects the fields of the type to determine if they are valid. 36468 func (s *Tag) Validate() error { 36469 invalidParams := request.ErrInvalidParams{Context: "Tag"} 36470 if s.Key == nil { 36471 invalidParams.Add(request.NewErrParamRequired("Key")) 36472 } 36473 if s.Key != nil && len(*s.Key) < 1 { 36474 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 36475 } 36476 if s.Value == nil { 36477 invalidParams.Add(request.NewErrParamRequired("Value")) 36478 } 36479 36480 if invalidParams.Len() > 0 { 36481 return invalidParams 36482 } 36483 return nil 36484 } 36485 36486 // SetKey sets the Key field's value. 36487 func (s *Tag) SetKey(v string) *Tag { 36488 s.Key = &v 36489 return s 36490 } 36491 36492 // SetValue sets the Value field's value. 36493 func (s *Tag) SetValue(v string) *Tag { 36494 s.Value = &v 36495 return s 36496 } 36497 36498 // Container for TagSet elements. 36499 type Tagging struct { 36500 _ struct{} `type:"structure"` 36501 36502 // A collection for a set of tags 36503 // 36504 // TagSet is a required field 36505 TagSet []*Tag `locationNameList:"Tag" type:"list" required:"true"` 36506 } 36507 36508 // String returns the string representation. 36509 // 36510 // API parameter values that are decorated as "sensitive" in the API will not 36511 // be included in the string output. The member name will be present, but the 36512 // value will be replaced with "sensitive". 36513 func (s Tagging) String() string { 36514 return awsutil.Prettify(s) 36515 } 36516 36517 // GoString returns the string representation. 36518 // 36519 // API parameter values that are decorated as "sensitive" in the API will not 36520 // be included in the string output. The member name will be present, but the 36521 // value will be replaced with "sensitive". 36522 func (s Tagging) GoString() string { 36523 return s.String() 36524 } 36525 36526 // Validate inspects the fields of the type to determine if they are valid. 36527 func (s *Tagging) Validate() error { 36528 invalidParams := request.ErrInvalidParams{Context: "Tagging"} 36529 if s.TagSet == nil { 36530 invalidParams.Add(request.NewErrParamRequired("TagSet")) 36531 } 36532 if s.TagSet != nil { 36533 for i, v := range s.TagSet { 36534 if v == nil { 36535 continue 36536 } 36537 if err := v.Validate(); err != nil { 36538 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams)) 36539 } 36540 } 36541 } 36542 36543 if invalidParams.Len() > 0 { 36544 return invalidParams 36545 } 36546 return nil 36547 } 36548 36549 // SetTagSet sets the TagSet field's value. 36550 func (s *Tagging) SetTagSet(v []*Tag) *Tagging { 36551 s.TagSet = v 36552 return s 36553 } 36554 36555 // Container for granting information. 36556 type TargetGrant struct { 36557 _ struct{} `type:"structure"` 36558 36559 // Container for the person being granted permissions. 36560 Grantee *Grantee `type:"structure" xmlPrefix:"xsi" xmlURI:"http://www.w3.org/2001/XMLSchema-instance"` 36561 36562 // Logging permissions assigned to the grantee for the bucket. 36563 Permission *string `type:"string" enum:"BucketLogsPermission"` 36564 } 36565 36566 // String returns the string representation. 36567 // 36568 // API parameter values that are decorated as "sensitive" in the API will not 36569 // be included in the string output. The member name will be present, but the 36570 // value will be replaced with "sensitive". 36571 func (s TargetGrant) String() string { 36572 return awsutil.Prettify(s) 36573 } 36574 36575 // GoString returns the string representation. 36576 // 36577 // API parameter values that are decorated as "sensitive" in the API will not 36578 // be included in the string output. The member name will be present, but the 36579 // value will be replaced with "sensitive". 36580 func (s TargetGrant) GoString() string { 36581 return s.String() 36582 } 36583 36584 // Validate inspects the fields of the type to determine if they are valid. 36585 func (s *TargetGrant) Validate() error { 36586 invalidParams := request.ErrInvalidParams{Context: "TargetGrant"} 36587 if s.Grantee != nil { 36588 if err := s.Grantee.Validate(); err != nil { 36589 invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams)) 36590 } 36591 } 36592 36593 if invalidParams.Len() > 0 { 36594 return invalidParams 36595 } 36596 return nil 36597 } 36598 36599 // SetGrantee sets the Grantee field's value. 36600 func (s *TargetGrant) SetGrantee(v *Grantee) *TargetGrant { 36601 s.Grantee = v 36602 return s 36603 } 36604 36605 // SetPermission sets the Permission field's value. 36606 func (s *TargetGrant) SetPermission(v string) *TargetGrant { 36607 s.Permission = &v 36608 return s 36609 } 36610 36611 // The S3 Intelligent-Tiering storage class is designed to optimize storage 36612 // costs by automatically moving data to the most cost-effective storage access 36613 // tier, without additional operational overhead. 36614 type Tiering struct { 36615 _ struct{} `type:"structure"` 36616 36617 // S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing 36618 // frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) 36619 // for a list of access tiers in the S3 Intelligent-Tiering storage class. 36620 // 36621 // AccessTier is a required field 36622 AccessTier *string `type:"string" required:"true" enum:"IntelligentTieringAccessTier"` 36623 36624 // The number of consecutive days of no access after which an object will be 36625 // eligible to be transitioned to the corresponding tier. The minimum number 36626 // of days specified for Archive Access tier must be at least 90 days and Deep 36627 // Archive Access tier must be at least 180 days. The maximum can be up to 2 36628 // years (730 days). 36629 // 36630 // Days is a required field 36631 Days *int64 `type:"integer" required:"true"` 36632 } 36633 36634 // String returns the string representation. 36635 // 36636 // API parameter values that are decorated as "sensitive" in the API will not 36637 // be included in the string output. The member name will be present, but the 36638 // value will be replaced with "sensitive". 36639 func (s Tiering) String() string { 36640 return awsutil.Prettify(s) 36641 } 36642 36643 // GoString returns the string representation. 36644 // 36645 // API parameter values that are decorated as "sensitive" in the API will not 36646 // be included in the string output. The member name will be present, but the 36647 // value will be replaced with "sensitive". 36648 func (s Tiering) GoString() string { 36649 return s.String() 36650 } 36651 36652 // Validate inspects the fields of the type to determine if they are valid. 36653 func (s *Tiering) Validate() error { 36654 invalidParams := request.ErrInvalidParams{Context: "Tiering"} 36655 if s.AccessTier == nil { 36656 invalidParams.Add(request.NewErrParamRequired("AccessTier")) 36657 } 36658 if s.Days == nil { 36659 invalidParams.Add(request.NewErrParamRequired("Days")) 36660 } 36661 36662 if invalidParams.Len() > 0 { 36663 return invalidParams 36664 } 36665 return nil 36666 } 36667 36668 // SetAccessTier sets the AccessTier field's value. 36669 func (s *Tiering) SetAccessTier(v string) *Tiering { 36670 s.AccessTier = &v 36671 return s 36672 } 36673 36674 // SetDays sets the Days field's value. 36675 func (s *Tiering) SetDays(v int64) *Tiering { 36676 s.Days = &v 36677 return s 36678 } 36679 36680 // A container for specifying the configuration for publication of messages 36681 // to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 36682 // detects specified events. 36683 type TopicConfiguration struct { 36684 _ struct{} `type:"structure"` 36685 36686 // The Amazon S3 bucket event about which to send notifications. For more information, 36687 // see Supported Event Types (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 36688 // in the Amazon S3 User Guide. 36689 // 36690 // Events is a required field 36691 Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"` 36692 36693 // Specifies object key name filtering rules. For information about key name 36694 // filtering, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 36695 // in the Amazon S3 User Guide. 36696 Filter *NotificationConfigurationFilter `type:"structure"` 36697 36698 // An optional unique identifier for configurations in a notification configuration. 36699 // If you don't provide one, Amazon S3 will assign an ID. 36700 Id *string `type:"string"` 36701 36702 // The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 36703 // publishes a message when it detects events of the specified type. 36704 // 36705 // TopicArn is a required field 36706 TopicArn *string `locationName:"Topic" type:"string" required:"true"` 36707 } 36708 36709 // String returns the string representation. 36710 // 36711 // API parameter values that are decorated as "sensitive" in the API will not 36712 // be included in the string output. The member name will be present, but the 36713 // value will be replaced with "sensitive". 36714 func (s TopicConfiguration) String() string { 36715 return awsutil.Prettify(s) 36716 } 36717 36718 // GoString returns the string representation. 36719 // 36720 // API parameter values that are decorated as "sensitive" in the API will not 36721 // be included in the string output. The member name will be present, but the 36722 // value will be replaced with "sensitive". 36723 func (s TopicConfiguration) GoString() string { 36724 return s.String() 36725 } 36726 36727 // Validate inspects the fields of the type to determine if they are valid. 36728 func (s *TopicConfiguration) Validate() error { 36729 invalidParams := request.ErrInvalidParams{Context: "TopicConfiguration"} 36730 if s.Events == nil { 36731 invalidParams.Add(request.NewErrParamRequired("Events")) 36732 } 36733 if s.TopicArn == nil { 36734 invalidParams.Add(request.NewErrParamRequired("TopicArn")) 36735 } 36736 36737 if invalidParams.Len() > 0 { 36738 return invalidParams 36739 } 36740 return nil 36741 } 36742 36743 // SetEvents sets the Events field's value. 36744 func (s *TopicConfiguration) SetEvents(v []*string) *TopicConfiguration { 36745 s.Events = v 36746 return s 36747 } 36748 36749 // SetFilter sets the Filter field's value. 36750 func (s *TopicConfiguration) SetFilter(v *NotificationConfigurationFilter) *TopicConfiguration { 36751 s.Filter = v 36752 return s 36753 } 36754 36755 // SetId sets the Id field's value. 36756 func (s *TopicConfiguration) SetId(v string) *TopicConfiguration { 36757 s.Id = &v 36758 return s 36759 } 36760 36761 // SetTopicArn sets the TopicArn field's value. 36762 func (s *TopicConfiguration) SetTopicArn(v string) *TopicConfiguration { 36763 s.TopicArn = &v 36764 return s 36765 } 36766 36767 // A container for specifying the configuration for publication of messages 36768 // to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 36769 // detects specified events. This data type is deprecated. Use TopicConfiguration 36770 // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_TopicConfiguration.html) 36771 // instead. 36772 type TopicConfigurationDeprecated struct { 36773 _ struct{} `type:"structure"` 36774 36775 // Bucket event for which to send notifications. 36776 // 36777 // Deprecated: Event has been deprecated 36778 Event *string `deprecated:"true" type:"string" enum:"Event"` 36779 36780 // A collection of events related to objects 36781 Events []*string `locationName:"Event" type:"list" flattened:"true"` 36782 36783 // An optional unique identifier for configurations in a notification configuration. 36784 // If you don't provide one, Amazon S3 will assign an ID. 36785 Id *string `type:"string"` 36786 36787 // Amazon SNS topic to which Amazon S3 will publish a message to report the 36788 // specified events for the bucket. 36789 Topic *string `type:"string"` 36790 } 36791 36792 // String returns the string representation. 36793 // 36794 // API parameter values that are decorated as "sensitive" in the API will not 36795 // be included in the string output. The member name will be present, but the 36796 // value will be replaced with "sensitive". 36797 func (s TopicConfigurationDeprecated) String() string { 36798 return awsutil.Prettify(s) 36799 } 36800 36801 // GoString returns the string representation. 36802 // 36803 // API parameter values that are decorated as "sensitive" in the API will not 36804 // be included in the string output. The member name will be present, but the 36805 // value will be replaced with "sensitive". 36806 func (s TopicConfigurationDeprecated) GoString() string { 36807 return s.String() 36808 } 36809 36810 // SetEvent sets the Event field's value. 36811 func (s *TopicConfigurationDeprecated) SetEvent(v string) *TopicConfigurationDeprecated { 36812 s.Event = &v 36813 return s 36814 } 36815 36816 // SetEvents sets the Events field's value. 36817 func (s *TopicConfigurationDeprecated) SetEvents(v []*string) *TopicConfigurationDeprecated { 36818 s.Events = v 36819 return s 36820 } 36821 36822 // SetId sets the Id field's value. 36823 func (s *TopicConfigurationDeprecated) SetId(v string) *TopicConfigurationDeprecated { 36824 s.Id = &v 36825 return s 36826 } 36827 36828 // SetTopic sets the Topic field's value. 36829 func (s *TopicConfigurationDeprecated) SetTopic(v string) *TopicConfigurationDeprecated { 36830 s.Topic = &v 36831 return s 36832 } 36833 36834 // Specifies when an object transitions to a specified storage class. For more 36835 // information about Amazon S3 lifecycle configuration rules, see Transitioning 36836 // Objects Using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) 36837 // in the Amazon S3 User Guide. 36838 type Transition struct { 36839 _ struct{} `type:"structure"` 36840 36841 // Indicates when objects are transitioned to the specified storage class. The 36842 // date value must be in ISO 8601 format. The time is always midnight UTC. 36843 Date *time.Time `type:"timestamp" timestampFormat:"iso8601"` 36844 36845 // Indicates the number of days after creation when objects are transitioned 36846 // to the specified storage class. The value must be a positive integer. 36847 Days *int64 `type:"integer"` 36848 36849 // The storage class to which you want the object to transition. 36850 StorageClass *string `type:"string" enum:"TransitionStorageClass"` 36851 } 36852 36853 // String returns the string representation. 36854 // 36855 // API parameter values that are decorated as "sensitive" in the API will not 36856 // be included in the string output. The member name will be present, but the 36857 // value will be replaced with "sensitive". 36858 func (s Transition) String() string { 36859 return awsutil.Prettify(s) 36860 } 36861 36862 // GoString returns the string representation. 36863 // 36864 // API parameter values that are decorated as "sensitive" in the API will not 36865 // be included in the string output. The member name will be present, but the 36866 // value will be replaced with "sensitive". 36867 func (s Transition) GoString() string { 36868 return s.String() 36869 } 36870 36871 // SetDate sets the Date field's value. 36872 func (s *Transition) SetDate(v time.Time) *Transition { 36873 s.Date = &v 36874 return s 36875 } 36876 36877 // SetDays sets the Days field's value. 36878 func (s *Transition) SetDays(v int64) *Transition { 36879 s.Days = &v 36880 return s 36881 } 36882 36883 // SetStorageClass sets the StorageClass field's value. 36884 func (s *Transition) SetStorageClass(v string) *Transition { 36885 s.StorageClass = &v 36886 return s 36887 } 36888 36889 type UploadPartCopyInput struct { 36890 _ struct{} `locationName:"UploadPartCopyRequest" type:"structure"` 36891 36892 // The bucket name. 36893 // 36894 // When using this action with an access point, you must direct requests to 36895 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 36896 // When using this action with an access point through the Amazon Web Services 36897 // SDKs, you provide the access point ARN in place of the bucket name. For more 36898 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 36899 // in the Amazon S3 User Guide. 36900 // 36901 // When using this action with Amazon S3 on Outposts, you must direct requests 36902 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 36903 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 36904 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 36905 // you provide the Outposts bucket ARN in place of the bucket name. For more 36906 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 36907 // in the Amazon S3 User Guide. 36908 // 36909 // Bucket is a required field 36910 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 36911 36912 // Specifies the source object for the copy operation. You specify the value 36913 // in one of two formats, depending on whether you want to access the source 36914 // object through an access point (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html): 36915 // 36916 // * For objects not accessed through an access point, specify the name of 36917 // the source bucket and key of the source object, separated by a slash (/). 36918 // For example, to copy the object reports/january.pdf from the bucket awsexamplebucket, 36919 // use awsexamplebucket/reports/january.pdf. The value must be URL encoded. 36920 // 36921 // * For objects accessed through access points, specify the Amazon Resource 36922 // Name (ARN) of the object as accessed through the access point, in the 36923 // format arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>. 36924 // For example, to copy the object reports/january.pdf through access point 36925 // my-access-point owned by account 123456789012 in Region us-west-2, use 36926 // the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. 36927 // The value must be URL encoded. Amazon S3 supports copy operations using 36928 // access points only when the source and destination buckets are in the 36929 // same Amazon Web Services Region. Alternatively, for objects accessed through 36930 // Amazon S3 on Outposts, specify the ARN of the object as accessed in the 36931 // format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>. 36932 // For example, to copy the object reports/january.pdf through outpost my-outpost 36933 // owned by account 123456789012 in Region us-west-2, use the URL encoding 36934 // of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. 36935 // The value must be URL encoded. 36936 // 36937 // To copy a specific version of an object, append ?versionId=<version-id> to 36938 // the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). 36939 // If you don't specify a version ID, Amazon S3 copies the latest version of 36940 // the source object. 36941 // 36942 // CopySource is a required field 36943 CopySource *string `location:"header" locationName:"x-amz-copy-source" type:"string" required:"true"` 36944 36945 // Copies the object if its entity tag (ETag) matches the specified tag. 36946 CopySourceIfMatch *string `location:"header" locationName:"x-amz-copy-source-if-match" type:"string"` 36947 36948 // Copies the object if it has been modified since the specified time. 36949 CopySourceIfModifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-modified-since" type:"timestamp"` 36950 36951 // Copies the object if its entity tag (ETag) is different than the specified 36952 // ETag. 36953 CopySourceIfNoneMatch *string `location:"header" locationName:"x-amz-copy-source-if-none-match" type:"string"` 36954 36955 // Copies the object if it hasn't been modified since the specified time. 36956 CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp"` 36957 36958 // The range of bytes to copy from the source object. The range value must use 36959 // the form bytes=first-last, where the first and last are the zero-based byte 36960 // offsets to copy. For example, bytes=0-9 indicates that you want to copy the 36961 // first 10 bytes of the source. You can copy a range only if the source object 36962 // is greater than 5 MB. 36963 CopySourceRange *string `location:"header" locationName:"x-amz-copy-source-range" type:"string"` 36964 36965 // Specifies the algorithm to use when decrypting the source object (for example, 36966 // AES256). 36967 CopySourceSSECustomerAlgorithm *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm" type:"string"` 36968 36969 // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt 36970 // the source object. The encryption key provided in this header must be one 36971 // that was used when the source object was created. 36972 // 36973 // CopySourceSSECustomerKey is a sensitive parameter and its value will be 36974 // replaced with "sensitive" in string returned by UploadPartCopyInput's 36975 // String and GoString methods. 36976 CopySourceSSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"` 36977 36978 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 36979 // Amazon S3 uses this header for a message integrity check to ensure that the 36980 // encryption key was transmitted without error. 36981 CopySourceSSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5" type:"string"` 36982 36983 // The account ID of the expected destination bucket owner. If the destination 36984 // bucket is owned by a different account, the request will fail with an HTTP 36985 // 403 (Access Denied) error. 36986 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 36987 36988 // The account ID of the expected source bucket owner. If the source bucket 36989 // is owned by a different account, the request will fail with an HTTP 403 (Access 36990 // Denied) error. 36991 ExpectedSourceBucketOwner *string `location:"header" locationName:"x-amz-source-expected-bucket-owner" type:"string"` 36992 36993 // Object key for which the multipart upload was initiated. 36994 // 36995 // Key is a required field 36996 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 36997 36998 // Part number of part being copied. This is a positive integer between 1 and 36999 // 10,000. 37000 // 37001 // PartNumber is a required field 37002 PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer" required:"true"` 37003 37004 // Confirms that the requester knows that they will be charged for the request. 37005 // Bucket owners need not specify this parameter in their requests. For information 37006 // about downloading objects from requester pays buckets, see Downloading Objects 37007 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 37008 // in the Amazon S3 User Guide. 37009 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 37010 37011 // Specifies the algorithm to use to when encrypting the object (for example, 37012 // AES256). 37013 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 37014 37015 // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting 37016 // data. This value is used to store the object and then it is discarded; Amazon 37017 // S3 does not store the encryption key. The key must be appropriate for use 37018 // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm 37019 // header. This must be the same encryption key specified in the initiate multipart 37020 // upload request. 37021 // 37022 // SSECustomerKey is a sensitive parameter and its value will be 37023 // replaced with "sensitive" in string returned by UploadPartCopyInput's 37024 // String and GoString methods. 37025 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 37026 37027 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 37028 // Amazon S3 uses this header for a message integrity check to ensure that the 37029 // encryption key was transmitted without error. 37030 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 37031 37032 // Upload ID identifying the multipart upload whose part is being copied. 37033 // 37034 // UploadId is a required field 37035 UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"` 37036 } 37037 37038 // String returns the string representation. 37039 // 37040 // API parameter values that are decorated as "sensitive" in the API will not 37041 // be included in the string output. The member name will be present, but the 37042 // value will be replaced with "sensitive". 37043 func (s UploadPartCopyInput) String() string { 37044 return awsutil.Prettify(s) 37045 } 37046 37047 // GoString returns the string representation. 37048 // 37049 // API parameter values that are decorated as "sensitive" in the API will not 37050 // be included in the string output. The member name will be present, but the 37051 // value will be replaced with "sensitive". 37052 func (s UploadPartCopyInput) GoString() string { 37053 return s.String() 37054 } 37055 37056 // Validate inspects the fields of the type to determine if they are valid. 37057 func (s *UploadPartCopyInput) Validate() error { 37058 invalidParams := request.ErrInvalidParams{Context: "UploadPartCopyInput"} 37059 if s.Bucket == nil { 37060 invalidParams.Add(request.NewErrParamRequired("Bucket")) 37061 } 37062 if s.Bucket != nil && len(*s.Bucket) < 1 { 37063 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 37064 } 37065 if s.CopySource == nil { 37066 invalidParams.Add(request.NewErrParamRequired("CopySource")) 37067 } 37068 if s.Key == nil { 37069 invalidParams.Add(request.NewErrParamRequired("Key")) 37070 } 37071 if s.Key != nil && len(*s.Key) < 1 { 37072 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 37073 } 37074 if s.PartNumber == nil { 37075 invalidParams.Add(request.NewErrParamRequired("PartNumber")) 37076 } 37077 if s.UploadId == nil { 37078 invalidParams.Add(request.NewErrParamRequired("UploadId")) 37079 } 37080 37081 if invalidParams.Len() > 0 { 37082 return invalidParams 37083 } 37084 return nil 37085 } 37086 37087 // SetBucket sets the Bucket field's value. 37088 func (s *UploadPartCopyInput) SetBucket(v string) *UploadPartCopyInput { 37089 s.Bucket = &v 37090 return s 37091 } 37092 37093 func (s *UploadPartCopyInput) getBucket() (v string) { 37094 if s.Bucket == nil { 37095 return v 37096 } 37097 return *s.Bucket 37098 } 37099 37100 // SetCopySource sets the CopySource field's value. 37101 func (s *UploadPartCopyInput) SetCopySource(v string) *UploadPartCopyInput { 37102 s.CopySource = &v 37103 return s 37104 } 37105 37106 // SetCopySourceIfMatch sets the CopySourceIfMatch field's value. 37107 func (s *UploadPartCopyInput) SetCopySourceIfMatch(v string) *UploadPartCopyInput { 37108 s.CopySourceIfMatch = &v 37109 return s 37110 } 37111 37112 // SetCopySourceIfModifiedSince sets the CopySourceIfModifiedSince field's value. 37113 func (s *UploadPartCopyInput) SetCopySourceIfModifiedSince(v time.Time) *UploadPartCopyInput { 37114 s.CopySourceIfModifiedSince = &v 37115 return s 37116 } 37117 37118 // SetCopySourceIfNoneMatch sets the CopySourceIfNoneMatch field's value. 37119 func (s *UploadPartCopyInput) SetCopySourceIfNoneMatch(v string) *UploadPartCopyInput { 37120 s.CopySourceIfNoneMatch = &v 37121 return s 37122 } 37123 37124 // SetCopySourceIfUnmodifiedSince sets the CopySourceIfUnmodifiedSince field's value. 37125 func (s *UploadPartCopyInput) SetCopySourceIfUnmodifiedSince(v time.Time) *UploadPartCopyInput { 37126 s.CopySourceIfUnmodifiedSince = &v 37127 return s 37128 } 37129 37130 // SetCopySourceRange sets the CopySourceRange field's value. 37131 func (s *UploadPartCopyInput) SetCopySourceRange(v string) *UploadPartCopyInput { 37132 s.CopySourceRange = &v 37133 return s 37134 } 37135 37136 // SetCopySourceSSECustomerAlgorithm sets the CopySourceSSECustomerAlgorithm field's value. 37137 func (s *UploadPartCopyInput) SetCopySourceSSECustomerAlgorithm(v string) *UploadPartCopyInput { 37138 s.CopySourceSSECustomerAlgorithm = &v 37139 return s 37140 } 37141 37142 // SetCopySourceSSECustomerKey sets the CopySourceSSECustomerKey field's value. 37143 func (s *UploadPartCopyInput) SetCopySourceSSECustomerKey(v string) *UploadPartCopyInput { 37144 s.CopySourceSSECustomerKey = &v 37145 return s 37146 } 37147 37148 func (s *UploadPartCopyInput) getCopySourceSSECustomerKey() (v string) { 37149 if s.CopySourceSSECustomerKey == nil { 37150 return v 37151 } 37152 return *s.CopySourceSSECustomerKey 37153 } 37154 37155 // SetCopySourceSSECustomerKeyMD5 sets the CopySourceSSECustomerKeyMD5 field's value. 37156 func (s *UploadPartCopyInput) SetCopySourceSSECustomerKeyMD5(v string) *UploadPartCopyInput { 37157 s.CopySourceSSECustomerKeyMD5 = &v 37158 return s 37159 } 37160 37161 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 37162 func (s *UploadPartCopyInput) SetExpectedBucketOwner(v string) *UploadPartCopyInput { 37163 s.ExpectedBucketOwner = &v 37164 return s 37165 } 37166 37167 // SetExpectedSourceBucketOwner sets the ExpectedSourceBucketOwner field's value. 37168 func (s *UploadPartCopyInput) SetExpectedSourceBucketOwner(v string) *UploadPartCopyInput { 37169 s.ExpectedSourceBucketOwner = &v 37170 return s 37171 } 37172 37173 // SetKey sets the Key field's value. 37174 func (s *UploadPartCopyInput) SetKey(v string) *UploadPartCopyInput { 37175 s.Key = &v 37176 return s 37177 } 37178 37179 // SetPartNumber sets the PartNumber field's value. 37180 func (s *UploadPartCopyInput) SetPartNumber(v int64) *UploadPartCopyInput { 37181 s.PartNumber = &v 37182 return s 37183 } 37184 37185 // SetRequestPayer sets the RequestPayer field's value. 37186 func (s *UploadPartCopyInput) SetRequestPayer(v string) *UploadPartCopyInput { 37187 s.RequestPayer = &v 37188 return s 37189 } 37190 37191 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 37192 func (s *UploadPartCopyInput) SetSSECustomerAlgorithm(v string) *UploadPartCopyInput { 37193 s.SSECustomerAlgorithm = &v 37194 return s 37195 } 37196 37197 // SetSSECustomerKey sets the SSECustomerKey field's value. 37198 func (s *UploadPartCopyInput) SetSSECustomerKey(v string) *UploadPartCopyInput { 37199 s.SSECustomerKey = &v 37200 return s 37201 } 37202 37203 func (s *UploadPartCopyInput) getSSECustomerKey() (v string) { 37204 if s.SSECustomerKey == nil { 37205 return v 37206 } 37207 return *s.SSECustomerKey 37208 } 37209 37210 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 37211 func (s *UploadPartCopyInput) SetSSECustomerKeyMD5(v string) *UploadPartCopyInput { 37212 s.SSECustomerKeyMD5 = &v 37213 return s 37214 } 37215 37216 // SetUploadId sets the UploadId field's value. 37217 func (s *UploadPartCopyInput) SetUploadId(v string) *UploadPartCopyInput { 37218 s.UploadId = &v 37219 return s 37220 } 37221 37222 func (s *UploadPartCopyInput) getEndpointARN() (arn.Resource, error) { 37223 if s.Bucket == nil { 37224 return nil, fmt.Errorf("member Bucket is nil") 37225 } 37226 return parseEndpointARN(*s.Bucket) 37227 } 37228 37229 func (s *UploadPartCopyInput) hasEndpointARN() bool { 37230 if s.Bucket == nil { 37231 return false 37232 } 37233 return arn.IsARN(*s.Bucket) 37234 } 37235 37236 // updateArnableField updates the value of the input field that 37237 // takes an ARN as an input. This method is useful to backfill 37238 // the parsed resource name from ARN into the input member. 37239 // It returns a pointer to a modified copy of input and an error. 37240 // Note that original input is not modified. 37241 func (s UploadPartCopyInput) updateArnableField(v string) (interface{}, error) { 37242 if s.Bucket == nil { 37243 return nil, fmt.Errorf("member Bucket is nil") 37244 } 37245 s.Bucket = aws.String(v) 37246 return &s, nil 37247 } 37248 37249 type UploadPartCopyOutput struct { 37250 _ struct{} `type:"structure" payload:"CopyPartResult"` 37251 37252 // Indicates whether the multipart upload uses an S3 Bucket Key for server-side 37253 // encryption with Amazon Web Services KMS (SSE-KMS). 37254 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 37255 37256 // Container for all response elements. 37257 CopyPartResult *CopyPartResult `type:"structure"` 37258 37259 // The version of the source object that was copied, if you have enabled versioning 37260 // on the source bucket. 37261 CopySourceVersionId *string `location:"header" locationName:"x-amz-copy-source-version-id" type:"string"` 37262 37263 // If present, indicates that the requester was successfully charged for the 37264 // request. 37265 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 37266 37267 // If server-side encryption with a customer-provided encryption key was requested, 37268 // the response will include this header confirming the encryption algorithm 37269 // used. 37270 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 37271 37272 // If server-side encryption with a customer-provided encryption key was requested, 37273 // the response will include this header to provide round-trip message integrity 37274 // verification of the customer-provided encryption key. 37275 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 37276 37277 // If present, specifies the ID of the Amazon Web Services Key Management Service 37278 // (Amazon Web Services KMS) symmetric customer managed key that was used for 37279 // the object. 37280 // 37281 // SSEKMSKeyId is a sensitive parameter and its value will be 37282 // replaced with "sensitive" in string returned by UploadPartCopyOutput's 37283 // String and GoString methods. 37284 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 37285 37286 // The server-side encryption algorithm used when storing this object in Amazon 37287 // S3 (for example, AES256, aws:kms). 37288 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 37289 } 37290 37291 // String returns the string representation. 37292 // 37293 // API parameter values that are decorated as "sensitive" in the API will not 37294 // be included in the string output. The member name will be present, but the 37295 // value will be replaced with "sensitive". 37296 func (s UploadPartCopyOutput) String() string { 37297 return awsutil.Prettify(s) 37298 } 37299 37300 // GoString returns the string representation. 37301 // 37302 // API parameter values that are decorated as "sensitive" in the API will not 37303 // be included in the string output. The member name will be present, but the 37304 // value will be replaced with "sensitive". 37305 func (s UploadPartCopyOutput) GoString() string { 37306 return s.String() 37307 } 37308 37309 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 37310 func (s *UploadPartCopyOutput) SetBucketKeyEnabled(v bool) *UploadPartCopyOutput { 37311 s.BucketKeyEnabled = &v 37312 return s 37313 } 37314 37315 // SetCopyPartResult sets the CopyPartResult field's value. 37316 func (s *UploadPartCopyOutput) SetCopyPartResult(v *CopyPartResult) *UploadPartCopyOutput { 37317 s.CopyPartResult = v 37318 return s 37319 } 37320 37321 // SetCopySourceVersionId sets the CopySourceVersionId field's value. 37322 func (s *UploadPartCopyOutput) SetCopySourceVersionId(v string) *UploadPartCopyOutput { 37323 s.CopySourceVersionId = &v 37324 return s 37325 } 37326 37327 // SetRequestCharged sets the RequestCharged field's value. 37328 func (s *UploadPartCopyOutput) SetRequestCharged(v string) *UploadPartCopyOutput { 37329 s.RequestCharged = &v 37330 return s 37331 } 37332 37333 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 37334 func (s *UploadPartCopyOutput) SetSSECustomerAlgorithm(v string) *UploadPartCopyOutput { 37335 s.SSECustomerAlgorithm = &v 37336 return s 37337 } 37338 37339 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 37340 func (s *UploadPartCopyOutput) SetSSECustomerKeyMD5(v string) *UploadPartCopyOutput { 37341 s.SSECustomerKeyMD5 = &v 37342 return s 37343 } 37344 37345 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 37346 func (s *UploadPartCopyOutput) SetSSEKMSKeyId(v string) *UploadPartCopyOutput { 37347 s.SSEKMSKeyId = &v 37348 return s 37349 } 37350 37351 // SetServerSideEncryption sets the ServerSideEncryption field's value. 37352 func (s *UploadPartCopyOutput) SetServerSideEncryption(v string) *UploadPartCopyOutput { 37353 s.ServerSideEncryption = &v 37354 return s 37355 } 37356 37357 type UploadPartInput struct { 37358 _ struct{} `locationName:"UploadPartRequest" type:"structure" payload:"Body"` 37359 37360 // Object data. 37361 Body io.ReadSeeker `type:"blob"` 37362 37363 // The name of the bucket to which the multipart upload was initiated. 37364 // 37365 // When using this action with an access point, you must direct requests to 37366 // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. 37367 // When using this action with an access point through the Amazon Web Services 37368 // SDKs, you provide the access point ARN in place of the bucket name. For more 37369 // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) 37370 // in the Amazon S3 User Guide. 37371 // 37372 // When using this action with Amazon S3 on Outposts, you must direct requests 37373 // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form 37374 // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When 37375 // using this action using S3 on Outposts through the Amazon Web Services SDKs, 37376 // you provide the Outposts bucket ARN in place of the bucket name. For more 37377 // information about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) 37378 // in the Amazon S3 User Guide. 37379 // 37380 // Bucket is a required field 37381 Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` 37382 37383 // Size of the body in bytes. This parameter is useful when the size of the 37384 // body cannot be determined automatically. 37385 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` 37386 37387 // The base64-encoded 128-bit MD5 digest of the part data. This parameter is 37388 // auto-populated when using the command from the CLI. This parameter is required 37389 // if object lock parameters are specified. 37390 ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` 37391 37392 // The account ID of the expected bucket owner. If the bucket is owned by a 37393 // different account, the request will fail with an HTTP 403 (Access Denied) 37394 // error. 37395 ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` 37396 37397 // Object key for which the multipart upload was initiated. 37398 // 37399 // Key is a required field 37400 Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` 37401 37402 // Part number of part being uploaded. This is a positive integer between 1 37403 // and 10,000. 37404 // 37405 // PartNumber is a required field 37406 PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer" required:"true"` 37407 37408 // Confirms that the requester knows that they will be charged for the request. 37409 // Bucket owners need not specify this parameter in their requests. For information 37410 // about downloading objects from requester pays buckets, see Downloading Objects 37411 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 37412 // in the Amazon S3 User Guide. 37413 RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` 37414 37415 // Specifies the algorithm to use to when encrypting the object (for example, 37416 // AES256). 37417 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 37418 37419 // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting 37420 // data. This value is used to store the object and then it is discarded; Amazon 37421 // S3 does not store the encryption key. The key must be appropriate for use 37422 // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm 37423 // header. This must be the same encryption key specified in the initiate multipart 37424 // upload request. 37425 // 37426 // SSECustomerKey is a sensitive parameter and its value will be 37427 // replaced with "sensitive" in string returned by UploadPartInput's 37428 // String and GoString methods. 37429 SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` 37430 37431 // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. 37432 // Amazon S3 uses this header for a message integrity check to ensure that the 37433 // encryption key was transmitted without error. 37434 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 37435 37436 // Upload ID identifying the multipart upload whose part is being uploaded. 37437 // 37438 // UploadId is a required field 37439 UploadId *string `location:"querystring" locationName:"uploadId" type:"string" required:"true"` 37440 } 37441 37442 // String returns the string representation. 37443 // 37444 // API parameter values that are decorated as "sensitive" in the API will not 37445 // be included in the string output. The member name will be present, but the 37446 // value will be replaced with "sensitive". 37447 func (s UploadPartInput) String() string { 37448 return awsutil.Prettify(s) 37449 } 37450 37451 // GoString returns the string representation. 37452 // 37453 // API parameter values that are decorated as "sensitive" in the API will not 37454 // be included in the string output. The member name will be present, but the 37455 // value will be replaced with "sensitive". 37456 func (s UploadPartInput) GoString() string { 37457 return s.String() 37458 } 37459 37460 // Validate inspects the fields of the type to determine if they are valid. 37461 func (s *UploadPartInput) Validate() error { 37462 invalidParams := request.ErrInvalidParams{Context: "UploadPartInput"} 37463 if s.Bucket == nil { 37464 invalidParams.Add(request.NewErrParamRequired("Bucket")) 37465 } 37466 if s.Bucket != nil && len(*s.Bucket) < 1 { 37467 invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) 37468 } 37469 if s.Key == nil { 37470 invalidParams.Add(request.NewErrParamRequired("Key")) 37471 } 37472 if s.Key != nil && len(*s.Key) < 1 { 37473 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 37474 } 37475 if s.PartNumber == nil { 37476 invalidParams.Add(request.NewErrParamRequired("PartNumber")) 37477 } 37478 if s.UploadId == nil { 37479 invalidParams.Add(request.NewErrParamRequired("UploadId")) 37480 } 37481 37482 if invalidParams.Len() > 0 { 37483 return invalidParams 37484 } 37485 return nil 37486 } 37487 37488 // SetBody sets the Body field's value. 37489 func (s *UploadPartInput) SetBody(v io.ReadSeeker) *UploadPartInput { 37490 s.Body = v 37491 return s 37492 } 37493 37494 // SetBucket sets the Bucket field's value. 37495 func (s *UploadPartInput) SetBucket(v string) *UploadPartInput { 37496 s.Bucket = &v 37497 return s 37498 } 37499 37500 func (s *UploadPartInput) getBucket() (v string) { 37501 if s.Bucket == nil { 37502 return v 37503 } 37504 return *s.Bucket 37505 } 37506 37507 // SetContentLength sets the ContentLength field's value. 37508 func (s *UploadPartInput) SetContentLength(v int64) *UploadPartInput { 37509 s.ContentLength = &v 37510 return s 37511 } 37512 37513 // SetContentMD5 sets the ContentMD5 field's value. 37514 func (s *UploadPartInput) SetContentMD5(v string) *UploadPartInput { 37515 s.ContentMD5 = &v 37516 return s 37517 } 37518 37519 // SetExpectedBucketOwner sets the ExpectedBucketOwner field's value. 37520 func (s *UploadPartInput) SetExpectedBucketOwner(v string) *UploadPartInput { 37521 s.ExpectedBucketOwner = &v 37522 return s 37523 } 37524 37525 // SetKey sets the Key field's value. 37526 func (s *UploadPartInput) SetKey(v string) *UploadPartInput { 37527 s.Key = &v 37528 return s 37529 } 37530 37531 // SetPartNumber sets the PartNumber field's value. 37532 func (s *UploadPartInput) SetPartNumber(v int64) *UploadPartInput { 37533 s.PartNumber = &v 37534 return s 37535 } 37536 37537 // SetRequestPayer sets the RequestPayer field's value. 37538 func (s *UploadPartInput) SetRequestPayer(v string) *UploadPartInput { 37539 s.RequestPayer = &v 37540 return s 37541 } 37542 37543 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 37544 func (s *UploadPartInput) SetSSECustomerAlgorithm(v string) *UploadPartInput { 37545 s.SSECustomerAlgorithm = &v 37546 return s 37547 } 37548 37549 // SetSSECustomerKey sets the SSECustomerKey field's value. 37550 func (s *UploadPartInput) SetSSECustomerKey(v string) *UploadPartInput { 37551 s.SSECustomerKey = &v 37552 return s 37553 } 37554 37555 func (s *UploadPartInput) getSSECustomerKey() (v string) { 37556 if s.SSECustomerKey == nil { 37557 return v 37558 } 37559 return *s.SSECustomerKey 37560 } 37561 37562 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 37563 func (s *UploadPartInput) SetSSECustomerKeyMD5(v string) *UploadPartInput { 37564 s.SSECustomerKeyMD5 = &v 37565 return s 37566 } 37567 37568 // SetUploadId sets the UploadId field's value. 37569 func (s *UploadPartInput) SetUploadId(v string) *UploadPartInput { 37570 s.UploadId = &v 37571 return s 37572 } 37573 37574 func (s *UploadPartInput) getEndpointARN() (arn.Resource, error) { 37575 if s.Bucket == nil { 37576 return nil, fmt.Errorf("member Bucket is nil") 37577 } 37578 return parseEndpointARN(*s.Bucket) 37579 } 37580 37581 func (s *UploadPartInput) hasEndpointARN() bool { 37582 if s.Bucket == nil { 37583 return false 37584 } 37585 return arn.IsARN(*s.Bucket) 37586 } 37587 37588 // updateArnableField updates the value of the input field that 37589 // takes an ARN as an input. This method is useful to backfill 37590 // the parsed resource name from ARN into the input member. 37591 // It returns a pointer to a modified copy of input and an error. 37592 // Note that original input is not modified. 37593 func (s UploadPartInput) updateArnableField(v string) (interface{}, error) { 37594 if s.Bucket == nil { 37595 return nil, fmt.Errorf("member Bucket is nil") 37596 } 37597 s.Bucket = aws.String(v) 37598 return &s, nil 37599 } 37600 37601 type UploadPartOutput struct { 37602 _ struct{} `type:"structure"` 37603 37604 // Indicates whether the multipart upload uses an S3 Bucket Key for server-side 37605 // encryption with Amazon Web Services KMS (SSE-KMS). 37606 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 37607 37608 // Entity tag for the uploaded object. 37609 ETag *string `location:"header" locationName:"ETag" type:"string"` 37610 37611 // If present, indicates that the requester was successfully charged for the 37612 // request. 37613 RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` 37614 37615 // If server-side encryption with a customer-provided encryption key was requested, 37616 // the response will include this header confirming the encryption algorithm 37617 // used. 37618 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` 37619 37620 // If server-side encryption with a customer-provided encryption key was requested, 37621 // the response will include this header to provide round-trip message integrity 37622 // verification of the customer-provided encryption key. 37623 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` 37624 37625 // If present, specifies the ID of the Amazon Web Services Key Management Service 37626 // (Amazon Web Services KMS) symmetric customer managed key was used for the 37627 // object. 37628 // 37629 // SSEKMSKeyId is a sensitive parameter and its value will be 37630 // replaced with "sensitive" in string returned by UploadPartOutput's 37631 // String and GoString methods. 37632 SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 37633 37634 // The server-side encryption algorithm used when storing this object in Amazon 37635 // S3 (for example, AES256, aws:kms). 37636 ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 37637 } 37638 37639 // String returns the string representation. 37640 // 37641 // API parameter values that are decorated as "sensitive" in the API will not 37642 // be included in the string output. The member name will be present, but the 37643 // value will be replaced with "sensitive". 37644 func (s UploadPartOutput) String() string { 37645 return awsutil.Prettify(s) 37646 } 37647 37648 // GoString returns the string representation. 37649 // 37650 // API parameter values that are decorated as "sensitive" in the API will not 37651 // be included in the string output. The member name will be present, but the 37652 // value will be replaced with "sensitive". 37653 func (s UploadPartOutput) GoString() string { 37654 return s.String() 37655 } 37656 37657 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 37658 func (s *UploadPartOutput) SetBucketKeyEnabled(v bool) *UploadPartOutput { 37659 s.BucketKeyEnabled = &v 37660 return s 37661 } 37662 37663 // SetETag sets the ETag field's value. 37664 func (s *UploadPartOutput) SetETag(v string) *UploadPartOutput { 37665 s.ETag = &v 37666 return s 37667 } 37668 37669 // SetRequestCharged sets the RequestCharged field's value. 37670 func (s *UploadPartOutput) SetRequestCharged(v string) *UploadPartOutput { 37671 s.RequestCharged = &v 37672 return s 37673 } 37674 37675 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 37676 func (s *UploadPartOutput) SetSSECustomerAlgorithm(v string) *UploadPartOutput { 37677 s.SSECustomerAlgorithm = &v 37678 return s 37679 } 37680 37681 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 37682 func (s *UploadPartOutput) SetSSECustomerKeyMD5(v string) *UploadPartOutput { 37683 s.SSECustomerKeyMD5 = &v 37684 return s 37685 } 37686 37687 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 37688 func (s *UploadPartOutput) SetSSEKMSKeyId(v string) *UploadPartOutput { 37689 s.SSEKMSKeyId = &v 37690 return s 37691 } 37692 37693 // SetServerSideEncryption sets the ServerSideEncryption field's value. 37694 func (s *UploadPartOutput) SetServerSideEncryption(v string) *UploadPartOutput { 37695 s.ServerSideEncryption = &v 37696 return s 37697 } 37698 37699 // Describes the versioning state of an Amazon S3 bucket. For more information, 37700 // see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) 37701 // in the Amazon S3 API Reference. 37702 type VersioningConfiguration struct { 37703 _ struct{} `type:"structure"` 37704 37705 // Specifies whether MFA delete is enabled in the bucket versioning configuration. 37706 // This element is only returned if the bucket has been configured with MFA 37707 // delete. If the bucket has never been so configured, this element is not returned. 37708 MFADelete *string `locationName:"MfaDelete" type:"string" enum:"MFADelete"` 37709 37710 // The versioning state of the bucket. 37711 Status *string `type:"string" enum:"BucketVersioningStatus"` 37712 } 37713 37714 // String returns the string representation. 37715 // 37716 // API parameter values that are decorated as "sensitive" in the API will not 37717 // be included in the string output. The member name will be present, but the 37718 // value will be replaced with "sensitive". 37719 func (s VersioningConfiguration) String() string { 37720 return awsutil.Prettify(s) 37721 } 37722 37723 // GoString returns the string representation. 37724 // 37725 // API parameter values that are decorated as "sensitive" in the API will not 37726 // be included in the string output. The member name will be present, but the 37727 // value will be replaced with "sensitive". 37728 func (s VersioningConfiguration) GoString() string { 37729 return s.String() 37730 } 37731 37732 // SetMFADelete sets the MFADelete field's value. 37733 func (s *VersioningConfiguration) SetMFADelete(v string) *VersioningConfiguration { 37734 s.MFADelete = &v 37735 return s 37736 } 37737 37738 // SetStatus sets the Status field's value. 37739 func (s *VersioningConfiguration) SetStatus(v string) *VersioningConfiguration { 37740 s.Status = &v 37741 return s 37742 } 37743 37744 // Specifies website configuration parameters for an Amazon S3 bucket. 37745 type WebsiteConfiguration struct { 37746 _ struct{} `type:"structure"` 37747 37748 // The name of the error document for the website. 37749 ErrorDocument *ErrorDocument `type:"structure"` 37750 37751 // The name of the index document for the website. 37752 IndexDocument *IndexDocument `type:"structure"` 37753 37754 // The redirect behavior for every request to this bucket's website endpoint. 37755 // 37756 // If you specify this property, you can't specify any other property. 37757 RedirectAllRequestsTo *RedirectAllRequestsTo `type:"structure"` 37758 37759 // Rules that define when a redirect is applied and the redirect behavior. 37760 RoutingRules []*RoutingRule `locationNameList:"RoutingRule" type:"list"` 37761 } 37762 37763 // String returns the string representation. 37764 // 37765 // API parameter values that are decorated as "sensitive" in the API will not 37766 // be included in the string output. The member name will be present, but the 37767 // value will be replaced with "sensitive". 37768 func (s WebsiteConfiguration) String() string { 37769 return awsutil.Prettify(s) 37770 } 37771 37772 // GoString returns the string representation. 37773 // 37774 // API parameter values that are decorated as "sensitive" in the API will not 37775 // be included in the string output. The member name will be present, but the 37776 // value will be replaced with "sensitive". 37777 func (s WebsiteConfiguration) GoString() string { 37778 return s.String() 37779 } 37780 37781 // Validate inspects the fields of the type to determine if they are valid. 37782 func (s *WebsiteConfiguration) Validate() error { 37783 invalidParams := request.ErrInvalidParams{Context: "WebsiteConfiguration"} 37784 if s.ErrorDocument != nil { 37785 if err := s.ErrorDocument.Validate(); err != nil { 37786 invalidParams.AddNested("ErrorDocument", err.(request.ErrInvalidParams)) 37787 } 37788 } 37789 if s.IndexDocument != nil { 37790 if err := s.IndexDocument.Validate(); err != nil { 37791 invalidParams.AddNested("IndexDocument", err.(request.ErrInvalidParams)) 37792 } 37793 } 37794 if s.RedirectAllRequestsTo != nil { 37795 if err := s.RedirectAllRequestsTo.Validate(); err != nil { 37796 invalidParams.AddNested("RedirectAllRequestsTo", err.(request.ErrInvalidParams)) 37797 } 37798 } 37799 if s.RoutingRules != nil { 37800 for i, v := range s.RoutingRules { 37801 if v == nil { 37802 continue 37803 } 37804 if err := v.Validate(); err != nil { 37805 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RoutingRules", i), err.(request.ErrInvalidParams)) 37806 } 37807 } 37808 } 37809 37810 if invalidParams.Len() > 0 { 37811 return invalidParams 37812 } 37813 return nil 37814 } 37815 37816 // SetErrorDocument sets the ErrorDocument field's value. 37817 func (s *WebsiteConfiguration) SetErrorDocument(v *ErrorDocument) *WebsiteConfiguration { 37818 s.ErrorDocument = v 37819 return s 37820 } 37821 37822 // SetIndexDocument sets the IndexDocument field's value. 37823 func (s *WebsiteConfiguration) SetIndexDocument(v *IndexDocument) *WebsiteConfiguration { 37824 s.IndexDocument = v 37825 return s 37826 } 37827 37828 // SetRedirectAllRequestsTo sets the RedirectAllRequestsTo field's value. 37829 func (s *WebsiteConfiguration) SetRedirectAllRequestsTo(v *RedirectAllRequestsTo) *WebsiteConfiguration { 37830 s.RedirectAllRequestsTo = v 37831 return s 37832 } 37833 37834 // SetRoutingRules sets the RoutingRules field's value. 37835 func (s *WebsiteConfiguration) SetRoutingRules(v []*RoutingRule) *WebsiteConfiguration { 37836 s.RoutingRules = v 37837 return s 37838 } 37839 37840 type WriteGetObjectResponseInput struct { 37841 _ struct{} `locationName:"WriteGetObjectResponseRequest" type:"structure" payload:"Body"` 37842 37843 // Indicates that a range of bytes was specified. 37844 AcceptRanges *string `location:"header" locationName:"x-amz-fwd-header-accept-ranges" type:"string"` 37845 37846 // The object data. 37847 // 37848 // To use an non-seekable io.Reader for this request wrap the io.Reader with 37849 // "aws.ReadSeekCloser". The SDK will not retry request errors for non-seekable 37850 // readers. This will allow the SDK to send the reader's payload as chunked 37851 // transfer encoding. 37852 Body io.ReadSeeker `type:"blob"` 37853 37854 // Indicates whether the object stored in Amazon S3 uses an S3 bucket key for 37855 // server-side encryption with Amazon Web Services KMS (SSE-KMS). 37856 BucketKeyEnabled *bool `location:"header" locationName:"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` 37857 37858 // Specifies caching behavior along the request/reply chain. 37859 CacheControl *string `location:"header" locationName:"x-amz-fwd-header-Cache-Control" type:"string"` 37860 37861 // Specifies presentational information for the object. 37862 ContentDisposition *string `location:"header" locationName:"x-amz-fwd-header-Content-Disposition" type:"string"` 37863 37864 // Specifies what content encodings have been applied to the object and thus 37865 // what decoding mechanisms must be applied to obtain the media-type referenced 37866 // by the Content-Type header field. 37867 ContentEncoding *string `location:"header" locationName:"x-amz-fwd-header-Content-Encoding" type:"string"` 37868 37869 // The language the content is in. 37870 ContentLanguage *string `location:"header" locationName:"x-amz-fwd-header-Content-Language" type:"string"` 37871 37872 // The size of the content body in bytes. 37873 ContentLength *int64 `location:"header" locationName:"Content-Length" type:"long"` 37874 37875 // The portion of the object returned in the response. 37876 ContentRange *string `location:"header" locationName:"x-amz-fwd-header-Content-Range" type:"string"` 37877 37878 // A standard MIME type describing the format of the object data. 37879 ContentType *string `location:"header" locationName:"x-amz-fwd-header-Content-Type" type:"string"` 37880 37881 // Specifies whether an object stored in Amazon S3 is (true) or is not (false) 37882 // a delete marker. 37883 DeleteMarker *bool `location:"header" locationName:"x-amz-fwd-header-x-amz-delete-marker" type:"boolean"` 37884 37885 // An opaque identifier assigned by a web server to a specific version of a 37886 // resource found at a URL. 37887 ETag *string `location:"header" locationName:"x-amz-fwd-header-ETag" type:"string"` 37888 37889 // A string that uniquely identifies an error condition. Returned in the <Code> 37890 // tag of the error XML response for a corresponding GetObject call. Cannot 37891 // be used with a successful StatusCode header or when the transformed object 37892 // is provided in the body. All error codes from S3 are sentence-cased. Regex 37893 // value is "^[A-Z][a-zA-Z]+$". 37894 ErrorCode *string `location:"header" locationName:"x-amz-fwd-error-code" type:"string"` 37895 37896 // Contains a generic description of the error condition. Returned in the <Message> 37897 // tag of the error XML response for a corresponding GetObject call. Cannot 37898 // be used with a successful StatusCode header or when the transformed object 37899 // is provided in body. 37900 ErrorMessage *string `location:"header" locationName:"x-amz-fwd-error-message" type:"string"` 37901 37902 // If object stored in Amazon S3 expiration is configured (see PUT Bucket lifecycle) 37903 // it includes expiry-date and rule-id key-value pairs providing object expiration 37904 // information. The value of the rule-id is URL encoded. 37905 Expiration *string `location:"header" locationName:"x-amz-fwd-header-x-amz-expiration" type:"string"` 37906 37907 // The date and time at which the object is no longer cacheable. 37908 Expires *time.Time `location:"header" locationName:"x-amz-fwd-header-Expires" type:"timestamp"` 37909 37910 // The date and time that the object was last modified. 37911 LastModified *time.Time `location:"header" locationName:"x-amz-fwd-header-Last-Modified" type:"timestamp"` 37912 37913 // A map of metadata to store with the object in S3. 37914 Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` 37915 37916 // Set to the number of metadata entries not returned in x-amz-meta headers. 37917 // This can happen if you create metadata using an API like SOAP that supports 37918 // more flexible metadata than the REST API. For example, using SOAP, you can 37919 // create metadata whose values are not legal HTTP headers. 37920 MissingMeta *int64 `location:"header" locationName:"x-amz-fwd-header-x-amz-missing-meta" type:"integer"` 37921 37922 // Indicates whether an object stored in Amazon S3 has an active legal hold. 37923 ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-fwd-header-x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` 37924 37925 // Indicates whether an object stored in Amazon S3 has Object Lock enabled. 37926 // For more information about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html). 37927 ObjectLockMode *string `location:"header" locationName:"x-amz-fwd-header-x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` 37928 37929 // The date and time when Object Lock is configured to expire. 37930 ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-fwd-header-x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` 37931 37932 // The count of parts this object has. 37933 PartsCount *int64 `location:"header" locationName:"x-amz-fwd-header-x-amz-mp-parts-count" type:"integer"` 37934 37935 // Indicates if request involves bucket that is either a source or destination 37936 // in a Replication rule. For more information about S3 Replication, see Replication 37937 // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html). 37938 ReplicationStatus *string `location:"header" locationName:"x-amz-fwd-header-x-amz-replication-status" type:"string" enum:"ReplicationStatus"` 37939 37940 // If present, indicates that the requester was successfully charged for the 37941 // request. 37942 RequestCharged *string `location:"header" locationName:"x-amz-fwd-header-x-amz-request-charged" type:"string" enum:"RequestCharged"` 37943 37944 // Route prefix to the HTTP URL generated. 37945 // 37946 // RequestRoute is a required field 37947 RequestRoute *string `location:"header" locationName:"x-amz-request-route" type:"string" required:"true"` 37948 37949 // A single use encrypted token that maps WriteGetObjectResponse to the end 37950 // user GetObject request. 37951 // 37952 // RequestToken is a required field 37953 RequestToken *string `location:"header" locationName:"x-amz-request-token" type:"string" required:"true"` 37954 37955 // Provides information about object restoration operation and expiration time 37956 // of the restored object copy. 37957 Restore *string `location:"header" locationName:"x-amz-fwd-header-x-amz-restore" type:"string"` 37958 37959 // Encryption algorithm used if server-side encryption with a customer-provided 37960 // encryption key was specified for object stored in Amazon S3. 37961 SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm" type:"string"` 37962 37963 // 128-bit MD5 digest of customer-provided encryption key used in Amazon S3 37964 // to encrypt data stored in S3. For more information, see Protecting data using 37965 // server-side encryption with customer-provided encryption keys (SSE-C) (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html). 37966 SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-MD5" type:"string"` 37967 37968 // If present, specifies the ID of the Amazon Web Services Key Management Service 37969 // (Amazon Web Services KMS) symmetric customer managed key that was used for 37970 // stored in Amazon S3 object. 37971 // 37972 // SSEKMSKeyId is a sensitive parameter and its value will be 37973 // replaced with "sensitive" in string returned by WriteGetObjectResponseInput's 37974 // String and GoString methods. 37975 SSEKMSKeyId *string `location:"header" locationName:"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` 37976 37977 // The server-side encryption algorithm used when storing requested object in 37978 // Amazon S3 (for example, AES256, aws:kms). 37979 ServerSideEncryption *string `location:"header" locationName:"x-amz-fwd-header-x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` 37980 37981 // The integer status code for an HTTP response of a corresponding GetObject 37982 // request. 37983 // 37984 // Status Codes 37985 // 37986 // * 200 - OK 37987 // 37988 // * 206 - Partial Content 37989 // 37990 // * 304 - Not Modified 37991 // 37992 // * 400 - Bad Request 37993 // 37994 // * 401 - Unauthorized 37995 // 37996 // * 403 - Forbidden 37997 // 37998 // * 404 - Not Found 37999 // 38000 // * 405 - Method Not Allowed 38001 // 38002 // * 409 - Conflict 38003 // 38004 // * 411 - Length Required 38005 // 38006 // * 412 - Precondition Failed 38007 // 38008 // * 416 - Range Not Satisfiable 38009 // 38010 // * 500 - Internal Server Error 38011 // 38012 // * 503 - Service Unavailable 38013 StatusCode *int64 `location:"header" locationName:"x-amz-fwd-status" type:"integer"` 38014 38015 // The class of storage used to store object in Amazon S3. 38016 StorageClass *string `location:"header" locationName:"x-amz-fwd-header-x-amz-storage-class" type:"string" enum:"StorageClass"` 38017 38018 // The number of tags, if any, on the object. 38019 TagCount *int64 `location:"header" locationName:"x-amz-fwd-header-x-amz-tagging-count" type:"integer"` 38020 38021 // An ID used to reference a specific version of the object. 38022 VersionId *string `location:"header" locationName:"x-amz-fwd-header-x-amz-version-id" type:"string"` 38023 } 38024 38025 // String returns the string representation. 38026 // 38027 // API parameter values that are decorated as "sensitive" in the API will not 38028 // be included in the string output. The member name will be present, but the 38029 // value will be replaced with "sensitive". 38030 func (s WriteGetObjectResponseInput) String() string { 38031 return awsutil.Prettify(s) 38032 } 38033 38034 // GoString returns the string representation. 38035 // 38036 // API parameter values that are decorated as "sensitive" in the API will not 38037 // be included in the string output. The member name will be present, but the 38038 // value will be replaced with "sensitive". 38039 func (s WriteGetObjectResponseInput) GoString() string { 38040 return s.String() 38041 } 38042 38043 // Validate inspects the fields of the type to determine if they are valid. 38044 func (s *WriteGetObjectResponseInput) Validate() error { 38045 invalidParams := request.ErrInvalidParams{Context: "WriteGetObjectResponseInput"} 38046 if s.RequestRoute == nil { 38047 invalidParams.Add(request.NewErrParamRequired("RequestRoute")) 38048 } 38049 if s.RequestRoute != nil && len(*s.RequestRoute) < 1 { 38050 invalidParams.Add(request.NewErrParamMinLen("RequestRoute", 1)) 38051 } 38052 if s.RequestToken == nil { 38053 invalidParams.Add(request.NewErrParamRequired("RequestToken")) 38054 } 38055 38056 if invalidParams.Len() > 0 { 38057 return invalidParams 38058 } 38059 return nil 38060 } 38061 38062 // SetAcceptRanges sets the AcceptRanges field's value. 38063 func (s *WriteGetObjectResponseInput) SetAcceptRanges(v string) *WriteGetObjectResponseInput { 38064 s.AcceptRanges = &v 38065 return s 38066 } 38067 38068 // SetBody sets the Body field's value. 38069 func (s *WriteGetObjectResponseInput) SetBody(v io.ReadSeeker) *WriteGetObjectResponseInput { 38070 s.Body = v 38071 return s 38072 } 38073 38074 // SetBucketKeyEnabled sets the BucketKeyEnabled field's value. 38075 func (s *WriteGetObjectResponseInput) SetBucketKeyEnabled(v bool) *WriteGetObjectResponseInput { 38076 s.BucketKeyEnabled = &v 38077 return s 38078 } 38079 38080 // SetCacheControl sets the CacheControl field's value. 38081 func (s *WriteGetObjectResponseInput) SetCacheControl(v string) *WriteGetObjectResponseInput { 38082 s.CacheControl = &v 38083 return s 38084 } 38085 38086 // SetContentDisposition sets the ContentDisposition field's value. 38087 func (s *WriteGetObjectResponseInput) SetContentDisposition(v string) *WriteGetObjectResponseInput { 38088 s.ContentDisposition = &v 38089 return s 38090 } 38091 38092 // SetContentEncoding sets the ContentEncoding field's value. 38093 func (s *WriteGetObjectResponseInput) SetContentEncoding(v string) *WriteGetObjectResponseInput { 38094 s.ContentEncoding = &v 38095 return s 38096 } 38097 38098 // SetContentLanguage sets the ContentLanguage field's value. 38099 func (s *WriteGetObjectResponseInput) SetContentLanguage(v string) *WriteGetObjectResponseInput { 38100 s.ContentLanguage = &v 38101 return s 38102 } 38103 38104 // SetContentLength sets the ContentLength field's value. 38105 func (s *WriteGetObjectResponseInput) SetContentLength(v int64) *WriteGetObjectResponseInput { 38106 s.ContentLength = &v 38107 return s 38108 } 38109 38110 // SetContentRange sets the ContentRange field's value. 38111 func (s *WriteGetObjectResponseInput) SetContentRange(v string) *WriteGetObjectResponseInput { 38112 s.ContentRange = &v 38113 return s 38114 } 38115 38116 // SetContentType sets the ContentType field's value. 38117 func (s *WriteGetObjectResponseInput) SetContentType(v string) *WriteGetObjectResponseInput { 38118 s.ContentType = &v 38119 return s 38120 } 38121 38122 // SetDeleteMarker sets the DeleteMarker field's value. 38123 func (s *WriteGetObjectResponseInput) SetDeleteMarker(v bool) *WriteGetObjectResponseInput { 38124 s.DeleteMarker = &v 38125 return s 38126 } 38127 38128 // SetETag sets the ETag field's value. 38129 func (s *WriteGetObjectResponseInput) SetETag(v string) *WriteGetObjectResponseInput { 38130 s.ETag = &v 38131 return s 38132 } 38133 38134 // SetErrorCode sets the ErrorCode field's value. 38135 func (s *WriteGetObjectResponseInput) SetErrorCode(v string) *WriteGetObjectResponseInput { 38136 s.ErrorCode = &v 38137 return s 38138 } 38139 38140 // SetErrorMessage sets the ErrorMessage field's value. 38141 func (s *WriteGetObjectResponseInput) SetErrorMessage(v string) *WriteGetObjectResponseInput { 38142 s.ErrorMessage = &v 38143 return s 38144 } 38145 38146 // SetExpiration sets the Expiration field's value. 38147 func (s *WriteGetObjectResponseInput) SetExpiration(v string) *WriteGetObjectResponseInput { 38148 s.Expiration = &v 38149 return s 38150 } 38151 38152 // SetExpires sets the Expires field's value. 38153 func (s *WriteGetObjectResponseInput) SetExpires(v time.Time) *WriteGetObjectResponseInput { 38154 s.Expires = &v 38155 return s 38156 } 38157 38158 // SetLastModified sets the LastModified field's value. 38159 func (s *WriteGetObjectResponseInput) SetLastModified(v time.Time) *WriteGetObjectResponseInput { 38160 s.LastModified = &v 38161 return s 38162 } 38163 38164 // SetMetadata sets the Metadata field's value. 38165 func (s *WriteGetObjectResponseInput) SetMetadata(v map[string]*string) *WriteGetObjectResponseInput { 38166 s.Metadata = v 38167 return s 38168 } 38169 38170 // SetMissingMeta sets the MissingMeta field's value. 38171 func (s *WriteGetObjectResponseInput) SetMissingMeta(v int64) *WriteGetObjectResponseInput { 38172 s.MissingMeta = &v 38173 return s 38174 } 38175 38176 // SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value. 38177 func (s *WriteGetObjectResponseInput) SetObjectLockLegalHoldStatus(v string) *WriteGetObjectResponseInput { 38178 s.ObjectLockLegalHoldStatus = &v 38179 return s 38180 } 38181 38182 // SetObjectLockMode sets the ObjectLockMode field's value. 38183 func (s *WriteGetObjectResponseInput) SetObjectLockMode(v string) *WriteGetObjectResponseInput { 38184 s.ObjectLockMode = &v 38185 return s 38186 } 38187 38188 // SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value. 38189 func (s *WriteGetObjectResponseInput) SetObjectLockRetainUntilDate(v time.Time) *WriteGetObjectResponseInput { 38190 s.ObjectLockRetainUntilDate = &v 38191 return s 38192 } 38193 38194 // SetPartsCount sets the PartsCount field's value. 38195 func (s *WriteGetObjectResponseInput) SetPartsCount(v int64) *WriteGetObjectResponseInput { 38196 s.PartsCount = &v 38197 return s 38198 } 38199 38200 // SetReplicationStatus sets the ReplicationStatus field's value. 38201 func (s *WriteGetObjectResponseInput) SetReplicationStatus(v string) *WriteGetObjectResponseInput { 38202 s.ReplicationStatus = &v 38203 return s 38204 } 38205 38206 // SetRequestCharged sets the RequestCharged field's value. 38207 func (s *WriteGetObjectResponseInput) SetRequestCharged(v string) *WriteGetObjectResponseInput { 38208 s.RequestCharged = &v 38209 return s 38210 } 38211 38212 // SetRequestRoute sets the RequestRoute field's value. 38213 func (s *WriteGetObjectResponseInput) SetRequestRoute(v string) *WriteGetObjectResponseInput { 38214 s.RequestRoute = &v 38215 return s 38216 } 38217 38218 // SetRequestToken sets the RequestToken field's value. 38219 func (s *WriteGetObjectResponseInput) SetRequestToken(v string) *WriteGetObjectResponseInput { 38220 s.RequestToken = &v 38221 return s 38222 } 38223 38224 // SetRestore sets the Restore field's value. 38225 func (s *WriteGetObjectResponseInput) SetRestore(v string) *WriteGetObjectResponseInput { 38226 s.Restore = &v 38227 return s 38228 } 38229 38230 // SetSSECustomerAlgorithm sets the SSECustomerAlgorithm field's value. 38231 func (s *WriteGetObjectResponseInput) SetSSECustomerAlgorithm(v string) *WriteGetObjectResponseInput { 38232 s.SSECustomerAlgorithm = &v 38233 return s 38234 } 38235 38236 // SetSSECustomerKeyMD5 sets the SSECustomerKeyMD5 field's value. 38237 func (s *WriteGetObjectResponseInput) SetSSECustomerKeyMD5(v string) *WriteGetObjectResponseInput { 38238 s.SSECustomerKeyMD5 = &v 38239 return s 38240 } 38241 38242 // SetSSEKMSKeyId sets the SSEKMSKeyId field's value. 38243 func (s *WriteGetObjectResponseInput) SetSSEKMSKeyId(v string) *WriteGetObjectResponseInput { 38244 s.SSEKMSKeyId = &v 38245 return s 38246 } 38247 38248 // SetServerSideEncryption sets the ServerSideEncryption field's value. 38249 func (s *WriteGetObjectResponseInput) SetServerSideEncryption(v string) *WriteGetObjectResponseInput { 38250 s.ServerSideEncryption = &v 38251 return s 38252 } 38253 38254 // SetStatusCode sets the StatusCode field's value. 38255 func (s *WriteGetObjectResponseInput) SetStatusCode(v int64) *WriteGetObjectResponseInput { 38256 s.StatusCode = &v 38257 return s 38258 } 38259 38260 // SetStorageClass sets the StorageClass field's value. 38261 func (s *WriteGetObjectResponseInput) SetStorageClass(v string) *WriteGetObjectResponseInput { 38262 s.StorageClass = &v 38263 return s 38264 } 38265 38266 // SetTagCount sets the TagCount field's value. 38267 func (s *WriteGetObjectResponseInput) SetTagCount(v int64) *WriteGetObjectResponseInput { 38268 s.TagCount = &v 38269 return s 38270 } 38271 38272 // SetVersionId sets the VersionId field's value. 38273 func (s *WriteGetObjectResponseInput) SetVersionId(v string) *WriteGetObjectResponseInput { 38274 s.VersionId = &v 38275 return s 38276 } 38277 38278 func (s *WriteGetObjectResponseInput) hostLabels() map[string]string { 38279 return map[string]string{ 38280 "RequestRoute": aws.StringValue(s.RequestRoute), 38281 } 38282 } 38283 38284 type WriteGetObjectResponseOutput struct { 38285 _ struct{} `type:"structure"` 38286 } 38287 38288 // String returns the string representation. 38289 // 38290 // API parameter values that are decorated as "sensitive" in the API will not 38291 // be included in the string output. The member name will be present, but the 38292 // value will be replaced with "sensitive". 38293 func (s WriteGetObjectResponseOutput) String() string { 38294 return awsutil.Prettify(s) 38295 } 38296 38297 // GoString returns the string representation. 38298 // 38299 // API parameter values that are decorated as "sensitive" in the API will not 38300 // be included in the string output. The member name will be present, but the 38301 // value will be replaced with "sensitive". 38302 func (s WriteGetObjectResponseOutput) GoString() string { 38303 return s.String() 38304 } 38305 38306 const ( 38307 // AnalyticsS3ExportFileFormatCsv is a AnalyticsS3ExportFileFormat enum value 38308 AnalyticsS3ExportFileFormatCsv = "CSV" 38309 ) 38310 38311 // AnalyticsS3ExportFileFormat_Values returns all elements of the AnalyticsS3ExportFileFormat enum 38312 func AnalyticsS3ExportFileFormat_Values() []string { 38313 return []string{ 38314 AnalyticsS3ExportFileFormatCsv, 38315 } 38316 } 38317 38318 const ( 38319 // ArchiveStatusArchiveAccess is a ArchiveStatus enum value 38320 ArchiveStatusArchiveAccess = "ARCHIVE_ACCESS" 38321 38322 // ArchiveStatusDeepArchiveAccess is a ArchiveStatus enum value 38323 ArchiveStatusDeepArchiveAccess = "DEEP_ARCHIVE_ACCESS" 38324 ) 38325 38326 // ArchiveStatus_Values returns all elements of the ArchiveStatus enum 38327 func ArchiveStatus_Values() []string { 38328 return []string{ 38329 ArchiveStatusArchiveAccess, 38330 ArchiveStatusDeepArchiveAccess, 38331 } 38332 } 38333 38334 const ( 38335 // BucketAccelerateStatusEnabled is a BucketAccelerateStatus enum value 38336 BucketAccelerateStatusEnabled = "Enabled" 38337 38338 // BucketAccelerateStatusSuspended is a BucketAccelerateStatus enum value 38339 BucketAccelerateStatusSuspended = "Suspended" 38340 ) 38341 38342 // BucketAccelerateStatus_Values returns all elements of the BucketAccelerateStatus enum 38343 func BucketAccelerateStatus_Values() []string { 38344 return []string{ 38345 BucketAccelerateStatusEnabled, 38346 BucketAccelerateStatusSuspended, 38347 } 38348 } 38349 38350 const ( 38351 // BucketCannedACLPrivate is a BucketCannedACL enum value 38352 BucketCannedACLPrivate = "private" 38353 38354 // BucketCannedACLPublicRead is a BucketCannedACL enum value 38355 BucketCannedACLPublicRead = "public-read" 38356 38357 // BucketCannedACLPublicReadWrite is a BucketCannedACL enum value 38358 BucketCannedACLPublicReadWrite = "public-read-write" 38359 38360 // BucketCannedACLAuthenticatedRead is a BucketCannedACL enum value 38361 BucketCannedACLAuthenticatedRead = "authenticated-read" 38362 ) 38363 38364 // BucketCannedACL_Values returns all elements of the BucketCannedACL enum 38365 func BucketCannedACL_Values() []string { 38366 return []string{ 38367 BucketCannedACLPrivate, 38368 BucketCannedACLPublicRead, 38369 BucketCannedACLPublicReadWrite, 38370 BucketCannedACLAuthenticatedRead, 38371 } 38372 } 38373 38374 const ( 38375 // BucketLocationConstraintAfSouth1 is a BucketLocationConstraint enum value 38376 BucketLocationConstraintAfSouth1 = "af-south-1" 38377 38378 // BucketLocationConstraintApEast1 is a BucketLocationConstraint enum value 38379 BucketLocationConstraintApEast1 = "ap-east-1" 38380 38381 // BucketLocationConstraintApNortheast1 is a BucketLocationConstraint enum value 38382 BucketLocationConstraintApNortheast1 = "ap-northeast-1" 38383 38384 // BucketLocationConstraintApNortheast2 is a BucketLocationConstraint enum value 38385 BucketLocationConstraintApNortheast2 = "ap-northeast-2" 38386 38387 // BucketLocationConstraintApNortheast3 is a BucketLocationConstraint enum value 38388 BucketLocationConstraintApNortheast3 = "ap-northeast-3" 38389 38390 // BucketLocationConstraintApSouth1 is a BucketLocationConstraint enum value 38391 BucketLocationConstraintApSouth1 = "ap-south-1" 38392 38393 // BucketLocationConstraintApSoutheast1 is a BucketLocationConstraint enum value 38394 BucketLocationConstraintApSoutheast1 = "ap-southeast-1" 38395 38396 // BucketLocationConstraintApSoutheast2 is a BucketLocationConstraint enum value 38397 BucketLocationConstraintApSoutheast2 = "ap-southeast-2" 38398 38399 // BucketLocationConstraintCaCentral1 is a BucketLocationConstraint enum value 38400 BucketLocationConstraintCaCentral1 = "ca-central-1" 38401 38402 // BucketLocationConstraintCnNorth1 is a BucketLocationConstraint enum value 38403 BucketLocationConstraintCnNorth1 = "cn-north-1" 38404 38405 // BucketLocationConstraintCnNorthwest1 is a BucketLocationConstraint enum value 38406 BucketLocationConstraintCnNorthwest1 = "cn-northwest-1" 38407 38408 // BucketLocationConstraintEu is a BucketLocationConstraint enum value 38409 BucketLocationConstraintEu = "EU" 38410 38411 // BucketLocationConstraintEuCentral1 is a BucketLocationConstraint enum value 38412 BucketLocationConstraintEuCentral1 = "eu-central-1" 38413 38414 // BucketLocationConstraintEuNorth1 is a BucketLocationConstraint enum value 38415 BucketLocationConstraintEuNorth1 = "eu-north-1" 38416 38417 // BucketLocationConstraintEuSouth1 is a BucketLocationConstraint enum value 38418 BucketLocationConstraintEuSouth1 = "eu-south-1" 38419 38420 // BucketLocationConstraintEuWest1 is a BucketLocationConstraint enum value 38421 BucketLocationConstraintEuWest1 = "eu-west-1" 38422 38423 // BucketLocationConstraintEuWest2 is a BucketLocationConstraint enum value 38424 BucketLocationConstraintEuWest2 = "eu-west-2" 38425 38426 // BucketLocationConstraintEuWest3 is a BucketLocationConstraint enum value 38427 BucketLocationConstraintEuWest3 = "eu-west-3" 38428 38429 // BucketLocationConstraintMeSouth1 is a BucketLocationConstraint enum value 38430 BucketLocationConstraintMeSouth1 = "me-south-1" 38431 38432 // BucketLocationConstraintSaEast1 is a BucketLocationConstraint enum value 38433 BucketLocationConstraintSaEast1 = "sa-east-1" 38434 38435 // BucketLocationConstraintUsEast2 is a BucketLocationConstraint enum value 38436 BucketLocationConstraintUsEast2 = "us-east-2" 38437 38438 // BucketLocationConstraintUsGovEast1 is a BucketLocationConstraint enum value 38439 BucketLocationConstraintUsGovEast1 = "us-gov-east-1" 38440 38441 // BucketLocationConstraintUsGovWest1 is a BucketLocationConstraint enum value 38442 BucketLocationConstraintUsGovWest1 = "us-gov-west-1" 38443 38444 // BucketLocationConstraintUsWest1 is a BucketLocationConstraint enum value 38445 BucketLocationConstraintUsWest1 = "us-west-1" 38446 38447 // BucketLocationConstraintUsWest2 is a BucketLocationConstraint enum value 38448 BucketLocationConstraintUsWest2 = "us-west-2" 38449 ) 38450 38451 // BucketLocationConstraint_Values returns all elements of the BucketLocationConstraint enum 38452 func BucketLocationConstraint_Values() []string { 38453 return []string{ 38454 BucketLocationConstraintAfSouth1, 38455 BucketLocationConstraintApEast1, 38456 BucketLocationConstraintApNortheast1, 38457 BucketLocationConstraintApNortheast2, 38458 BucketLocationConstraintApNortheast3, 38459 BucketLocationConstraintApSouth1, 38460 BucketLocationConstraintApSoutheast1, 38461 BucketLocationConstraintApSoutheast2, 38462 BucketLocationConstraintCaCentral1, 38463 BucketLocationConstraintCnNorth1, 38464 BucketLocationConstraintCnNorthwest1, 38465 BucketLocationConstraintEu, 38466 BucketLocationConstraintEuCentral1, 38467 BucketLocationConstraintEuNorth1, 38468 BucketLocationConstraintEuSouth1, 38469 BucketLocationConstraintEuWest1, 38470 BucketLocationConstraintEuWest2, 38471 BucketLocationConstraintEuWest3, 38472 BucketLocationConstraintMeSouth1, 38473 BucketLocationConstraintSaEast1, 38474 BucketLocationConstraintUsEast2, 38475 BucketLocationConstraintUsGovEast1, 38476 BucketLocationConstraintUsGovWest1, 38477 BucketLocationConstraintUsWest1, 38478 BucketLocationConstraintUsWest2, 38479 } 38480 } 38481 38482 const ( 38483 // BucketLogsPermissionFullControl is a BucketLogsPermission enum value 38484 BucketLogsPermissionFullControl = "FULL_CONTROL" 38485 38486 // BucketLogsPermissionRead is a BucketLogsPermission enum value 38487 BucketLogsPermissionRead = "READ" 38488 38489 // BucketLogsPermissionWrite is a BucketLogsPermission enum value 38490 BucketLogsPermissionWrite = "WRITE" 38491 ) 38492 38493 // BucketLogsPermission_Values returns all elements of the BucketLogsPermission enum 38494 func BucketLogsPermission_Values() []string { 38495 return []string{ 38496 BucketLogsPermissionFullControl, 38497 BucketLogsPermissionRead, 38498 BucketLogsPermissionWrite, 38499 } 38500 } 38501 38502 const ( 38503 // BucketVersioningStatusEnabled is a BucketVersioningStatus enum value 38504 BucketVersioningStatusEnabled = "Enabled" 38505 38506 // BucketVersioningStatusSuspended is a BucketVersioningStatus enum value 38507 BucketVersioningStatusSuspended = "Suspended" 38508 ) 38509 38510 // BucketVersioningStatus_Values returns all elements of the BucketVersioningStatus enum 38511 func BucketVersioningStatus_Values() []string { 38512 return []string{ 38513 BucketVersioningStatusEnabled, 38514 BucketVersioningStatusSuspended, 38515 } 38516 } 38517 38518 const ( 38519 // CompressionTypeNone is a CompressionType enum value 38520 CompressionTypeNone = "NONE" 38521 38522 // CompressionTypeGzip is a CompressionType enum value 38523 CompressionTypeGzip = "GZIP" 38524 38525 // CompressionTypeBzip2 is a CompressionType enum value 38526 CompressionTypeBzip2 = "BZIP2" 38527 ) 38528 38529 // CompressionType_Values returns all elements of the CompressionType enum 38530 func CompressionType_Values() []string { 38531 return []string{ 38532 CompressionTypeNone, 38533 CompressionTypeGzip, 38534 CompressionTypeBzip2, 38535 } 38536 } 38537 38538 const ( 38539 // DeleteMarkerReplicationStatusEnabled is a DeleteMarkerReplicationStatus enum value 38540 DeleteMarkerReplicationStatusEnabled = "Enabled" 38541 38542 // DeleteMarkerReplicationStatusDisabled is a DeleteMarkerReplicationStatus enum value 38543 DeleteMarkerReplicationStatusDisabled = "Disabled" 38544 ) 38545 38546 // DeleteMarkerReplicationStatus_Values returns all elements of the DeleteMarkerReplicationStatus enum 38547 func DeleteMarkerReplicationStatus_Values() []string { 38548 return []string{ 38549 DeleteMarkerReplicationStatusEnabled, 38550 DeleteMarkerReplicationStatusDisabled, 38551 } 38552 } 38553 38554 // Requests Amazon S3 to encode the object keys in the response and specifies 38555 // the encoding method to use. An object key may contain any Unicode character; 38556 // however, XML 1.0 parser cannot parse some characters, such as characters 38557 // with an ASCII value from 0 to 10. For characters that are not supported in 38558 // XML 1.0, you can add this parameter to request that Amazon S3 encode the 38559 // keys in the response. 38560 const ( 38561 // EncodingTypeUrl is a EncodingType enum value 38562 EncodingTypeUrl = "url" 38563 ) 38564 38565 // EncodingType_Values returns all elements of the EncodingType enum 38566 func EncodingType_Values() []string { 38567 return []string{ 38568 EncodingTypeUrl, 38569 } 38570 } 38571 38572 // The bucket event for which to send notifications. 38573 const ( 38574 // EventS3ReducedRedundancyLostObject is a Event enum value 38575 EventS3ReducedRedundancyLostObject = "s3:ReducedRedundancyLostObject" 38576 38577 // EventS3ObjectCreated is a Event enum value 38578 EventS3ObjectCreated = "s3:ObjectCreated:*" 38579 38580 // EventS3ObjectCreatedPut is a Event enum value 38581 EventS3ObjectCreatedPut = "s3:ObjectCreated:Put" 38582 38583 // EventS3ObjectCreatedPost is a Event enum value 38584 EventS3ObjectCreatedPost = "s3:ObjectCreated:Post" 38585 38586 // EventS3ObjectCreatedCopy is a Event enum value 38587 EventS3ObjectCreatedCopy = "s3:ObjectCreated:Copy" 38588 38589 // EventS3ObjectCreatedCompleteMultipartUpload is a Event enum value 38590 EventS3ObjectCreatedCompleteMultipartUpload = "s3:ObjectCreated:CompleteMultipartUpload" 38591 38592 // EventS3ObjectRemoved is a Event enum value 38593 EventS3ObjectRemoved = "s3:ObjectRemoved:*" 38594 38595 // EventS3ObjectRemovedDelete is a Event enum value 38596 EventS3ObjectRemovedDelete = "s3:ObjectRemoved:Delete" 38597 38598 // EventS3ObjectRemovedDeleteMarkerCreated is a Event enum value 38599 EventS3ObjectRemovedDeleteMarkerCreated = "s3:ObjectRemoved:DeleteMarkerCreated" 38600 38601 // EventS3ObjectRestore is a Event enum value 38602 EventS3ObjectRestore = "s3:ObjectRestore:*" 38603 38604 // EventS3ObjectRestorePost is a Event enum value 38605 EventS3ObjectRestorePost = "s3:ObjectRestore:Post" 38606 38607 // EventS3ObjectRestoreCompleted is a Event enum value 38608 EventS3ObjectRestoreCompleted = "s3:ObjectRestore:Completed" 38609 38610 // EventS3Replication is a Event enum value 38611 EventS3Replication = "s3:Replication:*" 38612 38613 // EventS3ReplicationOperationFailedReplication is a Event enum value 38614 EventS3ReplicationOperationFailedReplication = "s3:Replication:OperationFailedReplication" 38615 38616 // EventS3ReplicationOperationNotTracked is a Event enum value 38617 EventS3ReplicationOperationNotTracked = "s3:Replication:OperationNotTracked" 38618 38619 // EventS3ReplicationOperationMissedThreshold is a Event enum value 38620 EventS3ReplicationOperationMissedThreshold = "s3:Replication:OperationMissedThreshold" 38621 38622 // EventS3ReplicationOperationReplicatedAfterThreshold is a Event enum value 38623 EventS3ReplicationOperationReplicatedAfterThreshold = "s3:Replication:OperationReplicatedAfterThreshold" 38624 ) 38625 38626 // Event_Values returns all elements of the Event enum 38627 func Event_Values() []string { 38628 return []string{ 38629 EventS3ReducedRedundancyLostObject, 38630 EventS3ObjectCreated, 38631 EventS3ObjectCreatedPut, 38632 EventS3ObjectCreatedPost, 38633 EventS3ObjectCreatedCopy, 38634 EventS3ObjectCreatedCompleteMultipartUpload, 38635 EventS3ObjectRemoved, 38636 EventS3ObjectRemovedDelete, 38637 EventS3ObjectRemovedDeleteMarkerCreated, 38638 EventS3ObjectRestore, 38639 EventS3ObjectRestorePost, 38640 EventS3ObjectRestoreCompleted, 38641 EventS3Replication, 38642 EventS3ReplicationOperationFailedReplication, 38643 EventS3ReplicationOperationNotTracked, 38644 EventS3ReplicationOperationMissedThreshold, 38645 EventS3ReplicationOperationReplicatedAfterThreshold, 38646 } 38647 } 38648 38649 const ( 38650 // ExistingObjectReplicationStatusEnabled is a ExistingObjectReplicationStatus enum value 38651 ExistingObjectReplicationStatusEnabled = "Enabled" 38652 38653 // ExistingObjectReplicationStatusDisabled is a ExistingObjectReplicationStatus enum value 38654 ExistingObjectReplicationStatusDisabled = "Disabled" 38655 ) 38656 38657 // ExistingObjectReplicationStatus_Values returns all elements of the ExistingObjectReplicationStatus enum 38658 func ExistingObjectReplicationStatus_Values() []string { 38659 return []string{ 38660 ExistingObjectReplicationStatusEnabled, 38661 ExistingObjectReplicationStatusDisabled, 38662 } 38663 } 38664 38665 const ( 38666 // ExpirationStatusEnabled is a ExpirationStatus enum value 38667 ExpirationStatusEnabled = "Enabled" 38668 38669 // ExpirationStatusDisabled is a ExpirationStatus enum value 38670 ExpirationStatusDisabled = "Disabled" 38671 ) 38672 38673 // ExpirationStatus_Values returns all elements of the ExpirationStatus enum 38674 func ExpirationStatus_Values() []string { 38675 return []string{ 38676 ExpirationStatusEnabled, 38677 ExpirationStatusDisabled, 38678 } 38679 } 38680 38681 const ( 38682 // ExpressionTypeSql is a ExpressionType enum value 38683 ExpressionTypeSql = "SQL" 38684 ) 38685 38686 // ExpressionType_Values returns all elements of the ExpressionType enum 38687 func ExpressionType_Values() []string { 38688 return []string{ 38689 ExpressionTypeSql, 38690 } 38691 } 38692 38693 const ( 38694 // FileHeaderInfoUse is a FileHeaderInfo enum value 38695 FileHeaderInfoUse = "USE" 38696 38697 // FileHeaderInfoIgnore is a FileHeaderInfo enum value 38698 FileHeaderInfoIgnore = "IGNORE" 38699 38700 // FileHeaderInfoNone is a FileHeaderInfo enum value 38701 FileHeaderInfoNone = "NONE" 38702 ) 38703 38704 // FileHeaderInfo_Values returns all elements of the FileHeaderInfo enum 38705 func FileHeaderInfo_Values() []string { 38706 return []string{ 38707 FileHeaderInfoUse, 38708 FileHeaderInfoIgnore, 38709 FileHeaderInfoNone, 38710 } 38711 } 38712 38713 const ( 38714 // FilterRuleNamePrefix is a FilterRuleName enum value 38715 FilterRuleNamePrefix = "prefix" 38716 38717 // FilterRuleNameSuffix is a FilterRuleName enum value 38718 FilterRuleNameSuffix = "suffix" 38719 ) 38720 38721 // FilterRuleName_Values returns all elements of the FilterRuleName enum 38722 func FilterRuleName_Values() []string { 38723 return []string{ 38724 FilterRuleNamePrefix, 38725 FilterRuleNameSuffix, 38726 } 38727 } 38728 38729 const ( 38730 // IntelligentTieringAccessTierArchiveAccess is a IntelligentTieringAccessTier enum value 38731 IntelligentTieringAccessTierArchiveAccess = "ARCHIVE_ACCESS" 38732 38733 // IntelligentTieringAccessTierDeepArchiveAccess is a IntelligentTieringAccessTier enum value 38734 IntelligentTieringAccessTierDeepArchiveAccess = "DEEP_ARCHIVE_ACCESS" 38735 ) 38736 38737 // IntelligentTieringAccessTier_Values returns all elements of the IntelligentTieringAccessTier enum 38738 func IntelligentTieringAccessTier_Values() []string { 38739 return []string{ 38740 IntelligentTieringAccessTierArchiveAccess, 38741 IntelligentTieringAccessTierDeepArchiveAccess, 38742 } 38743 } 38744 38745 const ( 38746 // IntelligentTieringStatusEnabled is a IntelligentTieringStatus enum value 38747 IntelligentTieringStatusEnabled = "Enabled" 38748 38749 // IntelligentTieringStatusDisabled is a IntelligentTieringStatus enum value 38750 IntelligentTieringStatusDisabled = "Disabled" 38751 ) 38752 38753 // IntelligentTieringStatus_Values returns all elements of the IntelligentTieringStatus enum 38754 func IntelligentTieringStatus_Values() []string { 38755 return []string{ 38756 IntelligentTieringStatusEnabled, 38757 IntelligentTieringStatusDisabled, 38758 } 38759 } 38760 38761 const ( 38762 // InventoryFormatCsv is a InventoryFormat enum value 38763 InventoryFormatCsv = "CSV" 38764 38765 // InventoryFormatOrc is a InventoryFormat enum value 38766 InventoryFormatOrc = "ORC" 38767 38768 // InventoryFormatParquet is a InventoryFormat enum value 38769 InventoryFormatParquet = "Parquet" 38770 ) 38771 38772 // InventoryFormat_Values returns all elements of the InventoryFormat enum 38773 func InventoryFormat_Values() []string { 38774 return []string{ 38775 InventoryFormatCsv, 38776 InventoryFormatOrc, 38777 InventoryFormatParquet, 38778 } 38779 } 38780 38781 const ( 38782 // InventoryFrequencyDaily is a InventoryFrequency enum value 38783 InventoryFrequencyDaily = "Daily" 38784 38785 // InventoryFrequencyWeekly is a InventoryFrequency enum value 38786 InventoryFrequencyWeekly = "Weekly" 38787 ) 38788 38789 // InventoryFrequency_Values returns all elements of the InventoryFrequency enum 38790 func InventoryFrequency_Values() []string { 38791 return []string{ 38792 InventoryFrequencyDaily, 38793 InventoryFrequencyWeekly, 38794 } 38795 } 38796 38797 const ( 38798 // InventoryIncludedObjectVersionsAll is a InventoryIncludedObjectVersions enum value 38799 InventoryIncludedObjectVersionsAll = "All" 38800 38801 // InventoryIncludedObjectVersionsCurrent is a InventoryIncludedObjectVersions enum value 38802 InventoryIncludedObjectVersionsCurrent = "Current" 38803 ) 38804 38805 // InventoryIncludedObjectVersions_Values returns all elements of the InventoryIncludedObjectVersions enum 38806 func InventoryIncludedObjectVersions_Values() []string { 38807 return []string{ 38808 InventoryIncludedObjectVersionsAll, 38809 InventoryIncludedObjectVersionsCurrent, 38810 } 38811 } 38812 38813 const ( 38814 // InventoryOptionalFieldSize is a InventoryOptionalField enum value 38815 InventoryOptionalFieldSize = "Size" 38816 38817 // InventoryOptionalFieldLastModifiedDate is a InventoryOptionalField enum value 38818 InventoryOptionalFieldLastModifiedDate = "LastModifiedDate" 38819 38820 // InventoryOptionalFieldStorageClass is a InventoryOptionalField enum value 38821 InventoryOptionalFieldStorageClass = "StorageClass" 38822 38823 // InventoryOptionalFieldEtag is a InventoryOptionalField enum value 38824 InventoryOptionalFieldEtag = "ETag" 38825 38826 // InventoryOptionalFieldIsMultipartUploaded is a InventoryOptionalField enum value 38827 InventoryOptionalFieldIsMultipartUploaded = "IsMultipartUploaded" 38828 38829 // InventoryOptionalFieldReplicationStatus is a InventoryOptionalField enum value 38830 InventoryOptionalFieldReplicationStatus = "ReplicationStatus" 38831 38832 // InventoryOptionalFieldEncryptionStatus is a InventoryOptionalField enum value 38833 InventoryOptionalFieldEncryptionStatus = "EncryptionStatus" 38834 38835 // InventoryOptionalFieldObjectLockRetainUntilDate is a InventoryOptionalField enum value 38836 InventoryOptionalFieldObjectLockRetainUntilDate = "ObjectLockRetainUntilDate" 38837 38838 // InventoryOptionalFieldObjectLockMode is a InventoryOptionalField enum value 38839 InventoryOptionalFieldObjectLockMode = "ObjectLockMode" 38840 38841 // InventoryOptionalFieldObjectLockLegalHoldStatus is a InventoryOptionalField enum value 38842 InventoryOptionalFieldObjectLockLegalHoldStatus = "ObjectLockLegalHoldStatus" 38843 38844 // InventoryOptionalFieldIntelligentTieringAccessTier is a InventoryOptionalField enum value 38845 InventoryOptionalFieldIntelligentTieringAccessTier = "IntelligentTieringAccessTier" 38846 38847 // InventoryOptionalFieldBucketKeyStatus is a InventoryOptionalField enum value 38848 InventoryOptionalFieldBucketKeyStatus = "BucketKeyStatus" 38849 ) 38850 38851 // InventoryOptionalField_Values returns all elements of the InventoryOptionalField enum 38852 func InventoryOptionalField_Values() []string { 38853 return []string{ 38854 InventoryOptionalFieldSize, 38855 InventoryOptionalFieldLastModifiedDate, 38856 InventoryOptionalFieldStorageClass, 38857 InventoryOptionalFieldEtag, 38858 InventoryOptionalFieldIsMultipartUploaded, 38859 InventoryOptionalFieldReplicationStatus, 38860 InventoryOptionalFieldEncryptionStatus, 38861 InventoryOptionalFieldObjectLockRetainUntilDate, 38862 InventoryOptionalFieldObjectLockMode, 38863 InventoryOptionalFieldObjectLockLegalHoldStatus, 38864 InventoryOptionalFieldIntelligentTieringAccessTier, 38865 InventoryOptionalFieldBucketKeyStatus, 38866 } 38867 } 38868 38869 const ( 38870 // JSONTypeDocument is a JSONType enum value 38871 JSONTypeDocument = "DOCUMENT" 38872 38873 // JSONTypeLines is a JSONType enum value 38874 JSONTypeLines = "LINES" 38875 ) 38876 38877 // JSONType_Values returns all elements of the JSONType enum 38878 func JSONType_Values() []string { 38879 return []string{ 38880 JSONTypeDocument, 38881 JSONTypeLines, 38882 } 38883 } 38884 38885 const ( 38886 // MFADeleteEnabled is a MFADelete enum value 38887 MFADeleteEnabled = "Enabled" 38888 38889 // MFADeleteDisabled is a MFADelete enum value 38890 MFADeleteDisabled = "Disabled" 38891 ) 38892 38893 // MFADelete_Values returns all elements of the MFADelete enum 38894 func MFADelete_Values() []string { 38895 return []string{ 38896 MFADeleteEnabled, 38897 MFADeleteDisabled, 38898 } 38899 } 38900 38901 const ( 38902 // MFADeleteStatusEnabled is a MFADeleteStatus enum value 38903 MFADeleteStatusEnabled = "Enabled" 38904 38905 // MFADeleteStatusDisabled is a MFADeleteStatus enum value 38906 MFADeleteStatusDisabled = "Disabled" 38907 ) 38908 38909 // MFADeleteStatus_Values returns all elements of the MFADeleteStatus enum 38910 func MFADeleteStatus_Values() []string { 38911 return []string{ 38912 MFADeleteStatusEnabled, 38913 MFADeleteStatusDisabled, 38914 } 38915 } 38916 38917 const ( 38918 // MetadataDirectiveCopy is a MetadataDirective enum value 38919 MetadataDirectiveCopy = "COPY" 38920 38921 // MetadataDirectiveReplace is a MetadataDirective enum value 38922 MetadataDirectiveReplace = "REPLACE" 38923 ) 38924 38925 // MetadataDirective_Values returns all elements of the MetadataDirective enum 38926 func MetadataDirective_Values() []string { 38927 return []string{ 38928 MetadataDirectiveCopy, 38929 MetadataDirectiveReplace, 38930 } 38931 } 38932 38933 const ( 38934 // MetricsStatusEnabled is a MetricsStatus enum value 38935 MetricsStatusEnabled = "Enabled" 38936 38937 // MetricsStatusDisabled is a MetricsStatus enum value 38938 MetricsStatusDisabled = "Disabled" 38939 ) 38940 38941 // MetricsStatus_Values returns all elements of the MetricsStatus enum 38942 func MetricsStatus_Values() []string { 38943 return []string{ 38944 MetricsStatusEnabled, 38945 MetricsStatusDisabled, 38946 } 38947 } 38948 38949 const ( 38950 // ObjectCannedACLPrivate is a ObjectCannedACL enum value 38951 ObjectCannedACLPrivate = "private" 38952 38953 // ObjectCannedACLPublicRead is a ObjectCannedACL enum value 38954 ObjectCannedACLPublicRead = "public-read" 38955 38956 // ObjectCannedACLPublicReadWrite is a ObjectCannedACL enum value 38957 ObjectCannedACLPublicReadWrite = "public-read-write" 38958 38959 // ObjectCannedACLAuthenticatedRead is a ObjectCannedACL enum value 38960 ObjectCannedACLAuthenticatedRead = "authenticated-read" 38961 38962 // ObjectCannedACLAwsExecRead is a ObjectCannedACL enum value 38963 ObjectCannedACLAwsExecRead = "aws-exec-read" 38964 38965 // ObjectCannedACLBucketOwnerRead is a ObjectCannedACL enum value 38966 ObjectCannedACLBucketOwnerRead = "bucket-owner-read" 38967 38968 // ObjectCannedACLBucketOwnerFullControl is a ObjectCannedACL enum value 38969 ObjectCannedACLBucketOwnerFullControl = "bucket-owner-full-control" 38970 ) 38971 38972 // ObjectCannedACL_Values returns all elements of the ObjectCannedACL enum 38973 func ObjectCannedACL_Values() []string { 38974 return []string{ 38975 ObjectCannedACLPrivate, 38976 ObjectCannedACLPublicRead, 38977 ObjectCannedACLPublicReadWrite, 38978 ObjectCannedACLAuthenticatedRead, 38979 ObjectCannedACLAwsExecRead, 38980 ObjectCannedACLBucketOwnerRead, 38981 ObjectCannedACLBucketOwnerFullControl, 38982 } 38983 } 38984 38985 const ( 38986 // ObjectLockEnabledEnabled is a ObjectLockEnabled enum value 38987 ObjectLockEnabledEnabled = "Enabled" 38988 ) 38989 38990 // ObjectLockEnabled_Values returns all elements of the ObjectLockEnabled enum 38991 func ObjectLockEnabled_Values() []string { 38992 return []string{ 38993 ObjectLockEnabledEnabled, 38994 } 38995 } 38996 38997 const ( 38998 // ObjectLockLegalHoldStatusOn is a ObjectLockLegalHoldStatus enum value 38999 ObjectLockLegalHoldStatusOn = "ON" 39000 39001 // ObjectLockLegalHoldStatusOff is a ObjectLockLegalHoldStatus enum value 39002 ObjectLockLegalHoldStatusOff = "OFF" 39003 ) 39004 39005 // ObjectLockLegalHoldStatus_Values returns all elements of the ObjectLockLegalHoldStatus enum 39006 func ObjectLockLegalHoldStatus_Values() []string { 39007 return []string{ 39008 ObjectLockLegalHoldStatusOn, 39009 ObjectLockLegalHoldStatusOff, 39010 } 39011 } 39012 39013 const ( 39014 // ObjectLockModeGovernance is a ObjectLockMode enum value 39015 ObjectLockModeGovernance = "GOVERNANCE" 39016 39017 // ObjectLockModeCompliance is a ObjectLockMode enum value 39018 ObjectLockModeCompliance = "COMPLIANCE" 39019 ) 39020 39021 // ObjectLockMode_Values returns all elements of the ObjectLockMode enum 39022 func ObjectLockMode_Values() []string { 39023 return []string{ 39024 ObjectLockModeGovernance, 39025 ObjectLockModeCompliance, 39026 } 39027 } 39028 39029 const ( 39030 // ObjectLockRetentionModeGovernance is a ObjectLockRetentionMode enum value 39031 ObjectLockRetentionModeGovernance = "GOVERNANCE" 39032 39033 // ObjectLockRetentionModeCompliance is a ObjectLockRetentionMode enum value 39034 ObjectLockRetentionModeCompliance = "COMPLIANCE" 39035 ) 39036 39037 // ObjectLockRetentionMode_Values returns all elements of the ObjectLockRetentionMode enum 39038 func ObjectLockRetentionMode_Values() []string { 39039 return []string{ 39040 ObjectLockRetentionModeGovernance, 39041 ObjectLockRetentionModeCompliance, 39042 } 39043 } 39044 39045 // The container element for object ownership for a bucket's ownership controls. 39046 // 39047 // BucketOwnerPreferred - Objects uploaded to the bucket change ownership to 39048 // the bucket owner if the objects are uploaded with the bucket-owner-full-control 39049 // canned ACL. 39050 // 39051 // ObjectWriter - The uploading account will own the object if the object is 39052 // uploaded with the bucket-owner-full-control canned ACL. 39053 const ( 39054 // ObjectOwnershipBucketOwnerPreferred is a ObjectOwnership enum value 39055 ObjectOwnershipBucketOwnerPreferred = "BucketOwnerPreferred" 39056 39057 // ObjectOwnershipObjectWriter is a ObjectOwnership enum value 39058 ObjectOwnershipObjectWriter = "ObjectWriter" 39059 ) 39060 39061 // ObjectOwnership_Values returns all elements of the ObjectOwnership enum 39062 func ObjectOwnership_Values() []string { 39063 return []string{ 39064 ObjectOwnershipBucketOwnerPreferred, 39065 ObjectOwnershipObjectWriter, 39066 } 39067 } 39068 39069 const ( 39070 // ObjectStorageClassStandard is a ObjectStorageClass enum value 39071 ObjectStorageClassStandard = "STANDARD" 39072 39073 // ObjectStorageClassReducedRedundancy is a ObjectStorageClass enum value 39074 ObjectStorageClassReducedRedundancy = "REDUCED_REDUNDANCY" 39075 39076 // ObjectStorageClassGlacier is a ObjectStorageClass enum value 39077 ObjectStorageClassGlacier = "GLACIER" 39078 39079 // ObjectStorageClassStandardIa is a ObjectStorageClass enum value 39080 ObjectStorageClassStandardIa = "STANDARD_IA" 39081 39082 // ObjectStorageClassOnezoneIa is a ObjectStorageClass enum value 39083 ObjectStorageClassOnezoneIa = "ONEZONE_IA" 39084 39085 // ObjectStorageClassIntelligentTiering is a ObjectStorageClass enum value 39086 ObjectStorageClassIntelligentTiering = "INTELLIGENT_TIERING" 39087 39088 // ObjectStorageClassDeepArchive is a ObjectStorageClass enum value 39089 ObjectStorageClassDeepArchive = "DEEP_ARCHIVE" 39090 39091 // ObjectStorageClassOutposts is a ObjectStorageClass enum value 39092 ObjectStorageClassOutposts = "OUTPOSTS" 39093 ) 39094 39095 // ObjectStorageClass_Values returns all elements of the ObjectStorageClass enum 39096 func ObjectStorageClass_Values() []string { 39097 return []string{ 39098 ObjectStorageClassStandard, 39099 ObjectStorageClassReducedRedundancy, 39100 ObjectStorageClassGlacier, 39101 ObjectStorageClassStandardIa, 39102 ObjectStorageClassOnezoneIa, 39103 ObjectStorageClassIntelligentTiering, 39104 ObjectStorageClassDeepArchive, 39105 ObjectStorageClassOutposts, 39106 } 39107 } 39108 39109 const ( 39110 // ObjectVersionStorageClassStandard is a ObjectVersionStorageClass enum value 39111 ObjectVersionStorageClassStandard = "STANDARD" 39112 ) 39113 39114 // ObjectVersionStorageClass_Values returns all elements of the ObjectVersionStorageClass enum 39115 func ObjectVersionStorageClass_Values() []string { 39116 return []string{ 39117 ObjectVersionStorageClassStandard, 39118 } 39119 } 39120 39121 const ( 39122 // OwnerOverrideDestination is a OwnerOverride enum value 39123 OwnerOverrideDestination = "Destination" 39124 ) 39125 39126 // OwnerOverride_Values returns all elements of the OwnerOverride enum 39127 func OwnerOverride_Values() []string { 39128 return []string{ 39129 OwnerOverrideDestination, 39130 } 39131 } 39132 39133 const ( 39134 // PayerRequester is a Payer enum value 39135 PayerRequester = "Requester" 39136 39137 // PayerBucketOwner is a Payer enum value 39138 PayerBucketOwner = "BucketOwner" 39139 ) 39140 39141 // Payer_Values returns all elements of the Payer enum 39142 func Payer_Values() []string { 39143 return []string{ 39144 PayerRequester, 39145 PayerBucketOwner, 39146 } 39147 } 39148 39149 const ( 39150 // PermissionFullControl is a Permission enum value 39151 PermissionFullControl = "FULL_CONTROL" 39152 39153 // PermissionWrite is a Permission enum value 39154 PermissionWrite = "WRITE" 39155 39156 // PermissionWriteAcp is a Permission enum value 39157 PermissionWriteAcp = "WRITE_ACP" 39158 39159 // PermissionRead is a Permission enum value 39160 PermissionRead = "READ" 39161 39162 // PermissionReadAcp is a Permission enum value 39163 PermissionReadAcp = "READ_ACP" 39164 ) 39165 39166 // Permission_Values returns all elements of the Permission enum 39167 func Permission_Values() []string { 39168 return []string{ 39169 PermissionFullControl, 39170 PermissionWrite, 39171 PermissionWriteAcp, 39172 PermissionRead, 39173 PermissionReadAcp, 39174 } 39175 } 39176 39177 const ( 39178 // ProtocolHttp is a Protocol enum value 39179 ProtocolHttp = "http" 39180 39181 // ProtocolHttps is a Protocol enum value 39182 ProtocolHttps = "https" 39183 ) 39184 39185 // Protocol_Values returns all elements of the Protocol enum 39186 func Protocol_Values() []string { 39187 return []string{ 39188 ProtocolHttp, 39189 ProtocolHttps, 39190 } 39191 } 39192 39193 const ( 39194 // QuoteFieldsAlways is a QuoteFields enum value 39195 QuoteFieldsAlways = "ALWAYS" 39196 39197 // QuoteFieldsAsneeded is a QuoteFields enum value 39198 QuoteFieldsAsneeded = "ASNEEDED" 39199 ) 39200 39201 // QuoteFields_Values returns all elements of the QuoteFields enum 39202 func QuoteFields_Values() []string { 39203 return []string{ 39204 QuoteFieldsAlways, 39205 QuoteFieldsAsneeded, 39206 } 39207 } 39208 39209 const ( 39210 // ReplicaModificationsStatusEnabled is a ReplicaModificationsStatus enum value 39211 ReplicaModificationsStatusEnabled = "Enabled" 39212 39213 // ReplicaModificationsStatusDisabled is a ReplicaModificationsStatus enum value 39214 ReplicaModificationsStatusDisabled = "Disabled" 39215 ) 39216 39217 // ReplicaModificationsStatus_Values returns all elements of the ReplicaModificationsStatus enum 39218 func ReplicaModificationsStatus_Values() []string { 39219 return []string{ 39220 ReplicaModificationsStatusEnabled, 39221 ReplicaModificationsStatusDisabled, 39222 } 39223 } 39224 39225 const ( 39226 // ReplicationRuleStatusEnabled is a ReplicationRuleStatus enum value 39227 ReplicationRuleStatusEnabled = "Enabled" 39228 39229 // ReplicationRuleStatusDisabled is a ReplicationRuleStatus enum value 39230 ReplicationRuleStatusDisabled = "Disabled" 39231 ) 39232 39233 // ReplicationRuleStatus_Values returns all elements of the ReplicationRuleStatus enum 39234 func ReplicationRuleStatus_Values() []string { 39235 return []string{ 39236 ReplicationRuleStatusEnabled, 39237 ReplicationRuleStatusDisabled, 39238 } 39239 } 39240 39241 const ( 39242 // ReplicationStatusComplete is a ReplicationStatus enum value 39243 ReplicationStatusComplete = "COMPLETE" 39244 39245 // ReplicationStatusPending is a ReplicationStatus enum value 39246 ReplicationStatusPending = "PENDING" 39247 39248 // ReplicationStatusFailed is a ReplicationStatus enum value 39249 ReplicationStatusFailed = "FAILED" 39250 39251 // ReplicationStatusReplica is a ReplicationStatus enum value 39252 ReplicationStatusReplica = "REPLICA" 39253 ) 39254 39255 // ReplicationStatus_Values returns all elements of the ReplicationStatus enum 39256 func ReplicationStatus_Values() []string { 39257 return []string{ 39258 ReplicationStatusComplete, 39259 ReplicationStatusPending, 39260 ReplicationStatusFailed, 39261 ReplicationStatusReplica, 39262 } 39263 } 39264 39265 const ( 39266 // ReplicationTimeStatusEnabled is a ReplicationTimeStatus enum value 39267 ReplicationTimeStatusEnabled = "Enabled" 39268 39269 // ReplicationTimeStatusDisabled is a ReplicationTimeStatus enum value 39270 ReplicationTimeStatusDisabled = "Disabled" 39271 ) 39272 39273 // ReplicationTimeStatus_Values returns all elements of the ReplicationTimeStatus enum 39274 func ReplicationTimeStatus_Values() []string { 39275 return []string{ 39276 ReplicationTimeStatusEnabled, 39277 ReplicationTimeStatusDisabled, 39278 } 39279 } 39280 39281 // If present, indicates that the requester was successfully charged for the 39282 // request. 39283 const ( 39284 // RequestChargedRequester is a RequestCharged enum value 39285 RequestChargedRequester = "requester" 39286 ) 39287 39288 // RequestCharged_Values returns all elements of the RequestCharged enum 39289 func RequestCharged_Values() []string { 39290 return []string{ 39291 RequestChargedRequester, 39292 } 39293 } 39294 39295 // Confirms that the requester knows that they will be charged for the request. 39296 // Bucket owners need not specify this parameter in their requests. For information 39297 // about downloading objects from requester pays buckets, see Downloading Objects 39298 // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) 39299 // in the Amazon S3 User Guide. 39300 const ( 39301 // RequestPayerRequester is a RequestPayer enum value 39302 RequestPayerRequester = "requester" 39303 ) 39304 39305 // RequestPayer_Values returns all elements of the RequestPayer enum 39306 func RequestPayer_Values() []string { 39307 return []string{ 39308 RequestPayerRequester, 39309 } 39310 } 39311 39312 const ( 39313 // RestoreRequestTypeSelect is a RestoreRequestType enum value 39314 RestoreRequestTypeSelect = "SELECT" 39315 ) 39316 39317 // RestoreRequestType_Values returns all elements of the RestoreRequestType enum 39318 func RestoreRequestType_Values() []string { 39319 return []string{ 39320 RestoreRequestTypeSelect, 39321 } 39322 } 39323 39324 const ( 39325 // ServerSideEncryptionAes256 is a ServerSideEncryption enum value 39326 ServerSideEncryptionAes256 = "AES256" 39327 39328 // ServerSideEncryptionAwsKms is a ServerSideEncryption enum value 39329 ServerSideEncryptionAwsKms = "aws:kms" 39330 ) 39331 39332 // ServerSideEncryption_Values returns all elements of the ServerSideEncryption enum 39333 func ServerSideEncryption_Values() []string { 39334 return []string{ 39335 ServerSideEncryptionAes256, 39336 ServerSideEncryptionAwsKms, 39337 } 39338 } 39339 39340 const ( 39341 // SseKmsEncryptedObjectsStatusEnabled is a SseKmsEncryptedObjectsStatus enum value 39342 SseKmsEncryptedObjectsStatusEnabled = "Enabled" 39343 39344 // SseKmsEncryptedObjectsStatusDisabled is a SseKmsEncryptedObjectsStatus enum value 39345 SseKmsEncryptedObjectsStatusDisabled = "Disabled" 39346 ) 39347 39348 // SseKmsEncryptedObjectsStatus_Values returns all elements of the SseKmsEncryptedObjectsStatus enum 39349 func SseKmsEncryptedObjectsStatus_Values() []string { 39350 return []string{ 39351 SseKmsEncryptedObjectsStatusEnabled, 39352 SseKmsEncryptedObjectsStatusDisabled, 39353 } 39354 } 39355 39356 const ( 39357 // StorageClassStandard is a StorageClass enum value 39358 StorageClassStandard = "STANDARD" 39359 39360 // StorageClassReducedRedundancy is a StorageClass enum value 39361 StorageClassReducedRedundancy = "REDUCED_REDUNDANCY" 39362 39363 // StorageClassStandardIa is a StorageClass enum value 39364 StorageClassStandardIa = "STANDARD_IA" 39365 39366 // StorageClassOnezoneIa is a StorageClass enum value 39367 StorageClassOnezoneIa = "ONEZONE_IA" 39368 39369 // StorageClassIntelligentTiering is a StorageClass enum value 39370 StorageClassIntelligentTiering = "INTELLIGENT_TIERING" 39371 39372 // StorageClassGlacier is a StorageClass enum value 39373 StorageClassGlacier = "GLACIER" 39374 39375 // StorageClassDeepArchive is a StorageClass enum value 39376 StorageClassDeepArchive = "DEEP_ARCHIVE" 39377 39378 // StorageClassOutposts is a StorageClass enum value 39379 StorageClassOutposts = "OUTPOSTS" 39380 ) 39381 39382 // StorageClass_Values returns all elements of the StorageClass enum 39383 func StorageClass_Values() []string { 39384 return []string{ 39385 StorageClassStandard, 39386 StorageClassReducedRedundancy, 39387 StorageClassStandardIa, 39388 StorageClassOnezoneIa, 39389 StorageClassIntelligentTiering, 39390 StorageClassGlacier, 39391 StorageClassDeepArchive, 39392 StorageClassOutposts, 39393 } 39394 } 39395 39396 const ( 39397 // StorageClassAnalysisSchemaVersionV1 is a StorageClassAnalysisSchemaVersion enum value 39398 StorageClassAnalysisSchemaVersionV1 = "V_1" 39399 ) 39400 39401 // StorageClassAnalysisSchemaVersion_Values returns all elements of the StorageClassAnalysisSchemaVersion enum 39402 func StorageClassAnalysisSchemaVersion_Values() []string { 39403 return []string{ 39404 StorageClassAnalysisSchemaVersionV1, 39405 } 39406 } 39407 39408 const ( 39409 // TaggingDirectiveCopy is a TaggingDirective enum value 39410 TaggingDirectiveCopy = "COPY" 39411 39412 // TaggingDirectiveReplace is a TaggingDirective enum value 39413 TaggingDirectiveReplace = "REPLACE" 39414 ) 39415 39416 // TaggingDirective_Values returns all elements of the TaggingDirective enum 39417 func TaggingDirective_Values() []string { 39418 return []string{ 39419 TaggingDirectiveCopy, 39420 TaggingDirectiveReplace, 39421 } 39422 } 39423 39424 const ( 39425 // TierStandard is a Tier enum value 39426 TierStandard = "Standard" 39427 39428 // TierBulk is a Tier enum value 39429 TierBulk = "Bulk" 39430 39431 // TierExpedited is a Tier enum value 39432 TierExpedited = "Expedited" 39433 ) 39434 39435 // Tier_Values returns all elements of the Tier enum 39436 func Tier_Values() []string { 39437 return []string{ 39438 TierStandard, 39439 TierBulk, 39440 TierExpedited, 39441 } 39442 } 39443 39444 const ( 39445 // TransitionStorageClassGlacier is a TransitionStorageClass enum value 39446 TransitionStorageClassGlacier = "GLACIER" 39447 39448 // TransitionStorageClassStandardIa is a TransitionStorageClass enum value 39449 TransitionStorageClassStandardIa = "STANDARD_IA" 39450 39451 // TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value 39452 TransitionStorageClassOnezoneIa = "ONEZONE_IA" 39453 39454 // TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value 39455 TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING" 39456 39457 // TransitionStorageClassDeepArchive is a TransitionStorageClass enum value 39458 TransitionStorageClassDeepArchive = "DEEP_ARCHIVE" 39459 ) 39460 39461 // TransitionStorageClass_Values returns all elements of the TransitionStorageClass enum 39462 func TransitionStorageClass_Values() []string { 39463 return []string{ 39464 TransitionStorageClassGlacier, 39465 TransitionStorageClassStandardIa, 39466 TransitionStorageClassOnezoneIa, 39467 TransitionStorageClassIntelligentTiering, 39468 TransitionStorageClassDeepArchive, 39469 } 39470 } 39471 39472 const ( 39473 // TypeCanonicalUser is a Type enum value 39474 TypeCanonicalUser = "CanonicalUser" 39475 39476 // TypeAmazonCustomerByEmail is a Type enum value 39477 TypeAmazonCustomerByEmail = "AmazonCustomerByEmail" 39478 39479 // TypeGroup is a Type enum value 39480 TypeGroup = "Group" 39481 ) 39482 39483 // Type_Values returns all elements of the Type enum 39484 func Type_Values() []string { 39485 return []string{ 39486 TypeCanonicalUser, 39487 TypeAmazonCustomerByEmail, 39488 TypeGroup, 39489 } 39490 }