💾 Archived View for gmi.noulin.net › gitRepositories › git-off › file › src › node_modules › aws-sdk… captured on 2023-01-29 at 11:53:54. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

git-off

Log

Files

Refs

README

s3.d.ts (122788B)

     1 import {Request} from '../lib/request';
     2 import {Response} from '../lib/response';
     3 import {AWSError} from '../lib/error';
     4 import {S3Customizations} from '../lib/services/s3';
     5 import {ServiceConfigurationOptions} from '../lib/service';
     6 import {ConfigBase as Config} from '../lib/config';
     7 import {UseDualstackConfigOptions} from '../lib/config_use_dualstack';
     8 interface Blob {}
     9 declare class S3 extends S3Customizations {
    10   /**
    11    * Constructs a service object. This object has one method for each API operation.
    12    */
    13   constructor(options?: S3.Types.ClientConfiguration)
    14   config: Config & S3.Types.ClientConfiguration;
    15   /**
    16    * Aborts a multipart upload.To verify that all parts have been removed, so you don't get charged for the part storage, you should call the List Parts operation and ensure the parts list is empty.
    17    */
    18   abortMultipartUpload(params: S3.Types.AbortMultipartUploadRequest, callback?: (err: AWSError, data: S3.Types.AbortMultipartUploadOutput) => void): Request<S3.Types.AbortMultipartUploadOutput, AWSError>;
    19   /**
    20    * Aborts a multipart upload.To verify that all parts have been removed, so you don't get charged for the part storage, you should call the List Parts operation and ensure the parts list is empty.
    21    */
    22   abortMultipartUpload(callback?: (err: AWSError, data: S3.Types.AbortMultipartUploadOutput) => void): Request<S3.Types.AbortMultipartUploadOutput, AWSError>;
    23   /**
    24    * Completes a multipart upload by assembling previously uploaded parts.
    25    */
    26   completeMultipartUpload(params: S3.Types.CompleteMultipartUploadRequest, callback?: (err: AWSError, data: S3.Types.CompleteMultipartUploadOutput) => void): Request<S3.Types.CompleteMultipartUploadOutput, AWSError>;
    27   /**
    28    * Completes a multipart upload by assembling previously uploaded parts.
    29    */
    30   completeMultipartUpload(callback?: (err: AWSError, data: S3.Types.CompleteMultipartUploadOutput) => void): Request<S3.Types.CompleteMultipartUploadOutput, AWSError>;
    31   /**
    32    * Creates a copy of an object that is already stored in Amazon S3.
    33    */
    34   copyObject(params: S3.Types.CopyObjectRequest, callback?: (err: AWSError, data: S3.Types.CopyObjectOutput) => void): Request<S3.Types.CopyObjectOutput, AWSError>;
    35   /**
    36    * Creates a copy of an object that is already stored in Amazon S3.
    37    */
    38   copyObject(callback?: (err: AWSError, data: S3.Types.CopyObjectOutput) => void): Request<S3.Types.CopyObjectOutput, AWSError>;
    39   /**
    40    * Creates a new bucket.
    41    */
    42   createBucket(params: S3.Types.CreateBucketRequest, callback?: (err: AWSError, data: S3.Types.CreateBucketOutput) => void): Request<S3.Types.CreateBucketOutput, AWSError>;
    43   /**
    44    * Creates a new bucket.
    45    */
    46   createBucket(callback?: (err: AWSError, data: S3.Types.CreateBucketOutput) => void): Request<S3.Types.CreateBucketOutput, AWSError>;
    47   /**
    48    * Initiates a multipart upload and returns an upload ID.Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
    49    */
    50   createMultipartUpload(params: S3.Types.CreateMultipartUploadRequest, callback?: (err: AWSError, data: S3.Types.CreateMultipartUploadOutput) => void): Request<S3.Types.CreateMultipartUploadOutput, AWSError>;
    51   /**
    52    * Initiates a multipart upload and returns an upload ID.Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
    53    */
    54   createMultipartUpload(callback?: (err: AWSError, data: S3.Types.CreateMultipartUploadOutput) => void): Request<S3.Types.CreateMultipartUploadOutput, AWSError>;
    55   /**
    56    * Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.
    57    */
    58   deleteBucket(params: S3.Types.DeleteBucketRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    59   /**
    60    * Deletes the bucket. All objects (including all object versions and Delete Markers) in the bucket must be deleted before the bucket itself can be deleted.
    61    */
    62   deleteBucket(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    63   /**
    64    * Deletes the cors configuration information set for the bucket.
    65    */
    66   deleteBucketCors(params: S3.Types.DeleteBucketCorsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    67   /**
    68    * Deletes the cors configuration information set for the bucket.
    69    */
    70   deleteBucketCors(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    71   /**
    72    * Deletes the lifecycle configuration from the bucket.
    73    */
    74   deleteBucketLifecycle(params: S3.Types.DeleteBucketLifecycleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    75   /**
    76    * Deletes the lifecycle configuration from the bucket.
    77    */
    78   deleteBucketLifecycle(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    79   /**
    80    * Deletes the policy from the bucket.
    81    */
    82   deleteBucketPolicy(params: S3.Types.DeleteBucketPolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    83   /**
    84    * Deletes the policy from the bucket.
    85    */
    86   deleteBucketPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    87   /**
    88    * Deletes the replication configuration from the bucket.
    89    */
    90   deleteBucketReplication(params: S3.Types.DeleteBucketReplicationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    91   /**
    92    * Deletes the replication configuration from the bucket.
    93    */
    94   deleteBucketReplication(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    95   /**
    96    * Deletes the tags from the bucket.
    97    */
    98   deleteBucketTagging(params: S3.Types.DeleteBucketTaggingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
    99   /**
   100    * Deletes the tags from the bucket.
   101    */
   102   deleteBucketTagging(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   103   /**
   104    * This operation removes the website configuration from the bucket.
   105    */
   106   deleteBucketWebsite(params: S3.Types.DeleteBucketWebsiteRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   107   /**
   108    * This operation removes the website configuration from the bucket.
   109    */
   110   deleteBucketWebsite(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   111   /**
   112    * Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.
   113    */
   114   deleteObject(params: S3.Types.DeleteObjectRequest, callback?: (err: AWSError, data: S3.Types.DeleteObjectOutput) => void): Request<S3.Types.DeleteObjectOutput, AWSError>;
   115   /**
   116    * Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects.
   117    */
   118   deleteObject(callback?: (err: AWSError, data: S3.Types.DeleteObjectOutput) => void): Request<S3.Types.DeleteObjectOutput, AWSError>;
   119   /**
   120    * This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.
   121    */
   122   deleteObjects(params: S3.Types.DeleteObjectsRequest, callback?: (err: AWSError, data: S3.Types.DeleteObjectsOutput) => void): Request<S3.Types.DeleteObjectsOutput, AWSError>;
   123   /**
   124    * This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys.
   125    */
   126   deleteObjects(callback?: (err: AWSError, data: S3.Types.DeleteObjectsOutput) => void): Request<S3.Types.DeleteObjectsOutput, AWSError>;
   127   /**
   128    * Returns the accelerate configuration of a bucket.
   129    */
   130   getBucketAccelerateConfiguration(params: S3.Types.GetBucketAccelerateConfigurationRequest, callback?: (err: AWSError, data: S3.Types.GetBucketAccelerateConfigurationOutput) => void): Request<S3.Types.GetBucketAccelerateConfigurationOutput, AWSError>;
   131   /**
   132    * Returns the accelerate configuration of a bucket.
   133    */
   134   getBucketAccelerateConfiguration(callback?: (err: AWSError, data: S3.Types.GetBucketAccelerateConfigurationOutput) => void): Request<S3.Types.GetBucketAccelerateConfigurationOutput, AWSError>;
   135   /**
   136    * Gets the access control policy for the bucket.
   137    */
   138   getBucketAcl(params: S3.Types.GetBucketAclRequest, callback?: (err: AWSError, data: S3.Types.GetBucketAclOutput) => void): Request<S3.Types.GetBucketAclOutput, AWSError>;
   139   /**
   140    * Gets the access control policy for the bucket.
   141    */
   142   getBucketAcl(callback?: (err: AWSError, data: S3.Types.GetBucketAclOutput) => void): Request<S3.Types.GetBucketAclOutput, AWSError>;
   143   /**
   144    * Returns the cors configuration for the bucket.
   145    */
   146   getBucketCors(params: S3.Types.GetBucketCorsRequest, callback?: (err: AWSError, data: S3.Types.GetBucketCorsOutput) => void): Request<S3.Types.GetBucketCorsOutput, AWSError>;
   147   /**
   148    * Returns the cors configuration for the bucket.
   149    */
   150   getBucketCors(callback?: (err: AWSError, data: S3.Types.GetBucketCorsOutput) => void): Request<S3.Types.GetBucketCorsOutput, AWSError>;
   151   /**
   152    * Deprecated, see the GetBucketLifecycleConfiguration operation.
   153    */
   154   getBucketLifecycle(params: S3.Types.GetBucketLifecycleRequest, callback?: (err: AWSError, data: S3.Types.GetBucketLifecycleOutput) => void): Request<S3.Types.GetBucketLifecycleOutput, AWSError>;
   155   /**
   156    * Deprecated, see the GetBucketLifecycleConfiguration operation.
   157    */
   158   getBucketLifecycle(callback?: (err: AWSError, data: S3.Types.GetBucketLifecycleOutput) => void): Request<S3.Types.GetBucketLifecycleOutput, AWSError>;
   159   /**
   160    * Returns the lifecycle configuration information set on the bucket.
   161    */
   162   getBucketLifecycleConfiguration(params: S3.Types.GetBucketLifecycleConfigurationRequest, callback?: (err: AWSError, data: S3.Types.GetBucketLifecycleConfigurationOutput) => void): Request<S3.Types.GetBucketLifecycleConfigurationOutput, AWSError>;
   163   /**
   164    * Returns the lifecycle configuration information set on the bucket.
   165    */
   166   getBucketLifecycleConfiguration(callback?: (err: AWSError, data: S3.Types.GetBucketLifecycleConfigurationOutput) => void): Request<S3.Types.GetBucketLifecycleConfigurationOutput, AWSError>;
   167   /**
   168    * Returns the region the bucket resides in.
   169    */
   170   getBucketLocation(params: S3.Types.GetBucketLocationRequest, callback?: (err: AWSError, data: S3.Types.GetBucketLocationOutput) => void): Request<S3.Types.GetBucketLocationOutput, AWSError>;
   171   /**
   172    * Returns the region the bucket resides in.
   173    */
   174   getBucketLocation(callback?: (err: AWSError, data: S3.Types.GetBucketLocationOutput) => void): Request<S3.Types.GetBucketLocationOutput, AWSError>;
   175   /**
   176    * Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.
   177    */
   178   getBucketLogging(params: S3.Types.GetBucketLoggingRequest, callback?: (err: AWSError, data: S3.Types.GetBucketLoggingOutput) => void): Request<S3.Types.GetBucketLoggingOutput, AWSError>;
   179   /**
   180    * Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.
   181    */
   182   getBucketLogging(callback?: (err: AWSError, data: S3.Types.GetBucketLoggingOutput) => void): Request<S3.Types.GetBucketLoggingOutput, AWSError>;
   183   /**
   184    * Deprecated, see the GetBucketNotificationConfiguration operation.
   185    */
   186   getBucketNotification(params: S3.Types.GetBucketNotificationConfigurationRequest, callback?: (err: AWSError, data: S3.Types.NotificationConfigurationDeprecated) => void): Request<S3.Types.NotificationConfigurationDeprecated, AWSError>;
   187   /**
   188    * Deprecated, see the GetBucketNotificationConfiguration operation.
   189    */
   190   getBucketNotification(callback?: (err: AWSError, data: S3.Types.NotificationConfigurationDeprecated) => void): Request<S3.Types.NotificationConfigurationDeprecated, AWSError>;
   191   /**
   192    * Returns the notification configuration of a bucket.
   193    */
   194   getBucketNotificationConfiguration(params: S3.Types.GetBucketNotificationConfigurationRequest, callback?: (err: AWSError, data: S3.Types.NotificationConfiguration) => void): Request<S3.Types.NotificationConfiguration, AWSError>;
   195   /**
   196    * Returns the notification configuration of a bucket.
   197    */
   198   getBucketNotificationConfiguration(callback?: (err: AWSError, data: S3.Types.NotificationConfiguration) => void): Request<S3.Types.NotificationConfiguration, AWSError>;
   199   /**
   200    * Returns the policy of a specified bucket.
   201    */
   202   getBucketPolicy(params: S3.Types.GetBucketPolicyRequest, callback?: (err: AWSError, data: S3.Types.GetBucketPolicyOutput) => void): Request<S3.Types.GetBucketPolicyOutput, AWSError>;
   203   /**
   204    * Returns the policy of a specified bucket.
   205    */
   206   getBucketPolicy(callback?: (err: AWSError, data: S3.Types.GetBucketPolicyOutput) => void): Request<S3.Types.GetBucketPolicyOutput, AWSError>;
   207   /**
   208    * Returns the replication configuration of a bucket.
   209    */
   210   getBucketReplication(params: S3.Types.GetBucketReplicationRequest, callback?: (err: AWSError, data: S3.Types.GetBucketReplicationOutput) => void): Request<S3.Types.GetBucketReplicationOutput, AWSError>;
   211   /**
   212    * Returns the replication configuration of a bucket.
   213    */
   214   getBucketReplication(callback?: (err: AWSError, data: S3.Types.GetBucketReplicationOutput) => void): Request<S3.Types.GetBucketReplicationOutput, AWSError>;
   215   /**
   216    * Returns the request payment configuration of a bucket.
   217    */
   218   getBucketRequestPayment(params: S3.Types.GetBucketRequestPaymentRequest, callback?: (err: AWSError, data: S3.Types.GetBucketRequestPaymentOutput) => void): Request<S3.Types.GetBucketRequestPaymentOutput, AWSError>;
   219   /**
   220    * Returns the request payment configuration of a bucket.
   221    */
   222   getBucketRequestPayment(callback?: (err: AWSError, data: S3.Types.GetBucketRequestPaymentOutput) => void): Request<S3.Types.GetBucketRequestPaymentOutput, AWSError>;
   223   /**
   224    * Returns the tag set associated with the bucket.
   225    */
   226   getBucketTagging(params: S3.Types.GetBucketTaggingRequest, callback?: (err: AWSError, data: S3.Types.GetBucketTaggingOutput) => void): Request<S3.Types.GetBucketTaggingOutput, AWSError>;
   227   /**
   228    * Returns the tag set associated with the bucket.
   229    */
   230   getBucketTagging(callback?: (err: AWSError, data: S3.Types.GetBucketTaggingOutput) => void): Request<S3.Types.GetBucketTaggingOutput, AWSError>;
   231   /**
   232    * Returns the versioning state of a bucket.
   233    */
   234   getBucketVersioning(params: S3.Types.GetBucketVersioningRequest, callback?: (err: AWSError, data: S3.Types.GetBucketVersioningOutput) => void): Request<S3.Types.GetBucketVersioningOutput, AWSError>;
   235   /**
   236    * Returns the versioning state of a bucket.
   237    */
   238   getBucketVersioning(callback?: (err: AWSError, data: S3.Types.GetBucketVersioningOutput) => void): Request<S3.Types.GetBucketVersioningOutput, AWSError>;
   239   /**
   240    * Returns the website configuration for a bucket.
   241    */
   242   getBucketWebsite(params: S3.Types.GetBucketWebsiteRequest, callback?: (err: AWSError, data: S3.Types.GetBucketWebsiteOutput) => void): Request<S3.Types.GetBucketWebsiteOutput, AWSError>;
   243   /**
   244    * Returns the website configuration for a bucket.
   245    */
   246   getBucketWebsite(callback?: (err: AWSError, data: S3.Types.GetBucketWebsiteOutput) => void): Request<S3.Types.GetBucketWebsiteOutput, AWSError>;
   247   /**
   248    * Retrieves objects from Amazon S3.
   249    */
   250   getObject(params: S3.Types.GetObjectRequest, callback?: (err: AWSError, data: S3.Types.GetObjectOutput) => void): Request<S3.Types.GetObjectOutput, AWSError>;
   251   /**
   252    * Retrieves objects from Amazon S3.
   253    */
   254   getObject(callback?: (err: AWSError, data: S3.Types.GetObjectOutput) => void): Request<S3.Types.GetObjectOutput, AWSError>;
   255   /**
   256    * Returns the access control list (ACL) of an object.
   257    */
   258   getObjectAcl(params: S3.Types.GetObjectAclRequest, callback?: (err: AWSError, data: S3.Types.GetObjectAclOutput) => void): Request<S3.Types.GetObjectAclOutput, AWSError>;
   259   /**
   260    * Returns the access control list (ACL) of an object.
   261    */
   262   getObjectAcl(callback?: (err: AWSError, data: S3.Types.GetObjectAclOutput) => void): Request<S3.Types.GetObjectAclOutput, AWSError>;
   263   /**
   264    * Return torrent files from a bucket.
   265    */
   266   getObjectTorrent(params: S3.Types.GetObjectTorrentRequest, callback?: (err: AWSError, data: S3.Types.GetObjectTorrentOutput) => void): Request<S3.Types.GetObjectTorrentOutput, AWSError>;
   267   /**
   268    * Return torrent files from a bucket.
   269    */
   270   getObjectTorrent(callback?: (err: AWSError, data: S3.Types.GetObjectTorrentOutput) => void): Request<S3.Types.GetObjectTorrentOutput, AWSError>;
   271   /**
   272    * This operation is useful to determine if a bucket exists and you have permission to access it.
   273    */
   274   headBucket(params: S3.Types.HeadBucketRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   275   /**
   276    * This operation is useful to determine if a bucket exists and you have permission to access it.
   277    */
   278   headBucket(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   279   /**
   280    * The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.
   281    */
   282   headObject(params: S3.Types.HeadObjectRequest, callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request<S3.Types.HeadObjectOutput, AWSError>;
   283   /**
   284    * The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.
   285    */
   286   headObject(callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request<S3.Types.HeadObjectOutput, AWSError>;
   287   /**
   288    * Returns a list of all buckets owned by the authenticated sender of the request.
   289    */
   290   listBuckets(callback?: (err: AWSError, data: S3.Types.ListBucketsOutput) => void): Request<S3.Types.ListBucketsOutput, AWSError>;
   291   /**
   292    * This operation lists in-progress multipart uploads.
   293    */
   294   listMultipartUploads(params: S3.Types.ListMultipartUploadsRequest, callback?: (err: AWSError, data: S3.Types.ListMultipartUploadsOutput) => void): Request<S3.Types.ListMultipartUploadsOutput, AWSError>;
   295   /**
   296    * This operation lists in-progress multipart uploads.
   297    */
   298   listMultipartUploads(callback?: (err: AWSError, data: S3.Types.ListMultipartUploadsOutput) => void): Request<S3.Types.ListMultipartUploadsOutput, AWSError>;
   299   /**
   300    * Returns metadata about all of the versions of objects in a bucket.
   301    */
   302   listObjectVersions(params: S3.Types.ListObjectVersionsRequest, callback?: (err: AWSError, data: S3.Types.ListObjectVersionsOutput) => void): Request<S3.Types.ListObjectVersionsOutput, AWSError>;
   303   /**
   304    * Returns metadata about all of the versions of objects in a bucket.
   305    */
   306   listObjectVersions(callback?: (err: AWSError, data: S3.Types.ListObjectVersionsOutput) => void): Request<S3.Types.ListObjectVersionsOutput, AWSError>;
   307   /**
   308    * Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket.
   309    */
   310   listObjects(params: S3.Types.ListObjectsRequest, callback?: (err: AWSError, data: S3.Types.ListObjectsOutput) => void): Request<S3.Types.ListObjectsOutput, AWSError>;
   311   /**
   312    * Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket.
   313    */
   314   listObjects(callback?: (err: AWSError, data: S3.Types.ListObjectsOutput) => void): Request<S3.Types.ListObjectsOutput, AWSError>;
   315   /**
   316    * Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. Note: ListObjectsV2 is the revised List Objects API and we recommend you use this revised API for new application development.
   317    */
   318   listObjectsV2(params: S3.Types.ListObjectsV2Request, callback?: (err: AWSError, data: S3.Types.ListObjectsV2Output) => void): Request<S3.Types.ListObjectsV2Output, AWSError>;
   319   /**
   320    * Returns some or all (up to 1000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. Note: ListObjectsV2 is the revised List Objects API and we recommend you use this revised API for new application development.
   321    */
   322   listObjectsV2(callback?: (err: AWSError, data: S3.Types.ListObjectsV2Output) => void): Request<S3.Types.ListObjectsV2Output, AWSError>;
   323   /**
   324    * Lists the parts that have been uploaded for a specific multipart upload.
   325    */
   326   listParts(params: S3.Types.ListPartsRequest, callback?: (err: AWSError, data: S3.Types.ListPartsOutput) => void): Request<S3.Types.ListPartsOutput, AWSError>;
   327   /**
   328    * Lists the parts that have been uploaded for a specific multipart upload.
   329    */
   330   listParts(callback?: (err: AWSError, data: S3.Types.ListPartsOutput) => void): Request<S3.Types.ListPartsOutput, AWSError>;
   331   /**
   332    * Sets the accelerate configuration of an existing bucket.
   333    */
   334   putBucketAccelerateConfiguration(params: S3.Types.PutBucketAccelerateConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   335   /**
   336    * Sets the accelerate configuration of an existing bucket.
   337    */
   338   putBucketAccelerateConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   339   /**
   340    * Sets the permissions on a bucket using access control lists (ACL).
   341    */
   342   putBucketAcl(params: S3.Types.PutBucketAclRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   343   /**
   344    * Sets the permissions on a bucket using access control lists (ACL).
   345    */
   346   putBucketAcl(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   347   /**
   348    * Sets the cors configuration for a bucket.
   349    */
   350   putBucketCors(params: S3.Types.PutBucketCorsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   351   /**
   352    * Sets the cors configuration for a bucket.
   353    */
   354   putBucketCors(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   355   /**
   356    * Deprecated, see the PutBucketLifecycleConfiguration operation.
   357    */
   358   putBucketLifecycle(params: S3.Types.PutBucketLifecycleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   359   /**
   360    * Deprecated, see the PutBucketLifecycleConfiguration operation.
   361    */
   362   putBucketLifecycle(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   363   /**
   364    * Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it.
   365    */
   366   putBucketLifecycleConfiguration(params: S3.Types.PutBucketLifecycleConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   367   /**
   368    * Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it.
   369    */
   370   putBucketLifecycleConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   371   /**
   372    * Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. To set the logging status of a bucket, you must be the bucket owner.
   373    */
   374   putBucketLogging(params: S3.Types.PutBucketLoggingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   375   /**
   376    * Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. To set the logging status of a bucket, you must be the bucket owner.
   377    */
   378   putBucketLogging(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   379   /**
   380    * Deprecated, see the PutBucketNotificationConfiguraiton operation.
   381    */
   382   putBucketNotification(params: S3.Types.PutBucketNotificationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   383   /**
   384    * Deprecated, see the PutBucketNotificationConfiguraiton operation.
   385    */
   386   putBucketNotification(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   387   /**
   388    * Enables notifications of specified events for a bucket.
   389    */
   390   putBucketNotificationConfiguration(params: S3.Types.PutBucketNotificationConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   391   /**
   392    * Enables notifications of specified events for a bucket.
   393    */
   394   putBucketNotificationConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   395   /**
   396    * Replaces a policy on a bucket. If the bucket already has a policy, the one in this request completely replaces it.
   397    */
   398   putBucketPolicy(params: S3.Types.PutBucketPolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   399   /**
   400    * Replaces a policy on a bucket. If the bucket already has a policy, the one in this request completely replaces it.
   401    */
   402   putBucketPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   403   /**
   404    * Creates a new replication configuration (or replaces an existing one, if present).
   405    */
   406   putBucketReplication(params: S3.Types.PutBucketReplicationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   407   /**
   408    * Creates a new replication configuration (or replaces an existing one, if present).
   409    */
   410   putBucketReplication(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   411   /**
   412    * Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. Documentation on requester pays buckets can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html
   413    */
   414   putBucketRequestPayment(params: S3.Types.PutBucketRequestPaymentRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   415   /**
   416    * Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. Documentation on requester pays buckets can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html
   417    */
   418   putBucketRequestPayment(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   419   /**
   420    * Sets the tags for a bucket.
   421    */
   422   putBucketTagging(params: S3.Types.PutBucketTaggingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   423   /**
   424    * Sets the tags for a bucket.
   425    */
   426   putBucketTagging(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   427   /**
   428    * Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.
   429    */
   430   putBucketVersioning(params: S3.Types.PutBucketVersioningRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   431   /**
   432    * Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.
   433    */
   434   putBucketVersioning(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   435   /**
   436    * Set the website configuration for a bucket.
   437    */
   438   putBucketWebsite(params: S3.Types.PutBucketWebsiteRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   439   /**
   440    * Set the website configuration for a bucket.
   441    */
   442   putBucketWebsite(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   443   /**
   444    * Adds an object to a bucket.
   445    */
   446   putObject(params: S3.Types.PutObjectRequest, callback?: (err: AWSError, data: S3.Types.PutObjectOutput) => void): Request<S3.Types.PutObjectOutput, AWSError>;
   447   /**
   448    * Adds an object to a bucket.
   449    */
   450   putObject(callback?: (err: AWSError, data: S3.Types.PutObjectOutput) => void): Request<S3.Types.PutObjectOutput, AWSError>;
   451   /**
   452    * uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket
   453    */
   454   putObjectAcl(params: S3.Types.PutObjectAclRequest, callback?: (err: AWSError, data: S3.Types.PutObjectAclOutput) => void): Request<S3.Types.PutObjectAclOutput, AWSError>;
   455   /**
   456    * uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket
   457    */
   458   putObjectAcl(callback?: (err: AWSError, data: S3.Types.PutObjectAclOutput) => void): Request<S3.Types.PutObjectAclOutput, AWSError>;
   459   /**
   460    * Restores an archived copy of an object back into Amazon S3
   461    */
   462   restoreObject(params: S3.Types.RestoreObjectRequest, callback?: (err: AWSError, data: S3.Types.RestoreObjectOutput) => void): Request<S3.Types.RestoreObjectOutput, AWSError>;
   463   /**
   464    * Restores an archived copy of an object back into Amazon S3
   465    */
   466   restoreObject(callback?: (err: AWSError, data: S3.Types.RestoreObjectOutput) => void): Request<S3.Types.RestoreObjectOutput, AWSError>;
   467   /**
   468    * Uploads a part in a multipart upload.Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
   469    */
   470   uploadPart(params: S3.Types.UploadPartRequest, callback?: (err: AWSError, data: S3.Types.UploadPartOutput) => void): Request<S3.Types.UploadPartOutput, AWSError>;
   471   /**
   472    * Uploads a part in a multipart upload.Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.
   473    */
   474   uploadPart(callback?: (err: AWSError, data: S3.Types.UploadPartOutput) => void): Request<S3.Types.UploadPartOutput, AWSError>;
   475   /**
   476    * Uploads a part by copying data from an existing object as data source.
   477    */
   478   uploadPartCopy(params: S3.Types.UploadPartCopyRequest, callback?: (err: AWSError, data: S3.Types.UploadPartCopyOutput) => void): Request<S3.Types.UploadPartCopyOutput, AWSError>;
   479   /**
   480    * Uploads a part by copying data from an existing object as data source.
   481    */
   482   uploadPartCopy(callback?: (err: AWSError, data: S3.Types.UploadPartCopyOutput) => void): Request<S3.Types.UploadPartCopyOutput, AWSError>;
   483   /**
   484    * Waits for the bucketExists state by periodically calling the underlying S3.headBucketoperation every 5 seconds (at most 20 times).
   485    */
   486   waitFor(state: "bucketExists", params: S3.Types.HeadBucketRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   487   /**
   488    * Waits for the bucketExists state by periodically calling the underlying S3.headBucketoperation every 5 seconds (at most 20 times).
   489    */
   490   waitFor(state: "bucketExists", callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   491   /**
   492    * Waits for the bucketNotExists state by periodically calling the underlying S3.headBucketoperation every 5 seconds (at most 20 times).
   493    */
   494   waitFor(state: "bucketNotExists", params: S3.Types.HeadBucketRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   495   /**
   496    * Waits for the bucketNotExists state by periodically calling the underlying S3.headBucketoperation every 5 seconds (at most 20 times).
   497    */
   498   waitFor(state: "bucketNotExists", callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   499   /**
   500    * Waits for the objectExists state by periodically calling the underlying S3.headObjectoperation every 5 seconds (at most 20 times).
   501    */
   502   waitFor(state: "objectExists", params: S3.Types.HeadObjectRequest, callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request<S3.Types.HeadObjectOutput, AWSError>;
   503   /**
   504    * Waits for the objectExists state by periodically calling the underlying S3.headObjectoperation every 5 seconds (at most 20 times).
   505    */
   506   waitFor(state: "objectExists", callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request<S3.Types.HeadObjectOutput, AWSError>;
   507   /**
   508    * Waits for the objectNotExists state by periodically calling the underlying S3.headObjectoperation every 5 seconds (at most 20 times).
   509    */
   510   waitFor(state: "objectNotExists", params: S3.Types.HeadObjectRequest, callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request<S3.Types.HeadObjectOutput, AWSError>;
   511   /**
   512    * Waits for the objectNotExists state by periodically calling the underlying S3.headObjectoperation every 5 seconds (at most 20 times).
   513    */
   514   waitFor(state: "objectNotExists", callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request<S3.Types.HeadObjectOutput, AWSError>;
   515 }
   516 declare namespace S3.Types {
   517   export type AbortDate = Date;
   518   export interface AbortIncompleteMultipartUpload {
   519     /**
   520      * Indicates the number of days that must pass since initiation for Lifecycle to abort an Incomplete Multipart Upload.
   521      */
   522     DaysAfterInitiation?: DaysAfterInitiation;
   523   }
   524   export interface AbortMultipartUploadOutput {
   525     RequestCharged?: RequestCharged;
   526   }
   527   export interface AbortMultipartUploadRequest {
   528     Bucket: BucketName;
   529     Key: ObjectKey;
   530     UploadId: MultipartUploadId;
   531     RequestPayer?: RequestPayer;
   532   }
   533   export type AbortRuleId = string;
   534   export interface AccelerateConfiguration {
   535     /**
   536      * The accelerate configuration of the bucket.
   537      */
   538     Status?: BucketAccelerateStatus;
   539   }
   540   export type AcceptRanges = string;
   541   export interface AccessControlPolicy {
   542     /**
   543      * A list of grants.
   544      */
   545     Grants?: Grants;
   546     Owner?: Owner;
   547   }
   548   export type AllowedHeader = string;
   549   export type AllowedHeaders = AllowedHeader[];
   550   export type AllowedMethod = string;
   551   export type AllowedMethods = AllowedMethod[];
   552   export type AllowedOrigin = string;
   553   export type AllowedOrigins = AllowedOrigin[];
   554   export type Body = Buffer|Uint8Array|Blob|string;
   555   export interface Bucket {
   556     /**
   557      * The name of the bucket.
   558      */
   559     Name?: BucketName;
   560     /**
   561      * Date the bucket was created.
   562      */
   563     CreationDate?: CreationDate;
   564   }
   565   export type BucketAccelerateStatus = "Enabled"|"Suspended"|string;
   566   export type BucketCannedACL = "private"|"public-read"|"public-read-write"|"authenticated-read"|string;
   567   export interface BucketLifecycleConfiguration {
   568     Rules: LifecycleRules;
   569   }
   570   export type BucketLocationConstraint = "EU"|"eu-west-1"|"us-west-1"|"us-west-2"|"ap-south-1"|"ap-southeast-1"|"ap-southeast-2"|"ap-northeast-1"|"sa-east-1"|"cn-north-1"|"eu-central-1"|string;
   571   export interface BucketLoggingStatus {
   572     LoggingEnabled?: LoggingEnabled;
   573   }
   574   export type BucketLogsPermission = "FULL_CONTROL"|"READ"|"WRITE"|string;
   575   export type BucketName = string;
   576   export type BucketVersioningStatus = "Enabled"|"Suspended"|string;
   577   export type Buckets = Bucket[];
   578   export interface CORSConfiguration {
   579     CORSRules: CORSRules;
   580   }
   581   export interface CORSRule {
   582     /**
   583      * Specifies which headers are allowed in a pre-flight OPTIONS request.
   584      */
   585     AllowedHeaders?: AllowedHeaders;
   586     /**
   587      * Identifies HTTP methods that the domain/origin specified in the rule is allowed to execute.
   588      */
   589     AllowedMethods: AllowedMethods;
   590     /**
   591      * One or more origins you want customers to be able to access the bucket from.
   592      */
   593     AllowedOrigins: AllowedOrigins;
   594     /**
   595      * One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).
   596      */
   597     ExposeHeaders?: ExposeHeaders;
   598     /**
   599      * The time in seconds that your browser is to cache the preflight response for the specified resource.
   600      */
   601     MaxAgeSeconds?: MaxAgeSeconds;
   602   }
   603   export type CORSRules = CORSRule[];
   604   export type CacheControl = string;
   605   export type CloudFunction = string;
   606   export interface CloudFunctionConfiguration {
   607     Id?: NotificationId;
   608     Event?: Event;
   609     Events?: EventList;
   610     CloudFunction?: CloudFunction;
   611     InvocationRole?: CloudFunctionInvocationRole;
   612   }
   613   export type CloudFunctionInvocationRole = string;
   614   export type Code = string;
   615   export interface CommonPrefix {
   616     Prefix?: Prefix;
   617   }
   618   export type CommonPrefixList = CommonPrefix[];
   619   export interface CompleteMultipartUploadOutput {
   620     Location?: Location;
   621     Bucket?: BucketName;
   622     Key?: ObjectKey;
   623     /**
   624      * If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.
   625      */
   626     Expiration?: Expiration;
   627     /**
   628      * Entity tag of the object.
   629      */
   630     ETag?: ETag;
   631     /**
   632      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
   633      */
   634     ServerSideEncryption?: ServerSideEncryption;
   635     /**
   636      * Version of the object.
   637      */
   638     VersionId?: ObjectVersionId;
   639     /**
   640      * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
   641      */
   642     SSEKMSKeyId?: SSEKMSKeyId;
   643     RequestCharged?: RequestCharged;
   644   }
   645   export interface CompleteMultipartUploadRequest {
   646     Bucket: BucketName;
   647     Key: ObjectKey;
   648     MultipartUpload?: CompletedMultipartUpload;
   649     UploadId: MultipartUploadId;
   650     RequestPayer?: RequestPayer;
   651   }
   652   export interface CompletedMultipartUpload {
   653     Parts?: CompletedPartList;
   654   }
   655   export interface CompletedPart {
   656     /**
   657      * Entity tag returned when the part was uploaded.
   658      */
   659     ETag?: ETag;
   660     /**
   661      * Part number that identifies the part. This is a positive integer between 1 and 10,000.
   662      */
   663     PartNumber?: PartNumber;
   664   }
   665   export type CompletedPartList = CompletedPart[];
   666   export interface Condition {
   667     /**
   668      * The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. Required when parent element Condition is specified and sibling KeyPrefixEquals is not specified. If both are specified, then both must be true for the redirect to be applied.
   669      */
   670     HttpErrorCodeReturnedEquals?: HttpErrorCodeReturnedEquals;
   671     /**
   672      * The object key name prefix when the redirect is applied. For example, to redirect requests for ExamplePage.html, the key prefix will be ExamplePage.html. To redirect request for all pages with the prefix docs/, the key prefix will be /docs, which identifies all objects in the docs/ folder. Required when the parent element Condition is specified and sibling HttpErrorCodeReturnedEquals is not specified. If both conditions are specified, both must be true for the redirect to be applied.
   673      */
   674     KeyPrefixEquals?: KeyPrefixEquals;
   675   }
   676   export type ContentDisposition = string;
   677   export type ContentEncoding = string;
   678   export type ContentLanguage = string;
   679   export type ContentLength = number;
   680   export type ContentMD5 = string;
   681   export type ContentRange = string;
   682   export type ContentType = string;
   683   export interface CopyObjectOutput {
   684     CopyObjectResult?: CopyObjectResult;
   685     /**
   686      * If the object expiration is configured, the response includes this header.
   687      */
   688     Expiration?: Expiration;
   689     CopySourceVersionId?: CopySourceVersionId;
   690     /**
   691      * Version ID of the newly created copy.
   692      */
   693     VersionId?: ObjectVersionId;
   694     /**
   695      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
   696      */
   697     ServerSideEncryption?: ServerSideEncryption;
   698     /**
   699      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
   700      */
   701     SSECustomerAlgorithm?: SSECustomerAlgorithm;
   702     /**
   703      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
   704      */
   705     SSECustomerKeyMD5?: SSECustomerKeyMD5;
   706     /**
   707      * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
   708      */
   709     SSEKMSKeyId?: SSEKMSKeyId;
   710     RequestCharged?: RequestCharged;
   711   }
   712   export interface CopyObjectRequest {
   713     /**
   714      * The canned ACL to apply to the object.
   715      */
   716     ACL?: ObjectCannedACL;
   717     Bucket: BucketName;
   718     /**
   719      * Specifies caching behavior along the request/reply chain.
   720      */
   721     CacheControl?: CacheControl;
   722     /**
   723      * Specifies presentational information for the object.
   724      */
   725     ContentDisposition?: ContentDisposition;
   726     /**
   727      * Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
   728      */
   729     ContentEncoding?: ContentEncoding;
   730     /**
   731      * The language the content is in.
   732      */
   733     ContentLanguage?: ContentLanguage;
   734     /**
   735      * A standard MIME type describing the format of the object data.
   736      */
   737     ContentType?: ContentType;
   738     /**
   739      * The name of the source bucket and key name of the source object, separated by a slash (/). Must be URL-encoded.
   740      */
   741     CopySource: CopySource;
   742     /**
   743      * Copies the object if its entity tag (ETag) matches the specified tag.
   744      */
   745     CopySourceIfMatch?: CopySourceIfMatch;
   746     /**
   747      * Copies the object if it has been modified since the specified time.
   748      */
   749     CopySourceIfModifiedSince?: CopySourceIfModifiedSince;
   750     /**
   751      * Copies the object if its entity tag (ETag) is different than the specified ETag.
   752      */
   753     CopySourceIfNoneMatch?: CopySourceIfNoneMatch;
   754     /**
   755      * Copies the object if it hasn't been modified since the specified time.
   756      */
   757     CopySourceIfUnmodifiedSince?: CopySourceIfUnmodifiedSince;
   758     /**
   759      * The date and time at which the object is no longer cacheable.
   760      */
   761     Expires?: Expires;
   762     /**
   763      * Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.
   764      */
   765     GrantFullControl?: GrantFullControl;
   766     /**
   767      * Allows grantee to read the object data and its metadata.
   768      */
   769     GrantRead?: GrantRead;
   770     /**
   771      * Allows grantee to read the object ACL.
   772      */
   773     GrantReadACP?: GrantReadACP;
   774     /**
   775      * Allows grantee to write the ACL for the applicable object.
   776      */
   777     GrantWriteACP?: GrantWriteACP;
   778     Key: ObjectKey;
   779     /**
   780      * A map of metadata to store with the object in S3.
   781      */
   782     Metadata?: Metadata;
   783     /**
   784      * Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request.
   785      */
   786     MetadataDirective?: MetadataDirective;
   787     /**
   788      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
   789      */
   790     ServerSideEncryption?: ServerSideEncryption;
   791     /**
   792      * The type of storage to use for the object. Defaults to 'STANDARD'.
   793      */
   794     StorageClass?: StorageClass;
   795     /**
   796      * If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
   797      */
   798     WebsiteRedirectLocation?: WebsiteRedirectLocation;
   799     /**
   800      * Specifies the algorithm to use to when encrypting the object (e.g., AES256).
   801      */
   802     SSECustomerAlgorithm?: SSECustomerAlgorithm;
   803     /**
   804      * Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.
   805      */
   806     SSECustomerKey?: SSECustomerKey;
   807     /**
   808      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
   809      */
   810     SSECustomerKeyMD5?: SSECustomerKeyMD5;
   811     /**
   812      * Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
   813      */
   814     SSEKMSKeyId?: SSEKMSKeyId;
   815     /**
   816      * Specifies the algorithm to use when decrypting the source object (e.g., AES256).
   817      */
   818     CopySourceSSECustomerAlgorithm?: CopySourceSSECustomerAlgorithm;
   819     /**
   820      * Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.
   821      */
   822     CopySourceSSECustomerKey?: CopySourceSSECustomerKey;
   823     /**
   824      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
   825      */
   826     CopySourceSSECustomerKeyMD5?: CopySourceSSECustomerKeyMD5;
   827     RequestPayer?: RequestPayer;
   828   }
   829   export interface CopyObjectResult {
   830     ETag?: ETag;
   831     LastModified?: LastModified;
   832   }
   833   export interface CopyPartResult {
   834     /**
   835      * Entity tag of the object.
   836      */
   837     ETag?: ETag;
   838     /**
   839      * Date and time at which the object was uploaded.
   840      */
   841     LastModified?: LastModified;
   842   }
   843   export type CopySource = string;
   844   export type CopySourceIfMatch = string;
   845   export type CopySourceIfModifiedSince = Date;
   846   export type CopySourceIfNoneMatch = string;
   847   export type CopySourceIfUnmodifiedSince = Date;
   848   export type CopySourceRange = string;
   849   export type CopySourceSSECustomerAlgorithm = string;
   850   export type CopySourceSSECustomerKey = Buffer|Uint8Array|Blob|string;
   851   export type CopySourceSSECustomerKeyMD5 = string;
   852   export type CopySourceVersionId = string;
   853   export interface CreateBucketConfiguration {
   854     /**
   855      * Specifies the region where the bucket will be created. If you don't specify a region, the bucket will be created in US Standard.
   856      */
   857     LocationConstraint?: BucketLocationConstraint;
   858   }
   859   export interface CreateBucketOutput {
   860     Location?: Location;
   861   }
   862   export interface CreateBucketRequest {
   863     /**
   864      * The canned ACL to apply to the bucket.
   865      */
   866     ACL?: BucketCannedACL;
   867     Bucket: BucketName;
   868     CreateBucketConfiguration?: CreateBucketConfiguration;
   869     /**
   870      * Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.
   871      */
   872     GrantFullControl?: GrantFullControl;
   873     /**
   874      * Allows grantee to list the objects in the bucket.
   875      */
   876     GrantRead?: GrantRead;
   877     /**
   878      * Allows grantee to read the bucket ACL.
   879      */
   880     GrantReadACP?: GrantReadACP;
   881     /**
   882      * Allows grantee to create, overwrite, and delete any object in the bucket.
   883      */
   884     GrantWrite?: GrantWrite;
   885     /**
   886      * Allows grantee to write the ACL for the applicable bucket.
   887      */
   888     GrantWriteACP?: GrantWriteACP;
   889   }
   890   export interface CreateMultipartUploadOutput {
   891     /**
   892      * Date when multipart upload will become eligible for abort operation by lifecycle.
   893      */
   894     AbortDate?: AbortDate;
   895     /**
   896      * Id of the lifecycle rule that makes a multipart upload eligible for abort operation.
   897      */
   898     AbortRuleId?: AbortRuleId;
   899     /**
   900      * Name of the bucket to which the multipart upload was initiated.
   901      */
   902     Bucket?: BucketName;
   903     /**
   904      * Object key for which the multipart upload was initiated.
   905      */
   906     Key?: ObjectKey;
   907     /**
   908      * ID for the initiated multipart upload.
   909      */
   910     UploadId?: MultipartUploadId;
   911     /**
   912      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
   913      */
   914     ServerSideEncryption?: ServerSideEncryption;
   915     /**
   916      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
   917      */
   918     SSECustomerAlgorithm?: SSECustomerAlgorithm;
   919     /**
   920      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
   921      */
   922     SSECustomerKeyMD5?: SSECustomerKeyMD5;
   923     /**
   924      * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
   925      */
   926     SSEKMSKeyId?: SSEKMSKeyId;
   927     RequestCharged?: RequestCharged;
   928   }
   929   export interface CreateMultipartUploadRequest {
   930     /**
   931      * The canned ACL to apply to the object.
   932      */
   933     ACL?: ObjectCannedACL;
   934     Bucket: BucketName;
   935     /**
   936      * Specifies caching behavior along the request/reply chain.
   937      */
   938     CacheControl?: CacheControl;
   939     /**
   940      * Specifies presentational information for the object.
   941      */
   942     ContentDisposition?: ContentDisposition;
   943     /**
   944      * Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
   945      */
   946     ContentEncoding?: ContentEncoding;
   947     /**
   948      * The language the content is in.
   949      */
   950     ContentLanguage?: ContentLanguage;
   951     /**
   952      * A standard MIME type describing the format of the object data.
   953      */
   954     ContentType?: ContentType;
   955     /**
   956      * The date and time at which the object is no longer cacheable.
   957      */
   958     Expires?: Expires;
   959     /**
   960      * Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.
   961      */
   962     GrantFullControl?: GrantFullControl;
   963     /**
   964      * Allows grantee to read the object data and its metadata.
   965      */
   966     GrantRead?: GrantRead;
   967     /**
   968      * Allows grantee to read the object ACL.
   969      */
   970     GrantReadACP?: GrantReadACP;
   971     /**
   972      * Allows grantee to write the ACL for the applicable object.
   973      */
   974     GrantWriteACP?: GrantWriteACP;
   975     Key: ObjectKey;
   976     /**
   977      * A map of metadata to store with the object in S3.
   978      */
   979     Metadata?: Metadata;
   980     /**
   981      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
   982      */
   983     ServerSideEncryption?: ServerSideEncryption;
   984     /**
   985      * The type of storage to use for the object. Defaults to 'STANDARD'.
   986      */
   987     StorageClass?: StorageClass;
   988     /**
   989      * If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
   990      */
   991     WebsiteRedirectLocation?: WebsiteRedirectLocation;
   992     /**
   993      * Specifies the algorithm to use to when encrypting the object (e.g., AES256).
   994      */
   995     SSECustomerAlgorithm?: SSECustomerAlgorithm;
   996     /**
   997      * Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.
   998      */
   999     SSECustomerKey?: SSECustomerKey;
  1000     /**
  1001      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
  1002      */
  1003     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  1004     /**
  1005      * Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
  1006      */
  1007     SSEKMSKeyId?: SSEKMSKeyId;
  1008     RequestPayer?: RequestPayer;
  1009   }
  1010   export type CreationDate = Date;
  1011   export type _Date = Date;
  1012   export type Days = number;
  1013   export type DaysAfterInitiation = number;
  1014   export interface Delete {
  1015     Objects: ObjectIdentifierList;
  1016     /**
  1017      * Element to enable quiet mode for the request. When you add this element, you must set its value to true.
  1018      */
  1019     Quiet?: Quiet;
  1020   }
  1021   export interface DeleteBucketCorsRequest {
  1022     Bucket: BucketName;
  1023   }
  1024   export interface DeleteBucketLifecycleRequest {
  1025     Bucket: BucketName;
  1026   }
  1027   export interface DeleteBucketPolicyRequest {
  1028     Bucket: BucketName;
  1029   }
  1030   export interface DeleteBucketReplicationRequest {
  1031     Bucket: BucketName;
  1032   }
  1033   export interface DeleteBucketRequest {
  1034     Bucket: BucketName;
  1035   }
  1036   export interface DeleteBucketTaggingRequest {
  1037     Bucket: BucketName;
  1038   }
  1039   export interface DeleteBucketWebsiteRequest {
  1040     Bucket: BucketName;
  1041   }
  1042   export type DeleteMarker = boolean;
  1043   export interface DeleteMarkerEntry {
  1044     Owner?: Owner;
  1045     /**
  1046      * The object key.
  1047      */
  1048     Key?: ObjectKey;
  1049     /**
  1050      * Version ID of an object.
  1051      */
  1052     VersionId?: ObjectVersionId;
  1053     /**
  1054      * Specifies whether the object is (true) or is not (false) the latest version of an object.
  1055      */
  1056     IsLatest?: IsLatest;
  1057     /**
  1058      * Date and time the object was last modified.
  1059      */
  1060     LastModified?: LastModified;
  1061   }
  1062   export type DeleteMarkerVersionId = string;
  1063   export type DeleteMarkers = DeleteMarkerEntry[];
  1064   export interface DeleteObjectOutput {
  1065     /**
  1066      * Specifies whether the versioned object that was permanently deleted was (true) or was not (false) a delete marker.
  1067      */
  1068     DeleteMarker?: DeleteMarker;
  1069     /**
  1070      * Returns the version ID of the delete marker created as a result of the DELETE operation.
  1071      */
  1072     VersionId?: ObjectVersionId;
  1073     RequestCharged?: RequestCharged;
  1074   }
  1075   export interface DeleteObjectRequest {
  1076     Bucket: BucketName;
  1077     Key: ObjectKey;
  1078     /**
  1079      * The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.
  1080      */
  1081     MFA?: MFA;
  1082     /**
  1083      * VersionId used to reference a specific version of the object.
  1084      */
  1085     VersionId?: ObjectVersionId;
  1086     RequestPayer?: RequestPayer;
  1087   }
  1088   export interface DeleteObjectsOutput {
  1089     Deleted?: DeletedObjects;
  1090     RequestCharged?: RequestCharged;
  1091     Errors?: Errors;
  1092   }
  1093   export interface DeleteObjectsRequest {
  1094     Bucket: BucketName;
  1095     Delete: Delete;
  1096     /**
  1097      * The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.
  1098      */
  1099     MFA?: MFA;
  1100     RequestPayer?: RequestPayer;
  1101   }
  1102   export interface DeletedObject {
  1103     Key?: ObjectKey;
  1104     VersionId?: ObjectVersionId;
  1105     DeleteMarker?: DeleteMarker;
  1106     DeleteMarkerVersionId?: DeleteMarkerVersionId;
  1107   }
  1108   export type DeletedObjects = DeletedObject[];
  1109   export type Delimiter = string;
  1110   export interface Destination {
  1111     /**
  1112      * Amazon resource name (ARN) of the bucket where you want Amazon S3 to store replicas of the object identified by the rule.
  1113      */
  1114     Bucket: BucketName;
  1115     /**
  1116      * The class of storage used to store the object.
  1117      */
  1118     StorageClass?: StorageClass;
  1119   }
  1120   export type DisplayName = string;
  1121   export type ETag = string;
  1122   export type EmailAddress = string;
  1123   export type EncodingType = "url"|string;
  1124   export interface Error {
  1125     Key?: ObjectKey;
  1126     VersionId?: ObjectVersionId;
  1127     Code?: Code;
  1128     Message?: Message;
  1129   }
  1130   export interface ErrorDocument {
  1131     /**
  1132      * The object key name to use when a 4XX class error occurs.
  1133      */
  1134     Key: ObjectKey;
  1135   }
  1136   export type Errors = Error[];
  1137   export type Event = "s3:ReducedRedundancyLostObject"|"s3:ObjectCreated:*"|"s3:ObjectCreated:Put"|"s3:ObjectCreated:Post"|"s3:ObjectCreated:Copy"|"s3:ObjectCreated:CompleteMultipartUpload"|"s3:ObjectRemoved:*"|"s3:ObjectRemoved:Delete"|"s3:ObjectRemoved:DeleteMarkerCreated"|string;
  1138   export type EventList = Event[];
  1139   export type Expiration = string;
  1140   export type ExpirationStatus = "Enabled"|"Disabled"|string;
  1141   export type ExpiredObjectDeleteMarker = boolean;
  1142   export type Expires = Date;
  1143   export type ExposeHeader = string;
  1144   export type ExposeHeaders = ExposeHeader[];
  1145   export type FetchOwner = boolean;
  1146   export interface FilterRule {
  1147     /**
  1148      * Object key name prefix or suffix identifying one or more objects to which the filtering rule applies. Maximum prefix length can be up to 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, go to Configuring Event Notifications in the Amazon Simple Storage Service Developer Guide.
  1149      */
  1150     Name?: FilterRuleName;
  1151     Value?: FilterRuleValue;
  1152   }
  1153   export type FilterRuleList = FilterRule[];
  1154   export type FilterRuleName = "prefix"|"suffix"|string;
  1155   export type FilterRuleValue = string;
  1156   export interface GetBucketAccelerateConfigurationOutput {
  1157     /**
  1158      * The accelerate configuration of the bucket.
  1159      */
  1160     Status?: BucketAccelerateStatus;
  1161   }
  1162   export interface GetBucketAccelerateConfigurationRequest {
  1163     /**
  1164      * Name of the bucket for which the accelerate configuration is retrieved.
  1165      */
  1166     Bucket: BucketName;
  1167   }
  1168   export interface GetBucketAclOutput {
  1169     Owner?: Owner;
  1170     /**
  1171      * A list of grants.
  1172      */
  1173     Grants?: Grants;
  1174   }
  1175   export interface GetBucketAclRequest {
  1176     Bucket: BucketName;
  1177   }
  1178   export interface GetBucketCorsOutput {
  1179     CORSRules?: CORSRules;
  1180   }
  1181   export interface GetBucketCorsRequest {
  1182     Bucket: BucketName;
  1183   }
  1184   export interface GetBucketLifecycleConfigurationOutput {
  1185     Rules?: LifecycleRules;
  1186   }
  1187   export interface GetBucketLifecycleConfigurationRequest {
  1188     Bucket: BucketName;
  1189   }
  1190   export interface GetBucketLifecycleOutput {
  1191     Rules?: Rules;
  1192   }
  1193   export interface GetBucketLifecycleRequest {
  1194     Bucket: BucketName;
  1195   }
  1196   export interface GetBucketLocationOutput {
  1197     LocationConstraint?: BucketLocationConstraint;
  1198   }
  1199   export interface GetBucketLocationRequest {
  1200     Bucket: BucketName;
  1201   }
  1202   export interface GetBucketLoggingOutput {
  1203     LoggingEnabled?: LoggingEnabled;
  1204   }
  1205   export interface GetBucketLoggingRequest {
  1206     Bucket: BucketName;
  1207   }
  1208   export interface GetBucketNotificationConfigurationRequest {
  1209     /**
  1210      * Name of the bucket to get the notification configuration for.
  1211      */
  1212     Bucket: BucketName;
  1213   }
  1214   export interface GetBucketPolicyOutput {
  1215     /**
  1216      * The bucket policy as a JSON document.
  1217      */
  1218     Policy?: Policy;
  1219   }
  1220   export interface GetBucketPolicyRequest {
  1221     Bucket: BucketName;
  1222   }
  1223   export interface GetBucketReplicationOutput {
  1224     ReplicationConfiguration?: ReplicationConfiguration;
  1225   }
  1226   export interface GetBucketReplicationRequest {
  1227     Bucket: BucketName;
  1228   }
  1229   export interface GetBucketRequestPaymentOutput {
  1230     /**
  1231      * Specifies who pays for the download and request fees.
  1232      */
  1233     Payer?: Payer;
  1234   }
  1235   export interface GetBucketRequestPaymentRequest {
  1236     Bucket: BucketName;
  1237   }
  1238   export interface GetBucketTaggingOutput {
  1239     TagSet: TagSet;
  1240   }
  1241   export interface GetBucketTaggingRequest {
  1242     Bucket: BucketName;
  1243   }
  1244   export interface GetBucketVersioningOutput {
  1245     /**
  1246      * The versioning state of the bucket.
  1247      */
  1248     Status?: BucketVersioningStatus;
  1249     /**
  1250      * Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned.
  1251      */
  1252     MFADelete?: MFADeleteStatus;
  1253   }
  1254   export interface GetBucketVersioningRequest {
  1255     Bucket: BucketName;
  1256   }
  1257   export interface GetBucketWebsiteOutput {
  1258     RedirectAllRequestsTo?: RedirectAllRequestsTo;
  1259     IndexDocument?: IndexDocument;
  1260     ErrorDocument?: ErrorDocument;
  1261     RoutingRules?: RoutingRules;
  1262   }
  1263   export interface GetBucketWebsiteRequest {
  1264     Bucket: BucketName;
  1265   }
  1266   export interface GetObjectAclOutput {
  1267     Owner?: Owner;
  1268     /**
  1269      * A list of grants.
  1270      */
  1271     Grants?: Grants;
  1272     RequestCharged?: RequestCharged;
  1273   }
  1274   export interface GetObjectAclRequest {
  1275     Bucket: BucketName;
  1276     Key: ObjectKey;
  1277     /**
  1278      * VersionId used to reference a specific version of the object.
  1279      */
  1280     VersionId?: ObjectVersionId;
  1281     RequestPayer?: RequestPayer;
  1282   }
  1283   export interface GetObjectOutput {
  1284     /**
  1285      * Object data.
  1286      */
  1287     Body?: Body;
  1288     /**
  1289      * Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
  1290      */
  1291     DeleteMarker?: DeleteMarker;
  1292     AcceptRanges?: AcceptRanges;
  1293     /**
  1294      * If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
  1295      */
  1296     Expiration?: Expiration;
  1297     /**
  1298      * Provides information about object restoration operation and expiration time of the restored object copy.
  1299      */
  1300     Restore?: Restore;
  1301     /**
  1302      * Last modified date of the object
  1303      */
  1304     LastModified?: LastModified;
  1305     /**
  1306      * Size of the body in bytes.
  1307      */
  1308     ContentLength?: ContentLength;
  1309     /**
  1310      * An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
  1311      */
  1312     ETag?: ETag;
  1313     /**
  1314      * This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
  1315      */
  1316     MissingMeta?: MissingMeta;
  1317     /**
  1318      * Version of the object.
  1319      */
  1320     VersionId?: ObjectVersionId;
  1321     /**
  1322      * Specifies caching behavior along the request/reply chain.
  1323      */
  1324     CacheControl?: CacheControl;
  1325     /**
  1326      * Specifies presentational information for the object.
  1327      */
  1328     ContentDisposition?: ContentDisposition;
  1329     /**
  1330      * Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
  1331      */
  1332     ContentEncoding?: ContentEncoding;
  1333     /**
  1334      * The language the content is in.
  1335      */
  1336     ContentLanguage?: ContentLanguage;
  1337     /**
  1338      * The portion of the object returned in the response.
  1339      */
  1340     ContentRange?: ContentRange;
  1341     /**
  1342      * A standard MIME type describing the format of the object data.
  1343      */
  1344     ContentType?: ContentType;
  1345     /**
  1346      * The date and time at which the object is no longer cacheable.
  1347      */
  1348     Expires?: Expires;
  1349     /**
  1350      * If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
  1351      */
  1352     WebsiteRedirectLocation?: WebsiteRedirectLocation;
  1353     /**
  1354      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
  1355      */
  1356     ServerSideEncryption?: ServerSideEncryption;
  1357     /**
  1358      * A map of metadata to store with the object in S3.
  1359      */
  1360     Metadata?: Metadata;
  1361     /**
  1362      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
  1363      */
  1364     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  1365     /**
  1366      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
  1367      */
  1368     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  1369     /**
  1370      * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
  1371      */
  1372     SSEKMSKeyId?: SSEKMSKeyId;
  1373     StorageClass?: StorageClass;
  1374     RequestCharged?: RequestCharged;
  1375     ReplicationStatus?: ReplicationStatus;
  1376     /**
  1377      * The count of parts this object has.
  1378      */
  1379     PartsCount?: PartsCount;
  1380   }
  1381   export interface GetObjectRequest {
  1382     Bucket: BucketName;
  1383     /**
  1384      * Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed).
  1385      */
  1386     IfMatch?: IfMatch;
  1387     /**
  1388      * Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).
  1389      */
  1390     IfModifiedSince?: IfModifiedSince;
  1391     /**
  1392      * Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified).
  1393      */
  1394     IfNoneMatch?: IfNoneMatch;
  1395     /**
  1396      * Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).
  1397      */
  1398     IfUnmodifiedSince?: IfUnmodifiedSince;
  1399     Key: ObjectKey;
  1400     /**
  1401      * Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
  1402      */
  1403     Range?: Range;
  1404     /**
  1405      * Sets the Cache-Control header of the response.
  1406      */
  1407     ResponseCacheControl?: ResponseCacheControl;
  1408     /**
  1409      * Sets the Content-Disposition header of the response
  1410      */
  1411     ResponseContentDisposition?: ResponseContentDisposition;
  1412     /**
  1413      * Sets the Content-Encoding header of the response.
  1414      */
  1415     ResponseContentEncoding?: ResponseContentEncoding;
  1416     /**
  1417      * Sets the Content-Language header of the response.
  1418      */
  1419     ResponseContentLanguage?: ResponseContentLanguage;
  1420     /**
  1421      * Sets the Content-Type header of the response.
  1422      */
  1423     ResponseContentType?: ResponseContentType;
  1424     /**
  1425      * Sets the Expires header of the response.
  1426      */
  1427     ResponseExpires?: ResponseExpires;
  1428     /**
  1429      * VersionId used to reference a specific version of the object.
  1430      */
  1431     VersionId?: ObjectVersionId;
  1432     /**
  1433      * Specifies the algorithm to use to when encrypting the object (e.g., AES256).
  1434      */
  1435     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  1436     /**
  1437      * Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.
  1438      */
  1439     SSECustomerKey?: SSECustomerKey;
  1440     /**
  1441      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
  1442      */
  1443     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  1444     RequestPayer?: RequestPayer;
  1445     /**
  1446      * Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.
  1447      */
  1448     PartNumber?: PartNumber;
  1449   }
  1450   export interface GetObjectTorrentOutput {
  1451     Body?: Body;
  1452     RequestCharged?: RequestCharged;
  1453   }
  1454   export interface GetObjectTorrentRequest {
  1455     Bucket: BucketName;
  1456     Key: ObjectKey;
  1457     RequestPayer?: RequestPayer;
  1458   }
  1459   export interface GlacierJobParameters {
  1460     /**
  1461      * Glacier retrieval tier at which the restore will be processed.
  1462      */
  1463     Tier: Tier;
  1464   }
  1465   export interface Grant {
  1466     Grantee?: Grantee;
  1467     /**
  1468      * Specifies the permission given to the grantee.
  1469      */
  1470     Permission?: Permission;
  1471   }
  1472   export type GrantFullControl = string;
  1473   export type GrantRead = string;
  1474   export type GrantReadACP = string;
  1475   export type GrantWrite = string;
  1476   export type GrantWriteACP = string;
  1477   export interface Grantee {
  1478     /**
  1479      * Screen name of the grantee.
  1480      */
  1481     DisplayName?: DisplayName;
  1482     /**
  1483      * Email address of the grantee.
  1484      */
  1485     EmailAddress?: EmailAddress;
  1486     /**
  1487      * The canonical user ID of the grantee.
  1488      */
  1489     ID?: ID;
  1490     /**
  1491      * Type of grantee
  1492      */
  1493     Type: Type;
  1494     /**
  1495      * URI of the grantee group.
  1496      */
  1497     URI?: URI;
  1498   }
  1499   export type Grants = Grant[];
  1500   export interface HeadBucketRequest {
  1501     Bucket: BucketName;
  1502   }
  1503   export interface HeadObjectOutput {
  1504     /**
  1505      * Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.
  1506      */
  1507     DeleteMarker?: DeleteMarker;
  1508     AcceptRanges?: AcceptRanges;
  1509     /**
  1510      * If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
  1511      */
  1512     Expiration?: Expiration;
  1513     /**
  1514      * Provides information about object restoration operation and expiration time of the restored object copy.
  1515      */
  1516     Restore?: Restore;
  1517     /**
  1518      * Last modified date of the object
  1519      */
  1520     LastModified?: LastModified;
  1521     /**
  1522      * Size of the body in bytes.
  1523      */
  1524     ContentLength?: ContentLength;
  1525     /**
  1526      * An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL
  1527      */
  1528     ETag?: ETag;
  1529     /**
  1530      * This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.
  1531      */
  1532     MissingMeta?: MissingMeta;
  1533     /**
  1534      * Version of the object.
  1535      */
  1536     VersionId?: ObjectVersionId;
  1537     /**
  1538      * Specifies caching behavior along the request/reply chain.
  1539      */
  1540     CacheControl?: CacheControl;
  1541     /**
  1542      * Specifies presentational information for the object.
  1543      */
  1544     ContentDisposition?: ContentDisposition;
  1545     /**
  1546      * Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
  1547      */
  1548     ContentEncoding?: ContentEncoding;
  1549     /**
  1550      * The language the content is in.
  1551      */
  1552     ContentLanguage?: ContentLanguage;
  1553     /**
  1554      * A standard MIME type describing the format of the object data.
  1555      */
  1556     ContentType?: ContentType;
  1557     /**
  1558      * The date and time at which the object is no longer cacheable.
  1559      */
  1560     Expires?: Expires;
  1561     /**
  1562      * If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
  1563      */
  1564     WebsiteRedirectLocation?: WebsiteRedirectLocation;
  1565     /**
  1566      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
  1567      */
  1568     ServerSideEncryption?: ServerSideEncryption;
  1569     /**
  1570      * A map of metadata to store with the object in S3.
  1571      */
  1572     Metadata?: Metadata;
  1573     /**
  1574      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
  1575      */
  1576     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  1577     /**
  1578      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
  1579      */
  1580     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  1581     /**
  1582      * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
  1583      */
  1584     SSEKMSKeyId?: SSEKMSKeyId;
  1585     StorageClass?: StorageClass;
  1586     RequestCharged?: RequestCharged;
  1587     ReplicationStatus?: ReplicationStatus;
  1588     /**
  1589      * The count of parts this object has.
  1590      */
  1591     PartsCount?: PartsCount;
  1592   }
  1593   export interface HeadObjectRequest {
  1594     Bucket: BucketName;
  1595     /**
  1596      * Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed).
  1597      */
  1598     IfMatch?: IfMatch;
  1599     /**
  1600      * Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified).
  1601      */
  1602     IfModifiedSince?: IfModifiedSince;
  1603     /**
  1604      * Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified).
  1605      */
  1606     IfNoneMatch?: IfNoneMatch;
  1607     /**
  1608      * Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed).
  1609      */
  1610     IfUnmodifiedSince?: IfUnmodifiedSince;
  1611     Key: ObjectKey;
  1612     /**
  1613      * Downloads the specified range bytes of an object. For more information about the HTTP Range header, go to http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
  1614      */
  1615     Range?: Range;
  1616     /**
  1617      * VersionId used to reference a specific version of the object.
  1618      */
  1619     VersionId?: ObjectVersionId;
  1620     /**
  1621      * Specifies the algorithm to use to when encrypting the object (e.g., AES256).
  1622      */
  1623     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  1624     /**
  1625      * Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.
  1626      */
  1627     SSECustomerKey?: SSECustomerKey;
  1628     /**
  1629      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
  1630      */
  1631     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  1632     RequestPayer?: RequestPayer;
  1633     /**
  1634      * Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' HEAD request for the part specified. Useful querying about the size of the part and the number of parts in this object.
  1635      */
  1636     PartNumber?: PartNumber;
  1637   }
  1638   export type HostName = string;
  1639   export type HttpErrorCodeReturnedEquals = string;
  1640   export type HttpRedirectCode = string;
  1641   export type ID = string;
  1642   export type IfMatch = string;
  1643   export type IfModifiedSince = Date;
  1644   export type IfNoneMatch = string;
  1645   export type IfUnmodifiedSince = Date;
  1646   export interface IndexDocument {
  1647     /**
  1648      * A suffix that is appended to a request that is for a directory on the website endpoint (e.g. if the suffix is index.html and you make a request to samplebucket/images/ the data that is returned will be for the object with the key name images/index.html) The suffix must not be empty and must not include a slash character.
  1649      */
  1650     Suffix: Suffix;
  1651   }
  1652   export type Initiated = Date;
  1653   export interface Initiator {
  1654     /**
  1655      * If the principal is an AWS account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.
  1656      */
  1657     ID?: ID;
  1658     /**
  1659      * Name of the Principal.
  1660      */
  1661     DisplayName?: DisplayName;
  1662   }
  1663   export type IsLatest = boolean;
  1664   export type IsTruncated = boolean;
  1665   export type KeyCount = number;
  1666   export type KeyMarker = string;
  1667   export type KeyPrefixEquals = string;
  1668   export type LambdaFunctionArn = string;
  1669   export interface LambdaFunctionConfiguration {
  1670     Id?: NotificationId;
  1671     /**
  1672      * Lambda cloud function ARN that Amazon S3 can invoke when it detects events of the specified type.
  1673      */
  1674     LambdaFunctionArn: LambdaFunctionArn;
  1675     Events: EventList;
  1676     Filter?: NotificationConfigurationFilter;
  1677   }
  1678   export type LambdaFunctionConfigurationList = LambdaFunctionConfiguration[];
  1679   export type LastModified = Date;
  1680   export interface LifecycleConfiguration {
  1681     Rules: Rules;
  1682   }
  1683   export interface LifecycleExpiration {
  1684     /**
  1685      * Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
  1686      */
  1687     Date?: _Date;
  1688     /**
  1689      * Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
  1690      */
  1691     Days?: Days;
  1692     /**
  1693      * Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired; if set to false the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.
  1694      */
  1695     ExpiredObjectDeleteMarker?: ExpiredObjectDeleteMarker;
  1696   }
  1697   export interface LifecycleRule {
  1698     Expiration?: LifecycleExpiration;
  1699     /**
  1700      * Unique identifier for the rule. The value cannot be longer than 255 characters.
  1701      */
  1702     ID?: ID;
  1703     /**
  1704      * Prefix identifying one or more objects to which the rule applies.
  1705      */
  1706     Prefix: Prefix;
  1707     /**
  1708      * If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.
  1709      */
  1710     Status: ExpirationStatus;
  1711     Transitions?: TransitionList;
  1712     NoncurrentVersionTransitions?: NoncurrentVersionTransitionList;
  1713     NoncurrentVersionExpiration?: NoncurrentVersionExpiration;
  1714     AbortIncompleteMultipartUpload?: AbortIncompleteMultipartUpload;
  1715   }
  1716   export type LifecycleRules = LifecycleRule[];
  1717   export interface ListBucketsOutput {
  1718     Buckets?: Buckets;
  1719     Owner?: Owner;
  1720   }
  1721   export interface ListMultipartUploadsOutput {
  1722     /**
  1723      * Name of the bucket to which the multipart upload was initiated.
  1724      */
  1725     Bucket?: BucketName;
  1726     /**
  1727      * The key at or after which the listing began.
  1728      */
  1729     KeyMarker?: KeyMarker;
  1730     /**
  1731      * Upload ID after which listing began.
  1732      */
  1733     UploadIdMarker?: UploadIdMarker;
  1734     /**
  1735      * When a list is truncated, this element specifies the value that should be used for the key-marker request parameter in a subsequent request.
  1736      */
  1737     NextKeyMarker?: NextKeyMarker;
  1738     /**
  1739      * When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.
  1740      */
  1741     Prefix?: Prefix;
  1742     Delimiter?: Delimiter;
  1743     /**
  1744      * When a list is truncated, this element specifies the value that should be used for the upload-id-marker request parameter in a subsequent request.
  1745      */
  1746     NextUploadIdMarker?: NextUploadIdMarker;
  1747     /**
  1748      * Maximum number of multipart uploads that could have been included in the response.
  1749      */
  1750     MaxUploads?: MaxUploads;
  1751     /**
  1752      * Indicates whether the returned list of multipart uploads is truncated. A value of true indicates that the list was truncated. The list can be truncated if the number of multipart uploads exceeds the limit allowed or specified by max uploads.
  1753      */
  1754     IsTruncated?: IsTruncated;
  1755     Uploads?: MultipartUploadList;
  1756     CommonPrefixes?: CommonPrefixList;
  1757     /**
  1758      * Encoding type used by Amazon S3 to encode object keys in the response.
  1759      */
  1760     EncodingType?: EncodingType;
  1761   }
  1762   export interface ListMultipartUploadsRequest {
  1763     Bucket: BucketName;
  1764     /**
  1765      * Character you use to group keys.
  1766      */
  1767     Delimiter?: Delimiter;
  1768     EncodingType?: EncodingType;
  1769     /**
  1770      * Together with upload-id-marker, this parameter specifies the multipart upload after which listing should begin.
  1771      */
  1772     KeyMarker?: KeyMarker;
  1773     /**
  1774      * Sets the maximum number of multipart uploads, from 1 to 1,000, to return in the response body. 1,000 is the maximum number of uploads that can be returned in a response.
  1775      */
  1776     MaxUploads?: MaxUploads;
  1777     /**
  1778      * Lists in-progress uploads only for those keys that begin with the specified prefix.
  1779      */
  1780     Prefix?: Prefix;
  1781     /**
  1782      * Together with key-marker, specifies the multipart upload after which listing should begin. If key-marker is not specified, the upload-id-marker parameter is ignored.
  1783      */
  1784     UploadIdMarker?: UploadIdMarker;
  1785   }
  1786   export interface ListObjectVersionsOutput {
  1787     /**
  1788      * A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria. If your results were truncated, you can make a follow-up paginated request using the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in another request to return the rest of the results.
  1789      */
  1790     IsTruncated?: IsTruncated;
  1791     /**
  1792      * Marks the last Key returned in a truncated response.
  1793      */
  1794     KeyMarker?: KeyMarker;
  1795     VersionIdMarker?: VersionIdMarker;
  1796     /**
  1797      * Use this value for the key marker request parameter in a subsequent request.
  1798      */
  1799     NextKeyMarker?: NextKeyMarker;
  1800     /**
  1801      * Use this value for the next version id marker parameter in a subsequent request.
  1802      */
  1803     NextVersionIdMarker?: NextVersionIdMarker;
  1804     Versions?: ObjectVersionList;
  1805     DeleteMarkers?: DeleteMarkers;
  1806     Name?: BucketName;
  1807     Prefix?: Prefix;
  1808     Delimiter?: Delimiter;
  1809     MaxKeys?: MaxKeys;
  1810     CommonPrefixes?: CommonPrefixList;
  1811     /**
  1812      * Encoding type used by Amazon S3 to encode object keys in the response.
  1813      */
  1814     EncodingType?: EncodingType;
  1815   }
  1816   export interface ListObjectVersionsRequest {
  1817     Bucket: BucketName;
  1818     /**
  1819      * A delimiter is a character you use to group keys.
  1820      */
  1821     Delimiter?: Delimiter;
  1822     EncodingType?: EncodingType;
  1823     /**
  1824      * Specifies the key to start with when listing objects in a bucket.
  1825      */
  1826     KeyMarker?: KeyMarker;
  1827     /**
  1828      * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more.
  1829      */
  1830     MaxKeys?: MaxKeys;
  1831     /**
  1832      * Limits the response to keys that begin with the specified prefix.
  1833      */
  1834     Prefix?: Prefix;
  1835     /**
  1836      * Specifies the object version you want to start listing from.
  1837      */
  1838     VersionIdMarker?: VersionIdMarker;
  1839   }
  1840   export interface ListObjectsOutput {
  1841     /**
  1842      * A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.
  1843      */
  1844     IsTruncated?: IsTruncated;
  1845     Marker?: Marker;
  1846     /**
  1847      * When response is truncated (the IsTruncated element value in the response is true), you can use the key name in this field as marker in the subsequent request to get next set of objects. Amazon S3 lists objects in alphabetical order Note: This element is returned only if you have delimiter request parameter specified. If response does not include the NextMaker and it is truncated, you can use the value of the last Key in the response as the marker in the subsequent request to get the next set of object keys.
  1848      */
  1849     NextMarker?: NextMarker;
  1850     Contents?: ObjectList;
  1851     Name?: BucketName;
  1852     Prefix?: Prefix;
  1853     Delimiter?: Delimiter;
  1854     MaxKeys?: MaxKeys;
  1855     CommonPrefixes?: CommonPrefixList;
  1856     /**
  1857      * Encoding type used by Amazon S3 to encode object keys in the response.
  1858      */
  1859     EncodingType?: EncodingType;
  1860   }
  1861   export interface ListObjectsRequest {
  1862     Bucket: BucketName;
  1863     /**
  1864      * A delimiter is a character you use to group keys.
  1865      */
  1866     Delimiter?: Delimiter;
  1867     EncodingType?: EncodingType;
  1868     /**
  1869      * Specifies the key to start with when listing objects in a bucket.
  1870      */
  1871     Marker?: Marker;
  1872     /**
  1873      * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more.
  1874      */
  1875     MaxKeys?: MaxKeys;
  1876     /**
  1877      * Limits the response to keys that begin with the specified prefix.
  1878      */
  1879     Prefix?: Prefix;
  1880     /**
  1881      * Confirms that the requester knows that she or he will be charged for the list objects request. Bucket owners need not specify this parameter in their requests.
  1882      */
  1883     RequestPayer?: RequestPayer;
  1884   }
  1885   export interface ListObjectsV2Output {
  1886     /**
  1887      * A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria.
  1888      */
  1889     IsTruncated?: IsTruncated;
  1890     /**
  1891      * Metadata about each object returned.
  1892      */
  1893     Contents?: ObjectList;
  1894     /**
  1895      * Name of the bucket to list.
  1896      */
  1897     Name?: BucketName;
  1898     /**
  1899      * Limits the response to keys that begin with the specified prefix.
  1900      */
  1901     Prefix?: Prefix;
  1902     /**
  1903      * A delimiter is a character you use to group keys.
  1904      */
  1905     Delimiter?: Delimiter;
  1906     /**
  1907      * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more.
  1908      */
  1909     MaxKeys?: MaxKeys;
  1910     /**
  1911      * CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by delimiter
  1912      */
  1913     CommonPrefixes?: CommonPrefixList;
  1914     /**
  1915      * Encoding type used by Amazon S3 to encode object keys in the response.
  1916      */
  1917     EncodingType?: EncodingType;
  1918     /**
  1919      * KeyCount is the number of keys returned with this request. KeyCount will always be less than equals to MaxKeys field. Say you ask for 50 keys, your result will include less than equals 50 keys
  1920      */
  1921     KeyCount?: KeyCount;
  1922     /**
  1923      * ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key
  1924      */
  1925     ContinuationToken?: Token;
  1926     /**
  1927      * NextContinuationToken is sent when isTruncated is true which means there are more keys in the bucket that can be listed. The next list requests to Amazon S3 can be continued with this NextContinuationToken. NextContinuationToken is obfuscated and is not a real key
  1928      */
  1929     NextContinuationToken?: NextToken;
  1930     /**
  1931      * StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. StartAfter can be any key in the bucket
  1932      */
  1933     StartAfter?: StartAfter;
  1934   }
  1935   export interface ListObjectsV2Request {
  1936     /**
  1937      * Name of the bucket to list.
  1938      */
  1939     Bucket: BucketName;
  1940     /**
  1941      * A delimiter is a character you use to group keys.
  1942      */
  1943     Delimiter?: Delimiter;
  1944     /**
  1945      * Encoding type used by Amazon S3 to encode object keys in the response.
  1946      */
  1947     EncodingType?: EncodingType;
  1948     /**
  1949      * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more.
  1950      */
  1951     MaxKeys?: MaxKeys;
  1952     /**
  1953      * Limits the response to keys that begin with the specified prefix.
  1954      */
  1955     Prefix?: Prefix;
  1956     /**
  1957      * ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key
  1958      */
  1959     ContinuationToken?: Token;
  1960     /**
  1961      * The owner field is not present in listV2 by default, if you want to return owner field with each key in the result then set the fetch owner field to true
  1962      */
  1963     FetchOwner?: FetchOwner;
  1964     /**
  1965      * StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. StartAfter can be any key in the bucket
  1966      */
  1967     StartAfter?: StartAfter;
  1968     /**
  1969      * Confirms that the requester knows that she or he will be charged for the list objects request in V2 style. Bucket owners need not specify this parameter in their requests.
  1970      */
  1971     RequestPayer?: RequestPayer;
  1972   }
  1973   export interface ListPartsOutput {
  1974     /**
  1975      * Date when multipart upload will become eligible for abort operation by lifecycle.
  1976      */
  1977     AbortDate?: AbortDate;
  1978     /**
  1979      * Id of the lifecycle rule that makes a multipart upload eligible for abort operation.
  1980      */
  1981     AbortRuleId?: AbortRuleId;
  1982     /**
  1983      * Name of the bucket to which the multipart upload was initiated.
  1984      */
  1985     Bucket?: BucketName;
  1986     /**
  1987      * Object key for which the multipart upload was initiated.
  1988      */
  1989     Key?: ObjectKey;
  1990     /**
  1991      * Upload ID identifying the multipart upload whose parts are being listed.
  1992      */
  1993     UploadId?: MultipartUploadId;
  1994     /**
  1995      * Part number after which listing begins.
  1996      */
  1997     PartNumberMarker?: PartNumberMarker;
  1998     /**
  1999      * When a list is truncated, this element specifies the last part in the list, as well as the value to use for the part-number-marker request parameter in a subsequent request.
  2000      */
  2001     NextPartNumberMarker?: NextPartNumberMarker;
  2002     /**
  2003      * Maximum number of parts that were allowed in the response.
  2004      */
  2005     MaxParts?: MaxParts;
  2006     /**
  2007      * Indicates whether the returned list of parts is truncated.
  2008      */
  2009     IsTruncated?: IsTruncated;
  2010     Parts?: Parts;
  2011     /**
  2012      * Identifies who initiated the multipart upload.
  2013      */
  2014     Initiator?: Initiator;
  2015     Owner?: Owner;
  2016     /**
  2017      * The class of storage used to store the object.
  2018      */
  2019     StorageClass?: StorageClass;
  2020     RequestCharged?: RequestCharged;
  2021   }
  2022   export interface ListPartsRequest {
  2023     Bucket: BucketName;
  2024     Key: ObjectKey;
  2025     /**
  2026      * Sets the maximum number of parts to return.
  2027      */
  2028     MaxParts?: MaxParts;
  2029     /**
  2030      * Specifies the part after which listing should begin. Only parts with higher part numbers will be listed.
  2031      */
  2032     PartNumberMarker?: PartNumberMarker;
  2033     /**
  2034      * Upload ID identifying the multipart upload whose parts are being listed.
  2035      */
  2036     UploadId: MultipartUploadId;
  2037     RequestPayer?: RequestPayer;
  2038   }
  2039   export type Location = string;
  2040   export interface LoggingEnabled {
  2041     /**
  2042      * Specifies the bucket where you want Amazon S3 to store server access logs. You can have your logs delivered to any bucket that you own, including the same bucket that is being logged. You can also configure multiple buckets to deliver their logs to the same target bucket. In this case you should choose a different TargetPrefix for each source bucket so that the delivered log files can be distinguished by key.
  2043      */
  2044     TargetBucket?: TargetBucket;
  2045     TargetGrants?: TargetGrants;
  2046     /**
  2047      * This element lets you specify a prefix for the keys that the log files will be stored under.
  2048      */
  2049     TargetPrefix?: TargetPrefix;
  2050   }
  2051   export type MFA = string;
  2052   export type MFADelete = "Enabled"|"Disabled"|string;
  2053   export type MFADeleteStatus = "Enabled"|"Disabled"|string;
  2054   export type Marker = string;
  2055   export type MaxAgeSeconds = number;
  2056   export type MaxKeys = number;
  2057   export type MaxParts = number;
  2058   export type MaxUploads = number;
  2059   export type Message = string;
  2060   export type Metadata = {[key: string]: MetadataValue};
  2061   export type MetadataDirective = "COPY"|"REPLACE"|string;
  2062   export type MetadataKey = string;
  2063   export type MetadataValue = string;
  2064   export type MissingMeta = number;
  2065   export interface MultipartUpload {
  2066     /**
  2067      * Upload ID that identifies the multipart upload.
  2068      */
  2069     UploadId?: MultipartUploadId;
  2070     /**
  2071      * Key of the object for which the multipart upload was initiated.
  2072      */
  2073     Key?: ObjectKey;
  2074     /**
  2075      * Date and time at which the multipart upload was initiated.
  2076      */
  2077     Initiated?: Initiated;
  2078     /**
  2079      * The class of storage used to store the object.
  2080      */
  2081     StorageClass?: StorageClass;
  2082     Owner?: Owner;
  2083     /**
  2084      * Identifies who initiated the multipart upload.
  2085      */
  2086     Initiator?: Initiator;
  2087   }
  2088   export type MultipartUploadId = string;
  2089   export type MultipartUploadList = MultipartUpload[];
  2090   export type NextKeyMarker = string;
  2091   export type NextMarker = string;
  2092   export type NextPartNumberMarker = number;
  2093   export type NextToken = string;
  2094   export type NextUploadIdMarker = string;
  2095   export type NextVersionIdMarker = string;
  2096   export interface NoncurrentVersionExpiration {
  2097     /**
  2098      * Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
  2099      */
  2100     NoncurrentDays?: Days;
  2101   }
  2102   export interface NoncurrentVersionTransition {
  2103     /**
  2104      * Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.
  2105      */
  2106     NoncurrentDays?: Days;
  2107     /**
  2108      * The class of storage used to store the object.
  2109      */
  2110     StorageClass?: TransitionStorageClass;
  2111   }
  2112   export type NoncurrentVersionTransitionList = NoncurrentVersionTransition[];
  2113   export interface NotificationConfiguration {
  2114     TopicConfigurations?: TopicConfigurationList;
  2115     QueueConfigurations?: QueueConfigurationList;
  2116     LambdaFunctionConfigurations?: LambdaFunctionConfigurationList;
  2117   }
  2118   export interface NotificationConfigurationDeprecated {
  2119     TopicConfiguration?: TopicConfigurationDeprecated;
  2120     QueueConfiguration?: QueueConfigurationDeprecated;
  2121     CloudFunctionConfiguration?: CloudFunctionConfiguration;
  2122   }
  2123   export interface NotificationConfigurationFilter {
  2124     Key?: S3KeyFilter;
  2125   }
  2126   export type NotificationId = string;
  2127   export interface Object {
  2128     Key?: ObjectKey;
  2129     LastModified?: LastModified;
  2130     ETag?: ETag;
  2131     Size?: Size;
  2132     /**
  2133      * The class of storage used to store the object.
  2134      */
  2135     StorageClass?: ObjectStorageClass;
  2136     Owner?: Owner;
  2137   }
  2138   export type ObjectCannedACL = "private"|"public-read"|"public-read-write"|"authenticated-read"|"aws-exec-read"|"bucket-owner-read"|"bucket-owner-full-control"|string;
  2139   export interface ObjectIdentifier {
  2140     /**
  2141      * Key name of the object to delete.
  2142      */
  2143     Key: ObjectKey;
  2144     /**
  2145      * VersionId for the specific version of the object to delete.
  2146      */
  2147     VersionId?: ObjectVersionId;
  2148   }
  2149   export type ObjectIdentifierList = ObjectIdentifier[];
  2150   export type ObjectKey = string;
  2151   export type ObjectList = Object[];
  2152   export type ObjectStorageClass = "STANDARD"|"REDUCED_REDUNDANCY"|"GLACIER"|string;
  2153   export interface ObjectVersion {
  2154     ETag?: ETag;
  2155     /**
  2156      * Size in bytes of the object.
  2157      */
  2158     Size?: Size;
  2159     /**
  2160      * The class of storage used to store the object.
  2161      */
  2162     StorageClass?: ObjectVersionStorageClass;
  2163     /**
  2164      * The object key.
  2165      */
  2166     Key?: ObjectKey;
  2167     /**
  2168      * Version ID of an object.
  2169      */
  2170     VersionId?: ObjectVersionId;
  2171     /**
  2172      * Specifies whether the object is (true) or is not (false) the latest version of an object.
  2173      */
  2174     IsLatest?: IsLatest;
  2175     /**
  2176      * Date and time the object was last modified.
  2177      */
  2178     LastModified?: LastModified;
  2179     Owner?: Owner;
  2180   }
  2181   export type ObjectVersionId = string;
  2182   export type ObjectVersionList = ObjectVersion[];
  2183   export type ObjectVersionStorageClass = "STANDARD"|string;
  2184   export interface Owner {
  2185     DisplayName?: DisplayName;
  2186     ID?: ID;
  2187   }
  2188   export interface Part {
  2189     /**
  2190      * Part number identifying the part. This is a positive integer between 1 and 10,000.
  2191      */
  2192     PartNumber?: PartNumber;
  2193     /**
  2194      * Date and time at which the part was uploaded.
  2195      */
  2196     LastModified?: LastModified;
  2197     /**
  2198      * Entity tag returned when the part was uploaded.
  2199      */
  2200     ETag?: ETag;
  2201     /**
  2202      * Size of the uploaded part data.
  2203      */
  2204     Size?: Size;
  2205   }
  2206   export type PartNumber = number;
  2207   export type PartNumberMarker = number;
  2208   export type Parts = Part[];
  2209   export type PartsCount = number;
  2210   export type Payer = "Requester"|"BucketOwner"|string;
  2211   export type Permission = "FULL_CONTROL"|"WRITE"|"WRITE_ACP"|"READ"|"READ_ACP"|string;
  2212   export type Policy = string;
  2213   export type Prefix = string;
  2214   export type Protocol = "http"|"https"|string;
  2215   export interface PutBucketAccelerateConfigurationRequest {
  2216     /**
  2217      * Name of the bucket for which the accelerate configuration is set.
  2218      */
  2219     Bucket: BucketName;
  2220     /**
  2221      * Specifies the Accelerate Configuration you want to set for the bucket.
  2222      */
  2223     AccelerateConfiguration: AccelerateConfiguration;
  2224   }
  2225   export interface PutBucketAclRequest {
  2226     /**
  2227      * The canned ACL to apply to the bucket.
  2228      */
  2229     ACL?: BucketCannedACL;
  2230     AccessControlPolicy?: AccessControlPolicy;
  2231     Bucket: BucketName;
  2232     ContentMD5?: ContentMD5;
  2233     /**
  2234      * Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.
  2235      */
  2236     GrantFullControl?: GrantFullControl;
  2237     /**
  2238      * Allows grantee to list the objects in the bucket.
  2239      */
  2240     GrantRead?: GrantRead;
  2241     /**
  2242      * Allows grantee to read the bucket ACL.
  2243      */
  2244     GrantReadACP?: GrantReadACP;
  2245     /**
  2246      * Allows grantee to create, overwrite, and delete any object in the bucket.
  2247      */
  2248     GrantWrite?: GrantWrite;
  2249     /**
  2250      * Allows grantee to write the ACL for the applicable bucket.
  2251      */
  2252     GrantWriteACP?: GrantWriteACP;
  2253   }
  2254   export interface PutBucketCorsRequest {
  2255     Bucket: BucketName;
  2256     CORSConfiguration: CORSConfiguration;
  2257     ContentMD5?: ContentMD5;
  2258   }
  2259   export interface PutBucketLifecycleConfigurationRequest {
  2260     Bucket: BucketName;
  2261     LifecycleConfiguration?: BucketLifecycleConfiguration;
  2262   }
  2263   export interface PutBucketLifecycleRequest {
  2264     Bucket: BucketName;
  2265     ContentMD5?: ContentMD5;
  2266     LifecycleConfiguration?: LifecycleConfiguration;
  2267   }
  2268   export interface PutBucketLoggingRequest {
  2269     Bucket: BucketName;
  2270     BucketLoggingStatus: BucketLoggingStatus;
  2271     ContentMD5?: ContentMD5;
  2272   }
  2273   export interface PutBucketNotificationConfigurationRequest {
  2274     Bucket: BucketName;
  2275     NotificationConfiguration: NotificationConfiguration;
  2276   }
  2277   export interface PutBucketNotificationRequest {
  2278     Bucket: BucketName;
  2279     ContentMD5?: ContentMD5;
  2280     NotificationConfiguration: NotificationConfigurationDeprecated;
  2281   }
  2282   export interface PutBucketPolicyRequest {
  2283     Bucket: BucketName;
  2284     ContentMD5?: ContentMD5;
  2285     /**
  2286      * The bucket policy as a JSON document.
  2287      */
  2288     Policy: Policy;
  2289   }
  2290   export interface PutBucketReplicationRequest {
  2291     Bucket: BucketName;
  2292     ContentMD5?: ContentMD5;
  2293     ReplicationConfiguration: ReplicationConfiguration;
  2294   }
  2295   export interface PutBucketRequestPaymentRequest {
  2296     Bucket: BucketName;
  2297     ContentMD5?: ContentMD5;
  2298     RequestPaymentConfiguration: RequestPaymentConfiguration;
  2299   }
  2300   export interface PutBucketTaggingRequest {
  2301     Bucket: BucketName;
  2302     ContentMD5?: ContentMD5;
  2303     Tagging: Tagging;
  2304   }
  2305   export interface PutBucketVersioningRequest {
  2306     Bucket: BucketName;
  2307     ContentMD5?: ContentMD5;
  2308     /**
  2309      * The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.
  2310      */
  2311     MFA?: MFA;
  2312     VersioningConfiguration: VersioningConfiguration;
  2313   }
  2314   export interface PutBucketWebsiteRequest {
  2315     Bucket: BucketName;
  2316     ContentMD5?: ContentMD5;
  2317     WebsiteConfiguration: WebsiteConfiguration;
  2318   }
  2319   export interface PutObjectAclOutput {
  2320     RequestCharged?: RequestCharged;
  2321   }
  2322   export interface PutObjectAclRequest {
  2323     /**
  2324      * The canned ACL to apply to the object.
  2325      */
  2326     ACL?: ObjectCannedACL;
  2327     AccessControlPolicy?: AccessControlPolicy;
  2328     Bucket: BucketName;
  2329     ContentMD5?: ContentMD5;
  2330     /**
  2331      * Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.
  2332      */
  2333     GrantFullControl?: GrantFullControl;
  2334     /**
  2335      * Allows grantee to list the objects in the bucket.
  2336      */
  2337     GrantRead?: GrantRead;
  2338     /**
  2339      * Allows grantee to read the bucket ACL.
  2340      */
  2341     GrantReadACP?: GrantReadACP;
  2342     /**
  2343      * Allows grantee to create, overwrite, and delete any object in the bucket.
  2344      */
  2345     GrantWrite?: GrantWrite;
  2346     /**
  2347      * Allows grantee to write the ACL for the applicable bucket.
  2348      */
  2349     GrantWriteACP?: GrantWriteACP;
  2350     Key: ObjectKey;
  2351     RequestPayer?: RequestPayer;
  2352     /**
  2353      * VersionId used to reference a specific version of the object.
  2354      */
  2355     VersionId?: ObjectVersionId;
  2356   }
  2357   export interface PutObjectOutput {
  2358     /**
  2359      * If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL encoded.
  2360      */
  2361     Expiration?: Expiration;
  2362     /**
  2363      * Entity tag for the uploaded object.
  2364      */
  2365     ETag?: ETag;
  2366     /**
  2367      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
  2368      */
  2369     ServerSideEncryption?: ServerSideEncryption;
  2370     /**
  2371      * Version of the object.
  2372      */
  2373     VersionId?: ObjectVersionId;
  2374     /**
  2375      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
  2376      */
  2377     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  2378     /**
  2379      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
  2380      */
  2381     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  2382     /**
  2383      * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
  2384      */
  2385     SSEKMSKeyId?: SSEKMSKeyId;
  2386     RequestCharged?: RequestCharged;
  2387   }
  2388   export interface PutObjectRequest {
  2389     /**
  2390      * The canned ACL to apply to the object.
  2391      */
  2392     ACL?: ObjectCannedACL;
  2393     /**
  2394      * Object data.
  2395      */
  2396     Body?: Body;
  2397     /**
  2398      * Name of the bucket to which the PUT operation was initiated.
  2399      */
  2400     Bucket: BucketName;
  2401     /**
  2402      * Specifies caching behavior along the request/reply chain.
  2403      */
  2404     CacheControl?: CacheControl;
  2405     /**
  2406      * Specifies presentational information for the object.
  2407      */
  2408     ContentDisposition?: ContentDisposition;
  2409     /**
  2410      * Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
  2411      */
  2412     ContentEncoding?: ContentEncoding;
  2413     /**
  2414      * The language the content is in.
  2415      */
  2416     ContentLanguage?: ContentLanguage;
  2417     /**
  2418      * Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically.
  2419      */
  2420     ContentLength?: ContentLength;
  2421     /**
  2422      * The base64-encoded 128-bit MD5 digest of the part data.
  2423      */
  2424     ContentMD5?: ContentMD5;
  2425     /**
  2426      * A standard MIME type describing the format of the object data.
  2427      */
  2428     ContentType?: ContentType;
  2429     /**
  2430      * The date and time at which the object is no longer cacheable.
  2431      */
  2432     Expires?: Expires;
  2433     /**
  2434      * Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.
  2435      */
  2436     GrantFullControl?: GrantFullControl;
  2437     /**
  2438      * Allows grantee to read the object data and its metadata.
  2439      */
  2440     GrantRead?: GrantRead;
  2441     /**
  2442      * Allows grantee to read the object ACL.
  2443      */
  2444     GrantReadACP?: GrantReadACP;
  2445     /**
  2446      * Allows grantee to write the ACL for the applicable object.
  2447      */
  2448     GrantWriteACP?: GrantWriteACP;
  2449     /**
  2450      * Object key for which the PUT operation was initiated.
  2451      */
  2452     Key: ObjectKey;
  2453     /**
  2454      * A map of metadata to store with the object in S3.
  2455      */
  2456     Metadata?: Metadata;
  2457     /**
  2458      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
  2459      */
  2460     ServerSideEncryption?: ServerSideEncryption;
  2461     /**
  2462      * The type of storage to use for the object. Defaults to 'STANDARD'.
  2463      */
  2464     StorageClass?: StorageClass;
  2465     /**
  2466      * If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.
  2467      */
  2468     WebsiteRedirectLocation?: WebsiteRedirectLocation;
  2469     /**
  2470      * Specifies the algorithm to use to when encrypting the object (e.g., AES256).
  2471      */
  2472     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  2473     /**
  2474      * Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header.
  2475      */
  2476     SSECustomerKey?: SSECustomerKey;
  2477     /**
  2478      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
  2479      */
  2480     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  2481     /**
  2482      * Specifies the AWS KMS key ID to use for object encryption. All GET and PUT requests for an object protected by AWS KMS will fail if not made via SSL or using SigV4. Documentation on configuring any of the officially supported AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
  2483      */
  2484     SSEKMSKeyId?: SSEKMSKeyId;
  2485     RequestPayer?: RequestPayer;
  2486   }
  2487   export type QueueArn = string;
  2488   export interface QueueConfiguration {
  2489     Id?: NotificationId;
  2490     /**
  2491      * Amazon SQS queue ARN to which Amazon S3 will publish a message when it detects events of specified type.
  2492      */
  2493     QueueArn: QueueArn;
  2494     Events: EventList;
  2495     Filter?: NotificationConfigurationFilter;
  2496   }
  2497   export interface QueueConfigurationDeprecated {
  2498     Id?: NotificationId;
  2499     Event?: Event;
  2500     Events?: EventList;
  2501     Queue?: QueueArn;
  2502   }
  2503   export type QueueConfigurationList = QueueConfiguration[];
  2504   export type Quiet = boolean;
  2505   export type Range = string;
  2506   export interface Redirect {
  2507     /**
  2508      * The host name to use in the redirect request.
  2509      */
  2510     HostName?: HostName;
  2511     /**
  2512      * The HTTP redirect code to use on the response. Not required if one of the siblings is present.
  2513      */
  2514     HttpRedirectCode?: HttpRedirectCode;
  2515     /**
  2516      * Protocol to use (http, https) when redirecting requests. The default is the protocol that is used in the original request.
  2517      */
  2518     Protocol?: Protocol;
  2519     /**
  2520      * The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix docs/ (objects in the docs/ folder) to documents/, you can set a condition block with KeyPrefixEquals set to docs/ and in the Redirect set ReplaceKeyPrefixWith to /documents. Not required if one of the siblings is present. Can be present only if ReplaceKeyWith is not provided.
  2521      */
  2522     ReplaceKeyPrefixWith?: ReplaceKeyPrefixWith;
  2523     /**
  2524      * The specific object key to use in the redirect request. For example, redirect request to error.html. Not required if one of the sibling is present. Can be present only if ReplaceKeyPrefixWith is not provided.
  2525      */
  2526     ReplaceKeyWith?: ReplaceKeyWith;
  2527   }
  2528   export interface RedirectAllRequestsTo {
  2529     /**
  2530      * Name of the host where requests will be redirected.
  2531      */
  2532     HostName: HostName;
  2533     /**
  2534      * Protocol to use (http, https) when redirecting requests. The default is the protocol that is used in the original request.
  2535      */
  2536     Protocol?: Protocol;
  2537   }
  2538   export type ReplaceKeyPrefixWith = string;
  2539   export type ReplaceKeyWith = string;
  2540   export interface ReplicationConfiguration {
  2541     /**
  2542      * Amazon Resource Name (ARN) of an IAM role for Amazon S3 to assume when replicating the objects.
  2543      */
  2544     Role: Role;
  2545     /**
  2546      * Container for information about a particular replication rule. Replication configuration must have at least one rule and can contain up to 1,000 rules.
  2547      */
  2548     Rules: ReplicationRules;
  2549   }
  2550   export interface ReplicationRule {
  2551     /**
  2552      * Unique identifier for the rule. The value cannot be longer than 255 characters.
  2553      */
  2554     ID?: ID;
  2555     /**
  2556      * Object keyname prefix identifying one or more objects to which the rule applies. Maximum prefix length can be up to 1,024 characters. Overlapping prefixes are not supported.
  2557      */
  2558     Prefix: Prefix;
  2559     /**
  2560      * The rule is ignored if status is not Enabled.
  2561      */
  2562     Status: ReplicationRuleStatus;
  2563     Destination: Destination;
  2564   }
  2565   export type ReplicationRuleStatus = "Enabled"|"Disabled"|string;
  2566   export type ReplicationRules = ReplicationRule[];
  2567   export type ReplicationStatus = "COMPLETE"|"PENDING"|"FAILED"|"REPLICA"|string;
  2568   export type RequestCharged = "requester"|string;
  2569   export type RequestPayer = "requester"|string;
  2570   export interface RequestPaymentConfiguration {
  2571     /**
  2572      * Specifies who pays for the download and request fees.
  2573      */
  2574     Payer: Payer;
  2575   }
  2576   export type ResponseCacheControl = string;
  2577   export type ResponseContentDisposition = string;
  2578   export type ResponseContentEncoding = string;
  2579   export type ResponseContentLanguage = string;
  2580   export type ResponseContentType = string;
  2581   export type ResponseExpires = Date;
  2582   export type Restore = string;
  2583   export interface RestoreObjectOutput {
  2584     RequestCharged?: RequestCharged;
  2585   }
  2586   export interface RestoreObjectRequest {
  2587     Bucket: BucketName;
  2588     Key: ObjectKey;
  2589     VersionId?: ObjectVersionId;
  2590     RestoreRequest?: RestoreRequest;
  2591     RequestPayer?: RequestPayer;
  2592   }
  2593   export interface RestoreRequest {
  2594     /**
  2595      * Lifetime of the active copy in days
  2596      */
  2597     Days: Days;
  2598     /**
  2599      * Glacier related prameters pertaining to this job.
  2600      */
  2601     GlacierJobParameters?: GlacierJobParameters;
  2602   }
  2603   export type Role = string;
  2604   export interface RoutingRule {
  2605     /**
  2606      * A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the /docs folder, redirect to the /documents folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error.
  2607      */
  2608     Condition?: Condition;
  2609     /**
  2610      * Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can can specify a different error code to return.
  2611      */
  2612     Redirect: Redirect;
  2613   }
  2614   export type RoutingRules = RoutingRule[];
  2615   export interface Rule {
  2616     Expiration?: LifecycleExpiration;
  2617     /**
  2618      * Unique identifier for the rule. The value cannot be longer than 255 characters.
  2619      */
  2620     ID?: ID;
  2621     /**
  2622      * Prefix identifying one or more objects to which the rule applies.
  2623      */
  2624     Prefix: Prefix;
  2625     /**
  2626      * If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.
  2627      */
  2628     Status: ExpirationStatus;
  2629     Transition?: Transition;
  2630     NoncurrentVersionTransition?: NoncurrentVersionTransition;
  2631     NoncurrentVersionExpiration?: NoncurrentVersionExpiration;
  2632     AbortIncompleteMultipartUpload?: AbortIncompleteMultipartUpload;
  2633   }
  2634   export type Rules = Rule[];
  2635   export interface S3KeyFilter {
  2636     FilterRules?: FilterRuleList;
  2637   }
  2638   export type SSECustomerAlgorithm = string;
  2639   export type SSECustomerKey = Buffer|Uint8Array|Blob|string;
  2640   export type SSECustomerKeyMD5 = string;
  2641   export type SSEKMSKeyId = string;
  2642   export type ServerSideEncryption = "AES256"|"aws:kms"|string;
  2643   export type Size = number;
  2644   export type StartAfter = string;
  2645   export type StorageClass = "STANDARD"|"REDUCED_REDUNDANCY"|"STANDARD_IA"|string;
  2646   export type Suffix = string;
  2647   export interface Tag {
  2648     /**
  2649      * Name of the tag.
  2650      */
  2651     Key: ObjectKey;
  2652     /**
  2653      * Value of the tag.
  2654      */
  2655     Value: Value;
  2656   }
  2657   export type TagSet = Tag[];
  2658   export interface Tagging {
  2659     TagSet: TagSet;
  2660   }
  2661   export type TargetBucket = string;
  2662   export interface TargetGrant {
  2663     Grantee?: Grantee;
  2664     /**
  2665      * Logging permissions assigned to the Grantee for the bucket.
  2666      */
  2667     Permission?: BucketLogsPermission;
  2668   }
  2669   export type TargetGrants = TargetGrant[];
  2670   export type TargetPrefix = string;
  2671   export type Tier = "Standard"|"Bulk"|"Expedited"|string;
  2672   export type Token = string;
  2673   export type TopicArn = string;
  2674   export interface TopicConfiguration {
  2675     Id?: NotificationId;
  2676     /**
  2677      * Amazon SNS topic ARN to which Amazon S3 will publish a message when it detects events of specified type.
  2678      */
  2679     TopicArn: TopicArn;
  2680     Events: EventList;
  2681     Filter?: NotificationConfigurationFilter;
  2682   }
  2683   export interface TopicConfigurationDeprecated {
  2684     Id?: NotificationId;
  2685     Events?: EventList;
  2686     /**
  2687      * Bucket event for which to send notifications.
  2688      */
  2689     Event?: Event;
  2690     /**
  2691      * Amazon SNS topic to which Amazon S3 will publish a message to report the specified events for the bucket.
  2692      */
  2693     Topic?: TopicArn;
  2694   }
  2695   export type TopicConfigurationList = TopicConfiguration[];
  2696   export interface Transition {
  2697     /**
  2698      * Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format.
  2699      */
  2700     Date?: _Date;
  2701     /**
  2702      * Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.
  2703      */
  2704     Days?: Days;
  2705     /**
  2706      * The class of storage used to store the object.
  2707      */
  2708     StorageClass?: TransitionStorageClass;
  2709   }
  2710   export type TransitionList = Transition[];
  2711   export type TransitionStorageClass = "GLACIER"|"STANDARD_IA"|string;
  2712   export type Type = "CanonicalUser"|"AmazonCustomerByEmail"|"Group"|string;
  2713   export type URI = string;
  2714   export type UploadIdMarker = string;
  2715   export interface UploadPartCopyOutput {
  2716     /**
  2717      * The version of the source object that was copied, if you have enabled versioning on the source bucket.
  2718      */
  2719     CopySourceVersionId?: CopySourceVersionId;
  2720     CopyPartResult?: CopyPartResult;
  2721     /**
  2722      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
  2723      */
  2724     ServerSideEncryption?: ServerSideEncryption;
  2725     /**
  2726      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
  2727      */
  2728     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  2729     /**
  2730      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
  2731      */
  2732     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  2733     /**
  2734      * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
  2735      */
  2736     SSEKMSKeyId?: SSEKMSKeyId;
  2737     RequestCharged?: RequestCharged;
  2738   }
  2739   export interface UploadPartCopyRequest {
  2740     Bucket: BucketName;
  2741     /**
  2742      * The name of the source bucket and key name of the source object, separated by a slash (/). Must be URL-encoded.
  2743      */
  2744     CopySource: CopySource;
  2745     /**
  2746      * Copies the object if its entity tag (ETag) matches the specified tag.
  2747      */
  2748     CopySourceIfMatch?: CopySourceIfMatch;
  2749     /**
  2750      * Copies the object if it has been modified since the specified time.
  2751      */
  2752     CopySourceIfModifiedSince?: CopySourceIfModifiedSince;
  2753     /**
  2754      * Copies the object if its entity tag (ETag) is different than the specified ETag.
  2755      */
  2756     CopySourceIfNoneMatch?: CopySourceIfNoneMatch;
  2757     /**
  2758      * Copies the object if it hasn't been modified since the specified time.
  2759      */
  2760     CopySourceIfUnmodifiedSince?: CopySourceIfUnmodifiedSince;
  2761     /**
  2762      * The range of bytes to copy from the source object. The range value must use the form bytes=first-last, where the first and last are the zero-based byte offsets to copy. For example, bytes=0-9 indicates that you want to copy the first ten bytes of the source. You can copy a range only if the source object is greater than 5 GB.
  2763      */
  2764     CopySourceRange?: CopySourceRange;
  2765     Key: ObjectKey;
  2766     /**
  2767      * Part number of part being copied. This is a positive integer between 1 and 10,000.
  2768      */
  2769     PartNumber: PartNumber;
  2770     /**
  2771      * Upload ID identifying the multipart upload whose part is being copied.
  2772      */
  2773     UploadId: MultipartUploadId;
  2774     /**
  2775      * Specifies the algorithm to use to when encrypting the object (e.g., AES256).
  2776      */
  2777     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  2778     /**
  2779      * Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.
  2780      */
  2781     SSECustomerKey?: SSECustomerKey;
  2782     /**
  2783      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
  2784      */
  2785     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  2786     /**
  2787      * Specifies the algorithm to use when decrypting the source object (e.g., AES256).
  2788      */
  2789     CopySourceSSECustomerAlgorithm?: CopySourceSSECustomerAlgorithm;
  2790     /**
  2791      * Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.
  2792      */
  2793     CopySourceSSECustomerKey?: CopySourceSSECustomerKey;
  2794     /**
  2795      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
  2796      */
  2797     CopySourceSSECustomerKeyMD5?: CopySourceSSECustomerKeyMD5;
  2798     RequestPayer?: RequestPayer;
  2799   }
  2800   export interface UploadPartOutput {
  2801     /**
  2802      * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
  2803      */
  2804     ServerSideEncryption?: ServerSideEncryption;
  2805     /**
  2806      * Entity tag for the uploaded object.
  2807      */
  2808     ETag?: ETag;
  2809     /**
  2810      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.
  2811      */
  2812     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  2813     /**
  2814      * If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round trip message integrity verification of the customer-provided encryption key.
  2815      */
  2816     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  2817     /**
  2818      * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object.
  2819      */
  2820     SSEKMSKeyId?: SSEKMSKeyId;
  2821     RequestCharged?: RequestCharged;
  2822   }
  2823   export interface UploadPartRequest {
  2824     /**
  2825      * Object data.
  2826      */
  2827     Body?: Body;
  2828     /**
  2829      * Name of the bucket to which the multipart upload was initiated.
  2830      */
  2831     Bucket: BucketName;
  2832     /**
  2833      * Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically.
  2834      */
  2835     ContentLength?: ContentLength;
  2836     /**
  2837      * The base64-encoded 128-bit MD5 digest of the part data.
  2838      */
  2839     ContentMD5?: ContentMD5;
  2840     /**
  2841      * Object key for which the multipart upload was initiated.
  2842      */
  2843     Key: ObjectKey;
  2844     /**
  2845      * Part number of part being uploaded. This is a positive integer between 1 and 10,000.
  2846      */
  2847     PartNumber: PartNumber;
  2848     /**
  2849      * Upload ID identifying the multipart upload whose part is being uploaded.
  2850      */
  2851     UploadId: MultipartUploadId;
  2852     /**
  2853      * Specifies the algorithm to use to when encrypting the object (e.g., AES256).
  2854      */
  2855     SSECustomerAlgorithm?: SSECustomerAlgorithm;
  2856     /**
  2857      * Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side​-encryption​-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.
  2858      */
  2859     SSECustomerKey?: SSECustomerKey;
  2860     /**
  2861      * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure the encryption key was transmitted without error.
  2862      */
  2863     SSECustomerKeyMD5?: SSECustomerKeyMD5;
  2864     RequestPayer?: RequestPayer;
  2865   }
  2866   export type Value = string;
  2867   export type VersionIdMarker = string;
  2868   export interface VersioningConfiguration {
  2869     /**
  2870      * Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is only returned if the bucket has been configured with MFA delete. If the bucket has never been so configured, this element is not returned.
  2871      */
  2872     MFADelete?: MFADelete;
  2873     /**
  2874      * The versioning state of the bucket.
  2875      */
  2876     Status?: BucketVersioningStatus;
  2877   }
  2878   export interface WebsiteConfiguration {
  2879     ErrorDocument?: ErrorDocument;
  2880     IndexDocument?: IndexDocument;
  2881     RedirectAllRequestsTo?: RedirectAllRequestsTo;
  2882     RoutingRules?: RoutingRules;
  2883   }
  2884   export type WebsiteRedirectLocation = string;
  2885   /**
  2886    * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
  2887    */
  2888   export type apiVersion = "2006-03-01"|"latest"|string;
  2889   export interface ClientApiVersions {
  2890     /**
  2891      * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
  2892      */
  2893     apiVersion?: apiVersion;
  2894   }
  2895   export type ClientConfiguration = ServiceConfigurationOptions & UseDualstackConfigOptions & ClientApiVersions;
  2896 }
  2897 export = S3;