AWS SDK

AWS SDK

rev. 1fb202108840af7ccb1069c5b8afebf43a5e5aec

Files changed:

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

@@ -1,1 +0,148 @@
    9      9   
repository = "https://github.com/awslabs/aws-sdk-rust"
   10     10   
rust-version = "1.81.0"
   11     11   
readme = "README.md"
   12     12   
[package.metadata.smithy]
   13     13   
codegen-version = "ci"
   14     14   
[package.metadata.docs.rs]
   15     15   
all-features = true
   16     16   
targets = ["x86_64-unknown-linux-gnu"]
   17     17   
[dependencies.aws-credential-types]
   18     18   
path = "../aws-credential-types"
   19         -
version = "1.2.1"
          19  +
version = "1.2.2"
   20     20   
   21     21   
[dependencies.aws-runtime]
   22     22   
path = "../aws-runtime"
   23         -
version = "1.5.5"
          23  +
version = "1.5.6"
   24     24   
   25     25   
[dependencies.aws-smithy-async]
   26     26   
path = "../aws-smithy-async"
   27         -
version = "1.2.4"
          27  +
version = "1.2.5"
   28     28   
   29     29   
[dependencies.aws-smithy-http]
   30     30   
path = "../aws-smithy-http"
   31         -
version = "0.61.1"
          31  +
version = "0.62.0"
   32     32   
   33     33   
[dependencies.aws-smithy-json]
   34     34   
path = "../aws-smithy-json"
   35         -
version = "0.61.2"
          35  +
version = "0.61.3"
   36     36   
   37     37   
[dependencies.aws-smithy-runtime]
   38     38   
path = "../aws-smithy-runtime"
   39     39   
features = ["client"]
   40         -
version = "1.7.8"
          40  +
version = "1.8.0"
   41     41   
   42     42   
[dependencies.aws-smithy-runtime-api]
   43     43   
path = "../aws-smithy-runtime-api"
   44     44   
features = ["client", "http-02x"]
   45         -
version = "1.7.3"
          45  +
version = "1.7.4"
   46     46   
   47     47   
[dependencies.aws-smithy-types]
   48     48   
path = "../aws-smithy-types"
   49         -
version = "1.2.13"
          49  +
version = "1.3.0"
   50     50   
   51     51   
[dependencies.aws-types]
   52     52   
path = "../aws-types"
   53         -
version = "1.3.5"
          53  +
version = "1.3.6"
   54     54   
   55     55   
[dependencies.bytes]
   56     56   
version = "1.4.0"
   57     57   
   58     58   
[dependencies.fastrand]
   59     59   
version = "2.0.0"
   60     60   
   61     61   
[dependencies.http]
   62     62   
version = "0.2.9"
   63     63   
   64     64   
[dependencies.once_cell]
   65     65   
version = "1.16"
   66     66   
   67     67   
[dependencies.regex-lite]
   68     68   
version = "0.1.5"
   69     69   
   70     70   
[dependencies.tracing]
   71     71   
version = "0.1"
   72     72   
[dev-dependencies.approx]
   73     73   
version = "0.5.1"
   74     74   
   75     75   
[dev-dependencies.aws-config]
   76     76   
path = "../aws-config"
   77         -
version = "1.5.18"
          77  +
version = "1.6.0"
   78     78   
   79     79   
[dev-dependencies.aws-credential-types]
   80     80   
path = "../aws-credential-types"
   81     81   
features = ["test-util"]
   82         -
version = "1.2.1"
          82  +
version = "1.2.2"
   83     83   
   84     84   
[dev-dependencies.aws-runtime]
   85     85   
path = "../aws-runtime"
   86     86   
features = ["test-util"]
   87         -
version = "1.5.5"
          87  +
version = "1.5.6"
   88     88   
   89     89   
[dev-dependencies.aws-smithy-async]
   90     90   
path = "../aws-smithy-async"
   91     91   
features = ["test-util"]
   92         -
version = "1.2.4"
          92  +
version = "1.2.5"
          93  +
          94  +
[dev-dependencies.aws-smithy-http-client]
          95  +
path = "../aws-smithy-http-client"
          96  +
features = ["test-util", "wire-mock"]
          97  +
version = "1.0.0"
   93     98   
   94     99   
[dev-dependencies.aws-smithy-protocol-test]
   95    100   
path = "../aws-smithy-protocol-test"
   96         -
version = "0.63.0"
         101  +
version = "0.63.1"
   97    102   
   98    103   
[dev-dependencies.aws-smithy-runtime]
   99    104   
path = "../aws-smithy-runtime"
  100         -
features = ["test-util", "wire-mock"]
  101         -
version = "1.7.8"
         105  +
features = ["test-util"]
         106  +
version = "1.8.0"
  102    107   
  103    108   
[dev-dependencies.aws-smithy-runtime-api]
  104    109   
path = "../aws-smithy-runtime-api"
  105    110   
features = ["test-util"]
  106         -
version = "1.7.3"
         111  +
version = "1.7.4"
  107    112   
  108    113   
[dev-dependencies.aws-smithy-types]
  109    114   
path = "../aws-smithy-types"
  110    115   
features = ["test-util"]
  111         -
version = "1.2.13"
         116  +
version = "1.3.0"
  112    117   
  113    118   
[dev-dependencies.criterion]
  114    119   
version = "0.5.0"
  115    120   
  116    121   
[dev-dependencies.futures-util]
  117    122   
version = "0.3.25"
  118    123   
features = ["alloc"]
  119    124   
default-features = false
  120    125   
         126  +
[dev-dependencies.http-1x]
         127  +
version = "1"
         128  +
package = "http"
         129  +
  121    130   
[dev-dependencies.serde_json]
  122    131   
version = "1.0.0"
  123    132   
  124    133   
[dev-dependencies.tokio]
  125    134   
version = "1.23.1"
  126    135   
features = ["macros", "test-util", "rt-multi-thread"]
  127    136   
  128    137   
[dev-dependencies.tracing-subscriber]
  129    138   
version = "0.3.16"
  130    139   
features = ["env-filter", "json"]
  131    140   
  132    141   
[features]
  133    142   
behavior-version-latest = []
  134    143   
rustls = ["aws-smithy-runtime/tls-rustls"]
         144  +
default-https-client = ["aws-smithy-runtime/default-https-client"]
  135    145   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-types/rt-tokio"]
  136    146   
test-util = ["aws-credential-types/test-util", "aws-smithy-runtime/test-util"]
  137    147   
gated-tests = []
  138         -
default = ["rustls", "rt-tokio"]
         148  +
default = ["rustls", "default-https-client", "rt-tokio"]

tmp-codegen-diff/aws-sdk/sdk/dynamodb/benches/deserialization_bench.rs

@@ -1,1 +47,47 @@
    7      7   
use aws_smithy_runtime_api::client::orchestrator::HttpResponse;
    8      8   
use aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
    9      9   
use aws_smithy_runtime_api::client::ser_de::{DeserializeResponse, SharedResponseDeserializer};
   10     10   
use aws_smithy_types::body::SdkBody;
   11     11   
use criterion::{criterion_group, criterion_main, Criterion};
   12     12   
   13     13   
