1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package types 4 5import ( 6 "time" 7) 8 9// Specifies the days since the initiation of an incomplete multipart upload that 10// Amazon S3 will wait before permanently removing all parts of the upload. For 11// more information, see Aborting Incomplete Multipart Uploads Using a Bucket 12// Lifecycle Policy 13// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) 14// in the Amazon Simple Storage Service Developer Guide. 15type AbortIncompleteMultipartUpload struct { 16 17 // Specifies the number of days after which Amazon S3 aborts an incomplete 18 // multipart upload. 19 DaysAfterInitiation int32 20} 21 22// Configures the transfer acceleration state for an Amazon S3 bucket. For more 23// information, see Amazon S3 Transfer Acceleration 24// (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in 25// the Amazon Simple Storage Service Developer Guide. 26type AccelerateConfiguration struct { 27 28 // Specifies the transfer acceleration status of the bucket. 29 Status BucketAccelerateStatus 30} 31 32// Contains the elements that set the ACL permissions for an object per grantee. 33type AccessControlPolicy struct { 34 35 // A list of grants. 36 Grants []Grant 37 38 // Container for the bucket owner's display name and ID. 39 Owner *Owner 40} 41 42// A container for information about access control for replicas. 43type AccessControlTranslation struct { 44 45 // Specifies the replica ownership. For default and valid values, see PUT bucket 46 // replication 47 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) 48 // in the Amazon Simple Storage Service API Reference. 49 // 50 // This member is required. 51 Owner OwnerOverride 52} 53 54// A conjunction (logical AND) of predicates, which is used in evaluating a metrics 55// filter. The operator must have at least two predicates in any combination, and 56// an object must match all of the predicates for the filter to apply. 57type AnalyticsAndOperator struct { 58 59 // The prefix to use when evaluating an AND predicate: The prefix that an object 60 // must have to be included in the metrics results. 61 Prefix *string 62 63 // The list of tags to use when evaluating an AND predicate. 64 Tags []Tag 65} 66 67// Specifies the configuration and any analyses for the analytics filter of an 68// Amazon S3 bucket. 69type AnalyticsConfiguration struct { 70 71 // The ID that identifies the analytics configuration. 72 // 73 // This member is required. 74 Id *string 75 76 // Contains data related to access patterns to be collected and made available to 77 // analyze the tradeoffs between different storage classes. 78 // 79 // This member is required. 80 StorageClassAnalysis *StorageClassAnalysis 81 82 // The filter used to describe a set of objects for analyses. A filter must have 83 // exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no 84 // filter is provided, all objects will be considered in any analysis. 85 Filter AnalyticsFilter 86} 87 88// Where to publish the analytics results. 89type AnalyticsExportDestination struct { 90 91 // A destination signifying output to an S3 bucket. 92 // 93 // This member is required. 94 S3BucketDestination *AnalyticsS3BucketDestination 95} 96 97// The filter used to describe a set of objects for analyses. A filter must have 98// exactly one prefix, one tag, or one conjunction (AnalyticsAndOperator). If no 99// filter is provided, all objects will be considered in any analysis. 100// 101// The following types satisfy this interface: 102// AnalyticsFilterMemberPrefix 103// AnalyticsFilterMemberTag 104// AnalyticsFilterMemberAnd 105type AnalyticsFilter interface { 106 isAnalyticsFilter() 107} 108 109// The prefix to use when evaluating an analytics filter. 110type AnalyticsFilterMemberPrefix struct { 111 Value string 112} 113 114func (*AnalyticsFilterMemberPrefix) isAnalyticsFilter() {} 115 116// The tag to use when evaluating an analytics filter. 117type AnalyticsFilterMemberTag struct { 118 Value Tag 119} 120 121func (*AnalyticsFilterMemberTag) isAnalyticsFilter() {} 122 123// A conjunction (logical AND) of predicates, which is used in evaluating an 124// analytics filter. The operator must have at least two predicates. 125type AnalyticsFilterMemberAnd struct { 126 Value AnalyticsAndOperator 127} 128 129func (*AnalyticsFilterMemberAnd) isAnalyticsFilter() {} 130 131// Contains information about where to publish the analytics results. 132type AnalyticsS3BucketDestination struct { 133 134 // The Amazon Resource Name (ARN) of the bucket to which data is exported. 135 // 136 // This member is required. 137 Bucket *string 138 139 // Specifies the file format used when exporting data to Amazon S3. 140 // 141 // This member is required. 142 Format AnalyticsS3ExportFileFormat 143 144 // The account ID that owns the destination S3 bucket. If no account ID is 145 // provided, the owner is not validated before exporting data. Although this value 146 // is optional, we strongly recommend that you set it to help prevent problems if 147 // the destination bucket ownership changes. 148 BucketAccountId *string 149 150 // The prefix to use when exporting data. The prefix is prepended to all results. 151 Prefix *string 152} 153 154// In terms of implementation, a Bucket is a resource. An Amazon S3 bucket name is 155// globally unique, and the namespace is shared by all AWS accounts. 156type Bucket struct { 157 158 // Date the bucket was created. This date can change when making changes to your 159 // bucket, such as editing its bucket policy. 160 CreationDate *time.Time 161 162 // The name of the bucket. 163 Name *string 164} 165 166// Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For 167// more information, see Object Lifecycle Management 168// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in 169// the Amazon Simple Storage Service Developer Guide. 170type BucketLifecycleConfiguration struct { 171 172 // A lifecycle rule for individual objects in an Amazon S3 bucket. 173 // 174 // This member is required. 175 Rules []LifecycleRule 176} 177 178// Container for logging status information. 179type BucketLoggingStatus struct { 180 181 // Describes where logs are stored and the prefix that Amazon S3 assigns to all log 182 // object keys for a bucket. For more information, see PUT Bucket logging 183 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) in 184 // the Amazon Simple Storage Service API Reference. 185 LoggingEnabled *LoggingEnabled 186} 187 188// Container for all (if there are any) keys between Prefix and the next occurrence 189// of the string specified by a delimiter. CommonPrefixes lists keys that act like 190// subdirectories in the directory specified by Prefix. For example, if the prefix 191// is notes/ and the delimiter is a slash (/) as in notes/summer/july, the common 192// prefix is notes/summer/. 193type CommonPrefix struct { 194 195 // Container for the specified common prefix. 196 Prefix *string 197} 198 199// The container for the completed multipart upload details. 200type CompletedMultipartUpload struct { 201 202 // Array of CompletedPart data types. 203 Parts []CompletedPart 204} 205 206// Details of the parts that were uploaded. 207type CompletedPart struct { 208 209 // Entity tag returned when the part was uploaded. 210 ETag *string 211 212 // Part number that identifies the part. This is a positive integer between 1 and 213 // 10,000. 214 PartNumber int32 215} 216 217// A container for describing a condition that must be met for the specified 218// redirect to apply. For example, 1. If request is for pages in the /docs folder, 219// redirect to the /documents folder. 2. If request results in HTTP error 4xx, 220// redirect request to another host where you might process the error. 221type Condition struct { 222 223 // The HTTP error code when the redirect is applied. In the event of an error, if 224 // the error code equals this value, then the specified redirect is applied. 225 // Required when parent element Condition is specified and sibling KeyPrefixEquals 226 // is not specified. If both are specified, then both must be true for the redirect 227 // to be applied. 228 HttpErrorCodeReturnedEquals *string 229 230 // The object key name prefix when the redirect is applied. For example, to 231 // redirect requests for ExamplePage.html, the key prefix will be ExamplePage.html. 232 // To redirect request for all pages with the prefix docs/, the key prefix will be 233 // /docs, which identifies all objects in the docs/ folder. Required when the 234 // parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is 235 // not specified. If both conditions are specified, both must be true for the 236 // redirect to be applied. 237 KeyPrefixEquals *string 238} 239 240// Container for all response elements. 241type CopyObjectResult struct { 242 243 // Returns the ETag of the new object. The ETag reflects only changes to the 244 // contents of an object, not its metadata. The source and destination ETag is 245 // identical for a successfully copied object. 246 ETag *string 247 248 // Returns the date that the object was last modified. 249 LastModified *time.Time 250} 251 252// Container for all response elements. 253type CopyPartResult struct { 254 255 // Entity tag of the object. 256 ETag *string 257 258 // Date and time at which the object was uploaded. 259 LastModified *time.Time 260} 261 262// Describes the cross-origin access configuration for objects in an Amazon S3 263// bucket. For more information, see Enabling Cross-Origin Resource Sharing 264// (https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the Amazon Simple 265// Storage Service Developer Guide. 266type CORSConfiguration struct { 267 268 // A set of origins and methods (cross-origin access that you want to allow). You 269 // can add up to 100 rules to the configuration. 270 // 271 // This member is required. 272 CORSRules []CORSRule 273} 274 275// Specifies a cross-origin access rule for an Amazon S3 bucket. 276type CORSRule struct { 277 278 // An HTTP method that you allow the origin to execute. Valid values are GET, PUT, 279 // HEAD, POST, and DELETE. 280 // 281 // This member is required. 282 AllowedMethods []string 283 284 // One or more origins you want customers to be able to access the bucket from. 285 // 286 // This member is required. 287 AllowedOrigins []string 288 289 // Headers that are specified in the Access-Control-Request-Headers header. These 290 // headers are allowed in a preflight OPTIONS request. In response to any preflight 291 // OPTIONS request, Amazon S3 returns any requested headers that are allowed. 292 AllowedHeaders []string 293 294 // One or more headers in the response that you want customers to be able to access 295 // from their applications (for example, from a JavaScript XMLHttpRequest object). 296 ExposeHeaders []string 297 298 // The time in seconds that your browser is to cache the preflight response for the 299 // specified resource. 300 MaxAgeSeconds int32 301} 302 303// The configuration information for the bucket. 304type CreateBucketConfiguration struct { 305 306 // Specifies the Region where the bucket will be created. If you don't specify a 307 // Region, the bucket is created in the US East (N. Virginia) Region (us-east-1). 308 LocationConstraint BucketLocationConstraint 309} 310 311// Describes how an uncompressed comma-separated values (CSV)-formatted input 312// object is formatted. 313type CSVInput struct { 314 315 // Specifies that CSV field values may contain quoted record delimiters and such 316 // records should be allowed. Default value is FALSE. Setting this value to TRUE 317 // may lower performance. 318 AllowQuotedRecordDelimiter bool 319 320 // A single character used to indicate that a row should be ignored when the 321 // character is present at the start of that row. You can specify any character to 322 // indicate a comment line. 323 Comments *string 324 325 // A single character used to separate individual fields in a record. You can 326 // specify an arbitrary delimiter. 327 FieldDelimiter *string 328 329 // Describes the first line of input. Valid values are: 330 // 331 // * NONE: First line is not 332 // a header. 333 // 334 // * IGNORE: First line is a header, but you can't use the header values 335 // to indicate the column in an expression. You can use column position (such as 336 // _1, _2, …) to indicate the column (SELECT s._1 FROM OBJECT s). 337 // 338 // * Use: First 339 // line is a header, and you can use the header value to identify a column in an 340 // expression (SELECT "name" FROM OBJECT). 341 FileHeaderInfo FileHeaderInfo 342 343 // A single character used for escaping when the field delimiter is part of the 344 // value. For example, if the value is a, b, Amazon S3 wraps this field value in 345 // quotation marks, as follows: " a , b ". Type: String Default: " Ancestors: CSV 346 QuoteCharacter *string 347 348 // A single character used for escaping the quotation mark character inside an 349 // already escaped value. For example, the value """ a , b """ is parsed as " a , b 350 // ". 351 QuoteEscapeCharacter *string 352 353 // A single character used to separate individual records in the input. Instead of 354 // the default value, you can specify an arbitrary delimiter. 355 RecordDelimiter *string 356} 357 358// Describes how uncompressed comma-separated values (CSV)-formatted results are 359// formatted. 360type CSVOutput struct { 361 362 // The value used to separate individual fields in a record. You can specify an 363 // arbitrary delimiter. 364 FieldDelimiter *string 365 366 // A single character used for escaping when the field delimiter is part of the 367 // value. For example, if the value is a, b, Amazon S3 wraps this field value in 368 // quotation marks, as follows: " a , b ". 369 QuoteCharacter *string 370 371 // The single character used for escaping the quote character inside an already 372 // escaped value. 373 QuoteEscapeCharacter *string 374 375 // Indicates whether to use quotation marks around output fields. 376 // 377 // * ALWAYS: Always 378 // use quotation marks for output fields. 379 // 380 // * ASNEEDED: Use quotation marks for 381 // output fields when needed. 382 QuoteFields QuoteFields 383 384 // A single character used to separate individual records in the output. Instead of 385 // the default value, you can specify an arbitrary delimiter. 386 RecordDelimiter *string 387} 388 389// The container element for specifying the default Object Lock retention settings 390// for new objects placed in the specified bucket. 391type DefaultRetention struct { 392 393 // The number of days that you want to specify for the default retention period. 394 Days int32 395 396 // The default Object Lock retention mode you want to apply to new objects placed 397 // in the specified bucket. 398 Mode ObjectLockRetentionMode 399 400 // The number of years that you want to specify for the default retention period. 401 Years int32 402} 403 404// Container for the objects to delete. 405type Delete struct { 406 407 // The objects to delete. 408 // 409 // This member is required. 410 Objects []ObjectIdentifier 411 412 // Element to enable quiet mode for the request. When you add this element, you 413 // must set its value to true. 414 Quiet bool 415} 416 417// Information about the deleted object. 418type DeletedObject struct { 419 420 // Specifies whether the versioned object that was permanently deleted was (true) 421 // or was not (false) a delete marker. In a simple DELETE, this header indicates 422 // whether (true) or not (false) a delete marker was created. 423 DeleteMarker bool 424 425 // The version ID of the delete marker created as a result of the DELETE operation. 426 // If you delete a specific object version, the value returned by this header is 427 // the version ID of the object version deleted. 428 DeleteMarkerVersionId *string 429 430 // The name of the deleted object. 431 Key *string 432 433 // The version ID of the deleted object. 434 VersionId *string 435} 436 437// Information about the delete marker. 438type DeleteMarkerEntry struct { 439 440 // Specifies whether the object is (true) or is not (false) the latest version of 441 // an object. 442 IsLatest bool 443 444 // The object key. 445 Key *string 446 447 // Date and time the object was last modified. 448 LastModified *time.Time 449 450 // The account that created the delete marker.> 451 Owner *Owner 452 453 // Version ID of an object. 454 VersionId *string 455} 456 457// Specifies whether Amazon S3 replicates delete markers. If you specify a Filter 458// in your replication configuration, you must also include a 459// DeleteMarkerReplication element. If your Filter includes a Tag element, the 460// DeleteMarkerReplicationStatus must be set to Disabled, because Amazon S3 does 461// not support replicating delete markers for tag-based rules. For an example 462// configuration, see Basic Rule Configuration 463// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). 464// For more information about delete marker replication, see Basic Rule 465// Configuration 466// (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). 467// If you are using an earlier version of the replication configuration, Amazon S3 468// handles replication of delete markers differently. For more information, see 469// Backward Compatibility 470// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). 471type DeleteMarkerReplication struct { 472 473 // Indicates whether to replicate delete markers. Indicates whether to replicate 474 // delete markers. 475 Status DeleteMarkerReplicationStatus 476} 477 478// Specifies information about where to publish analysis or configuration results 479// for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). 480type Destination struct { 481 482 // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store 483 // the results. 484 // 485 // This member is required. 486 Bucket *string 487 488 // Specify this only in a cross-account scenario (where source and destination 489 // bucket owners are not the same), and you want to change replica ownership to the 490 // AWS account that owns the destination bucket. If this is not specified in the 491 // replication configuration, the replicas are owned by same AWS account that owns 492 // the source object. 493 AccessControlTranslation *AccessControlTranslation 494 495 // Destination bucket owner account ID. In a cross-account scenario, if you direct 496 // Amazon S3 to change replica ownership to the AWS account that owns the 497 // destination bucket by specifying the AccessControlTranslation property, this is 498 // the account ID of the destination bucket owner. For more information, see 499 // Replication Additional Configuration: Changing the Replica Owner 500 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html) 501 // in the Amazon Simple Storage Service Developer Guide. 502 Account *string 503 504 // A container that provides information about encryption. If 505 // SourceSelectionCriteria is specified, you must specify this element. 506 EncryptionConfiguration *EncryptionConfiguration 507 508 // A container specifying replication metrics-related settings enabling replication 509 // metrics and events. 510 Metrics *Metrics 511 512 // A container specifying S3 Replication Time Control (S3 RTC), including whether 513 // S3 RTC is enabled and the time when all objects and operations on objects must 514 // be replicated. Must be specified together with a Metrics block. 515 ReplicationTime *ReplicationTime 516 517 // The storage class to use when replicating objects, such as S3 Standard or 518 // reduced redundancy. By default, Amazon S3 uses the storage class of the source 519 // object to create the object replica. For valid values, see the StorageClass 520 // element of the PUT Bucket replication 521 // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) 522 // action in the Amazon Simple Storage Service API Reference. 523 StorageClass StorageClass 524} 525 526// Contains the type of server-side encryption used. 527type Encryption struct { 528 529 // The server-side encryption algorithm used when storing job results in Amazon S3 530 // (for example, AES256, aws:kms). 531 // 532 // This member is required. 533 EncryptionType ServerSideEncryption 534 535 // If the encryption type is aws:kms, this optional value can be used to specify 536 // the encryption context for the restore results. 537 KMSContext *string 538 539 // If the encryption type is aws:kms, this optional value specifies the ID of the 540 // symmetric customer managed AWS KMS CMK to use for encryption of job results. 541 // Amazon S3 only supports symmetric CMKs. For more information, see Using 542 // Symmetric and Asymmetric Keys 543 // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 544 // in the AWS Key Management Service Developer Guide. 545 KMSKeyId *string 546} 547 548// Specifies encryption-related information for an Amazon S3 bucket that is a 549// destination for replicated objects. 550type EncryptionConfiguration struct { 551 552 // Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master 553 // key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket. 554 // Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports 555 // symmetric customer managed CMKs. For more information, see Using Symmetric and 556 // Asymmetric Keys 557 // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 558 // in the AWS Key Management Service Developer Guide. 559 ReplicaKmsKeyID *string 560} 561 562// Container for all error elements. 563type Error struct { 564 565 // The error code is a string that uniquely identifies an error condition. It is 566 // meant to be read and understood by programs that detect and handle errors by 567 // type. Amazon S3 error codes 568 // 569 // * Code: AccessDenied 570 // 571 // * Description: Access 572 // Denied 573 // 574 // * HTTP Status Code: 403 Forbidden 575 // 576 // * SOAP Fault Code Prefix: Client 577 // 578 // * 579 // Code: AccountProblem 580 // 581 // * Description: There is a problem with your AWS account 582 // that prevents the operation from completing successfully. Contact AWS Support 583 // for further assistance. 584 // 585 // * HTTP Status Code: 403 Forbidden 586 // 587 // * SOAP Fault Code 588 // Prefix: Client 589 // 590 // * Code: AllAccessDisabled 591 // 592 // * Description: All access to this 593 // Amazon S3 resource has been disabled. Contact AWS Support for further 594 // assistance. 595 // 596 // * HTTP Status Code: 403 Forbidden 597 // 598 // * SOAP Fault Code Prefix: 599 // Client 600 // 601 // * Code: AmbiguousGrantByEmailAddress 602 // 603 // * Description: The email address 604 // you provided is associated with more than one account. 605 // 606 // * HTTP Status Code: 400 607 // Bad Request 608 // 609 // * SOAP Fault Code Prefix: Client 610 // 611 // * Code: 612 // AuthorizationHeaderMalformed 613 // 614 // * Description: The authorization header you 615 // provided is invalid. 616 // 617 // * HTTP Status Code: 400 Bad Request 618 // 619 // * HTTP Status Code: 620 // N/A 621 // 622 // * Code: BadDigest 623 // 624 // * Description: The Content-MD5 you specified did not 625 // match what we received. 626 // 627 // * HTTP Status Code: 400 Bad Request 628 // 629 // * SOAP Fault Code 630 // Prefix: Client 631 // 632 // * Code: BucketAlreadyExists 633 // 634 // * Description: The requested bucket 635 // name is not available. The bucket namespace is shared by all users of the 636 // system. Please select a different name and try again. 637 // 638 // * HTTP Status Code: 409 639 // Conflict 640 // 641 // * SOAP Fault Code Prefix: Client 642 // 643 // * Code: BucketAlreadyOwnedByYou 644 // 645 // * 646 // Description: The bucket you tried to create already exists, and you own it. 647 // Amazon S3 returns this error in all AWS Regions except in the North Virginia 648 // Region. For legacy compatibility, if you re-create an existing bucket that you 649 // already own in the North Virginia Region, Amazon S3 returns 200 OK and resets 650 // the bucket access control lists (ACLs). 651 // 652 // * Code: 409 Conflict (in all Regions 653 // except the North Virginia Region) 654 // 655 // * SOAP Fault Code Prefix: Client 656 // 657 // * Code: 658 // BucketNotEmpty 659 // 660 // * Description: The bucket you tried to delete is not empty. 661 // 662 // * 663 // HTTP Status Code: 409 Conflict 664 // 665 // * SOAP Fault Code Prefix: Client 666 // 667 // * Code: 668 // CredentialsNotSupported 669 // 670 // * Description: This request does not support 671 // credentials. 672 // 673 // * HTTP Status Code: 400 Bad Request 674 // 675 // * SOAP Fault Code Prefix: 676 // Client 677 // 678 // * Code: CrossLocationLoggingProhibited 679 // 680 // * Description: Cross-location 681 // logging not allowed. Buckets in one geographic location cannot log information 682 // to a bucket in another location. 683 // 684 // * HTTP Status Code: 403 Forbidden 685 // 686 // * SOAP 687 // Fault Code Prefix: Client 688 // 689 // * Code: EntityTooSmall 690 // 691 // * Description: Your proposed 692 // upload is smaller than the minimum allowed object size. 693 // 694 // * HTTP Status Code: 400 695 // Bad Request 696 // 697 // * SOAP Fault Code Prefix: Client 698 // 699 // * Code: EntityTooLarge 700 // 701 // * 702 // Description: Your proposed upload exceeds the maximum allowed object size. 703 // 704 // * 705 // HTTP Status Code: 400 Bad Request 706 // 707 // * SOAP Fault Code Prefix: Client 708 // 709 // * Code: 710 // ExpiredToken 711 // 712 // * Description: The provided token has expired. 713 // 714 // * HTTP Status 715 // Code: 400 Bad Request 716 // 717 // * SOAP Fault Code Prefix: Client 718 // 719 // * Code: 720 // IllegalVersioningConfigurationException 721 // 722 // * Description: Indicates that the 723 // versioning configuration specified in the request is invalid. 724 // 725 // * HTTP Status 726 // Code: 400 Bad Request 727 // 728 // * SOAP Fault Code Prefix: Client 729 // 730 // * Code: 731 // IncompleteBody 732 // 733 // * Description: You did not provide the number of bytes specified 734 // by the Content-Length HTTP header 735 // 736 // * HTTP Status Code: 400 Bad Request 737 // 738 // * SOAP 739 // Fault Code Prefix: Client 740 // 741 // * Code: IncorrectNumberOfFilesInPostRequest 742 // 743 // * 744 // Description: POST requires exactly one file upload per request. 745 // 746 // * HTTP Status 747 // Code: 400 Bad Request 748 // 749 // * SOAP Fault Code Prefix: Client 750 // 751 // * Code: 752 // InlineDataTooLarge 753 // 754 // * Description: Inline data exceeds the maximum allowed 755 // size. 756 // 757 // * HTTP Status Code: 400 Bad Request 758 // 759 // * SOAP Fault Code Prefix: Client 760 // 761 // * 762 // Code: InternalError 763 // 764 // * Description: We encountered an internal error. Please try 765 // again. 766 // 767 // * HTTP Status Code: 500 Internal Server Error 768 // 769 // * SOAP Fault Code Prefix: 770 // Server 771 // 772 // * Code: InvalidAccessKeyId 773 // 774 // * Description: The AWS access key ID you 775 // provided does not exist in our records. 776 // 777 // * HTTP Status Code: 403 Forbidden 778 // 779 // * 780 // SOAP Fault Code Prefix: Client 781 // 782 // * Code: InvalidAddressingHeader 783 // 784 // * Description: 785 // You must specify the Anonymous role. 786 // 787 // * HTTP Status Code: N/A 788 // 789 // * SOAP Fault Code 790 // Prefix: Client 791 // 792 // * Code: InvalidArgument 793 // 794 // * Description: Invalid Argument 795 // 796 // * HTTP 797 // Status Code: 400 Bad Request 798 // 799 // * SOAP Fault Code Prefix: Client 800 // 801 // * Code: 802 // InvalidBucketName 803 // 804 // * Description: The specified bucket is not valid. 805 // 806 // * HTTP 807 // Status Code: 400 Bad Request 808 // 809 // * SOAP Fault Code Prefix: Client 810 // 811 // * Code: 812 // InvalidBucketState 813 // 814 // * Description: The request is not valid with the current 815 // state of the bucket. 816 // 817 // * HTTP Status Code: 409 Conflict 818 // 819 // * SOAP Fault Code 820 // Prefix: Client 821 // 822 // * Code: InvalidDigest 823 // 824 // * Description: The Content-MD5 you 825 // specified is not valid. 826 // 827 // * HTTP Status Code: 400 Bad Request 828 // 829 // * SOAP Fault Code 830 // Prefix: Client 831 // 832 // * Code: InvalidEncryptionAlgorithmError 833 // 834 // * Description: The 835 // encryption request you specified is not valid. The valid value is AES256. 836 // 837 // * 838 // HTTP Status Code: 400 Bad Request 839 // 840 // * SOAP Fault Code Prefix: Client 841 // 842 // * Code: 843 // InvalidLocationConstraint 844 // 845 // * Description: The specified location constraint is 846 // not valid. For more information about Regions, see How to Select a Region for 847 // Your Buckets 848 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). 849 // 850 // * 851 // HTTP Status Code: 400 Bad Request 852 // 853 // * SOAP Fault Code Prefix: Client 854 // 855 // * Code: 856 // InvalidObjectState 857 // 858 // * Description: The operation is not valid for the current 859 // state of the object. 860 // 861 // * HTTP Status Code: 403 Forbidden 862 // 863 // * SOAP Fault Code 864 // Prefix: Client 865 // 866 // * Code: InvalidPart 867 // 868 // * Description: One or more of the specified 869 // parts could not be found. The part might not have been uploaded, or the 870 // specified entity tag might not have matched the part's entity tag. 871 // 872 // * HTTP 873 // Status Code: 400 Bad Request 874 // 875 // * SOAP Fault Code Prefix: Client 876 // 877 // * Code: 878 // InvalidPartOrder 879 // 880 // * Description: The list of parts was not in ascending order. 881 // Parts list must be specified in order by part number. 882 // 883 // * HTTP Status Code: 400 884 // Bad Request 885 // 886 // * SOAP Fault Code Prefix: Client 887 // 888 // * Code: InvalidPayer 889 // 890 // * 891 // Description: All access to this object has been disabled. Please contact AWS 892 // Support for further assistance. 893 // 894 // * HTTP Status Code: 403 Forbidden 895 // 896 // * SOAP Fault 897 // Code Prefix: Client 898 // 899 // * Code: InvalidPolicyDocument 900 // 901 // * Description: The content 902 // of the form does not meet the conditions specified in the policy document. 903 // 904 // * 905 // HTTP Status Code: 400 Bad Request 906 // 907 // * SOAP Fault Code Prefix: Client 908 // 909 // * Code: 910 // InvalidRange 911 // 912 // * Description: The requested range cannot be satisfied. 913 // 914 // * HTTP 915 // Status Code: 416 Requested Range Not Satisfiable 916 // 917 // * SOAP Fault Code Prefix: 918 // Client 919 // 920 // * Code: InvalidRequest 921 // 922 // * Description: Please use AWS4-HMAC-SHA256. 923 // 924 // * 925 // HTTP Status Code: 400 Bad Request 926 // 927 // * Code: N/A 928 // 929 // * Code: InvalidRequest 930 // 931 // * 932 // Description: SOAP requests must be made over an HTTPS connection. 933 // 934 // * HTTP Status 935 // Code: 400 Bad Request 936 // 937 // * SOAP Fault Code Prefix: Client 938 // 939 // * Code: 940 // InvalidRequest 941 // 942 // * Description: Amazon S3 Transfer Acceleration is not supported 943 // for buckets with non-DNS compliant names. 944 // 945 // * HTTP Status Code: 400 Bad 946 // Request 947 // 948 // * Code: N/A 949 // 950 // * Code: InvalidRequest 951 // 952 // * Description: Amazon S3 Transfer 953 // Acceleration is not supported for buckets with periods (.) in their names. 954 // 955 // * 956 // HTTP Status Code: 400 Bad Request 957 // 958 // * Code: N/A 959 // 960 // * Code: InvalidRequest 961 // 962 // * 963 // Description: Amazon S3 Transfer Accelerate endpoint only supports virtual style 964 // requests. 965 // 966 // * HTTP Status Code: 400 Bad Request 967 // 968 // * Code: N/A 969 // 970 // * Code: 971 // InvalidRequest 972 // 973 // * Description: Amazon S3 Transfer Accelerate is not configured 974 // on this bucket. 975 // 976 // * HTTP Status Code: 400 Bad Request 977 // 978 // * Code: N/A 979 // 980 // * Code: 981 // InvalidRequest 982 // 983 // * Description: Amazon S3 Transfer Accelerate is disabled on this 984 // bucket. 985 // 986 // * HTTP Status Code: 400 Bad Request 987 // 988 // * Code: N/A 989 // 990 // * Code: 991 // InvalidRequest 992 // 993 // * Description: Amazon S3 Transfer Acceleration is not supported 994 // on this bucket. Contact AWS Support for more information. 995 // 996 // * HTTP Status Code: 997 // 400 Bad Request 998 // 999 // * Code: N/A 1000 // 1001 // * Code: InvalidRequest 1002 // 1003 // * Description: Amazon S3 1004 // Transfer Acceleration cannot be enabled on this bucket. Contact AWS Support for 1005 // more information. 1006 // 1007 // * HTTP Status Code: 400 Bad Request 1008 // 1009 // * Code: N/A 1010 // 1011 // * Code: 1012 // InvalidSecurity 1013 // 1014 // * Description: The provided security credentials are not 1015 // valid. 1016 // 1017 // * HTTP Status Code: 403 Forbidden 1018 // 1019 // * SOAP Fault Code Prefix: Client 1020 // 1021 // * 1022 // Code: InvalidSOAPRequest 1023 // 1024 // * Description: The SOAP request body is invalid. 1025 // 1026 // * 1027 // HTTP Status Code: 400 Bad Request 1028 // 1029 // * SOAP Fault Code Prefix: Client 1030 // 1031 // * Code: 1032 // InvalidStorageClass 1033 // 1034 // * Description: The storage class you specified is not 1035 // valid. 1036 // 1037 // * HTTP Status Code: 400 Bad Request 1038 // 1039 // * SOAP Fault Code Prefix: Client 1040 // 1041 // * 1042 // Code: InvalidTargetBucketForLogging 1043 // 1044 // * Description: The target bucket for 1045 // logging does not exist, is not owned by you, or does not have the appropriate 1046 // grants for the log-delivery group. 1047 // 1048 // * HTTP Status Code: 400 Bad Request 1049 // 1050 // * SOAP 1051 // Fault Code Prefix: Client 1052 // 1053 // * Code: InvalidToken 1054 // 1055 // * Description: The provided 1056 // token is malformed or otherwise invalid. 1057 // 1058 // * HTTP Status Code: 400 Bad Request 1059 // 1060 // * 1061 // SOAP Fault Code Prefix: Client 1062 // 1063 // * Code: InvalidURI 1064 // 1065 // * Description: Couldn't 1066 // parse the specified URI. 1067 // 1068 // * HTTP Status Code: 400 Bad Request 1069 // 1070 // * SOAP Fault Code 1071 // Prefix: Client 1072 // 1073 // * Code: KeyTooLongError 1074 // 1075 // * Description: Your key is too long. 1076 // 1077 // * 1078 // HTTP Status Code: 400 Bad Request 1079 // 1080 // * SOAP Fault Code Prefix: Client 1081 // 1082 // * Code: 1083 // MalformedACLError 1084 // 1085 // * Description: The XML you provided was not well-formed or 1086 // did not validate against our published schema. 1087 // 1088 // * HTTP Status Code: 400 Bad 1089 // Request 1090 // 1091 // * SOAP Fault Code Prefix: Client 1092 // 1093 // * Code: MalformedPOSTRequest 1094 // 1095 // * 1096 // Description: The body of your POST request is not well-formed 1097 // multipart/form-data. 1098 // 1099 // * HTTP Status Code: 400 Bad Request 1100 // 1101 // * SOAP Fault Code 1102 // Prefix: Client 1103 // 1104 // * Code: MalformedXML 1105 // 1106 // * Description: This happens when the user 1107 // sends malformed XML (XML that doesn't conform to the published XSD) for the 1108 // configuration. The error message is, "The XML you provided was not well-formed 1109 // or did not validate against our published schema." 1110 // 1111 // * HTTP Status Code: 400 Bad 1112 // Request 1113 // 1114 // * SOAP Fault Code Prefix: Client 1115 // 1116 // * Code: MaxMessageLengthExceeded 1117 // 1118 // * 1119 // Description: Your request was too big. 1120 // 1121 // * HTTP Status Code: 400 Bad Request 1122 // 1123 // * 1124 // SOAP Fault Code Prefix: Client 1125 // 1126 // * Code: MaxPostPreDataLengthExceededError 1127 // 1128 // * 1129 // Description: Your POST request fields preceding the upload file were too 1130 // large. 1131 // 1132 // * HTTP Status Code: 400 Bad Request 1133 // 1134 // * SOAP Fault Code Prefix: Client 1135 // 1136 // * 1137 // Code: MetadataTooLarge 1138 // 1139 // * Description: Your metadata headers exceed the maximum 1140 // allowed metadata size. 1141 // 1142 // * HTTP Status Code: 400 Bad Request 1143 // 1144 // * SOAP Fault Code 1145 // Prefix: Client 1146 // 1147 // * Code: MethodNotAllowed 1148 // 1149 // * Description: The specified method is 1150 // not allowed against this resource. 1151 // 1152 // * HTTP Status Code: 405 Method Not 1153 // Allowed 1154 // 1155 // * SOAP Fault Code Prefix: Client 1156 // 1157 // * Code: MissingAttachment 1158 // 1159 // * 1160 // Description: A SOAP attachment was expected, but none were found. 1161 // 1162 // * HTTP Status 1163 // Code: N/A 1164 // 1165 // * SOAP Fault Code Prefix: Client 1166 // 1167 // * Code: MissingContentLength 1168 // 1169 // * 1170 // Description: You must provide the Content-Length HTTP header. 1171 // 1172 // * HTTP Status 1173 // Code: 411 Length Required 1174 // 1175 // * SOAP Fault Code Prefix: Client 1176 // 1177 // * Code: 1178 // MissingRequestBodyError 1179 // 1180 // * Description: This happens when the user sends an 1181 // empty XML document as a request. The error message is, "Request body is 1182 // empty." 1183 // 1184 // * HTTP Status Code: 400 Bad Request 1185 // 1186 // * SOAP Fault Code Prefix: 1187 // Client 1188 // 1189 // * Code: MissingSecurityElement 1190 // 1191 // * Description: The SOAP 1.1 request is 1192 // missing a security element. 1193 // 1194 // * HTTP Status Code: 400 Bad Request 1195 // 1196 // * SOAP Fault 1197 // Code Prefix: Client 1198 // 1199 // * Code: MissingSecurityHeader 1200 // 1201 // * Description: Your request 1202 // is missing a required header. 1203 // 1204 // * HTTP Status Code: 400 Bad Request 1205 // 1206 // * SOAP Fault 1207 // Code Prefix: Client 1208 // 1209 // * Code: NoLoggingStatusForKey 1210 // 1211 // * Description: There is no 1212 // such thing as a logging status subresource for a key. 1213 // 1214 // * HTTP Status Code: 400 1215 // Bad Request 1216 // 1217 // * SOAP Fault Code Prefix: Client 1218 // 1219 // * Code: NoSuchBucket 1220 // 1221 // * 1222 // Description: The specified bucket does not exist. 1223 // 1224 // * HTTP Status Code: 404 Not 1225 // Found 1226 // 1227 // * SOAP Fault Code Prefix: Client 1228 // 1229 // * Code: NoSuchBucketPolicy 1230 // 1231 // * 1232 // Description: The specified bucket does not have a bucket policy. 1233 // 1234 // * HTTP Status 1235 // Code: 404 Not Found 1236 // 1237 // * SOAP Fault Code Prefix: Client 1238 // 1239 // * Code: NoSuchKey 1240 // 1241 // * 1242 // Description: The specified key does not exist. 1243 // 1244 // * HTTP Status Code: 404 Not 1245 // Found 1246 // 1247 // * SOAP Fault Code Prefix: Client 1248 // 1249 // * Code: NoSuchLifecycleConfiguration 1250 // 1251 // * 1252 // Description: The lifecycle configuration does not exist. 1253 // 1254 // * HTTP Status Code: 1255 // 404 Not Found 1256 // 1257 // * SOAP Fault Code Prefix: Client 1258 // 1259 // * Code: NoSuchUpload 1260 // 1261 // * 1262 // Description: The specified multipart upload does not exist. The upload ID might 1263 // be invalid, or the multipart upload might have been aborted or completed. 1264 // 1265 // * 1266 // HTTP Status Code: 404 Not Found 1267 // 1268 // * SOAP Fault Code Prefix: Client 1269 // 1270 // * Code: 1271 // NoSuchVersion 1272 // 1273 // * Description: Indicates that the version ID specified in the 1274 // request does not match an existing version. 1275 // 1276 // * HTTP Status Code: 404 Not 1277 // Found 1278 // 1279 // * SOAP Fault Code Prefix: Client 1280 // 1281 // * Code: NotImplemented 1282 // 1283 // * Description: 1284 // A header you provided implies functionality that is not implemented. 1285 // 1286 // * HTTP 1287 // Status Code: 501 Not Implemented 1288 // 1289 // * SOAP Fault Code Prefix: Server 1290 // 1291 // * Code: 1292 // NotSignedUp 1293 // 1294 // * Description: Your account is not signed up for the Amazon S3 1295 // service. You must sign up before you can use Amazon S3. You can sign up at the 1296 // following URL: https://aws.amazon.com/s3 1297 // 1298 // * HTTP Status Code: 403 Forbidden 1299 // 1300 // * 1301 // SOAP Fault Code Prefix: Client 1302 // 1303 // * Code: OperationAborted 1304 // 1305 // * Description: A 1306 // conflicting conditional operation is currently in progress against this 1307 // resource. Try again. 1308 // 1309 // * HTTP Status Code: 409 Conflict 1310 // 1311 // * SOAP Fault Code 1312 // Prefix: Client 1313 // 1314 // * Code: PermanentRedirect 1315 // 1316 // * Description: The bucket you are 1317 // attempting to access must be addressed using the specified endpoint. Send all 1318 // future requests to this endpoint. 1319 // 1320 // * HTTP Status Code: 301 Moved Permanently 1321 // 1322 // * 1323 // SOAP Fault Code Prefix: Client 1324 // 1325 // * Code: PreconditionFailed 1326 // 1327 // * Description: At 1328 // least one of the preconditions you specified did not hold. 1329 // 1330 // * HTTP Status Code: 1331 // 412 Precondition Failed 1332 // 1333 // * SOAP Fault Code Prefix: Client 1334 // 1335 // * Code: Redirect 1336 // 1337 // * 1338 // Description: Temporary redirect. 1339 // 1340 // * HTTP Status Code: 307 Moved Temporarily 1341 // 1342 // * 1343 // SOAP Fault Code Prefix: Client 1344 // 1345 // * Code: RestoreAlreadyInProgress 1346 // 1347 // * Description: 1348 // Object restore is already in progress. 1349 // 1350 // * HTTP Status Code: 409 Conflict 1351 // 1352 // * SOAP 1353 // Fault Code Prefix: Client 1354 // 1355 // * Code: RequestIsNotMultiPartContent 1356 // 1357 // * Description: 1358 // Bucket POST must be of the enclosure-type multipart/form-data. 1359 // 1360 // * HTTP Status 1361 // Code: 400 Bad Request 1362 // 1363 // * SOAP Fault Code Prefix: Client 1364 // 1365 // * Code: 1366 // RequestTimeout 1367 // 1368 // * Description: Your socket connection to the server was not read 1369 // from or written to within the timeout period. 1370 // 1371 // * HTTP Status Code: 400 Bad 1372 // Request 1373 // 1374 // * SOAP Fault Code Prefix: Client 1375 // 1376 // * Code: RequestTimeTooSkewed 1377 // 1378 // * 1379 // Description: The difference between the request time and the server's time is 1380 // too large. 1381 // 1382 // * HTTP Status Code: 403 Forbidden 1383 // 1384 // * SOAP Fault Code Prefix: 1385 // Client 1386 // 1387 // * Code: RequestTorrentOfBucketError 1388 // 1389 // * Description: Requesting the 1390 // torrent file of a bucket is not permitted. 1391 // 1392 // * HTTP Status Code: 400 Bad 1393 // Request 1394 // 1395 // * SOAP Fault Code Prefix: Client 1396 // 1397 // * Code: SignatureDoesNotMatch 1398 // 1399 // * 1400 // Description: The request signature we calculated does not match the signature 1401 // you provided. Check your AWS secret access key and signing method. For more 1402 // information, see REST Authentication 1403 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html) and 1404 // SOAP Authentication 1405 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/SOAPAuthentication.html) for 1406 // details. 1407 // 1408 // * HTTP Status Code: 403 Forbidden 1409 // 1410 // * SOAP Fault Code Prefix: Client 1411 // 1412 // * 1413 // Code: ServiceUnavailable 1414 // 1415 // * Description: Reduce your request rate. 1416 // 1417 // * HTTP 1418 // Status Code: 503 Service Unavailable 1419 // 1420 // * SOAP Fault Code Prefix: Server 1421 // 1422 // * Code: 1423 // SlowDown 1424 // 1425 // * Description: Reduce your request rate. 1426 // 1427 // * HTTP Status Code: 503 Slow 1428 // Down 1429 // 1430 // * SOAP Fault Code Prefix: Server 1431 // 1432 // * Code: TemporaryRedirect 1433 // 1434 // * 1435 // Description: You are being redirected to the bucket while DNS updates. 1436 // 1437 // * HTTP 1438 // Status Code: 307 Moved Temporarily 1439 // 1440 // * SOAP Fault Code Prefix: Client 1441 // 1442 // * Code: 1443 // TokenRefreshRequired 1444 // 1445 // * Description: The provided token must be refreshed. 1446 // 1447 // * 1448 // HTTP Status Code: 400 Bad Request 1449 // 1450 // * SOAP Fault Code Prefix: Client 1451 // 1452 // * Code: 1453 // TooManyBuckets 1454 // 1455 // * Description: You have attempted to create more buckets than 1456 // allowed. 1457 // 1458 // * HTTP Status Code: 400 Bad Request 1459 // 1460 // * SOAP Fault Code Prefix: 1461 // Client 1462 // 1463 // * Code: UnexpectedContent 1464 // 1465 // * Description: This request does not support 1466 // content. 1467 // 1468 // * HTTP Status Code: 400 Bad Request 1469 // 1470 // * SOAP Fault Code Prefix: 1471 // Client 1472 // 1473 // * Code: UnresolvableGrantByEmailAddress 1474 // 1475 // * Description: The email 1476 // address you provided does not match any account on record. 1477 // 1478 // * HTTP Status Code: 1479 // 400 Bad Request 1480 // 1481 // * SOAP Fault Code Prefix: Client 1482 // 1483 // * Code: 1484 // UserKeyMustBeSpecified 1485 // 1486 // * Description: The bucket POST must contain the 1487 // specified field name. If it is specified, check the order of the fields. 1488 // 1489 // * HTTP 1490 // Status Code: 400 Bad Request 1491 // 1492 // * SOAP Fault Code Prefix: Client 1493 Code *string 1494 1495 // The error key. 1496 Key *string 1497 1498 // The error message contains a generic description of the error condition in 1499 // English. It is intended for a human audience. Simple programs display the 1500 // message directly to the end user if they encounter an error condition they don't 1501 // know how or don't care to handle. Sophisticated programs with more exhaustive 1502 // error handling and proper internationalization are more likely to ignore the 1503 // error message. 1504 Message *string 1505 1506 // The version ID of the error. 1507 VersionId *string 1508} 1509 1510// The error information. 1511type ErrorDocument struct { 1512 1513 // The object key name to use when a 4XX class error occurs. 1514 // 1515 // This member is required. 1516 Key *string 1517} 1518 1519// Optional configuration to replicate existing source bucket objects. For more 1520// information, see Replicating Existing Objects 1521// (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) 1522// in the Amazon S3 Developer Guide. 1523type ExistingObjectReplication struct { 1524 1525 // 1526 // 1527 // This member is required. 1528 Status ExistingObjectReplicationStatus 1529} 1530 1531// Specifies the Amazon S3 object key name to filter on and whether to filter on 1532// the suffix or prefix of the key name. 1533type FilterRule struct { 1534 1535 // The object key name prefix or suffix identifying one or more objects to which 1536 // the filtering rule applies. The maximum length is 1,024 characters. Overlapping 1537 // prefixes and suffixes are not supported. For more information, see Configuring 1538 // Event Notifications 1539 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the 1540 // Amazon Simple Storage Service Developer Guide. 1541 Name FilterRuleName 1542 1543 // The value that the filter searches for in object key names. 1544 Value *string 1545} 1546 1547// Container for S3 Glacier job parameters. 1548type GlacierJobParameters struct { 1549 1550 // Retrieval tier at which the restore will be processed. 1551 // 1552 // This member is required. 1553 Tier Tier 1554} 1555 1556// Container for grant information. 1557type Grant struct { 1558 1559 // The person being granted permissions. 1560 Grantee *Grantee 1561 1562 // Specifies the permission given to the grantee. 1563 Permission Permission 1564} 1565 1566// Container for the person being granted permissions. 1567type Grantee struct { 1568 1569 // Type of grantee 1570 // 1571 // This member is required. 1572 Type Type 1573 1574 // Screen name of the grantee. 1575 DisplayName *string 1576 1577 // Email address of the grantee. Using email addresses to specify a grantee is only 1578 // supported in the following AWS Regions: 1579 // 1580 // * US East (N. Virginia) 1581 // 1582 // * US West (N. 1583 // California) 1584 // 1585 // * US West (Oregon) 1586 // 1587 // * Asia Pacific (Singapore) 1588 // 1589 // * Asia Pacific 1590 // (Sydney) 1591 // 1592 // * Asia Pacific (Tokyo) 1593 // 1594 // * Europe (Ireland) 1595 // 1596 // * South America (São 1597 // Paulo) 1598 // 1599 // For a list of all the Amazon S3 supported Regions and endpoints, see 1600 // Regions and Endpoints 1601 // (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in the AWS 1602 // General Reference. 1603 EmailAddress *string 1604 1605 // The canonical user ID of the grantee. 1606 ID *string 1607 1608 // URI of the grantee group. 1609 URI *string 1610} 1611 1612// Container for the Suffix element. 1613type IndexDocument struct { 1614 1615 // A suffix that is appended to a request that is for a directory on the website 1616 // endpoint (for example,if the suffix is index.html and you make a request to 1617 // samplebucket/images/ the data that is returned will be for the object with the 1618 // key name images/index.html) The suffix must not be empty and must not include a 1619 // slash character. 1620 // 1621 // This member is required. 1622 Suffix *string 1623} 1624 1625// Container element that identifies who initiated the multipart upload. 1626type Initiator struct { 1627 1628 // Name of the Principal. 1629 DisplayName *string 1630 1631 // If the principal is an AWS account, it provides the Canonical User ID. If the 1632 // principal is an IAM User, it provides a user ARN value. 1633 ID *string 1634} 1635 1636// Describes the serialization format of the object. 1637type InputSerialization struct { 1638 1639 // Describes the serialization of a CSV-encoded object. 1640 CSV *CSVInput 1641 1642 // Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default 1643 // Value: NONE. 1644 CompressionType CompressionType 1645 1646 // Specifies JSON as object's input serialization format. 1647 JSON *JSONInput 1648 1649 // Specifies Parquet as object's input serialization format. 1650 Parquet *ParquetInput 1651} 1652 1653// A container for specifying S3 Intelligent-Tiering filters. The filters determine 1654// the subset of objects to which the rule applies. 1655type IntelligentTieringAndOperator struct { 1656 1657 // An object key name prefix that identifies the subset of objects to which the 1658 // configuration applies. 1659 Prefix *string 1660 1661 // All of these tags must exist in the object's tag set in order for the 1662 // configuration to apply. 1663 Tags []Tag 1664} 1665 1666// Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket. For 1667// information about the S3 Intelligent-Tiering storage class, see Storage class 1668// for automatically optimizing frequently and infrequently accessed objects 1669// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). 1670type IntelligentTieringConfiguration struct { 1671 1672 // The ID used to identify the S3 Intelligent-Tiering configuration. 1673 // 1674 // This member is required. 1675 Id *string 1676 1677 // Specifies the status of the configuration. 1678 // 1679 // This member is required. 1680 Status IntelligentTieringStatus 1681 1682 // Specifies the S3 Intelligent-Tiering storage class tier of the configuration. 1683 // 1684 // This member is required. 1685 Tierings []Tiering 1686 1687 // Specifies a bucket filter. The configuration only includes objects that meet the 1688 // filter's criteria. 1689 Filter *IntelligentTieringFilter 1690} 1691 1692// The Filter is used to identify objects that the S3 Intelligent-Tiering 1693// configuration applies to. 1694type IntelligentTieringFilter struct { 1695 1696 // A conjunction (logical AND) of predicates, which is used in evaluating a metrics 1697 // filter. The operator must have at least two predicates, and an object must match 1698 // all of the predicates in order for the filter to apply. 1699 And *IntelligentTieringAndOperator 1700 1701 // An object key name prefix that identifies the subset of objects to which the 1702 // rule applies. 1703 Prefix *string 1704 1705 // A container of a key value name pair. 1706 Tag *Tag 1707} 1708 1709// Specifies the inventory configuration for an Amazon S3 bucket. For more 1710// information, see GET Bucket inventory 1711// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) 1712// in the Amazon Simple Storage Service API Reference. 1713type InventoryConfiguration struct { 1714 1715 // Contains information about where to publish the inventory results. 1716 // 1717 // This member is required. 1718 Destination *InventoryDestination 1719 1720 // The ID used to identify the inventory configuration. 1721 // 1722 // This member is required. 1723 Id *string 1724 1725 // Object versions to include in the inventory list. If set to All, the list 1726 // includes all the object versions, which adds the version-related fields 1727 // VersionId, IsLatest, and DeleteMarker to the list. If set to Current, the list 1728 // does not contain these version-related fields. 1729 // 1730 // This member is required. 1731 IncludedObjectVersions InventoryIncludedObjectVersions 1732 1733 // Specifies whether the inventory is enabled or disabled. If set to True, an 1734 // inventory list is generated. If set to False, no inventory list is generated. 1735 // 1736 // This member is required. 1737 IsEnabled bool 1738 1739 // Specifies the schedule for generating inventory results. 1740 // 1741 // This member is required. 1742 Schedule *InventorySchedule 1743 1744 // Specifies an inventory filter. The inventory only includes objects that meet the 1745 // filter's criteria. 1746 Filter *InventoryFilter 1747 1748 // Contains the optional fields that are included in the inventory results. 1749 OptionalFields []InventoryOptionalField 1750} 1751 1752// Specifies the inventory configuration for an Amazon S3 bucket. 1753type InventoryDestination struct { 1754 1755 // Contains the bucket name, file format, bucket owner (optional), and prefix 1756 // (optional) where inventory results are published. 1757 // 1758 // This member is required. 1759 S3BucketDestination *InventoryS3BucketDestination 1760} 1761 1762// Contains the type of server-side encryption used to encrypt the inventory 1763// results. 1764type InventoryEncryption struct { 1765 1766 // Specifies the use of SSE-KMS to encrypt delivered inventory reports. 1767 SSEKMS *SSEKMS 1768 1769 // Specifies the use of SSE-S3 to encrypt delivered inventory reports. 1770 SSES3 *SSES3 1771} 1772 1773// Specifies an inventory filter. The inventory only includes objects that meet the 1774// filter's criteria. 1775type InventoryFilter struct { 1776 1777 // The prefix that an object must have to be included in the inventory results. 1778 // 1779 // This member is required. 1780 Prefix *string 1781} 1782 1783// Contains the bucket name, file format, bucket owner (optional), and prefix 1784// (optional) where inventory results are published. 1785type InventoryS3BucketDestination struct { 1786 1787 // The Amazon Resource Name (ARN) of the bucket where inventory results will be 1788 // published. 1789 // 1790 // This member is required. 1791 Bucket *string 1792 1793 // Specifies the output format of the inventory results. 1794 // 1795 // This member is required. 1796 Format InventoryFormat 1797 1798 // The account ID that owns the destination S3 bucket. If no account ID is 1799 // provided, the owner is not validated before exporting data. Although this value 1800 // is optional, we strongly recommend that you set it to help prevent problems if 1801 // the destination bucket ownership changes. 1802 AccountId *string 1803 1804 // Contains the type of server-side encryption used to encrypt the inventory 1805 // results. 1806 Encryption *InventoryEncryption 1807 1808 // The prefix that is prepended to all inventory results. 1809 Prefix *string 1810} 1811 1812// Specifies the schedule for generating inventory results. 1813type InventorySchedule struct { 1814 1815 // Specifies how frequently inventory results are produced. 1816 // 1817 // This member is required. 1818 Frequency InventoryFrequency 1819} 1820 1821// Specifies JSON as object's input serialization format. 1822type JSONInput struct { 1823 1824 // The type of JSON. Valid values: Document, Lines. 1825 Type JSONType 1826} 1827 1828// Specifies JSON as request's output serialization format. 1829type JSONOutput struct { 1830 1831 // The value used to separate individual records in the output. If no value is 1832 // specified, Amazon S3 uses a newline character ('\n'). 1833 RecordDelimiter *string 1834} 1835 1836// A container for specifying the configuration for AWS Lambda notifications. 1837type LambdaFunctionConfiguration struct { 1838 1839 // The Amazon S3 bucket event for which to invoke the AWS Lambda function. For more 1840 // information, see Supported Event Types 1841 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the 1842 // Amazon Simple Storage Service Developer Guide. 1843 // 1844 // This member is required. 1845 Events []Event 1846 1847 // The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes 1848 // when the specified event type occurs. 1849 // 1850 // This member is required. 1851 LambdaFunctionArn *string 1852 1853 // Specifies object key name filtering rules. For information about key name 1854 // filtering, see Configuring Event Notifications 1855 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the 1856 // Amazon Simple Storage Service Developer Guide. 1857 Filter *NotificationConfigurationFilter 1858 1859 // An optional unique identifier for configurations in a notification 1860 // configuration. If you don't provide one, Amazon S3 will assign an ID. 1861 Id *string 1862} 1863 1864// Container for the expiration for the lifecycle of the object. 1865type LifecycleExpiration struct { 1866 1867 // Indicates at what date the object is to be moved or deleted. Should be in GMT 1868 // ISO 8601 Format. 1869 Date *time.Time 1870 1871 // Indicates the lifetime, in days, of the objects that are subject to the rule. 1872 // The value must be a non-zero positive integer. 1873 Days int32 1874 1875 // Indicates whether Amazon S3 will remove a delete marker with no noncurrent 1876 // versions. If set to true, the delete marker will be expired; if set to false the 1877 // policy takes no action. This cannot be specified with Days or Date in a 1878 // Lifecycle Expiration Policy. 1879 ExpiredObjectDeleteMarker bool 1880} 1881 1882// A lifecycle rule for individual objects in an Amazon S3 bucket. 1883type LifecycleRule struct { 1884 1885 // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is 1886 // not currently being applied. 1887 // 1888 // This member is required. 1889 Status ExpirationStatus 1890 1891 // Specifies the days since the initiation of an incomplete multipart upload that 1892 // Amazon S3 will wait before permanently removing all parts of the upload. For 1893 // more information, see Aborting Incomplete Multipart Uploads Using a Bucket 1894 // Lifecycle Policy 1895 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) 1896 // in the Amazon Simple Storage Service Developer Guide. 1897 AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload 1898 1899 // Specifies the expiration for the lifecycle of the object in the form of date, 1900 // days and, whether the object has a delete marker. 1901 Expiration *LifecycleExpiration 1902 1903 // The Filter is used to identify objects that a Lifecycle Rule applies to. A 1904 // Filter must have exactly one of Prefix, Tag, or And specified. 1905 Filter LifecycleRuleFilter 1906 1907 // Unique identifier for the rule. The value cannot be longer than 255 characters. 1908 ID *string 1909 1910 // Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 1911 // permanently deletes the noncurrent object versions. You set this lifecycle 1912 // configuration action on a bucket that has versioning enabled (or suspended) to 1913 // request that Amazon S3 delete noncurrent object versions at a specific period in 1914 // the object's lifetime. 1915 NoncurrentVersionExpiration *NoncurrentVersionExpiration 1916 1917 // Specifies the transition rule for the lifecycle rule that describes when 1918 // noncurrent objects transition to a specific storage class. If your bucket is 1919 // versioning-enabled (or versioning is suspended), you can set this action to 1920 // request that Amazon S3 transition noncurrent object versions to a specific 1921 // storage class at a set period in the object's lifetime. 1922 NoncurrentVersionTransitions []NoncurrentVersionTransition 1923 1924 // Prefix identifying one or more objects to which the rule applies. This is No 1925 // longer used; use Filter instead. 1926 // 1927 // Deprecated: This member has been deprecated. 1928 Prefix *string 1929 1930 // Specifies when an Amazon S3 object transitions to a specified storage class. 1931 Transitions []Transition 1932} 1933 1934// This is used in a Lifecycle Rule Filter to apply a logical AND to two or more 1935// predicates. The Lifecycle Rule will apply to any object matching all of the 1936// predicates configured inside the And operator. 1937type LifecycleRuleAndOperator struct { 1938 1939 // Prefix identifying one or more objects to which the rule applies. 1940 Prefix *string 1941 1942 // All of these tags must exist in the object's tag set in order for the rule to 1943 // apply. 1944 Tags []Tag 1945} 1946 1947// The Filter is used to identify objects that a Lifecycle Rule applies to. A 1948// Filter must have exactly one of Prefix, Tag, or And specified. 1949// 1950// The following types satisfy this interface: 1951// LifecycleRuleFilterMemberPrefix 1952// LifecycleRuleFilterMemberTag 1953// LifecycleRuleFilterMemberAnd 1954type LifecycleRuleFilter interface { 1955 isLifecycleRuleFilter() 1956} 1957 1958// Prefix identifying one or more objects to which the rule applies. 1959type LifecycleRuleFilterMemberPrefix struct { 1960 Value string 1961} 1962 1963func (*LifecycleRuleFilterMemberPrefix) isLifecycleRuleFilter() {} 1964 1965// This tag must exist in the object's tag set in order for the rule to apply. 1966type LifecycleRuleFilterMemberTag struct { 1967 Value Tag 1968} 1969 1970func (*LifecycleRuleFilterMemberTag) isLifecycleRuleFilter() {} 1971 1972// This is used in a Lifecycle Rule Filter to apply a logical AND to two or more 1973// predicates. The Lifecycle Rule will apply to any object matching all of the 1974// predicates configured inside the And operator. 1975type LifecycleRuleFilterMemberAnd struct { 1976 Value LifecycleRuleAndOperator 1977} 1978 1979func (*LifecycleRuleFilterMemberAnd) isLifecycleRuleFilter() {} 1980 1981// Describes where logs are stored and the prefix that Amazon S3 assigns to all log 1982// object keys for a bucket. For more information, see PUT Bucket logging 1983// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) in 1984// the Amazon Simple Storage Service API Reference. 1985type LoggingEnabled struct { 1986 1987 // Specifies the bucket where you want Amazon S3 to store server access logs. You 1988 // can have your logs delivered to any bucket that you own, including the same 1989 // bucket that is being logged. You can also configure multiple buckets to deliver 1990 // their logs to the same target bucket. In this case, you should choose a 1991 // different TargetPrefix for each source bucket so that the delivered log files 1992 // can be distinguished by key. 1993 // 1994 // This member is required. 1995 TargetBucket *string 1996 1997 // A prefix for all log object keys. If you store log files from multiple Amazon S3 1998 // buckets in a single bucket, you can use a prefix to distinguish which log files 1999 // came from which bucket. 2000 // 2001 // This member is required. 2002 TargetPrefix *string 2003 2004 // Container for granting information. 2005 TargetGrants []TargetGrant 2006} 2007 2008// A metadata key-value pair to store with an object. 2009type MetadataEntry struct { 2010 2011 // Name of the Object. 2012 Name *string 2013 2014 // Value of the Object. 2015 Value *string 2016} 2017 2018// A container specifying replication metrics-related settings enabling replication 2019// metrics and events. 2020type Metrics struct { 2021 2022 // Specifies whether the replication metrics are enabled. 2023 // 2024 // This member is required. 2025 Status MetricsStatus 2026 2027 // A container specifying the time threshold for emitting the 2028 // s3:Replication:OperationMissedThreshold event. 2029 EventThreshold *ReplicationTimeValue 2030} 2031 2032// A conjunction (logical AND) of predicates, which is used in evaluating a metrics 2033// filter. The operator must have at least two predicates, and an object must match 2034// all of the predicates in order for the filter to apply. 2035type MetricsAndOperator struct { 2036 2037 // The prefix used when evaluating an AND predicate. 2038 Prefix *string 2039 2040 // The list of tags used when evaluating an AND predicate. 2041 Tags []Tag 2042} 2043 2044// Specifies a metrics configuration for the CloudWatch request metrics (specified 2045// by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an 2046// existing metrics configuration, note that this is a full replacement of the 2047// existing metrics configuration. If you don't include the elements you want to 2048// keep, they are erased. For more information, see PUT Bucket metrics 2049// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html) 2050// in the Amazon Simple Storage Service API Reference. 2051type MetricsConfiguration struct { 2052 2053 // The ID used to identify the metrics configuration. 2054 // 2055 // This member is required. 2056 Id *string 2057 2058 // Specifies a metrics configuration filter. The metrics configuration will only 2059 // include objects that meet the filter's criteria. A filter must be a prefix, a 2060 // tag, or a conjunction (MetricsAndOperator). 2061 Filter MetricsFilter 2062} 2063 2064// Specifies a metrics configuration filter. The metrics configuration only 2065// includes objects that meet the filter's criteria. A filter must be a prefix, a 2066// tag, or a conjunction (MetricsAndOperator). 2067// 2068// The following types satisfy this interface: 2069// MetricsFilterMemberPrefix 2070// MetricsFilterMemberTag 2071// MetricsFilterMemberAnd 2072type MetricsFilter interface { 2073 isMetricsFilter() 2074} 2075 2076// The prefix used when evaluating a metrics filter. 2077type MetricsFilterMemberPrefix struct { 2078 Value string 2079} 2080 2081func (*MetricsFilterMemberPrefix) isMetricsFilter() {} 2082 2083// The tag used when evaluating a metrics filter. 2084type MetricsFilterMemberTag struct { 2085 Value Tag 2086} 2087 2088func (*MetricsFilterMemberTag) isMetricsFilter() {} 2089 2090// A conjunction (logical AND) of predicates, which is used in evaluating a metrics 2091// filter. The operator must have at least two predicates, and an object must match 2092// all of the predicates in order for the filter to apply. 2093type MetricsFilterMemberAnd struct { 2094 Value MetricsAndOperator 2095} 2096 2097func (*MetricsFilterMemberAnd) isMetricsFilter() {} 2098 2099// Container for the MultipartUpload for the Amazon S3 object. 2100type MultipartUpload struct { 2101 2102 // Date and time at which the multipart upload was initiated. 2103 Initiated *time.Time 2104 2105 // Identifies who initiated the multipart upload. 2106 Initiator *Initiator 2107 2108 // Key of the object for which the multipart upload was initiated. 2109 Key *string 2110 2111 // Specifies the owner of the object that is part of the multipart upload. 2112 Owner *Owner 2113 2114 // The class of storage used to store the object. 2115 StorageClass StorageClass 2116 2117 // Upload ID that identifies the multipart upload. 2118 UploadId *string 2119} 2120 2121// Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 2122// permanently deletes the noncurrent object versions. You set this lifecycle 2123// configuration action on a bucket that has versioning enabled (or suspended) to 2124// request that Amazon S3 delete noncurrent object versions at a specific period in 2125// the object's lifetime. 2126type NoncurrentVersionExpiration struct { 2127 2128 // Specifies the number of days an object is noncurrent before Amazon S3 can 2129 // perform the associated action. For information about the noncurrent days 2130 // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent 2131 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) 2132 // in the Amazon Simple Storage Service Developer Guide. 2133 NoncurrentDays int32 2134} 2135 2136// Container for the transition rule that describes when noncurrent objects 2137// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, or 2138// DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning 2139// is suspended), you can set this action to request that Amazon S3 transition 2140// noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, 2141// GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's 2142// lifetime. 2143type NoncurrentVersionTransition struct { 2144 2145 // Specifies the number of days an object is noncurrent before Amazon S3 can 2146 // perform the associated action. For information about the noncurrent days 2147 // calculations, see How Amazon S3 Calculates How Long an Object Has Been 2148 // Noncurrent 2149 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) 2150 // in the Amazon Simple Storage Service Developer Guide. 2151 NoncurrentDays int32 2152 2153 // The class of storage used to store the object. 2154 StorageClass TransitionStorageClass 2155} 2156 2157// A container for specifying the notification configuration of the bucket. If this 2158// element is empty, notifications are turned off for the bucket. 2159type NotificationConfiguration struct { 2160 2161 // Describes the AWS Lambda functions to invoke and the events for which to invoke 2162 // them. 2163 LambdaFunctionConfigurations []LambdaFunctionConfiguration 2164 2165 // The Amazon Simple Queue Service queues to publish messages to and the events for 2166 // which to publish messages. 2167 QueueConfigurations []QueueConfiguration 2168 2169 // The topic to which notifications are sent and the events for which notifications 2170 // are generated. 2171 TopicConfigurations []TopicConfiguration 2172} 2173 2174// Specifies object key name filtering rules. For information about key name 2175// filtering, see Configuring Event Notifications 2176// (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the 2177// Amazon Simple Storage Service Developer Guide. 2178type NotificationConfigurationFilter struct { 2179 2180 // A container for object key name prefix and suffix filtering rules. 2181 Key *S3KeyFilter 2182} 2183 2184// An object consists of data and its descriptive metadata. 2185type Object struct { 2186 2187 // The entity tag is a hash of the object. The ETag reflects changes only to the 2188 // contents of an object, not its metadata. The ETag may or may not be an MD5 2189 // digest of the object data. Whether or not it is depends on how the object was 2190 // created and how it is encrypted as described below: 2191 // 2192 // * Objects created by the 2193 // PUT Object, POST Object, or Copy operation, or through the AWS Management 2194 // Console, and are encrypted by SSE-S3 or plaintext, have ETags that are an MD5 2195 // digest of their object data. 2196 // 2197 // * Objects created by the PUT Object, POST Object, 2198 // or Copy operation, or through the AWS Management Console, and are encrypted by 2199 // SSE-C or SSE-KMS, have ETags that are not an MD5 digest of their object data. 2200 // 2201 // * 2202 // If an object is created by either the Multipart Upload or Part Copy operation, 2203 // the ETag is not an MD5 digest, regardless of the method of encryption. 2204 ETag *string 2205 2206 // The name that you assign to an object. You use the object key to retrieve the 2207 // object. 2208 Key *string 2209 2210 // The date the Object was Last Modified 2211 LastModified *time.Time 2212 2213 // The owner of the object 2214 Owner *Owner 2215 2216 // Size in bytes of the object 2217 Size int64 2218 2219 // The class of storage used to store the object. 2220 StorageClass ObjectStorageClass 2221} 2222 2223// Object Identifier is unique value to identify objects. 2224type ObjectIdentifier struct { 2225 2226 // Key name of the object to delete. 2227 // 2228 // This member is required. 2229 Key *string 2230 2231 // VersionId for the specific version of the object to delete. 2232 VersionId *string 2233} 2234 2235// The container element for Object Lock configuration parameters. 2236type ObjectLockConfiguration struct { 2237 2238 // Indicates whether this bucket has an Object Lock configuration enabled. 2239 ObjectLockEnabled ObjectLockEnabled 2240 2241 // The Object Lock rule in place for the specified object. 2242 Rule *ObjectLockRule 2243} 2244 2245// A Legal Hold configuration for an object. 2246type ObjectLockLegalHold struct { 2247 2248 // Indicates whether the specified object has a Legal Hold in place. 2249 Status ObjectLockLegalHoldStatus 2250} 2251 2252// A Retention configuration for an object. 2253type ObjectLockRetention struct { 2254 2255 // Indicates the Retention mode for the specified object. 2256 Mode ObjectLockRetentionMode 2257 2258 // The date on which this Object Lock Retention will expire. 2259 RetainUntilDate *time.Time 2260} 2261 2262// The container element for an Object Lock rule. 2263type ObjectLockRule struct { 2264 2265 // The default retention period that you want to apply to new objects placed in the 2266 // specified bucket. 2267 DefaultRetention *DefaultRetention 2268} 2269 2270// The version of an object. 2271type ObjectVersion struct { 2272 2273 // The entity tag is an MD5 hash of that version of the object. 2274 ETag *string 2275 2276 // Specifies whether the object is (true) or is not (false) the latest version of 2277 // an object. 2278 IsLatest bool 2279 2280 // The object key. 2281 Key *string 2282 2283 // Date and time the object was last modified. 2284 LastModified *time.Time 2285 2286 // Specifies the owner of the object. 2287 Owner *Owner 2288 2289 // Size in bytes of the object. 2290 Size int64 2291 2292 // The class of storage used to store the object. 2293 StorageClass ObjectVersionStorageClass 2294 2295 // Version ID of an object. 2296 VersionId *string 2297} 2298 2299// Describes the location where the restore job's output is stored. 2300type OutputLocation struct { 2301 2302 // Describes an S3 location that will receive the results of the restore request. 2303 S3 *S3Location 2304} 2305 2306// Describes how results of the Select job are serialized. 2307type OutputSerialization struct { 2308 2309 // Describes the serialization of CSV-encoded Select results. 2310 CSV *CSVOutput 2311 2312 // Specifies JSON as request's output serialization format. 2313 JSON *JSONOutput 2314} 2315 2316// Container for the owner's display name and ID. 2317type Owner struct { 2318 2319 // Container for the display name of the owner. 2320 DisplayName *string 2321 2322 // Container for the ID of the owner. 2323 ID *string 2324} 2325 2326// The container element for a bucket's ownership controls. 2327type OwnershipControls struct { 2328 2329 // The container element for an ownership control rule. 2330 // 2331 // This member is required. 2332 Rules []OwnershipControlsRule 2333} 2334 2335// The container element for an ownership control rule. 2336type OwnershipControlsRule struct { 2337 2338 // The container element for object ownership for a bucket's ownership controls. 2339 // BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the 2340 // bucket owner if the objects are uploaded with the bucket-owner-full-control 2341 // canned ACL. ObjectWriter - The uploading account will own the object if the 2342 // object is uploaded with the bucket-owner-full-control canned ACL. 2343 // 2344 // This member is required. 2345 ObjectOwnership ObjectOwnership 2346} 2347 2348// Container for Parquet. 2349type ParquetInput struct { 2350} 2351 2352// Container for elements related to a part. 2353type Part struct { 2354 2355 // Entity tag returned when the part was uploaded. 2356 ETag *string 2357 2358 // Date and time at which the part was uploaded. 2359 LastModified *time.Time 2360 2361 // Part number identifying the part. This is a positive integer between 1 and 2362 // 10,000. 2363 PartNumber int32 2364 2365 // Size in bytes of the uploaded part data. 2366 Size int64 2367} 2368 2369// The container element for a bucket's policy status. 2370type PolicyStatus struct { 2371 2372 // The policy status for this bucket. TRUE indicates that this bucket is public. 2373 // FALSE indicates that the bucket is not public. 2374 IsPublic bool 2375} 2376 2377// The PublicAccessBlock configuration that you want to apply to this Amazon S3 2378// bucket. You can enable the configuration options in any combination. For more 2379// information about when Amazon S3 considers a bucket or object public, see The 2380// Meaning of "Public" 2381// (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) 2382// in the Amazon Simple Storage Service Developer Guide. 2383type PublicAccessBlockConfiguration struct { 2384 2385 // Specifies whether Amazon S3 should block public access control lists (ACLs) for 2386 // this bucket and objects in this bucket. Setting this element to TRUE causes the 2387 // following behavior: 2388 // 2389 // * PUT Bucket acl and PUT Object acl calls fail if the 2390 // specified ACL is public. 2391 // 2392 // * PUT Object calls fail if the request includes a 2393 // public ACL. 2394 // 2395 // * PUT Bucket calls fail if the request includes a public 2396 // ACL. 2397 // 2398 // Enabling this setting doesn't affect existing policies or ACLs. 2399 BlockPublicAcls bool 2400 2401 // Specifies whether Amazon S3 should block public bucket policies for this bucket. 2402 // Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket 2403 // policy if the specified bucket policy allows public access. Enabling this 2404 // setting doesn't affect existing bucket policies. 2405 BlockPublicPolicy bool 2406 2407 // Specifies whether Amazon S3 should ignore public ACLs for this bucket and 2408 // objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore 2409 // all public ACLs on this bucket and objects in this bucket. Enabling this setting 2410 // doesn't affect the persistence of any existing ACLs and doesn't prevent new 2411 // public ACLs from being set. 2412 IgnorePublicAcls bool 2413 2414 // Specifies whether Amazon S3 should restrict public bucket policies for this 2415 // bucket. Setting this element to TRUE restricts access to this bucket to only AWS 2416 // service principals and authorized users within this account if the bucket has a 2417 // public policy. Enabling this setting doesn't affect previously stored bucket 2418 // policies, except that public and cross-account access within any public bucket 2419 // policy, including non-public delegation to specific accounts, is blocked. 2420 RestrictPublicBuckets bool 2421} 2422 2423// Specifies the configuration for publishing messages to an Amazon Simple Queue 2424// Service (Amazon SQS) queue when Amazon S3 detects specified events. 2425type QueueConfiguration struct { 2426 2427 // A collection of bucket events for which to send notifications 2428 // 2429 // This member is required. 2430 Events []Event 2431 2432 // The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 2433 // publishes a message when it detects events of the specified type. 2434 // 2435 // This member is required. 2436 QueueArn *string 2437 2438 // Specifies object key name filtering rules. For information about key name 2439 // filtering, see Configuring Event Notifications 2440 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the 2441 // Amazon Simple Storage Service Developer Guide. 2442 Filter *NotificationConfigurationFilter 2443 2444 // An optional unique identifier for configurations in a notification 2445 // configuration. If you don't provide one, Amazon S3 will assign an ID. 2446 Id *string 2447} 2448 2449// Specifies how requests are redirected. In the event of an error, you can specify 2450// a different error code to return. 2451type Redirect struct { 2452 2453 // The host name to use in the redirect request. 2454 HostName *string 2455 2456 // The HTTP redirect code to use on the response. Not required if one of the 2457 // siblings is present. 2458 HttpRedirectCode *string 2459 2460 // Protocol to use when redirecting requests. The default is the protocol that is 2461 // used in the original request. 2462 Protocol Protocol 2463 2464 // The object key prefix to use in the redirect request. For example, to redirect 2465 // requests for all pages with prefix docs/ (objects in the docs/ folder) to 2466 // documents/, you can set a condition block with KeyPrefixEquals set to docs/ and 2467 // in the Redirect set ReplaceKeyPrefixWith to /documents. Not required if one of 2468 // the siblings is present. Can be present only if ReplaceKeyWith is not provided. 2469 ReplaceKeyPrefixWith *string 2470 2471 // The specific object key to use in the redirect request. For example, redirect 2472 // request to error.html. Not required if one of the siblings is present. Can be 2473 // present only if ReplaceKeyPrefixWith is not provided. 2474 ReplaceKeyWith *string 2475} 2476 2477// Specifies the redirect behavior of all requests to a website endpoint of an 2478// Amazon S3 bucket. 2479type RedirectAllRequestsTo struct { 2480 2481 // Name of the host where requests are redirected. 2482 // 2483 // This member is required. 2484 HostName *string 2485 2486 // Protocol to use when redirecting requests. The default is the protocol that is 2487 // used in the original request. 2488 Protocol Protocol 2489} 2490 2491// A filter that you can specify for selection for modifications on replicas. 2492// Amazon S3 doesn't replicate replica modifications by default. In the latest 2493// version of replication configuration (when Filter is specified), you can specify 2494// this element and set the status to Enabled to replicate modifications on 2495// replicas. If you don't specify the Filter element, Amazon S3 assumes that the 2496// replication configuration is the earlier version, V1. In the earlier version, 2497// this element is not allowed. 2498type ReplicaModifications struct { 2499 2500 // Specifies whether Amazon S3 replicates modifications on replicas. 2501 // 2502 // This member is required. 2503 Status ReplicaModificationsStatus 2504} 2505 2506// A container for replication rules. You can add up to 1,000 rules. The maximum 2507// size of a replication configuration is 2 MB. 2508type ReplicationConfiguration struct { 2509 2510 // The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) 2511 // role that Amazon S3 assumes when replicating objects. For more information, see 2512 // How to Set Up Replication 2513 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in 2514 // the Amazon Simple Storage Service Developer Guide. 2515 // 2516 // This member is required. 2517 Role *string 2518 2519 // A container for one or more replication rules. A replication configuration must 2520 // have at least one rule and can contain a maximum of 1,000 rules. 2521 // 2522 // This member is required. 2523 Rules []ReplicationRule 2524} 2525 2526// Specifies which Amazon S3 objects to replicate and where to store the replicas. 2527type ReplicationRule struct { 2528 2529 // A container for information about the replication destination and its 2530 // configurations including enabling the S3 Replication Time Control (S3 RTC). 2531 // 2532 // This member is required. 2533 Destination *Destination 2534 2535 // Specifies whether the rule is enabled. 2536 // 2537 // This member is required. 2538 Status ReplicationRuleStatus 2539 2540 // Specifies whether Amazon S3 replicates delete markers. If you specify a Filter 2541 // in your replication configuration, you must also include a 2542 // DeleteMarkerReplication element. If your Filter includes a Tag element, the 2543 // DeleteMarkerReplicationStatus must be set to Disabled, because Amazon S3 does 2544 // not support replicating delete markers for tag-based rules. For an example 2545 // configuration, see Basic Rule Configuration 2546 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). 2547 // For more information about delete marker replication, see Basic Rule 2548 // Configuration 2549 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). 2550 // If you are using an earlier version of the replication configuration, Amazon S3 2551 // handles replication of delete markers differently. For more information, see 2552 // Backward Compatibility 2553 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). 2554 DeleteMarkerReplication *DeleteMarkerReplication 2555 2556 // 2557 ExistingObjectReplication *ExistingObjectReplication 2558 2559 // A filter that identifies the subset of objects to which the replication rule 2560 // applies. A Filter must specify exactly one Prefix, Tag, or an And child element. 2561 Filter ReplicationRuleFilter 2562 2563 // A unique identifier for the rule. The maximum value is 255 characters. 2564 ID *string 2565 2566 // An object key name prefix that identifies the object or objects to which the 2567 // rule applies. The maximum prefix length is 1,024 characters. To include all 2568 // objects in a bucket, specify an empty string. 2569 // 2570 // Deprecated: This member has been deprecated. 2571 Prefix *string 2572 2573 // The priority indicates which rule has precedence whenever two or more 2574 // replication rules conflict. Amazon S3 will attempt to replicate objects 2575 // according to all replication rules. However, if there are two or more rules with 2576 // the same destination bucket, then objects will be replicated according to the 2577 // rule with the highest priority. The higher the number, the higher the priority. 2578 // For more information, see Replication 2579 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the Amazon 2580 // Simple Storage Service Developer Guide. 2581 Priority int32 2582 2583 // A container that describes additional filters for identifying the source objects 2584 // that you want to replicate. You can choose to enable or disable the replication 2585 // of these objects. Currently, Amazon S3 supports only the filter that you can 2586 // specify for objects created with server-side encryption using a customer master 2587 // key (CMK) stored in AWS Key Management Service (SSE-KMS). 2588 SourceSelectionCriteria *SourceSelectionCriteria 2589} 2590 2591// A container for specifying rule filters. The filters determine the subset of 2592// objects to which the rule applies. This element is required only if you specify 2593// more than one filter. For example: 2594// 2595// * If you specify both a Prefix and a Tag 2596// filter, wrap these filters in an And tag. 2597// 2598// * If you specify a filter based on 2599// multiple tags, wrap the Tag elements in an And tag 2600type ReplicationRuleAndOperator struct { 2601 2602 // An object key name prefix that identifies the subset of objects to which the 2603 // rule applies. 2604 Prefix *string 2605 2606 // An array of tags containing key and value pairs. 2607 Tags []Tag 2608} 2609 2610// A filter that identifies the subset of objects to which the replication rule 2611// applies. A Filter must specify exactly one Prefix, Tag, or an And child element. 2612// 2613// The following types satisfy this interface: 2614// ReplicationRuleFilterMemberPrefix 2615// ReplicationRuleFilterMemberTag 2616// ReplicationRuleFilterMemberAnd 2617type ReplicationRuleFilter interface { 2618 isReplicationRuleFilter() 2619} 2620 2621// An object key name prefix that identifies the subset of objects to which the 2622// rule applies. 2623type ReplicationRuleFilterMemberPrefix struct { 2624 Value string 2625} 2626 2627func (*ReplicationRuleFilterMemberPrefix) isReplicationRuleFilter() {} 2628 2629// A container for specifying a tag key and value. The rule applies only to objects 2630// that have the tag in their tag set. 2631type ReplicationRuleFilterMemberTag struct { 2632 Value Tag 2633} 2634 2635func (*ReplicationRuleFilterMemberTag) isReplicationRuleFilter() {} 2636 2637// A container for specifying rule filters. The filters determine the subset of 2638// objects to which the rule applies. This element is required only if you specify 2639// more than one filter. For example: 2640// 2641// * If you specify both a Prefix and a Tag 2642// filter, wrap these filters in an And tag. 2643// 2644// * If you specify a filter based on 2645// multiple tags, wrap the Tag elements in an And tag. 2646type ReplicationRuleFilterMemberAnd struct { 2647 Value ReplicationRuleAndOperator 2648} 2649 2650func (*ReplicationRuleFilterMemberAnd) isReplicationRuleFilter() {} 2651 2652// A container specifying S3 Replication Time Control (S3 RTC) related information, 2653// including whether S3 RTC is enabled and the time when all objects and operations 2654// on objects must be replicated. Must be specified together with a Metrics block. 2655type ReplicationTime struct { 2656 2657 // Specifies whether the replication time is enabled. 2658 // 2659 // This member is required. 2660 Status ReplicationTimeStatus 2661 2662 // A container specifying the time by which replication should be complete for all 2663 // objects and operations on objects. 2664 // 2665 // This member is required. 2666 Time *ReplicationTimeValue 2667} 2668 2669// A container specifying the time value for S3 Replication Time Control (S3 RTC) 2670// and replication metrics EventThreshold. 2671type ReplicationTimeValue struct { 2672 2673 // Contains an integer specifying time in minutes. Valid values: 15 minutes. 2674 Minutes int32 2675} 2676 2677// Container for Payer. 2678type RequestPaymentConfiguration struct { 2679 2680 // Specifies who pays for the download and request fees. 2681 // 2682 // This member is required. 2683 Payer Payer 2684} 2685 2686// Container for restore job parameters. 2687type RestoreRequest struct { 2688 2689 // Lifetime of the active copy in days. Do not use with restores that specify 2690 // OutputLocation. The Days element is required for regular restores, and must not 2691 // be provided for select requests. 2692 Days int32 2693 2694 // The optional description for the job. 2695 Description *string 2696 2697 // S3 Glacier related parameters pertaining to this job. Do not use with restores 2698 // that specify OutputLocation. 2699 GlacierJobParameters *GlacierJobParameters 2700 2701 // Describes the location where the restore job's output is stored. 2702 OutputLocation *OutputLocation 2703 2704 // Describes the parameters for Select job types. 2705 SelectParameters *SelectParameters 2706 2707 // Retrieval tier at which the restore will be processed. 2708 Tier Tier 2709 2710 // Type of restore request. 2711 Type RestoreRequestType 2712} 2713 2714// Specifies the redirect behavior and when a redirect is applied. For more 2715// information about routing rules, see Configuring advanced conditional redirects 2716// (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects) 2717// in the Amazon Simple Storage Service Developer Guide. 2718type RoutingRule struct { 2719 2720 // Container for redirect information. You can redirect requests to another host, 2721 // to another page, or with another protocol. In the event of an error, you can 2722 // specify a different error code to return. 2723 // 2724 // This member is required. 2725 Redirect *Redirect 2726 2727 // A container for describing a condition that must be met for the specified 2728 // redirect to apply. For example, 1. If request is for pages in the /docs folder, 2729 // redirect to the /documents folder. 2. If request results in HTTP error 4xx, 2730 // redirect request to another host where you might process the error. 2731 Condition *Condition 2732} 2733 2734// A container for object key name prefix and suffix filtering rules. 2735type S3KeyFilter struct { 2736 2737 // A list of containers for the key-value pair that defines the criteria for the 2738 // filter rule. 2739 FilterRules []FilterRule 2740} 2741 2742// Describes an Amazon S3 location that will receive the results of the restore 2743// request. 2744type S3Location struct { 2745 2746 // The name of the bucket where the restore results will be placed. 2747 // 2748 // This member is required. 2749 BucketName *string 2750 2751 // The prefix that is prepended to the restore results for this request. 2752 // 2753 // This member is required. 2754 Prefix *string 2755 2756 // A list of grants that control access to the staged results. 2757 AccessControlList []Grant 2758 2759 // The canned ACL to apply to the restore results. 2760 CannedACL ObjectCannedACL 2761 2762 // Contains the type of server-side encryption used. 2763 Encryption *Encryption 2764 2765 // The class of storage used to store the restore results. 2766 StorageClass StorageClass 2767 2768 // The tag-set that is applied to the restore results. 2769 Tagging *Tagging 2770 2771 // A list of metadata to store with the restore results in S3. 2772 UserMetadata []MetadataEntry 2773} 2774 2775// Describes the parameters for Select job types. 2776type SelectParameters struct { 2777 2778 // The expression that is used to query the object. 2779 // 2780 // This member is required. 2781 Expression *string 2782 2783 // The type of the provided expression (for example, SQL). 2784 // 2785 // This member is required. 2786 ExpressionType ExpressionType 2787 2788 // Describes the serialization format of the object. 2789 // 2790 // This member is required. 2791 InputSerialization *InputSerialization 2792 2793 // Describes how the results of the Select job are serialized. 2794 // 2795 // This member is required. 2796 OutputSerialization *OutputSerialization 2797} 2798 2799// Describes the default server-side encryption to apply to new objects in the 2800// bucket. If a PUT Object request doesn't specify any server-side encryption, this 2801// default encryption will be applied. For more information, see PUT Bucket 2802// encryption 2803// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) 2804// in the Amazon Simple Storage Service API Reference. 2805type ServerSideEncryptionByDefault struct { 2806 2807 // Server-side encryption algorithm to use for the default encryption. 2808 // 2809 // This member is required. 2810 SSEAlgorithm ServerSideEncryption 2811 2812 // AWS Key Management Service (KMS) customer master key ID to use for the default 2813 // encryption. This parameter is allowed if and only if SSEAlgorithm is set to 2814 // aws:kms. You can specify the key ID or the Amazon Resource Name (ARN) of the 2815 // CMK. However, if you are using encryption with cross-account operations, you 2816 // must use a fully qualified CMK ARN. For more information, see Using encryption 2817 // for cross-account operations 2818 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy). 2819 // For example: 2820 // 2821 // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab 2822 // 2823 // * Key ARN: 2824 // arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab 2825 // 2826 // Amazon 2827 // S3 only supports symmetric CMKs and not asymmetric CMKs. For more information, 2828 // see Using Symmetric and Asymmetric Keys 2829 // (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) 2830 // in the AWS Key Management Service Developer Guide. 2831 KMSMasterKeyID *string 2832} 2833 2834// Specifies the default server-side-encryption configuration. 2835type ServerSideEncryptionConfiguration struct { 2836 2837 // Container for information about a particular server-side encryption 2838 // configuration rule. 2839 // 2840 // This member is required. 2841 Rules []ServerSideEncryptionRule 2842} 2843 2844// Specifies the default server-side encryption configuration. 2845type ServerSideEncryptionRule struct { 2846 2847 // Specifies the default server-side encryption to apply to new objects in the 2848 // bucket. If a PUT Object request doesn't specify any server-side encryption, this 2849 // default encryption will be applied. 2850 ApplyServerSideEncryptionByDefault *ServerSideEncryptionByDefault 2851 2852 // Specifies whether Amazon S3 should use an S3 Bucket Key with server-side 2853 // encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects 2854 // are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 2855 // to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. For more 2856 // information, see Amazon S3 Bucket Keys 2857 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the Amazon 2858 // Simple Storage Service Developer Guide. 2859 BucketKeyEnabled bool 2860} 2861 2862// A container that describes additional filters for identifying the source objects 2863// that you want to replicate. You can choose to enable or disable the replication 2864// of these objects. Currently, Amazon S3 supports only the filter that you can 2865// specify for objects created with server-side encryption using a customer master 2866// key (CMK) stored in AWS Key Management Service (SSE-KMS). 2867type SourceSelectionCriteria struct { 2868 2869 // A filter that you can specify for selections for modifications on replicas. 2870 // Amazon S3 doesn't replicate replica modifications by default. In the latest 2871 // version of replication configuration (when Filter is specified), you can specify 2872 // this element and set the status to Enabled to replicate modifications on 2873 // replicas. If you don't specify the Filter element, Amazon S3 assumes that the 2874 // replication configuration is the earlier version, V1. In the earlier version, 2875 // this element is not allowed 2876 ReplicaModifications *ReplicaModifications 2877 2878 // A container for filter information for the selection of Amazon S3 objects 2879 // encrypted with AWS KMS. If you include SourceSelectionCriteria in the 2880 // replication configuration, this element is required. 2881 SseKmsEncryptedObjects *SseKmsEncryptedObjects 2882} 2883 2884// Specifies the use of SSE-KMS to encrypt delivered inventory reports. 2885type SSEKMS struct { 2886 2887 // Specifies the ID of the AWS Key Management Service (AWS KMS) symmetric customer 2888 // managed customer master key (CMK) to use for encrypting inventory reports. 2889 // 2890 // This member is required. 2891 KeyId *string 2892} 2893 2894// A container for filter information for the selection of S3 objects encrypted 2895// with AWS KMS. 2896type SseKmsEncryptedObjects struct { 2897 2898 // Specifies whether Amazon S3 replicates objects created with server-side 2899 // encryption using a customer master key (CMK) stored in AWS Key Management 2900 // Service. 2901 // 2902 // This member is required. 2903 Status SseKmsEncryptedObjectsStatus 2904} 2905 2906// Specifies the use of SSE-S3 to encrypt delivered inventory reports. 2907type SSES3 struct { 2908} 2909 2910// Specifies data related to access patterns to be collected and made available to 2911// analyze the tradeoffs between different storage classes for an Amazon S3 bucket. 2912type StorageClassAnalysis struct { 2913 2914 // Specifies how data related to the storage class analysis for an Amazon S3 bucket 2915 // should be exported. 2916 DataExport *StorageClassAnalysisDataExport 2917} 2918 2919// Container for data related to the storage class analysis for an Amazon S3 bucket 2920// for export. 2921type StorageClassAnalysisDataExport struct { 2922 2923 // The place to store the data for an analysis. 2924 // 2925 // This member is required. 2926 Destination *AnalyticsExportDestination 2927 2928 // The version of the output schema to use when exporting data. Must be V_1. 2929 // 2930 // This member is required. 2931 OutputSchemaVersion StorageClassAnalysisSchemaVersion 2932} 2933 2934// A container of a key value name pair. 2935type Tag struct { 2936 2937 // Name of the object key. 2938 // 2939 // This member is required. 2940 Key *string 2941 2942 // Value of the tag. 2943 // 2944 // This member is required. 2945 Value *string 2946} 2947 2948// Container for TagSet elements. 2949type Tagging struct { 2950 2951 // A collection for a set of tags 2952 // 2953 // This member is required. 2954 TagSet []Tag 2955} 2956 2957// Container for granting information. 2958type TargetGrant struct { 2959 2960 // Container for the person being granted permissions. 2961 Grantee *Grantee 2962 2963 // Logging permissions assigned to the grantee for the bucket. 2964 Permission BucketLogsPermission 2965} 2966 2967// The S3 Intelligent-Tiering storage class is designed to optimize storage costs 2968// by automatically moving data to the most cost-effective storage access tier, 2969// without additional operational overhead. 2970type Tiering struct { 2971 2972 // S3 Intelligent-Tiering access tier. See Storage class for automatically 2973 // optimizing frequently and infrequently accessed objects 2974 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) 2975 // for a list of access tiers in the S3 Intelligent-Tiering storage class. 2976 // 2977 // This member is required. 2978 AccessTier IntelligentTieringAccessTier 2979 2980 // The number of consecutive days of no access after which an object will be 2981 // eligible to be transitioned to the corresponding tier. The minimum number of 2982 // days specified for Archive Access tier must be at least 90 days and Deep Archive 2983 // Access tier must be at least 180 days. The maximum can be up to 2 years (730 2984 // days). 2985 // 2986 // This member is required. 2987 Days int32 2988} 2989 2990// A container for specifying the configuration for publication of messages to an 2991// Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 detects 2992// specified events. 2993type TopicConfiguration struct { 2994 2995 // The Amazon S3 bucket event about which to send notifications. For more 2996 // information, see Supported Event Types 2997 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the 2998 // Amazon Simple Storage Service Developer Guide. 2999 // 3000 // This member is required. 3001 Events []Event 3002 3003 // The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 3004 // publishes a message when it detects events of the specified type. 3005 // 3006 // This member is required. 3007 TopicArn *string 3008 3009 // Specifies object key name filtering rules. For information about key name 3010 // filtering, see Configuring Event Notifications 3011 // (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the 3012 // Amazon Simple Storage Service Developer Guide. 3013 Filter *NotificationConfigurationFilter 3014 3015 // An optional unique identifier for configurations in a notification 3016 // configuration. If you don't provide one, Amazon S3 will assign an ID. 3017 Id *string 3018} 3019 3020// Specifies when an object transitions to a specified storage class. For more 3021// information about Amazon S3 lifecycle configuration rules, see Transitioning 3022// Objects Using Amazon S3 Lifecycle 3023// (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) 3024// in the Amazon Simple Storage Service Developer Guide. 3025type Transition struct { 3026 3027 // Indicates when objects are transitioned to the specified storage class. The date 3028 // value must be in ISO 8601 format. The time is always midnight UTC. 3029 Date *time.Time 3030 3031 // Indicates the number of days after creation when objects are transitioned to the 3032 // specified storage class. The value must be a positive integer. 3033 Days int32 3034 3035 // The storage class to which you want the object to transition. 3036 StorageClass TransitionStorageClass 3037} 3038 3039// Describes the versioning state of an Amazon S3 bucket. For more information, see 3040// PUT Bucket versioning 3041// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) 3042// in the Amazon Simple Storage Service API Reference. 3043type VersioningConfiguration struct { 3044 3045 // Specifies whether MFA delete is enabled in the bucket versioning configuration. 3046 // This element is only returned if the bucket has been configured with MFA delete. 3047 // If the bucket has never been so configured, this element is not returned. 3048 MFADelete MFADelete 3049 3050 // The versioning state of the bucket. 3051 Status BucketVersioningStatus 3052} 3053 3054// Specifies website configuration parameters for an Amazon S3 bucket. 3055type WebsiteConfiguration struct { 3056 3057 // The name of the error document for the website. 3058 ErrorDocument *ErrorDocument 3059 3060 // The name of the index document for the website. 3061 IndexDocument *IndexDocument 3062 3063 // The redirect behavior for every request to this bucket's website endpoint. If 3064 // you specify this property, you can't specify any other property. 3065 RedirectAllRequestsTo *RedirectAllRequestsTo 3066 3067 // Rules that define when a redirect is applied and the redirect behavior. 3068 RoutingRules []RoutingRule 3069} 3070 3071// UnknownUnionMember is returned when a union member is returned over the wire, 3072// but has an unknown tag. 3073type UnknownUnionMember struct { 3074 Tag string 3075 Value []byte 3076} 3077 3078func (*UnknownUnionMember) isAnalyticsFilter() {} 3079func (*UnknownUnionMember) isLifecycleRuleFilter() {} 3080func (*UnknownUnionMember) isMetricsFilter() {} 3081func (*UnknownUnionMember) isReplicationRuleFilter() {} 3082