Skip to content

Releases: awslabs/aws-sdk-rust

0.10.1 (April 14th, 2022)

14 Apr 21:58
3ff4157
Compare
Choose a tag to compare
Pre-release

Breaking Changes:

New this release:

Contributors
Thank you for your contributions! ❀

0.9.0 (March 17, 2022)

17 Mar 22:32
Compare
Choose a tag to compare
Pre-release

Breaking Changes:

  • ⚠ (aws-sdk-rust#406) aws_types::config::Config has been renamed to aws_types::sdk_config::SdkConfig. This is to better differentiate it
    from service-specific configs like aws_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 your use statements and struct 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 single TimeoutConfig
    struct. In this new version, timeouts have been broken up into several different config structs that are then collected
    in a timeout::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:

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! ❀