AWS SDK

AWS SDK

rev. 595a9dbeb2bcaa5eb380ce8a3ff81a559073e046

Files changed:

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

@@ -55,55 +115,115 @@
   75     75   
    pub(crate) name: &'a str,
   76     76   
    /// Timestamp to use in the signature (should be `SystemTime::now()` unless testing).
   77     77   
    pub(crate) time: SystemTime,
   78     78   
   79     79   
    /// Additional signing settings. These differ between HTTP and Event Stream.
   80     80   
    pub(crate) settings: S,
   81     81   
}
   82     82   
   83     83   
const HMAC_256: &str = "AWS4-HMAC-SHA256";
   84     84   
   85         -
impl<'a, S> SigningParams<'a, S> {
          85  +
impl<S> SigningParams<'_, S> {
   86     86   
    /// Returns the region that will be used to sign SigV4 requests
   87     87   
    pub fn region(&self) -> &str {
   88     88   
        self.region
   89     89   
    }
   90     90   
   91     91   
    /// Returns the signing name that will be used to sign requests
   92     92   
    pub fn name(&self) -> &str {
   93     93   
        self.name
   94     94   
    }
   95     95   

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

@@ -76,76 +136,136 @@
   96     96   
    pub(crate) name: &'a str,
   97     97   
    /// Timestamp to use in the signature (should be `SystemTime::now()` unless testing).
   98     98   
    pub(crate) time: SystemTime,
   99     99   
  100    100   
    /// Additional signing settings. These differ between HTTP and Event Stream.
  101    101   
    pub(crate) settings: S,
  102    102   
}
  103    103   
  104    104   
pub(crate) const ECDSA_256: &str = "AWS4-ECDSA-P256-SHA256";
  105    105   
  106         -
impl<'a, S> SigningParams<'a, S> {
         106  +
impl<S> SigningParams<'_, S> {
  107    107   
    /// Returns the region that will be used to sign SigV4a requests
  108    108   
    pub fn region_set(&self) -> &str {
  109    109   
        self.region_set
  110    110   
    }
  111    111   
  112    112   
    /// Returns the service name that will be used to sign requests
  113    113   
    pub fn name(&self) -> &str {
  114    114   
        self.name
  115    115   
    }
  116    116   

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-cbor/Cargo.toml

@@ -1,1 +32,32 @@
    2      2   
[[bench]]
    3      3   
name = "string"
    4      4   
harness = false
    5      5   
    6      6   
[[bench]]
    7      7   
name = "blob"
    8      8   
harness = false
    9      9   
   10     10   
[package]
   11     11   
name = "aws-smithy-cbor"
   12         -
version = "0.61.0"
          12  +
version = "0.61.1"
   13     13   
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "David Pérez <d@vidp.dev>"]
   14     14   
description = "CBOR utilities for smithy-rs."
   15     15   
edition = "2021"
   16     16   
license = "Apache-2.0"
   17     17   
repository = "https://github.com/awslabs/smithy-rs"
   18     18   
[package.metadata.docs.rs]
   19     19   
all-features = true
   20     20   
targets = ["x86_64-unknown-linux-gnu"]
   21     21   
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
   22     22   
rustdoc-args = ["--cfg", "docsrs"]
   23     23   
[dependencies.minicbor]
   24     24   
version = "0.24.2"
   25     25   
features = ["alloc", "half"]
   26     26   
   27     27   
[dependencies.aws-smithy-types]
   28     28   
path = "../aws-smithy-types"
   29         -
version = "1.3.1"
          29  +
version = "1.3.2"
   30     30   
   31     31   
[dev-dependencies]
   32     32   
criterion = "0.5.1"

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-cbor/src/decode.rs

@@ -231,231 +307,307 @@
  251    251   
        }
  252    252   
    }
  253    253   
}
  254    254   
  255    255   
#[allow(dead_code)] // to avoid `never constructed` warning
  256    256   
#[derive(Debug)]
  257    257   
pub struct ArrayIter<'a, 'b, T> {
  258    258   
    inner: minicbor::decode::ArrayIter<'a, 'b, T>,
  259    259   
}
  260    260   
  261         -
impl<'a, 'b, T: minicbor::Decode<'b, ()>> Iterator for ArrayIter<'a, 'b, T> {
         261  +
