September 20th, 2022
Pre-releaseBreaking Changes:
- ⚠ (client, smithy-rs#1603, aws-sdk-rust#586)
aws_smithy_types::RetryConfigno longer implementsDefault, and itsnewfunction has been replaced withstandard. - ⚠ (client, smithy-rs#1603, aws-sdk-rust#586) Client creation now panics if retries or timeouts are enabled without an async sleep implementation.
If you're using the Tokio runtime and have thert-tokiofeature enabled (which is enabled by default),
then you shouldn't notice this change at all.
Otherwise, if using something other than Tokio as the async runtime, theAsyncSleeptrait must be implemented,
and that implementation given to the config builder via thesleep_implmethod. Alternatively, retry can be
explicitly turned off by settingmax_attemptsto 1, which will result in successful client creation without an
async sleep implementation. - ⚠ (client, smithy-rs#1603, aws-sdk-rust#586) The
default_async_sleepmethod on theClientbuilder has been removed. The default async sleep is
wired up by default if none is provided. - ⚠ (client, smithy-rs#976, smithy-rs#1710) Removed the need to generate operation output and retry aliases in codegen.
- ⚠ (client, smithy-rs#1715, smithy-rs#1717)
ClassifyResponsewas renamed toClassifyRetryand is no longer implemented for the unit type. - ⚠ (client, smithy-rs#1715, smithy-rs#1717) The
with_retry_policyandretry_policyfunctions onaws_smithy_http::operation::Operationhave been
renamed towith_retry_classifierandretry_classifierrespectively. Public memberretry_policyon
aws_smithy_http::operation::Partshas been renamed toretry_classifier.
New this release:
-
🎉 (client, smithy-rs#1647, smithy-rs#1112) Implemented customizable operations per RFC-0017.
Before this change, modifying operations before sending them required using lower-level APIs:
let input = SomeOperationInput::builder().some_value(5).build()?; let operation = { let op = input.make_operation(&service_config).await?; let (request, response) = op.into_request_response(); let request = request.augment(|req, _props| { req.headers_mut().insert( HeaderName::from_static("x-some-header"), HeaderValue::from_static("some-value") ); Result::<_, Infallible>::Ok(req) })?; Operation::from_parts(request, response) }; let response = smithy_client.call(operation).await?;
Now, users may easily modify operations before sending with the
customizemethod:let response = client.some_operation() .some_value(5) .customize() .await? .mutate_request(|mut req| { req.headers_mut().insert( HeaderName::from_static("x-some-header"), HeaderValue::from_static("some-value") ); }) .send() .await?;
-
(client, smithy-rs#1735, @vojtechkral) Lower log level of two info-level log messages.
-
(all, smithy-rs#1710) Added
writableproperty toRustTypeandRuntimeTypethat returns them inWritableform -
(all, smithy-rs#1680, @ogudavid) Smithy IDL v2 mixins are now supported
-
🐛 (client, smithy-rs#1715, smithy-rs#1717) Generated clients now retry transient errors without replacing the retry policy.
-
🐛 (all, smithy-rs#1725, @sugmanue) Correctly determine nullability of members in IDLv2 models
Contributors
Thank you for your contributions! ❤
- @ogudavid (smithy-rs#1680)
- @sugmanue (smithy-rs#1725)
- @vojtechkral (smithy-rs#1735)