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