impl<'b, T: minicbor::Decode<'b, ()>> Iterator for ArrayIter<'_, 'b, T> {
  262    262   
    type Item = Result<T, DeserializeError>;
  263    263   
  264    264   
    fn next(&mut self) -> Option<Self::Item> {
  265    265   
        self.inner
  266    266   
            .next()
  267    267   
            .map(|opt| opt.map_err(DeserializeError::new))
  268    268   
    }
  269    269   
}
  270    270   
  271    271   
#[allow(dead_code)] // to avoid `never constructed` warning
  272    272   
#[derive(Debug)]
  273    273   
pub struct MapIter<'a, 'b, K, V> {
  274    274   
    inner: minicbor::decode::MapIter<'a, 'b, K, V>,
  275    275   
}
  276    276   
  277         -
impl<'a, 'b, K, V> Iterator for MapIter<'a, 'b, K, V>
         277  +
impl<'b, K, V> Iterator for MapIter<'_, 'b, K, V>
  278    278   
where
  279    279   
    K: minicbor::Decode<'b, ()>,
  280    280   
    V: minicbor::Decode<'b, ()>,
  281    281   
{
  282    282   
    type Item = Result<(K, V), DeserializeError>;
  283    283   
  284    284   
    fn next(&mut self) -> Option<Self::Item> {
  285    285   
        self.inner
  286    286   
            .next()
  287    287   
            .map(|opt| opt.map_err(DeserializeError::new))
@@ -317,317 +377,377 @@
  337    337   
        let mut decoder = Decoder::new(&bytes);
  338    338   
        let member = decoder.str().expect("could not decode empty str");
  339    339   
        assert_eq!(member, "");
  340    340   
    }
  341    341   
  342    342   
    #[test]
  343    343   
    fn test_empty_blob_works() {
  344    344   
        let bytes = [0x40];
  345    345   
        let mut decoder = Decoder::new(&bytes);
  346    346   
        let member = decoder.blob().expect("could not decode an empty blob");
  347         -
        assert_eq!(member, aws_smithy_types::Blob::new(&[]));
         347  +
        assert_eq!(member, aws_smithy_types::Blob::new([]));
  348    348   
    }
  349    349   
  350    350   
    #[test]
  351    351   
    fn test_indefinite_length_blob() {
  352    352   
        // Indefinite length blob containing bytes corresponding to `indefinite-byte, chunked, on each comma`.
  353    353   
        // https://cbor.nemo157.com/#type=hex&value=bf69626c6f6256616c75655f50696e646566696e6974652d627974652c49206368756e6b65642c4e206f6e206561636820636f6d6d61ffff
  354    354   
        let indefinite_bytes = [
  355    355   
            0x5f, 0x50, 0x69, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x2d, 0x62,
  356    356   
            0x79, 0x74, 0x65, 0x2c, 0x49, 0x20, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x65, 0x64, 0x2c,
  357    357   
            0x4e, 0x20, 0x6f, 0x6e, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x63, 0x6f, 0x6d, 0x6d,

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml

@@ -3,3 +45,45 @@
   23     23   
sha1 = "0.10"
   24     24   
sha2 = "0.10"
   25     25   
tracing = "0.1.40"
   26     26   
   27     27   
[dependencies.aws-smithy-http]
   28     28   
path = "../aws-smithy-http"
   29     29   
version = "0.62.1"
   30     30   
   31     31   
[dependencies.aws-smithy-types]
   32     32   
path = "../aws-smithy-types"
   33         -
version = "1.3.1"
          33  +
version = "1.3.2"
   34     34   
   35     35   
[dependencies.crc-fast]
   36     36   
version = "1.2.1"
   37     37   
   38     38   
[dev-dependencies]
   39     39   
bytes-utils = "0.1.2"
   40     40   
pretty_assertions = "1.3"
   41     41   
tracing-test = "0.2.1"
   42     42   
   43     43   
[dev-dependencies.tokio]

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-compression/Cargo.toml

@@ -1,1 +63,63 @@
    1      1   
# Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
[package]
    3      3   
name = "aws-smithy-compression"
    4         -
version = "0.0.3"
           4  +
version = "0.0.4"
    5      5   
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Zelda Hessler <zhessler@amazon.com>"]
    6      6   
description = "Request compression for smithy clients."
    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   
[features]
   17     17   
http-body-0-4-x = ["dep:http-body-0-4", "dep:http-0-2", "aws-smithy-types/http-body-0-4-x"]
   18     18   
http-body-1-x = ["dep:http-body-1-0", "dep:http-1-0", "dep:http-body-util", "aws-smithy-types/http-body-1-x"]
   19     19   
   20     20   
[dependencies]
   21     21   
bytes = "1.10.0"
   22     22   
flate2 = "1.0.30"
   23     23   
futures-util = "0.3"
   24     24   
pin-project-lite = "0.2.14"
   25     25   
tracing = "0.1.40"
   26     26   
   27     27   
[dependencies.aws-smithy-types]
   28     28   
path = "../aws-smithy-types"
   29         -
version = "1.3.1"
          29  +
version = "1.3.2"
   30     30   
   31     31   
[dependencies.aws-smithy-runtime-api]
   32     32   
path = "../aws-smithy-runtime-api"
   33         -
version = "1.8.0"
          33  +
version = "1.8.1"
   34     34   
   35     35   
[dependencies.http-0-2]
   36     36   
package = "http"
   37     37   
version = "0.2.9"
   38     38   
optional = true
   39     39   
   40     40   
[dependencies.http-1-0]
   41     41   
package = "http"
   42     42   
version = "1"
   43     43   
optional = true

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-compression/src/gzip.rs

@@ -1,1 +58,58 @@
   18     18   
        let mut encoder = GzEncoder::new(writer, self.compression);
   19     19   
        encoder.write_all(bytes)?;
   20     20   
        encoder.try_finish()?;
   21     21   
   22     22   
        Ok(())
   23     23   
    }
   24     24   
}
   25     25   
   26     26   
impl Compress for Gzip {
   27     27   
    fn compress_bytes(&mut self, bytes: &[u8], writer: &mut dyn Write) -> Result<(), BoxError> {
   28         -
        Gzip::compress_bytes(self, bytes, writer).map_err(Into::into)
          28  +
        Gzip::compress_bytes(self, bytes, writer)
   29     29   
    }
   30     30   
}
   31     31   
   32     32   
#[cfg(feature = "http-body-0-4-x")]
   33     33   
mod http_body_0_4_x {
   34     34   
    use crate::http::http_body_0_4_x::CompressRequest;
   35     35   
   36     36   
    impl CompressRequest for super::Gzip {
   37     37   
        fn header_value(&self) -> http_0_2::HeaderValue {
   38     38   
            http_0_2::HeaderValue::from_static("gzip")

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-eventstream/Cargo.toml

@@ -1,1 +37,37 @@
    1      1   
# Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
[package]
    3      3   
name = "aws-smithy-eventstream"
    4         -
version = "0.60.8"
           4  +
version = "0.60.9"
    5      5   
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "John DiSanti <jdisanti@amazon.com>"]
    6      6   
description = "Event stream logic for smithy-rs."
    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   
[features]
   17     17   
derive-arbitrary = ["arbitrary", "derive_arbitrary"]
   18     18   
test-util = []
   19     19   
   20     20   
[dependencies]
   21     21   
bytes = "1.10.0"
   22     22   
crc32fast = "1.3"
   23     23   
   24     24   
[dependencies.arbitrary]
   25     25   
version = "1.3"
   26     26   
optional = true
   27     27   
   28     28   
[dependencies.aws-smithy-types]
   29     29   
path = "../aws-smithy-types"
   30         -
version = "1.3.1"
          30  +
version = "1.3.2"
   31     31   
   32     32   
[dependencies.derive_arbitrary]
   33     33   
version = "1.3"
   34     34   
optional = true
   35     35   
   36     36   
[dev-dependencies]
   37     37   
bytes-utils = "0.1"

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-eventstream/fuzz/Cargo.toml

@@ -21,21 +59,59 @@
   41     41   
   42     42   
[dependencies]
   43     43   
arbitrary = "1.3"
   44     44   
bytes = "1"
   45     45   
crc32fast = "1"
   46     46   
derive_arbitrary = "1.3"
   47     47   
libfuzzer-sys = "=0.4.7"
   48     48   
   49     49   
[dependencies.aws-smithy-types]
   50     50   
path = "../../aws-smithy-types"
   51         -
version = "1.3.1"
          51  +
version = "1.3.2"
   52     52   
   53     53   
[dependencies.aws-smithy-eventstream]
   54     54   
features = ["derive-arbitrary"]
   55     55   
path = ".."
   56         -
version = "0.60.8"
          56  +
version = "0.60.9"
   57     57   
   58     58   
[workspace]
   59     59   
members = ["."]

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-eventstream/src/buf/count.rs

@@ -4,4 +64,64 @@
   24     24   
    pub(crate) fn new(buffer: &'a mut B) -> Self {
   25     25   
        CountBuf { buffer, count: 0 }
   26     26   
    }
   27     27   
   28     28   
    /// Consumes the `CountBuf` and returns the number of bytes read.
   29     29   
    pub(crate) fn into_count(self) -> usize {
   30     30   
        self.count
   31     31   
    }
   32     32   
}
   33     33   
   34         -
impl<'a, B> Buf for CountBuf<'a, B>
          34  +
impl<B> Buf for CountBuf<'_, B>
   35     35   
where
   36     36   
    B: Buf,
   37     37   
{
   38     38   
    fn remaining(&self) -> usize {
   39     39   
        self.buffer.remaining()
   40     40   
    }
   41     41   
   42     42   
    fn chunk(&self) -> &[u8] {
   43     43   
        self.buffer.chunk()
   44     44   
    }

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-eventstream/src/buf/crc.rs

@@ -10,10 +70,70 @@
   30     30   
            crc: Hasher::new(),
   31     31   
        }
   32     32   
    }
   33     33   
   34     34   
    /// Consumes the `CrcBuf` and returns the calculated checksum.
   35     35   
    pub(crate) fn into_crc(self) -> u32 {
   36     36   
        self.crc.finalize()
   37     37   
    }
   38     38   
}
   39     39   
   40         -
