AWS SDK

AWS SDK

rev. fd67870c8763076fc6895510f5e759abfe0cb35c

Files changed:

tmp-codegen-diff/aws-sdk/README.md

@@ -1,1 +105,105 @@
    1      1   
<!--
    2      2   
IMPORTANT:
    3      3   
This README file is auto-generated by the build system in smithy-lang/smithy-rs.
    4      4   
To update it, edit the `aws/SDK_README.md.hb` Handlebars template in that repository.
    5      5   
-->
    6      6   
    7         -
# The AWS SDK for Rust [![Docs](https://img.shields.io/badge/docs-blue)](https://awslabs.github.io/aws-sdk-rust/) ![MSRV](https://img.shields.io/badge/msrv-1.82.0-red) [![Usage Guide](https://img.shields.io/badge/Developer_Guide-blue)](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html)
           7  +
# The AWS SDK for Rust [![Docs](https://img.shields.io/badge/docs-blue)](https://awslabs.github.io/aws-sdk-rust/) ![MSRV](https://img.shields.io/badge/msrv-1.85.0-red) [![Usage Guide](https://img.shields.io/badge/Developer_Guide-blue)](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html)
    8      8   
    9      9   
This repo contains the AWS SDK for Rust and its [public roadmap](https://github.com/orgs/awslabs/projects/50/views/1).
   10     10   
   11     11   
The SDK is code generated from [Smithy models](https://smithy.io/2.0/index.html) that represent each AWS service.
   12     12   
The code used to generate the SDK can be found in [smithy-rs](https://github.com/smithy-lang/smithy-rs).
   13     13   
   14     14   
## Getting Started with the SDK
   15     15   
   16     16   
> Examples are available for many services and operations, check out the [examples folder](./examples).
   17     17   
   18     18   
> For a step-by-step guide including several advanced use cases, check out the [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html).
   19     19   
   20     20   
The SDK provides one crate per AWS service. You must add [Tokio](https://crates.io/crates/tokio) as a dependency within your Rust project to execute asynchronous code.
   21     21   
   22     22   
1. Create a new Rust project: `cargo new sdk-example`
   23     23   
2. Add dependencies to DynamoDB and Tokio to your **Cargo.toml** file:
   24     24   
   25     25   
    ```toml
   26     26   
    [dependencies]
   27         -
    aws-config = { version= "1.6.3", features = ["behavior-version-latest"] }
          27  +
    aws-config = { version= "1.6.4", features = ["behavior-version-latest"] }
   28     28   
    aws-sdk-dynamodb = "0.0.0-local"
   29     29   
    tokio = { version = "1", features = ["full"] }
   30     30   
    ```
   31     31   
   32     32   
3. Provide your AWS credentials with the default credential provider chain, which currently looks in:
   33     33   
   - Environment variables: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_REGION`
   34     34   
   - The default credentials files located in `~/.aws/config` and `~/.aws/credentials` (location can vary per platform)
   35     35   
   - Web Identity Token credentials from the environment or container (including EKS)
   36     36   
   - ECS Container Credentials (IAM roles for tasks)
   37     37   
   - EC2 Instance Metadata Service (IAM Roles attached to instance)
   38     38   
   39     39   
4. Make a request using DynamoDB
   40     40   
   41     41   
```rust
   42     42   
use aws_sdk_dynamodb::{Client, Error};
   43     43   
   44     44   
#[tokio::main]
   45     45   
async fn main() -> Result<(), Error> {
   46     46   
    let shared_config = aws_config::load_from_env().await;
   47     47   
    let client = Client::new(&shared_config);
   48     48   
    let req = client.list_tables().limit(10);
   49     49   
    let resp = req.send().await?;
   50     50   
    println!("Current DynamoDB tables: {:?}", resp.table_names);
   51     51   
    Ok(())
   52     52   
}
   53     53   
```
   54     54   
   55     55   
### Prerequisites
   56     56   
   57     57   
In order to use the SDK, you must already have Rust and Cargo installed. If you don't, [these instructions](https://doc.rust-lang.org/book/ch01-01-installation.html) describe how to install Rust and Cargo.
   58     58   
   59     59   
## Using the SDK
   60     60   
   61     61   
Detailed usage instructions are available in the [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html).
   62     62   
Suggestions for additional sections or improvements for the guide are welcome. Please open an issue describing what you are trying to do.
   63     63   
   64     64   
## Getting Help
   65     65   
* [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html)
   66     66   
* [GitHub discussions](https://github.com/awslabs/aws-sdk-rust/discussions) - For ideas, RFCs & general questions
   67     67   
* [GitHub issues](https://github.com/awslabs/aws-sdk-rust/issues/new/choose) – For bug reports & feature requests
   68     68   
* [Generated Docs (latest version)](https://awslabs.github.io/aws-sdk-rust/)
   69     69   
* [Usage examples](./examples)
   70     70   
   71     71   
## Feedback and Contributing
   72     72   
   73     73   
### Feedback
   74     74   
   75     75   
The SDK uses **GitHub Issues** to track feature requests and issues with the SDK. In addition, we use **GitHub Projects** to provide users with a high level view of our roadmap and the features we're actively working on.
   76     76   
   77     77   
You can provide feedback or report a bug  by submitting a **GitHub issue**.
   78     78   
This is the preferred mechanism to give feedback so that other users can engage in the conversation, +1 issues, etc.
   79     79   
Issues you open will be evaluated for our roadmap.
   80     80   
   81     81   
### Contributing
   82     82   
   83     83   
If you are interested in contributing to the SDK, please take a look at [CONTRIBUTING](CONTRIBUTING.md)
   84     84   
   85     85   
## Supported Rust Versions (MSRV)
   86     86   
   87         -
The SDK currently requires a minimum of Rust 1.82.0, and is not guaranteed to build on compiler versions
          87  +
The SDK currently requires a minimum of Rust 1.85.0, and is not guaranteed to build on compiler versions
   88     88   
earlier than that. We keep the minimum compiler version two releases behind the latest stable release where
   89     89   
possible (so if the latest stable were 1.55, we would support 1.53). Increases in minimum required Rust
   90     90   
version will be called out in the Release Notes for new releases of the SDK.
   91     91   
   92     92   
## Additional Resources
   93     93   
   94     94   
- Design docs - Design documentation for the SDK lives in the [design folder of smithy-rs](https://github.com/smithy-lang/smithy-rs/tree/main/design).
   95     95   
- Runtime / Handwritten code: The Rust Runtime code that underpins the SDK can be accessed [here](https://github.com/smithy-lang/smithy-rs/tree/main/rust-runtime) and [here](https://github.com/smithy-lang/smithy-rs/tree/main/aws/rust-runtime). This code is copied into this repo as part of code generation.
   96     96   
- [Code Examples](./examples)
   97     97   
- [API reference documentation (rustdoc)](https://awslabs.github.io/aws-sdk-rust/)

tmp-codegen-diff/aws-sdk/sdk/aws-config/Cargo.toml

@@ -1,1 +157,157 @@
    1      1   
# Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
[package]
    3      3   
name = "aws-config"
    4         -
version = "1.6.3"
           4  +
version = "1.6.4"
    5      5   
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
    6      6   
description = "AWS SDK config and credential provider implementations."
    7      7   
edition = "2021"
    8      8   
exclude = ["test-data/*", "integration-tests/*"]
    9      9   
license = "Apache-2.0"
   10     10   
repository = "https://github.com/smithy-lang/smithy-rs"
   11     11   
[package.metadata.docs.rs]
   12     12   
all-features = true
   13     13   
targets = ["x86_64-unknown-linux-gnu"]
   14     14   
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
   15     15   
rustdoc-args = ["--cfg", "docsrs"]
   16     16   
   17     17   
[package.metadata.smithy-rs-release-tooling]
   18     18   
stable = true
   19     19   
[package.metadata.cargo-udeps.ignore]
   20     20   
normal = ["proc-macro2"]
   21     21   
   22     22   
[features]
   23     23   
behavior-version-latest = []
   24     24   
credentials-process = ["tokio/process"]
   25     25   
default = ["default-https-client", "rt-tokio", "credentials-process", "sso"]
   26     26   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-runtime/rt-tokio", "tokio/rt"]
   27     27   
client-hyper = ["aws-smithy-runtime/default-https-client"]
   28     28   
rustls = ["client-hyper"]
   29     29   
default-https-client = ["aws-smithy-runtime/default-https-client"]
   30     30   
sso = ["dep:aws-sdk-sso", "dep:aws-sdk-ssooidc", "dep:ring", "dep:hex", "dep:zeroize", "aws-smithy-runtime-api/http-auth"]
   31     31   
test-util = ["aws-runtime/test-util"]
   32     32   
allow-compilation = []
   33     33   
   34     34   
[dependencies]
   35     35   
bytes = "1.1.0"
   36     36   
http = "1"
   37     37   
url = "2.5.4"
   38     38   
fastrand = "2.3.0"
   39     39   
   40     40   
[dependencies.aws-credential-types]
   41     41   
path = "../aws-credential-types"
   42     42   
features = ["test-util"]
   43     43   
version = "1.2.3"
   44     44   
   45     45   
[dependencies.aws-runtime]
   46     46   
path = "../aws-runtime"
   47         -
version = "1.5.7"
          47  +
version = "1.5.8"
   48     48   
   49     49   
[dependencies.aws-sdk-sts]
   50     50   
path = "../sts"
   51     51   
default-features = false
   52     52   
version = "0.0.0-local"
   53     53   
   54     54   
[dependencies.aws-smithy-async]
   55     55   
path = "../aws-smithy-async"
   56     56   
version = "1.2.5"
   57     57   
   58     58   
[dependencies.aws-smithy-http]
   59     59   
path = "../aws-smithy-http"
   60     60   
version = "0.62.1"
   61     61   
   62     62   
[dependencies.aws-smithy-json]
   63     63   
path = "../aws-smithy-json"
   64         -
version = "0.61.3"
          64  +
version = "0.61.4"
   65     65   
   66     66   
[dependencies.aws-smithy-runtime]
   67     67   
path = "../aws-smithy-runtime"
   68     68   
features = ["client"]
   69     69   
version = "1.8.3"
   70     70   
   71     71   
[dependencies.aws-smithy-runtime-api]
   72     72   
path = "../aws-smithy-runtime-api"
   73     73   
features = ["client"]
   74         -
version = "1.8.0"
          74  +
version = "1.8.1"
   75     75   
   76     76   
[dependencies.aws-smithy-types]
   77     77   
path = "../aws-smithy-types"
   78         -
version = "1.3.1"
          78  +
version = "1.3.2"
   79     79   
   80     80   
[dependencies.aws-types]
   81     81   
path = "../aws-types"
   82     82   
version = "1.3.7"
   83     83   
   84     84   
[dependencies.time]
   85     85   
version = "0.3.4"
   86     86   
features = ["parsing"]
   87     87   
   88     88   
[dependencies.tokio]
   89     89   
version = "1.13.1"
   90     90   
features = ["sync"]
   91     91   
   92     92   
[dependencies.tracing]
   93     93   
version = "0.1"
   94     94   
   95     95   
[dependencies.aws-sdk-sso]
   96     96   
path = "../sso"
   97     97   
default-features = false
   98     98   
optional = true
   99     99   
version = "0.0.0-local"
  100    100   
  101    101   
[dependencies.ring]
  102    102   
version = "0.17.5"
  103    103   
optional = true
  104    104   
  105    105   
[dependencies.hex]
  106    106   
version = "0.4.3"
  107    107   
optional = true
  108    108   
  109    109   
[dependencies.zeroize]
  110    110   
version = "1"
  111    111   
optional = true
  112    112   
  113    113   
[dependencies.aws-sdk-ssooidc]
  114    114   
path = "../ssooidc"
  115    115   
default-features = false
  116    116   
optional = true
  117    117   
version = "0.0.0-local"
  118    118   
  119    119   
[dev-dependencies]
  120    120   
tracing-test = "0.2.4"
  121    121   
serde_json = "1"
  122    122   
  123    123   
[dev-dependencies.aws-smithy-async]
  124    124   
path = "../aws-smithy-async"
  125    125   
features = ["rt-tokio", "test-util"]
  126    126   
version = "1.2.5"
  127    127   
  128    128   
[dev-dependencies.aws-smithy-runtime]
  129    129   
path = "../aws-smithy-runtime"
  130    130   
features = ["client", "test-util"]
  131    131   
version = "1.8.3"
  132    132   
  133    133   
[dev-dependencies.aws-smithy-http-client]
  134    134   
path = "../aws-smithy-http-client"
  135    135   
features = ["default-client", "test-util"]
  136         -
version = "1.0.3"
         136  +
version = "1.0.5"
  137    137   
  138    138   
[dev-dependencies.aws-smithy-runtime-api]
  139    139   
path = "../aws-smithy-runtime-api"
  140    140   
features = ["test-util"]
  141         -
version = "1.8.0"
         141  +
version = "1.8.1"
  142    142   
  143    143   
[dev-dependencies.futures-util]
  144    144   
version = "0.3.29"
  145    145   
default-features = false
  146    146   
  147    147   
[dev-dependencies.tracing-subscriber]
  148    148   
version = "0.3.16"
  149    149   
features = ["fmt", "json"]
  150    150   
  151    151   
[dev-dependencies.tokio]

tmp-codegen-diff/aws-sdk/sdk/aws-config/fuzz/Cargo.toml

@@ -1,1 +30,30 @@
   13     13   
edition = "2021"
   14     14   
   15     15   
[package.metadata]
   16     16   
cargo-fuzz = true
   17     17   
   18     18   
[dependencies]
   19     19   
libfuzzer-sys = "=0.4.7"
   20     20   
   21     21   
[dependencies.aws-config]
   22     22   
path = ".."
   23         -
version = "1.6.3"
          23  +
version = "1.6.4"
   24     24   
   25     25   
[dependencies.aws-types]
   26     26   
path = "../../../sdk/build/aws-sdk/sdk/aws-types"
   27     27   
version = "1.3.7"
   28     28   
   29     29   
[workspace]
   30     30   
members = ["."]

tmp-codegen-diff/aws-sdk/sdk/aws-config/src/json_credentials.rs

@@ -44,44 +104,104 @@
   64     64   
   65     65   
#[derive(PartialEq, Eq)]
   66     66   
pub(crate) struct RefreshableCredentials<'a> {
   67     67   
    pub(crate) access_key_id: Cow<'a, str>,
   68     68   
    pub(crate) secret_access_key: Cow<'a, str>,
   69     69   
    pub(crate) session_token: Cow<'a, str>,
   70     70   
    pub(crate) account_id: Option<Cow<'a, str>>,
   71     71   
    pub(crate) expiration: SystemTime,
   72     72   
}
   73     73   
   74         -
impl<'a> fmt::Debug for RefreshableCredentials<'a> {
          74  +
impl fmt::Debug for RefreshableCredentials<'_> {
   75     75   
    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
   76     76   
        let mut debug = f.debug_struct("RefreshableCredentials");
   77     77   
        debug
   78     78   
            .field("access_key_id", &self.access_key_id)
   79     79   
            .field("secret_access_key", &"** redacted **")
   80     80   
            .field("session_token", &"** redacted **");
   81     81   
        if let Some(account_id) = &self.account_id {
   82     82   
            debug.field("account_id", account_id);
   83     83   
        }
   84     84   
        debug.field("expiration", &self.expiration).finish()

tmp-codegen-diff/aws-sdk/sdk/aws-config/src/meta/region.rs

@@ -115,115 +175,175 @@
  135    135   
    /// Load a region from this provider
  136    136   
    fn region(&self) -> future::ProvideRegion<'_>;
  137    137   
}
  138    138   
  139    139   
impl ProvideRegion for Region {
  140    140   
    fn region(&self) -> future::ProvideRegion<'_> {
  141    141   
        future::ProvideRegion::ready(Some(self.clone()))
  142    142   
    }
  143    143   
}
  144    144   
  145         -
impl<'a> ProvideRegion for &'a Region {
         145  +
impl ProvideRegion for &Region {
  146    146   
    fn region(&self) -> future::ProvideRegion<'_> {
  147    147   
        future::ProvideRegion::ready(Some((*self).clone()))
  148    148   
    }
  149    149   
}
  150    150   
  151    151   
impl ProvideRegion for Box<dyn ProvideRegion> {
  152    152   
    fn region(&self) -> future::ProvideRegion<'_> {
  153    153   
        self.as_ref().region()
  154    154   
    }
  155    155   
}

tmp-codegen-diff/aws-sdk/sdk/aws-credential-types/Cargo.toml

@@ -2,2 +49,49 @@
   22     22   
   23     23   
[dependencies]
   24     24   
zeroize = "1.7.0"
   25     25   
   26     26   
[dependencies.aws-smithy-async]
   27     27   
path = "../aws-smithy-async"
   28     28   
version = "1.2.5"
   29     29   
   30     30   
[dependencies.aws-smithy-types]
   31     31   
path = "../aws-smithy-types"
   32         -
version = "1.3.1"
          32  +
version = "1.3.2"
   33     33   
   34     34   
[dependencies.aws-smithy-runtime-api]
   35     35   
path = "../aws-smithy-runtime-api"
   36     36   
features = ["client", "http-auth"]
   37         -
version = "1.8.0"
          37  +
version = "1.8.1"
   38     38   
   39     39   
[dev-dependencies]
   40     40   
async-trait = "0.1.74"
   41     41   
   42     42   
[dev-dependencies.aws-smithy-runtime-api]
   43     43   
path = "../aws-smithy-runtime-api"
   44     44   
features = ["test-util"]
   45         -
version = "1.8.0"
          45  +
version = "1.8.1"
   46     46   
   47     47   
[dev-dependencies.tokio]
   48     48   
version = "1.23.1"
   49     49   
features = ["full", "test-util", "rt"]

tmp-codegen-diff/aws-sdk/sdk/aws-http/Cargo.toml

@@ -1,1 +0,18 @@
    8      8   
license = "Apache-2.0"
    9      9   
repository = "https://github.com/smithy-lang/smithy-rs"
   10     10   
[package.metadata.docs.rs]
   11     11   
all-features = true
   12     12   
targets = ["x86_64-unknown-linux-gnu"]
   13     13   
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
   14     14   
rustdoc-args = ["--cfg", "docsrs"]
   15     15   
[dependencies.aws-runtime]
   16     16   
path = "../aws-runtime"
   17     17   
features = ["http-02x"]
   18         -
version = "1.5.7"
          18  +
version = "1.5.8"

tmp-codegen-diff/aws-sdk/sdk/aws-runtime/Cargo.toml

@@ -1,1 +144,144 @@
    1      1   
# Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
[package]
    3      3   
name = "aws-runtime"
    4         -
version = "1.5.7"
           4  +
version = "1.5.8"
    5      5   
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>"]
    6      6   
description = "Runtime support code for the AWS SDK. This crate isn't intended to be used directly."
    7      7   
edition = "2021"
    8      8   
license = "Apache-2.0"
    9      9   
repository = "https://github.com/smithy-lang/smithy-rs"
   10     10   
[package.metadata.docs.rs]
   11     11   
all-features = true
   12     12   
targets = ["x86_64-unknown-linux-gnu"]
   13     13   
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
   14     14   
rustdoc-args = ["--cfg", "docsrs"]
   15     15   
   16     16   
[package.metadata.smithy-rs-release-tooling]
   17     17   
stable = true
   18     18   
   19     19   
[features]
   20     20   
event-stream = ["dep:aws-smithy-eventstream", "aws-sigv4/sign-eventstream"]
   21     21   
http-02x = []
   22     22   
http-1x = ["dep:http-1x", "dep:http-body-1x"]
   23     23   
test-util = ["dep:regex-lite"]
   24     24   
sigv4a = ["aws-sigv4/sigv4a"]
   25     25   
   26     26   
[dependencies]
   27     27   
bytes = "1.10.0"
   28     28   
fastrand = "2.3.0"
   29     29   
percent-encoding = "2.3.1"
   30     30   
pin-project-lite = "0.2.14"
   31     31   
tracing = "0.1.40"
   32     32   
   33     33   
[dependencies.aws-credential-types]
   34     34   
path = "../aws-credential-types"
   35     35   
version = "1.2.3"
   36     36   
   37     37   
[dependencies.aws-sigv4]
   38     38   
path = "../aws-sigv4"
   39     39   
features = ["http0-compat"]
   40         -
version = "1.3.2"
          40  +
version = "1.3.3"
   41     41   
   42     42   
[dependencies.aws-smithy-async]
   43     43   
path = "../aws-smithy-async"
   44     44   
version = "1.2.5"
   45     45   
   46     46   
[dependencies.aws-smithy-eventstream]
   47     47   
path = "../aws-smithy-eventstream"
   48     48   
optional = true
   49         -
version = "0.60.8"
          49  +
version = "0.60.9"
   50     50   
   51     51   
[dependencies.aws-smithy-http]
   52     52   
path = "../aws-smithy-http"
   53     53   
version = "0.62.1"
   54     54   
   55     55   
[dependencies.aws-smithy-runtime]
   56     56   
path = "../aws-smithy-runtime"
   57     57   
features = ["client"]
   58     58   
version = "1.8.3"
   59     59   
   60     60   
[dependencies.aws-smithy-runtime-api]
   61     61   
path = "../aws-smithy-runtime-api"
   62     62   
features = ["client"]
   63         -
version = "1.8.0"
          63  +
version = "1.8.1"
   64     64   
   65     65   
[dependencies.aws-smithy-types]
   66     66   
path = "../aws-smithy-types"
   67         -
version = "1.3.1"
          67  +
version = "1.3.2"
   68     68   
   69     69   
[dependencies.aws-types]
   70     70   
path = "../aws-types"
   71     71   
version = "1.3.7"
   72     72   
   73     73   
[dependencies.http-02x]
   74     74   
package = "http"
   75     75   
version = "0.2.9"
   76     76   
   77     77   
[dependencies.http-body-04x]
   78     78   
package = "http-body"
   79     79   
version = "0.4.5"
   80     80   
   81     81   
[dependencies.http-1x]
   82     82   
package = "http"
   83     83   
version = "1.1.0"
   84     84   
optional = true
   85     85   
   86     86   
[dependencies.http-body-1x]
   87     87   
package = "http-body"
   88     88   
version = "1.0.0"
   89     89   
optional = true
   90     90   
   91     91   
[dependencies.regex-lite]
   92     92   
version = "0.1.5"
   93     93   
optional = true
   94     94   
   95     95   
[dependencies.uuid]
   96     96   
version = "1"
   97     97   
   98     98   
[dev-dependencies]
   99     99   
arbitrary = "1.3"
  100    100   
bytes-utils = "0.1.2"
  101    101   
convert_case = "0.6.0"
  102    102   
proptest = "1.2"
  103    103   
serde_json = "1"
  104    104   
tracing-test = "0.2.4"
  105    105   
  106    106   
[dev-dependencies.aws-credential-types]
  107    107   
path = "../aws-credential-types"
  108    108   
features = ["test-util"]
  109    109   
version = "1.2.3"
  110    110   
  111    111   
[dev-dependencies.aws-smithy-async]
  112    112   
path = "../aws-smithy-async"
  113    113   
features = ["test-util"]
  114    114   
version = "1.2.5"
  115    115   
  116    116   
[dev-dependencies.aws-smithy-protocol-test]
  117    117   
path = "../aws-smithy-protocol-test"
  118         -
version = "0.63.2"
         118  +
version = "0.63.4"
  119    119   
  120    120   
[dev-dependencies.aws-smithy-runtime-api]
  121    121   
path = "../aws-smithy-runtime-api"
  122    122   
features = ["test-util"]
  123         -
version = "1.8.0"
         123  +
version = "1.8.1"
  124    124   
  125    125   
[dev-dependencies.aws-smithy-types]
  126    126   
path = "../aws-smithy-types"
  127    127   
features = ["test-util"]
  128         -
version = "1.3.1"
         128  +
version = "1.3.2"
  129    129   
  130    130   
[dev-dependencies.futures-util]
  131    131   
version = "0.3.29"
  132    132   
default-features = false
  133    133   
  134    134   
[dev-dependencies.serde]
  135    135   
version = "1"
  136    136   
features = ["derive"]
  137    137   
  138    138   
[dev-dependencies.tokio]

tmp-codegen-diff/aws-sdk/sdk/aws-runtime/src/env_config.rs

@@ -16,16 +91,91 @@
   36     36   
        .service_id(key.service_id())
   37     37   
        .validate(env, shared_config_sections, validator)
   38     38   
}
   39     39   
   40     40   
#[derive(Debug)]
   41     41   
enum Location<'a> {
   42     42   
    Environment,
   43     43   
    Profile { name: Cow<'a, str> },
   44     44   
}
   45     45   
   46         -
impl<'a> fmt::Display for Location<'a> {
          46  +
impl fmt::Display for Location<'_> {
   47     47   
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
   48     48   
        match self {
   49     49   
            Location::Environment => write!(f, "environment variable"),
   50     50   
            Location::Profile { name } => write!(f, "profile (`{name}`)"),
   51     51   
        }
   52     52   
    }
   53     53   
}
   54     54   
   55     55   
#[derive(Debug)]
   56     56   
enum Scope<'a> {
   57     57   
    Global,
   58     58   
    Service { service_id: Cow<'a, str> },
   59     59   
}
   60     60   
   61         -
impl<'a> fmt::Display for Scope<'a> {
          61  +
impl fmt::Display for Scope<'_> {
   62     62   
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
   63     63   
        match self {
   64     64   
            Scope::Global => write!(f, "global"),
   65     65   
            Scope::Service { service_id } => write!(f, "service-specific (`{service_id}`)"),
   66     66   
        }
   67     67   
    }
   68     68   
}
   69     69   
   70     70   
/// The source that env config was derived from.
   71     71   
///
@@ -107,107 +167,167 @@
  127    127   
        service_id: Cow<'a, str>,
  128    128   
    ) -> Self {
  129    129   
        Self {
  130    130   
            key,
  131    131   
            location: Location::Profile { name: profile_name },
  132    132   
            scope: Scope::Service { service_id },
  133    133   
        }
  134    134   
    }
  135    135   
}
  136    136   
  137         -
impl<'a> fmt::Display for EnvConfigSource<'a> {
         137  +
impl fmt::Display for EnvConfigSource<'_> {
  138    138   
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  139    139   
        write!(f, "{} {} key: `{}`", self.scope, self.location, self.key)
  140    140   
    }
  141    141   
}
  142    142   
  143    143   
/// An error occurred when resolving config from a user's environment.
  144    144   
#[derive(Debug)]
  145    145   
pub struct EnvConfigError<E = Box<dyn Error>> {
  146    146   
    property_source: String,
  147    147   
    err: E,

tmp-codegen-diff/aws-sdk/sdk/aws-runtime/src/env_config/normalize.rs

@@ -1,1 +54,54 @@
   14     14   
const PROFILE_PREFIX: &str = "profile";
   15     15   
const SSO_SESSION_PREFIX: &str = "sso-session";
   16     16   
   17     17   
/// Any section like `[<prefix> <suffix>]` or `[<suffix-only>]`
   18     18   
#[derive(Eq, PartialEq, Hash, Debug)]
   19     19   
struct SectionPair<'a> {
   20     20   
    prefix: Option<Cow<'a, str>>,
   21     21   
    suffix: Cow<'a, str>,
   22     22   
}
   23     23   
   24         -
impl<'a> SectionPair<'a> {
          24  +
impl SectionPair<'_> {
   25     25   
    fn is_unprefixed_default(&self) -> bool {
   26     26   
        self.prefix.is_none() && self.suffix == DEFAULT
   27     27   
    }
   28     28   
   29     29   
    fn is_prefixed_default(&self) -> bool {
   30     30   
        self.prefix.as_deref() == Some(PROFILE_PREFIX) && self.suffix == DEFAULT
   31     31   
    }
   32     32   
   33     33   
    fn parse(input: &str) -> SectionPair<'_> {
   34     34   
        let input = input.trim_matches(WHITESPACE);

tmp-codegen-diff/aws-sdk/sdk/aws-runtime/src/user_agent/metrics.rs

@@ -280,280 +352,349 @@
  300    300   
  "FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED" : "c"
  301    301   
}
  302    302   
        "#;
  303    303   
  304    304   
        let expected: HashMap<&str, &str> = serde_json::from_str(EXPECTED).unwrap();
  305    305   
        assert_eq!(expected.len(), FEATURE_ID_TO_METRIC_VALUE.len());
  306    306   
  307    307   
        for (feature_id, metric_value) in &*FEATURE_ID_TO_METRIC_VALUE {
  308    308   
            let expected = expected.get(format!("{feature_id}").as_str());
  309    309   
            assert_eq!(
  310         -
                expected.expect(&format!("Expected {feature_id} to have value `{metric_value}` but it was `{expected:?}` instead.")),
         310  +
                expected.unwrap_or_else(|| panic!("Expected {feature_id} to have value `{metric_value}` but it was `{expected:?}` instead.")),
  311    311   
                metric_value,
  312    312   
            );
  313    313   
        }
  314    314   
    }
  315    315   
  316    316   
    #[test]
  317    317   
    fn test_base64_iter() {
  318    318   
        // 350 is the max number of metric IDs we support for now
  319         -
        let ids: Vec<String> = Base64Iterator::new()
  320         -
            .into_iter()
  321         -
            .take(MAX_METRICS_ID_NUMBER)
  322         -
            .collect();
         319  +
        let ids: Vec<String> = Base64Iterator::new().take(MAX_METRICS_ID_NUMBER).collect();
  323    320   
        assert_eq!("A", ids[0]);
  324    321   
        assert_eq!("Z", ids[25]);
  325    322   
        assert_eq!("a", ids[26]);
  326    323   
        assert_eq!("z", ids[51]);
  327    324   
        assert_eq!("0", ids[52]);
  328    325   
        assert_eq!("9", ids[61]);
  329    326   
        assert_eq!("+", ids[62]);
  330    327   
        assert_eq!("-", ids[63]);
  331    328   
        assert_eq!("AA", ids[64]);
  332    329   
        assert_eq!("AB", ids[65]);

tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/Cargo.toml

@@ -1,1 +130,130 @@
    3      3   
name = "hmac"
    4      4   
harness = false
    5      5   
    6      6   
[[bench]]
    7      7   
name = "sigv4a"
    8      8   
harness = false
    9      9   
required-features = ["sigv4a"]
   10     10   
   11     11   
[package]
   12     12   
name = "aws-sigv4"
   13         -
version = "1.3.2"
          13  +
version = "1.3.3"
   14     14   
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "David Barsky <me@davidbarsky.com>"]
   15     15   
description = "SigV4 signer for HTTP requests and Event Stream messages."
   16     16   
edition = "2021"
   17     17   
exclude = ["aws-sig-v4-test-suite/*"]
   18     18   
license = "Apache-2.0"
   19     19   
repository = "https://github.com/smithy-lang/smithy-rs"
   20     20   
[package.metadata.docs.rs]
   21     21   
all-features = true
   22     22   
targets = ["x86_64-unknown-linux-gnu"]
   23     23   
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
   24     24   
rustdoc-args = ["--cfg", "docsrs"]
   25     25   
   26     26   
[package.metadata.smithy-rs-release-tooling]
   27     27   
stable = true
   28     28   
   29     29   
[features]
   30     30   
default = ["sign-http", "http1"]
   31     31   
http0-compat = ["dep:http0"]
   32     32   
http1 = ["dep:http"]
   33     33   
sign-http = ["dep:http0", "dep:percent-encoding", "dep:form_urlencoded"]
   34     34   
sign-eventstream = ["dep:aws-smithy-eventstream"]
   35     35   
sigv4a = ["dep:p256", "dep:crypto-bigint", "dep:subtle", "dep:zeroize", "dep:ring"]
   36     36   
   37     37   
[dependencies]
   38     38   
bytes = "1.10.0"
   39     39   
hex = "0.4.3"
   40     40   
hmac = "0.12"
   41     41   
sha2 = "0.10"
   42     42   
time = "0.3.5"
   43     43   
tracing = "0.1.40"
   44     44   
   45     45   
[dependencies.aws-credential-types]
   46     46   
path = "../aws-credential-types"
   47     47   
version = "1.2.3"
   48     48   
   49     49   
[dependencies.aws-smithy-eventstream]
   50     50   
path = "../aws-smithy-eventstream"
   51     51   
optional = true
   52         -
version = "0.60.8"
          52  +
version = "0.60.9"
   53     53   
   54     54   
[dependencies.aws-smithy-http]
   55     55   
path = "../aws-smithy-http"
   56     56   
version = "0.62.1"
   57     57   
   58     58   
[dependencies.aws-smithy-runtime-api]
   59     59   
path = "../aws-smithy-runtime-api"
   60     60   
features = ["client"]
   61         -
version = "1.8.0"
          61  +
version = "1.8.1"
   62     62   
   63     63   
[dependencies.aws-smithy-types]
   64     64   
path = "../aws-smithy-types"
   65         -
version = "1.3.1"
          65  +
version = "1.3.2"
   66     66   
   67     67   
[dependencies.form_urlencoded]
   68     68   
version = "1.2.1"
   69     69   
optional = true
   70     70   
   71     71   
[dependencies.http0]
   72     72   
version = "0.2.9"
   73     73   
optional = true
   74     74   
package = "http"
   75     75   
   76     76   
[dependencies.http]
   77     77   
version = "1.1.0"
   78     78   
optional = true
   79     79   
   80     80   
[dependencies.p256]
   81     81   
version = "0.11"
   82     82   
features = ["ecdsa"]
   83     83   
optional = true
   84     84   
   85     85   
[dependencies.percent-encoding]
   86     86   
version = "2.3.1"
   87     87   
optional = true
   88     88   
   89     89   
[dependencies.ring]
   90     90   
version = "0.17.5"
   91     91   
optional = true
   92     92   
   93     93   
[dependencies.crypto-bigint]
   94     94   
version = "0.5.4"
   95     95   
optional = true
   96     96   
   97     97   
[dependencies.subtle]
   98     98   
version = "2.5.0"
   99     99   
optional = true
  100    100   
  101    101   
[dependencies.zeroize]
  102    102   
version = "^1.7.0"
  103    103   
optional = true
  104    104   
  105    105   
[dev-dependencies]
  106    106   
bytes = "1"
  107    107   
hex-literal = "0.4.1"
  108    108   
httparse = "1.8"
  109    109   
pretty_assertions = "1.3"
  110    110   
proptest = "1.2"
  111    111   
serde = "1.0.180"
  112    112   
serde_derive = "1.0.180"
  113    113   
serde_json = "1.0.104"
  114    114   
criterion = "0.5"
  115    115   
  116    116   
[dev-dependencies.aws-credential-types]
  117    117   
path = "../aws-credential-types"
  118    118   
features = ["test-util", "hardcoded-credentials"]
  119    119   
version = "1.2.3"
  120    120   
  121    121   
[dev-dependencies.aws-smithy-runtime-api]
  122    122   
path = "../aws-smithy-runtime-api"
  123    123   
features = ["client", "test-util"]
  124         -
version = "1.8.0"
         124  +
version = "1.8.1"
  125    125   
  126    126   
[dev-dependencies.time]
  127    127   
version = "0.3.5"
  128    128   
features = ["parsing"]
  129    129   
[target."cfg(not(any(target_arch = \"powerpc\", target_arch = \"powerpc64\")))".dev-dependencies]
  130    130   
ring = "0.17.5"

tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request.rs

@@ -76,76 +136,136 @@
   96     96   
    }
   97     97   
}
   98     98   
   99     99   
#[cfg(feature = "sigv4a")]
  100    100   
impl<'a> From<v4a::SigningParams<'a, SigningSettings>> for SigningParams<'a> {
  101    101   
    fn from(value: v4a::SigningParams<'a, SigningSettings>) -> Self {
  102    102   
        Self::V4a(value)
  103    103   
    }
  104    104   
}
  105    105   
  106         -
impl<'a> SigningParams<'a> {
         106  +
impl SigningParams<'_> {
  107    107   
    /// Return the credentials within the signing params.
  108    108   
    pub(crate) fn credentials(&self) -> Result<&Credentials, SigningError> {
  109    109   
        let identity = match self {
  110    110   
            Self::V4(v4::SigningParams { identity, .. }) => identity,
  111    111   
            #[cfg(feature = "sigv4a")]
  112    112   
            Self::V4a(v4a::SigningParams { identity, .. }) => identity,
  113    113   
        };
  114    114   
  115    115   
        identity
  116    116   
            .data::<Credentials>()

tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs

@@ -98,98 +158,158 @@
  118    118   
  119    119   
#[derive(Debug, PartialEq)]
  120    120   
pub(crate) struct CanonicalRequest<'a> {
  121    121   
    pub(crate) method: &'a str,
  122    122   
    pub(crate) path: Cow<'a, str>,
  123    123   
    pub(crate) params: Option<String>,
  124    124   
    pub(crate) headers: HeaderMap,
  125    125   
    pub(crate) values: SignatureValues<'a>,
  126    126   
}
  127    127   
  128         -
impl<'a> CanonicalRequest<'a> {
         128  +
impl CanonicalRequest<'_> {
  129    129   
    /// Construct a CanonicalRequest from a [`SignableRequest`] and [`SigningParams`].
  130    130   
    ///
  131    131   
    /// The returned canonical request includes information required for signing as well
  132    132   
    /// as query parameters or header values that go along with the signature in a request.
  133    133   
    ///
  134    134   
    /// ## Behavior
  135    135   
    ///
  136    136   
    /// There are several settings which alter signing behavior:
  137    137   
    /// - If a `security_token` is provided as part of the credentials it will be included in the signed headers
  138    138   
    /// - If `settings.percent_encoding_mode` specifies double encoding, `%` in the URL will be re-encoded as `%25`
@@ -423,423 +483,483 @@
  443    443   
            .into_iter()
  444    444   
            .map(|value| {
  445    445   
                std::str::from_utf8(value.as_bytes())
  446    446   
                    .expect("SDK request header values are valid UTF-8")
  447    447   
            })
  448    448   
            .collect();
  449    449   
        values.join(",")
  450    450   
    }
  451    451   
}
  452    452   
  453         -
impl<'a> fmt::Display for CanonicalRequest<'a> {
         453  +
impl fmt::Display for CanonicalRequest<'_> {
  454    454   
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  455    455   
        writeln!(f, "{}", self.method)?;
  456    456   
        writeln!(f, "{}", self.path)?;
  457    457   
        writeln!(f, "{}", self.params.as_deref().unwrap_or(""))?;
  458    458   
        // write out _all_ the headers
  459    459   
        for header in &self.values.signed_headers().headers {
  460    460   
            write!(f, "{}:", header.0.as_str())?;
  461    461   
            writeln!(f, "{}", self.header_values_for(&header.0))?;
  462    462   
        }
  463    463   
        writeln!(f)?;
@@ -541,541 +607,607 @@
  561    561   
    }
  562    562   
}
  563    563   
  564    564   
#[derive(PartialEq, Debug, Clone)]
  565    565   
pub(crate) struct SigningScope<'a> {
  566    566   
    pub(crate) time: SystemTime,
  567    567   
    pub(crate) region: &'a str,
  568    568   
    pub(crate) service: &'a str,
  569    569   
}
  570    570   
  571         -
impl<'a> SigningScope<'a> {
         571  +
impl SigningScope<'_> {
  572    572   
    pub(crate) fn v4a_display(&self) -> String {
  573    573   
        format!("{}/{}/aws4_request", format_date(self.time), self.service)
  574    574   
    }
  575    575   
}
  576    576   
  577         -
impl<'a> fmt::Display for SigningScope<'a> {
         577  +
impl fmt::Display for SigningScope<'_> {
  578    578   
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  579    579   
        write!(
  580    580   
            f,
  581    581   
            "{}/{}/{}/aws4_request",
  582    582   
            format_date(self.time),
  583    583   
            self.region,
  584    584   
            self.service
  585    585   
        )
  586    586   
    }
  587    587   
}
@@ -619,619 +679,679 @@
  639    639   
            scope,
  640    640   
            time,
  641    641   
            region: region_set,
  642    642   
            service,
  643    643   
            hashed_creq,
  644    644   
            signature_version: SignatureVersion::V4a,
  645    645   
        }
  646    646   
    }
  647    647   
}
  648    648   
  649         -
impl<'a> fmt::Display for StringToSign<'a> {
         649  +
impl fmt::Display for StringToSign<'_> {
  650    650   
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
  651    651   
        write!(
  652    652   
            f,
  653    653   
            "{}\n{}\n{}\n{}",
  654    654   
            self.algorithm,
  655    655   
            format_date_time(self.time),
  656    656   
            match self.signature_version {
  657    657   
                SignatureVersion::V4 => self.scope.to_string(),
  658    658   
                SignatureVersion::V4a => self.scope.v4a_display(),
  659    659   
            },

tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs

@@ -69,69 +129,129 @@
   89     89   
    /// A precomputed body checksum. The checksum should be a SHA256 checksum of the body,
   90     90   
    /// lowercase hex encoded. Eg:
   91     91   
    /// `e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`
   92     92   
    Precomputed(String),
   93     93   
   94     94   
    /// Set when a streaming body has checksum trailers.
   95     95   
    StreamingUnsignedPayloadTrailer,
   96     96   
}
   97     97   
   98     98   
/// Formats the value using the given formatter. To print the body data, set the environment variable `LOG_SIGNABLE_BODY=true`.
   99         -
impl<'a> Debug for SignableBody<'a> {
          99  +
impl Debug for SignableBody<'_> {
  100    100   
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
  101    101   
        let should_log_signable_body = std::env::var(LOG_SIGNABLE_BODY)
  102    102   
            .map(|v| v.eq_ignore_ascii_case("true"))
  103    103   
            .unwrap_or_default();
  104    104   
        match self {
  105    105   
            Self::Bytes(arg0) => {
  106    106   
                if should_log_signable_body {
  107    107   
                    f.debug_tuple("Bytes").field(arg0).finish()
  108    108   
                } else {
  109    109   
                    let redacted = format!("** REDACTED **. To print {body_size} bytes of raw data, set environment variable `LOG_SIGNABLE_BODY=true`", body_size = arg0.len());