Releases: awslabs/aws-sdk-rust
0.10.1 (April 14th, 2022)
Breaking Changes:
- β (aws-sdk-rust#490) Update all SDK and runtime crates to edition 2021
New this release:
- (smithy-rs#1262, @liubin) Fix link to Developer Guide in crate's README.md
- π (smithy-rs#1271, @elrob) Treat blank environment variable credentials (
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
) as missing instead of attempting to use them to sign requests. - (aws-sdk-rust#479, smithy-rs#1296) Add support for configuring the session length in AssumeRoleProvider
- (smithy-rs#1296) Add caching to AssumeRoleProvider
- (smithy-rs#1300, @benesch) Add endpoint resolver to SdkConfig. This enables overriding the endpoint resolver for all services build from a single SdkConfig.
Contributors
Thank you for your contributions! β€
0.9.0 (March 17, 2022)
Breaking Changes:
-
β (aws-sdk-rust#406)
aws_types::config::Config
has been renamed toaws_types::sdk_config::SdkConfig
. This is to better differentiate it
from service-specific configs likeaws_sdk_s3::Config
. If you were creating shared configs with
aws_config::load_from_env()
, then you don't have to do anything. If you were directly referring to a shared config,
update youruse
statements andstruct
names.Before:
use aws_types::config::Config; fn main() { let config = Config::builder() // config builder methods... .build() .await; }
After:
// We re-export this type from the root module so it's easier to reference use aws_types::SdkConfig; fn main() { let config = SdkConfig::builder() // config builder methods... .build() .await; }
-
β (smithy-rs#724) Timeout configuration has been refactored a bit. If you were setting timeouts through environment variables or an AWS
profile, then you shouldn't need to change anything. Take note, however, that we don't currently support HTTP connect,
read, write, or TLS negotiation timeouts. If you try to set any of those timeouts in your profile or environment, we'll
log a warning explaining that those timeouts don't currently do anything.If you were using timeouts programmatically,
you'll need to update your code. In previous versions, timeout configuration was stored in a singleTimeoutConfig
struct. In this new version, timeouts have been broken up into several different config structs that are then collected
in atimeout::Config
struct. As an example, to get the API per-attempt timeout in previous versions you would access
it with<your TimeoutConfig>.api_call_attempt_timeout()
and in this new version you would access it with
<your timeout::Config>.api.call_attempt_timeout()
. We also made some unimplemented timeouts inaccessible in order to
avoid giving users the impression that setting them had an effect. We plan to re-introduce them once they're made
functional in a future update.
New this release:
- π (aws-sdk-rust#475, aws-sdk-rust#473) Enable presigning for S3 operations UploadPart and DeleteObject
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! β€