export interface AccessGrantsLocationConfiguration {
    /** The S3SubPrefix is appended to the location scope creating the grant scope. Use this field to narrow the scope of the grant to a subset of the location scope. This field is required if the location sc */
    S3SubPrefix?: string;
}
export interface Grantee {
    /** The type of the grantee to which access has been granted. It can be one of the following values: IAM - An IAM user or role. DIRECTORY_USER - Your corporate directory user. You can use this option if y */
    GranteeType?: 'DIRECTORY_USER' | 'DIRECTORY_GROUP' | 'IAM';
    /** The unique identifier of the Grantee. If the grantee type is IAM, the identifier is the IAM Amazon Resource Name (ARN) of the user or role. If the grantee type is a directory user or group, the identi */
    GranteeIdentifier?: string;
}
export interface Tag {
    /** The key of the key-value pair of a tag added to your Amazon Web Services resource. A tag key can be up to 128 Unicode characters in length and is case-sensitive. System created tags that begin with aw */
    Key: string;
    /** The value of the key-value pair of a tag added to your Amazon Web Services resource. A tag value can be up to 256 Unicode characters in length and is case-sensitive. */
    Value: string;
}
export interface VpcConfiguration {
    /** If this field is specified, this access point will only allow connections from the specified VPC ID. */
    VpcId: string;
}
export interface PublicAccessBlockConfiguration {
    /** Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to TRUE causes the following behavior: PutBucketAcl and PutObjectAcl calls */
    BlockPublicAcls?: boolean;
    /** Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects th */
    IgnorePublicAcls?: boolean;
    /** Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket  */
    BlockPublicPolicy?: boolean;
    /** Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to TRUE restricts access to buckets with public policies to only Amazon Web Service */
    RestrictPublicBuckets?: boolean;
}
export interface Scope {
    /** You can specify any amount of prefixes, but the total length of characters of all prefixes must be less than 256 bytes in size. */
    Prefixes?: string[];
    /** You can include one or more API operations as permissions. */
    Permissions?: 'GetObject' | 'GetObjectAttributes' | 'ListMultipartUploadParts' | 'ListBucket' | 'ListBucketMultipartUploads' | 'PutObject' | 'DeleteObject' | 'AbortMultipartUpload'[];
}
export interface ObjectLambdaConfiguration {
    /** Standard access point associated with the Object Lambda Access Point. */
    SupportingAccessPoint: string;
    /** A container for whether the CloudWatch metrics configuration is enabled. */
    CloudWatchMetricsEnabled?: boolean;
    /** A container for allowed features. Valid inputs are GetObject-Range, GetObject-PartNumber, HeadObject-Range, and HeadObject-PartNumber. */
    AllowedFeatures?: 'GetObject-Range' | 'GetObject-PartNumber' | 'HeadObject-Range' | 'HeadObject-PartNumber'[];
    /** A container for transformation configurations for an Object Lambda Access Point. */
    TransformationConfigurations: any[];
}
export interface CreateBucketConfiguration {
    /** Specifies the Region where the bucket will be created. If you are creating a bucket on the US East (N. Virginia) Region (us-east-1), you do not need to specify the location. This is not supported by A */
    LocationConstraint?: 'EU' | 'eu-west-1' | 'us-west-1' | 'us-west-2' | 'ap-south-1' | 'ap-southeast-1' | 'ap-southeast-2' | 'ap-northeast-1' | 'sa-east-1' | 'cn-north-1' | 'eu-central-1';
}
export interface LambdaInvokeOperation {
    /** The Amazon Resource Name (ARN) for the Lambda function that the specified job will invoke on every object in the manifest. */
    FunctionArn?: string;
    /** Specifies the schema version for the payload that Batch Operations sends when invoking an Lambda function. Version 1.0 is the default. Version 2.0 is required when you use Batch Operations to invoke L */
    InvocationSchemaVersion?: string;
    /** Key-value pairs that are passed in the payload that Batch Operations sends when invoking an Lambda function. You must specify InvocationSchemaVersion 2.0 for LambdaInvoke operations that include UserA */
    UserArguments?: Record<string, any>;
}
export interface S3CopyObjectOperation {
    /** Specifies the destination bucket Amazon Resource Name (ARN) for the batch copy operation. General purpose buckets - For example, to copy objects to a general purpose bucket named destinationBucket, se */
    TargetResource?: string;
    /** This functionality is not supported by directory buckets. */
    CannedAccessControlList?: 'private' | 'public-read' | 'public-read-write' | 'aws-exec-read' | 'authenticated-read' | 'bucket-owner-read' | 'bucket-owner-full-control';
    /** This functionality is not supported by directory buckets. */
    AccessControlGrants?: any[];
    MetadataDirective?: 'COPY' | 'REPLACE';
    ModifiedSinceConstraint?: string;
    /** If you don't provide this parameter, Amazon S3 copies all the metadata from the original objects. If you specify an empty set, the new objects will have no tags. Otherwise, Amazon S3 assigns the suppl */
    NewObjectMetadata?: any;
    /** Specifies a list of tags to add to the destination objects after they are copied. If NewObjectTagging is not specified, the tags of the source objects are copied to destination objects by default. Dir */
    NewObjectTagging?: any[];
    /** If the destination bucket is configured as a website, specifies an optional metadata property for website redirects, x-amz-website-redirect-location. Allows webpage redirects if the object copy is acc */
    RedirectLocation?: string;
    /** This functionality is not supported by directory buckets. */
    RequesterPays?: boolean;
    /** Specify the storage class for the destination objects in a Copy operation. Directory buckets - This functionality is not supported by directory buckets. */
    StorageClass?: 'STANDARD' | 'STANDARD_IA' | 'ONEZONE_IA' | 'GLACIER' | 'INTELLIGENT_TIERING' | 'DEEP_ARCHIVE' | 'GLACIER_IR';
    UnModifiedSinceConstraint?: string;
    /** Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for object encryption. If the KMS key doesn't exist in the same account that's issuing the command, you must use the full Key ARN not th */
    SSEAwsKmsKeyId?: string;
    /** Specifies the folder prefix that you want the objects to be copied into. For example, to copy objects into a folder named Folder1 in the destination bucket, set the TargetKeyPrefix property to Folder1 */
    TargetKeyPrefix?: string;
    /** The legal hold status to be applied to all objects in the Batch Operations job. This functionality is not supported by directory buckets. */
    ObjectLockLegalHoldStatus?: 'OFF' | 'ON';
    /** The retention mode to be applied to all objects in the Batch Operations job. This functionality is not supported by directory buckets. */
    ObjectLockMode?: 'COMPLIANCE' | 'GOVERNANCE';
    /** The date when the applied object retention configuration expires on all objects in the Batch Operations job. This functionality is not supported by directory buckets. */
    ObjectLockRetainUntilDate?: string;
    /** Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting this header to true causes Amazon S3 to use a */
    BucketKeyEnabled?: boolean;
    /** Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see Checking object integrity in the Amazon S3 User Guide. */
    ChecksumAlgorithm?: 'CRC32' | 'CRC32C' | 'SHA1' | 'SHA256' | 'CRC64NVME';
}
export interface S3SetObjectAclOperation {
    AccessControlPolicy?: any;
}
export interface S3SetObjectTaggingOperation {
    TagSet?: any[];
}
export interface S3InitiateRestoreObjectOperation {
    /** This argument specifies how long the S3 Glacier or S3 Glacier Deep Archive object remains available in Amazon S3. S3 Initiate Restore Object jobs that target S3 Glacier and S3 Glacier Deep Archive obj */
    ExpirationInDays?: number;
    /** S3 Batch Operations supports STANDARD and BULK retrieval tiers, but not the EXPEDITED retrieval tier. */
    GlacierJobTier?: 'BULK' | 'STANDARD';
}
export interface S3SetObjectLegalHoldOperation {
    /** Contains the Object Lock legal hold status to be applied to all objects in the Batch Operations job. */
    LegalHold: any;
}
export interface S3SetObjectRetentionOperation {
    /** Indicates if the action should be applied to objects in the Batch Operations job even if they have Object Lock GOVERNANCE type in place. */
    BypassGovernanceRetention?: boolean;
    /** Contains the Object Lock retention mode to be applied to all objects in the Batch Operations job. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon S3 Use */
    Retention: any;
}
export interface S3ComputeObjectChecksumOperation {
    /** Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see Checking object integrity in the Amazon S3 User Guide. */
    ChecksumAlgorithm?: 'CRC32' | 'CRC32C' | 'CRC64NVME' | 'MD5' | 'SHA1' | 'SHA256';
    /** Indicates the checksum type that you want Amazon S3 to use to calculate the object's checksum value. For more information, see Checking object integrity in the Amazon S3 User Guide. */
    ChecksumType?: 'FULL_OBJECT' | 'COMPOSITE';
}
export interface S3UpdateObjectEncryptionOperation {
    /** The updated server-side encryption type for this S3 object. The UpdateObjectEncryption operation supports the SSE-KMS encryption type. */
    ObjectEncryption?: any;
}
export interface JobOperation {
    /** Directs the specified job to invoke an Lambda function on every object in the manifest. */
    LambdaInvoke?: LambdaInvokeOperation;
    /** Directs the specified job to run a PUT Copy object call on every object in the manifest. */
    S3PutObjectCopy?: S3CopyObjectOperation;
    /** Directs the specified job to run a PutObjectAcl call on every object in the manifest. This functionality is not supported by directory buckets. */
    S3PutObjectAcl?: S3SetObjectAclOperation;
    /** Directs the specified job to run a PUT Object tagging call on every object in the manifest. This functionality is not supported by directory buckets. */
    S3PutObjectTagging?: S3SetObjectTaggingOperation;
    /** Directs the specified job to execute a DELETE Object tagging call on every object in the manifest. This functionality is not supported by directory buckets. */
    S3DeleteObjectTagging?: Record<string, any>;
    /** Directs the specified job to initiate restore requests for every archived object in the manifest. This functionality is not supported by directory buckets. */
    S3InitiateRestoreObject?: S3InitiateRestoreObjectOperation;
    S3PutObjectLegalHold?: S3SetObjectLegalHoldOperation;
    S3PutObjectRetention?: S3SetObjectRetentionOperation;
    /** Directs the specified job to invoke ReplicateObject on every object in the job's manifest. This functionality is not supported by directory buckets. */
    S3ReplicateObject?: Record<string, any>;
    /** Directs the specified job to compute checksum values for every object in the manifest. */
    S3ComputeObjectChecksum?: S3ComputeObjectChecksumOperation;
    /** Updates the server-side encryption type of an existing encrypted object in a general purpose bucket. You can use the UpdateObjectEncryption operation to change encrypted objects from server-side encry */
    S3UpdateObjectEncryption?: S3UpdateObjectEncryptionOperation;
}
export interface JobReport {
    /** The Amazon Resource Name (ARN) for the bucket where specified job-completion report will be stored. Directory buckets - Directory buckets aren't supported as a location for Batch Operations to store j */
    Bucket?: string;
    /** The format of the specified job-completion report. */
    Format?: 'Report_CSV_20180820';
    /** Indicates whether the specified job will generate a job-completion report. */
    Enabled: boolean;
    /** An optional prefix to describe where in the specified bucket the job-completion report will be stored. Amazon S3 stores the job-completion report at /job-/report.json. */
    Prefix?: string;
    /** Indicates whether the job-completion report will include details of all tasks or only failed tasks. */
    ReportScope?: 'AllTasks' | 'FailedTasksOnly';
    /** Lists the Amazon Web Services account ID that owns the target bucket, where the completion report is received. */
    ExpectedBucketOwner?: string;
}
export interface JobManifestSpec {
    /** Indicates which of the available formats the specified manifest uses. */
    Format: 'S3BatchOperations_CSV_20180820' | 'S3InventoryReport_CSV_20161130';
    /** If the specified manifest object is in the S3BatchOperations_CSV_20180820 format, this element describes which columns contain the required data. */
    Fields?: any[];
}
export interface JobManifestLocation {
    /** The Amazon Resource Name (ARN) for a manifest object. When you're using XML requests, you must replace special characters (such as carriage returns) in object keys with their equivalent XML entity cod */
    ObjectArn: string;
    /** The optional version ID to identify a specific version of the manifest object. */
    ObjectVersionId?: string;
    /** The ETag for the specified manifest object. */
    ETag: string;
}
export interface JobManifest {
    /** Describes the format of the specified job's manifest. If the manifest is in CSV format, also describes the columns contained within the manifest. */
    Spec: JobManifestSpec;
    /** Contains the information required to locate the specified job's manifest. Manifests can't be imported from directory buckets. For more information, see Directory buckets. */
    Location: JobManifestLocation;
}
export interface S3Tag {
    /** Key of the tag */
    Key: string;
    /** Value of the tag */
    Value: string;
}
export interface S3JobManifestGenerator {
    /** The Amazon Web Services account ID that owns the bucket the generated manifest is written to. If provided the generated manifest bucket's owner Amazon Web Services account ID must match this value, el */
    ExpectedBucketOwner?: string;
    /** The ARN of the source bucket used by the ManifestGenerator. Directory buckets - Directory buckets aren't supported as the source buckets used by S3JobManifestGenerator to generate the job manifest. */
    SourceBucket: string;
    /** Specifies the location the generated manifest will be written to. Manifests can't be written to directory buckets. For more information, see Directory buckets. */
    ManifestOutputLocation?: any;
    /** Specifies rules the S3JobManifestGenerator should use to decide whether an object in the source bucket should or should not be included in the generated job manifest. */
    Filter?: any;
    /** Determines whether or not to write the job's generated manifest to a bucket. */
    EnableManifestOutput: boolean;
}
export interface CreateMultiRegionAccessPointInput {
    /** The name of the Multi-Region Access Point associated with this request. */
    Name: string;
    PublicAccessBlock?: PublicAccessBlockConfiguration;
    /** The buckets in different Regions that are associated with the Multi-Region Access Point. */
    Regions: any[];
}
export interface StorageLensGroupFilter {
    /** Contains a list of prefixes. At least one prefix must be specified. Up to 10 prefixes are allowed. */
    MatchAnyPrefix?: any[];
    /** Contains a list of suffixes. At least one suffix must be specified. Up to 10 suffixes are allowed. */
    MatchAnySuffix?: any[];
    /** Contains the list of S3 object tags. At least one object tag must be specified. Up to 10 object tags are allowed. */
    MatchAnyTag?: any[];
    /** Contains DaysGreaterThan and DaysLessThan to define the object age range (minimum and maximum number of days). */
    MatchObjectAge?: any;
    /** Contains BytesGreaterThan and BytesLessThan to define the object size range (minimum and maximum number of Bytes). */
    MatchObjectSize?: any;
    /** A logical operator that allows multiple filter conditions to be joined for more complex comparisons of Storage Lens group data. Objects must match all of the listed filter conditions that are joined b */
    And?: any;
    /** A single logical operator that allows multiple filter conditions to be joined. Objects can match any of the listed filter conditions, which are joined by the Or logical operator. Only one of each filt */
    Or?: any;
}
export interface StorageLensGroup {
    /** Contains the name of the Storage Lens group. */
    Name: string;
    /** Sets the criteria for the Storage Lens group data that is displayed. For multiple filter conditions, the AND or OR logical operator is used. */
    Filter: StorageLensGroupFilter;
    /** Contains the Amazon Resource Name (ARN) of the Storage Lens group. This property is read-only. */
    StorageLensGroupArn?: string;
}
export interface DeleteMultiRegionAccessPointInput {
    /** The name of the Multi-Region Access Point associated with this request. */
    Name: string;
}
export interface LifecycleConfiguration {
    /** A lifecycle rule for individual objects in an Outposts bucket. */
    Rules?: any[];
}
export interface ReplicationConfiguration {
    /** The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that S3 on Outposts assumes when replicating objects. For information about S3 replication on Outposts configuration, se */
    Role: string;
    /** A container for one or more replication rules. A replication configuration must have at least one rule and can contain an array of 100 rules at the most. */
    Rules: any[];
}
export interface Tagging {
    /** A collection for a set of tags. */
    TagSet: any[];
}
export interface VersioningConfiguration {
    /** Specifies whether MFA delete is enabled or disabled in the bucket versioning configuration for the S3 on Outposts bucket. */
    MFADelete?: 'Enabled' | 'Disabled';
    /** Sets the versioning state of the S3 on Outposts bucket. */
    Status?: 'Enabled' | 'Suspended';
}
export interface PutMultiRegionAccessPointPolicyInput {
    /** The name of the Multi-Region Access Point associated with the request. */
    Name: string;
    /** The policy details for the PutMultiRegionAccessPoint request. */
    Policy: string;
}
export interface AccountLevel {
    /** A container element for S3 Storage Lens activity metrics. */
    ActivityMetrics?: any;
    /** A container element for the S3 Storage Lens bucket-level configuration. */
    BucketLevel: any;
    /** A container element for S3 Storage Lens advanced cost-optimization metrics. */
    AdvancedCostOptimizationMetrics?: any;
    /** A container element for S3 Storage Lens advanced data-protection metrics. */
    AdvancedDataProtectionMetrics?: any;
    /** A container element for detailed status code metrics. */
    DetailedStatusCodesMetrics?: any;
    /** A container element for S3 Storage Lens advanced performance metrics. */
    AdvancedPerformanceMetrics?: any;
    /** A container element for S3 Storage Lens groups metrics. */
    StorageLensGroupLevel?: any;
}
export interface Include {
    /** A container for the S3 Storage Lens bucket includes. */
    Buckets?: any[];
    /** A container for the S3 Storage Lens Region includes. */
    Regions?: any[];
}
export interface Exclude {
    /** A container for the S3 Storage Lens bucket excludes. */
    Buckets?: any[];
    /** A container for the S3 Storage Lens Region excludes. */
    Regions?: any[];
}
export interface StorageLensDataExport {
    /** A container for the bucket where the S3 Storage Lens metrics export will be located. This bucket must be located in the same Region as the storage lens configuration. */
    S3BucketDestination?: any;
    /** A container for enabling Amazon CloudWatch publishing for S3 Storage Lens metrics. */
    CloudWatchMetrics?: any;
    /** A container for configuring S3 Storage Lens data exports to read-only S3 table buckets. */
    StorageLensTableDestination?: any;
}
export interface StorageLensExpandedPrefixesDataExport {
    S3BucketDestination?: any;
    /** A container for the bucket where the S3 Storage Lens metric export files are located. At least one export destination must be specified. */
    StorageLensTableDestination?: any;
}
export interface StorageLensAwsOrg {
    /** A container for the Amazon Resource Name (ARN) of the Amazon Web Services organization. This property is read-only and follows the following format: arn:aws:organizations:us-east-1:example-account-id: */
    Arn: string;
}
export interface StorageLensConfiguration {
    /** A container for the Amazon S3 Storage Lens configuration ID. */
    Id: string;
    /** A container for all the account-level configurations of your S3 Storage Lens configuration. */
    AccountLevel: AccountLevel;
    /** A container for what is included in this configuration. This container can only be valid if there is no Exclude container submitted, and it's not empty. */
    Include?: Include;
    /** A container for what is excluded in this configuration. This container can only be valid if there is no Include container submitted, and it's not empty. */
    Exclude?: Exclude;
    /** A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format. */
    DataExport?: StorageLensDataExport;
    /** A container that configures your S3 Storage Lens expanded prefixes metrics report. */
    ExpandedPrefixesDataExport?: StorageLensExpandedPrefixesDataExport;
    /** A container for whether the S3 Storage Lens configuration is enabled. */
    IsEnabled: boolean;
    /** A container for the Amazon Web Services organization for this S3 Storage Lens configuration. */
    AwsOrg?: StorageLensAwsOrg;
    /** The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property is read-only and follows the following format: arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-na */
    StorageLensArn?: string;
    /** A container for all prefix delimiters that are used for object keys in this S3 Storage Lens configuration. The prefix delimiters determine how S3 Storage Lens counts prefix depth, by separating the hi */
    PrefixDelimiter?: string;
}
export interface StorageLensTag {
    Key: string;
    Value: string;
}
export interface MultiRegionAccessPointRoute {
    /** The name of the Amazon S3 bucket for which you'll submit a routing configuration change. Either the Bucket or the Region value must be provided. If both are provided, the bucket must be in the specifi */
    Bucket?: string;
    /** The Amazon Web Services Region to which you'll be submitting a routing configuration change. Either the Bucket or the Region value must be provided. If both are provided, the bucket must be in the spe */
    Region?: string;
    /** The traffic state for the specified bucket or Amazon Web Services Region. A value of 0 indicates a passive state, which means that no new traffic will be routed to the Region. A value of 100 indicates */
    TrafficDialPercentage: number;
}
export interface AssociateAccessGrantsIdentityCenterInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of the Amazon Web Services IAM Identity Center instance that you are associating with your S3 Access Grants instance. An IAM Identity Center instance is your corporate i */
    IdentityCenterArn: string;
}
export interface CreateAccessGrantInput {
    /** The ID of the registered location to which you are granting access. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3: */
    AccessGrantsLocationId: string;
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The user, group, or role to which you are granting access. You can grant access to an IAM user or role. If you have added your corporate directory to Amazon Web Services IAM Identity Center and associ */
    Grantee: Grantee;
    /** The type of access that you are granting to your S3 data, which can be set to one of the following values: READ – Grant read-only access to the S3 data. WRITE – Grant write-only access to the S3 data. */
    Permission: 'READ' | 'WRITE' | 'READWRITE';
    /** The configuration options of the grant location. The grant location is the S3 path to the data to which you are granting access. It contains the S3SubPrefix field. The grant scope is the result of app */
    AccessGrantsLocationConfiguration?: AccessGrantsLocationConfiguration;
    /** The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center application associated with your Identity Center instance. If an application ARN is included in the request to create an ac */
    ApplicationArn?: string;
    /** The type of S3SubPrefix. The only possible value is Object. Pass this value if the access grant scope is an object. Do not pass this value if the access grant scope is a bucket or a bucket and a prefi */
    S3PrefixType?: 'Object';
    /** The Amazon Web Services resource tags that you are adding to the access grant. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, */
    Tags?: Tag[];
}
export interface CreateAccessGrantsInstanceInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** If you would like to associate your S3 Access Grants instance with an Amazon Web Services IAM Identity Center instance, use this field to pass the Amazon Resource Name (ARN) of the Amazon Web Services */
    IdentityCenterArn?: string;
    /** The Amazon Web Services resource tags that you are adding to the S3 Access Grants instance. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize */
    Tags?: Tag[];
}
export interface CreateAccessGrantsLocationInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of the IAM role for the registered location. S3 Access Grants assumes this role to manage access to the registered location. */
    IAMRoleArn: string;
    /** The S3 path to the location that you are registering. The location scope can be the default S3 location s3://, the S3 path to a bucket s3://, or the S3 path to a bucket and prefix s3:///. A prefix in  */
    LocationScope: string;
    /** The Amazon Web Services resource tags that you are adding to the S3 Access Grants location. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize */
    Tags?: Tag[];
}
export interface CreateAccessPointInput {
    /** The Amazon Web Services account ID for the account that owns the specified access point. */
    AccountId: string;
    /** The name of the bucket that you want to associate this access point with. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as w */
    Bucket: string;
    /** The name you want to assign to this access point. For directory buckets, the access point name must consist of a base name that you provide and suffix that includes the ZoneID (Amazon Web Services Ava */
    Name: string;
    /** The Amazon Web Services account ID associated with the S3 bucket associated with this access point. For same account access point when your bucket and access point belong to the same account owner, th */
    BucketAccountId?: string;
    /** The PublicAccessBlock configuration that you want to apply to the access point. */
    PublicAccessBlockConfiguration?: PublicAccessBlockConfiguration;
    /** For directory buckets, you can filter access control to specific prefixes, API operations, or a combination of both. For more information, see Managing access to shared datasets in directory buckets w */
    Scope?: Scope;
    /** An array of tags that you can apply to an access point. Tags are key-value pairs of metadata used to control access to your access points. For more information about tags, see Using tags with Amazon S */
    Tags?: Tag[];
    /** If you include this field, Amazon S3 restricts access to this access point to requests from the specified virtual private cloud (VPC). This is required for creating an access point for Amazon S3 on Ou */
    VpcConfiguration?: VpcConfiguration;
}
export interface CreateAccessPointForObjectLambdaInput {
    /** The Amazon Web Services account ID for owner of the specified Object Lambda Access Point. */
    AccountId: string;
    /** Object Lambda Access Point configuration as a JSON document. */
    Configuration: ObjectLambdaConfiguration;
    /** The name you want to assign to this Object Lambda Access Point. */
    Name: string;
}
export interface CreateBucketInput {
    /** The name of the bucket. */
    Bucket: string;
    /** The canned ACL to apply to the bucket. This is not supported by Amazon S3 on Outposts buckets. */
    ACL?: 'private' | 'public-read' | 'public-read-write' | 'authenticated-read';
    /** The configuration information for the bucket. This is not supported by Amazon S3 on Outposts buckets. */
    CreateBucketConfiguration?: CreateBucketConfiguration;
    /** Allows grantee the read, write, read ACP, and write ACP permissions on the bucket. This is not supported by Amazon S3 on Outposts buckets. */
    GrantFullControl?: string;
    /** Allows grantee to list the objects in the bucket. This is not supported by Amazon S3 on Outposts buckets. */
    GrantRead?: string;
    /** Allows grantee to read the bucket ACL. This is not supported by Amazon S3 on Outposts buckets. */
    GrantReadACP?: string;
    /** Allows grantee to create, overwrite, and delete any object in the bucket. This is not supported by Amazon S3 on Outposts buckets. */
    GrantWrite?: string;
    /** Allows grantee to write the ACL for the applicable bucket. This is not supported by Amazon S3 on Outposts buckets. */
    GrantWriteACP?: string;
    /** Specifies whether you want S3 Object Lock to be enabled for the new bucket. This is not supported by Amazon S3 on Outposts buckets. */
    ObjectLockEnabledForBucket?: boolean;
    /** The ID of the Outposts where the bucket is being created. This ID is required by Amazon S3 on Outposts buckets. */
    OutpostId?: string;
}
export interface CreateJobInput {
    /** The Amazon Web Services account ID that creates the job. */
    AccountId: string;
    /** An idempotency token to ensure that you don't accidentally submit the same request twice. You can use any string up to the maximum length. */
    ClientRequestToken: string;
    /** The action that you want this job to perform on every object listed in the manifest. For more information about the available actions, see Operations in the Amazon S3 User Guide. */
    Operation: JobOperation;
    /** The numerical priority for this job. Higher numbers indicate higher priority. */
    Priority: number;
    /** Configuration parameters for the optional job-completion report. */
    Report: JobReport;
    /** The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) role that Batch Operations will use to run this job's action on every object in the manifest. */
    RoleArn: string;
    /** Indicates whether confirmation is required before Amazon S3 runs the job. Confirmation is only required for jobs created through the Amazon S3 console. */
    ConfirmationRequired?: boolean;
    /** A description for this job. You can use any string within the permitted length. Descriptions don't need to be unique and can be used for multiple jobs. */
    Description?: string;
    /** Configuration parameters for the manifest. */
    Manifest?: JobManifest;
    /** The attribute container for the ManifestGenerator details. Jobs must be created with either a manifest file or a ManifestGenerator, but not both. */
    ManifestGenerator?: {
        S3JobManifestGenerator?: S3JobManifestGenerator;
    };
    /** A set of tags to associate with the S3 Batch Operations job. This is an optional parameter. */
    Tags?: S3Tag[];
}
export interface CreateMultiRegionAccessPointInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. The owner of the Multi-Region Access Point also must own the underlying buckets. */
    AccountId: string;
    /** An idempotency token used to identify the request and guarantee that requests are unique. */
    ClientToken: string;
    /** A container element containing details about the Multi-Region Access Point. */
    Details: CreateMultiRegionAccessPointInput;
}
export interface CreateStorageLensGroupInput {
    /** The Amazon Web Services account ID that the Storage Lens group is created from and associated with. */
    AccountId: string;
    /** The Storage Lens group configuration. */
    StorageLensGroup: StorageLensGroup;
    /** The Amazon Web Services resource tags that you're adding to your Storage Lens group. This parameter is optional. */
    Tags?: Tag[];
}
export interface DeleteAccessGrantInput {
    /** The ID of the access grant. S3 Access Grants auto-generates this ID when you create the access grant. */
    AccessGrantId: string;
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface DeleteAccessGrantsInstanceInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface DeleteAccessGrantsInstanceResourcePolicyInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface DeleteAccessGrantsLocationInput {
    /** The ID of the registered location that you are deregistering from your S3 Access Grants instance. S3 Access Grants assigned this ID when you registered the location. S3 Access Grants assigns the ID de */
    AccessGrantsLocationId: string;
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface DeleteAccessPointInput {
    /** The Amazon Web Services account ID for the account that owns the specified access point. */
    AccountId: string;
    /** The name of the access point you want to delete. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this param */
    Name: string;
}
export interface DeleteAccessPointForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** The name of the access point you want to delete. */
    Name: string;
}
export interface DeleteAccessPointPolicyInput {
    /** The account ID for the account that owns the specified access point. */
    AccountId: string;
    /** The name of the access point whose policy you want to delete. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For usi */
    Name: string;
}
export interface DeleteAccessPointPolicyForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** The name of the Object Lambda Access Point you want to delete the policy for. */
    Name: string;
}
export interface DeleteAccessPointScopeInput {
    /** The Amazon Web Services account ID that owns the access point with the scope that you want to delete. */
    AccountId: string;
    /** The name of the access point with the scope that you want to delete. */
    Name: string;
}
export interface DeleteBucketInput {
    /** The account ID that owns the Outposts bucket. */
    AccountId: string;
    /** Specifies the bucket being deleted. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3  */
    Bucket: string;
}
export interface DeleteBucketLifecycleConfigurationInput {
    /** The account ID of the lifecycle configuration to delete. */
    AccountId: string;
    /** Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts wi */
    Bucket: string;
}
export interface DeleteBucketPolicyInput {
    /** The account ID of the Outposts bucket. */
    AccountId: string;
    /** Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts wi */
    Bucket: string;
}
export interface DeleteBucketReplicationInput {
    /** The Amazon Web Services account ID of the Outposts bucket to delete the replication configuration for. */
    AccountId: string;
    /** Specifies the S3 on Outposts bucket to delete the replication configuration for. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost- */
    Bucket: string;
}
export interface DeleteBucketTaggingInput {
    /** The Amazon Web Services account ID of the Outposts bucket tag set to be removed. */
    AccountId: string;
    /** The bucket ARN that has the tag set to be removed. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this par */
    Bucket: string;
}
export interface DeleteJobTaggingInput {
    /** The Amazon Web Services account ID associated with the S3 Batch Operations job. */
    AccountId: string;
    /** The ID for the S3 Batch Operations job whose tags you want to delete. */
    JobId: string;
}
export interface DeleteMultiRegionAccessPointInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** An idempotency token used to identify the request and guarantee that requests are unique. */
    ClientToken: string;
    /** A container element containing details about the Multi-Region Access Point. */
    Details: DeleteMultiRegionAccessPointInput;
}
export interface DeletePublicAccessBlockInput {
    /** The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to remove. */
    AccountId: string;
}
export interface DeleteStorageLensConfigurationInput {
    /** The account ID of the requester. */
    AccountId: string;
    /** The ID of the S3 Storage Lens configuration. */
    ConfigId: string;
}
export interface DeleteStorageLensConfigurationTaggingInput {
    /** The account ID of the requester. */
    AccountId: string;
    /** The ID of the S3 Storage Lens configuration. */
    ConfigId: string;
}
export interface DeleteStorageLensGroupInput {
    /** The Amazon Web Services account ID used to create the Storage Lens group that you're trying to delete. */
    AccountId: string;
    /** The name of the Storage Lens group that you're trying to delete. */
    Name: string;
}
export interface DescribeJobInput {
    /** The Amazon Web Services account ID associated with the S3 Batch Operations job. */
    AccountId: string;
    /** The ID for the job whose information you want to retrieve. */
    JobId: string;
}
export interface DescribeMultiRegionAccessPointOperationInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** The request token associated with the request you want to know about. This request token is returned as part of the response when you make an asynchronous request. You provide this token to query abou */
    RequestTokenARN: string;
}
export interface DissociateAccessGrantsIdentityCenterInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface GetAccessGrantInput {
    /** The ID of the access grant. S3 Access Grants auto-generates this ID when you create the access grant. */
    AccessGrantId: string;
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface GetAccessGrantsInstanceInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface GetAccessGrantsInstanceForPrefixInput {
    /** The ID of the Amazon Web Services account that is making this request. */
    AccountId: string;
    /** The S3 prefix of the access grants that you would like to retrieve. */
    S3Prefix: string;
}
export interface GetAccessGrantsInstanceResourcePolicyInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface GetAccessGrantsLocationInput {
    /** The ID of the registered location that you are retrieving. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and as */
    AccessGrantsLocationId: string;
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
}
export interface GetAccessPointInput {
    /** The Amazon Web Services account ID for the account that owns the specified access point. */
    AccountId: string;
    /** The name of the access point whose configuration information you want to retrieve. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpos */
    Name: string;
}
export interface GetAccessPointConfigurationForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** The name of the Object Lambda Access Point you want to return the configuration for. */
    Name: string;
}
export interface GetAccessPointForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** The name of the Object Lambda Access Point. */
    Name: string;
}
export interface GetAccessPointPolicyInput {
    /** The account ID for the account that owns the specified access point. */
    AccountId: string;
    /** The name of the access point whose policy you want to retrieve. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For u */
    Name: string;
}
export interface GetAccessPointPolicyForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** The name of the Object Lambda Access Point. */
    Name: string;
}
export interface GetAccessPointPolicyStatusInput {
    /** The account ID for the account that owns the specified access point. */
    AccountId: string;
    /** The name of the access point whose policy status you want to retrieve. */
    Name: string;
}
export interface GetAccessPointPolicyStatusForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** The name of the Object Lambda Access Point. */
    Name: string;
}
export interface GetAccessPointScopeInput {
    /** The Amazon Web Services account ID that owns the access point with the scope that you want to retrieve. */
    AccountId: string;
    /** The name of the access point with the scope you want to retrieve. */
    Name: string;
}
export interface GetBucketInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts wi */
    Bucket: string;
}
export interface GetBucketLifecycleConfigurationInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this paramete */
    Bucket: string;
}
export interface GetBucketPolicyInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts wi */
    Bucket: string;
}
export interface GetBucketReplicationInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** Specifies the bucket to get the replication information for. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For usin */
    Bucket: string;
}
export interface GetBucketTaggingInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts wi */
    Bucket: string;
}
export interface GetBucketVersioningInput {
    /** The Amazon Web Services account ID of the S3 on Outposts bucket. */
    AccountId: string;
    /** The S3 on Outposts bucket to return the versioning state for. */
    Bucket: string;
}
export interface GetDataAccessInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The type of permission granted to your S3 data, which can be set to one of the following values: READ – Grant read-only access to the S3 data. WRITE – Grant write-only access to the S3 data. READWRITE */
    Permission: 'READ' | 'WRITE' | 'READWRITE';
    /** The S3 URI path of the data to which you are requesting temporary access credentials. If the requesting account has an access grant for this data, S3 Access Grants vends temporary access credentials i */
    Target: string;
    /** The session duration, in seconds, of the temporary access credential that S3 Access Grants vends to the grantee or client application. The default value is 1 hour, but the grantee can specify a range  */
    DurationSeconds?: number;
    /** The scope of the temporary access credential that S3 Access Grants vends to the grantee or client application. Default – The scope of the returned temporary access token is the scope of the grant that */
    Privilege?: 'Minimal' | 'Default';
    /** The type of Target. The only possible value is Object. Pass this value if the target data that you would like to access is a path to an object. Do not pass this value if the target data is a bucket or */
    TargetType?: 'Object';
}
export interface GetJobTaggingInput {
    /** The Amazon Web Services account ID associated with the S3 Batch Operations job. */
    AccountId: string;
    /** The ID for the S3 Batch Operations job whose tags you want to retrieve. */
    JobId: string;
}
export interface GetMultiRegionAccessPointInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** The name of the Multi-Region Access Point whose configuration information you want to receive. The name of the Multi-Region Access Point is different from the alias. For more information about the dis */
    Name: string;
}
export interface GetMultiRegionAccessPointPolicyInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more information about the distinction between the name and the alias of an Multi-Re */
    Name: string;
}
export interface GetMultiRegionAccessPointPolicyStatusInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** Specifies the Multi-Region Access Point. The name of the Multi-Region Access Point is different from the alias. For more information about the distinction between the name and the alias of an Multi-Re */
    Name: string;
}
export interface GetMultiRegionAccessPointRoutesInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** The Multi-Region Access Point ARN. */
    Mrap: string;
}
export interface GetPublicAccessBlockInput {
    /** The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to retrieve. */
    AccountId: string;
}
export interface GetStorageLensConfigurationInput {
    /** The account ID of the requester. */
    AccountId: string;
    /** The ID of the Amazon S3 Storage Lens configuration. */
    ConfigId: string;
}
export interface GetStorageLensConfigurationTaggingInput {
    /** The account ID of the requester. */
    AccountId: string;
    /** The ID of the Amazon S3 Storage Lens configuration. */
    ConfigId: string;
}
export interface GetStorageLensGroupInput {
    /** The Amazon Web Services account ID associated with the Storage Lens group that you're trying to retrieve the details for. */
    AccountId: string;
    /** The name of the Storage Lens group that you're trying to retrieve the configuration details for. */
    Name: string;
}
export interface ListAccessGrantsInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of an Amazon Web Services IAM Identity Center application associated with your Identity Center instance. If the grant includes an application ARN, the grantee can only a */
    ApplicationArn?: string;
    /** The unique identifer of the Grantee. If the grantee type is IAM, the identifier is the IAM Amazon Resource Name (ARN) of the user or role. If the grantee type is a directory user or group, the identif */
    GranteeIdentifier?: string;
    /** The type of the grantee to which access has been granted. It can be one of the following values: IAM - An IAM user or role. DIRECTORY_USER - Your corporate directory user. You can use this option if y */
    GranteeType?: 'DIRECTORY_USER' | 'DIRECTORY_GROUP' | 'IAM';
    /** The S3 path of the data to which you are granting access. It is the result of appending the Subprefix to the location scope. */
    GrantScope?: string;
    /** The maximum number of access grants that you would like returned in the List Access Grants response. If the results include the pagination token NextToken, make another call using the NextToken to det */
    MaxResults?: number;
    /** A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants request in order to retrieve the next page of results. */
    NextToken?: string;
    /** The type of permission granted to your S3 data, which can be set to one of the following values: READ – Grant read-only access to the S3 data. WRITE – Grant write-only access to the S3 data. READWRITE */
    Permission?: 'READ' | 'WRITE' | 'READWRITE';
}
export interface ListAccessGrantsInstancesInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The maximum number of access grants that you would like returned in the List Access Grants response. If the results include the pagination token NextToken, make another call using the NextToken to det */
    MaxResults?: number;
    /** A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants Instances request in order to retrieve the next page of results. */
    NextToken?: string;
}
export interface ListAccessGrantsLocationsInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The S3 path to the location that you are registering. The location scope can be the default S3 location s3://, the S3 path to a bucket s3://, or the S3 path to a bucket and prefix s3:///. A prefix in  */
    LocationScope?: string;
    /** The maximum number of access grants that you would like returned in the List Access Grants response. If the results include the pagination token NextToken, make another call using the NextToken to det */
    MaxResults?: number;
    /** A pagination token to request the next page of results. Pass this value into a subsequent List Access Grants Locations request in order to retrieve the next page of results. */
    NextToken?: string;
}
export interface ListAccessPointsInput {
    /** The Amazon Web Services account ID for the account that owns the specified access points. */
    AccountId: string;
    /** The name of the bucket whose associated access points you want to list. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as wel */
    Bucket?: string;
    /** The unique identifier for the data source of the access point. */
    DataSourceId?: string;
    /** The type of the data source that the access point is attached to. Returns only access points attached to S3 buckets by default. To return all access points specify DataSourceType as ALL. */
    DataSourceType?: string;
    /** The maximum number of access points that you want to include in the list. If the specified bucket has more than this number of access points, then the response will include a continuation token in the */
    MaxResults?: number;
    /** A continuation token. If a previous call to ListAccessPoints returned a continuation token in the NextToken field, then providing that value here causes Amazon S3 to retrieve the next page of results. */
    NextToken?: string;
}
export interface ListAccessPointsForDirectoryBucketsInput {
    /** The Amazon Web Services account ID that owns the access points. */
    AccountId: string;
    /** The name of the directory bucket associated with the access points you want to list. */
    DirectoryBucket?: string;
    /** The maximum number of access points that you would like returned in the ListAccessPointsForDirectoryBuckets response. If the directory bucket is associated with more than this number of access points, */
    MaxResults?: number;
    /** If NextToken is returned, there are more access points available than requested in the maxResults value. The value of NextToken is a unique pagination token for each page. Make the call again using th */
    NextToken?: string;
}
export interface ListAccessPointsForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** The maximum number of access points that you want to include in the list. The response may contain fewer access points but will never contain more. If there are more than this number of access points, */
    MaxResults?: number;
    /** If the list has more access points than can be returned in one call to this API, this field contains a continuation token that you can provide in subsequent calls to this API to retrieve additional ac */
    NextToken?: string;
}
export interface ListCallerAccessGrantsInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** If this optional parameter is passed in the request, a filter is applied to the results. The results will include only the access grants for the caller's Identity Center application or for any other a */
    AllowedByApplication?: boolean;
    /** The S3 path of the data that you would like to access. Must start with s3://. You can optionally pass only the beginning characters of a path, and S3 Access Grants will search for all applicable grant */
    GrantScope?: string;
    /** The maximum number of access grants that you would like returned in the List Caller Access Grants response. If the results include the pagination token NextToken, make another call using the NextToken */
    MaxResults?: number;
    /** A pagination token to request the next page of results. Pass this value into a subsequent List Caller Access Grants request in order to retrieve the next page of results. */
    NextToken?: string;
}
export interface ListJobsInput {
    /** The Amazon Web Services account ID associated with the S3 Batch Operations job. */
    AccountId: string;
    /** The List Jobs request returns jobs that match the statuses listed in this element. */
    JobStatuses?: 'Active' | 'Cancelled' | 'Cancelling' | 'Complete' | 'Completing' | 'Failed' | 'Failing' | 'New' | 'Paused' | 'Pausing' | 'Preparing' | 'Ready' | 'Suspended'[];
    /** The maximum number of jobs that Amazon S3 will include in the List Jobs response. If there are more jobs than this number, the response will include a pagination token in the NextToken field to enable */
    MaxResults?: number;
    /** A pagination token to request the next page of results. Use the token that Amazon S3 returned in the NextToken element of the ListJobsResult from the previous List Jobs request. */
    NextToken?: string;
}
export interface ListMultiRegionAccessPointsInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** Not currently used. Do not use this parameter. */
    MaxResults?: number;
    /** Not currently used. Do not use this parameter. */
    NextToken?: string;
}
export interface ListRegionalBucketsInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    MaxResults?: number;
    NextToken?: string;
    /** The ID of the Outposts resource. This ID is required by Amazon S3 on Outposts buckets. */
    OutpostId?: string;
}
export interface ListStorageLensConfigurationsInput {
    /** The account ID of the requester. */
    AccountId: string;
    /** A pagination token to request the next page of results. */
    NextToken?: string;
}
export interface ListStorageLensGroupsInput {
    /** The Amazon Web Services account ID that owns the Storage Lens groups. */
    AccountId: string;
    /** The token for the next set of results, or null if there are no more results. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Web Services account ID of the resource owner. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of the S3 resource that you want to list tags for. The tagged resource can be a directory bucket, S3 Storage Lens group or S3 Access Grants instance, registered location */
    ResourceArn: string;
}
export interface PutAccessGrantsInstanceResourcePolicyInput {
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The resource policy of the S3 Access Grants instance that you are updating. */
    Policy: string;
    /** The Organization of the resource policy of the S3 Access Grants instance. */
    Organization?: string;
}
export interface PutAccessPointConfigurationForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** Object Lambda Access Point configuration document. */
    Configuration: ObjectLambdaConfiguration;
    /** The name of the Object Lambda Access Point. */
    Name: string;
}
export interface PutAccessPointPolicyInput {
    /** The Amazon Web Services account ID for owner of the bucket associated with the specified access point. */
    AccountId: string;
    /** The name of the access point that you want to associate with the specified policy. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpos */
    Name: string;
    /** The policy that you want to apply to the specified access point. For more information about access point policies, see Managing data access with Amazon S3 access points or Managing access to shared da */
    Policy: string;
}
export interface PutAccessPointPolicyForObjectLambdaInput {
    /** The account ID for the account that owns the specified Object Lambda Access Point. */
    AccountId: string;
    /** The name of the Object Lambda Access Point. */
    Name: string;
    /** Object Lambda Access Point resource policy document. */
    Policy: string;
}
export interface PutAccessPointScopeInput {
    /** The Amazon Web Services account ID that owns the access point with scope that you want to create or replace. */
    AccountId: string;
    /** The name of the access point with the scope that you want to create or replace. */
    Name: string;
    /** Object prefixes, API operations, or a combination of both. */
    Scope: Scope;
}
export interface PutBucketLifecycleConfigurationInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** The name of the bucket for which to set the configuration. */
    Bucket: string;
    /** Container for lifecycle rules. You can add as many as 1,000 rules. */
    LifecycleConfiguration?: LifecycleConfiguration;
}
export interface PutBucketPolicyInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** Specifies the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this parameter with S3 on Outposts wi */
    Bucket: string;
    /** The bucket policy as a JSON document. */
    Policy: string;
    /** Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future. This is not supported by Amazon S3 on Outposts buckets. */
    ConfirmRemoveSelfBucketAccess?: boolean;
}
export interface PutBucketReplicationInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** Specifies the S3 on Outposts bucket to set the configuration for. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For */
    Bucket: string;
    ReplicationConfiguration: ReplicationConfiguration;
}
export interface PutBucketTaggingInput {
    /** The Amazon Web Services account ID of the Outposts bucket. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of the bucket. For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well. For using this paramete */
    Bucket: string;
    Tagging: Tagging;
}
export interface PutBucketVersioningInput {
    /** The Amazon Web Services account ID of the S3 on Outposts bucket. */
    AccountId: string;
    /** The S3 on Outposts bucket to set the versioning state for. */
    Bucket: string;
    /** The root-level tag for the VersioningConfiguration parameters. */
    VersioningConfiguration: VersioningConfiguration;
    /** The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. */
    MFA?: string;
}
export interface PutJobTaggingInput {
    /** The Amazon Web Services account ID associated with the S3 Batch Operations job. */
    AccountId: string;
    /** The ID for the S3 Batch Operations job whose tags you want to replace. */
    JobId: string;
    /** The set of tags to associate with the S3 Batch Operations job. */
    Tags: S3Tag[];
}
export interface PutMultiRegionAccessPointPolicyInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** An idempotency token used to identify the request and guarantee that requests are unique. */
    ClientToken: string;
    /** A container element containing the details of the policy for the Multi-Region Access Point. */
    Details: PutMultiRegionAccessPointPolicyInput;
}
export interface PutPublicAccessBlockInput {
    /** The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to set. */
    AccountId: string;
    /** The PublicAccessBlock configuration that you want to apply to the specified Amazon Web Services account. */
    PublicAccessBlockConfiguration: PublicAccessBlockConfiguration;
}
export interface PutStorageLensConfigurationInput {
    /** The account ID of the requester. */
    AccountId: string;
    /** The ID of the S3 Storage Lens configuration. */
    ConfigId: string;
    /** The S3 Storage Lens configuration. */
    StorageLensConfiguration: StorageLensConfiguration;
    /** The tag set of the S3 Storage Lens configuration. You can set up to a maximum of 50 tags. */
    Tags?: StorageLensTag[];
}
export interface PutStorageLensConfigurationTaggingInput {
    /** The account ID of the requester. */
    AccountId: string;
    /** The ID of the S3 Storage Lens configuration. */
    ConfigId: string;
    /** The tag set of the S3 Storage Lens configuration. You can set up to a maximum of 50 tags. */
    Tags: StorageLensTag[];
}
export interface SubmitMultiRegionAccessPointRoutesInput {
    /** The Amazon Web Services account ID for the owner of the Multi-Region Access Point. */
    AccountId: string;
    /** The Multi-Region Access Point ARN. */
    Mrap: string;
    /** The different routes that make up the new route configuration. Active routes return a value of 100, and passive routes return a value of 0. */
    RouteUpdates: MultiRegionAccessPointRoute[];
}
export interface TagResourceInput {
    /** The Amazon Web Services account ID that created the S3 resource that you're trying to add tags to or the requester's account ID. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of the S3 resource that you're applying tags to. The tagged resource can be a directory bucket, S3 Storage Lens group or S3 Access Grants instance, registered location,  */
    ResourceArn: string;
    /** The Amazon Web Services resource tags that you want to add to the specified S3 resource. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Web Services account ID that owns the resource that you're trying to remove the tags from. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of the S3 resource that you're removing tags from. The tagged resource can be a directory bucket, S3 Storage Lens group or S3 Access Grants instance, registered location */
    ResourceArn: string;
    /** The array of tag key-value pairs that you're trying to remove from of the S3 resource. */
    TagKeys: string[];
}
export interface UpdateAccessGrantsLocationInput {
    /** The ID of the registered location that you are updating. S3 Access Grants assigns this ID when you register the location. S3 Access Grants assigns the ID default to the default location s3:// and assi */
    AccessGrantsLocationId: string;
    /** The Amazon Web Services account ID of the S3 Access Grants instance. */
    AccountId: string;
    /** The Amazon Resource Name (ARN) of the IAM role for the registered location. S3 Access Grants assumes this role to manage access to the registered location. */
    IAMRoleArn: string;
}
export interface UpdateJobPriorityInput {
    /** The Amazon Web Services account ID associated with the S3 Batch Operations job. */
    AccountId: string;
    /** The ID for the job whose priority you want to update. */
    JobId: string;
    /** The priority you want to assign to this job. */
    Priority: number;
}
export interface UpdateJobStatusInput {
    /** The Amazon Web Services account ID associated with the S3 Batch Operations job. */
    AccountId: string;
    /** The ID of the job whose status you want to update. */
    JobId: string;
    /** The status that you want to move the specified job to. */
    RequestedJobStatus: 'Cancelled' | 'Ready';
    /** A description of the reason why you want to change the specified job's status. This field can be any string up to the maximum length. */
    StatusUpdateReason?: string;
}
export interface UpdateStorageLensGroupInput {
    /** The Amazon Web Services account ID of the Storage Lens group owner. */
    AccountId: string;
    /** The name of the Storage Lens group that you want to update. */
    Name: string;
    /** The JSON file that contains the Storage Lens group configuration. */
    StorageLensGroup: StorageLensGroup;
}
/** S3 Control service binding for Step Functions SDK integrations. */
export declare class S3Control {
    constructor();
    associateAccessGrantsIdentityCenter<T>(params: AssociateAccessGrantsIdentityCenterInput): Promise<T>;
    createAccessGrant<T>(params: CreateAccessGrantInput): Promise<T>;
    createAccessGrantsInstance<T>(params: CreateAccessGrantsInstanceInput): Promise<T>;
    createAccessGrantsLocation<T>(params: CreateAccessGrantsLocationInput): Promise<T>;
    createAccessPoint<T>(params: CreateAccessPointInput): Promise<T>;
    createAccessPointForObjectLambda<T>(params: CreateAccessPointForObjectLambdaInput): Promise<T>;
    createBucket<T>(params: CreateBucketInput): Promise<T>;
    createJob<T>(params: CreateJobInput): Promise<T>;
    createMultiRegionAccessPoint<T>(params: CreateMultiRegionAccessPointInput): Promise<T>;
    createStorageLensGroup<T>(params: CreateStorageLensGroupInput): Promise<T>;
    deleteAccessGrant<T>(params: DeleteAccessGrantInput): Promise<T>;
    deleteAccessGrantsInstance<T>(params: DeleteAccessGrantsInstanceInput): Promise<T>;
    deleteAccessGrantsInstanceResourcePolicy<T>(params: DeleteAccessGrantsInstanceResourcePolicyInput): Promise<T>;
    deleteAccessGrantsLocation<T>(params: DeleteAccessGrantsLocationInput): Promise<T>;
    deleteAccessPoint<T>(params: DeleteAccessPointInput): Promise<T>;
    deleteAccessPointForObjectLambda<T>(params: DeleteAccessPointForObjectLambdaInput): Promise<T>;
    deleteAccessPointPolicy<T>(params: DeleteAccessPointPolicyInput): Promise<T>;
    deleteAccessPointPolicyForObjectLambda<T>(params: DeleteAccessPointPolicyForObjectLambdaInput): Promise<T>;
    deleteAccessPointScope<T>(params: DeleteAccessPointScopeInput): Promise<T>;
    deleteBucket<T>(params: DeleteBucketInput): Promise<T>;
    deleteBucketLifecycleConfiguration<T>(params: DeleteBucketLifecycleConfigurationInput): Promise<T>;
    deleteBucketPolicy<T>(params: DeleteBucketPolicyInput): Promise<T>;
    deleteBucketReplication<T>(params: DeleteBucketReplicationInput): Promise<T>;
    deleteBucketTagging<T>(params: DeleteBucketTaggingInput): Promise<T>;
    deleteJobTagging<T>(params: DeleteJobTaggingInput): Promise<T>;
    deleteMultiRegionAccessPoint<T>(params: DeleteMultiRegionAccessPointInput): Promise<T>;
    deletePublicAccessBlock<T>(params: DeletePublicAccessBlockInput): Promise<T>;
    deleteStorageLensConfiguration<T>(params: DeleteStorageLensConfigurationInput): Promise<T>;
    deleteStorageLensConfigurationTagging<T>(params: DeleteStorageLensConfigurationTaggingInput): Promise<T>;
    deleteStorageLensGroup<T>(params: DeleteStorageLensGroupInput): Promise<T>;
    describeJob<T>(params: DescribeJobInput): Promise<T>;
    describeMultiRegionAccessPointOperation<T>(params: DescribeMultiRegionAccessPointOperationInput): Promise<T>;
    dissociateAccessGrantsIdentityCenter<T>(params: DissociateAccessGrantsIdentityCenterInput): Promise<T>;
    getAccessGrant<T>(params: GetAccessGrantInput): Promise<T>;
    getAccessGrantsInstance<T>(params: GetAccessGrantsInstanceInput): Promise<T>;
    getAccessGrantsInstanceForPrefix<T>(params: GetAccessGrantsInstanceForPrefixInput): Promise<T>;
    getAccessGrantsInstanceResourcePolicy<T>(params: GetAccessGrantsInstanceResourcePolicyInput): Promise<T>;
    getAccessGrantsLocation<T>(params: GetAccessGrantsLocationInput): Promise<T>;
    getAccessPoint<T>(params: GetAccessPointInput): Promise<T>;
    getAccessPointConfigurationForObjectLambda<T>(params: GetAccessPointConfigurationForObjectLambdaInput): Promise<T>;
    getAccessPointForObjectLambda<T>(params: GetAccessPointForObjectLambdaInput): Promise<T>;
    getAccessPointPolicy<T>(params: GetAccessPointPolicyInput): Promise<T>;
    getAccessPointPolicyForObjectLambda<T>(params: GetAccessPointPolicyForObjectLambdaInput): Promise<T>;
    getAccessPointPolicyStatus<T>(params: GetAccessPointPolicyStatusInput): Promise<T>;
    getAccessPointPolicyStatusForObjectLambda<T>(params: GetAccessPointPolicyStatusForObjectLambdaInput): Promise<T>;
    getAccessPointScope<T>(params: GetAccessPointScopeInput): Promise<T>;
    getBucket<T>(params: GetBucketInput): Promise<T>;
    getBucketLifecycleConfiguration<T>(params: GetBucketLifecycleConfigurationInput): Promise<T>;
    getBucketPolicy<T>(params: GetBucketPolicyInput): Promise<T>;
    getBucketReplication<T>(params: GetBucketReplicationInput): Promise<T>;
    getBucketTagging<T>(params: GetBucketTaggingInput): Promise<T>;
    getBucketVersioning<T>(params: GetBucketVersioningInput): Promise<T>;
    getDataAccess<T>(params: GetDataAccessInput): Promise<T>;
    getJobTagging<T>(params: GetJobTaggingInput): Promise<T>;
    getMultiRegionAccessPoint<T>(params: GetMultiRegionAccessPointInput): Promise<T>;
    getMultiRegionAccessPointPolicy<T>(params: GetMultiRegionAccessPointPolicyInput): Promise<T>;
    getMultiRegionAccessPointPolicyStatus<T>(params: GetMultiRegionAccessPointPolicyStatusInput): Promise<T>;
    getMultiRegionAccessPointRoutes<T>(params: GetMultiRegionAccessPointRoutesInput): Promise<T>;
    getPublicAccessBlock<T>(params: GetPublicAccessBlockInput): Promise<T>;
    getStorageLensConfiguration<T>(params: GetStorageLensConfigurationInput): Promise<T>;
    getStorageLensConfigurationTagging<T>(params: GetStorageLensConfigurationTaggingInput): Promise<T>;
    getStorageLensGroup<T>(params: GetStorageLensGroupInput): Promise<T>;
    listAccessGrants<T>(params: ListAccessGrantsInput): Promise<T>;
    listAccessGrantsInstances<T>(params: ListAccessGrantsInstancesInput): Promise<T>;
    listAccessGrantsLocations<T>(params: ListAccessGrantsLocationsInput): Promise<T>;
    listAccessPoints<T>(params: ListAccessPointsInput): Promise<T>;
    listAccessPointsForDirectoryBuckets<T>(params: ListAccessPointsForDirectoryBucketsInput): Promise<T>;
    listAccessPointsForObjectLambda<T>(params: ListAccessPointsForObjectLambdaInput): Promise<T>;
    listCallerAccessGrants<T>(params: ListCallerAccessGrantsInput): Promise<T>;
    listJobs<T>(params: ListJobsInput): Promise<T>;
    listMultiRegionAccessPoints<T>(params: ListMultiRegionAccessPointsInput): Promise<T>;
    listRegionalBuckets<T>(params: ListRegionalBucketsInput): Promise<T>;
    listStorageLensConfigurations<T>(params: ListStorageLensConfigurationsInput): Promise<T>;
    listStorageLensGroups<T>(params: ListStorageLensGroupsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putAccessGrantsInstanceResourcePolicy<T>(params: PutAccessGrantsInstanceResourcePolicyInput): Promise<T>;
    putAccessPointConfigurationForObjectLambda<T>(params: PutAccessPointConfigurationForObjectLambdaInput): Promise<T>;
    putAccessPointPolicy<T>(params: PutAccessPointPolicyInput): Promise<T>;
    putAccessPointPolicyForObjectLambda<T>(params: PutAccessPointPolicyForObjectLambdaInput): Promise<T>;
    putAccessPointScope<T>(params: PutAccessPointScopeInput): Promise<T>;
    putBucketLifecycleConfiguration<T>(params: PutBucketLifecycleConfigurationInput): Promise<T>;
    putBucketPolicy<T>(params: PutBucketPolicyInput): Promise<T>;
    putBucketReplication<T>(params: PutBucketReplicationInput): Promise<T>;
    putBucketTagging<T>(params: PutBucketTaggingInput): Promise<T>;
    putBucketVersioning<T>(params: PutBucketVersioningInput): Promise<T>;
    putJobTagging<T>(params: PutJobTaggingInput): Promise<T>;
    putMultiRegionAccessPointPolicy<T>(params: PutMultiRegionAccessPointPolicyInput): Promise<T>;
    putPublicAccessBlock<T>(params: PutPublicAccessBlockInput): Promise<T>;
    putStorageLensConfiguration<T>(params: PutStorageLensConfigurationInput): Promise<T>;
    putStorageLensConfigurationTagging<T>(params: PutStorageLensConfigurationTaggingInput): Promise<T>;
    submitMultiRegionAccessPointRoutes<T>(params: SubmitMultiRegionAccessPointRoutesInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAccessGrantsLocation<T>(params: UpdateAccessGrantsLocationInput): Promise<T>;
    updateJobPriority<T>(params: UpdateJobPriorityInput): Promise<T>;
    updateJobStatus<T>(params: UpdateJobStatusInput): Promise<T>;
    updateStorageLensGroup<T>(params: UpdateStorageLensGroupInput): Promise<T>;
}
//# sourceMappingURL=S3Control.d.ts.map