Skip to content

Releases: awslabs/aws-sdk-rust

v0.0.25-alpha (November 11th, 2021)

11 Nov 21:18
d6aacb5
Compare
Choose a tag to compare
Pre-release

No changes since last release except for version bumping since older versions of the AWS SDK were failing to compile with the 0.27.0-alpha.2 version chosen for some of the supporting crates.

v0.0.24-alpha (November 9th, 2021)

09 Nov 22:03
75e7cf4
Compare
Choose a tag to compare
Pre-release

Breaking Changes

  • Members named builder on model structs were renamed to builder_value so that their accessors don't conflict with the existing builder() methods (smithy-rs#842)

New this week

  • Fix epoch seconds date-time parsing bug in aws-smithy-types (smithy-rs#834)
  • Omit trailing zeros from fraction when formatting HTTP dates in aws-smithy-types (smithy-rs#834)
  • Moved examples into repository root (aws-sdk-rust#181, smithy-rs#843)
  • Model structs now have accessor methods for their members. We recommend updating code to use accessors instead of public fields. A future release will deprecate the public fields before they are made private. (smithy-rs#842)
  • πŸ› Fix bug that caused signing to fail for requests where the body length was <=9. (smithy-rs#845)

v0.0.23-alpha (November 5th, 2021)

05 Nov 15:17
8ea6c06
Compare
Choose a tag to compare
Pre-release

To upgrade to the new version of the SDK, update your version to 0.0.23-alpha:

[dependencies]
aws-sdk-s3 = "0.0.23-alpha"

New this week

  • πŸŽ‰ The SDK is available on crates.io! This also means that generated docs are now searchable and hosted on https://docs.rs.
  • πŸŽ‰ Add support for AWS Glacier (smithy-rs#801)
  • πŸŽ‰ Add support for AWS Panorama
  • πŸ› Fix native-tls feature in aws-config (aws-sdk-rust#265, smithy-rs#803)
  • πŸ“– Add example to aws-sig-auth for generating an IAM Token for RDS (smithy-rs#811, aws-sdk-rust#147)
  • πŸ› hyper::Error(IncompleteMessage) will now be retried (smithy-rs#815)
  • πŸ› Fix generated docs on unions like dynamodb::AttributeValue. (smithy-rs#826)

Breaking Changes

  • <operation>.make_operation(&config) is now an async function for all operations. Code should be updated to call .await. This will only impact users using the low-level API. (smithy-rs#797)
  • πŸ› S3 request metadata signing now correctly trims headers fixing problems like this (smithy-rs#761)

v0.0.22-alpha (October 20th, 2021)

20 Oct 22:00
6c874ba
Compare
Choose a tag to compare
Pre-release

Breaking Changes

  • CredentialsError variants became non-exhaustive & now have struct bodies. This makes them impossible to construct directly outside of the aws_types crate. In order to construct credentials errors, new methods have been added for each variant. Instead of CredentialsError::Unhandled(...), you should instead use CredentialsError::unhandled. Matching methods exist for all variants. If you match on specific variants, you will also need to update your code to include ... (#781)
  • The default credentials chain now returns CredentialsError::CredentialsNotLoaded instead of ProviderError when no credentials providers are configured.
  • ⚠️ All Smithy runtime crates have been renamed to have an aws- prefix. This may require code changes:
    • Cargo.toml changes:
      • smithy-async -> aws-smithy-async
      • smithy-client -> aws-smithy-client
      • smithy-eventstream -> aws-smithy-eventstream
      • smithy-http -> aws-smithy-http
      • smithy-http-tower -> aws-smithy-http-tower
      • smithy-json -> aws-smithy-json
      • smithy-protocol-test -> aws-smithy-protocol-test
      • smithy-query -> aws-smithy-query
      • smithy-types -> aws-smithy-types
      • smithy-xml -> aws-smithy-xml
    • Rust use statement changes:
      • smithy_async -> aws_smithy_async
      • smithy_client -> aws_smithy_client
      • smithy_eventstream -> aws_smithy_eventstream
      • smithy_http -> aws_smithy_http
      • smithy_http_tower -> aws_smithy_http_tower
      • smithy_json -> aws_smithy_json
      • smithy_protocol_test -> aws_smithy_protocol_test
      • smithy_query -> aws_smithy_query
      • smithy_types -> aws_smithy_types
      • smithy_xml -> aws_smithy_xml

New this week

  • Moved the contents of aws-auth into the aws-http runtime crate (smithy-rs#783)
  • Fix instances where docs were missing in generated services and add #[warn_missing_docs] (smithy-rs#779)
  • Add tracing output for resolved AWS endpoint (smithy-rs#784)
  • Update AWS service models (smithy-rs#790)
  • Add support for the following Glacier customizations:

v0.0.21-alpha (October 18th, 2021)

18 Oct 20:31
d02a7f0
Compare
Choose a tag to compare
Pre-release

v0.0.21-alpha (October 15th, 2021)

New this week

  • Prepare crate manifests for publishing to crates.io (smithy-rs#755)
  • Add support for IAM Roles for tasks credential provider (smithy-rs#765, aws-sdk-rust#123)
  • All service crates now have generated README files (smithy-rs#766)
  • Update AWS service models (smithy-rs#772)
  • πŸŽ‰ Add support for Amazon Managed Grafana (smithy-rs#772)
  • πŸŽ‰ Make retry behavior configurable
    • With env vars AWS_MAX_ATTEMPTS and AWS_RETRY_MODE
    • With ~/.aws/config settings max_attempts and retry_mode
    • By calling the with_retry_config method on a Config and passing in a RetryConfig
    • Only the Standard retry mode is currently implemented. Adaptive retry mode will be implemented at a later
      date.
    • For more info, see the AWS Reference pages on configuring these settings:

v0.0.20-alpha (October 7th, 2021)

12 Oct 14:14
acfa8b1
Compare
Choose a tag to compare
Pre-release

v0.0.20-alpha (October, 7, 2021)

Breaking changes

  • ⚠️ MSRV increased from 1.52.1 to 1.53.0 per our 3-behind MSRV policy.
  • SmithyConnector and DynConnector now return ConnectorError instead of Box<dyn Error>. If you have written a custom connector, it will need to be updated to return the new error type. (#744)
  • The DispatchError variant of SdkError now contains ConnectorError instead of Box<dyn Error> (#744).

New This Week

  • πŸŽ‰ Add presigned request support and examples for S3 GetObject and PutObject (smithy-rs#731, aws-sdk-rust#139)
  • πŸŽ‰ Add presigned request support and example for Polly SynthesizeSpeech (smithy-rs#735, aws-sdk-rust#139)
  • Add connect & HTTP read timeouts to IMDS, defaulting to 1 second
  • IO and timeout errors from Hyper can now be retried (#744)
  • πŸ› Fix error when receiving Cont event from S3 SelectObjectContent (smithy-rs#736)
  • πŸ› Fix bug in event stream receiver that could cause the last events in the response stream to be lost when using S3 SelectObjectContent (smithy-rs#736)
  • Updated EC2 code examples to include readme; refactored operations from main into separate functions.
  • Updated Transcribe code example to take an audio file as a command-line option and added readme.
  • Refactored API Gateway code example by moving operation out of main and into a separate function; added readme.
  • Updated Auto Scaling code example to move operation from main to separate function; added readme.
  • Updated AWS Config code examples to include a readme; added command-line options; added DeleteConfigurationRecorder, DeleteDeliveryChannel, ListConfigurationRecorders, ListDeliveryChannels, ListResources, ShowResourceHistory, and EnableConfig code examples.
  • πŸŽ‰ Add support for 6 new AWS services:
    • Wisdom
    • VoiceId
    • Account
    • KafkaConnect
    • OpenSearch
    • CloudControl

Contributors
Thank you!! ❀️

v0.0.19-alpha (September 24th, 2021)

24 Sep 23:30
74bae11
Compare
Choose a tag to compare
Pre-release

New This Week

Contributions

Thank you for your contributions! ❀️

September 14th, 2021: Bug fixes

14 Sep 22:10
e80f074
Compare
Choose a tag to compare
Pre-release

v0.0.18-alpha (September 14th, 2021)

New This Week

  • πŸŽ‰ Add support for OpenSearch service & bring in other model updates (smithy-rs#698)
  • Cleanup docs in aws-config (smithy-rs#693)
  • πŸ› Fixes issue where Content-Length header could be duplicated leading to signing failure (#220, smithy-rs#697)

v0.0.17-alpha (September 2nd, 2021)

02 Sep 21:58
74cd8a1
Compare
Choose a tag to compare
Pre-release

This release adds support for three commonly requested features:

  • More powerful credential chain
  • Support for constructing multiple clients from the same configuration
  • Support for Transcribe streaming and S3 Select

In addition, this overhauls client configuration which lead to a number of breaking changes. Detailed changes are inline.

Current Credential Provider Support:

  • Environment variables
  • Web Identity Token Credentials
  • Profile file support (partial)
    • Credentials
      • SSO
      • ECS Credential source
      • IMDS credential source
      • Assume role from source profile
      • Static credentials source profile
      • WebTokenIdentity provider
    • Region
  • IMDS
  • ECS

Upgrade Guide

If you use <sdk>::Client::from_env

from_env loaded region & credentials from environment variables only. Default sources have been removed from the generated
SDK clients and moved to the aws-config package. Note that the aws-config package default chain adds support for
profile file and web identity token profiles.

  1. Add a dependency on aws-config:
    [dependencies]
    aws-config = { git = "https://github.com/awslabs/aws-sdk-rust", tag = "v0.0.17-alpha" }
  2. Update your client creation code:
    // `shared_config` can be used to construct multiple different service clients!
    let shared_config = aws_config::load_from_env().await;
    // before: <service>::Client::from_env();
    let client = <service>::Client::new(&shared_config)

If you used <client>::Config::builder()

Config::build() has been modified to not fallback to a default provider. Instead, use aws-config to load and modify
the default chain. Note that when you switch to aws-config, support for profile files and web identity tokens will be added.

  1. Add a dependency on aws-config:

    [dependencies]
    aws-config = { git = "https://github.com/awslabs/aws-sdk-rust", tag = "v0.0.17-alpha" }
  2. Update your client creation code:

    fn before() {
      let region = aws_types::region::ChainProvider::first_try(<1 provider>).or_default_provider();
      let config = <service>::Config::builder().region(region).build();
      let client = <service>::Client::from_conf(&config);
    }
    
    async fn after() {
      use aws_config::meta::region::RegionProviderChain;
      let region_provider = RegionProviderChain::first_try(<1 provider>).or_default_provider();
      // `shared_config` can be used to construct multiple different service clients!
      let shared_config = aws_config::from_env().region(region_provider).load().await;
      let client = <service>::Client::new(&shared_config)
    }

If you used aws-auth-providers

All credential providers that were in aws-auth-providers have been moved to aws-config. Unless you have a specific use case
for a specific credential provider, you should use the default provider chain:

 let shared_config = aws_config::load_from_env().await;
 let client = <service>::Client::new(&shared_config);

If you maintain your own credential provider

AsyncProvideCredentials has been renamed to ProvideCredentials. The trait has been moved from aws-auth to aws-types.
The original ProvideCredentials trait has been removed. The return type has been changed to by a custom future.

For synchronous use cases:

use aws_types::credentials::{ProvideCredentials, future};

#[derive(Debug)]
struct CustomCreds;
impl ProvideCredentials for CustomCreds {
  fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a>
    where
            Self: 'a,
  {
    // if your credentials are synchronous, use `::ready`
    // if your credentials are loaded asynchronously, use `::new`
    future::ProvideCredentials::ready(todo!()) // your credentials go here
  }
}

For asynchronous use cases:

use aws_types::credentials::{ProvideCredentials, future, Result};

#[derive(Debug)]
struct CustomAsyncCreds;
impl CustomAsyncCreds {
  async fn load_credentials(&self) -> Result {
    Ok(Credentials::from_keys("my creds...", "secret", None))
  }
}

impl ProvideCredentials for CustomCreds {
  fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a>
    where
            Self: 'a,
  {
    future::ProvideCredentials::new(self.load_credentials())
  }
}

Changes

Breaking Changes

  • Credential providers from aws-auth-providers have been moved to aws-config (smithy-rs#678)

  • AsyncProvideCredentials has been renamed to ProvideCredentials. The original non-async provide credentials has been
    removed. See the migration guide above.

  • <sevicename>::from_env() has been removed (#675). A drop-in replacement is available:

    1. Add a dependency on aws-config:
      [dependencies]
      aws-config = { git = "https://github.com/awslabs/aws-sdk-rust", tag = "v0.0.17-alpha" }
    2. Update your client creation code:
      let client = <service>>::Client::new(&aws_config::load_from_env().await)
  • ProvideRegion has been moved to aws_config::meta::region::ProvideRegion. (smithy-rs#675)

  • aws_types::region::ChainProvider has been moved to aws_config::meta::region::RegionProviderChain (smithy-rs#675).

  • ProvideRegion is now asynchronous. Code that called provider.region() must be changed to provider.region().await.

  • <awsservice>::Config::builder() will not load a default region. To preserve previous behavior:

    1. Add a dependency on aws-config:
      [dependencies]
      aws-config = { git = "https://github.com/awslabs/aws-sdk-rust", tag = "v0.0.17-alpha" }
    2. let shared_config = aws_config::load_from_env().await;
      let config = <service>::config::Builder::from(&shared_config).<other builder modifications>.build();

New this week

August 19th, 2021

19 Aug 23:26
dab3b0a
Compare
Choose a tag to compare
August 19th, 2021 Pre-release
Pre-release

New This Week

  • πŸŽ‰ Add Chime Identity, Chime Messaging, and Snow Device Management support (smithy-rs#657)
  • πŸŽ‰ Add profile file credential provider implementation. This implementation currently does not support credential sources for assume role providers other than environment variables. (smithy-rs#640)
  • πŸŽ‰ Add support for WebIdentityToken providers via profile & environment variables. (smithy-rs#654)
  • πŸ› Fix name collision that occurred when a model had both a union and a structure named Result (smithy-rs#643)
  • πŸ› Fix STS Assume Role with WebIdentity & Assume role with SAML to support clients with no credentials provided (smithy-rs#652)
  • Update AWS SDK models (smithy-rs#657)
  • Add initial implementation of a default provider chain. (smithy-rs#650)