Metadata-Version: 2.4
Name: rboto-s3
Version: 0.1.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Framework :: AsyncIO
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Rust
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Dist: rboto==0.1.0
License-File: LICENSE
Summary: rboto: async-only, typed Python client for Amazon S3, powered by Rust. Alpha preview.
Keywords: rboto,aws,s3,asyncio,typing,rust
Home-Page: https://github.com/ferrumio/rboto
Author-email: Leandro Cavalcante Damascena <leandro.damascena@gmail.com>
License-Expression: Apache-2.0
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Changelog, https://github.com/ferrumio/rboto/releases
Project-URL: Documentation, https://ferrumio.github.io/rboto/guides/s3/
Project-URL: Homepage, https://ferrumio.github.io/rboto/
Project-URL: Issues, https://github.com/ferrumio/rboto/issues
Project-URL: Repository, https://github.com/ferrumio/rboto

<!-- Generated by rboto-codegen. Edit the descriptor, template, or example source. -->
# rboto-s3

rboto is an independent project maintained by [Ferrumio](https://github.com/ferrumio).
It is not affiliated with, sponsored by, or endorsed by Amazon Web Services (AWS).

**Preview (Alpha).** rboto is under active development. APIs may change between releases.

rboto provides an **async-only, typed Python client for Amazon S3**,
powered by Rust. This package contains `S3Client` and
**112 operations**.

## Installation

Requires Python 3.12 or newer and a native wheel for your Python version and platform.

```bash
python -m pip install "rboto[s3]"
```

You can also install `rboto-s3` directly; it installs the matching
`rboto` package. Only the selected service is installed.

These are the package names to use when a release is available on your package index.
If your index has no release yet, follow the
[source installation instructions](https://ferrumio.github.io/rboto/getting-started/).

## Usage

Configure credentials through your environment, shared profile, or workload role.
The example uses `us-east-1`; select a region where your service and resources are available.
Resource names, identifiers, input files, and model IDs in the example are placeholders
to replace with your own.

```python
import asyncio

from rboto import S3Client
from rboto_s3.exceptions import NoSuchKeyError


async def main() -> None:
    client = S3Client(region="us-east-1")
    try:
        response = await client.get_object(bucket="my-bucket", key="hello.txt")
    except NoSuchKeyError:
        print("Object does not exist")
        return
    # Buffer this small text object. Use async iteration for large bodies.
    body: bytes = await response.body.read()
    print(body.decode("utf-8"))


if __name__ == "__main__":
    asyncio.run(main())
```

In an application with an event loop, call `await main()` instead of `asyncio.run(main())`.
Reuse the client across calls. Constructing a client does not send a request.

## API conventions

- Import the client with `from rboto import S3Client`.
- Every operation is asynchronous: use `await client.method(...)`.
- Operation arguments are keyword-only and use the Python names listed below.
- Structured inputs use typed dictionaries and tagged unions from `rboto_s3.types`.
- Regular responses expose typed attributes; `response.to_dict()` converts them to a dictionary.
- Event-stream responses may be typed dictionaries containing async iterators. Follow the
  declared return type; consume event streams with `async for`.
- Byte streams are consumed asynchronously. `await stream.read()` buffers the complete body;
  iterate the stream when processing a large response.
- Direct operation calls return one page.
- Use `async for page in client.paginators.method(...)` for supported paginated operations.
  Paginators accept the same typed arguments as the corresponding client method.

- Catch modeled exceptions from `rboto_s3.exceptions`. Their `error_code`,
  `message`, and `operation_name` identify service failures.

Clients also accept `profile`, `endpoint_url`, or shared `Session` settings.
See [configuration](https://ferrumio.github.io/rboto/guides/configuration/),
[errors](https://ferrumio.github.io/rboto/guides/errors/), and
[streaming](https://ferrumio.github.io/rboto/guides/streaming/).

## Operations

This is the complete operation catalog for this generated package. “Required arguments”
lists arguments without defaults in the Python signature. Service-side conditions may
require additional arguments. Each method links to its complete signature, including
optional arguments. Nested input definitions are in `rboto_s3.types`;
native response definitions are in the package's `_native.pyi`.

| Method | Required arguments | Return type |
|---|---|---|
| [`abort_multipart_upload`](#abort_multipart_upload) | <code>bucket: str</code>, <code>key: str</code>, <code>upload_id: str</code> | <code>AbortMultipartUploadOutput</code> |
| [`complete_multipart_upload`](#complete_multipart_upload) | <code>bucket: str</code>, <code>key: str</code>, <code>upload_id: str</code> | <code>CompleteMultipartUploadOutput</code> |
| [`copy_object`](#copy_object) | <code>bucket: str</code>, <code>copy_source: str</code>, <code>key: str</code> | <code>CopyObjectOutput</code> |
| [`create_bucket`](#create_bucket) | <code>bucket: str</code> | <code>CreateBucketOutput</code> |
| [`create_bucket_metadata_configuration`](#create_bucket_metadata_configuration) | <code>bucket: str</code>, <code>metadata_configuration: MetadataConfiguration</code> | <code>None</code> |
| [`create_bucket_metadata_table_configuration`](#create_bucket_metadata_table_configuration) | <code>bucket: str</code>, <code>metadata_table_configuration: MetadataTableConfiguration</code> | <code>None</code> |
| [`create_multipart_upload`](#create_multipart_upload) | <code>bucket: str</code>, <code>key: str</code> | <code>CreateMultipartUploadOutput</code> |
| [`create_session`](#create_session) | <code>bucket: str</code> | <code>CreateSessionOutput</code> |
| [`delete_bucket`](#delete_bucket) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_analytics_configuration`](#delete_bucket_analytics_configuration) | <code>bucket: str</code>, <code>id: str</code> | <code>None</code> |
| [`delete_bucket_cors`](#delete_bucket_cors) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_encryption`](#delete_bucket_encryption) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_intelligent_tiering_configuration`](#delete_bucket_intelligent_tiering_configuration) | <code>bucket: str</code>, <code>id: str</code> | <code>None</code> |
| [`delete_bucket_inventory_configuration`](#delete_bucket_inventory_configuration) | <code>bucket: str</code>, <code>id: str</code> | <code>None</code> |
| [`delete_bucket_lifecycle`](#delete_bucket_lifecycle) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_metadata_configuration`](#delete_bucket_metadata_configuration) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_metadata_table_configuration`](#delete_bucket_metadata_table_configuration) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_metrics_configuration`](#delete_bucket_metrics_configuration) | <code>bucket: str</code>, <code>id: str</code> | <code>None</code> |
| [`delete_bucket_ownership_controls`](#delete_bucket_ownership_controls) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_policy`](#delete_bucket_policy) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_replication`](#delete_bucket_replication) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_tagging`](#delete_bucket_tagging) | <code>bucket: str</code> | <code>None</code> |
| [`delete_bucket_website`](#delete_bucket_website) | <code>bucket: str</code> | <code>None</code> |
| [`delete_object`](#delete_object) | <code>bucket: str</code>, <code>key: str</code> | <code>DeleteObjectOutput</code> |
| [`delete_object_annotation`](#delete_object_annotation) | <code>bucket: str</code>, <code>key: str</code>, <code>annotation_name: str</code> | <code>DeleteObjectAnnotationOutput</code> |
| [`delete_object_tagging`](#delete_object_tagging) | <code>bucket: str</code>, <code>key: str</code> | <code>DeleteObjectTaggingOutput</code> |
| [`delete_objects`](#delete_objects) | <code>bucket: str</code>, <code>delete: Delete</code> | <code>DeleteObjectsOutput</code> |
| [`delete_public_access_block`](#delete_public_access_block) | <code>bucket: str</code> | <code>None</code> |
| [`get_bucket_abac`](#get_bucket_abac) | <code>bucket: str</code> | <code>GetBucketAbacOutput</code> |
| [`get_bucket_accelerate_configuration`](#get_bucket_accelerate_configuration) | <code>bucket: str</code> | <code>GetBucketAccelerateConfigurationOutput</code> |
| [`get_bucket_acl`](#get_bucket_acl) | <code>bucket: str</code> | <code>GetBucketAclOutput</code> |
| [`get_bucket_analytics_configuration`](#get_bucket_analytics_configuration) | <code>bucket: str</code>, <code>id: str</code> | <code>GetBucketAnalyticsConfigurationOutput</code> |
| [`get_bucket_cors`](#get_bucket_cors) | <code>bucket: str</code> | <code>GetBucketCorsOutput</code> |
| [`get_bucket_encryption`](#get_bucket_encryption) | <code>bucket: str</code> | <code>GetBucketEncryptionOutput</code> |
| [`get_bucket_intelligent_tiering_configuration`](#get_bucket_intelligent_tiering_configuration) | <code>bucket: str</code>, <code>id: str</code> | <code>GetBucketIntelligentTieringConfigurationOutput</code> |
| [`get_bucket_inventory_configuration`](#get_bucket_inventory_configuration) | <code>bucket: str</code>, <code>id: str</code> | <code>GetBucketInventoryConfigurationOutput</code> |
| [`get_bucket_lifecycle_configuration`](#get_bucket_lifecycle_configuration) | <code>bucket: str</code> | <code>GetBucketLifecycleConfigurationOutput</code> |
| [`get_bucket_location`](#get_bucket_location) | <code>bucket: str</code> | <code>GetBucketLocationOutput</code> |
| [`get_bucket_logging`](#get_bucket_logging) | <code>bucket: str</code> | <code>GetBucketLoggingOutput</code> |
| [`get_bucket_metadata_configuration`](#get_bucket_metadata_configuration) | <code>bucket: str</code> | <code>GetBucketMetadataConfigurationOutput</code> |
| [`get_bucket_metadata_table_configuration`](#get_bucket_metadata_table_configuration) | <code>bucket: str</code> | <code>GetBucketMetadataTableConfigurationOutput</code> |
| [`get_bucket_metrics_configuration`](#get_bucket_metrics_configuration) | <code>bucket: str</code>, <code>id: str</code> | <code>GetBucketMetricsConfigurationOutput</code> |
| [`get_bucket_notification_configuration`](#get_bucket_notification_configuration) | <code>bucket: str</code> | <code>GetBucketNotificationConfigurationOutput</code> |
| [`get_bucket_ownership_controls`](#get_bucket_ownership_controls) | <code>bucket: str</code> | <code>GetBucketOwnershipControlsOutput</code> |
| [`get_bucket_policy`](#get_bucket_policy) | <code>bucket: str</code> | <code>GetBucketPolicyOutput</code> |
| [`get_bucket_policy_status`](#get_bucket_policy_status) | <code>bucket: str</code> | <code>GetBucketPolicyStatusOutput</code> |
| [`get_bucket_replication`](#get_bucket_replication) | <code>bucket: str</code> | <code>GetBucketReplicationOutput</code> |
| [`get_bucket_request_payment`](#get_bucket_request_payment) | <code>bucket: str</code> | <code>GetBucketRequestPaymentOutput</code> |
| [`get_bucket_tagging`](#get_bucket_tagging) | <code>bucket: str</code> | <code>GetBucketTaggingOutput</code> |
| [`get_bucket_versioning`](#get_bucket_versioning) | <code>bucket: str</code> | <code>GetBucketVersioningOutput</code> |
| [`get_bucket_website`](#get_bucket_website) | <code>bucket: str</code> | <code>GetBucketWebsiteOutput</code> |
| [`get_object`](#get_object) | <code>bucket: str</code>, <code>key: str</code> | <code>GetObjectOutput</code> |
| [`get_object_acl`](#get_object_acl) | <code>bucket: str</code>, <code>key: str</code> | <code>GetObjectAclOutput</code> |
| [`get_object_annotation`](#get_object_annotation) | <code>bucket: str</code>, <code>key: str</code>, <code>annotation_name: str</code> | <code>GetObjectAnnotationOutput</code> |
| [`get_object_attributes`](#get_object_attributes) | <code>bucket: str</code>, <code>key: str</code>, <code>object_attributes: Sequence[ObjectAttributes]</code> | <code>GetObjectAttributesOutput</code> |
| [`get_object_legal_hold`](#get_object_legal_hold) | <code>bucket: str</code>, <code>key: str</code> | <code>GetObjectLegalHoldOutput</code> |
| [`get_object_lock_configuration`](#get_object_lock_configuration) | <code>bucket: str</code> | <code>GetObjectLockConfigurationOutput</code> |
| [`get_object_retention`](#get_object_retention) | <code>bucket: str</code>, <code>key: str</code> | <code>GetObjectRetentionOutput</code> |
| [`get_object_tagging`](#get_object_tagging) | <code>bucket: str</code>, <code>key: str</code> | <code>GetObjectTaggingOutput</code> |
| [`get_object_torrent`](#get_object_torrent) | <code>bucket: str</code>, <code>key: str</code> | <code>GetObjectTorrentOutput</code> |
| [`get_public_access_block`](#get_public_access_block) | <code>bucket: str</code> | <code>GetPublicAccessBlockOutput</code> |
| [`head_bucket`](#head_bucket) | <code>bucket: str</code> | <code>HeadBucketOutput</code> |
| [`head_object`](#head_object) | <code>bucket: str</code>, <code>key: str</code> | <code>HeadObjectOutput</code> |
| [`list_bucket_analytics_configurations`](#list_bucket_analytics_configurations) | <code>bucket: str</code> | <code>ListBucketAnalyticsConfigurationsOutput</code> |
| [`list_bucket_intelligent_tiering_configurations`](#list_bucket_intelligent_tiering_configurations) | <code>bucket: str</code> | <code>ListBucketIntelligentTieringConfigurationsOutput</code> |
| [`list_bucket_inventory_configurations`](#list_bucket_inventory_configurations) | <code>bucket: str</code> | <code>ListBucketInventoryConfigurationsOutput</code> |
| [`list_bucket_metrics_configurations`](#list_bucket_metrics_configurations) | <code>bucket: str</code> | <code>ListBucketMetricsConfigurationsOutput</code> |
| [`list_buckets`](#list_buckets) | None | <code>ListBucketsOutput</code> |
| [`list_directory_buckets`](#list_directory_buckets) | None | <code>ListDirectoryBucketsOutput</code> |
| [`list_multipart_uploads`](#list_multipart_uploads) | <code>bucket: str</code> | <code>ListMultipartUploadsOutput</code> |
| [`list_object_annotations`](#list_object_annotations) | <code>bucket: str</code>, <code>key: str</code> | <code>ListObjectAnnotationsOutput</code> |
| [`list_object_versions`](#list_object_versions) | <code>bucket: str</code> | <code>ListObjectVersionsOutput</code> |
| [`list_objects`](#list_objects) | <code>bucket: str</code> | <code>ListObjectsOutput</code> |
| [`list_objects_v2`](#list_objects_v2) | <code>bucket: str</code> | <code>ListObjectsV2Output</code> |
| [`list_parts`](#list_parts) | <code>bucket: str</code>, <code>key: str</code>, <code>upload_id: str</code> | <code>ListPartsOutput</code> |
| [`put_bucket_abac`](#put_bucket_abac) | <code>bucket: str</code>, <code>abac_status: AbacStatus</code> | <code>None</code> |
| [`put_bucket_accelerate_configuration`](#put_bucket_accelerate_configuration) | <code>bucket: str</code>, <code>accelerate_configuration: AccelerateConfiguration</code> | <code>None</code> |
| [`put_bucket_acl`](#put_bucket_acl) | <code>bucket: str</code> | <code>None</code> |
| [`put_bucket_analytics_configuration`](#put_bucket_analytics_configuration) | <code>bucket: str</code>, <code>id: str</code>, <code>analytics_configuration: AnalyticsConfiguration</code> | <code>None</code> |
| [`put_bucket_cors`](#put_bucket_cors) | <code>bucket: str</code>, <code>cors_configuration: CORSConfiguration</code> | <code>None</code> |
| [`put_bucket_encryption`](#put_bucket_encryption) | <code>bucket: str</code>, <code>server_side_encryption_configuration: ServerSideEncryptionConfiguration</code> | <code>None</code> |
| [`put_bucket_intelligent_tiering_configuration`](#put_bucket_intelligent_tiering_configuration) | <code>bucket: str</code>, <code>id: str</code>, <code>intelligent_tiering_configuration: IntelligentTieringConfiguration</code> | <code>None</code> |
| [`put_bucket_inventory_configuration`](#put_bucket_inventory_configuration) | <code>bucket: str</code>, <code>id: str</code>, <code>inventory_configuration: InventoryConfiguration</code> | <code>None</code> |
| [`put_bucket_lifecycle_configuration`](#put_bucket_lifecycle_configuration) | <code>bucket: str</code> | <code>PutBucketLifecycleConfigurationOutput</code> |
| [`put_bucket_logging`](#put_bucket_logging) | <code>bucket: str</code>, <code>bucket_logging_status: BucketLoggingStatus</code> | <code>None</code> |
| [`put_bucket_metrics_configuration`](#put_bucket_metrics_configuration) | <code>bucket: str</code>, <code>id: str</code>, <code>metrics_configuration: MetricsConfiguration</code> | <code>None</code> |
| [`put_bucket_notification_configuration`](#put_bucket_notification_configuration) | <code>bucket: str</code>, <code>notification_configuration: NotificationConfiguration</code> | <code>None</code> |
| [`put_bucket_ownership_controls`](#put_bucket_ownership_controls) | <code>bucket: str</code>, <code>ownership_controls: OwnershipControls</code> | <code>None</code> |
| [`put_bucket_policy`](#put_bucket_policy) | <code>bucket: str</code>, <code>policy: str</code> | <code>None</code> |
| [`put_bucket_replication`](#put_bucket_replication) | <code>bucket: str</code>, <code>replication_configuration: ReplicationConfiguration</code> | <code>None</code> |
| [`put_bucket_request_payment`](#put_bucket_request_payment) | <code>bucket: str</code>, <code>request_payment_configuration: RequestPaymentConfiguration</code> | <code>None</code> |
| [`put_bucket_tagging`](#put_bucket_tagging) | <code>bucket: str</code>, <code>tagging: Tagging</code> | <code>None</code> |
| [`put_bucket_versioning`](#put_bucket_versioning) | <code>bucket: str</code>, <code>versioning_configuration: VersioningConfiguration</code> | <code>None</code> |
| [`put_bucket_website`](#put_bucket_website) | <code>bucket: str</code>, <code>website_configuration: WebsiteConfiguration</code> | <code>None</code> |
| [`put_object`](#put_object) | <code>bucket: str</code>, <code>key: str</code> | <code>PutObjectOutput</code> |
| [`put_object_acl`](#put_object_acl) | <code>bucket: str</code>, <code>key: str</code> | <code>PutObjectAclOutput</code> |
| [`put_object_annotation`](#put_object_annotation) | <code>bucket: str</code>, <code>key: str</code>, <code>annotation_name: str</code>, <code>annotation_payload: bytes</code> | <code>PutObjectAnnotationOutput</code> |
| [`put_object_legal_hold`](#put_object_legal_hold) | <code>bucket: str</code>, <code>key: str</code> | <code>PutObjectLegalHoldOutput</code> |
| [`put_object_lock_configuration`](#put_object_lock_configuration) | <code>bucket: str</code> | <code>PutObjectLockConfigurationOutput</code> |
| [`put_object_retention`](#put_object_retention) | <code>bucket: str</code>, <code>key: str</code> | <code>PutObjectRetentionOutput</code> |
| [`put_object_tagging`](#put_object_tagging) | <code>bucket: str</code>, <code>key: str</code>, <code>tagging: Tagging</code> | <code>PutObjectTaggingOutput</code> |
| [`put_public_access_block`](#put_public_access_block) | <code>bucket: str</code>, <code>public_access_block_configuration: PublicAccessBlockConfiguration</code> | <code>None</code> |
| [`rename_object`](#rename_object) | <code>bucket: str</code>, <code>key: str</code>, <code>rename_source: str</code> | <code>RenameObjectOutput</code> |
| [`restore_object`](#restore_object) | <code>bucket: str</code>, <code>key: str</code> | <code>RestoreObjectOutput</code> |
| [`select_object_content`](#select_object_content) | <code>bucket: str</code>, <code>key: str</code>, <code>expression: str</code>, <code>expression_type: ExpressionType</code>, <code>input_serialization: InputSerialization</code>, <code>output_serialization: OutputSerialization</code> | <code>SelectObjectContentOutput</code> |
| [`update_bucket_metadata_annotation_table_configuration`](#update_bucket_metadata_annotation_table_configuration) | <code>bucket: str</code>, <code>annotation_table_configuration: AnnotationTableConfigurationUpdates</code> | <code>None</code> |
| [`update_bucket_metadata_inventory_table_configuration`](#update_bucket_metadata_inventory_table_configuration) | <code>bucket: str</code>, <code>inventory_table_configuration: InventoryTableConfigurationUpdates</code> | <code>None</code> |
| [`update_bucket_metadata_journal_table_configuration`](#update_bucket_metadata_journal_table_configuration) | <code>bucket: str</code>, <code>journal_table_configuration: JournalTableConfigurationUpdates</code> | <code>None</code> |
| [`update_object_encryption`](#update_object_encryption) | <code>bucket: str</code>, <code>key: str</code>, <code>object_encryption: ObjectEncryption</code> | <code>UpdateObjectEncryptionOutput</code> |
| [`upload_part`](#upload_part) | <code>bucket: str</code>, <code>key: str</code>, <code>part_number: int</code>, <code>upload_id: str</code> | <code>UploadPartOutput</code> |
| [`upload_part_copy`](#upload_part_copy) | <code>bucket: str</code>, <code>copy_source: str</code>, <code>key: str</code>, <code>part_number: int</code>, <code>upload_id: str</code> | <code>UploadPartCopyOutput</code> |
| [`write_get_object_response`](#write_get_object_response) | <code>request_route: str</code>, <code>request_token: str</code> | <code>None</code> |

## Complete signatures

### abort_multipart_upload

```python
async def abort_multipart_upload(
    *,
    bucket: str,
    key: str,
    upload_id: str,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    if_match_initiated_time: str | None = None,
) -> AbortMultipartUploadOutput: ...
```


### complete_multipart_upload

```python
async def complete_multipart_upload(
    *,
    bucket: str,
    key: str,
    upload_id: str,
    multipart_upload: CompletedMultipartUpload | None = None,
    checksum_crc32: str | None = None,
    checksum_crc32_c: str | None = None,
    checksum_crc64_nvme: str | None = None,
    checksum_sha1: str | None = None,
    checksum_sha256: str | None = None,
    checksum_sha512: str | None = None,
    checksum_md5: str | None = None,
    checksum_xxhash64: str | None = None,
    checksum_xxhash3: str | None = None,
    checksum_xxhash128: str | None = None,
    checksum_type: ChecksumType | None = None,
    mpu_object_size: int | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    if_match: str | None = None,
    if_none_match: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
) -> CompleteMultipartUploadOutput: ...
```


### copy_object

```python
async def copy_object(
    *,
    bucket: str,
    copy_source: str,
    key: str,
    acl: ObjectCannedACL | None = None,
    cache_control: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    content_disposition: str | None = None,
    content_encoding: str | None = None,
    content_language: str | None = None,
    content_type: str | None = None,
    copy_source_if_match: str | None = None,
    copy_source_if_modified_since: str | None = None,
    copy_source_if_none_match: str | None = None,
    copy_source_if_unmodified_since: str | None = None,
    expires: str | None = None,
    grant_full_control: str | None = None,
    grant_read: str | None = None,
    grant_read_acp: str | None = None,
    grant_write_acp: str | None = None,
    if_match: str | None = None,
    if_none_match: str | None = None,
    metadata: dict[str, str] | None = None,
    metadata_directive: MetadataDirective | None = None,
    tagging_directive: TaggingDirective | None = None,
    annotation_directive: AnnotationDirective | None = None,
    server_side_encryption: ServerSideEncryption | None = None,
    storage_class: StorageClass | None = None,
    website_redirect_location: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    ssekms_key_id: str | None = None,
    ssekms_encryption_context: str | None = None,
    bucket_key_enabled: bool | None = None,
    copy_source_sse_customer_algorithm: str | None = None,
    copy_source_sse_customer_key: str | None = None,
    copy_source_sse_customer_key_md5: str | None = None,
    request_payer: RequestPayer | None = None,
    tagging: str | None = None,
    object_lock_mode: ObjectLockMode | None = None,
    object_lock_retain_until_date: str | None = None,
    object_lock_legal_hold_status: ObjectLockLegalHoldStatus | None = None,
    object_lock_event_hold: ObjectLockEventHold | None = None,
    object_lock_event_hold_duration_days: int | None = None,
    object_lock_event_hold_duration_years: int | None = None,
    expected_bucket_owner: str | None = None,
    expected_source_bucket_owner: str | None = None,
) -> CopyObjectOutput: ...
```


### create_bucket

```python
async def create_bucket(
    *,
    bucket: str,
    acl: BucketCannedACL | None = None,
    create_bucket_configuration: CreateBucketConfiguration | None = None,
    grant_full_control: str | None = None,
    grant_read: str | None = None,
    grant_read_acp: str | None = None,
    grant_write: str | None = None,
    grant_write_acp: str | None = None,
    object_lock_enabled_for_bucket: bool | None = None,
    object_ownership: ObjectOwnership | None = None,
    bucket_namespace: BucketNamespace | None = None,
) -> CreateBucketOutput: ...
```


### create_bucket_metadata_configuration

```python
async def create_bucket_metadata_configuration(
    *,
    bucket: str,
    metadata_configuration: MetadataConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### create_bucket_metadata_table_configuration

```python
async def create_bucket_metadata_table_configuration(
    *,
    bucket: str,
    metadata_table_configuration: MetadataTableConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### create_multipart_upload

```python
async def create_multipart_upload(
    *,
    bucket: str,
    key: str,
    acl: ObjectCannedACL | None = None,
    cache_control: str | None = None,
    content_disposition: str | None = None,
    content_encoding: str | None = None,
    content_language: str | None = None,
    content_type: str | None = None,
    expires: str | None = None,
    grant_full_control: str | None = None,
    grant_read: str | None = None,
    grant_read_acp: str | None = None,
    grant_write_acp: str | None = None,
    metadata: dict[str, str] | None = None,
    server_side_encryption: ServerSideEncryption | None = None,
    storage_class: StorageClass | None = None,
    website_redirect_location: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    ssekms_key_id: str | None = None,
    ssekms_encryption_context: str | None = None,
    bucket_key_enabled: bool | None = None,
    request_payer: RequestPayer | None = None,
    tagging: str | None = None,
    object_lock_mode: ObjectLockMode | None = None,
    object_lock_retain_until_date: str | None = None,
    object_lock_legal_hold_status: ObjectLockLegalHoldStatus | None = None,
    object_lock_event_hold: ObjectLockEventHold | None = None,
    object_lock_event_hold_duration_days: int | None = None,
    object_lock_event_hold_duration_years: int | None = None,
    expected_bucket_owner: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    checksum_type: ChecksumType | None = None,
) -> CreateMultipartUploadOutput: ...
```


### create_session

```python
async def create_session(
    *,
    bucket: str,
    session_mode: SessionMode | None = None,
    server_side_encryption: ServerSideEncryption | None = None,
    ssekms_key_id: str | None = None,
    ssekms_encryption_context: str | None = None,
    bucket_key_enabled: bool | None = None,
) -> CreateSessionOutput: ...
```


### delete_bucket

```python
async def delete_bucket(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_analytics_configuration

```python
async def delete_bucket_analytics_configuration(
    *,
    bucket: str,
    id: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_cors

```python
async def delete_bucket_cors(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_encryption

```python
async def delete_bucket_encryption(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_intelligent_tiering_configuration

```python
async def delete_bucket_intelligent_tiering_configuration(
    *,
    bucket: str,
    id: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_inventory_configuration

```python
async def delete_bucket_inventory_configuration(
    *,
    bucket: str,
    id: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_lifecycle

```python
async def delete_bucket_lifecycle(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_metadata_configuration

```python
async def delete_bucket_metadata_configuration(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_metadata_table_configuration

```python
async def delete_bucket_metadata_table_configuration(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_metrics_configuration

```python
async def delete_bucket_metrics_configuration(
    *,
    bucket: str,
    id: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_ownership_controls

```python
async def delete_bucket_ownership_controls(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_policy

```python
async def delete_bucket_policy(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_replication

```python
async def delete_bucket_replication(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_tagging

```python
async def delete_bucket_tagging(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_bucket_website

```python
async def delete_bucket_website(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### delete_object

```python
async def delete_object(
    *,
    bucket: str,
    key: str,
    mfa: str | None = None,
    version_id: str | None = None,
    request_payer: RequestPayer | None = None,
    bypass_governance_retention: bool | None = None,
    expected_bucket_owner: str | None = None,
    if_match: str | None = None,
    if_match_last_modified_time: str | None = None,
    if_match_size: int | None = None,
) -> DeleteObjectOutput: ...
```


### delete_object_annotation

```python
async def delete_object_annotation(
    *,
    bucket: str,
    key: str,
    annotation_name: str,
    version_id: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    object_if_match: str | None = None,
) -> DeleteObjectAnnotationOutput: ...
```


### delete_object_tagging

```python
async def delete_object_tagging(
    *,
    bucket: str,
    key: str,
    version_id: str | None = None,
    expected_bucket_owner: str | None = None,
) -> DeleteObjectTaggingOutput: ...
```


### delete_objects

```python
async def delete_objects(
    *,
    bucket: str,
    delete: Delete,
    mfa: str | None = None,
    request_payer: RequestPayer | None = None,
    bypass_governance_retention: bool | None = None,
    expected_bucket_owner: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
) -> DeleteObjectsOutput: ...
```


### delete_public_access_block

```python
async def delete_public_access_block(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### get_bucket_abac

```python
async def get_bucket_abac(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketAbacOutput: ...
```


### get_bucket_accelerate_configuration

```python
async def get_bucket_accelerate_configuration(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
    request_payer: RequestPayer | None = None,
) -> GetBucketAccelerateConfigurationOutput: ...
```


### get_bucket_acl

```python
async def get_bucket_acl(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketAclOutput: ...
```


### get_bucket_analytics_configuration

```python
async def get_bucket_analytics_configuration(
    *,
    bucket: str,
    id: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketAnalyticsConfigurationOutput: ...
```


### get_bucket_cors

```python
async def get_bucket_cors(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketCorsOutput: ...
```


### get_bucket_encryption

```python
async def get_bucket_encryption(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketEncryptionOutput: ...
```


### get_bucket_intelligent_tiering_configuration

```python
async def get_bucket_intelligent_tiering_configuration(
    *,
    bucket: str,
    id: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketIntelligentTieringConfigurationOutput: ...
```


### get_bucket_inventory_configuration

```python
async def get_bucket_inventory_configuration(
    *,
    bucket: str,
    id: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketInventoryConfigurationOutput: ...
```


### get_bucket_lifecycle_configuration

```python
async def get_bucket_lifecycle_configuration(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketLifecycleConfigurationOutput: ...
```


### get_bucket_location

```python
async def get_bucket_location(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketLocationOutput: ...
```


### get_bucket_logging

```python
async def get_bucket_logging(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketLoggingOutput: ...
```


### get_bucket_metadata_configuration

```python
async def get_bucket_metadata_configuration(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketMetadataConfigurationOutput: ...
```


### get_bucket_metadata_table_configuration

```python
async def get_bucket_metadata_table_configuration(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketMetadataTableConfigurationOutput: ...
```


### get_bucket_metrics_configuration

```python
async def get_bucket_metrics_configuration(
    *,
    bucket: str,
    id: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketMetricsConfigurationOutput: ...
```


### get_bucket_notification_configuration

```python
async def get_bucket_notification_configuration(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketNotificationConfigurationOutput: ...
```


### get_bucket_ownership_controls

```python
async def get_bucket_ownership_controls(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketOwnershipControlsOutput: ...
```


### get_bucket_policy

```python
async def get_bucket_policy(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketPolicyOutput: ...
```


### get_bucket_policy_status

```python
async def get_bucket_policy_status(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketPolicyStatusOutput: ...
```


### get_bucket_replication

```python
async def get_bucket_replication(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketReplicationOutput: ...
```


### get_bucket_request_payment

```python
async def get_bucket_request_payment(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketRequestPaymentOutput: ...
```


### get_bucket_tagging

```python
async def get_bucket_tagging(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketTaggingOutput: ...
```


### get_bucket_versioning

```python
async def get_bucket_versioning(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketVersioningOutput: ...
```


### get_bucket_website

```python
async def get_bucket_website(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetBucketWebsiteOutput: ...
```


### get_object

```python
async def get_object(
    *,
    bucket: str,
    key: str,
    if_match: str | None = None,
    if_modified_since: str | None = None,
    if_none_match: str | None = None,
    if_unmodified_since: str | None = None,
    range: str | None = None,
    response_cache_control: str | None = None,
    response_content_disposition: str | None = None,
    response_content_encoding: str | None = None,
    response_content_language: str | None = None,
    response_content_type: str | None = None,
    response_expires: str | None = None,
    version_id: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    request_payer: RequestPayer | None = None,
    part_number: int | None = None,
    expected_bucket_owner: str | None = None,
    checksum_mode: ChecksumMode | None = None,
) -> GetObjectOutput: ...
```


### get_object_acl

```python
async def get_object_acl(
    *,
    bucket: str,
    key: str,
    version_id: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
) -> GetObjectAclOutput: ...
```


### get_object_annotation

```python
async def get_object_annotation(
    *,
    bucket: str,
    key: str,
    annotation_name: str,
    version_id: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    checksum_mode: ChecksumMode | None = None,
) -> GetObjectAnnotationOutput: ...
```


### get_object_attributes

```python
async def get_object_attributes(
    *,
    bucket: str,
    key: str,
    object_attributes: Sequence[ObjectAttributes],
    version_id: str | None = None,
    max_parts: int | None = None,
    part_number_marker: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
) -> GetObjectAttributesOutput: ...
```


### get_object_legal_hold

```python
async def get_object_legal_hold(
    *,
    bucket: str,
    key: str,
    version_id: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
) -> GetObjectLegalHoldOutput: ...
```


### get_object_lock_configuration

```python
async def get_object_lock_configuration(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetObjectLockConfigurationOutput: ...
```


### get_object_retention

```python
async def get_object_retention(
    *,
    bucket: str,
    key: str,
    version_id: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
) -> GetObjectRetentionOutput: ...
```


### get_object_tagging

```python
async def get_object_tagging(
    *,
    bucket: str,
    key: str,
    version_id: str | None = None,
    expected_bucket_owner: str | None = None,
    request_payer: RequestPayer | None = None,
) -> GetObjectTaggingOutput: ...
```


### get_object_torrent

```python
async def get_object_torrent(
    *,
    bucket: str,
    key: str,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
) -> GetObjectTorrentOutput: ...
```


### get_public_access_block

```python
async def get_public_access_block(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> GetPublicAccessBlockOutput: ...
```


### head_bucket

```python
async def head_bucket(
    *,
    bucket: str,
    expected_bucket_owner: str | None = None,
) -> HeadBucketOutput: ...
```


### head_object

```python
async def head_object(
    *,
    bucket: str,
    key: str,
    if_match: str | None = None,
    if_modified_since: str | None = None,
    if_none_match: str | None = None,
    if_unmodified_since: str | None = None,
    range: str | None = None,
    response_cache_control: str | None = None,
    response_content_disposition: str | None = None,
    response_content_encoding: str | None = None,
    response_content_language: str | None = None,
    response_content_type: str | None = None,
    response_expires: str | None = None,
    version_id: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    request_payer: RequestPayer | None = None,
    part_number: int | None = None,
    expected_bucket_owner: str | None = None,
    checksum_mode: ChecksumMode | None = None,
) -> HeadObjectOutput: ...
```


### list_bucket_analytics_configurations

```python
async def list_bucket_analytics_configurations(
    *,
    bucket: str,
    continuation_token: str | None = None,
    expected_bucket_owner: str | None = None,
) -> ListBucketAnalyticsConfigurationsOutput: ...
```


### list_bucket_intelligent_tiering_configurations

```python
async def list_bucket_intelligent_tiering_configurations(
    *,
    bucket: str,
    continuation_token: str | None = None,
    expected_bucket_owner: str | None = None,
) -> ListBucketIntelligentTieringConfigurationsOutput: ...
```


### list_bucket_inventory_configurations

```python
async def list_bucket_inventory_configurations(
    *,
    bucket: str,
    continuation_token: str | None = None,
    expected_bucket_owner: str | None = None,
) -> ListBucketInventoryConfigurationsOutput: ...
```


### list_bucket_metrics_configurations

```python
async def list_bucket_metrics_configurations(
    *,
    bucket: str,
    continuation_token: str | None = None,
    expected_bucket_owner: str | None = None,
) -> ListBucketMetricsConfigurationsOutput: ...
```


### list_buckets

```python
async def list_buckets(
    *,
    max_buckets: int | None = None,
    continuation_token: str | None = None,
    prefix: str | None = None,
    bucket_region: str | None = None,
) -> ListBucketsOutput: ...
```

Also available as `client.paginators.list_buckets(...)`, returning an
async iterator of the response type above.


### list_directory_buckets

```python
async def list_directory_buckets(
    *,
    continuation_token: str | None = None,
    max_directory_buckets: int | None = None,
) -> ListDirectoryBucketsOutput: ...
```

Also available as `client.paginators.list_directory_buckets(...)`, returning an
async iterator of the response type above.


### list_multipart_uploads

```python
async def list_multipart_uploads(
    *,
    bucket: str,
    delimiter: str | None = None,
    encoding_type: EncodingType | None = None,
    key_marker: str | None = None,
    max_uploads: int | None = None,
    prefix: str | None = None,
    upload_id_marker: str | None = None,
    expected_bucket_owner: str | None = None,
    request_payer: RequestPayer | None = None,
) -> ListMultipartUploadsOutput: ...
```

Also available as `client.paginators.list_multipart_uploads(...)`, returning an
async iterator of the response type above.


### list_object_annotations

```python
async def list_object_annotations(
    *,
    bucket: str,
    key: str,
    version_id: str | None = None,
    max_annotation_results: int | None = None,
    annotation_prefix: str | None = None,
    continuation_token: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
) -> ListObjectAnnotationsOutput: ...
```

Also available as `client.paginators.list_object_annotations(...)`, returning an
async iterator of the response type above.


### list_object_versions

```python
async def list_object_versions(
    *,
    bucket: str,
    delimiter: str | None = None,
    encoding_type: EncodingType | None = None,
    key_marker: str | None = None,
    max_keys: int | None = None,
    prefix: str | None = None,
    version_id_marker: str | None = None,
    expected_bucket_owner: str | None = None,
    request_payer: RequestPayer | None = None,
    optional_object_attributes: Sequence[OptionalObjectAttributes] | None = None,
) -> ListObjectVersionsOutput: ...
```

Also available as `client.paginators.list_object_versions(...)`, returning an
async iterator of the response type above.


### list_objects

```python
async def list_objects(
    *,
    bucket: str,
    delimiter: str | None = None,
    encoding_type: EncodingType | None = None,
    marker: str | None = None,
    max_keys: int | None = None,
    prefix: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    optional_object_attributes: Sequence[OptionalObjectAttributes] | None = None,
) -> ListObjectsOutput: ...
```

Also available as `client.paginators.list_objects(...)`, returning an
async iterator of the response type above.


### list_objects_v2

```python
async def list_objects_v2(
    *,
    bucket: str,
    delimiter: str | None = None,
    encoding_type: EncodingType | None = None,
    max_keys: int | None = None,
    prefix: str | None = None,
    continuation_token: str | None = None,
    fetch_owner: bool | None = None,
    start_after: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    optional_object_attributes: Sequence[OptionalObjectAttributes] | None = None,
) -> ListObjectsV2Output: ...
```

Also available as `client.paginators.list_objects_v2(...)`, returning an
async iterator of the response type above.


### list_parts

```python
async def list_parts(
    *,
    bucket: str,
    key: str,
    upload_id: str,
    max_parts: int | None = None,
    part_number_marker: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
) -> ListPartsOutput: ...
```

Also available as `client.paginators.list_parts(...)`, returning an
async iterator of the response type above.


### put_bucket_abac

```python
async def put_bucket_abac(
    *,
    bucket: str,
    abac_status: AbacStatus,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_accelerate_configuration

```python
async def put_bucket_accelerate_configuration(
    *,
    bucket: str,
    accelerate_configuration: AccelerateConfiguration,
    expected_bucket_owner: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
) -> None: ...
```


### put_bucket_acl

```python
async def put_bucket_acl(
    *,
    bucket: str,
    acl: BucketCannedACL | None = None,
    access_control_policy: AccessControlPolicy | None = None,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    grant_full_control: str | None = None,
    grant_read: str | None = None,
    grant_read_acp: str | None = None,
    grant_write: str | None = None,
    grant_write_acp: str | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_analytics_configuration

```python
async def put_bucket_analytics_configuration(
    *,
    bucket: str,
    id: str,
    analytics_configuration: AnalyticsConfiguration,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_cors

```python
async def put_bucket_cors(
    *,
    bucket: str,
    cors_configuration: CORSConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_encryption

```python
async def put_bucket_encryption(
    *,
    bucket: str,
    server_side_encryption_configuration: ServerSideEncryptionConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_intelligent_tiering_configuration

```python
async def put_bucket_intelligent_tiering_configuration(
    *,
    bucket: str,
    id: str,
    intelligent_tiering_configuration: IntelligentTieringConfiguration,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_inventory_configuration

```python
async def put_bucket_inventory_configuration(
    *,
    bucket: str,
    id: str,
    inventory_configuration: InventoryConfiguration,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_lifecycle_configuration

```python
async def put_bucket_lifecycle_configuration(
    *,
    bucket: str,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    lifecycle_configuration: BucketLifecycleConfiguration | None = None,
    expected_bucket_owner: str | None = None,
    transition_default_minimum_object_size: TransitionDefaultMinimumObjectSize | None = None,
) -> PutBucketLifecycleConfigurationOutput: ...
```


### put_bucket_logging

```python
async def put_bucket_logging(
    *,
    bucket: str,
    bucket_logging_status: BucketLoggingStatus,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_metrics_configuration

```python
async def put_bucket_metrics_configuration(
    *,
    bucket: str,
    id: str,
    metrics_configuration: MetricsConfiguration,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_notification_configuration

```python
async def put_bucket_notification_configuration(
    *,
    bucket: str,
    notification_configuration: NotificationConfiguration,
    expected_bucket_owner: str | None = None,
    skip_destination_validation: bool | None = None,
) -> None: ...
```


### put_bucket_ownership_controls

```python
async def put_bucket_ownership_controls(
    *,
    bucket: str,
    ownership_controls: OwnershipControls,
    content_md5: str | None = None,
    expected_bucket_owner: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
) -> None: ...
```


### put_bucket_policy

```python
async def put_bucket_policy(
    *,
    bucket: str,
    policy: str,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    confirm_remove_self_bucket_access: bool | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_replication

```python
async def put_bucket_replication(
    *,
    bucket: str,
    replication_configuration: ReplicationConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    token: str | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_request_payment

```python
async def put_bucket_request_payment(
    *,
    bucket: str,
    request_payment_configuration: RequestPaymentConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_tagging

```python
async def put_bucket_tagging(
    *,
    bucket: str,
    tagging: Tagging,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_versioning

```python
async def put_bucket_versioning(
    *,
    bucket: str,
    versioning_configuration: VersioningConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    mfa: str | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_bucket_website

```python
async def put_bucket_website(
    *,
    bucket: str,
    website_configuration: WebsiteConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### put_object

```python
async def put_object(
    *,
    bucket: str,
    key: str,
    acl: ObjectCannedACL | None = None,
    body: bytes | None = None,
    cache_control: str | None = None,
    content_disposition: str | None = None,
    content_encoding: str | None = None,
    content_language: str | None = None,
    content_length: int | None = None,
    content_md5: str | None = None,
    content_type: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    checksum_crc32: str | None = None,
    checksum_crc32_c: str | None = None,
    checksum_crc64_nvme: str | None = None,
    checksum_sha1: str | None = None,
    checksum_sha256: str | None = None,
    checksum_sha512: str | None = None,
    checksum_md5: str | None = None,
    checksum_xxhash64: str | None = None,
    checksum_xxhash3: str | None = None,
    checksum_xxhash128: str | None = None,
    expires: str | None = None,
    if_match: str | None = None,
    if_none_match: str | None = None,
    grant_full_control: str | None = None,
    grant_read: str | None = None,
    grant_read_acp: str | None = None,
    grant_write_acp: str | None = None,
    write_offset_bytes: int | None = None,
    metadata: dict[str, str] | None = None,
    server_side_encryption: ServerSideEncryption | None = None,
    storage_class: StorageClass | None = None,
    website_redirect_location: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    ssekms_key_id: str | None = None,
    ssekms_encryption_context: str | None = None,
    bucket_key_enabled: bool | None = None,
    request_payer: RequestPayer | None = None,
    tagging: str | None = None,
    object_lock_mode: ObjectLockMode | None = None,
    object_lock_retain_until_date: str | None = None,
    object_lock_legal_hold_status: ObjectLockLegalHoldStatus | None = None,
    object_lock_event_hold: ObjectLockEventHold | None = None,
    object_lock_event_hold_duration_days: int | None = None,
    object_lock_event_hold_duration_years: int | None = None,
    expected_bucket_owner: str | None = None,
) -> PutObjectOutput: ...
```


### put_object_acl

```python
async def put_object_acl(
    *,
    bucket: str,
    key: str,
    acl: ObjectCannedACL | None = None,
    access_control_policy: AccessControlPolicy | None = None,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    grant_full_control: str | None = None,
    grant_read: str | None = None,
    grant_read_acp: str | None = None,
    grant_write: str | None = None,
    grant_write_acp: str | None = None,
    request_payer: RequestPayer | None = None,
    version_id: str | None = None,
    expected_bucket_owner: str | None = None,
) -> PutObjectAclOutput: ...
```


### put_object_annotation

```python
async def put_object_annotation(
    *,
    bucket: str,
    key: str,
    annotation_name: str,
    annotation_payload: bytes,
    version_id: str | None = None,
    object_if_match: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    checksum_crc32: str | None = None,
    checksum_crc32_c: str | None = None,
    checksum_crc64_nvme: str | None = None,
    checksum_sha1: str | None = None,
    checksum_sha256: str | None = None,
    checksum_sha512: str | None = None,
    checksum_md5: str | None = None,
    checksum_xxhash64: str | None = None,
    checksum_xxhash3: str | None = None,
    checksum_xxhash128: str | None = None,
    content_md5: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
) -> PutObjectAnnotationOutput: ...
```


### put_object_legal_hold

```python
async def put_object_legal_hold(
    *,
    bucket: str,
    key: str,
    legal_hold: ObjectLockLegalHold | None = None,
    request_payer: RequestPayer | None = None,
    version_id: str | None = None,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> PutObjectLegalHoldOutput: ...
```


### put_object_lock_configuration

```python
async def put_object_lock_configuration(
    *,
    bucket: str,
    object_lock_configuration: ObjectLockConfiguration | None = None,
    request_payer: RequestPayer | None = None,
    token: str | None = None,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> PutObjectLockConfigurationOutput: ...
```


### put_object_retention

```python
async def put_object_retention(
    *,
    bucket: str,
    key: str,
    retention: ObjectLockRetention | None = None,
    request_payer: RequestPayer | None = None,
    version_id: str | None = None,
    bypass_governance_retention: bool | None = None,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> PutObjectRetentionOutput: ...
```


### put_object_tagging

```python
async def put_object_tagging(
    *,
    bucket: str,
    key: str,
    tagging: Tagging,
    version_id: str | None = None,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
    request_payer: RequestPayer | None = None,
) -> PutObjectTaggingOutput: ...
```


### put_public_access_block

```python
async def put_public_access_block(
    *,
    bucket: str,
    public_access_block_configuration: PublicAccessBlockConfiguration,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### rename_object

```python
async def rename_object(
    *,
    bucket: str,
    key: str,
    rename_source: str,
    destination_if_match: str | None = None,
    destination_if_none_match: str | None = None,
    destination_if_modified_since: str | None = None,
    destination_if_unmodified_since: str | None = None,
    source_if_match: str | None = None,
    source_if_none_match: str | None = None,
    source_if_modified_since: str | None = None,
    source_if_unmodified_since: str | None = None,
    client_token: str | None = None,
) -> RenameObjectOutput: ...
```


### restore_object

```python
async def restore_object(
    *,
    bucket: str,
    key: str,
    version_id: str | None = None,
    restore_request: RestoreRequest | None = None,
    request_payer: RequestPayer | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> RestoreObjectOutput: ...
```


### select_object_content

```python
async def select_object_content(
    *,
    bucket: str,
    key: str,
    expression: str,
    expression_type: ExpressionType,
    input_serialization: InputSerialization,
    output_serialization: OutputSerialization,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    request_progress: RequestProgress | None = None,
    scan_range: ScanRange | None = None,
    expected_bucket_owner: str | None = None,
) -> SelectObjectContentOutput: ...
```


### update_bucket_metadata_annotation_table_configuration

```python
async def update_bucket_metadata_annotation_table_configuration(
    *,
    bucket: str,
    annotation_table_configuration: AnnotationTableConfigurationUpdates,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### update_bucket_metadata_inventory_table_configuration

```python
async def update_bucket_metadata_inventory_table_configuration(
    *,
    bucket: str,
    inventory_table_configuration: InventoryTableConfigurationUpdates,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### update_bucket_metadata_journal_table_configuration

```python
async def update_bucket_metadata_journal_table_configuration(
    *,
    bucket: str,
    journal_table_configuration: JournalTableConfigurationUpdates,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    expected_bucket_owner: str | None = None,
) -> None: ...
```


### update_object_encryption

```python
async def update_object_encryption(
    *,
    bucket: str,
    key: str,
    object_encryption: ObjectEncryption,
    version_id: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
) -> UpdateObjectEncryptionOutput: ...
```


### upload_part

```python
async def upload_part(
    *,
    bucket: str,
    key: str,
    part_number: int,
    upload_id: str,
    body: bytes | None = None,
    content_length: int | None = None,
    content_md5: str | None = None,
    checksum_algorithm: ChecksumAlgorithm | None = None,
    checksum_crc32: str | None = None,
    checksum_crc32_c: str | None = None,
    checksum_crc64_nvme: str | None = None,
    checksum_sha1: str | None = None,
    checksum_sha256: str | None = None,
    checksum_sha512: str | None = None,
    checksum_md5: str | None = None,
    checksum_xxhash64: str | None = None,
    checksum_xxhash3: str | None = None,
    checksum_xxhash128: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
) -> UploadPartOutput: ...
```


### upload_part_copy

```python
async def upload_part_copy(
    *,
    bucket: str,
    copy_source: str,
    key: str,
    part_number: int,
    upload_id: str,
    copy_source_if_match: str | None = None,
    copy_source_if_modified_since: str | None = None,
    copy_source_if_none_match: str | None = None,
    copy_source_if_unmodified_since: str | None = None,
    copy_source_range: str | None = None,
    sse_customer_algorithm: str | None = None,
    sse_customer_key: str | None = None,
    sse_customer_key_md5: str | None = None,
    copy_source_sse_customer_algorithm: str | None = None,
    copy_source_sse_customer_key: str | None = None,
    copy_source_sse_customer_key_md5: str | None = None,
    request_payer: RequestPayer | None = None,
    expected_bucket_owner: str | None = None,
    expected_source_bucket_owner: str | None = None,
) -> UploadPartCopyOutput: ...
```


### write_get_object_response

```python
async def write_get_object_response(
    *,
    request_route: str,
    request_token: str,
    body: bytes | None = None,
    status_code: int | None = None,
    error_code: str | None = None,
    error_message: str | None = None,
    accept_ranges: str | None = None,
    cache_control: str | None = None,
    content_disposition: str | None = None,
    content_encoding: str | None = None,
    content_language: str | None = None,
    content_length: int | None = None,
    content_range: str | None = None,
    content_type: str | None = None,
    checksum_crc32: str | None = None,
    checksum_crc32_c: str | None = None,
    checksum_crc64_nvme: str | None = None,
    checksum_sha1: str | None = None,
    checksum_sha256: str | None = None,
    checksum_sha512: str | None = None,
    checksum_md5: str | None = None,
    checksum_xxhash64: str | None = None,
    checksum_xxhash3: str | None = None,
    checksum_xxhash128: str | None = None,
    delete_marker: bool | None = None,
    e_tag: str | None = None,
    expires: str | None = None,
    expiration: str | None = None,
    last_modified: str | None = None,
    missing_meta: int | None = None,
    metadata: dict[str, str] | None = None,
    object_lock_mode: ObjectLockMode | None = None,
    object_lock_legal_hold_status: ObjectLockLegalHoldStatus | None = None,
    object_lock_retain_until_date: str | None = None,
    parts_count: int | None = None,
    replication_status: ReplicationStatus | None = None,
    request_charged: RequestCharged | None = None,
    restore: str | None = None,
    server_side_encryption: ServerSideEncryption | None = None,
    sse_customer_algorithm: str | None = None,
    ssekms_key_id: str | None = None,
    sse_customer_key_md5: str | None = None,
    storage_class: StorageClass | None = None,
    tag_count: int | None = None,
    version_id: str | None = None,
    bucket_key_enabled: bool | None = None,
) -> None: ...
```


## Links

- [Service guide](https://ferrumio.github.io/rboto/guides/s3/)
- [Repository](https://github.com/ferrumio/rboto)
- [Issues](https://github.com/ferrumio/rboto/issues)
- [Releases](https://github.com/ferrumio/rboto/releases)

Licensed under Apache-2.0.