impl<'a, B> Buf for CrcBuf<'a, B>
          40  +
impl<B> Buf for CrcBuf<'_, B>
   41     41   
where
   42     42   
    B: Buf,
   43     43   
{
   44     44   
    fn remaining(&self) -> usize {
   45     45   
        self.buffer.remaining()
   46     46   
    }
   47     47   
   48     48   
    fn chunk(&self) -> &[u8] {
   49     49   
        self.buffer.chunk()
   50     50   
    }
@@ -93,93 +153,153 @@
  113    113   
    }
  114    114   
  115    115   
    /// Puts the calculated CRC-32 to the buffer as a Big Endian 32-bit integer.
  116    116   
    /// This can be called multiple times, and each successive call will include
  117    117   
    /// the previously written checksum in its new checksum.
  118    118   
    pub(crate) fn put_crc(&mut self) {
  119    119   
        self.put_u32(self.crc.clone().finalize());
  120    120   
    }
  121    121   
}
  122    122   
  123         -
unsafe impl<'a> BufMut for CrcBufMut<'a> {
         123  +
unsafe impl BufMut for CrcBufMut<'_> {
  124    124   
    fn remaining_mut(&self) -> usize {
  125    125   
        self.buffer.remaining_mut()
  126    126   
    }
  127    127   
  128    128   
    unsafe fn advance_mut(&mut self, cnt: usize) {
  129    129   
        // Safety: There is no guarantee the bytes being advanced are initialized, which is why
  130    130   
        // this trait method is unsafe. The best we can do is assume they have been initialized
  131    131   
        // by the caller before `advance_mut` was called.
  132    132   
        let written = std::slice::from_raw_parts_mut(self.chunk_mut().as_mut_ptr(), cnt);
  133    133   
        self.crc.update(written);

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-eventstream/src/frame.rs

@@ -81,81 +141,141 @@
  101    101   
                rx: Some(Mutex::new(rx)),
  102    102   
                signer: None,
  103    103   
            },
  104    104   
            DeferredSignerSender::new(tx),
  105    105   
        )
  106    106   
    }
  107    107   
  108    108   
    fn acquire(&mut self) -> &mut (dyn SignMessage + Send + Sync) {
  109    109   
        // Can't use `if let Some(signer) = &mut self.signer` because the borrow checker isn't smart enough
  110    110   
        if self.signer.is_some() {
  111         -
            return self.signer.as_mut().unwrap().as_mut();
         111  +
            self.signer.as_mut().unwrap().as_mut()
  112    112   
        } else {
  113    113   
            self.signer = Some(
  114    114   
                self.rx
  115    115   
                    .take()
  116    116   
                    .expect("only taken once")
  117    117   
                    .lock()
  118    118   
                    .unwrap()
  119    119   
                    .try_recv()
  120    120   
                    .ok()
  121    121   
                    // TODO(enableNewSmithyRuntimeCleanup): When the middleware implementation is removed,

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-eventstream/src/smithy.rs

@@ -33,33 +93,93 @@
   53     53   
    /// This field is used to distinguish between events where the value is `event` and errors where
   54     54   
    /// the value is `exception`
   55     55   
    pub message_type: &'a StrBytes,
   56     56   
   57     57   
    /// Smithy Type field
   58     58   
    ///
   59     59   
    /// This field is used to determine which of the possible union variants that this message represents
   60     60   
    pub smithy_type: &'a StrBytes,
   61     61   
}
   62     62   
   63         -
impl<'a> ResponseHeaders<'a> {
          63  +
impl ResponseHeaders<'_> {
   64     64   
    /// Content-Type for this message
   65     65   
    pub fn content_type(&self) -> Option<&str> {
   66     66   
        self.content_type.map(|ct| ct.as_str())
   67     67   
    }
   68     68   
}
   69     69   
   70     70   
fn expect_header_str_value<'a>(
   71     71   
    header: Option<&'a Header>,
   72     72   
    name: &str,
   73     73   
) -> Result<&'a StrBytes, Error> {

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

@@ -1,1 +101,101 @@
   16     16   
   17     17   
[[example]]
   18     18   
name = "custom-dns"
   19     19   
required-features = ["rustls-ring"]
   20     20   
doc-scrape-examples = true
   21     21   
   22     22   
[package]
   23     23   
name = "aws-smithy-http-client"
   24     24   
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>"]
   25     25   
description = "HTTP client abstractions for generated smithy clients"
   26         -
version = "1.0.3"
          26  +
version = "1.0.5"
   27     27   
license = "Apache-2.0"
   28     28   
edition = "2021"
   29     29   
repository = "https://github.com/smithy-lang/smithy-rs"
   30     30   
[package.metadata.smithy-rs-release-tooling]
   31     31   
stable = true
   32     32   
[package.metadata.docs.rs]
   33     33   
all-features = false
   34     34   
features = ["default-client ", "wire-mock", "test-util", "rustls-ring", "rustls-aws-lc"]
   35     35   
targets = ["x86_64-unknown-linux-gnu"]
   36     36   
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
   37     37   
rustdoc-args = ["--cfg", "docsrs"]
   38     38   
   39     39   
[features]
   40     40   
hyper-014 = ["aws-smithy-runtime-api/http-02x", "aws-smithy-types/http-body-0-4-x", "dep:http-02x", "dep:http-body-04x", "dep:hyper-0-14", "dep:h2-0-3"]
   41     41   
default-client = ["aws-smithy-runtime-api/http-1x", "aws-smithy-types/http-body-1-x", "dep:hyper", "dep:hyper-util", "hyper-util?/client-legacy", "dep:http-1x", "dep:tower", "dep:rustls-pki-types", "dep:rustls-native-certs"]
   42     42   
wire-mock = ["test-util", "default-client", "hyper-util?/server", "hyper-util?/server-auto", "hyper-util?/service", "hyper-util?/server-graceful", "tokio/macros", "dep:http-body-util"]
   43     43   
test-util = ["dep:aws-smithy-protocol-test", "dep:serde", "dep:serde_json", "dep:indexmap", "dep:bytes", "dep:http-1x", "aws-smithy-runtime-api/http-1x", "dep:http-body-1x", "aws-smithy-types/http-body-1-x", "tokio/rt"]
   44     44   
legacy-test-util = ["test-util", "dep:http-02x", "aws-smithy-runtime-api/http-02x", "aws-smithy-types/http-body-0-4-x"]
   45     45   
legacy-rustls-ring = ["dep:legacy-hyper-rustls", "dep:legacy-rustls", "hyper-014"]
   46     46   
rustls-ring = ["dep:rustls", "rustls?/ring", "dep:hyper-rustls", "default-client"]
   47     47   
rustls-aws-lc = ["dep:rustls", "rustls?/aws_lc_rs", "dep:hyper-rustls", "default-client"]
   48     48   
rustls-aws-lc-fips = ["dep:rustls", "rustls?/fips", "dep:hyper-rustls", "default-client"]
   49     49   
s2n-tls = ["dep:s2n-tls", "dep:s2n-tls-hyper", "default-client"]
   50     50   
   51     51   
[dependencies]
   52     52   
pin-project-lite = "0.2.14"
   53     53   
tracing = "0.1.40"
   54     54   
   55     55   
[dependencies.aws-smithy-async]
   56     56   
path = "../aws-smithy-async"
   57     57   
version = "1.2.5"
   58     58   
   59     59   
[dependencies.aws-smithy-runtime-api]
   60     60   
path = "../aws-smithy-runtime-api"
   61     61   
features = ["client"]
   62         -
version = "1.8.0"
          62  +
version = "1.8.1"
   63     63   
   64     64   
[dependencies.aws-smithy-types]
   65     65   
path = "../aws-smithy-types"
   66         -
version = "1.3.1"
          66  +
version = "1.3.2"
   67     67   
   68     68   
[dependencies.aws-smithy-protocol-test]
   69     69   
path = "../aws-smithy-protocol-test"
   70     70   
optional = true
   71         -
version = "0.63.2"
          71  +
version = "0.63.4"
   72     72   
   73     73   
[dependencies.h2]
   74     74   
version = "0.4.2"
   75     75   
default-features = false
   76     76   
   77     77   
[dependencies.tokio]
   78     78   
version = "1.40"
   79     79   
features = []
   80     80   
   81     81   
[dependencies.hyper]
@@ -171,171 +221,221 @@
  191    191   
tokio-rustls = "0.26.1"
  192    192   
  193    193   
[dev-dependencies.aws-smithy-async]
  194    194   
path = "../aws-smithy-async"
  195    195   
features = ["rt-tokio", "test-util"]
  196    196   
version = "1.2.5"
  197    197   
  198    198   
[dev-dependencies.aws-smithy-runtime-api]
  199    199   
path = "../aws-smithy-runtime-api"
  200    200   
features = ["test-util"]
  201         -
version = "1.8.0"
         201  +
version = "1.8.1"
  202    202   
  203    203   
[dev-dependencies.aws-smithy-types]
  204    204   
path = "../aws-smithy-types"
  205    205   
features = ["http-body-0-4-x", "test-util"]
  206         -
version = "1.3.1"
         206  +
version = "1.3.2"
  207    207   
  208    208   
[dev-dependencies.http-body-util]
  209    209   
version = "0.1.2"
  210    210   
  211    211   
[dev-dependencies.hyper-util]
  212    212   
version = "0.1.7"
  213    213   
features = ["full"]
  214    214   
  215    215   
[dev-dependencies.rustls-pki-types]
  216    216   
version = "1.11.0"

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http-client/src/test_util.rs

@@ -1,1 +58,58 @@
    1      1   
/*
    2      2   
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
    3      3   
 * SPDX-License-Identifier: Apache-2.0
    4      4   
 */
    5      5   
    6      6   
//! Various fake/mock clients for testing.
    7      7   
//!
    8      8   
//! Each test client is useful for different test use cases:
    9      9   
//! - [`capture_request()`]: If you don't care what the response is, but just want to
   10         -
//! check that the serialized request is what you expect, then use `capture_request`.
   11         -
//! Or, alternatively, if you don't care what the request is, but want to always
   12         -
//! respond with a given response, then capture request can also be useful since
   13         -
//! you can optionally give it a response to return.
          10  +
//!   check that the serialized request is what you expect, then use `capture_request`.
          11  +
//!   Or, alternatively, if you don't care what the request is, but want to always
          12  +
//!   respond with a given response, then capture request can also be useful since
          13  +
//!   you can optionally give it a response to return.
   14     14   
#![cfg_attr(
   15     15   
    feature = "default-client",
   16     16   
    doc = "- [`dvr`]: If you want to record real-world traffic and then replay it later, then DVR's"
   17     17   
)]
   18         -