fn do_bench() {
   14     14   
    use aws_sdk_dynamodb::operation::query::Query;
   15     15   
    use bytes::Bytes;
   16     16   
   17         -
    let response = HttpResponse::try_from(http::Response::builder()
          17  +
    let response = HttpResponse::try_from(http_1x::Response::builder()
   18     18   
        .header("server", "Server")
   19     19   
        .header("date", "Mon, 08 Mar 2021 15:51:23 GMT")
   20     20   
        .header("content-type", "application/x-amz-json-1.0")
   21     21   
        .header("content-length", "1231")
   22     22   
        .header("connection", "keep-alive")
   23     23   
        .header("x-amzn-requestid", "A5FGSJ9ET4OKB8183S9M47RQQBVV4KQNSO5AEMVJF66Q9ASUAAJG")
   24     24   
        .header("x-amz-crc32", "624725176")
   25         -
        .status(http::StatusCode::from_u16(200).unwrap())
          25  +
        .status(http_1x::StatusCode::from_u16(200).unwrap())
   26     26   
        .body(SdkBody::from(Bytes::copy_from_slice(br#"{"Count":2,"Items":[{"year":{"N":"2013"},"info":{"M":{"actors":{"L":[{"S":"Daniel Bruhl"},{"S":"Chris Hemsworth"},{"S":"Olivia Wilde"}]},"plot":{"S":"A re-creation of the merciless 1970s rivalry between Formula One rivals James Hunt and Niki Lauda."},"release_date":{"S":"2013-09-02T00:00:00Z"},"image_url":{"S":"http://ia.media-imdb.com/images/M/MV5BMTQyMDE0MTY0OV5BMl5BanBnXkFtZTcwMjI2OTI0OQ@@._V1_SX400_.jpg"},"genres":{"L":[{"S":"Action"},{"S":"Biography"},{"S":"Drama"},{"S":"Sport"}]},"directors":{"L":[{"S":"Ron Howard"}]},"rating":{"N":"8.3"},"rank":{"N":"2"},"running_time_secs":{"N":"7380"}}},"title":{"S":"Rush"}},{"year":{"N":"2013"},"info":{"M":{"actors":{"L":[{"S":"David Matthewman"},{"S":"Ann Thomas"},{"S":"Jonathan G. Neff"}]},"release_date":{"S":"2013-01-18T00:00:00Z"},"plot":{"S":"A rock band plays their music at high volumes, annoying the neighbors."},"genres":{"L":[{"S":"Comedy"},{"S":"Drama"}]},"image_url":{"S":"http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg"},"directors":{"L":[{"S":"Alice Smith"},{"S":"Bob Jones"}]},"rating":{"N":"6.2"},"rank":{"N":"11"},"running_time_secs":{"N":"5215"}}},"title":{"S":"Turn It Down, Or Else!"}}],"ScannedCount":2}"#)))
   27     27   
        .unwrap()).unwrap();
   28     28   
   29     29   
    let operation = Query::new();
   30     30   
    let config = operation.config().expect("operation should have config");
   31     31   
    let deserializer = config
   32     32   
        .load::<SharedResponseDeserializer>()
   33     33   
        .expect("operation should set a deserializer");
   34     34   
   35     35   
    let output = deserializer

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/auth_scheme_error.rs

@@ -1,1 +32,32 @@
    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   
use aws_sdk_dynamodb::config::Region;
    7      7   
use aws_sdk_dynamodb::error::DisplayErrorContext;
    8      8   
use aws_sdk_dynamodb::{Client, Config};
           9  +
use aws_smithy_http_client::test_util::capture_request;
    9     10   
use aws_smithy_runtime::assert_str_contains;
   10         -
use aws_smithy_runtime::client::http::test_util::capture_request;
   11     11   
   12     12   
#[tokio::test]
   13     13   
async fn auth_scheme_error() {
   14     14   
    let (http_client, _) = capture_request(None);
   15     15   
    let config = Config::builder()
   16     16   
        .behavior_version_latest()
   17     17   
        .http_client(http_client)
   18     18   
        .region(Region::new("us-west-2"))
   19     19   
        // intentionally omitting credentials_provider
   20     20   
        .build();

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/endpoints.rs

@@ -1,1 +39,39 @@
    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   
use aws_sdk_dynamodb::config::{self, Credentials, Region};
    7         -
use aws_smithy_runtime::client::http::test_util::capture_request;
           7  +
use aws_smithy_http_client::test_util::capture_request;
    8      8   
use aws_types::SdkConfig;
    9         -
use http::Uri;
           9  +
use http_1x::Uri;
   10     10   
   11     11   
async fn expect_uri(
   12     12   
    conf: SdkConfig,
   13     13   
    uri: &'static str,
   14     14   
    customize: fn(config::Builder) -> config::Builder,
   15     15   
) {
   16     16   
    let (http_client, request) = capture_request(None);
   17     17   
    let conf = customize(
   18     18   
        aws_sdk_dynamodb::config::Builder::from(&conf)
   19     19   
            .credentials_provider(Credentials::for_tests())

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/movies.rs

@@ -1,1 +48,48 @@
    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   
use aws_sdk_dynamodb as dynamodb;
    7      7   
use aws_smithy_async::assert_elapsed;
    8         -
use aws_smithy_runtime::client::http::test_util::{ReplayEvent, StaticReplayClient};
           8  +
use aws_smithy_http_client::test_util::{ReplayEvent, StaticReplayClient};
    9      9   
use aws_smithy_types::body::SdkBody;
   10     10   
use dynamodb::config::{Credentials, Region};
   11     11   
use dynamodb::operation::query::QueryOutput;
   12     12   
use dynamodb::types::{
   13     13   
    AttributeDefinition, AttributeValue, KeySchemaElement, KeyType, ProvisionedThroughput,
   14     14   
    ScalarAttributeType, TableStatus,
   15     15   
};
   16     16   
use dynamodb::Client;
   17         -
use http::header::AUTHORIZATION;
   18         -
use http::Uri;
          17  +
use http_1x::header::AUTHORIZATION;
          18  +
use http_1x::Uri;
   19     19   
use serde_json::Value;
   20     20   
use std::collections::HashMap;
   21     21   
use std::time::Duration;
   22     22   
   23     23   
async fn create_table(client: &Client, table_name: &str) {
   24     24   
    client
   25     25   
        .create_table()
   26     26   
        .table_name(table_name)
   27     27   
        .key_schema(
   28     28   
            KeySchemaElement::builder()
@@ -169,169 +379,379 @@
  189    189   
  190    190   
    http_client.assert_requests_match(&[AUTHORIZATION.as_str(), "x-amz-date"]);
  191    191   
}
  192    192   
  193    193   
/// Test connection for the movies IT
  194    194   
/// headers are signed with actual creds, at some point we could replace them with verifiable test
  195    195   
/// credentials, but there are plenty of other tests that target signing
  196    196   
fn movies_it_test_connection() -> StaticReplayClient {
  197    197   
    StaticReplayClient::new(vec![
  198    198   
        ReplayEvent::new(
  199         -
         http::Request::builder()
         199  +
         http_1x::Request::builder()
  200    200   
                 .header("content-type", "application/x-amz-json-1.0")
  201    201   
                 .header("x-amz-target", "DynamoDB_20120810.CreateTable")
  202    202   
                 .header("content-length", "313")
  203    203   
                 .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=4a832eba37651836b524b587986be607607b077ad133c57b4bf7300d2e02f476")
  204    204   
                 .header("x-amz-date", "20210308T155118Z")
  205    205   
                 .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  206    206   
                 .body(SdkBody::from(r#"{"AttributeDefinitions":[{"AttributeName":"year","AttributeType":"N"},{"AttributeName":"title","AttributeType":"S"}],"TableName":"Movies-5","KeySchema":[{"AttributeName":"year","KeyType":"HASH"},{"AttributeName":"title","KeyType":"RANGE"}],"ProvisionedThroughput":{"ReadCapacityUnits":10,"WriteCapacityUnits":10}}"#)).unwrap(),
  207         -
         http::Response::builder()
         207  +
         http_1x::Response::builder()
  208    208   
                 .header("server", "Server")
  209    209   
                 .header("date", "Mon, 08 Mar 2021 15:51:18 GMT")
  210    210   
                 .header("content-type", "application/x-amz-json-1.0")
  211    211   
                 .header("content-length", "572")
  212    212   
                 .header("connection", "keep-alive")
  213    213   
                 .header("x-amzn-requestid", "RCII0AALE00UALC7LJ9AD600B7VV4KQNSO5AEMVJF66Q9ASUAAJG")
  214    214   
                 .header("x-amz-crc32", "3715137447")
  215         -
                 .status(http::StatusCode::from_u16(200).unwrap())
         215  +
                 .status(http_1x::StatusCode::from_u16(200).unwrap())
  216    216   
                 .body(SdkBody::from(r#"{"TableDescription":{"AttributeDefinitions":[{"AttributeName":"title","AttributeType":"S"},{"AttributeName":"year","AttributeType":"N"}],"CreationDateTime":1.615218678973E9,"ItemCount":0,"KeySchema":[{"AttributeName":"year","KeyType":"HASH"},{"AttributeName":"title","KeyType":"RANGE"}],"ProvisionedThroughput":{"NumberOfDecreasesToday":0,"ReadCapacityUnits":10,"WriteCapacityUnits":10},"TableArn":"arn:aws:dynamodb:us-east-1:134095065856:table/Movies-5","TableId":"b08c406a-7dbc-4f7d-b7c6-672a43ec21cd","TableName":"Movies-5","TableSizeBytes":0,"TableStatus":"CREATING"}}"#)).unwrap()),
  217         -
         ReplayEvent::new(http::Request::builder()
         217  +
         ReplayEvent::new(http_1x::Request::builder()
  218    218   
                  .header("content-type", "application/x-amz-json-1.0")
  219    219   
                  .header("x-amz-target", "DynamoDB_20120810.DescribeTable")
  220    220   
                  .header("content-length", "24")
  221    221   
                  .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=01b0129a2a4fb3af14559fde8163d59de9c43907152a12479002b3a7c75fa0df")
  222    222   
                  .header("x-amz-date", "20210308T155119Z")
  223    223   
                  .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  224    224   
                  .body(SdkBody::from(r#"{"TableName":"Movies-5"}"#)).unwrap(),
  225         -
          http::Response::builder()
         225  +
          http_1x::Response::builder()
  226    226   
              .header("server", "Server")
  227    227   
              .header("date", "Mon, 08 Mar 2021 15:51:18 GMT")
  228    228   
              .header("content-type", "application/x-amz-json-1.0")
  229    229   
              .header("content-length", "561")
  230    230   
              .header("connection", "keep-alive")
  231    231   
              .header("x-amzn-requestid", "O1C6QKCG8GT7D2K922T4QRL9N3VV4KQNSO5AEMVJF66Q9ASUAAJG")
  232    232   
              .header("x-amz-crc32", "46742265")
  233         -
              .status(http::StatusCode::from_u16(200).unwrap())
         233  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  234    234   
              .body(SdkBody::from(r#"{"Table":{"AttributeDefinitions":[{"AttributeName":"title","AttributeType":"S"},{"AttributeName":"year","AttributeType":"N"}],"CreationDateTime":1.615218678973E9,"ItemCount":0,"KeySchema":[{"AttributeName":"year","KeyType":"HASH"},{"AttributeName":"title","KeyType":"RANGE"}],"ProvisionedThroughput":{"NumberOfDecreasesToday":0,"ReadCapacityUnits":10,"WriteCapacityUnits":10},"TableArn":"arn:aws:dynamodb:us-east-1:134095065856:table/Movies-5","TableId":"b08c406a-7dbc-4f7d-b7c6-672a43ec21cd","TableName":"Movies-5","TableSizeBytes":0,"TableStatus":"CREATING"}}"#)).unwrap()),
  235         -
         ReplayEvent::new(http::Request::builder()
         235  +
         ReplayEvent::new(http_1x::Request::builder()
  236    236   
              .header("content-type", "application/x-amz-json-1.0")
  237    237   
              .header("x-amz-target", "DynamoDB_20120810.DescribeTable")
  238    238   
              .header("content-length", "24")
  239    239   
              .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=7f3a743bb460f26296640ae775d282f0153eda750855ec00ace1815becfd2de5")
  240    240   
              .header("x-amz-date", "20210308T155120Z")
  241    241   
              .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/")).body(SdkBody::from(r#"{"TableName":"Movies-5"}"#)).unwrap(),
  242         -
          http::Response::builder()
         242  +
          http_1x::Response::builder()
  243    243   
              .header("server", "Server")
  244    244   
              .header("date", "Mon, 08 Mar 2021 15:51:20 GMT")
  245    245   
              .header("content-type", "application/x-amz-json-1.0")
  246    246   
              .header("content-length", "561")
  247    247   
              .header("connection", "keep-alive")
  248    248   
              .header("x-amzn-requestid", "EN5N26BO1FAOEMUUSD7B7SUPPVVV4KQNSO5AEMVJF66Q9ASUAAJG")
  249    249   
              .header("x-amz-crc32", "46742265")
  250         -
              .status(http::StatusCode::from_u16(200).unwrap())
         250  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  251    251   
              .body(SdkBody::from(r#"{"Table":{"AttributeDefinitions":[{"AttributeName":"title","AttributeType":"S"},{"AttributeName":"year","AttributeType":"N"}],"CreationDateTime":1.615218678973E9,"ItemCount":0,"KeySchema":[{"AttributeName":"year","KeyType":"HASH"},{"AttributeName":"title","KeyType":"RANGE"}],"ProvisionedThroughput":{"NumberOfDecreasesToday":0,"ReadCapacityUnits":10,"WriteCapacityUnits":10},"TableArn":"arn:aws:dynamodb:us-east-1:134095065856:table/Movies-5","TableId":"b08c406a-7dbc-4f7d-b7c6-672a43ec21cd","TableName":"Movies-5","TableSizeBytes":0,"TableStatus":"CREATING"}}"#)).unwrap()),
  252         -
         ReplayEvent::new(http::Request::builder()
         252  +
         ReplayEvent::new(http_1x::Request::builder()
  253    253   
              .header("content-type", "application/x-amz-json-1.0")
  254    254   
              .header("x-amz-target", "DynamoDB_20120810.DescribeTable")
  255    255   
              .header("content-length", "24")
  256    256   
              .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=46a148c560139bc0da171bd915ea8c0b96a7012629f5db7b6bf70fcd1a66fd24")
  257    257   
              .header("x-amz-date", "20210308T155121Z")
  258    258   
              .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  259    259   
              .body(SdkBody::from(r#"{"TableName":"Movies-5"}"#)).unwrap(),
  260         -
          http::Response::builder()
         260  +
          http_1x::Response::builder()
  261    261   
              .header("server", "Server")
  262    262   
              .header("date", "Mon, 08 Mar 2021 15:51:21 GMT")
  263    263   
              .header("content-type", "application/x-amz-json-1.0")
  264    264   
              .header("content-length", "561")
  265    265   
              .header("connection", "keep-alive")
  266    266   
              .header("x-amzn-requestid", "PHCMGEVI6JLN9JNMKSSA3M76H3VV4KQNSO5AEMVJF66Q9ASUAAJG")
  267    267   
              .header("x-amz-crc32", "46742265")
  268         -
              .status(http::StatusCode::from_u16(200).unwrap())
         268  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  269    269   
              .body(SdkBody::from(r#"{"Table":{"AttributeDefinitions":[{"AttributeName":"title","AttributeType":"S"},{"AttributeName":"year","AttributeType":"N"}],"CreationDateTime":1.615218678973E9,"ItemCount":0,"KeySchema":[{"AttributeName":"year","KeyType":"HASH"},{"AttributeName":"title","KeyType":"RANGE"}],"ProvisionedThroughput":{"NumberOfDecreasesToday":0,"ReadCapacityUnits":10,"WriteCapacityUnits":10},"TableArn":"arn:aws:dynamodb:us-east-1:134095065856:table/Movies-5","TableId":"b08c406a-7dbc-4f7d-b7c6-672a43ec21cd","TableName":"Movies-5","TableSizeBytes":0,"TableStatus":"CREATING"}}"#)).unwrap()),
  270         -
         ReplayEvent::new(http::Request::builder()
         270  +
         ReplayEvent::new(http_1x::Request::builder()
  271    271   
              .header("content-type", "application/x-amz-json-1.0")
  272    272   
              .header("x-amz-target", "DynamoDB_20120810.DescribeTable")
  273    273   
              .header("content-length", "24")
  274    274   
              .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=15bb7c9b2350747d62349091b3ea59d9e1800d1dca04029943329259bba85cb4")
  275    275   
              .header("x-amz-date", "20210308T155122Z")
  276    276   
              .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  277    277   
              .body(SdkBody::from(r#"{"TableName":"Movies-5"}"#)).unwrap(),
  278         -
          http::Response::builder()
         278  +
          http_1x::Response::builder()
  279    279   
              .header("server", "Server")
  280    280   
              .header("date", "Mon, 08 Mar 2021 15:51:22 GMT")
  281    281   
              .header("content-type", "application/x-amz-json-1.0")
  282    282   
              .header("content-length", "561")
  283    283   
              .header("connection", "keep-alive")
  284    284   
              .header("x-amzn-requestid", "1Q22O983HD3511TN6Q5RRTP0MFVV4KQNSO5AEMVJF66Q9ASUAAJG")
  285    285   
              .header("x-amz-crc32", "46742265")
  286         -
              .status(http::StatusCode::from_u16(200).unwrap())
         286  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  287    287   
              .body(SdkBody::from(r#"{"Table":{"AttributeDefinitions":[{"AttributeName":"title","AttributeType":"S"},{"AttributeName":"year","AttributeType":"N"}],"CreationDateTime":1.615218678973E9,"ItemCount":0,"KeySchema":[{"AttributeName":"year","KeyType":"HASH"},{"AttributeName":"title","KeyType":"RANGE"}],"ProvisionedThroughput":{"NumberOfDecreasesToday":0,"ReadCapacityUnits":10,"WriteCapacityUnits":10},"TableArn":"arn:aws:dynamodb:us-east-1:134095065856:table/Movies-5","TableId":"b08c406a-7dbc-4f7d-b7c6-672a43ec21cd","TableName":"Movies-5","TableSizeBytes":0,"TableStatus":"CREATING"}}"#)).unwrap()),
  288         -
         ReplayEvent::new(http::Request::builder()
         288  +
         ReplayEvent::new(http_1x::Request::builder()
  289    289   
              .header("content-type", "application/x-amz-json-1.0")
  290    290   
              .header("x-amz-target", "DynamoDB_20120810.DescribeTable")
  291    291   
              .header("content-length", "24")
  292    292   
              .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=6d0a78087bc112c68a91b4b2d457efd8c09149b85b8f998f8c4b3f9916c8a743")
  293    293   
              .header("x-amz-date", "20210308T155123Z")
  294    294   
              .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  295    295   
              .body(SdkBody::from(r#"{"TableName":"Movies-5"}"#)).unwrap(),
  296         -
          http::Response::builder()
         296  +
          http_1x::Response::builder()
  297    297   
              .header("server", "Server")
  298    298   
              .header("date", "Mon, 08 Mar 2021 15:51:23 GMT")
  299    299   
              .header("content-type", "application/x-amz-json-1.0")
  300    300   
              .header("content-length", "559")
  301    301   
              .header("connection", "keep-alive")
  302    302   
              .header("x-amzn-requestid", "ONJBNV2A9GBNUT34KH73JLL23BVV4KQNSO5AEMVJF66Q9ASUAAJG")
  303    303   
              .header("x-amz-crc32", "24113616")
  304         -
              .status(http::StatusCode::from_u16(200).unwrap())
         304  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  305    305   
              .body(SdkBody::from(r#"{"Table":{"AttributeDefinitions":[{"AttributeName":"title","AttributeType":"S"},{"AttributeName":"year","AttributeType":"N"}],"CreationDateTime":1.615218678973E9,"ItemCount":0,"KeySchema":[{"AttributeName":"year","KeyType":"HASH"},{"AttributeName":"title","KeyType":"RANGE"}],"ProvisionedThroughput":{"NumberOfDecreasesToday":0,"ReadCapacityUnits":10,"WriteCapacityUnits":10},"TableArn":"arn:aws:dynamodb:us-east-1:134095065856:table/Movies-5","TableId":"b08c406a-7dbc-4f7d-b7c6-672a43ec21cd","TableName":"Movies-5","TableSizeBytes":0,"TableStatus":"ACTIVE"}}"#)).unwrap()),
  306         -
         ReplayEvent::new(http::Request::builder()
         306  +
         ReplayEvent::new(http_1x::Request::builder()
  307    307   
              .header("content-type", "application/x-amz-json-1.0")
  308    308   
              .header("x-amz-target", "DynamoDB_20120810.PutItem")
  309    309   
              .header("content-length", "619")
  310    310   
              .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=85fc7d2064a0e6d9c38d64751d39d311ad415ae4079ef21ef254b23ecf093519")
  311    311   
              .header("x-amz-date", "20210308T155123Z")
  312    312   
              .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  313    313   
              .body(SdkBody::from(r#"{"TableName":"Movies-5","Item":{"info":{"M":{"rating":{"N":"6.2"},"genres":{"L":[{"S":"Comedy"},{"S":"Drama"}]},"image_url":{"S":"http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg"},"release_date":{"S":"2013-01-18T00:00:00Z"},"actors":{"L":[{"S":"David Matthewman"},{"S":"Ann Thomas"},{"S":"Jonathan G. Neff"}]},"plot":{"S":"A rock band plays their music at high volumes, annoying the neighbors."},"running_time_secs":{"N":"5215"},"rank":{"N":"11"},"directors":{"L":[{"S":"Alice Smith"},{"S":"Bob Jones"}]}}},"title":{"S":"Turn It Down, Or Else!"},"year":{"N":"2013"}}}"#)).unwrap(),
  314         -
          http::Response::builder()
         314  +
          http_1x::Response::builder()
  315    315   
              .header("server", "Server")
  316    316   
              .header("date", "Mon, 08 Mar 2021 15:51:23 GMT")
  317    317   
              .header("content-type", "application/x-amz-json-1.0")
  318    318   
              .header("content-length", "2")
  319    319   
              .header("connection", "keep-alive")
  320    320   
              .header("x-amzn-requestid", "E6TGS5HKHHV08HSQA31IO1IDMFVV4KQNSO5AEMVJF66Q9ASUAAJG")
  321    321   
              .header("x-amz-crc32", "2745614147")
  322         -
              .status(http::StatusCode::from_u16(200).unwrap())
         322  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  323    323   
              .body(SdkBody::from(r#"{}"#)).unwrap()),
  324         -
         ReplayEvent::new(http::Request::builder()
         324  +
         ReplayEvent::new(http_1x::Request::builder()
  325    325   
              .header("content-type", "application/x-amz-json-1.0")
  326    326   
              .header("x-amz-target", "DynamoDB_20120810.PutItem")
  327    327   
              .header("content-length", "636")
  328    328   
              .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=e4b1658c9f5129b3656381f6592a30e0061b1566263fbf27d982817ea79483f6")
  329    329   
              .header("x-amz-date", "20210308T155123Z")
  330    330   
              .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  331    331   
              .body(SdkBody::from(r#"{"TableName":"Movies-5","Item":{"info":{"M":{"plot":{"S":"A re-creation of the merciless 1970s rivalry between Formula One rivals James Hunt and Niki Lauda."},"rating":{"N":"8.3"},"rank":{"N":"2"},"release_date":{"S":"2013-09-02T00:00:00Z"},"directors":{"L":[{"S":"Ron Howard"}]},"image_url":{"S":"http://ia.media-imdb.com/images/M/MV5BMTQyMDE0MTY0OV5BMl5BanBnXkFtZTcwMjI2OTI0OQ@@._V1_SX400_.jpg"},"actors":{"L":[{"S":"Daniel Bruhl"},{"S":"Chris Hemsworth"},{"S":"Olivia Wilde"}]},"running_time_secs":{"N":"7380"},"genres":{"L":[{"S":"Action"},{"S":"Biography"},{"S":"Drama"},{"S":"Sport"}]}}},"title":{"S":"Rush"},"year":{"N":"2013"}}}"#)).unwrap(),
  332         -
          http::Response::builder()
         332  +
          http_1x::Response::builder()
  333    333   
              .header("server", "Server")
  334    334   
              .header("date", "Mon, 08 Mar 2021 15:51:23 GMT")
  335    335   
              .header("content-type", "application/x-amz-json-1.0")
  336    336   
              .header("content-length", "2")
  337    337   
              .header("connection", "keep-alive")
  338    338   
              .header("x-amzn-requestid", "B63D54LP2FOGQK9JE5KLJT49HJVV4KQNSO5AEMVJF66Q9ASUAAJG")
  339    339   
              .header("x-amz-crc32", "2745614147")
  340         -
              .status(http::StatusCode::from_u16(200).unwrap())
         340  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  341    341   
              .body(SdkBody::from(r#"{}"#)).unwrap()),
  342         -
         ReplayEvent::new(http::Request::builder()
         342  +
         ReplayEvent::new(http_1x::Request::builder()
  343    343   
              .header("content-type", "application/x-amz-json-1.0")
  344    344   
              .header("x-amz-target", "DynamoDB_20120810.Query")
  345    345   
              .header("content-length", "156")
  346    346   
              .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=c9a0fdd0c7c3a792faddabca1fc154c8fbb54ddee7b06a8082e1c587615198b5")
  347    347   
              .header("x-amz-date", "20210308T155123Z")
  348    348   
              .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  349    349   
              .body(SdkBody::from(r##"{"TableName":"Movies-5","KeyConditionExpression":"#yr = :yyyy","ExpressionAttributeNames":{"#yr":"year"},"ExpressionAttributeValues":{":yyyy":{"N":"2222"}}}"##)).unwrap(),
  350         -
          http::Response::builder()
         350  +
          http_1x::Response::builder()
  351    351   
              .header("server", "Server")
  352    352   
              .header("date", "Mon, 08 Mar 2021 15:51:23 GMT")
  353    353   
              .header("content-type", "application/x-amz-json-1.0")
  354    354   
              .header("content-length", "39")
  355    355   
              .header("connection", "keep-alive")
  356    356   
              .header("x-amzn-requestid", "AUAS9KJ0TK9BSR986TRPC2RGTRVV4KQNSO5AEMVJF66Q9ASUAAJG")
  357    357   
              .header("x-amz-crc32", "3413411624")
  358         -
              .status(http::StatusCode::from_u16(200).unwrap())
         358  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  359    359   
              .body(SdkBody::from(r#"{"Count":0,"Items":[],"ScannedCount":0}"#)).unwrap()),
  360         -
         ReplayEvent::new(http::Request::builder()
         360  +
         ReplayEvent::new(http_1x::Request::builder()
  361    361   
              .header("content-type", "application/x-amz-json-1.0")
  362    362   
              .header("x-amz-target", "DynamoDB_20120810.Query")
  363    363   
              .header("content-length", "156")
  364    364   
              .header("authorization", "AWS4-HMAC-SHA256 Credential=ASIAR6OFQKMAFQIIYZ5T/20210308/us-east-1/dynamodb/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-target, Signature=504d6b4de7093b20255b55057085937ec515f62f3c61da68c03bff3f0ce8a160")
  365    365   
              .header("x-amz-date", "20210308T155123Z")
  366    366   
              .uri(Uri::from_static("https://dynamodb.us-east-1.amazonaws.com/"))
  367    367   
              .body(SdkBody::from(r##"{"TableName":"Movies-5","KeyConditionExpression":"#yr = :yyyy","ExpressionAttributeNames":{"#yr":"year"},"ExpressionAttributeValues":{":yyyy":{"N":"2013"}}}"##)).unwrap(),
  368         -
          http::Response::builder()
         368  +
          http_1x::Response::builder()
  369    369   
              .header("server", "Server")
  370    370   
              .header("date", "Mon, 08 Mar 2021 15:51:23 GMT")
  371    371   
              .header("content-type", "application/x-amz-json-1.0")
  372    372   
              .header("content-length", "1231")
  373    373   
              .header("connection", "keep-alive")
  374    374   
              .header("x-amzn-requestid", "A5FGSJ9ET4OKB8183S9M47RQQBVV4KQNSO5AEMVJF66Q9ASUAAJG")
  375    375   
              .header("x-amz-crc32", "624725176")
  376         -
              .status(http::StatusCode::from_u16(200).unwrap())
         376  +
              .status(http_1x::StatusCode::from_u16(200).unwrap())
  377    377   
              .body(SdkBody::from(r#"{"Count":2,"Items":[{"year":{"N":"2013"},"info":{"M":{"actors":{"L":[{"S":"Daniel Bruhl"},{"S":"Chris Hemsworth"},{"S":"Olivia Wilde"}]},"plot":{"S":"A re-creation of the merciless 1970s rivalry between Formula One rivals James Hunt and Niki Lauda."},"release_date":{"S":"2013-09-02T00:00:00Z"},"image_url":{"S":"http://ia.media-imdb.com/images/M/MV5BMTQyMDE0MTY0OV5BMl5BanBnXkFtZTcwMjI2OTI0OQ@@._V1_SX400_.jpg"},"genres":{"L":[{"S":"Action"},{"S":"Biography"},{"S":"Drama"},{"S":"Sport"}]},"directors":{"L":[{"S":"Ron Howard"}]},"rating":{"N":"8.3"},"rank":{"N":"2"},"running_time_secs":{"N":"7380"}}},"title":{"S":"Rush"}},{"year":{"N":"2013"},"info":{"M":{"actors":{"L":[{"S":"David Matthewman"},{"S":"Ann Thomas"},{"S":"Jonathan G. Neff"}]},"release_date":{"S":"2013-01-18T00:00:00Z"},"plot":{"S":"A rock band plays their music at high volumes, annoying the neighbors."},"genres":{"L":[{"S":"Comedy"},{"S":"Drama"}]},"image_url":{"S":"http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg"},"directors":{"L":[{"S":"Alice Smith"},{"S":"Bob Jones"}]},"rating":{"N":"6.2"},"rank":{"N":"11"},"running_time_secs":{"N":"5215"}}},"title":{"S":"Turn It Down, Or Else!"}}],"ScannedCount":2}"#)).unwrap())
  378    378   
    ])
  379    379   
}

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/paginators.rs

@@ -1,1 +87,87 @@
    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   
use std::collections::HashMap;
    7      7   
use std::iter::FromIterator;
    8      8   
    9      9   
use aws_credential_types::Credentials;
   10     10   
use aws_sdk_dynamodb::types::AttributeValue;
   11     11   
use aws_sdk_dynamodb::{Client, Config};
          12  +
use aws_smithy_http_client::test_util::{capture_request, ReplayEvent, StaticReplayClient};
   12     13   
use aws_smithy_protocol_test::{assert_ok, validate_body, MediaType};
   13         -
use aws_smithy_runtime::client::http::test_util::{
   14         -
    capture_request, ReplayEvent, StaticReplayClient,
   15         -
};
   16     14   
use aws_smithy_runtime_api::client::http::HttpClient;
   17     15   
use aws_smithy_types::body::SdkBody;
   18     16   
use aws_types::region::Region;
   19     17   
   20     18   
fn stub_config(http_client: impl HttpClient + 'static) -> Config {
   21     19   
    Config::builder()
   22     20   
        .region(Region::new("us-east-1"))
   23     21   
        .credentials_provider(Credentials::for_tests())
   24     22   
        .http_client(http_client)
   25     23   
        .build()
   26     24   
}
   27     25   
   28     26   
/// Validate that arguments are passed on to the paginator
   29     27   
#[tokio::test]
   30     28   
async fn paginators_pass_args() {
   31     29   
    let (http_client, request) = capture_request(None);
   32     30   
    let client = Client::from_conf(stub_config(http_client));
   33     31   
    let mut paginator = client
   34     32   
        .scan()
   35     33   
        .table_name("test-table")
   36     34   
        .into_paginator()
   37     35   
        .page_size(32)
   38     36   
        .send();
   39     37   
    let _ = paginator.next().await;
   40     38   
    let request = request.expect_request();
   41     39   
    let body = request.body().bytes().expect("data is loaded");
   42     40   
    assert_ok(validate_body(
   43     41   
        body,
   44     42   
        r#"{"TableName":"test-table","Limit":32}"#,
   45     43   
        MediaType::Json,
   46     44   
    ));
   47     45   
}
   48     46   
   49         -
fn mk_request(body: &'static str) -> http::Request<SdkBody> {
   50         -
    http::Request::builder()
          47  +
fn mk_request(body: &'static str) -> http_1x::Request<SdkBody> {
          48  +
    http_1x::Request::builder()
   51     49   
        .uri("https://dynamodb.us-east-1.amazonaws.com/")
   52     50   
        .body(SdkBody::from(body))
   53     51   
        .unwrap()
   54     52   
}
   55     53   
   56         -
fn mk_response(body: &'static str) -> http::Response<SdkBody> {
   57         -
    http::Response::builder().body(SdkBody::from(body)).unwrap()
          54  +
fn mk_response(body: &'static str) -> http_1x::Response<SdkBody> {
          55  +
    http_1x::Response::builder()
          56  +
        .body(SdkBody::from(body))
          57  +
        .unwrap()
   58     58   
}
   59     59   
   60     60   
#[tokio::test(flavor = "current_thread")]
   61     61   
async fn paginators_loop_until_completion() {
   62     62   
    let http_client = StaticReplayClient::new(vec![
   63     63   
        ReplayEvent::new(
   64     64   
            mk_request(r#"{"TableName":"test-table","Limit":32}"#),
   65     65   
            mk_response(
   66     66   
                r#"{
   67     67   
                            "Count": 1,

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/retries-with-client-rate-limiting.rs

@@ -1,1 +74,74 @@
    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   
use aws_sdk_dynamodb::config::{
    7      7   
    Credentials, Region, SharedAsyncSleep, StalledStreamProtectionConfig,
    8      8   
};
    9      9   
use aws_sdk_dynamodb::{config::retry::RetryConfig, error::ProvideErrorMetadata};
   10     10   
use aws_smithy_async::test_util::instant_time_and_sleep;
   11     11   
use aws_smithy_async::time::SharedTimeSource;
   12         -
use aws_smithy_runtime::client::http::test_util::{ReplayEvent, StaticReplayClient};
          12  +
use aws_smithy_http_client::test_util::{ReplayEvent, StaticReplayClient};
   13     13   
use aws_smithy_runtime::client::retries::RetryPartition;
   14     14   
use aws_smithy_types::body::SdkBody;
   15     15   
use std::time::{Duration, SystemTime};
   16     16   
   17         -
fn req() -> http::Request<SdkBody> {
   18         -
    http::Request::builder()
          17  +
fn req() -> http_1x::Request<SdkBody> {
          18  +
    http_1x::Request::builder()
   19     19   
        .body(SdkBody::from("request body"))
   20     20   
        .unwrap()
   21     21   
}
   22     22   
   23         -
fn ok() -> http::Response<SdkBody> {
          23  +
fn ok() -> http_1x::Response<SdkBody> {
   24     24   
    let body = "{ \"TableNames\": [ \"Test\" ] }";
   25         -
    http::Response::builder()
          25  +
    http_1x::Response::builder()
   26     26   
        .status(200)
   27     27   
        .header("server", "Server")
   28     28   
        .header("content-type", "application/x-amz-json-1.0")
   29     29   
        .header("content-length", body.len().to_string())
   30     30   
        .header("connection", "keep-alive")
   31     31   
        .header("x-amz-crc32", "2335643545")
   32     32   
        .body(SdkBody::from(body))
   33     33   
        .unwrap()
   34     34   
}
   35     35   
   36         -
fn err() -> http::Response<SdkBody> {
   37         -
    http::Response::builder()
          36  +
fn err() -> http_1x::Response<SdkBody> {
          37  +
    http_1x::Response::builder()
   38     38   
        .status(500)
   39     39   
        .body(SdkBody::from("{ \"message\": \"The request has failed because of an unknown error, exception or failure.\", \"code\": \"InternalServerError\" }"))
   40     40   
        .unwrap()
   41     41   
}
   42     42   
   43         -
fn throttling_err() -> http::Response<SdkBody> {
   44         -
    http::Response::builder()
          43  +
fn throttling_err() -> http_1x::Response<SdkBody> {
          44  +
    http_1x::Response::builder()
   45     45   
        .status(400)
   46     46   
        .body(SdkBody::from("{ \"message\": \"The request was denied due to request throttling.\", \"code\": \"ThrottlingException\" }"))
   47     47   
        .unwrap()
   48     48   
}
   49     49   
   50     50   
#[tokio::test]
   51     51   
async fn test_adaptive_retries_with_no_throttling_errors() {
   52     52   
    let (time_source, sleep_impl) = instant_time_and_sleep(SystemTime::UNIX_EPOCH);
   53     53   
   54     54   
    let events = vec![

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/shared-config.rs

@@ -1,1 +29,29 @@
    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   
use aws_sdk_dynamodb::config::{Credentials, Region, StalledStreamProtectionConfig};
    7         -
use aws_smithy_runtime::client::http::test_util::capture_request;
    8         -
use http::Uri;
           7  +
use aws_smithy_http_client::test_util::capture_request;
           8  +
use http_1x::Uri;
    9      9   
   10     10   
/// Iterative test of loading clients from shared configuration
   11     11   
#[tokio::test]
   12     12   
async fn shared_config_testbed() {
   13     13   
    let shared_config = aws_types::SdkConfig::builder()
   14     14   
        .region(Region::new("us-east-4"))
   15     15   
        .stalled_stream_protection(StalledStreamProtectionConfig::disabled())
   16     16   
        .build();
   17     17   
    let (http_client, request) = capture_request(None);
   18     18   
    let conf = aws_sdk_dynamodb::config::Builder::from(&shared_config)

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/test-error-classification.rs

@@ -1,1 +43,42 @@
    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   
use std::time::Duration;
    7      7   
    8      8   
use aws_credential_types::Credentials;
    9      9   
use aws_sdk_dynamodb::types::AttributeValue;
   10     10   
use aws_sdk_dynamodb::Client;
   11     11   
use aws_smithy_async::rt::sleep::{SharedAsyncSleep, TokioSleep};
   12         -
use aws_smithy_runtime::client::http::test_util::wire::{ReplayedEvent, WireMockServer};
   13         -
use aws_smithy_runtime::{ev, match_events};
          12  +
use aws_smithy_http_client::test_util::wire::{ev, match_events, ReplayedEvent, WireMockServer};
   14     13   
use aws_smithy_types::retry::RetryConfig;
   15     14   
use aws_smithy_types::timeout::TimeoutConfig;
   16     15   
use aws_types::region::Region;
   17     16   
use bytes::Bytes;
   18     17   
   19     18   
const DYNAMO_THROTTLING_RESPONSE: &str = r#"{"__type":"com.amazonaws.dynamodb.v20120810#ThrottlingException",
   20     19   
"message":"enhance your calm"}"#;
   21     20   
   22     21   
const DYNAMODB_DB_SUCCESS_RESPONSE: &str = r#"{"Count":0,"Items":[],"ScannedCount":2}"#;
   23     22   

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/timeouts.rs

@@ -1,1 +42,42 @@
    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   
use std::time::Duration;
    7      7   
    8      8   
use aws_credential_types::provider::SharedCredentialsProvider;
    9      9   
use aws_sdk_dynamodb::config::{Credentials, Region, StalledStreamProtectionConfig};
   10     10   
use aws_sdk_dynamodb::error::SdkError;
   11     11   
use aws_smithy_async::rt::sleep::{AsyncSleep, SharedAsyncSleep, Sleep};
   12         -
use aws_smithy_runtime::client::http::test_util::NeverClient;
          12  +
use aws_smithy_http_client::test_util::NeverClient;
   13     13   
use aws_smithy_types::retry::RetryConfig;
   14     14   
use aws_smithy_types::timeout::TimeoutConfig;
   15     15   
use aws_types::SdkConfig;
   16     16   
   17     17   
#[derive(Debug, Clone)]
   18     18   
struct InstantSleep;
   19     19   
impl AsyncSleep for InstantSleep {
   20     20   
    fn sleep(&self, _duration: Duration) -> Sleep {
   21     21   
        Sleep::new(Box::pin(async move {}))
   22     22   
    }

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

@@ -1,1 +0,147 @@
    9      9   
repository = "https://github.com/awslabs/aws-sdk-rust"
   10     10   
rust-version = "1.81.0"
   11     11   
readme = "README.md"
   12     12   
[package.metadata.smithy]
   13     13   
codegen-version = "ci"
   14     14   
[package.metadata.docs.rs]
   15     15   
all-features = true
   16     16   
targets = ["x86_64-unknown-linux-gnu"]
   17     17   
[dependencies.aws-credential-types]
   18     18   
path = "../aws-credential-types"
   19         -
version = "1.2.1"
          19  +
version = "1.2.2"
   20     20   
   21     21   
[dependencies.aws-runtime]
   22     22   
path = "../aws-runtime"
   23         -
version = "1.5.5"
          23  +
version = "1.5.6"
   24     24   
   25     25   
[dependencies.aws-smithy-async]
   26     26   
path = "../aws-smithy-async"
   27         -
version = "1.2.4"
          27  +
version = "1.2.5"
   28     28   
   29     29   
[dependencies.aws-smithy-http]
   30     30   
path = "../aws-smithy-http"
   31         -
version = "0.61.1"
          31  +
version = "0.62.0"
   32     32   
   33     33   
[dependencies.aws-smithy-json]
   34     34   
path = "../aws-smithy-json"
   35         -
version = "0.61.2"
          35  +
version = "0.61.3"
   36     36   
   37     37   
[dependencies.aws-smithy-query]
   38     38   
path = "../aws-smithy-query"
   39     39   
version = "0.60.7"
   40     40   
   41     41   
[dependencies.aws-smithy-runtime]
   42     42   
path = "../aws-smithy-runtime"
   43     43   
features = ["client"]
   44         -
version = "1.7.8"
          44  +
version = "1.8.0"
   45     45   
   46     46   
[dependencies.aws-smithy-runtime-api]
   47     47   
path = "../aws-smithy-runtime-api"
   48     48   
features = ["client", "http-02x"]
   49         -
version = "1.7.3"
          49  +
version = "1.7.4"
   50     50   
   51     51   
[dependencies.aws-smithy-types]
   52     52   
path = "../aws-smithy-types"
   53         -
version = "1.2.13"
          53  +
version = "1.3.0"
   54     54   
   55     55   
[dependencies.aws-smithy-xml]
   56     56   
path = "../aws-smithy-xml"
   57     57   
version = "0.60.9"
   58     58   
   59     59   
[dependencies.aws-types]
   60     60   
path = "../aws-types"
   61         -
version = "1.3.5"
          61  +
version = "1.3.6"
   62     62   
   63     63   
[dependencies.fastrand]
   64     64   
version = "2.0.0"
   65     65   
   66     66   
[dependencies.http]
   67     67   
version = "0.2.9"
   68     68   
   69     69   
[dependencies.once_cell]
   70     70   
version = "1.16"
   71     71   
   72     72   
[dependencies.regex-lite]
   73     73   
version = "0.1.5"
   74     74   
   75     75   
[dependencies.tracing]
   76     76   
version = "0.1"
   77     77   
[dev-dependencies.aws-config]
   78     78   
path = "../aws-config"
   79         -
version = "1.5.18"
          79  +
version = "1.6.0"
   80     80   
   81     81   
[dev-dependencies.aws-credential-types]
   82     82   
path = "../aws-credential-types"
   83     83   
features = ["test-util"]
   84         -
version = "1.2.1"
          84  +
version = "1.2.2"
   85     85   
   86     86   
[dev-dependencies.aws-runtime]
   87     87   
path = "../aws-runtime"
   88     88   
features = ["test-util"]
   89         -
version = "1.5.5"
          89  +
version = "1.5.6"
   90     90   
   91     91   
[dev-dependencies.aws-smithy-async]
   92     92   
path = "../aws-smithy-async"
   93     93   
features = ["test-util"]
   94         -
version = "1.2.4"
          94  +
version = "1.2.5"
          95  +
          96  +
[dev-dependencies.aws-smithy-http-client]
          97  +
path = "../aws-smithy-http-client"
          98  +
features = ["test-util", "wire-mock"]
          99  +
version = "1.0.0"
   95    100   
   96    101   
[dev-dependencies.aws-smithy-protocol-test]
   97    102   
path = "../aws-smithy-protocol-test"
   98         -
version = "0.63.0"
         103  +
version = "0.63.1"
   99    104   
  100    105   
[dev-dependencies.aws-smithy-runtime]
  101    106   
path = "../aws-smithy-runtime"
  102         -
features = ["test-util", "wire-mock"]
  103         -
version = "1.7.8"
         107  +
features = ["test-util"]
         108  +
version = "1.8.0"
  104    109   
  105    110   
[dev-dependencies.aws-smithy-runtime-api]
  106    111   
path = "../aws-smithy-runtime-api"
  107    112   
features = ["test-util"]
  108         -
version = "1.7.3"
         113  +
version = "1.7.4"
  109    114   
  110    115   
[dev-dependencies.aws-smithy-types]
  111    116   
path = "../aws-smithy-types"
  112    117   
features = ["test-util"]
  113         -
version = "1.2.13"
         118  +
version = "1.3.0"
  114    119   
  115    120   
[dev-dependencies.futures-util]
  116    121   
version = "0.3.25"
  117    122   
features = ["alloc"]
  118    123   
default-features = false
  119    124   
         125  +
[dev-dependencies.http-1x]
         126  +
version = "1"
         127  +
package = "http"
         128  +
  120    129   
[dev-dependencies.serde_json]
  121    130   
version = "1.0.0"
  122    131   
  123    132   
[dev-dependencies.tokio]
  124    133   
version = "1.23.1"
  125    134   
features = ["macros", "test-util", "rt-multi-thread"]
  126    135   
  127    136   
[dev-dependencies.tracing-subscriber]
  128    137   
version = "0.3.16"
  129    138   
features = ["env-filter", "json"]
  130    139   
  131    140   
[features]
  132    141   
behavior-version-latest = []
  133    142   
rustls = ["aws-smithy-runtime/tls-rustls"]
         143  +
default-https-client = ["aws-smithy-runtime/default-https-client"]
  134    144   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-types/rt-tokio"]
  135    145   
test-util = ["aws-credential-types/test-util", "aws-smithy-runtime/test-util"]
  136    146   
gated-tests = []
  137         -
default = ["rustls", "rt-tokio"]
         147  +
default = ["rustls", "default-https-client", "rt-tokio"]

tmp-codegen-diff/aws-sdk/sdk/ec2/tests/paginators.rs

@@ -1,1 +102,102 @@
    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   
use aws_runtime::user_agent::test_util::assert_ua_contains_metric_values;
    7      7   
use aws_sdk_ec2::{config::Credentials, config::Region, types::InstanceType, Client, Config};
    8         -
use aws_smithy_runtime::client::http::test_util::capture_request;
           8  +
use aws_smithy_http_client::test_util::capture_request;
    9      9   
use aws_smithy_runtime_api::client::http::HttpClient;
   10     10   
use aws_smithy_types::body::SdkBody;
   11     11   
use std::collections::HashSet;
   12     12   
   13     13   
fn stub_config(http_client: impl HttpClient + 'static) -> Config {
   14     14   
    Config::builder()
   15     15   
        .region(Region::new("us-east-1"))
   16     16   
        .credentials_provider(Credentials::for_tests())
   17     17   
        .http_client(http_client)
   18     18   
        .build()
   19     19   
}
   20     20   
   21     21   
fn validate_query_string(expected_str: &str, actual_str: &str) {
   22     22   
    assert_eq!(expected_str.len(), actual_str.len());
   23     23   
    let expected = expected_str.split('&').collect::<HashSet<_>>();
   24     24   
    let actual = actual_str.split('&').collect::<HashSet<_>>();
   25     25   
    assert_eq!(expected, actual);
   26     26   
}
   27     27   
   28     28   
/// See https://github.com/awslabs/aws-sdk-rust/issues/391
   29     29   
///
   30     30   
/// EC2 replies with `<nextToken></nextToken>` which our XML parser parses as empty string and not "none"
   31     31   
#[tokio::test]
   32     32   
async fn paginators_handle_empty_tokens() {
   33     33   
    let response = r#"<?xml version="1.0" encoding="UTF-8"?>
   34     34   
        <DescribeSpotPriceHistoryResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
   35     35   
            <requestId>edf3e86c-4baf-47c1-9228-9a5ea09542e8</requestId>
   36     36   
            <spotPriceHistorySet/>
   37     37   
            <nextToken></nextToken>
   38     38   
        </DescribeSpotPriceHistoryResponse>"#;
   39         -
    let response = http::Response::builder()
          39  +
    let response = http_1x::Response::builder()
   40     40   
        .status(200)
   41     41   
        .body(SdkBody::from(response))
   42     42   
        .unwrap();
   43     43   
    let (http_client, captured_request) = capture_request(Some(response));
   44     44   
    let client = Client::from_conf(stub_config(http_client.clone()));
   45     45   
    let instance_type = InstanceType::from("g5.48xlarge");
   46     46   
    let mut paginator = client
   47     47   
        .describe_spot_price_history()
   48     48   
        .instance_types(instance_type)
   49     49   
        .product_descriptions("Linux/UNIX")
   50     50   
        .availability_zone("eu-north-1a")
   51     51   
        .into_paginator()
   52     52   
        .items()
   53     53   
        .send();
   54     54   
    let first_item = paginator.try_next().await.expect("success");
   55     55   
    assert_eq!(first_item, None);
   56     56   
    let req = captured_request.expect_request();
   57     57   
    let actual_body = std::str::from_utf8(req.body().bytes().unwrap()).unwrap();
   58     58   
    let expected_body = "Action=DescribeSpotPriceHistory&Version=2016-11-15&AvailabilityZone=eu-north-1a&InstanceType.1=g5.48xlarge&ProductDescription.1=Linux%2FUNIX";
   59     59   
    validate_query_string(expected_body, actual_body);
   60     60   
}
   61     61   
   62     62   
/// See https://github.com/awslabs/aws-sdk-rust/issues/405
   63     63   
///
   64     64   
/// EC2 can also reply with the token truly unset which will be interpreted as `None`
   65     65   
#[tokio::test]
   66     66   
async fn paginators_handle_unset_tokens() {
   67     67   
    let response = r#"<?xml version="1.0" encoding="UTF-8"?>
   68     68   
        <DescribeSpotPriceHistoryResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
   69     69   
            <requestId>edf3e86c-4baf-47c1-9228-9a5ea09542e8</requestId>
   70     70   
            <spotPriceHistorySet/>
   71     71   
        </DescribeSpotPriceHistoryResponse>"#;
   72         -
    let response = http::Response::builder()
          72  +
    let response = http_1x::Response::builder()
   73     73   
        .status(200)
   74     74   
        .body(SdkBody::from(response))
   75     75   
        .unwrap();
   76     76   
    let (http_client, captured_request) = capture_request(Some(response));
   77     77   
    let client = Client::from_conf(stub_config(http_client.clone()));
   78     78   
    let instance_type = InstanceType::from("g5.48xlarge");
   79     79   
    let mut paginator = client
   80     80   
        .describe_spot_price_history()
   81     81   
        .instance_types(instance_type)
   82     82   
        .product_descriptions("Linux/UNIX")

tmp-codegen-diff/aws-sdk/sdk/ec2/tests/waiters.rs

@@ -1,1 +43,42 @@
    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   
use aws_runtime::user_agent::test_util::assert_ua_contains_metric_values;
    7      7   
use aws_sdk_ec2::{client::Waiters, config::Region, error::DisplayErrorContext, Client};
    8      8   
use aws_smithy_async::test_util::tick_advance_sleep::{
    9      9   
    tick_advance_time_and_sleep, TickAdvanceTime,
   10     10   
};
   11         -
use aws_smithy_runtime::{
   12         -
    client::http::test_util::dvr::ReplayingClient, test_util::capture_test_logs::show_test_logs,
   13         -
};
          11  +
use aws_smithy_http_client::test_util::dvr::ReplayingClient;
          12  +
use aws_smithy_runtime::test_util::capture_test_logs::show_test_logs;
   14     13   
use aws_smithy_runtime_api::client::waiters::error::WaiterError;
   15     14   
use aws_smithy_types::retry::RetryConfig;
   16     15   
use std::time::Duration;
   17     16   
   18     17   
async fn prerequisites() -> (Client, ReplayingClient, TickAdvanceTime) {
   19     18   
    let (time_source, sleep_impl) = tick_advance_time_and_sleep();
   20     19   
    let client =
   21     20   
        ReplayingClient::from_file("tests/instance-status-ok-waiter-success.json").unwrap();
   22     21   
    let config = aws_sdk_ec2::Config::builder()
   23     22   
        .with_test_defaults()

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

@@ -1,1 +0,92 @@
    9      9   
repository = "https://github.com/awslabs/aws-sdk-rust"
   10     10   
rust-version = "1.81.0"
   11     11   
readme = "README.md"
   12     12   
[package.metadata.smithy]
   13     13   
codegen-version = "ci"
   14     14   
[package.metadata.docs.rs]
   15     15   
all-features = true
   16     16   
targets = ["x86_64-unknown-linux-gnu"]
   17     17   
[dependencies.aws-credential-types]
   18     18   
path = "../aws-credential-types"
   19         -
version = "1.2.1"
          19  +
version = "1.2.2"
   20     20   
   21     21   
[dependencies.aws-runtime]
   22     22   
path = "../aws-runtime"
   23         -
version = "1.5.5"
          23  +
version = "1.5.6"
   24     24   
   25     25   
[dependencies.aws-smithy-async]
   26     26   
path = "../aws-smithy-async"
   27         -
version = "1.2.4"
          27  +
version = "1.2.5"
   28     28   
   29     29   
[dependencies.aws-smithy-http]
   30     30   
path = "../aws-smithy-http"
   31         -
version = "0.61.1"
          31  +
version = "0.62.0"
   32     32   
   33     33   
[dependencies.aws-smithy-json]
   34     34   
path = "../aws-smithy-json"
   35         -
version = "0.61.2"
          35  +
version = "0.61.3"
   36     36   
   37     37   
[dependencies.aws-smithy-runtime]
   38     38   
path = "../aws-smithy-runtime"
   39     39   
features = ["client"]
   40         -
version = "1.7.8"
          40  +
version = "1.8.0"
   41     41   
   42     42   
[dependencies.aws-smithy-runtime-api]
   43     43   
path = "../aws-smithy-runtime-api"
   44     44   
features = ["client", "http-02x"]
   45         -
version = "1.7.3"
          45  +
version = "1.7.4"
   46     46   
   47     47   
[dependencies.aws-smithy-types]
   48     48   
path = "../aws-smithy-types"
   49         -
version = "1.2.13"
          49  +
version = "1.3.0"
   50     50   
   51     51   
[dependencies.aws-types]
   52     52   
path = "../aws-types"
   53         -
version = "1.3.5"
          53  +
version = "1.3.6"
   54     54   
   55     55   
[dependencies.bytes]
   56     56   
version = "1.4.0"
   57     57   
   58     58   
[dependencies.fastrand]
   59     59   
version = "2.0.0"
   60     60   
   61     61   
[dependencies.http]
   62     62   
version = "0.2.9"
   63     63   
   64     64   
[dependencies.once_cell]
   65     65   
version = "1.16"
   66     66   
   67     67   
[dependencies.regex-lite]
   68     68   
version = "0.1.5"
   69     69   
   70     70   
[dependencies.tracing]
   71     71   
version = "0.1"
   72     72   
[dev-dependencies.aws-config]
   73     73   
path = "../aws-config"
   74         -
version = "1.5.18"
          74  +
version = "1.6.0"
   75     75   
   76     76   
[dev-dependencies.aws-credential-types]
   77     77   
path = "../aws-credential-types"
   78     78   
features = ["test-util"]
   79         -
version = "1.2.1"
          79  +
version = "1.2.2"
   80     80   
   81     81   
[dev-dependencies.tokio]
   82     82   
version = "1.23.1"
   83     83   
features = ["macros", "test-util", "rt-multi-thread"]
   84     84   
   85     85   
[features]
   86     86   
behavior-version-latest = []
   87     87   
rustls = ["aws-smithy-runtime/tls-rustls"]
          88  +
default-https-client = ["aws-smithy-runtime/default-https-client"]
   88     89   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-types/rt-tokio"]
   89     90   
test-util = ["aws-credential-types/test-util", "aws-smithy-runtime/test-util"]
   90     91   
gated-tests = []
   91         -
default = ["rustls", "rt-tokio"]
          92  +
default = ["rustls", "default-https-client", "rt-tokio"]

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

@@ -1,1 +0,156 @@
    9      9   
repository = "https://github.com/awslabs/aws-sdk-rust"
   10     10   
rust-version = "1.81.0"
   11     11   
readme = "README.md"
   12     12   
[package.metadata.smithy]
   13     13   
codegen-version = "ci"
   14     14   
[package.metadata.docs.rs]
   15     15   
all-features = true
   16     16   
targets = ["x86_64-unknown-linux-gnu"]
   17     17   
[dependencies.aws-credential-types]
   18     18   
path = "../aws-credential-types"
   19         -
version = "1.2.1"
          19  +
version = "1.2.2"
   20     20   
   21     21   
[dependencies.aws-runtime]
   22     22   
path = "../aws-runtime"
   23         -
version = "1.5.5"
          23  +
version = "1.5.6"
   24     24   
   25     25   
[dependencies.aws-sigv4]
   26     26   
path = "../aws-sigv4"
   27         -
version = "1.2.9"
          27  +
version = "1.3.0"
   28     28   
   29     29   
[dependencies.aws-smithy-async]
   30     30   
path = "../aws-smithy-async"
   31         -
version = "1.2.4"
          31  +
version = "1.2.5"
   32     32   
   33     33   
[dependencies.aws-smithy-http]
   34     34   
path = "../aws-smithy-http"
   35         -
version = "0.61.1"
          35  +
version = "0.62.0"
   36     36   
   37     37   
[dependencies.aws-smithy-json]
   38     38   
path = "../aws-smithy-json"
   39         -
version = "0.61.2"
          39  +
version = "0.61.3"
   40     40   
   41     41   
[dependencies.aws-smithy-runtime]
   42     42   
path = "../aws-smithy-runtime"
   43     43   
features = ["client"]
   44         -
version = "1.7.8"
          44  +
version = "1.8.0"
   45     45   
   46     46   
[dependencies.aws-smithy-runtime-api]
   47     47   
path = "../aws-smithy-runtime-api"
   48     48   
features = ["client", "http-02x"]
   49         -
version = "1.7.3"
          49  +
version = "1.7.4"
   50     50   
   51     51   
[dependencies.aws-smithy-types]
   52     52   
path = "../aws-smithy-types"
   53         -
version = "1.2.13"
          53  +
version = "1.3.0"
   54     54   
   55     55   
[dependencies.aws-types]
   56     56   
path = "../aws-types"
   57         -
version = "1.3.5"
          57  +
version = "1.3.6"
   58     58   
   59     59   
[dependencies.bytes]
   60     60   
version = "1.4.0"
   61     61   
   62     62   
[dependencies.hex]
   63     63   
version = "0.4.3"
   64     64   
   65     65   
[dependencies.http]
   66     66   
version = "0.2.9"
   67     67   
          68  +
[dependencies.http-1x]
          69  +
version = "1"
          70  +
package = "http"
          71  +
   68     72   
[dependencies.once_cell]
   69     73   
version = "1.16"
   70     74   
   71     75   
[dependencies.regex-lite]
   72     76   
version = "0.1.5"
   73     77   
   74     78   
[dependencies.ring]
   75     79   
version = "0.17.5"
   76     80   
   77     81   
[dependencies.tracing]
   78     82   
version = "0.1"
   79     83   
[dev-dependencies.aws-config]
   80     84   
path = "../aws-config"
   81         -
version = "1.5.18"
          85  +
version = "1.6.0"
   82     86   
   83     87   
[dev-dependencies.aws-credential-types]
   84     88   
path = "../aws-credential-types"
   85     89   
features = ["test-util"]
   86         -
version = "1.2.1"
          90  +
version = "1.2.2"
   87     91   
   88     92   
[dev-dependencies.aws-runtime]
   89     93   
path = "../aws-runtime"
   90     94   
features = ["test-util"]
   91         -
version = "1.5.5"
          95  +
version = "1.5.6"
   92     96   
   93     97   
[dev-dependencies.aws-smithy-async]
   94     98   
path = "../aws-smithy-async"
   95     99   
features = ["test-util"]
   96         -
version = "1.2.4"
         100  +
version = "1.2.5"
         101  +
         102  +
[dev-dependencies.aws-smithy-http-client]
         103  +
path = "../aws-smithy-http-client"
         104  +
features = ["test-util", "wire-mock"]
         105  +
version = "1.0.0"
   97    106   
   98    107   
[dev-dependencies.aws-smithy-protocol-test]
   99    108   
path = "../aws-smithy-protocol-test"
  100         -
version = "0.63.0"
         109  +
version = "0.63.1"
  101    110   
  102    111   
[dev-dependencies.aws-smithy-runtime]
  103    112   
path = "../aws-smithy-runtime"
  104         -
features = ["test-util", "wire-mock", "client"]
  105         -
version = "1.7.8"
         113  +
features = ["test-util"]
         114  +
version = "1.8.0"
  106    115   
  107    116   
[dev-dependencies.aws-smithy-runtime-api]
  108    117   
path = "../aws-smithy-runtime-api"
  109    118   
features = ["test-util"]
  110         -
version = "1.7.3"
         119  +
version = "1.7.4"
  111    120   
  112    121   
[dev-dependencies.aws-smithy-types]
  113    122   
path = "../aws-smithy-types"
  114    123   
features = ["test-util"]
  115         -
version = "1.2.13"
         124  +
version = "1.3.0"
  116    125   
  117    126   
[dev-dependencies.futures-util]
  118    127   
version = "0.3.25"
  119    128   
features = ["alloc"]
  120    129   
default-features = false
  121    130   
  122    131   
[dev-dependencies.pretty_assertions]
  123    132   
version = "1.3.0"
  124    133   
  125    134   
[dev-dependencies.serde_json]
  126    135   
version = "1.0.0"
  127    136   
  128    137   
[dev-dependencies.tokio]
  129    138   
version = "1.23.1"
  130    139   
features = ["macros", "test-util", "rt-multi-thread"]
  131    140   
  132    141   
[dev-dependencies.tracing-subscriber]
  133    142   
version = "0.3.16"
  134    143   
features = ["env-filter", "json"]
  135    144   
  136    145   
[dev-dependencies.tracing-test]
  137    146   
version = "0.2.5"
  138    147   
features = ["no-env-filter"]
  139    148   
  140    149   
[features]
  141    150   
behavior-version-latest = []
  142    151   
rustls = ["aws-smithy-runtime/tls-rustls"]
         152  +
default-https-client = ["aws-smithy-runtime/default-https-client"]
  143    153   
test-util = ["aws-credential-types/test-util", "aws-smithy-runtime/test-util"]
  144    154   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-types/rt-tokio"]
  145    155   
gated-tests = []
  146         -
default = ["rustls", "rt-tokio"]
         156  +
default = ["rustls", "default-https-client", "rt-tokio"]

tmp-codegen-diff/aws-sdk/sdk/glacier/src/operation/upload_archive.rs

@@ -250,250 +420,420 @@
  270    270   
  271    271   
#[allow(unreachable_code, unused_variables)]
  272    272   
#[cfg(test)]
  273    273   
mod upload_archive_test {
  274    274   
  275    275   
    /// Glacier requires that a version header be set on all requests.
  276    276   
    /// Test ID: GlacierVersionHeader
  277    277   
    #[::tokio::test]
  278    278   
    #[::tracing_test::traced_test]
  279    279   
    async fn glacier_version_header_request() {
  280         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         280  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  281    281   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  282    282   
        let config_builder = config_builder.region(::aws_types::region::Region::new("us-east-1"));
  283    283   
        let mut config_builder = config_builder;
  284    284   
        config_builder.set_region(Some(crate::config::Region::new("us-east-1")));
  285    285   
  286    286   
        let config = config_builder.http_client(http_client).build();
  287    287   
        let client = crate::Client::from_conf(config);
  288    288   
        let result = client
  289    289   
            .upload_archive()
  290    290   
            .set_account_id(::std::option::Option::Some("foo".to_owned()))
  291    291   
            .set_vault_name(::std::option::Option::Some("bar".to_owned()))
  292    292   
            .send()
  293    293   
            .await;
  294    294   
        let _ = dbg!(result);
  295    295   
        let http_request = request_receiver.expect_request();
  296    296   
        let expected_headers = [("X-Amz-Glacier-Version", "2012-06-01")];
  297    297   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  298    298   
        let body = http_request.body().bytes().expect("body should be strict");
  299    299   
        // No body.
  300    300   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
  301    301   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  302    302   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  303    303   
        ::pretty_assertions::assert_eq!(uri.path(), "/foo/vaults/bar/archives", "path was incorrect");
  304    304   
    }
  305    305   
  306    306   
    /// Glacier requires checksum headers that are cumbersome to provide.
  307    307   
    /// Test ID: GlacierChecksums
  308    308   
    #[::tokio::test]
  309    309   
    #[::tracing_test::traced_test]
  310    310   
    async fn glacier_checksums_request() {
  311         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         311  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  312    312   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  313    313   
        let config_builder = config_builder.region(::aws_types::region::Region::new("us-east-1"));
  314    314   
        let mut config_builder = config_builder;
  315    315   
        config_builder.set_region(Some(crate::config::Region::new("us-east-1")));
  316    316   
  317    317   
        let config = config_builder.http_client(http_client).build();
  318    318   
        let client = crate::Client::from_conf(config);
  319    319   
        let result = client
  320    320   
            .upload_archive()
  321    321   
            .set_account_id(::std::option::Option::Some("foo".to_owned()))
  322    322   
            .set_vault_name(::std::option::Option::Some("bar".to_owned()))
  323    323   
            .set_body(::std::option::Option::Some(::aws_smithy_types::byte_stream::ByteStream::from_static(
  324    324   
                b"hello world",
  325    325   
            )))
  326    326   
            .send()
  327    327   
            .await;
  328    328   
        let _ = dbg!(result);
  329    329   
        let http_request = request_receiver.expect_request();
  330    330   
        let expected_headers = [
  331    331   
            ("X-Amz-Content-Sha256", "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"),
  332    332   
            ("X-Amz-Glacier-Version", "2012-06-01"),
  333    333   
            (
  334    334   
                "X-Amz-Sha256-Tree-Hash",
  335    335   
                "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
  336    336   
            ),
  337    337   
        ];
  338    338   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  339    339   
        let body = http_request.body().bytes().expect("body should be strict");
  340    340   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  341    341   
            body,
  342    342   
            "hello world",
  343    343   
            ::aws_smithy_protocol_test::MediaType::from("unknown"),
  344    344   
        ));
  345    345   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  346    346   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  347    347   
        ::pretty_assertions::assert_eq!(uri.path(), "/foo/vaults/bar/archives", "path was incorrect");
  348    348   
    }
  349    349   
  350    350   
    /// Glacier requires that the account id be set, but you can just use a
  351    351   
    /// hyphen (-) to indicate the current account. This should be default
  352    352   
    /// behavior if the customer provides a null or empty string.
  353    353   
    /// Test ID: GlacierAccountIdEmpty
  354    354   
    #[::tokio::test]
  355    355   
    #[::tracing_test::traced_test]
  356    356   
    async fn glacier_account_id_empty_request() {
  357         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         357  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  358    358   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  359    359   
        let config_builder = config_builder.region(::aws_types::region::Region::new("us-east-1"));
  360    360   
        let mut config_builder = config_builder;
  361    361   
        config_builder.set_region(Some(crate::config::Region::new("us-east-1")));
  362    362   
  363    363   
        let config = config_builder.http_client(http_client).build();
  364    364   
        let client = crate::Client::from_conf(config);
  365    365   
        let result = client
  366    366   
            .upload_archive()
  367    367   
            .set_account_id(::std::option::Option::Some("".to_owned()))
  368    368   
            .set_vault_name(::std::option::Option::Some("bar".to_owned()))
  369    369   
            .send()
  370    370   
            .await;
  371    371   
        let _ = dbg!(result);
  372    372   
        let http_request = request_receiver.expect_request();
  373    373   
        let expected_headers = [("X-Amz-Glacier-Version", "2012-06-01")];
  374    374   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  375    375   
        let body = http_request.body().bytes().expect("body should be strict");
  376    376   
        // No body.
  377    377   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
  378    378   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  379    379   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  380    380   
        ::pretty_assertions::assert_eq!(uri.path(), "/-/vaults/bar/archives", "path was incorrect");
  381    381   
    }
  382    382   
  383    383   
    /// Glacier requires that the account id be set, but you can just use a
  384    384   
    /// hyphen (-) to indicate the current account. This should be default
  385    385   
    /// behavior if the customer provides a null or empty string.
  386    386   
    /// Test ID: GlacierAccountIdUnset
  387    387   
    #[::tokio::test]
  388    388   
    #[::tracing_test::traced_test]
  389    389   
    async fn glacier_account_id_unset_request() {
  390         -
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
         390  +
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  391    391   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  392    392   
        let config_builder = config_builder.region(::aws_types::region::Region::new("us-east-1"));
  393    393   
        let mut config_builder = config_builder;
  394    394   
        config_builder.set_region(Some(crate::config::Region::new("us-east-1")));
  395    395   
  396    396   
        let config = config_builder.http_client(http_client).build();
  397    397   
        let client = crate::Client::from_conf(config);
  398    398   
        let result = client
  399    399   
            .upload_archive()
  400    400   
            .set_vault_name(::std::option::Option::Some("bar".to_owned()))