import {Request} from '../lib/request'; import {Response} from '../lib/response'; import {AWSError} from '../lib/error'; import {S3Customizations} from '../lib/services/s3'; import {ServiceConfigurationOptions} from '../lib/service'; import {ConfigBase as Config} from '../lib/config'; import {UseDualstackConfigOptions} from '../lib/config_use_dualstack'; import {ManagedUpload as managed_upload} from '../lib/s3/managed_upload'; import {PresignedPost as presigned_post} from '../lib/s3/presigned_post'; interface Blob {} declare class S3 extends S3Customizations { /** * Constructs a service object. This object has one method for each API operation. */ constructor(options?: S3.Types.ClientConfiguration) config: Config & S3.Types.ClientConfiguration; /** * 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. */ abortMultipartUpload(params: S3.Types.AbortMultipartUploadRequest, callback?: (err: AWSError, data: S3.Types.AbortMultipartUploadOutput) => void): Request; /** * 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. */ abortMultipartUpload(callback?: (err: AWSError, data: S3.Types.AbortMultipartUploadOutput) => void): Request; /** * Add a legal hold on an object. The legal hold identifiers are stored in the object metadata along with the timestamp of when they are POSTed to the object. The presence of any legal hold identifiers prevents the modification or deletion of the object data, even if the retention period has expired. The presence of a retention period header is required, otherwise a 400 error is returned. */ addLegalHold(params: S3.Types.LegalHoldRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Add a legal hold on an object. The legal hold identifiers are stored in the object metadata along with the timestamp of when they are POSTed to the object. The presence of any legal hold identifiers prevents the modification or deletion of the object data, even if the retention period has expired. The presence of a retention period header is required, otherwise a 400 error is returned. */ addLegalHold(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Completes a multipart upload by assembling previously uploaded parts. */ completeMultipartUpload(params: S3.Types.CompleteMultipartUploadRequest, callback?: (err: AWSError, data: S3.Types.CompleteMultipartUploadOutput) => void): Request; /** * Completes a multipart upload by assembling previously uploaded parts. */ completeMultipartUpload(callback?: (err: AWSError, data: S3.Types.CompleteMultipartUploadOutput) => void): Request; /** * Creates a copy of an object that is already stored in Amazon S3. */ copyObject(params: S3.Types.CopyObjectRequest, callback?: (err: AWSError, data: S3.Types.CopyObjectOutput) => void): Request; /** * Creates a copy of an object that is already stored in Amazon S3. */ copyObject(callback?: (err: AWSError, data: S3.Types.CopyObjectOutput) => void): Request; /** * Creates a new bucket. */ createBucket(params: S3.Types.CreateBucketRequest, callback?: (err: AWSError, data: S3.Types.CreateBucketOutput) => void): Request; /** * Creates a new bucket. */ createBucket(callback?: (err: AWSError, data: S3.Types.CreateBucketOutput) => void): Request; /** * 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, IBM COS frees up the parts storage and stops charging you for the parts storage. */ createMultipartUpload(params: S3.Types.CreateMultipartUploadRequest, callback?: (err: AWSError, data: S3.Types.CreateMultipartUploadOutput) => void): Request; /** * 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, IBM COS frees up the parts storage and stops charging you for the parts storage. */ createMultipartUpload(callback?: (err: AWSError, data: S3.Types.CreateMultipartUploadOutput) => void): Request; /** * 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. */ deleteBucket(params: S3.Types.DeleteBucketRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * 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. */ deleteBucket(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Deletes the cors configuration information set for the bucket. */ deleteBucketCors(params: S3.Types.DeleteBucketCorsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Deletes the cors configuration information set for the bucket. */ deleteBucketCors(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Remove Legal hold on an object. The legal hold identifiers are stored in the object metadata along with the timestamp of when they are POSTed to the object. The presence of any legal hold identifiers prevents the modification or deletion of the object data, even if the retention period has expired. The presence of a retention period header is required, otherwise a 400 error is returned. */ deleteLegalHold(params: S3.Types.LegalHoldRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Remove Legal hold on an object. The legal hold identifiers are stored in the object metadata along with the timestamp of when they are POSTed to the object. The presence of any legal hold identifiers prevents the modification or deletion of the object data, even if the retention period has expired. The presence of a retention period header is required, otherwise a 400 error is returned. */ deleteLegalHold(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Deletes the lifecycle configuration from the bucket. */ deleteBucketLifecycle(params: S3.Types.DeleteBucketLifecycleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Deletes the lifecycle configuration from the bucket. */ deleteBucketLifecycle(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Deletes the tags from the bucket. */ deleteBucketTagging(params: S3.Types.DeleteBucketTaggingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Deletes the tags from the bucket. */ deleteBucketTagging(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * If object versioning is not enabled, deletes an object. If versioning is enabled, 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, IBM COS does not remove any objects. */ deleteObject(params: S3.Types.DeleteObjectRequest, callback?: (err: AWSError, data: S3.Types.DeleteObjectOutput) => void): Request; /** * If object versioning is not enabled, deletes an object. If versioning is enabled, 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, IBM COS does not remove any objects. */ deleteObject(callback?: (err: AWSError, data: S3.Types.DeleteObjectOutput) => void): Request; /** * This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys. */ deleteObjects(params: S3.Types.DeleteObjectsRequest, callback?: (err: AWSError, data: S3.Types.DeleteObjectsOutput) => void): Request; /** * This operation enables you to delete multiple objects from a bucket using a single HTTP request. You may specify up to 1000 keys. */ deleteObjects(callback?: (err: AWSError, data: S3.Types.DeleteObjectsOutput) => void): Request; /** * This implementation of the POST operation uses the extendRetention sub-resource to extend the retention period of a protected object in a protected vault. */ extendObjectRetention(params: S3.Types.ExtendObjectRetentionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * This implementation of the POST operation uses the extendRetention sub-resource to extend the retention period of a protected object in a protected vault. */ extendObjectRetention(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Gets the access control policy for the bucket. */ getBucketAcl(params: S3.Types.GetBucketAclRequest, callback?: (err: AWSError, data: S3.Types.GetBucketAclOutput) => void): Request; /** * Gets the access control policy for the bucket. */ getBucketAcl(callback?: (err: AWSError, data: S3.Types.GetBucketAclOutput) => void): Request; /** * Returns the cors configuration for the bucket. */ getBucketCors(params: S3.Types.GetBucketCorsRequest, callback?: (err: AWSError, data: S3.Types.GetBucketCorsOutput) => void): Request; /** * Returns the cors configuration for the bucket. */ getBucketCors(callback?: (err: AWSError, data: S3.Types.GetBucketCorsOutput) => void): Request; /** * No longer used, see the GetBucketLifecycleConfiguration operation. */ getBucketLifecycle(params: S3.Types.GetBucketLifecycleRequest, callback?: (err: AWSError, data: S3.Types.GetBucketLifecycleOutput) => void): Request; /** * No longer used, see the GetBucketLifecycleConfiguration operation. */ getBucketLifecycle(callback?: (err: AWSError, data: S3.Types.GetBucketLifecycleOutput) => void): Request; /** * Returns the lifecycle configuration information set on the bucket. */ getBucketLifecycleConfiguration(params: S3.Types.GetBucketLifecycleConfigurationRequest, callback?: (err: AWSError, data: S3.Types.GetBucketLifecycleConfigurationOutput) => void): Request; /** * Returns the lifecycle configuration information set on the bucket. */ getBucketLifecycleConfiguration(callback?: (err: AWSError, data: S3.Types.GetBucketLifecycleConfigurationOutput) => void): Request; /** * Returns the region the bucket resides in. */ getBucketLocation(params: S3.Types.GetBucketLocationRequest, callback?: (err: AWSError, data: S3.Types.GetBucketLocationOutput) => void): Request; /** * Returns the region the bucket resides in. */ getBucketLocation(callback?: (err: AWSError, data: S3.Types.GetBucketLocationOutput) => void): Request; /** * Returns the protection configuration of a bucket. */ getBucketProtectionConfiguration(params: S3.Types.GetBucketProtectionConfigurationRequest, callback?: (err: AWSError, data: S3.Types.GetBucketProtectionConfigurationOutput) => void): Request; /** * Returns the protection configuration of a bucket. */ getBucketProtectionConfiguration(callback?: (err: AWSError, data: S3.Types.GetBucketProtectionConfigurationOutput) => void): Request; /** * Returns the tag set associated with the bucket. */ getBucketTagging(params: S3.Types.GetBucketTaggingRequest, callback?: (err: AWSError, data: S3.Types.GetBucketTaggingOutput) => void): Request; /** * Returns the tag set associated with the bucket. */ getBucketTagging(callback?: (err: AWSError, data: S3.Types.GetBucketTaggingOutput) => void): Request; /** * Returns the versioning state of a bucket. */ getBucketVersioning(params: S3.Types.GetBucketVersioningRequest, callback?: (err: AWSError, data: S3.Types.GetBucketVersioningOutput) => void): Request; /** * Returns the versioning state of a bucket. */ getBucketVersioning(callback?: (err: AWSError, data: S3.Types.GetBucketVersioningOutput) => void): Request; /** * Retrieves objects from IBM COS. */ getObject(params: S3.Types.GetObjectRequest, callback?: (err: AWSError, data: S3.Types.GetObjectOutput) => void): Request; /** * Retrieves objects from IBM COS. */ getObject(callback?: (err: AWSError, data: S3.Types.GetObjectOutput) => void): Request; /** * Returns the access control list (ACL) of an object. */ getObjectAcl(params: S3.Types.GetObjectAclRequest, callback?: (err: AWSError, data: S3.Types.GetObjectAclOutput) => void): Request; /** * Returns the access control list (ACL) of an object. */ getObjectAcl(callback?: (err: AWSError, data: S3.Types.GetObjectAclOutput) => void): Request; /** * This operation is useful to determine if a bucket exists and you have permission to access it. */ headBucket(params: S3.Types.HeadBucketRequest, callback?: (err: AWSError, data: S3.Types.HeadBucketOutput) => void): Request; /** * This operation is useful to determine if a bucket exists and you have permission to access it. */ headBucket(callback?: (err: AWSError, data: S3.Types.HeadBucketOutput) => void): Request; /** * 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. */ headObject(params: S3.Types.HeadObjectRequest, callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request; /** * 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. */ headObject(callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request; /** * Returns a list of all buckets owned by the authenticated sender of the request. */ listBuckets(params: S3.Types.ListBucketsInput, callback?: (err: AWSError, data: S3.Types.ListBucketsOutput) => void): Request; /** * Returns a list of all buckets owned by the authenticated sender of the request. */ listBuckets(callback?: (err: AWSError, data: S3.Types.ListBucketsOutput) => void): Request; /** * Returns a list of all buckets owned by the authenticated sender of the request, along with the LocationConstraint describing the region that the bucket resides in and the bucket's storage tier. */ listBucketsExtended(params: S3.Types.ListBucketsExtendedInput, callback?: (err: AWSError, data: S3.Types.ListBucketsExtendedOutput) => void): Request; /** * Returns a list of all buckets owned by the authenticated sender of the request, along with the LocationConstraint describing the region that the bucket resides in and the bucket's storage tier. */ listBucketsExtended(callback?: (err: AWSError, data: S3.Types.ListBucketsExtendedOutput) => void): Request; /** * Returns a list of legal holds on an object */ listLegalHolds(params: S3.Types.ListLegalHoldsRequest, callback?: (err: AWSError, data: S3.Types.ListLegalHoldsOutput) => void): Request; /** * Returns a list of legal holds on an object */ listLegalHolds(callback?: (err: AWSError, data: S3.Types.ListLegalHoldsOutput) => void): Request; /** * This operation lists in-progress multipart uploads. */ listMultipartUploads(params: S3.Types.ListMultipartUploadsRequest, callback?: (err: AWSError, data: S3.Types.ListMultipartUploadsOutput) => void): Request; /** * This operation lists in-progress multipart uploads. */ listMultipartUploads(callback?: (err: AWSError, data: S3.Types.ListMultipartUploadsOutput) => void): Request; /** * Returns metadata about all of the versions of objects in a bucket. */ listObjectVersions(params: S3.Types.ListObjectVersionsRequest, callback?: (err: AWSError, data: S3.Types.ListObjectVersionsOutput) => void): Request; /** * Returns metadata about all of the versions of objects in a bucket. */ listObjectVersions(callback?: (err: AWSError, data: S3.Types.ListObjectVersionsOutput) => void): Request; /** * 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. */ listObjects(params: S3.Types.ListObjectsRequest, callback?: (err: AWSError, data: S3.Types.ListObjectsOutput) => void): Request; /** * 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. */ listObjects(callback?: (err: AWSError, data: S3.Types.ListObjectsOutput) => void): Request; /** * 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. */ listObjectsV2(params: S3.Types.ListObjectsV2Request, callback?: (err: AWSError, data: S3.Types.ListObjectsV2Output) => void): Request; /** * 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. */ listObjectsV2(callback?: (err: AWSError, data: S3.Types.ListObjectsV2Output) => void): Request; /** * Lists the parts that have been uploaded for a specific multipart upload. */ listParts(params: S3.Types.ListPartsRequest, callback?: (err: AWSError, data: S3.Types.ListPartsOutput) => void): Request; /** * Lists the parts that have been uploaded for a specific multipart upload. */ listParts(callback?: (err: AWSError, data: S3.Types.ListPartsOutput) => void): Request; /** * Sets the permissions on a bucket using access control lists (ACL). */ putBucketAcl(params: S3.Types.PutBucketAclRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the permissions on a bucket using access control lists (ACL). */ putBucketAcl(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the cors configuration for a bucket. */ putBucketCors(params: S3.Types.PutBucketCorsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the cors configuration for a bucket. */ putBucketCors(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the protection configuration of an existing bucket. */ putBucketProtectionConfiguration(params: S3.Types.PutBucketProtectionConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the protection configuration of an existing bucket. */ putBucketProtectionConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * No longer used, see the PutBucketLifecycleConfiguration operation. */ putBucketLifecycle(params: S3.Types.PutBucketLifecycleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * No longer used, see the PutBucketLifecycleConfiguration operation. */ putBucketLifecycle(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it. */ putBucketLifecycleConfiguration(params: S3.Types.PutBucketLifecycleConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets lifecycle configuration for your bucket. If a lifecycle configuration exists, it replaces it. */ putBucketLifecycleConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the tags for a bucket. */ putBucketTagging(params: S3.Types.PutBucketTaggingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the tags for a bucket. */ putBucketTagging(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner. */ putBucketVersioning(params: S3.Types.PutBucketVersioningRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner. */ putBucketVersioning(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; /** * Adds an object to a bucket. */ putObject(params: S3.Types.PutObjectRequest, callback?: (err: AWSError, data: S3.Types.PutObjectOutput) => void): Request; /** * Adds an object to a bucket. */ putObject(callback?: (err: AWSError, data: S3.Types.PutObjectOutput) => void): Request; /** * uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket */ putObjectAcl(params: S3.Types.PutObjectAclRequest, callback?: (err: AWSError, data: S3.Types.PutObjectAclOutput) => void): Request; /** * uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket */ putObjectAcl(callback?: (err: AWSError, data: S3.Types.PutObjectAclOutput) => void): Request; /** * Restores an archived copy of an object back into Amazon S3 */ restoreObject(params: S3.Types.RestoreObjectRequest, callback?: (err: AWSError, data: S3.Types.RestoreObjectOutput) => void): Request; /** * Restores an archived copy of an object back into Amazon S3 */ restoreObject(callback?: (err: AWSError, data: S3.Types.RestoreObjectOutput) => void): Request; /** * 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, IBM COS frees up the parts storage and stops charging you for the parts storage. */ uploadPart(params: S3.Types.UploadPartRequest, callback?: (err: AWSError, data: S3.Types.UploadPartOutput) => void): Request; /** * 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, IBM COS frees up the parts storage and stops charging you for the parts storage. */ uploadPart(callback?: (err: AWSError, data: S3.Types.UploadPartOutput) => void): Request; /** * Uploads a part by copying data from an existing object as data source. */ uploadPartCopy(params: S3.Types.UploadPartCopyRequest, callback?: (err: AWSError, data: S3.Types.UploadPartCopyOutput) => void): Request; /** * Uploads a part by copying data from an existing object as data source. */ uploadPartCopy(callback?: (err: AWSError, data: S3.Types.UploadPartCopyOutput) => void): Request; /** * Waits for the bucketExists state by periodically calling the underlying S3.headBucketoperation every 5 seconds (at most 20 times). */ waitFor(state: "bucketExists", params: S3.Types.HeadBucketRequest, callback?: (err: AWSError, data: S3.Types.HeadBucketOutput) => void): Request; /** * Waits for the bucketExists state by periodically calling the underlying S3.headBucketoperation every 5 seconds (at most 20 times). */ waitFor(state: "bucketExists", callback?: (err: AWSError, data: S3.Types.HeadBucketOutput) => void): Request; /** * Waits for the bucketNotExists state by periodically calling the underlying S3.headBucketoperation every 5 seconds (at most 20 times). */ waitFor(state: "bucketNotExists", params: S3.Types.HeadBucketRequest, callback?: (err: AWSError, data: S3.Types.HeadBucketOutput) => void): Request; /** * Waits for the bucketNotExists state by periodically calling the underlying S3.headBucketoperation every 5 seconds (at most 20 times). */ waitFor(state: "bucketNotExists", callback?: (err: AWSError, data: S3.Types.HeadBucketOutput) => void): Request; /** * Waits for the objectExists state by periodically calling the underlying S3.headObjectoperation every 5 seconds (at most 20 times). */ waitFor(state: "objectExists", params: S3.Types.HeadObjectRequest, callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request; /** * Waits for the objectExists state by periodically calling the underlying S3.headObjectoperation every 5 seconds (at most 20 times). */ waitFor(state: "objectExists", callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request; /** * Waits for the objectNotExists state by periodically calling the underlying S3.headObjectoperation every 5 seconds (at most 20 times). */ waitFor(state: "objectNotExists", params: S3.Types.HeadObjectRequest, callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request; /** * Waits for the objectNotExists state by periodically calling the underlying S3.headObjectoperation every 5 seconds (at most 20 times). */ waitFor(state: "objectNotExists", callback?: (err: AWSError, data: S3.Types.HeadObjectOutput) => void): Request; } declare namespace S3 { export import ManagedUpload = managed_upload; export import PresignedPost = presigned_post; } declare namespace S3 { export type AbortDate = Date; export interface AbortIncompleteMultipartUpload { /** * Indicates the number of days that must pass since initiation for Lifecycle to abort an Incomplete Multipart Upload. */ DaysAfterInitiation?: DaysAfterInitiation; } export interface AbortMultipartUploadOutput { } export interface AbortMultipartUploadRequest { Bucket: BucketName; Key: ObjectKey; UploadId: MultipartUploadId; } export type AbortRuleId = string; export type AcceptRanges = string; export interface AccessControlPolicy { /** * A list of grants. */ Grants?: Grants; Owner?: Owner; } export type AccountId = string; export type AdditionalRetentionPeriod = number; export type AllowedHeader = string; export type AllowedHeaders = AllowedHeader[]; export type AllowedMethod = string; export type AllowedMethods = AllowedMethod[]; export type AllowedOrigin = string; export type AllowedOrigins = AllowedOrigin[]; export type Body = Buffer|Uint8Array|Blob|string; export interface Bucket { /** * The name of the bucket. */ Name?: BucketName; /** * Date the bucket was created. */ CreationDate?: CreationDate; LocationConstraint?: BucketLocationConstraint; } export type BucketCannedACL = "private"|"public-read"|"public-read-write"|"authenticated-read"|string; export interface BucketLifecycleConfiguration { Rules: LifecycleRules; } export type BucketLocationConstraint = "us-standard"|"us-vault"|"us-cold"|"us-flex"|"us-east-standard"|"us-east-vault"|"us-east-cold"|"us-east-flex"|"us-south-standard"|"us-south-vault"|"us-south-cold"|"us-south-flex"|"eu-standard"|"eu-vault"|"eu-cold"|"eu-flex"|"eu-gb-standard"|"eu-gb-vault"|"eu-gb-cold"|"eu-gb-flex"|"eu-de-standard"|"eu-de-vault"|"eu-de-cold"|"eu-de-flex"|"ap-standard"|"ap-vault"|"ap-cold"|"ap-flex"|"ams03-standard"|"ams03-vault"|"ams03-cold"|"ams03-flex"|"che01-standard"|"che01-vault"|"che01-cold"|"che01-flex"|"mel01-standard"|"mel01-vault"|"mel01-cold"|"mel01-flex"|"osl01-standard"|"osl01-vault"|"osl01-cold"|"osl01-flex"|"sao01-standard"|"sao01-vault"|"sao01-cold"|"sao01-flex"|"tor01-standard"|"tor01-vault"|"tor01-cold"|"tor01-flex"|string; export type BucketLogsPermission = "FULL_CONTROL"|"READ"|"WRITE"|string; export type BucketName = string; export interface BucketProtectionDefaultRetention { Days: Days; } export interface BucketProtectionMaximumRetention { Days: Days; } export interface BucketProtectionMinimumRetention { Days: Days; } export type BucketProtectionStatus = "Retention"|string; export type BucketProtectionEnablePermanentRetention = boolean; export type Buckets = Bucket[]; export type BucketVersioningStatus = "Enabled"|"Suspended"|string; export interface CORSConfiguration { CORSRules: CORSRules; } export interface CORSRule { /** * Specifies which headers are allowed in a pre-flight OPTIONS request. */ AllowedHeaders?: AllowedHeaders; /** * Identifies HTTP methods that the domain/origin specified in the rule is allowed to execute. */ AllowedMethods: AllowedMethods; /** * One or more origins you want customers to be able to access the bucket from. */ AllowedOrigins: AllowedOrigins; /** * 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). */ ExposeHeaders?: ExposeHeaders; /** * The time in seconds that your browser is to cache the preflight response for the specified resource. */ MaxAgeSeconds?: MaxAgeSeconds; } export type CORSRules = CORSRule[]; export type CacheControl = string; export type CloudFunction = string; export type Code = string; export interface CommonPrefix { Prefix?: Prefix; } export type CommonPrefixList = CommonPrefix[]; export interface CompleteMultipartUploadOutput { Location?: Location; Bucket?: BucketName; Key?: ObjectKey; /** * 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. */ Expiration?: Expiration; /** * Entity tag of the object. */ ETag?: ETag; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * Version of the object. */ VersionId?: ObjectVersionId; /** * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object. */ SSEKMSKeyId?: SSEKMSKeyId; } export interface CompleteMultipartUploadRequest { Bucket: BucketName; Key: ObjectKey; MultipartUpload?: CompletedMultipartUpload; /** * Date on which it will be legal to delete or modify the object. You can only specify this or the Retention-Period header. If both are specified a 400 error will be returned. If neither is specified the bucket's DefaultRetention period will be used. This header should be used to calculate a retention period in seconds and then stored in that manner. */ RetentionExpirationDate?: RetentionExpirationDate; /** * A single legal hold to apply to the object. A legal hold is a character long string of max length 64. The object cannot be overwritten or deleted until all legal holds associated with the object are removed. */ RetentionLegalHoldId?: RetentionLegalHoldID; /** * Retention period to store on the object in seconds. If this field and Retention-Expiration-Date are specified a 400 error is returned. If neither is specified the bucket's DefaultRetention period will be used. 0 is a legal value assuming the bucket's minimum retention period is also 0. */ RetentionPeriod?: RetentionPeriod; UploadId: MultipartUploadId; } export interface CompletedMultipartUpload { Parts?: CompletedPartList; } export interface CompletedPart { /** * Entity tag returned when the part was uploaded. */ ETag?: ETag; /** * Part number that identifies the part. This is a positive integer between 1 and 10,000. */ PartNumber?: PartNumber; } export type CompletedPartList = CompletedPart[]; export interface Condition { /** * 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. */ HttpErrorCodeReturnedEquals?: HttpErrorCodeReturnedEquals; /** * 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. */ KeyPrefixEquals?: KeyPrefixEquals; } export type ContentDisposition = string; export type ContentEncoding = string; export type ContentLanguage = string; export type ContentLength = number; export type ContentMD5 = string; export type ContentRange = string; export type ContentType = string; export interface CopyObjectOutput { CopyObjectResult?: CopyObjectResult; /** * If the object expiration is configured, the response includes this header. */ Expiration?: Expiration; CopySourceVersionId?: CopySourceVersionId; /** * Version ID of the newly created copy. */ VersionId?: ObjectVersionId; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used. */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object. */ SSEKMSKeyId?: SSEKMSKeyId; } export interface CopyObjectRequest { /** * The canned ACL to apply to the object. */ ACL?: ObjectCannedACL; Bucket: BucketName; /** * Specifies caching behavior along the request/reply chain. */ CacheControl?: CacheControl; /** * Specifies presentational information for the object. */ ContentDisposition?: ContentDisposition; /** * 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. */ ContentEncoding?: ContentEncoding; /** * The language the content is in. */ ContentLanguage?: ContentLanguage; /** * A standard MIME type describing the format of the object data. */ ContentType?: ContentType; /** * The name of the source bucket and key name of the source object, separated by a slash (/). Must be URL-encoded. */ CopySource: CopySource; /** * Copies the object if its entity tag (ETag) matches the specified tag. */ CopySourceIfMatch?: CopySourceIfMatch; /** * Copies the object if it has been modified since the specified time. */ CopySourceIfModifiedSince?: CopySourceIfModifiedSince; /** * Copies the object if its entity tag (ETag) is different than the specified ETag. */ CopySourceIfNoneMatch?: CopySourceIfNoneMatch; /** * Copies the object if it hasn't been modified since the specified time. */ CopySourceIfUnmodifiedSince?: CopySourceIfUnmodifiedSince; /** * The date and time at which the object is no longer cacheable. */ Expires?: Expires; /** * Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. */ GrantFullControl?: GrantFullControl; /** * Allows grantee to read the object data and its metadata. */ GrantRead?: GrantRead; /** * Allows grantee to read the object ACL. */ GrantReadACP?: GrantReadACP; /** * Allows grantee to write the ACL for the applicable object. */ GrantWriteACP?: GrantWriteACP; Key: ObjectKey; /** * A map of metadata to store with the object in S3. */ Metadata?: Metadata; /** * Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request. */ MetadataDirective?: MetadataDirective; /** * This header controls how the Protection state of the source object is copied to the destination object.If copied, the retention period and all legal holds are copied onto the new object. The legal hold date's is set to the date of the copy. */ RetentionDirective?: RetentionDirective; /** * Date on which it will be legal to delete or modify the object. You can only specify this or the Retention-Period header. If both are specified a 400 error will be returned. If neither is specified the bucket's DefaultRetention period will be used. This header should be used to calculate a retention period in seconds and then stored in that manner. */ RetentionExpirationDate?: RetentionExpirationDate; /** * A single legal hold to apply to the object. A legal hold is a Y character long string. The object cannot be overwritten or deleted until all legal holds associated with the object are removed. */ RetentionLegalHoldId?: RetentionLegalHoldID; /** * Retention period to store on the object in seconds. If this field and Retention-Expiration-Date are specified a 400 error is returned. If neither is specified the bucket's DefaultRetention period will be used. 0 is a legal value assuming the bucket's minimum retention period is also 0. */ RetentionPeriod?: RetentionPeriod; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * The type of storage to use for the object. Defaults to 'STANDARD'. */ StorageClass?: StorageClass; /** * VersionId used to reference a specific version of the object. */ VersionId?: ObjectVersionId; /** * Specifies the algorithm to use to when encrypting the object (e.g., AES256). */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * Specifies the customer-provided encryption key for IBM COS to use in encrypting data. This value is used to store the object and then it is discarded; IBM 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. */ SSECustomerKey?: SSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * Applies only to Amazon S3. 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 */ SSEKMSKeyId?: SSEKMSKeyId; /** * Specifies the algorithm to use when decrypting the source object (e.g., AES256). */ CopySourceSSECustomerAlgorithm?: CopySourceSSECustomerAlgorithm; /** * Specifies the customer-provided encryption key for IBM COS 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. */ CopySourceSSECustomerKey?: CopySourceSSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ CopySourceSSECustomerKeyMD5?: CopySourceSSECustomerKeyMD5; } export interface CopyObjectResult { ETag?: ETag; LastModified?: LastModified; } export interface CopyPartResult { /** * Entity tag of the object. */ ETag?: ETag; /** * Date and time at which the object was uploaded. */ LastModified?: LastModified; } export type CopySource = string; export type CopySourceIfMatch = string; export type CopySourceIfModifiedSince = Date; export type CopySourceIfNoneMatch = string; export type CopySourceIfUnmodifiedSince = Date; export type CopySourceRange = string; export type CopySourceSSECustomerAlgorithm = string; export type CopySourceSSECustomerKey = Buffer|Uint8Array|Blob|string; export type CopySourceSSECustomerKeyMD5 = string; export type CopySourceVersionId = string; export interface CreateBucketConfiguration { /** * Specifies the region where the bucket will be created. If you don't specify a region, the bucket will be created in US Standard. */ LocationConstraint?: BucketLocationConstraint; } export interface CreateBucketOutput { Location?: Location; } export interface CreateBucketRequest { /** * The canned ACL to apply to the bucket. */ ACL?: BucketCannedACL; Bucket: BucketName; CreateBucketConfiguration?: CreateBucketConfiguration; /** * Allows grantee the read, write, read ACP, and write ACP permissions on the bucket. */ GrantFullControl?: GrantFullControl; /** * Allows grantee to list the objects in the bucket. */ GrantRead?: GrantRead; /** * Allows grantee to read the bucket ACL. */ GrantReadACP?: GrantReadACP; /** * Allows grantee to create, overwrite, and delete any object in the bucket. */ GrantWrite?: GrantWrite; /** * Allows grantee to write the ACL for the applicable bucket. */ GrantWriteACP?: GrantWriteACP; /** * The storage account who will be the owner of the bucket. */ IBMServiceInstanceId?: IBMServiceInstanceId; IBMSSEKPEncryptionAlgorithm?: IBMSSEKPEncryptionAlgorithm; IBMSSEKPCustomerRootKeyCrn?: IBMSSEKPCustomerRootKeyCrn; } export interface CreateMultipartUploadOutput { /** * Date when multipart upload will become eligible for abort operation by lifecycle. */ AbortDate?: AbortDate; /** * Id of the lifecycle rule that makes a multipart upload eligible for abort operation. */ AbortRuleId?: AbortRuleId; /** * Name of the bucket to which the multipart upload was initiated. */ Bucket?: BucketName; /** * Object key for which the multipart upload was initiated. */ Key?: ObjectKey; /** * ID for the initiated multipart upload. */ UploadId?: MultipartUploadId; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used. */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object. */ SSEKMSKeyId?: SSEKMSKeyId; } export interface CreateMultipartUploadRequest { /** * The canned ACL to apply to the object. */ ACL?: ObjectCannedACL; Bucket: BucketName; /** * Specifies caching behavior along the request/reply chain. */ CacheControl?: CacheControl; /** * Specifies presentational information for the object. */ ContentDisposition?: ContentDisposition; /** * 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. */ ContentEncoding?: ContentEncoding; /** * The language the content is in. */ ContentLanguage?: ContentLanguage; /** * A standard MIME type describing the format of the object data. */ ContentType?: ContentType; /** * The date and time at which the object is no longer cacheable. */ Expires?: Expires; /** * Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. */ GrantFullControl?: GrantFullControl; /** * Allows grantee to read the object data and its metadata. */ GrantRead?: GrantRead; /** * Allows grantee to read the object ACL. */ GrantReadACP?: GrantReadACP; /** * Allows grantee to write the ACL for the applicable object. */ GrantWriteACP?: GrantWriteACP; Key: ObjectKey; /** * A map of metadata to store with the object in S3. */ Metadata?: Metadata; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * The type of storage to use for the object. Defaults to 'STANDARD'. */ StorageClass?: StorageClass; /** * Specifies the algorithm to use to when encrypting the object (e.g., AES256). */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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; IBM 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. */ SSECustomerKey?: SSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * 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 */ SSEKMSKeyId?: SSEKMSKeyId; } export type CreationDate = Date; export type _Date = Date; export type Days = number; export type DaysAfterInitiation = number; export interface Delete { Objects: ObjectIdentifierList; /** * Element to enable quiet mode for the request. When you add this element, you must set its value to true. */ Quiet?: Quiet; } export interface DeleteBucketCorsRequest { Bucket: BucketName; } export interface DeleteBucketLifecycleRequest { Bucket: BucketName; } export interface DeleteBucketRequest { Bucket: BucketName; } export interface DeleteBucketTaggingRequest { /** * */ Bucket: BucketName; } export type DeleteMarker = boolean; export interface DeleteMarkerEntry { Owner?: Owner; /** * The object key. */ Key?: ObjectKey; /** * Version ID of an object. */ VersionId?: ObjectVersionId; /** * Specifies whether the object is (true) or is not (false) the latest version of an object. */ IsLatest?: IsLatest; /** * Date and time the object was last modified. */ LastModified?: LastModified; } export type DeleteMarkerVersionId = string; export type DeleteMarkers = DeleteMarkerEntry[]; export interface DeleteObjectOutput { /** * If versioning is enabled, specifies whether the versioned object that was permanently deleted was (true) or was not (false) a delete marker. */ DeleteMarker?: DeleteMarker; /** * If versioning is enabled, returns the version ID of the delete marker created as a result of the DELETE operation. */ VersionId?: ObjectVersionId; } export interface DeleteObjectRequest { Bucket: BucketName; Key: ObjectKey; /** * The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. */ MFA?: MFA; /** * VersionId used to reference a specific version of the object. */ VersionId?: ObjectVersionId; } export interface DeleteObjectsOutput { Deleted?: DeletedObjects; Errors?: Errors; } export interface DeleteObjectsRequest { Bucket: BucketName; Delete: Delete; /** * The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. */ MFA?: MFA; } export interface DeletedObject { Key?: ObjectKey; VersionId?: ObjectVersionId; DeleteMarker?: DeleteMarker; DeleteMarkerVersionId?: DeleteMarkerVersionId; } export type DeletedObjects = DeletedObject[]; export type Delimiter = string; export interface Destination { /** * Name of the bucket where you want IBM COS to store replicas of the object identified by the rule. */ Bucket: BucketName; /** * The class of storage used to store the object. */ StorageClass?: StorageClass; } export type DisplayName = string; export type ETag = string; export type EmailAddress = string; export type EncodingType = "url"|string; export interface Error { Key?: ObjectKey; VersionId?: ObjectVersionId; Code?: Code; Message?: Message; } export interface ErrorDocument { /** * The object key name to use when a 4XX class error occurs. */ Key: ObjectKey; } export type Errors = Error[]; 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; export type EventList = Event[]; export type Expiration = string; export type ExpirationStatus = "Enabled"|"Disabled"|string; export type ExpiredObjectDeleteMarker = boolean; export type Expires = Date; export type ExposeHeader = string; export type ExposeHeaders = ExposeHeader[]; export interface ExtendObjectRetentionRequest { Bucket: BucketName; Key: ObjectKey; AdditionalRetentionPeriod?: AdditionalRetentionPeriod; ExtendRetentionFromCurrentTime?: ExtendRetentionFromCurrentTime; NewRetentionExpirationDate?: NewRetentionExpirationDate; NewRetentionPeriod?: NewRetentionPeriod; } export type ExtendRetentionFromCurrentTime = number; export type FetchOwner = boolean; export interface FilterRule { /** * 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. */ Name?: FilterRuleName; Value?: FilterRuleValue; } export type FilterRuleList = FilterRule[]; export type FilterRuleName = "prefix"|"suffix"|string; export type FilterRuleValue = string; export interface GetBucketAclOutput { Owner?: Owner; /** * A list of grants. */ Grants?: Grants; } export interface GetBucketAclRequest { Bucket: BucketName; } export interface GetBucketCorsOutput { CORSRules?: CORSRules; } export interface GetBucketCorsRequest { Bucket: BucketName; MirrorDestination?: MirrorDestination; } export interface GetBucketLifecycleConfigurationOutput { Rules?: LifecycleRules; } export interface GetBucketLifecycleConfigurationRequest { Bucket: BucketName; } export interface GetBucketLifecycleOutput { Rules?: Rules; } export interface GetBucketLifecycleRequest { Bucket: BucketName; } export interface GetBucketLocationOutput { LocationConstraint?: BucketLocationConstraint; } export interface GetBucketLocationRequest { Bucket: BucketName; } export interface GetBucketProtectionConfigurationOutput { /** * Retention status of a bucket. */ Status?: BucketProtectionStatus; /** * Minimum retention period for an object, if a PUT of an object specifies a shorter retention period the PUT object will fail. */ MinimumRetention?: BucketProtectionMinimumRetention; /** * Default retention period for an object, if a PUT of an object does not specify a retention period this value will be converted to seconds and used. */ DefaultRetention?: BucketProtectionDefaultRetention; /** * Maximum retention period for an object, if a PUT of an object specifies a longer retention period the PUT object will fail. */ MaximumRetention?: BucketProtectionMaximumRetention; /** * Enable permanent retention for an object. */ EnablePermanentRetention?: BucketProtectionEnablePermanentRetention; } export interface GetBucketProtectionConfigurationRequest { Bucket: BucketName; } export interface GetBucketTaggingOutput { /** * */ TagSet: TagSet; } export interface GetBucketTaggingRequest { /** * */ Bucket: BucketName; MirrorDestination?: MirrorDestination; } export interface GetBucketVersioningOutput { /** * The versioning state of the bucket. */ Status?: BucketVersioningStatus; /** * 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. */ MFADelete?: MFADeleteStatus; } export interface GetBucketVersioningRequest { /** * */ Bucket: BucketName; } export interface GetObjectAclOutput { Owner?: Owner; /** * A list of grants. */ Grants?: Grants; } export interface GetObjectAclRequest { Bucket: BucketName; Key: ObjectKey; MirrorDestination?: MirrorDestination; /** * VersionId used to reference a specific version of the object. */ VersionId?: ObjectVersionId; } export interface GetObjectOutput { /** * Object data. */ Body?: Body; /** * 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. */ DeleteMarker?: DeleteMarker; AcceptRanges?: AcceptRanges; /** * 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. */ Expiration?: Expiration; /** * Provides information about object restoration operation and expiration time of the restored object copy. */ Restore?: Restore; /** * Last modified date of the object */ LastModified?: LastModified; /** * Size of the body in bytes. */ ContentLength?: ContentLength; /** * An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL */ ETag?: ETag; /** * Version of the object. */ VersionId?: ObjectVersionId; /** * Specifies caching behavior along the request/reply chain. */ CacheControl?: CacheControl; /** * Specifies presentational information for the object. */ ContentDisposition?: ContentDisposition; /** * 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. */ ContentEncoding?: ContentEncoding; /** * The language the content is in. */ ContentLanguage?: ContentLanguage; /** * The portion of the object returned in the response. */ ContentRange?: ContentRange; /** * A standard MIME type describing the format of the object data. */ ContentType?: ContentType; /** * The date and time at which the object is no longer cacheable. */ Expires?: Expires; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * A map of metadata to store with the object in S3. */ Metadata?: Metadata; /** * Date on which it will be legal to delete or modify the object. You can only specify this or the Retention-Period header. If both are specified a 400 error will be returned. If neither is specified the bucket's DefaultRetention period will be used. This header should be used to calculate a retention period in seconds and then stored in that manner. */ RetentionExpirationDate?: RetentionExpirationDate; /** * Returns the count of legal holds on the object. If there are no legal holds, the header is not returned */ RetentionLegalHoldCount?: RetentionLegalHoldCount; /** * Retention period to store on the object in seconds. If this field and Retention-Expiration-Date are specified a 400 error is returned. If neither is specified the bucket's DefaultRetention period will be used. 0 is a legal value assuming the bucket's minimum retention period is also 0. */ RetentionPeriod?: RetentionPeriod; /** * The source of the retention period stored for the object */ RetentionPeriodSource?: RetentionPeriodSource; /** * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used. */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object. */ SSEKMSKeyId?: SSEKMSKeyId; StorageClass?: StorageClass; /** * The count of parts this object has. */ PartsCount?: PartsCount; } export interface GetObjectRequest { Bucket: BucketName; /** * Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed). */ IfMatch?: IfMatch; /** * Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified). */ IfModifiedSince?: IfModifiedSince; /** * Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified). */ IfNoneMatch?: IfNoneMatch; /** * Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed). */ IfUnmodifiedSince?: IfUnmodifiedSince; Key: ObjectKey; MirrorDestination?: MirrorDestination; /** * 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. */ Range?: Range; /** * Sets the Cache-Control header of the response. */ ResponseCacheControl?: ResponseCacheControl; /** * Sets the Content-Disposition header of the response */ ResponseContentDisposition?: ResponseContentDisposition; /** * Sets the Content-Encoding header of the response. */ ResponseContentEncoding?: ResponseContentEncoding; /** * Sets the Content-Language header of the response. */ ResponseContentLanguage?: ResponseContentLanguage; /** * Sets the Content-Type header of the response. */ ResponseContentType?: ResponseContentType; /** * Sets the Expires header of the response. */ ResponseExpires?: ResponseExpires; /** * VersionId used to reference a specific version of the object. */ VersionId?: ObjectVersionId; /** * Specifies the algorithm to use to when encrypting the object (e.g., AES256). */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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; IBM 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. */ SSECustomerKey?: SSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * 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. */ PartNumber?: PartNumber; } export interface GlacierJobParameters { /** * Glacier retrieval tier at which the restore will be processed. */ Tier: Tier; } export interface Grant { Grantee?: Grantee; /** * Specifies the permission given to the grantee. */ Permission?: Permission; } export type GrantFullControl = string; export type GrantRead = string; export type GrantReadACP = string; export type GrantWrite = string; export type GrantWriteACP = string; export interface Grantee { /** * Screen name of the grantee. */ DisplayName?: DisplayName; /** * Email address of the grantee. */ EmailAddress?: EmailAddress; /** * The canonical user ID of the grantee. */ ID?: ID; /** * Type of grantee */ Type: Type; /** * URI of the grantee group. */ URI?: URI; } export type Grants = Grant[]; export interface HeadBucketRequest { Bucket: BucketName; } export interface HeadObjectOutput { /** * 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. */ DeleteMarker?: DeleteMarker; AcceptRanges?: AcceptRanges; /** * 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. */ Expiration?: Expiration; /** * Provides information about object restoration operation and expiration time of the restored object copy. */ Restore?: Restore; /** * Last modified date of the object */ LastModified?: LastModified; /** * Size of the body in bytes. */ ContentLength?: ContentLength; /** * An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL */ ETag?: ETag; /** * Version of the object. */ VersionId?: ObjectVersionId; /** * Specifies caching behavior along the request/reply chain. */ CacheControl?: CacheControl; /** * Specifies presentational information for the object. */ ContentDisposition?: ContentDisposition; /** * 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. */ ContentEncoding?: ContentEncoding; /** * The language the content is in. */ ContentLanguage?: ContentLanguage; /** * A standard MIME type describing the format of the object data. */ ContentType?: ContentType; /** * The date and time at which the object is no longer cacheable. */ Expires?: Expires; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * A map of metadata to store with the object in S3. */ Metadata?: Metadata; /** * Date on which it will be legal to delete or modify the object. You can only specify this or the Retention-Period header. If both are specified a 400 error will be returned. If neither is specified the bucket's DefaultRetention period will be used. This header should be used to calculate a retention period in seconds and then stored in that manner. */ RetentionExpirationDate?: RetentionExpirationDate; /** * Returns the count of legal holds on the object. If there are no legal holds, the header is not returned */ RetentionLegalHoldCount?: RetentionLegalHoldCount; /** * Retention period to store on the object in seconds. If this field and Retention-Expiration-Date are specified a 400 error is returned. If neither is specified the bucket's DefaultRetention period will be used. 0 is a legal value assuming the bucket's minimum retention period is also 0. */ RetentionPeriod?: RetentionPeriod; /** * The source of the retention period stored for the object */ RetentionPeriodSource?: RetentionPeriodSource; /** * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used. */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object. */ SSEKMSKeyId?: SSEKMSKeyId; StorageClass?: StorageClass; /** * The count of parts this object has. */ PartsCount?: PartsCount; /** * Provides information of the transition storage class and time of transition. */ Transition?: Transition; /** * This header is only included if an object is in the RestoreInProgress or Restored states. This header will indicate the storage class to which the restored copy of the data will be billed. */ TemporaryCopyStorageClass?: TemporaryCopyStorageClass; } export interface HeadObjectRequest { Bucket: BucketName; /** * Return the object only if its entity tag (ETag) is the same as the one specified, otherwise return a 412 (precondition failed). */ IfMatch?: IfMatch; /** * Return the object only if it has been modified since the specified time, otherwise return a 304 (not modified). */ IfModifiedSince?: IfModifiedSince; /** * Return the object only if its entity tag (ETag) is different from the one specified, otherwise return a 304 (not modified). */ IfNoneMatch?: IfNoneMatch; /** * Return the object only if it has not been modified since the specified time, otherwise return a 412 (precondition failed). */ IfUnmodifiedSince?: IfUnmodifiedSince; Key: ObjectKey; MirrorDestination?: MirrorDestination; /** * 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. */ Range?: Range; /** * VersionId used to reference a specific version of the object. */ VersionId?: ObjectVersionId; /** * Specifies the algorithm to use to when encrypting the object (e.g., AES256). */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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; IBM 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. */ SSECustomerKey?: SSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * 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. */ PartNumber?: PartNumber; } export interface HeadBucketOutput { IBMSSEKPEnabled?: IBMSSEKPEnabled; IBMSSEKPCustomerRootKeyCrn?: IBMSSEKPCustomerRootKeyCrn; } export type HostName = string; export type HttpErrorCodeReturnedEquals = string; export type HttpRedirectCode = string; export type IBMServiceInstanceId = string; export type IBMSSEKPCustomerRootKeyCrn = string; export type IBMSSEKPEnabled = boolean; export type IBMSSEKPEncryptionAlgorithm = string; export type ID = string; export type IfMatch = string; export type IfModifiedSince = Date; export type IfNoneMatch = string; export type IfUnmodifiedSince = Date; export type Initiated = Date; export interface Initiator { /** * 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. */ ID?: ID; /** * Name of the Principal. */ DisplayName?: DisplayName; } export type IsEnabled = boolean; export type IsLatest = boolean; export type IsTruncated = boolean; export type KeyCount = number; export type KeyMarker = string; export type KeyPrefixEquals = string; export type LastModified = Date; export interface LegalHold { Date?: _Date; ID?: LegalHoldID; } export type LegalHoldID = string; export interface LegalHoldRequest { Bucket: BucketName; Key: ObjectKey; RetentionLegalHoldId: RetentionLegalHoldID; } export type LegalHolds = LegalHold[]; export interface LifecycleConfiguration { Rules: LifecycleRules; } export interface LifecycleExpiration { /** * Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format. */ Date?: _Date; /** * Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. */ Days?: Days; /** * 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. */ ExpiredObjectDeleteMarker?: ExpiredObjectDeleteMarker; } export interface LifecycleRule { Expiration?: LifecycleExpiration; /** * Unique identifier for the rule. The value cannot be longer than 255 characters. */ ID: ID; /** * Prefix identifying one or more objects to which the rule applies. This is deprecated; use Filter instead. */ Prefix?: Prefix; Filter: LifecycleRuleFilter; /** * If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied. */ Status: ExpirationStatus; /** * Currently only one Transition allowed, also Date and Days fields are mutually exclusive. */ Transitions?: TransitionList; } export interface LifecycleRuleAndOperator { Prefix?: Prefix; /** * All of these tags must exist in the object's tag set in order for the rule to apply. */ Tags?: TagSet; } export interface LifecycleRuleFilter { /** * Empty prefix allowed only. */ Prefix?: Prefix; } export type LifecycleRules = LifecycleRule[]; export interface ListBucketsInput { IBMServiceInstanceId?: undefined; } export interface ListBucketsExtendedInput { IBMServiceInstanceId?: undefined; /** * Specifies the key to start with when listing objects in a bucket. */ Marker?: Marker; /** * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more. */ MaxKeys?: MaxKeys; /** * Limits the response to keys that begin with the specified prefix. */ Prefix?: Prefix; } export interface ListBucketsOutput { Buckets?: Buckets; Owner?: Owner; } export interface ListBucketsExtendedOutput { IsTruncated?: IsTruncated; Marker?: Marker; Buckets?: Buckets; Owner?: Owner; } export interface ListLegalHoldsOutput { CreateTime?: _Date; LegalHolds?: LegalHolds; RetentionPeriod?: RetentionPeriod; RetentionPeriodExpirationDate?: RetentionExpirationDate; } export interface ListLegalHoldsRequest { Bucket: BucketName; Key: ObjectKey; MirrorDestination?: MirrorDestination; } export interface ListMultipartUploadsOutput { /** * Name of the bucket to which the multipart upload was initiated. */ Bucket?: BucketName; /** * The key at or after which the listing began. */ KeyMarker?: KeyMarker; /** * Upload ID after which listing began. */ UploadIdMarker?: UploadIdMarker; /** * When a list is truncated, this element specifies the value that should be used for the key-marker request parameter in a subsequent request. */ NextKeyMarker?: NextKeyMarker; /** * When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix. */ Prefix?: Prefix; Delimiter?: Delimiter; /** * 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. */ NextUploadIdMarker?: NextUploadIdMarker; /** * Maximum number of multipart uploads that could have been included in the response. */ MaxUploads?: MaxUploads; /** * 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. */ IsTruncated?: IsTruncated; Uploads?: MultipartUploadList; CommonPrefixes?: CommonPrefixList; /** * Encoding type used by IBM COS to encode object keys in the response. */ EncodingType?: EncodingType; } export interface ListMultipartUploadsRequest { Bucket: BucketName; /** * Character you use to group keys. */ Delimiter?: Delimiter; EncodingType?: EncodingType; /** * Together with upload-id-marker, this parameter specifies the multipart upload after which listing should begin. */ KeyMarker?: KeyMarker; /** * 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. */ MaxUploads?: MaxUploads; MirrorDestination?: MirrorDestination; /** * Lists in-progress uploads only for those keys that begin with the specified prefix. */ Prefix?: Prefix; /** * 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. */ UploadIdMarker?: UploadIdMarker; } export interface ListObjectVersionsOutput { /** * 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. */ IsTruncated?: IsTruncated; /** * Marks the last Key returned in a truncated response. */ KeyMarker?: KeyMarker; /** * */ VersionIdMarker?: VersionIdMarker; /** * Use this value for the key marker request parameter in a subsequent request. */ NextKeyMarker?: NextKeyMarker; /** * Use this value for the next version id marker parameter in a subsequent request. */ NextVersionIdMarker?: NextVersionIdMarker; /** * */ Versions?: ObjectVersionList; /** * */ DeleteMarkers?: DeleteMarkers; /** * */ Name?: BucketName; /** * */ Prefix?: Prefix; /** * */ Delimiter?: Delimiter; /** * */ MaxKeys?: MaxKeys; /** * */ CommonPrefixes?: CommonPrefixList; /** * Encoding type used by Amazon S3 to encode object keys in the response. */ EncodingType?: EncodingType; } export interface ListObjectVersionsRequest { /** * */ Bucket: BucketName; /** * A delimiter is a character you use to group keys. */ Delimiter?: Delimiter; EncodingType?: EncodingType; /** * Specifies the key to start with when listing objects in a bucket. */ KeyMarker?: KeyMarker; /** * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more. */ MaxKeys?: MaxKeys; /** * Limits the response to keys that begin with the specified prefix. */ Prefix?: Prefix; /** * Specifies the object version you want to start listing from. */ VersionIdMarker?: VersionIdMarker; } export interface ListObjectsOutput { IBMSSEKPEnabled?: IBMSSEKPEnabled; IBMSSEKPCustomerRootKeyCrn?: IBMSSEKPCustomerRootKeyCrn; /** * A flag that indicates whether or not IBM COS returned all of the results that satisfied the search criteria. */ IsTruncated?: IsTruncated; Marker?: Marker; /** * 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. IBM COS 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. */ NextMarker?: NextMarker; Contents?: ObjectList; Name?: BucketName; Prefix?: Prefix; Delimiter?: Delimiter; MaxKeys?: MaxKeys; CommonPrefixes?: CommonPrefixList; /** * Encoding type used by IBM COS to encode object keys in the response. */ EncodingType?: EncodingType; } export interface ListObjectsRequest { Bucket: BucketName; /** * A delimiter is a character you use to group keys. */ Delimiter?: Delimiter; EncodingType?: EncodingType; /** * Specifies the key to start with when listing objects in a bucket. */ Marker?: Marker; /** * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more. */ MaxKeys?: MaxKeys; MirrorDestination?: MirrorDestination; /** * Limits the response to keys that begin with the specified prefix. */ Prefix?: Prefix; } export interface ListObjectsV2Output { /** * A flag that indicates whether or not Amazon S3 returned all of the results that satisfied the search criteria. */ IsTruncated?: IsTruncated; /** * Metadata about each object returned. */ Contents?: ObjectList; /** * Name of the bucket to list. */ Name?: BucketName; /** * Limits the response to keys that begin with the specified prefix. */ Prefix?: Prefix; /** * A delimiter is a character you use to group keys. */ Delimiter?: Delimiter; /** * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more. */ MaxKeys?: MaxKeys; /** * CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by delimiter */ CommonPrefixes?: CommonPrefixList; /** * Encoding type used by Amazon S3 to encode object keys in the response. */ EncodingType?: EncodingType; /** * 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 */ KeyCount?: KeyCount; /** * 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 */ ContinuationToken?: Token; /** * 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 */ NextContinuationToken?: NextToken; /** * 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 */ StartAfter?: StartAfter; } export interface ListObjectsV2Request { /** * Name of the bucket to list. */ Bucket: BucketName; /** * A delimiter is a character you use to group keys. */ Delimiter?: Delimiter; /** * Encoding type used by Amazon S3 to encode object keys in the response. */ EncodingType?: EncodingType; /** * Sets the maximum number of keys returned in the response. The response might contain fewer keys but will never contain more. */ MaxKeys?: MaxKeys; /** * Limits the response to keys that begin with the specified prefix. */ Prefix?: Prefix; /** * 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 */ ContinuationToken?: Token; /** * 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 */ FetchOwner?: FetchOwner; /** * 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 */ StartAfter?: StartAfter; } export interface ListPartsOutput { /** * Date when multipart upload will become eligible for abort operation by lifecycle. */ AbortDate?: AbortDate; /** * Id of the lifecycle rule that makes a multipart upload eligible for abort operation. */ AbortRuleId?: AbortRuleId; /** * Name of the bucket to which the multipart upload was initiated. */ Bucket?: BucketName; /** * Object key for which the multipart upload was initiated. */ Key?: ObjectKey; /** * Upload ID identifying the multipart upload whose parts are being listed. */ UploadId?: MultipartUploadId; /** * Part number after which listing begins. */ PartNumberMarker?: PartNumberMarker; /** * 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. */ NextPartNumberMarker?: NextPartNumberMarker; /** * Maximum number of parts that were allowed in the response. */ MaxParts?: MaxParts; /** * Indicates whether the returned list of parts is truncated. */ IsTruncated?: IsTruncated; Parts?: Parts; /** * Identifies who initiated the multipart upload. */ Initiator?: Initiator; Owner?: Owner; /** * The class of storage used to store the object. */ StorageClass?: StorageClass; } export interface ListPartsRequest { Bucket: BucketName; Key: ObjectKey; /** * Sets the maximum number of parts to return. */ MaxParts?: MaxParts; MirrorDestination?: MirrorDestination; /** * Specifies the part after which listing should begin. Only parts with higher part numbers will be listed. */ PartNumberMarker?: PartNumberMarker; /** * Upload ID identifying the multipart upload whose parts are being listed. */ UploadId: MultipartUploadId; } export type Location = string; export type MFA = string; export type MFADelete = "Enabled"|"Disabled"|string; export type MFADeleteStatus = "Enabled"|"Disabled"|string; export type Marker = string; export type MaxAgeSeconds = number; export type MaxKeys = number; export type MaxParts = number; export type MaxUploads = number; export type Message = string; export type Metadata = {[key: string]: MetadataValue}; export type MetadataDirective = "COPY"|"REPLACE"|string; export type MetadataKey = string; export type MetadataValue = string; export type MirrorDestination = string; export interface MultipartUpload { /** * Upload ID that identifies the multipart upload. */ UploadId?: MultipartUploadId; /** * Key of the object for which the multipart upload was initiated. */ Key?: ObjectKey; /** * Date and time at which the multipart upload was initiated. */ Initiated?: Initiated; /** * The class of storage used to store the object. */ StorageClass?: StorageClass; Owner?: Owner; /** * Identifies who initiated the multipart upload. */ Initiator?: Initiator; } export type MultipartUploadId = string; export type MultipartUploadList = MultipartUpload[]; export type NewRetentionExpirationDate = Date; export type NewRetentionPeriod = number; export type NextKeyMarker = string; export type NextMarker = string; export type NextPartNumberMarker = number; export type NextToken = string; export type NextUploadIdMarker = string; export type NextVersionIdMarker = string; export interface NoncurrentVersionExpiration { /** * Specifies the number of days an object is noncurrent before IBM COS can perform the associated action. */ NoncurrentDays?: Days; } export interface NoncurrentVersionTransition { /** * 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. */ NoncurrentDays?: Days; /** * The class of storage used to store the object. */ StorageClass?: TransitionStorageClass; } export type NoncurrentVersionTransitionList = NoncurrentVersionTransition[]; export interface Object { Key?: ObjectKey; LastModified?: LastModified; ETag?: ETag; Size?: Size; /** * The class of storage used to store the object. */ StorageClass?: ObjectStorageClass; Owner?: Owner; } export type ObjectCannedACL = "private"|"public-read"|"public-read-write"|"authenticated-read"|"aws-exec-read"|"bucket-owner-read"|"bucket-owner-full-control"|string; export interface ObjectIdentifier { /** * Key name of the object to delete. */ Key: ObjectKey; /** * VersionId for the specific version of the object to delete. */ VersionId?: ObjectVersionId; } export type ObjectIdentifierList = ObjectIdentifier[]; export type ObjectKey = string; export type ObjectList = Object[]; export type ObjectStorageClass = "STANDARD"|"REDUCED_REDUNDANCY"|"GLACIER"|string; export interface ObjectVersion { ETag?: ETag; /** * Size in bytes of the object. */ Size?: Size; /** * The class of storage used to store the object. */ StorageClass?: ObjectVersionStorageClass; /** * The object key. */ Key?: ObjectKey; /** * Version ID of an object. */ VersionId?: ObjectVersionId; /** * Specifies whether the object is (true) or is not (false) the latest version of an object. */ IsLatest?: IsLatest; /** * Date and time the object was last modified. */ LastModified?: LastModified; Owner?: Owner; } export type ObjectVersionId = string; export type ObjectVersionList = ObjectVersion[]; export type ObjectVersionStorageClass = "STANDARD"|string; export interface Owner { DisplayName?: DisplayName; ID?: ID; } export interface Part { /** * Part number identifying the part. This is a positive integer between 1 and 10,000. */ PartNumber?: PartNumber; /** * Date and time at which the part was uploaded. */ LastModified?: LastModified; /** * Entity tag returned when the part was uploaded. */ ETag?: ETag; /** * Size of the uploaded part data. */ Size?: Size; } export type PartNumber = number; export type PartNumberMarker = number; export type Parts = Part[]; export type PartsCount = number; export type Permission = "FULL_CONTROL"|"WRITE"|"WRITE_ACP"|"READ"|"READ_ACP"|string; export type Policy = string; export type Prefix = string; export interface ProtectionConfiguration { /** * Retention status of a bucket. */ Status?: BucketProtectionStatus; /** * Minimum retention period for an object, if a PUT of an object specifies a shorter retention period the PUT object will fail. */ MinimumRetention?: BucketProtectionMinimumRetention; /** * Default retention period for an object, if a PUT of an object does not specify a retention period this value will be converted to seconds and used. */ DefaultRetention?: BucketProtectionDefaultRetention; /** * Maximum retention period for an object, if a PUT of an object specifies a longer retention period the PUT object will fail. */ MaximumRetention?: BucketProtectionMaximumRetention; /** * Enable permanent retention for an object. */ EnablePermanentRetention?: BucketProtectionEnablePermanentRetention; } export type Protocol = "http"|"https"|string; export interface PutBucketAclRequest { /** * The canned ACL to apply to the bucket. */ ACL?: BucketCannedACL; AccessControlPolicy?: AccessControlPolicy; Bucket: BucketName; ContentMD5?: ContentMD5; /** * Allows grantee the read, write, read ACP, and write ACP permissions on the bucket. */ GrantFullControl?: GrantFullControl; /** * Allows grantee to list the objects in the bucket. */ GrantRead?: GrantRead; /** * Allows grantee to read the bucket ACL. */ GrantReadACP?: GrantReadACP; /** * Allows grantee to create, overwrite, and delete any object in the bucket. */ GrantWrite?: GrantWrite; /** * Allows grantee to write the ACL for the applicable bucket. */ GrantWriteACP?: GrantWriteACP; } export interface PutBucketCorsRequest { Bucket: BucketName; CORSConfiguration: CORSConfiguration; ContentMD5?: ContentMD5; } export interface PutBucketProtectionConfigurationRequest { Bucket: BucketName; /** * Container for setting retention settings. */ ProtectionConfiguration: ProtectionConfiguration; } export interface PutBucketLifecycleConfigurationRequest { Bucket: BucketName; LifecycleConfiguration?: BucketLifecycleConfiguration; } export interface PutBucketLifecycleRequest { /** * */ Bucket: BucketName; /** * */ ContentMD5?: ContentMD5; /** * */ LifecycleConfiguration?: LifecycleConfiguration; } export interface PutBucketTaggingRequest { /** * */ Bucket: BucketName; /** * */ ContentMD5?: ContentMD5; /** * */ Tagging: Tagging; } export interface PutBucketVersioningRequest { /** * */ Bucket: BucketName; /** * */ ContentMD5?: ContentMD5; /** * The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. */ MFA?: MFA; /** * */ VersioningConfiguration: VersioningConfiguration; } export interface PutObjectAclOutput { RequestCharged?: RequestCharged; } export interface PutObjectAclRequest { /** * The canned ACL to apply to the object. */ ACL?: ObjectCannedACL; AccessControlPolicy?: AccessControlPolicy; Bucket: BucketName; ContentMD5?: ContentMD5; /** * Allows grantee the read, write, read ACP, and write ACP permissions on the bucket. */ GrantFullControl?: GrantFullControl; /** * Allows grantee to list the objects in the bucket. */ GrantRead?: GrantRead; /** * Allows grantee to read the bucket ACL. */ GrantReadACP?: GrantReadACP; /** * Allows grantee to create, overwrite, and delete any object in the bucket. */ GrantWrite?: GrantWrite; /** * Allows grantee to write the ACL for the applicable bucket. */ GrantWriteACP?: GrantWriteACP; Key: ObjectKey; /** * VersionId used to reference a specific version of the object. */ VersionId?: ObjectVersionId; } export interface PutObjectOutput { /** * 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. */ Expiration?: Expiration; /** * Entity tag for the uploaded object. */ ETag?: ETag; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * Version of the object. */ VersionId?: ObjectVersionId; /** * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used. */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object. */ SSEKMSKeyId?: SSEKMSKeyId; } export interface PutObjectRequest { /** * The canned ACL to apply to the object. */ ACL?: ObjectCannedACL; /** * Object data. */ Body?: Body; /** * Name of the bucket to which the PUT operation was initiated. */ Bucket: BucketName; /** * Specifies caching behavior along the request/reply chain. */ CacheControl?: CacheControl; /** * Specifies presentational information for the object. */ ContentDisposition?: ContentDisposition; /** * 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. */ ContentEncoding?: ContentEncoding; /** * The language the content is in. */ ContentLanguage?: ContentLanguage; /** * Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. */ ContentLength?: ContentLength; /** * The base64-encoded 128-bit MD5 digest of the part data. */ ContentMD5?: ContentMD5; /** * A standard MIME type describing the format of the object data. */ ContentType?: ContentType; /** * The date and time at which the object is no longer cacheable. */ Expires?: Expires; /** * Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. */ GrantFullControl?: GrantFullControl; /** * Allows grantee to read the object data and its metadata. */ GrantRead?: GrantRead; /** * Allows grantee to read the object ACL. */ GrantReadACP?: GrantReadACP; /** * Allows grantee to write the ACL for the applicable object. */ GrantWriteACP?: GrantWriteACP; /** * Object key for which the PUT operation was initiated. */ Key: ObjectKey; /** * A map of metadata to store with the object in S3. */ Metadata?: Metadata; /** * Date on which it will be legal to delete or modify the object. You can only specify this or the Retention-Period header. If both are specified a 400 error will be returned. If neither is specified the bucket's DefaultRetention period will be used. This header should be used to calculate a retention period in seconds and then stored in that manner. */ RetentionExpirationDate?: RetentionExpirationDate; /** * A single legal hold to apply to the object. A legal hold is a Y character long string. The object cannot be overwritten or deleted until all legal holds associated with the object are removed. */ RetentionLegalHoldId?: RetentionLegalHoldID; /** * Retention period to store on the object in seconds. If this field and Retention-Expiration-Date are specified a 400 error is returned. If neither is specified the bucket's DefaultRetention period will be used. 0 is a legal value assuming the bucket's minimum retention period is also 0. */ RetentionPeriod?: RetentionPeriod; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * The type of storage to use for the object. Defaults to 'STANDARD'. */ StorageClass?: StorageClass; /** * Specifies the algorithm to use to when encrypting the object (e.g., AES256). */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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; IBM 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. */ SSECustomerKey?: SSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * 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 */ SSEKMSKeyId?: SSEKMSKeyId; } export type Quiet = boolean; export type Range = string; export interface Redirect { /** * The host name to use in the redirect request. */ HostName?: HostName; /** * The HTTP redirect code to use on the response. Not required if one of the siblings is present. */ HttpRedirectCode?: HttpRedirectCode; /** * Protocol to use (http, https) when redirecting requests. The default is the protocol that is used in the original request. */ Protocol?: Protocol; /** * 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. */ ReplaceKeyPrefixWith?: ReplaceKeyPrefixWith; /** * 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. */ ReplaceKeyWith?: ReplaceKeyWith; } export type ReplaceKeyPrefixWith = string; export type ReplaceKeyWith = string; export interface ReplicationConfiguration { /** * Name of an IAM role for IBM COS to assume when replicating the objects. */ Role: Role; /** * Container for information about a particular replication rule. Replication configuration must have at least one rule and can contain up to 1,000 rules. */ Rules: ReplicationRules; } export interface ReplicationRule { /** * Unique identifier for the rule. The value cannot be longer than 255 characters. */ ID?: ID; /** * 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. */ Prefix: Prefix; /** * The rule is ignored if status is not Enabled. */ Status: ReplicationRuleStatus; Destination: Destination; } export type ReplicationRuleStatus = "Enabled"|"Disabled"|string; export type ReplicationRules = ReplicationRule[]; export type ReplicationStatus = "COMPLETE"|"PENDING"|"FAILED"|"REPLICA"|string; export type RequestCharged = "requester"|string; export type ResponseCacheControl = string; export type ResponseContentDisposition = string; export type ResponseContentEncoding = string; export type ResponseContentLanguage = string; export type ResponseContentType = string; export type ResponseExpires = Date; export type Restore = string; export interface RestoreObjectOutput { RequestCharged?: RequestCharged; } export interface RestoreObjectRequest { Bucket: BucketName; Key: ObjectKey; VersionId?: ObjectVersionId; RestoreRequest?: RestoreRequest; } export interface RestoreRequest { /** * Lifetime of the active copy in days */ Days: Days; /** * Glacier related parameters pertaining to this job. Do not use with restores that specify OutputLocation. */ GlacierJobParameters?: GlacierJobParameters; } export type RetentionDirective = "COPY"|"REPLACE"|string; export type RetentionExpirationDate = Date; export type RetentionLegalHoldCount = number; export type RetentionLegalHoldID = string; export type RetentionPeriod = number; export type RetentionPeriodSource = "Bucket"|"Object"|string; export type Role = string; export interface RoutingRule { /** * 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. */ Condition?: Condition; /** * 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. */ Redirect: Redirect; } export type RoutingRules = RoutingRule[]; export interface Rule { /** * */ Expiration?: LifecycleExpiration; /** * Unique identifier for the rule. The value cannot be longer than 255 characters. */ ID?: ID; /** * Prefix identifying one or more objects to which the rule applies. */ Prefix?: Prefix; /** * If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied. */ Status: ExpirationStatus; Transition?: Transition; AbortIncompleteMultipartUpload?: AbortIncompleteMultipartUpload; } export type Rules = Rule[]; export interface S3KeyFilter { FilterRules?: FilterRuleList; } export type SSECustomerAlgorithm = string; export type SSECustomerKey = Buffer|Uint8Array|Blob|string; export type SSECustomerKeyMD5 = string; export type SSEKMSKeyId = string; export type ServerSideEncryption = "AES256"|"aws:kms"|string; export type Size = number; export type StartAfter = string; export type TemporaryCopyStorageClass = "STANDARD"|"GLACIER"|string; export type StorageClass = "STANDARD"|"REDUCED_REDUNDANCY"|"STANDARD_IA"|string; export type Suffix = string; export interface Tag { /** * Name of the tag. */ Key: ObjectKey; /** * Value of the tag. */ Value: Value; } export type TagCount = number; export type TagSet = Tag[]; export interface Tagging { /** * */ TagSet: TagSet; } export type TargetBucket = string; export interface TargetGrant { Grantee?: Grantee; /** * Logging permissions assigned to the Grantee for the bucket. */ Permission?: BucketLogsPermission; } export type TargetGrants = TargetGrant[]; export type TargetPrefix = string; export type Tier = "Standard"|"Bulk"|"Expedited"|string; export type Token = string; export interface Transition { /** * Indicates at what date the object is to be moved or deleted. Should be in GMT ISO 8601 Format. */ Date?: _Date; /** * Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. */ Days?: Days; /** * This header is only included if an object is in the RestoreInProgress or Restored states. This header will indicate the storage class to which the restored copy of the data will be billed. */ TemporaryCopyStorageClass?: TransitionStorageClass; /** * The class of storage used to store the object. */ StorageClass?: TransitionStorageClass; } export type TransitionList = Transition[]; export type TransitionStorageClass = "GLACIER"|"STANDARD"|string; export type Type = "CanonicalUser"|"AmazonCustomerByEmail"|"Group"|string; export type URI = string; export type UploadIdMarker = string; export interface UploadPartCopyOutput { /** * The version of the source object that was copied, if you have enabled versioning on the source bucket. */ CopySourceVersionId?: CopySourceVersionId; CopyPartResult?: CopyPartResult; /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used. */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object. */ SSEKMSKeyId?: SSEKMSKeyId; } export interface UploadPartCopyRequest { Bucket: BucketName; /** * The name of the source bucket and key name of the source object, separated by a slash (/). Must be URL-encoded. */ CopySource: CopySource; /** * Copies the object if its entity tag (ETag) matches the specified tag. */ CopySourceIfMatch?: CopySourceIfMatch; /** * Copies the object if it has been modified since the specified time. */ CopySourceIfModifiedSince?: CopySourceIfModifiedSince; /** * Copies the object if its entity tag (ETag) is different than the specified ETag. */ CopySourceIfNoneMatch?: CopySourceIfNoneMatch; /** * Copies the object if it hasn't been modified since the specified time. */ CopySourceIfUnmodifiedSince?: CopySourceIfUnmodifiedSince; /** * 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. */ CopySourceRange?: CopySourceRange; Key: ObjectKey; /** * Part number of part being copied. This is a positive integer between 1 and 10,000. */ PartNumber: PartNumber; /** * Upload ID identifying the multipart upload whose part is being copied. */ UploadId: MultipartUploadId; /** * Specifies the algorithm to use to when encrypting the object (e.g., AES256). */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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; IBM 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. */ SSECustomerKey?: SSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * Specifies the algorithm to use when decrypting the source object (e.g., AES256). */ CopySourceSSECustomerAlgorithm?: CopySourceSSECustomerAlgorithm; /** * 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. */ CopySourceSSECustomerKey?: CopySourceSSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ CopySourceSSECustomerKeyMD5?: CopySourceSSECustomerKeyMD5; } export interface UploadPartOutput { /** * The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). */ ServerSideEncryption?: ServerSideEncryption; /** * Entity tag for the uploaded object. */ ETag?: ETag; /** * If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used. */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; /** * If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the object. */ SSEKMSKeyId?: SSEKMSKeyId; } export interface UploadPartRequest { /** * Object data. */ Body?: Body; /** * Name of the bucket to which the multipart upload was initiated. */ Bucket: BucketName; /** * Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. */ ContentLength?: ContentLength; /** * The base64-encoded 128-bit MD5 digest of the part data. */ ContentMD5?: ContentMD5; /** * Object key for which the multipart upload was initiated. */ Key: ObjectKey; /** * Part number of part being uploaded. This is a positive integer between 1 and 10,000. */ PartNumber: PartNumber; /** * Upload ID identifying the multipart upload whose part is being uploaded. */ UploadId: MultipartUploadId; /** * Specifies the algorithm to use to when encrypting the object (e.g., AES256). */ SSECustomerAlgorithm?: SSECustomerAlgorithm; /** * 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; IBM 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. */ SSECustomerKey?: SSECustomerKey; /** * Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. IBM COS uses this header for a message integrity check to ensure the encryption key was transmitted without error. */ SSECustomerKeyMD5?: SSECustomerKeyMD5; } export type Value = string; export type VersionIdMarker = string; export interface VersioningConfiguration { /** * 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. */ MFADelete?: MFADelete; /** * The versioning state of the bucket. */ Status?: BucketVersioningStatus; } /** * 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. */ export type apiVersion = "2006-03-01"|"latest"|string; export interface ClientApiVersions { /** * 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. */ apiVersion?: apiVersion; } export type ClientConfiguration = ServiceConfigurationOptions & UseDualstackConfigOptions & ClientApiVersions; /** * Contains interfaces for use with the S3 client. */ export import Types = S3; } export = S3;