//! [`RecordingClient`](dvr::RecordingClient) and [`ReplayingClient`](dvr::ReplayingClient)
   19         -
//! can accomplish this, and the recorded traffic can be saved to JSON and checked in. Note: if
   20         -
//! the traffic recording has sensitive information in it, such as signatures or authorization,
   21         -
//! you will need to manually scrub this out if you intend to store the recording alongside
   22         -
//! your tests.
          18  +
//!   [`RecordingClient`](dvr::RecordingClient) and [`ReplayingClient`](dvr::ReplayingClient)
          19  +
//!   can accomplish this, and the recorded traffic can be saved to JSON and checked in. Note: if
          20  +
//!   the traffic recording has sensitive information in it, such as signatures or authorization,
          21  +
//!   you will need to manually scrub this out if you intend to store the recording alongside
          22  +
//!   your tests.
   23     23   
//! - [`StaticReplayClient`]: If you want to have a set list of requests and their responses in a test,
   24         -
//! then the static replay client will be useful. On construction, it takes a list of request/response
   25         -
//! pairs that represent each expected request and the response for that test. At the end of the test,
   26         -
//! you can ask the client to verify that the requests matched the expectations.
          24  +
//!   then the static replay client will be useful. On construction, it takes a list of request/response
          25  +
//!   pairs that represent each expected request and the response for that test. At the end of the test,
          26  +
