Releases: awslabs/aws-sdk-rust
0.8.0 (Februrary 24, 2022)
Breaking Changes:
- β (smithy-rs#1216)
aws-sigv4
no longer skips thecontent-length
andcontent-type
headers when signing withSignatureLocation::QueryParams
New this release:
- π (smithy-rs#1220, aws-sdk-rust#462) Made it possible to change settings, such as load timeout, on the credential cache used by the
DefaultCredentialsChain
. - π (smithy-rs#1197) Fixed a bug that caused clients to eventually stop retrying. The cross-request retry allowance wasn't being reimbursed upon receiving a successful response, so once this allowance reached zero, no further retries would ever be attempted.
- π (smithy-rs#1217, aws-sdk-rust#467)
ClientBuilder
helpersrustls()
andnative_tls()
now returnDynConnector
so that they once again work when constructing clients with custom middleware in the SDK. - π (smithy-rs#1216, aws-sdk-rust#466) Fixed a bug in S3 that prevented the
content-length
andcontent-type
inputs from being included in a presigned request signature. With this fix, customers can generate presigned URLs that enforcecontent-length
andcontent-type
for requests to S3.
v0.7.0 (February 18th, 2022)
0.7.0 (February 18th, 2022)
Breaking Changes:
-
β (smithy-rs#1144) The
aws_config::http_provider
module has been renamed toaws_config::http_credential_provider
to better reflect its purpose. -
β (smithy-rs#1144) Some APIs required that timeout configuration be specified with an
aws_smithy_client::timeout::Settings
struct while
others required anaws_smithy_types::timeout::TimeoutConfig
struct. Both were equivalent. Nowaws_smithy_types::timeout::TimeoutConfig
is used everywhere andaws_smithy_client::timeout::Settings
has been removed. Here's how to migrate code your code that
depended ontimeout::Settings
:The old way:
let timeout = timeout::Settings::new() .with_connect_timeout(Duration::from_secs(1)) .with_read_timeout(Duration::from_secs(2));
The new way:
// This example is passing values, so they're wrapped in `Option::Some`. You can disable a timeout by passing `None`. let timeout = TimeoutConfig::new() .with_connect_timeout(Some(Duration::from_secs(1))) .with_read_timeout(Some(Duration::from_secs(2)));
-
β (smithy-rs#1144)
MakeConnectorFn
,HttpConnector
, andHttpSettings
have been moved fromaws_config::provider_config
to
aws_smithy_client::http_connector
. This is in preparation for a later update that will change how connectors are
created and configured.If you were using these structs/enums, you can migrate your old code by importing them from their new location.
-
β (smithy-rs#1144) Along with moving
HttpConnector
toaws_smithy_client
, theHttpConnector::make_connector
method has been renamed to
HttpConnector::connector
.If you were using this method, you can migrate your old code by calling
connector
instead ofmake_connector
. -
β (smithy-rs#1085) Moved the following re-exports into a
types
module for all services:aws_sdk_<service>::AggregatedBytes
->aws_sdk_<service>::types::AggregatedBytes
aws_sdk_<service>::Blob
->aws_sdk_<service>::types::Blob
aws_sdk_<service>::ByteStream
->aws_sdk_<service>::types::ByteStream
aws_sdk_<service>::DateTime
->aws_sdk_<service>::types::DateTime
aws_sdk_<service>::SdkError
->aws_sdk_<service>::types::SdkError
-
β (smithy-rs#1085)
AggregatedBytes
andByteStream
are now only re-exported if the service has streaming operations,
andBlob
/DateTime
are only re-exported if the service uses them. -
β (smithy-rs#1130) MSRV increased from
1.54
to1.56.1
per our 2-behind MSRV policy. -
β (smithy-rs#1132) Fluent clients for all services no longer have generics, and now use
DynConnector
andDynMiddleware
to allow
for connector/middleware customization. This should only break references to the client that specified generic types for it.If you customized the AWS client's connector or middleware with something like the following:
let client = aws_sdk_s3::Client::with_config( aws_sdk_s3::client::Builder::new() .connector(my_custom_connector) // Connector customization .middleware(my_custom_middleware) // Middleware customization .default_async_sleep() .build(), config );
Then you will need to wrap the custom connector or middleware in
DynConnector
and
DynMiddleware
respectively:let client = aws_sdk_s3::Client::with_config( aws_sdk_s3::client::Builder::new() .connector(DynConnector::new(my_custom_connector)) // Now with `DynConnector` .middleware(DynMiddleware::new(my_custom_middleware)) // Now with `DynMiddleware` .default_async_sleep() .build(), config );
If you had functions that took a generic connector, such as the following:
fn some_function<C, E>(conn: C) -> Result<()> where C: aws_smithy_client::bounds::SmithyConnector<Error = E> + Send + 'static, E: Into<aws_smithy_http::result::ConnectorError> { // ... }
Then the generics and trait bounds will no longer be necessary:
fn some_function(conn: DynConnector) -> Result<()> { // ... }
Similarly, functions that took a generic middleware can replace the generic with
DynMiddleware
and
remove their trait bounds.
New this release:
- π (aws-sdk-rust#443) The
ProfileFileRegionProvider
will now respect regions set in chained profiles - (smithy-rs#1144) Several modules defined in the
aws_config
crate that used to be declared within another module's file have been moved to their own files. The moved modules arests
,connector
, anddefault_providers
. They still have the exact same import paths. - π (smithy-rs#1129) Fix some docs links not working because they were escaped when they shouldn't have been
- (smithy-rs#1085) The
Client
andConfig
re-exports now have their documentation inlined in the service docs - π (smithy-rs#1180) Fixed example showing how to use hardcoded credentials in
aws-types
0.6.0 (January 26, 2022)
New this release:
- (aws-sdk-rust#423) Added
impl Into<http::request::Builder> for PresignedRequest
and a conversion method for turningPresignedRequest
s intohttp::Request
s. - (smithy-rs#1087) Convert several
info
spans todebug
in aws-config - (smithy-rs#1118) SDK examples now come from
awsdocs/aws-doc-sdk-examples
rather than fromsmithy-rs
0.5.2 (January 20th, 2022)
New this release:
- π (smithy-rs#1100) Internal: Update sync script to run gradle clean. This fixes an issue where codegen was not triggered when only properties changed.
v0.5.1 (January 19th, 2022)
New this release:
- π (smithy-rs#1089) Fix dev-dependency cycle between aws-sdk-sso and aws-config
v0.5.0 (January 19th, 2022)
New this release:
- π (aws-sdk-rust#348) The docs for fluent builders now have easy links to their corresponding Input, Output, and Error structs
- π (smithy-rs#1051, aws-sdk-rust#4) Add support for SSO credentials
- ππ (smithy-rs#1065, aws-sdk-rust#398, @nmoutschen) Silence profile credential warnings in Lambda environment
- π (aws-sdk-rust#405, smithy-rs#1083) Fixed paginator bug impacting EC2 describe VPCs (and others)
Contributors
Thank you for your contributions! β€
v0.4.1 (January 10th, 2022)
New this release:
- π (smithy-rs#1050, @nmoutschen) Fix typos for X-Ray trace ID environment variable in aws_http::recursion_detection
- π (smithy-rs#1054, aws-sdk-rust#391) Fix critical paginator bug where an empty outputToken lead to a never ending stream.
Contributors
Thank you for your contributions! β€
v0.4.0 (January 6th, 2022)
Breaking Changes:
- β (smithy-rs#990) Codegen will no longer produce builders and clients with methods that take
impl Into<T>
except for strings and boxed types. - β (smithy-rs#961) The
meta
,environment
, anddns
Cargo feature flags were removed fromaws-config
.
The code behind thedns
flag is now enabled whenrt-tokio
is enabled. The code behind
themeta
andenvironment
flags is always enabled now. - β (smithy-rs#1003)
aws_http::AwsErrorRetryPolicy
was moved toaws_http::retry::AwsErrorRetryPolicy
. - β (smithy-rs#1017, smithy-rs#930) Simplify features in aws-config. All features have been removed from
aws-config
with the exception of:rt-tokio
,rustls
andnative-tls
. All other features are now included by default. If you depended on those features specifically, remove them from your features listing.
New this release:
- π (aws-sdk-rust#47, smithy-rs#1006) Add support for paginators! Paginated APIs now include
.into_paginator()
and (when supported).into_paginator().items()
to enable paginating responses automatically. The paginator API should be considered in preview and is subject to change pending customer feedback. - (smithy-rs#712) We removed an example 'telephone-game' that was problematic for our CI.
The APIs that that example demonstrated are also demonstrated by our Polly
and TranscribeStreaming examples so please check those out if you miss it. - π (aws-sdk-rust#357) Generated docs should no longer contain links that don't go anywhere
- (aws-sdk-rust#254, @Jacco) Made fluent operation structs cloneable
- (smithy-rs#973) Debug implementation of Credentials will print
expiry
in a human readable way. - π (smithy-rs#999, smithy-rs#143, aws-sdk-rust#344) Add Route53 customization to trim
/hostedzone/
prefix prior to serialization. This fixes a bug where round-tripping a hosted zone id resulted in an error. - π (smithy-rs#998, aws-sdk-rust#359) Fix bug where ECS credential provider could not perform retries.
- (smithy-rs#1003) Add recursion detection middleware to the default stack
- (smithy-rs#1002, aws-sdk-rust#352) aws_types::Config is now
Clone
- (smithy-rs#670, @Jacco) Example for Config builder region function added
- (smithy-rs#1021, @kiiadi) Add function to
aws_config::profile::ProfileSet
that allows listing of loaded profiles by name. - π (smithy-rs#1046, aws-sdk-rust#384) Fix IMDS credentials provider bug where the instance profile name was incorrectly cached.
Contributors
Thank you for your contributions! β€
v0.3.0 (December 15th, 2021)
Breaking Changes:
-
β (smithy-rs#930) If you directly depend on AWS or Smithy runtime crates (e.g., AWS crates not named
aws-config
or prefixed withaws-sdk-
),
the formerly default features from those crates must now be explicitly set in yourCargo.toml
.Upgrade guide
before after aws-smithy-async = "VERSION"
aws-smithy-async = { version = "VERSION", features = ["rt-tokio"] }
aws-smithy-client = "VERSION"
aws-smithy-client = { version = "VERSION", features = ["client-hyper", "rustls", "rt-tokio"] }
aws-smithy-http = "VERSION"
aws-smithy-http = { version = "VERSION", features = ["rt-tokio"] }
-
β (smithy-rs#940)
aws_hyper::Client
which was just a re-export ofaws_smithy_types::Client
with generics set has been removed. If you used
aws_hyper::Client
oraws_hyper::Client::https()
you can update your code to useaws_smithy_client::Builder::https()
. -
β (smithy-rs#947) The features
aws-hyper/rustls
andaws-hyper/native-tls
have been removed. If you were using these, use the identical features onaws-smithy-client
. -
β (smithy-rs#959, smithy-rs#934)
aws-hyper::AwsMiddleware
is now generated into generated service clients directly. If you usedaws_hyper::Middleware
, use ::middleware::DefaultMiddleware` instead.
New this release:
- π (aws-sdk-rust#330) A bug that occurred when signing certain query strings has been fixed
- π (smithy-rs#949, @a-xp) Fix incorrect argument order in the builder for
LazyCachingCredentialsProvider
- π (aws-sdk-rust#304)
aws-config
will now work as intended for users that want to usenative-tls
instead ofrustls
. Previously, it was
difficult to ensure thatrustls
was not in use. Also, there is now an example of how to usenative-tls
and a test
that ensuresrustls
is not in the dependency tree - π (aws-sdk-rust#317, smithy-rs#907) Removed inaccurate log message when a client was used without a sleep implementation, and
improved context and call to action in logged messages around missing sleep implementations. - (smithy-rs#923) Use provided
sleep_impl
for retries instead of using Tokio directly. - (smithy-rs#920) Fix typos in module documentation for generated crates
- π (aws-sdk-rust#301, smithy-rs#892) Avoid serializing repetitive
xmlns
attributes when serializing XML. This reduces the length of serialized requests and should improve compatibility with localstack. - π (smithy-rs#953, aws-sdk-rust#331) Fixed a bug where certain characters caused a panic during URI encoding.
Contributors
Thank you for your contributions! β€
v0.2.0 (December 2nd, 2021)
This release was a version bump to fix a version number conflict on crates.io while releasing 0.1.0
. The changes in 0.1.0 were:
New this release
- Add docs.rs metadata section to all crates to document all features
- Added a new example showing how to set all currently supported timeouts
- Add a new check so that the SDK doesn't emit an irrelevant
$HOME
dir warning when running in a Lambda (aws-sdk-rust#307) - π Don't capture empty session tokens from the
AWS_SESSION_TOKEN
environment variable (aws-sdk-rust#316, smithy-rs#906)