#![forbid(unsafe_code)]
mod client;
mod config;
mod credentials;
mod endpoint;
mod error;
mod observer;
mod operation;
mod retry;
mod stream;
#[cfg(feature = "fuzzing")]
#[doc(hidden)]
pub mod fuzzing;
mod protocol;
mod signing;
mod transport;
pub use client::{DownloadToPathOutput, S3Client};
pub use config::{AddressingStyle, S3Config, S3ConfigBuilder};
#[cfg(feature = "aws-credentials")]
pub use credentials::{
AwsDefaultCredentialsProvider, resolve_aws_region_for_profile, resolve_default_aws_region,
};
pub use credentials::{
CachedCredentialsProvider, Credentials, CredentialsProvider, EnvironmentCredentialsProvider,
StaticCredentialsProvider,
};
pub use endpoint::{AwsEndpointVariant, Endpoint};
pub use error::{ErrorCategory, RetryClassification, RetryStopReason, S3Error, TimeoutPhase};
pub use observer::{RequestEvent, RequestEventKind, RequestObserver};
pub use operation::{
AbortMultipartUploadRequest, ByteRange, Checksum, ChecksumAlgorithm, ChecksumCalculationError,
ChecksumType, CompleteMultipartUploadOutput, CompleteMultipartUploadRequest, CompletedPart,
Conditions, CopyMetadataDirective, CopyObjectOutput, CopyObjectRequest, CopyPartRange,
CopySource, CreateMultipartUploadOutput, CreateMultipartUploadRequest, DeleteError,
DeleteObjectIdentifier, DeleteObjectOutput, DeleteObjectRequest, DeleteObjectsError,
DeleteObjectsOutput, DeleteObjectsRequest, DeletedObject, GetObjectOutput, GetObjectRequest,
HeadObjectOutput, HeadObjectRequest, ListMultipartUploadsOutput, ListMultipartUploadsRequest,
ListObjectsV2Output, ListObjectsV2Request, ListPartsOutput, ListPartsRequest, ListedObject,
ListedPart, ManagedMultipartHeaders, ManagedMultipartUploadRequest, MultipartError,
MultipartOptions, MultipartUpload, MultipartUploadEntry, ObjectKey, ObjectKeyError,
ObjectMetadata, ObjectOwner, PageSize, PartNumber, PresignedUrl, PutObjectOutput,
PutObjectRequest, RangeError, RequestIds, UploadId, UploadIdError, UploadPartCopyOutput,
UploadPartCopyRequest, UploadPartOutput, UploadPartRequest,
};
pub use retry::RetryPolicy;
pub use stream::{ByteStream, ResponseStream};