//!   you can ask the client to verify that the requests matched the expectations.
   27     27   
//! - [`infallible_client_fn`]: Allows you to create a client from an infallible function
   28         -
//! that takes a request and returns a response.
          28  +
//!   that takes a request and returns a response.
   29     29   
//! - [`NeverClient`]: Useful for testing timeouts, where you want the client to never respond.
   30     30   
//!
   31     31   
#![cfg_attr(
   32     32   
    any(feature = "hyper-014", feature = "default-client"),
   33     33   
    doc = "
   34     34   
There is also the [`NeverTcpConnector`], which makes it easy to test connect/read timeouts.
   35     35   
   36     36   
Finally, for socket-level mocking, see the [`wire`] module.
   37     37   
"
   38     38   
)]

tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http-client/src/test_util/dvr.rs

@@ -316,316 +382,384 @@
  336    336   
        match std::str::from_utf8(data.as_ref()) {
  337    337   
            Ok(string) => BodyData::Utf8(string.to_string()),
  338    338   
            Err(_) => BodyData::Base64(base64::encode(data)),
  339    339   
        }
  340    340   
    }
  341    341   
}
  342    342   
  343    343   
#[cfg(test)]
  344    344   
mod tests {
  345    345   
    use super::*;
  346         -
    use aws_smithy_runtime_api::client::http::{HttpConnector, SharedHttpConnector};
  347         -
    use aws_smithy_types::body::SdkBody;
  348         -
    use aws_smithy_types::byte_stream::ByteStream;
  349         -
    use bytes::Bytes;
         346  +
  350    347   
    use std::error::Error;
  351    348   
    use std::fs;
  352    349   
         350  +
    use aws_smithy_runtime_api::client::http::HttpConnector;
         351  +
    use aws_smithy_runtime_api::client::http::SharedHttpConnector;
         352  +
    use aws_smithy_types::body::SdkBody;
         353  +
    use aws_smithy_types::byte_stream::ByteStream;
         354  +
  353    355   
    #[tokio::test]
  354    356   
    async fn correctly_fixes_content_lengths() -> Result<(), Box<dyn Error>> {
  355    357   
        let network_traffic = fs::read_to_string("test-data/example.com.json")?;
  356    358   
        let mut network_traffic: NetworkTraffic = serde_json::from_str(&network_traffic)?;
  357    359   
        network_traffic.correct_content_lengths();
  358    360   
        let Action::Request {
  359    361   
            request: Request { headers, .. },
  360    362   
        } = &network_traffic.events[0].action
  361    363   
        else {
  362    364   
            panic!("unexpected event")