<!-- Do not manually edit this file. Use the `changelogger` tool. -->
November 2nd, 2023
==================
**Breaking Changes:**
- :warning::tada: ([smithy-rs#2916](https://github.com/awslabs/smithy-rs/issues/2916), [aws-sdk-rust#536](https://github.com/awslabs/aws-sdk-rust/issues/536)) Struct members modeled as required are no longer wrapped in `Option`s [when possible](https://smithy.io/2.0/spec/aggregate-types.html#structure-member-optionality). For upgrade guidance and more info, see [here](https://github.com/awslabs/smithy-rs/discussions/2929).
- :warning::tada: ([smithy-rs#1797](https://github.com/awslabs/smithy-rs/issues/1797)) Add support for Sigv4A request signing. Sigv4a signing will be used automatically when appropriate for a given operation. Currently, it's used for S3 and EventBridge.
- :bug::warning::tada: ([aws-sdk-rust#882](https://github.com/awslabs/aws-sdk-rust/issues/882), [smithy-rs#3007](https://github.com/awslabs/smithy-rs/issues/3007)) STS and SSO-based credential providers will now respect both `use_fips` and `use_dual_stack` when those settings are configured in a user's environment or profile.
- :warning::tada: ([smithy-rs#2417](https://github.com/awslabs/smithy-rs/issues/2417), [smithy-rs#3018](https://github.com/awslabs/smithy-rs/issues/3018)) Retry classifiers are now configurable at the service and operation levels. Users may also define their own custom retry classifiers.
For more information, see the [guide](https://github.com/awslabs/smithy-rs/discussions/3050).
- :warning: ([smithy-rs#2917](https://github.com/awslabs/smithy-rs/issues/2917)) (Behavior Break!) The SSO credentials provider is no longer enabled by default in `aws-config`, and so SSO profile config will no longer work out of box. The `credentials-sso` feature in `aws-config` was removed from the default features, and renamed to `sso`. If you need credentials from SSO, then enable the `sso` feature in `aws-config`.
- :warning: ([smithy-rs#3011](https://github.com/awslabs/smithy-rs/issues/3011)) HTTP connector configuration has changed significantly. See the [upgrade guidance](https://github.com/awslabs/smithy-rs/discussions/3022) for details.
- :warning: ([smithy-rs#2921](https://github.com/awslabs/smithy-rs/issues/2921)) Several breaking changes were made to the aws-sigv4 API to remove the direct HTTP dependency:
- The `take_parameters` and `take_headers` APIs were removed from `SigningInstructions`. Use `into_parts()` instead
- The arguments of `SignableRequest::new` were changed to accept string types instead of types from the HTTP crate
-`SigningInstructions::apply_to_request` was gated beyond an `http0-compat` feature flag for backwards compatibility. This API MAY be removed in a future release.
- Several public accessors were removed from `SigningInstructions`.
- :warning: ([smithy-rs#2911](https://github.com/awslabs/smithy-rs/issues/2911)) In sigV4-related code, rename 'signing service' to 'signing name'. This aligns with the terminology used by the endpoint resolver.
- :warning: ([smithy-rs#2913](https://github.com/awslabs/smithy-rs/issues/2913)) All versions of SigningParams have been updated to contain an [`Identity`](https://docs.rs/aws-smithy-runtime-api/latest/aws_smithy_runtime_api/client/identity/struct.Identity.html)
as opposed to AWS credentials in `&str` form. [Read more](https://github.com/awslabs/aws-sdk-rust/discussions/868).
- :warning: ([smithy-rs#2948](https://github.com/awslabs/smithy-rs/issues/2948)) Update MSRV to Rust 1.70.0
- :warning: ([smithy-rs#2973](https://github.com/awslabs/smithy-rs/issues/2973)) Remove `once_cell` from public API.
- :warning: ([smithy-rs#2995](https://github.com/awslabs/smithy-rs/issues/2995)) Structure members with the type `Option<Vec<T>>` now produce an accessor with the type `&[T]` instead of `Option<&[T]>`. To determine if the field was actually set use `.<field_name>.is_some()`.
- :warning: ([smithy-rs#2978](https://github.com/awslabs/smithy-rs/issues/2978)) The `futures_core::stream::Stream` trait has been removed from public API. It should not affect usual SDK use cases. If your code uses paginators, you do not need to use the `Stream` trait or its exntension traits, but only the `next`, `try_next`, `collect`, and `try_collect` methods are supported on `PaginationStream`. Other stream operations that were previously available through the trait or its extension traits can be added later in a backward compatible manner. Finally, `fn_stream` has been moved to be a child module of `pagination_stream`.
- :warning: ([smithy-rs#2983](https://github.com/awslabs/smithy-rs/issues/2983)) The `futures_core::stream::Stream` trait has been removed from [`ByteStream`](https://docs.rs/aws-smithy-http/latest/aws_smithy_http/byte_stream/struct.ByteStream.html). The methods mentioned in the [doc](https://docs.rs/aws-smithy-http/latest/aws_smithy_http/byte_stream/struct.ByteStream.html#getting-data-out-of-a-bytestream) will continue to be supported. Other stream operations that were previously available through the trait or its extension traits can be added later in a backward compatible manner.
- :warning: ([smithy-rs#2997](https://github.com/awslabs/smithy-rs/issues/2997)) The IMDS Client builder's `build()` method is no longer async.
- :warning: ([smithy-rs#3014](https://github.com/awslabs/smithy-rs/issues/3014)) The API for [`AssumeRoleProvider`](https://docs.rs/aws-config/latest/aws_config/sts/struct.AssumeRoleProvider.html) has been updated to derive configuration from [`SdkConfig`](https://docs.rs/aws-config/latest/aws_config/struct.SdkConfig.html) instead of `ProviderConfig`.
For more information, see the [Change Log Discussion](https://github.com/awslabs/aws-sdk-rust/discussions/906)
- :warning: ([smithy-rs#3055](https://github.com/awslabs/smithy-rs/issues/3055)) The future return types on traits `EndpointResolver` and `IdentityResolver` changed to new-types `EndpointFuture` and `IdentityFuture` respectively.
- :warning: ([smithy-rs#3061](https://github.com/awslabs/smithy-rs/issues/3061)) Lifetimes have been added to `EndpointResolver` and `IdentityResolver` traits.
- :warning: ([smithy-rs#3065](https://github.com/awslabs/smithy-rs/issues/3065)) Several traits have been renamed from noun form to verb form to be more idiomatic:
-`EndpointResolver` -> `ResolveEndpoint`
-`Interceptor` -> `Intercept`
- :warning: ([smithy-rs#3059](https://github.com/awslabs/smithy-rs/issues/3059)) [`PresignedRequest`](https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/presigning/struct.PresignedRequest.html) now returns standard-library types instead of types from the `http` crate. `to_http_request` has been renamed `to_http_02x_request`.
- :warning: ([smithy-rs#3052](https://github.com/awslabs/smithy-rs/issues/3052)) The `credentials-process` feature was added to `aws-config`. If you currently use `no-default-features` for `aws-config`, you MUST enable this feature to use the [`CredentialProcessProvider`](https://docs.rs/aws-config/latest/aws_config/credential_process/struct.CredentialProcessProvider.html) provider directly or via `~/.aws/config`.
- :warning: ([smithy-rs#3077](https://github.com/awslabs/smithy-rs/issues/3077)) **This change has [detailed upgrade guidance](https://github.com/awslabs/aws-sdk-rust/discussions/923).**<br><br>The AWS credentials cache has been replaced with a more generic identity cache.
**New this release:**
- :tada: ([smithy-rs#2917](https://github.com/awslabs/smithy-rs/issues/2917), [aws-sdk-rust#703](https://github.com/awslabs/aws-sdk-rust/issues/703), [aws-sdk-rust#699](https://github.com/awslabs/aws-sdk-rust/issues/699)) The `SsoCredentialsProvider` now supports token refresh and is compatible with the token cache file paths the latest AWS CLI uses.
- :bug: ([smithy-rs#2958](https://github.com/awslabs/smithy-rs/issues/2958), [aws-sdk-rust#873](https://github.com/awslabs/aws-sdk-rust/issues/873)) Correctly identify HTTP 200 responses from S3 with `<Error>` as the root Element as errors. **Note**: This a behavior change and will change the error type returned by the SDK in some cases.
- :bug: ([smithy-rs#2955](https://github.com/awslabs/smithy-rs/issues/2955), [aws-sdk-rust#878](https://github.com/awslabs/aws-sdk-rust/issues/878)) Allow `no_credentials` to be used with all S3 operations.
- :bug: ([smithy-rs#2944](https://github.com/awslabs/smithy-rs/issues/2944), [smithy-rs#2951](https://github.com/awslabs/smithy-rs/issues/2951)) `CustomizableOperation`, created as a result of calling the `.customize` method on a fluent builder, ceased to be `Send` and `Sync` in the previous releases. It is now `Send` and `Sync` again.
- :bug: ([smithy-rs#1668](https://github.com/awslabs/smithy-rs/issues/1668), [aws-sdk-rust#873](https://github.com/awslabs/aws-sdk-rust/issues/873), [smithy-rs#2964](https://github.com/awslabs/smithy-rs/issues/2964)) Make `bucket` required for request construction for S3. When `bucket` is not set, a **different** operation than intended can be triggered.
- :bug: ([smithy-rs#3052](https://github.com/awslabs/smithy-rs/issues/3052)) A bug was fixed where the credentials-process provider was executing the subprocess in the worker thread, potentially stalling the runtime.
**Crate Versions**
<details>
<summary>Click to expand to view crate versions...</summary>