Skip to content

Releases: awslabs/aws-sdk-rust

0.8.0 (Februrary 24, 2022)

24 Feb 22:04
Compare
Choose a tag to compare
Pre-release

Breaking Changes:

  • ⚠ (smithy-rs#1216) aws-sigv4 no longer skips the content-length and content-type headers when signing with SignatureLocation::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 helpers rustls() and native_tls() now return DynConnector 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 and content-type inputs from being included in a presigned request signature. With this fix, customers can generate presigned URLs that enforce content-length and content-type for requests to S3.

v0.7.0 (February 18th, 2022)

21 Feb 15:30
Compare
Choose a tag to compare
Pre-release

0.7.0 (February 18th, 2022)

Breaking Changes:

  • ⚠ (smithy-rs#1144) The aws_config::http_provider module has been renamed to aws_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 an aws_smithy_types::timeout::TimeoutConfig struct. Both were equivalent. Now aws_smithy_types::timeout::TimeoutConfig
    is used everywhere and aws_smithy_client::timeout::Settings has been removed. Here's how to migrate code your code that
    depended on timeout::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, and HttpSettings have been moved from aws_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 to aws_smithy_client, the HttpConnector::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 of make_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 and ByteStream are now only re-exported if the service has streaming operations,
    and Blob/DateTime are only re-exported if the service uses them.

  • ⚠ (smithy-rs#1130) MSRV increased from 1.54 to 1.56.1 per our 2-behind MSRV policy.

  • ⚠ (smithy-rs#1132) Fluent clients for all services no longer have generics, and now use DynConnector and DynMiddleware 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 are sts, connector, and default_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 and Config 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)

26 Jan 20:23
Compare
Choose a tag to compare
Pre-release

New this release:

0.5.2 (January 20th, 2022)

21 Jan 00:54
Compare
Choose a tag to compare
Pre-release

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)

20 Jan 02:25
Compare
Choose a tag to compare
Pre-release

New this release:

  • πŸ› (smithy-rs#1089) Fix dev-dependency cycle between aws-sdk-sso and aws-config

v0.5.0 (January 19th, 2022)

19 Jan 18:58
Compare
Choose a tag to compare
Pre-release

New this release:

Contributors
Thank you for your contributions! ❀

v0.4.1 (January 10th, 2022)

10 Jan 20:01
f2b4361
Compare
Choose a tag to compare
Pre-release

New this release:

Contributors
Thank you for your contributions! ❀

v0.4.0 (January 6th, 2022)

06 Jan 23:57
7618b2a
Compare
Choose a tag to compare
Pre-release

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, and dns Cargo feature flags were removed from aws-config.
    The code behind the dns flag is now enabled when rt-tokio is enabled. The code behind
    the meta and environment flags is always enabled now.
  • ⚠ (smithy-rs#1003) aws_http::AwsErrorRetryPolicy was moved to aws_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 and native-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)

16 Dec 15:03
fe1cfc3
Compare
Choose a tag to compare
Pre-release

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 with aws-sdk-),
    the formerly default features from those crates must now be explicitly set in your Cargo.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 of aws_smithy_types::Client with generics set has been removed. If you used
    aws_hyper::Client or aws_hyper::Client::https() you can update your code to use aws_smithy_client::Builder::https().

  • ⚠ (smithy-rs#947) The features aws-hyper/rustls and aws-hyper/native-tls have been removed. If you were using these, use the identical features on aws-smithy-client.

  • ⚠ (smithy-rs#959, smithy-rs#934) aws-hyper::AwsMiddleware is now generated into generated service clients directly. If you used aws_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 use native-tls instead of rustls. Previously, it was
    difficult to ensure that rustls was not in use. Also, there is now an example of how to use native-tls and a test
    that ensures rustls 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)

02 Dec 12:47
8b1d7c2
Compare
Choose a tag to compare
Pre-release

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