Client Test

Client Test

rev. ce76c569583a3fdee1e9d39e082a8d5efd7b13b7 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/fractional_seconds.rs

@@ -193,193 +257,258 @@
  213    213   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  214    214   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  215    215   
        })?;
  216    216   
        cfg.interceptor_state()
  217    217   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  218    218   
        ::std::result::Result::Ok(())
  219    219   
    }
  220    220   
}
  221    221   
#[allow(unreachable_code, unused_variables)]
  222    222   
#[cfg(test)]
  223         -
mod fractional_seconds_request_test {
         223  +
mod fractional_seconds_test {
         224  +
  224    225   
    /// Ensures that clients can correctly parse datetime timestamps with fractional seconds
  225    226   
    /// Test ID: AwsJson11DateTimeWithFractionalSeconds
  226    227   
    #[::tokio::test]
  227         -
    #[allow(unused_mut)]
         228  +
    #[::tracing_test::traced_test]
  228    229   
    async fn aws_json11_date_time_with_fractional_seconds_response() {
  229    230   
        let expected_output = crate::operation::fractional_seconds::FractionalSecondsOutput::builder()
  230    231   
            .set_datetime(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  231    232   
                946845296, 0.123_f64,
  232    233   
            )))
  233    234   
            .build();
  234    235   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  235    236   
            ::http::response::Builder::new()
  236    237   
                .header("Content-Type", "application/x-amz-json-1.1")
  237    238   
                .status(200)

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/greeting_with_errors.rs

@@ -194,194 +706,707 @@
  214    214   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  215    215   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  216    216   
        })?;
  217    217   
        cfg.interceptor_state()
  218    218   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  219    219   
        ::std::result::Result::Ok(())
  220    220   
    }
  221    221   
}
  222    222   
#[allow(unreachable_code, unused_variables)]
  223    223   
#[cfg(test)]
  224         -
mod greeting_with_errors_request_test {
         224  +
mod greeting_with_errors_test {
         225  +
  225    226   
    /// Parses simple JSON errors
  226    227   
    /// Test ID: AwsJson11InvalidGreetingError
  227    228   
    #[::tokio::test]
  228         -
    #[allow(unused_mut)]
         229  +
    #[::tracing_test::traced_test]
  229    230   
    async fn aws_json11_invalid_greeting_error_response() {
  230    231   
        let expected_output = crate::types::error::InvalidGreeting::builder()
  231    232   
            .set_message(::std::option::Option::Some("Hi".to_owned()))
  232    233   
            .build();
  233    234   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  234    235   
            ::http::response::Builder::new()
  235    236   
                .header("Content-Type", "application/x-amz-json-1.1")
  236    237   
                .status(400)
  237    238   
                .body(::aws_smithy_types::body::SdkBody::from(
  238    239   
                    "{\n    \"__type\": \"InvalidGreeting\",\n    \"Message\": \"Hi\"\n}",
  239    240   
                ))
  240    241   
                .unwrap(),
  241    242   
        )
  242    243   
        .unwrap();
  243    244   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  244    245   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  245    246   
  246    247   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  247    248   
        let config = op.config().expect("the operation has config");
  248    249   
        let de = config
  249    250   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  250    251   
            .expect("the config must have a deserializer");
  251    252   
  252    253   
        let parsed = de.deserialize_streaming(&mut http_response);
  253    254   
        let parsed = parsed.unwrap_or_else(|| {
  254    255   
            let http_response =
  255    256   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  256    257   
            de.deserialize_nonstreaming(&http_response)
  257    258   
        });
  258    259   
        let parsed = parsed.expect_err("should be error response");
  259    260   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  260    261   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  261    262   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::InvalidGreeting(parsed) = parsed {
  262    263   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  263    264   
        } else {
  264    265   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  265    266   
        }
  266    267   
    }
  267    268   
    /// Parses a complex error with no message member
  268    269   
    /// Test ID: AwsJson11ComplexError
  269    270   
    #[::tokio::test]
  270         -
    #[allow(unused_mut)]
         271  +
    #[::tracing_test::traced_test]
  271    272   
    async fn aws_json11_complex_error_response() {
  272    273   
        let expected_output = crate::types::error::ComplexError::builder()
  273    274   
            .set_top_level(::std::option::Option::Some("Top level".to_owned()))
  274    275   
            .set_nested(::std::option::Option::Some(
  275    276   
                crate::types::ComplexNestedErrorData::builder()
  276    277   
                    .set_foo(::std::option::Option::Some("bar".to_owned()))
  277    278   
                    .build(),
  278    279   
            ))
  279    280   
            .build();
  280    281   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  281    282   
            ::http::response::Builder::new()
  282    283   
                .header("Content-Type", "application/x-amz-json-1.1")
  283    284   
                .status(400)
  284    285   
                .body(::aws_smithy_types::body::SdkBody::from(
  285    286   
                    "{\n    \"__type\": \"ComplexError\",\n    \"TopLevel\": \"Top level\",\n    \"Nested\": {\n        \"Foo\": \"bar\"\n    }\n}",
  286    287   
                ))
  287    288   
                .unwrap(),
  288    289   
        )
  289    290   
        .unwrap();
  290    291   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  291    292   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  292    293   
  293    294   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  294    295   
        let config = op.config().expect("the operation has config");
  295    296   
        let de = config
  296    297   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  297    298   
            .expect("the config must have a deserializer");
  298    299   
  299    300   
        let parsed = de.deserialize_streaming(&mut http_response);
  300    301   
        let parsed = parsed.unwrap_or_else(|| {
  301    302   
            let http_response =
  302    303   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  303    304   
            de.deserialize_nonstreaming(&http_response)
  304    305   
        });
  305    306   
        let parsed = parsed.expect_err("should be error response");
  306    307   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  307    308   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  308    309   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::ComplexError(parsed) = parsed {
  309    310   
            ::pretty_assertions::assert_eq!(parsed.top_level, expected_output.top_level, "Unexpected value for `top_level`");
  310    311   
            ::pretty_assertions::assert_eq!(parsed.nested, expected_output.nested, "Unexpected value for `nested`");
  311    312   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  312    313   
        } else {
  313    314   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  314    315   
        }
  315    316   
    }
  316    317   
    /// Test ID: AwsJson11EmptyComplexError
  317    318   
    #[::tokio::test]
  318         -
    #[allow(unused_mut)]
         319  +
    #[::tracing_test::traced_test]
  319    320   
    async fn aws_json11_empty_complex_error_response() {
  320    321   
        let expected_output = crate::types::error::ComplexError::builder().build();
  321    322   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  322    323   
            ::http::response::Builder::new()
  323    324   
                .header("Content-Type", "application/x-amz-json-1.1")
  324    325   
                .status(400)
  325    326   
                .body(::aws_smithy_types::body::SdkBody::from("{\n    \"__type\": \"ComplexError\"\n}"))
  326    327   
                .unwrap(),
  327    328   
        )
  328    329   
        .unwrap();
  329    330   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  330    331   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  331    332   
  332    333   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  333    334   
        let config = op.config().expect("the operation has config");
  334    335   
        let de = config
  335    336   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  336    337   
            .expect("the config must have a deserializer");
  337    338   
  338    339   
        let parsed = de.deserialize_streaming(&mut http_response);
  339    340   
        let parsed = parsed.unwrap_or_else(|| {
  340    341   
            let http_response =
  341    342   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  342    343   
            de.deserialize_nonstreaming(&http_response)
  343    344   
        });
  344    345   
        let parsed = parsed.expect_err("should be error response");
  345    346   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  346    347   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  347    348   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::ComplexError(parsed) = parsed {
  348    349   
            ::pretty_assertions::assert_eq!(parsed.top_level, expected_output.top_level, "Unexpected value for `top_level`");
  349    350   
            ::pretty_assertions::assert_eq!(parsed.nested, expected_output.nested, "Unexpected value for `nested`");
  350    351   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  351    352   
        } else {
  352    353   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  353    354   
        }
  354    355   
    }
  355    356   
    /// Serializes the X-Amzn-ErrorType header. For an example service, see Amazon EKS.
  356    357   
    /// Test ID: AwsJson11FooErrorUsingXAmznErrorType
  357    358   
    #[::tokio::test]
  358         -
    #[allow(unused_mut)]
         359  +
    #[::tracing_test::traced_test]
  359    360   
    async fn aws_json11_foo_error_using_x_amzn_error_type_response() {
  360    361   
        let expected_output = crate::types::error::FooError::builder().build();
  361    362   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  362    363   
            ::http::response::Builder::new()
  363    364   
                .header("X-Amzn-Errortype", "FooError")
  364    365   
                .status(500)
  365    366   
                .body(::aws_smithy_types::body::SdkBody::from(vec![]))
  366    367   
                .unwrap(),
  367    368   
        )
  368    369   
        .unwrap();
  369    370   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  370    371   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  371    372   
  372    373   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  373    374   
        let config = op.config().expect("the operation has config");
  374    375   
        let de = config
  375    376   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  376    377   
            .expect("the config must have a deserializer");
  377    378   
  378    379   
        let parsed = de.deserialize_streaming(&mut http_response);
  379    380   
        let parsed = parsed.unwrap_or_else(|| {
  380    381   
            let http_response =
  381    382   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  382    383   
            de.deserialize_nonstreaming(&http_response)
  383    384   
        });
  384    385   
        let parsed = parsed.expect_err("should be error response");
  385    386   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  386    387   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  387    388   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::FooError(parsed) = parsed {
  388    389   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  389    390   
        } else {
  390    391   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  391    392   
        }
  392    393   
    }
  393    394   
    /// Some X-Amzn-Errortype headers contain URLs. Clients need to split the URL on ':' and take only the first half of the string. For example, 'ValidationException:http://internal.amazon.com/coral/com.amazon.coral.validate/'
  394    395   
    /// is to be interpreted as 'ValidationException'.
  395    396   
    ///
  396    397   
    /// For an example service see Amazon Polly.
  397    398   
    /// Test ID: AwsJson11FooErrorUsingXAmznErrorTypeWithUri
  398    399   
    #[::tokio::test]
  399         -
    #[allow(unused_mut)]
         400  +
    #[::tracing_test::traced_test]
  400    401   
    async fn aws_json11_foo_error_using_x_amzn_error_type_with_uri_response() {
  401    402   
        let expected_output = crate::types::error::FooError::builder().build();
  402    403   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  403    404   
            ::http::response::Builder::new()
  404    405   
                .header("X-Amzn-Errortype", "FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/")
  405    406   
                .status(500)
  406    407   
                .body(::aws_smithy_types::body::SdkBody::from(vec![]))
  407    408   
                .unwrap(),
  408    409   
        )
  409    410   
        .unwrap();
  410    411   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  411    412   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  412    413   
  413    414   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  414    415   
        let config = op.config().expect("the operation has config");
  415    416   
        let de = config
  416    417   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  417    418   
            .expect("the config must have a deserializer");
  418    419   
  419    420   
        let parsed = de.deserialize_streaming(&mut http_response);
  420    421   
        let parsed = parsed.unwrap_or_else(|| {
  421    422   
            let http_response =
  422    423   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  423    424   
            de.deserialize_nonstreaming(&http_response)
  424    425   
        });
  425    426   
        let parsed = parsed.expect_err("should be error response");
  426    427   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  427    428   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  428    429   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::FooError(parsed) = parsed {
  429    430   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  430    431   
        } else {
  431    432   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  432    433   
        }
  433    434   
    }
  434    435   
    /// X-Amzn-Errortype might contain a URL and a namespace. Client should extract only the shape name. This is a pathalogical case that might not actually happen in any deployed AWS service.
  435    436   
    /// Test ID: AwsJson11FooErrorUsingXAmznErrorTypeWithUriAndNamespace
  436    437   
    #[::tokio::test]
  437         -
    #[allow(unused_mut)]
         438  +
    #[::tracing_test::traced_test]
  438    439   
    async fn aws_json11_foo_error_using_x_amzn_error_type_with_uri_and_namespace_response() {
  439    440   
        let expected_output = crate::types::error::FooError::builder().build();
  440    441   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  441    442   
            ::http::response::Builder::new()
  442    443   
                .header(
  443    444   
                    "X-Amzn-Errortype",
  444    445   
                    "aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/",
  445    446   
                )
  446    447   
                .status(500)
  447    448   
                .body(::aws_smithy_types::body::SdkBody::from(vec![]))
  448    449   
                .unwrap(),
  449    450   
        )
  450    451   
        .unwrap();
  451    452   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  452    453   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  453    454   
  454    455   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  455    456   
        let config = op.config().expect("the operation has config");
  456    457   
        let de = config
  457    458   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  458    459   
            .expect("the config must have a deserializer");
  459    460   
  460    461   
        let parsed = de.deserialize_streaming(&mut http_response);
  461    462   
        let parsed = parsed.unwrap_or_else(|| {
  462    463   
            let http_response =
  463    464   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  464    465   
            de.deserialize_nonstreaming(&http_response)
  465    466   
        });
  466    467   
        let parsed = parsed.expect_err("should be error response");
  467    468   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  468    469   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  469    470   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::FooError(parsed) = parsed {
  470    471   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  471    472   
        } else {
  472    473   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  473    474   
        }
  474    475   
    }
  475    476   
    /// This example uses the 'code' property in the output rather than X-Amzn-Errortype. Some services do this though it's preferable to send the X-Amzn-Errortype. Client implementations must first check for the X-Amzn-Errortype and then check for a top-level 'code' property.
  476    477   
    ///
  477    478   
    /// For example service see Amazon S3 Glacier.
  478    479   
    /// Test ID: AwsJson11FooErrorUsingCode
  479    480   
    #[::tokio::test]
  480         -
    #[allow(unused_mut)]
         481  +
    #[::tracing_test::traced_test]
  481    482   
    async fn aws_json11_foo_error_using_code_response() {
  482    483   
        let expected_output = crate::types::error::FooError::builder().build();
  483    484   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  484    485   
            ::http::response::Builder::new()
  485    486   
                .header("Content-Type", "application/x-amz-json-1.1")
  486    487   
                .status(500)
  487    488   
                .body(::aws_smithy_types::body::SdkBody::from("{\n    \"code\": \"FooError\"\n}"))
  488    489   
                .unwrap(),
  489    490   
        )
  490    491   
        .unwrap();
  491    492   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  492    493   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  493    494   
  494    495   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  495    496   
        let config = op.config().expect("the operation has config");
  496    497   
        let de = config
  497    498   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  498    499   
            .expect("the config must have a deserializer");
  499    500   
  500    501   
        let parsed = de.deserialize_streaming(&mut http_response);
  501    502   
        let parsed = parsed.unwrap_or_else(|| {
  502    503   
            let http_response =
  503    504   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  504    505   
            de.deserialize_nonstreaming(&http_response)
  505    506   
        });
  506    507   
        let parsed = parsed.expect_err("should be error response");
  507    508   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  508    509   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  509    510   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::FooError(parsed) = parsed {
  510    511   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  511    512   
        } else {
  512    513   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  513    514   
        }
  514    515   
    }
  515    516   
    /// Some services serialize errors using code, and it might contain a namespace. Clients should just take the last part of the string after '#'.
  516    517   
    /// Test ID: AwsJson11FooErrorUsingCodeAndNamespace
  517    518   
    #[::tokio::test]
  518         -
    #[allow(unused_mut)]
         519  +
    #[::tracing_test::traced_test]
  519    520   
    async fn aws_json11_foo_error_using_code_and_namespace_response() {
  520    521   
        let expected_output = crate::types::error::FooError::builder().build();
  521    522   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  522    523   
            ::http::response::Builder::new()
  523    524   
                .header("Content-Type", "application/x-amz-json-1.1")
  524    525   
                .status(500)
  525    526   
                .body(::aws_smithy_types::body::SdkBody::from(
  526    527   
                    "{\n    \"code\": \"aws.protocoltests.restjson#FooError\"\n}",
  527    528   
                ))
  528    529   
                .unwrap(),
  529    530   
        )
  530    531   
        .unwrap();
  531    532   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  532    533   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  533    534   
  534    535   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  535    536   
        let config = op.config().expect("the operation has config");
  536    537   
        let de = config
  537    538   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  538    539   
            .expect("the config must have a deserializer");
  539    540   
  540    541   
        let parsed = de.deserialize_streaming(&mut http_response);
  541    542   
        let parsed = parsed.unwrap_or_else(|| {
  542    543   
            let http_response =
  543    544   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  544    545   
            de.deserialize_nonstreaming(&http_response)
  545    546   
        });
  546    547   
        let parsed = parsed.expect_err("should be error response");
  547    548   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  548    549   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  549    550   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::FooError(parsed) = parsed {
  550    551   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  551    552   
        } else {
  552    553   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  553    554   
        }
  554    555   
    }
  555    556   
    /// Some services serialize errors using code, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before ":". This is a pathalogical case that might not occur in any deployed AWS service.
  556    557   
    /// Test ID: AwsJson11FooErrorUsingCodeUriAndNamespace
  557    558   
    #[::tokio::test]
  558         -
    #[allow(unused_mut)]
         559  +
    #[::tracing_test::traced_test]
  559    560   
    async fn aws_json11_foo_error_using_code_uri_and_namespace_response() {
  560    561   
        let expected_output = crate::types::error::FooError::builder().build();
  561    562   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  562    563   
            ::http::response::Builder::new()
  563    564   
                .header("Content-Type", "application/x-amz-json-1.1")
  564    565   
                .status(500)
  565    566   
                .body(::aws_smithy_types::body::SdkBody::from(
  566    567   
                    "{\n    \"code\": \"aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/\"\n}",
  567    568   
                ))
  568    569   
                .unwrap(),
  569    570   
        )
  570    571   
        .unwrap();
  571    572   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  572    573   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  573    574   
  574    575   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  575    576   
        let config = op.config().expect("the operation has config");
  576    577   
        let de = config
  577    578   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  578    579   
            .expect("the config must have a deserializer");
  579    580   
  580    581   
        let parsed = de.deserialize_streaming(&mut http_response);
  581    582   
        let parsed = parsed.unwrap_or_else(|| {
  582    583   
            let http_response =
  583    584   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  584    585   
            de.deserialize_nonstreaming(&http_response)
  585    586   
        });
  586    587   
        let parsed = parsed.expect_err("should be error response");
  587    588   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  588    589   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  589    590   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::FooError(parsed) = parsed {
  590    591   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  591    592   
        } else {
  592    593   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  593    594   
        }
  594    595   
    }
  595    596   
    /// Some services serialize errors using __type.
  596    597   
    /// Test ID: AwsJson11FooErrorWithDunderType
  597    598   
    #[::tokio::test]
  598         -
    #[allow(unused_mut)]
         599  +
    #[::tracing_test::traced_test]
  599    600   
    async fn aws_json11_foo_error_with_dunder_type_response() {
  600    601   
        let expected_output = crate::types::error::FooError::builder().build();
  601    602   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  602    603   
            ::http::response::Builder::new()
  603    604   
                .header("Content-Type", "application/x-amz-json-1.1")
  604    605   
                .status(500)
  605    606   
                .body(::aws_smithy_types::body::SdkBody::from("{\n    \"__type\": \"FooError\"\n}"))
  606    607   
                .unwrap(),
  607    608   
        )
  608    609   
        .unwrap();
  609    610   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  610    611   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  611    612   
  612    613   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  613    614   
        let config = op.config().expect("the operation has config");
  614    615   
        let de = config
  615    616   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  616    617   
            .expect("the config must have a deserializer");
  617    618   
  618    619   
        let parsed = de.deserialize_streaming(&mut http_response);
  619    620   
        let parsed = parsed.unwrap_or_else(|| {
  620    621   
            let http_response =
  621    622   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  622    623   
            de.deserialize_nonstreaming(&http_response)
  623    624   
        });
  624    625   
        let parsed = parsed.expect_err("should be error response");
  625    626   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  626    627   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  627    628   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::FooError(parsed) = parsed {
  628    629   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  629    630   
        } else {
  630    631   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  631    632   
        }
  632    633   
    }
  633    634   
    /// Some services serialize errors using __type, and it might contain a namespace. Clients should just take the last part of the string after '#'.
  634    635   
    /// Test ID: AwsJson11FooErrorWithDunderTypeAndNamespace
  635    636   
    #[::tokio::test]
  636         -
    #[allow(unused_mut)]
         637  +
    #[::tracing_test::traced_test]
  637    638   
    async fn aws_json11_foo_error_with_dunder_type_and_namespace_response() {
  638    639   
        let expected_output = crate::types::error::FooError::builder().build();
  639    640   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  640    641   
            ::http::response::Builder::new()
  641    642   
                .header("Content-Type", "application/x-amz-json-1.1")
  642    643   
                .status(500)
  643    644   
                .body(::aws_smithy_types::body::SdkBody::from(
  644    645   
                    "{\n    \"__type\": \"aws.protocoltests.restjson#FooError\"\n}",
  645    646   
                ))
  646    647   
                .unwrap(),
  647    648   
        )
  648    649   
        .unwrap();
  649    650   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  650    651   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  651    652   
  652    653   
        let op = crate::operation::greeting_with_errors::GreetingWithErrors::new();
  653    654   
        let config = op.config().expect("the operation has config");
  654    655   
        let de = config
  655    656   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  656    657   
            .expect("the config must have a deserializer");
  657    658   
  658    659   
        let parsed = de.deserialize_streaming(&mut http_response);
  659    660   
        let parsed = parsed.unwrap_or_else(|| {
  660    661   
            let http_response =
  661    662   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  662    663   
            de.deserialize_nonstreaming(&http_response)
  663    664   
        });
  664    665   
        let parsed = parsed.expect_err("should be error response");
  665    666   
        let parsed: &crate::operation::greeting_with_errors::GreetingWithErrorsError =
  666    667   
            parsed.as_operation_error().expect("operation error").downcast_ref().unwrap();
  667    668   
        if let crate::operation::greeting_with_errors::GreetingWithErrorsError::FooError(parsed) = parsed {
  668    669   
            ::pretty_assertions::assert_eq!(parsed.message, expected_output.message, "Unexpected value for `message`");
  669    670   
        } else {
  670    671   
            panic!("wrong variant: Got: {:?}. Expected: {:?}", parsed, expected_output);
  671    672   
        }
  672    673   
    }
  673    674   
    /// Some services serialize errors using __type, and it might contain a namespace. It also might contain a URI. Clients should just take the last part of the string after '#' and before ":". This is a pathalogical case that might not occur in any deployed AWS service.
  674    675   
    /// Test ID: AwsJson11FooErrorWithDunderTypeUriAndNamespace
  675    676   
    #[::tokio::test]
  676         -
    #[allow(unused_mut)]
         677  +
    #[::tracing_test::traced_test]
  677    678   
    async fn aws_json11_foo_error_with_dunder_type_uri_and_namespace_response() {
  678    679   
        let expected_output = crate::types::error::FooError::builder().build();
  679    680   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  680    681   
            ::http::response::Builder::new()
  681    682   
                .header("Content-Type", "application/x-amz-json-1.1")
  682    683   
                .status(500)
  683    684   
                .body(::aws_smithy_types::body::SdkBody::from(
  684    685   
                    "{\n    \"__type\": \"aws.protocoltests.restjson#FooError:http://internal.amazon.com/coral/com.amazon.coral.validate/\"\n}",
  685    686   
                ))
  686    687   
                .unwrap(),

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/host_with_path_operation.rs

@@ -201,201 +265,266 @@
  221    221   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  222    222   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  223    223   
        })?;
  224    224   
        cfg.interceptor_state()
  225    225   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  226    226   
        ::std::result::Result::Ok(())
  227    227   
    }
  228    228   
}
  229    229   
#[allow(unreachable_code, unused_variables)]
  230    230   
#[cfg(test)]
  231         -
mod host_with_path_operation_request_test {
         231  +
mod host_with_path_operation_test {
         232  +
  232    233   
    /// Custom endpoints supplied by users can have paths
  233    234   
    /// Test ID: AwsJson11HostWithPath
  234    235   
    #[::tokio::test]
  235         -
    #[allow(unused_mut)]
         236  +
    #[::tracing_test::traced_test]
  236    237   
    async fn aws_json11_host_with_path_request() {
  237    238   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  238    239   
        let config_builder = crate::config::Config::builder()
  239    240   
            .with_test_defaults()
  240    241   
            .endpoint_url("https://example.com/custom");
  241    242   
  242    243   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  243    244   
        let result = client.host_with_path_operation().send().await;
  244    245   
        let _ = dbg!(result);
  245    246   
        let http_request = request_receiver.expect_request();

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/json_enums.rs

@@ -190,190 +358,359 @@
  210    210   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  211    211   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  212    212   
        })?;
  213    213   
        cfg.interceptor_state()
  214    214   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  215    215   
        ::std::result::Result::Ok(())
  216    216   
    }
  217    217   
}
  218    218   
#[allow(unreachable_code, unused_variables)]
  219    219   
#[cfg(test)]
  220         -
mod json_enums_request_test {
         220  +
mod json_enums_test {
         221  +
  221    222   
    /// Serializes simple scalar properties
  222    223   
    /// Test ID: AwsJson11Enums
  223    224   
    #[::tokio::test]
  224         -
    #[allow(unused_mut)]
         225  +
    #[::tracing_test::traced_test]
  225    226   
    async fn aws_json11_enums_request() {
  226    227   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  227    228   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  228    229   
  229    230   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  230    231   
        let result = client
  231    232   
            .json_enums()
  232    233   
            .set_foo_enum1(::std::option::Option::Some(
  233    234   
                "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  234    235   
            ))
  235    236   
            .set_foo_enum2(::std::option::Option::Some(
  236    237   
                "0".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  237    238   
            ))
  238    239   
            .set_foo_enum3(::std::option::Option::Some(
  239    240   
                "1".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  240    241   
            ))
  241    242   
            .set_foo_enum_list(::std::option::Option::Some(vec![
  242    243   
                "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  243    244   
                "0".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  244    245   
            ]))
  245    246   
            .set_foo_enum_set(::std::option::Option::Some(vec![
  246    247   
                "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  247    248   
                "0".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  248    249   
            ]))
  249    250   
            .set_foo_enum_map(::std::option::Option::Some({
  250    251   
                let mut ret = ::std::collections::HashMap::new();
  251    252   
                ret.insert(
  252    253   
                    "hi".to_owned(),
  253    254   
                    "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  254    255   
                );
  255    256   
                ret.insert(
  256    257   
                    "zero".to_owned(),
  257    258   
                    "0".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  258    259   
                );
  259    260   
                ret
  260    261   
            }))
  261    262   
            .send()
  262    263   
            .await;
  263    264   
        let _ = dbg!(result);
  264    265   
        let http_request = request_receiver.expect_request();
  265    266   
        let expected_headers = [("Content-Type", "application/x-amz-json-1.1"), ("X-Amz-Target", "JsonProtocol.JsonEnums")];
  266    267   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  267    268   
        let body = http_request.body().bytes().expect("body should be strict");
  268    269   
        ::aws_smithy_protocol_test::assert_ok(
  269    270   
        ::aws_smithy_protocol_test::validate_body(body, "{\n    \"fooEnum1\": \"Foo\",\n    \"fooEnum2\": \"0\",\n    \"fooEnum3\": \"1\",\n    \"fooEnumList\": [\n        \"Foo\",\n        \"0\"\n    ],\n    \"fooEnumSet\": [\n        \"Foo\",\n        \"0\"\n    ],\n    \"fooEnumMap\": {\n        \"hi\": \"Foo\",\n        \"zero\": \"0\"\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
  270    271   
        );
  271    272   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  272    273   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  273    274   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  274    275   
    }
  275    276   
    /// Serializes simple scalar properties
  276    277   
    /// Test ID: AwsJson11EnumsBasic
  277    278   
    #[::tokio::test]
  278         -
    #[allow(unused_mut)]
         279  +
    #[::tracing_test::traced_test]
  279    280   
    async fn aws_json11_enums_basic_request() {
  280    281   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  281    282   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  282    283   
  283    284   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  284    285   
        let result = client
  285    286   
            .json_enums()
  286    287   
            .set_foo_enum1(::std::option::Option::Some(
  287    288   
                "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  288    289   
            ))
  289    290   
            .set_foo_enum2(::std::option::Option::Some(
  290    291   
                "0".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  291    292   
            ))
  292    293   
            .set_foo_enum3(::std::option::Option::Some(
  293    294   
                "1".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  294    295   
            ))
  295    296   
            .set_foo_enum_list(::std::option::Option::Some(vec![
  296    297   
                "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  297    298   
                "0".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  298    299   
            ]))
  299    300   
            .set_foo_enum_map(::std::option::Option::Some({
  300    301   
                let mut ret = ::std::collections::HashMap::new();
  301    302   
                ret.insert(
  302    303   
                    "hi".to_owned(),
  303    304   
                    "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  304    305   
                );
  305    306   
                ret.insert(
  306    307   
                    "zero".to_owned(),
  307    308   
                    "0".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  308    309   
                );
  309    310   
                ret
  310    311   
            }))
  311    312   
            .send()
  312    313   
            .await;
  313    314   
        let _ = dbg!(result);
  314    315   
        let http_request = request_receiver.expect_request();
  315    316   
        let expected_headers = [("Content-Type", "application/x-amz-json-1.1")];
  316    317   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  317    318   
        let body = http_request.body().bytes().expect("body should be strict");
  318    319   
        ::aws_smithy_protocol_test::assert_ok(
  319    320   
        ::aws_smithy_protocol_test::validate_body(body, "{\n    \"fooEnum1\": \"Foo\",\n    \"fooEnum2\": \"0\",\n    \"fooEnum3\": \"1\",\n    \"fooEnumList\": [\n        \"Foo\",\n        \"0\"\n    ],\n    \"fooEnumMap\": {\n        \"hi\": \"Foo\",\n        \"zero\": \"0\"\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
  320    321   
        );
  321    322   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  322    323   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  323    324   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  324    325   
    }
  325    326   
    /// Serializes simple scalar properties
  326    327   
    /// Test ID: AwsJson11Enums
  327    328   
    #[::tokio::test]
  328         -
    #[allow(unused_mut)]
         329  +
    #[::tracing_test::traced_test]
  329    330   
    async fn aws_json11_enums_response() {
  330    331   
        let expected_output = crate::operation::json_enums::JsonEnumsOutput::builder()
  331    332   
            .set_foo_enum1(::std::option::Option::Some(
  332    333   
                "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  333    334   
            ))
  334    335   
            .set_foo_enum2(::std::option::Option::Some(
  335    336   
                "0".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  336    337   
            ))
  337    338   
            .set_foo_enum3(::std::option::Option::Some(
  338    339   
                "1".parse::<crate::types::FooEnum>().expect("static value validated to member"),

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/json_unions.rs

@@ -193,193 +919,920 @@
  213    213   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  214    214   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  215    215   
        })?;
  216    216   
        cfg.interceptor_state()
  217    217   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  218    218   
        ::std::result::Result::Ok(())
  219    219   
    }
  220    220   
}
  221    221   
#[allow(unreachable_code, unused_variables)]
  222    222   
#[cfg(test)]
  223         -
mod json_unions_request_test {
         223  +
mod json_unions_test {
         224  +
  224    225   
    /// Serializes a string union value
  225    226   
    /// Test ID: AwsJson11SerializeStringUnionValue
  226    227   
    #[::tokio::test]
  227         -
    #[allow(unused_mut)]
         228  +
    #[::tracing_test::traced_test]
  228    229   
    async fn aws_json11_serialize_string_union_value_request() {
  229    230   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  230    231   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  231    232   
  232    233   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  233    234   
        let result = client
  234    235   
            .json_unions()
  235    236   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::StringValue("foo".to_owned())))
  236    237   
            .send()
  237    238   
            .await;
  238    239   
        let _ = dbg!(result);
  239    240   
        let http_request = request_receiver.expect_request();
  240    241   
        let expected_headers = [
  241    242   
            ("Content-Type", "application/x-amz-json-1.1"),
  242    243   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  243    244   
        ];
  244    245   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  245    246   
        let body = http_request.body().bytes().expect("body should be strict");
  246    247   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  247    248   
            body,
  248    249   
            "{\n    \"contents\": {\n        \"stringValue\": \"foo\"\n    }\n}",
  249    250   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  250    251   
        ));
  251    252   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  252    253   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  253    254   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  254    255   
    }
  255    256   
    /// Serializes a boolean union value
  256    257   
    /// Test ID: AwsJson11SerializeBooleanUnionValue
  257    258   
    #[::tokio::test]
  258         -
    #[allow(unused_mut)]
         259  +
    #[::tracing_test::traced_test]
  259    260   
    async fn aws_json11_serialize_boolean_union_value_request() {
  260    261   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  261    262   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  262    263   
  263    264   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  264    265   
        let result = client
  265    266   
            .json_unions()
  266    267   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::BooleanValue(true)))
  267    268   
            .send()
  268    269   
            .await;
  269    270   
        let _ = dbg!(result);
  270    271   
        let http_request = request_receiver.expect_request();
  271    272   
        let expected_headers = [
  272    273   
            ("Content-Type", "application/x-amz-json-1.1"),
  273    274   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  274    275   
        ];
  275    276   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  276    277   
        let body = http_request.body().bytes().expect("body should be strict");
  277    278   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  278    279   
            body,
  279    280   
            "{\n    \"contents\": {\n        \"booleanValue\": true\n    }\n}",
  280    281   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  281    282   
        ));
  282    283   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  283    284   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  284    285   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  285    286   
    }
  286    287   
    /// Serializes a number union value
  287    288   
    /// Test ID: AwsJson11SerializeNumberUnionValue
  288    289   
    #[::tokio::test]
  289         -
    #[allow(unused_mut)]
         290  +
    #[::tracing_test::traced_test]
  290    291   
    async fn aws_json11_serialize_number_union_value_request() {
  291    292   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  292    293   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  293    294   
  294    295   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  295    296   
        let result = client
  296    297   
            .json_unions()
  297    298   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::NumberValue(1)))
  298    299   
            .send()
  299    300   
            .await;
  300    301   
        let _ = dbg!(result);
  301    302   
        let http_request = request_receiver.expect_request();
  302    303   
        let expected_headers = [
  303    304   
            ("Content-Type", "application/x-amz-json-1.1"),
  304    305   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  305    306   
        ];
  306    307   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  307    308   
        let body = http_request.body().bytes().expect("body should be strict");
  308    309   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  309    310   
            body,
  310    311   
            "{\n    \"contents\": {\n        \"numberValue\": 1\n    }\n}",
  311    312   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  312    313   
        ));
  313    314   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  314    315   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  315    316   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  316    317   
    }
  317    318   
    /// Serializes a blob union value
  318    319   
    /// Test ID: AwsJson11SerializeBlobUnionValue
  319    320   
    #[::tokio::test]
  320         -
    #[allow(unused_mut)]
         321  +
    #[::tracing_test::traced_test]
  321    322   
    async fn aws_json11_serialize_blob_union_value_request() {
  322    323   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  323    324   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  324    325   
  325    326   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  326    327   
        let result = client
  327    328   
            .json_unions()
  328    329   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::BlobValue(
  329    330   
                ::aws_smithy_types::Blob::new("foo"),
  330    331   
            )))
  331    332   
            .send()
  332    333   
            .await;
  333    334   
        let _ = dbg!(result);
  334    335   
        let http_request = request_receiver.expect_request();
  335    336   
        let expected_headers = [
  336    337   
            ("Content-Type", "application/x-amz-json-1.1"),
  337    338   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  338    339   
        ];
  339    340   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  340    341   
        let body = http_request.body().bytes().expect("body should be strict");
  341    342   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  342    343   
            body,
  343    344   
            "{\n    \"contents\": {\n        \"blobValue\": \"Zm9v\"\n    }\n}",
  344    345   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  345    346   
        ));
  346    347   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  347    348   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  348    349   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  349    350   
    }
  350    351   
    /// Serializes a timestamp union value
  351    352   
    /// Test ID: AwsJson11SerializeTimestampUnionValue
  352    353   
    #[::tokio::test]
  353         -
    #[allow(unused_mut)]
         354  +
    #[::tracing_test::traced_test]
  354    355   
    async fn aws_json11_serialize_timestamp_union_value_request() {
  355    356   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  356    357   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  357    358   
  358    359   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  359    360   
        let result = client
  360    361   
            .json_unions()
  361    362   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::TimestampValue(
  362    363   
                ::aws_smithy_types::DateTime::from_fractional_secs(1398796238, 0_f64),
  363    364   
            )))
  364    365   
            .send()
  365    366   
            .await;
  366    367   
        let _ = dbg!(result);
  367    368   
        let http_request = request_receiver.expect_request();
  368    369   
        let expected_headers = [
  369    370   
            ("Content-Type", "application/x-amz-json-1.1"),
  370    371   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  371    372   
        ];
  372    373   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  373    374   
        let body = http_request.body().bytes().expect("body should be strict");
  374    375   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  375    376   
            body,
  376    377   
            "{\n    \"contents\": {\n        \"timestampValue\": 1398796238\n    }\n}",
  377    378   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  378    379   
        ));
  379    380   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  380    381   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  381    382   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  382    383   
    }
  383    384   
    /// Serializes an enum union value
  384    385   
    /// Test ID: AwsJson11SerializeEnumUnionValue
  385    386   
    #[::tokio::test]
  386         -
    #[allow(unused_mut)]
         387  +
    #[::tracing_test::traced_test]
  387    388   
    async fn aws_json11_serialize_enum_union_value_request() {
  388    389   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  389    390   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  390    391   
  391    392   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  392    393   
        let result = client
  393    394   
            .json_unions()
  394    395   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::EnumValue(
  395    396   
                "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  396    397   
            )))
  397    398   
            .send()
  398    399   
            .await;
  399    400   
        let _ = dbg!(result);
  400    401   
        let http_request = request_receiver.expect_request();
  401    402   
        let expected_headers = [
  402    403   
            ("Content-Type", "application/x-amz-json-1.1"),
  403    404   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  404    405   
        ];
  405    406   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  406    407   
        let body = http_request.body().bytes().expect("body should be strict");
  407    408   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  408    409   
            body,
  409    410   
            "{\n    \"contents\": {\n        \"enumValue\": \"Foo\"\n    }\n}",
  410    411   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  411    412   
        ));
  412    413   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  413    414   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  414    415   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  415    416   
    }
  416    417   
    /// Serializes a list union value
  417    418   
    /// Test ID: AwsJson11SerializeListUnionValue
  418    419   
    #[::tokio::test]
  419         -
    #[allow(unused_mut)]
         420  +
    #[::tracing_test::traced_test]
  420    421   
    async fn aws_json11_serialize_list_union_value_request() {
  421    422   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  422    423   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  423    424   
  424    425   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  425    426   
        let result = client
  426    427   
            .json_unions()
  427    428   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::ListValue(vec![
  428    429   
                "foo".to_owned(),
  429    430   
                "bar".to_owned(),
  430    431   
            ])))
  431    432   
            .send()
  432    433   
            .await;
  433    434   
        let _ = dbg!(result);
  434    435   
        let http_request = request_receiver.expect_request();
  435    436   
        let expected_headers = [
  436    437   
            ("Content-Type", "application/x-amz-json-1.1"),
  437    438   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  438    439   
        ];
  439    440   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  440    441   
        let body = http_request.body().bytes().expect("body should be strict");
  441    442   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  442    443   
            body,
  443    444   
            "{\n    \"contents\": {\n        \"listValue\": [\"foo\", \"bar\"]\n    }\n}",
  444    445   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  445    446   
        ));
  446    447   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  447    448   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  448    449   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  449    450   
    }
  450    451   
    /// Serializes a map union value
  451    452   
    /// Test ID: AwsJson11SerializeMapUnionValue
  452    453   
    #[::tokio::test]
  453         -
    #[allow(unused_mut)]
         454  +
    #[::tracing_test::traced_test]
  454    455   
    async fn aws_json11_serialize_map_union_value_request() {
  455    456   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  456    457   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  457    458   
  458    459   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  459    460   
        let result = client
  460    461   
            .json_unions()
  461    462   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::MapValue({
  462    463   
                let mut ret = ::std::collections::HashMap::new();
  463    464   
                ret.insert("foo".to_owned(), "bar".to_owned());
  464    465   
                ret.insert("spam".to_owned(), "eggs".to_owned());
  465    466   
                ret
  466    467   
            })))
  467    468   
            .send()
  468    469   
            .await;
  469    470   
        let _ = dbg!(result);
  470    471   
        let http_request = request_receiver.expect_request();
  471    472   
        let expected_headers = [
  472    473   
            ("Content-Type", "application/x-amz-json-1.1"),
  473    474   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  474    475   
        ];
  475    476   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  476    477   
        let body = http_request.body().bytes().expect("body should be strict");
  477    478   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  478    479   
            body,
  479    480   
            "{\n    \"contents\": {\n        \"mapValue\": {\n            \"foo\": \"bar\",\n            \"spam\": \"eggs\"\n        }\n    }\n}",
  480    481   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  481    482   
        ));
  482    483   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  483    484   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  484    485   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  485    486   
    }
  486    487   
    /// Serializes a structure union value
  487    488   
    /// Test ID: AwsJson11SerializeStructureUnionValue
  488    489   
    #[::tokio::test]
  489         -
    #[allow(unused_mut)]
         490  +
    #[::tracing_test::traced_test]
  490    491   
    async fn aws_json11_serialize_structure_union_value_request() {
  491    492   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  492    493   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  493    494   
  494    495   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  495    496   
        let result = client
  496    497   
            .json_unions()
  497    498   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::StructureValue(
  498    499   
                crate::types::GreetingStruct::builder()
  499    500   
                    .set_hi(::std::option::Option::Some("hello".to_owned()))
  500    501   
                    .build(),
  501    502   
            )))
  502    503   
            .send()
  503    504   
            .await;
  504    505   
        let _ = dbg!(result);
  505    506   
        let http_request = request_receiver.expect_request();
  506    507   
        let expected_headers = [
  507    508   
            ("Content-Type", "application/x-amz-json-1.1"),
  508    509   
            ("X-Amz-Target", "JsonProtocol.JsonUnions"),
  509    510   
        ];
  510    511   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  511    512   
        let body = http_request.body().bytes().expect("body should be strict");
  512    513   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  513    514   
            body,
  514    515   
            "{\n    \"contents\": {\n        \"structureValue\": {\n            \"hi\": \"hello\"\n        }\n    }\n}",
  515    516   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  516    517   
        ));
  517    518   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  518    519   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  519    520   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  520    521   
    }
  521    522   
    /// Deserializes a string union value
  522    523   
    /// Test ID: AwsJson11DeserializeStringUnionValue
  523    524   
    #[::tokio::test]
  524         -
    #[allow(unused_mut)]
         525  +
    #[::tracing_test::traced_test]
  525    526   
    async fn aws_json11_deserialize_string_union_value_response() {
  526    527   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  527    528   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::StringValue("foo".to_owned())))
  528    529   
            .build();
  529    530   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  530    531   
            ::http::response::Builder::new()
  531    532   
                .header("Content-Type", "application/x-amz-json-1.1")
  532    533   
                .status(200)
  533    534   
                .body(::aws_smithy_types::body::SdkBody::from(
  534    535   
                    "{\n    \"contents\": {\n        \"stringValue\": \"foo\"\n    }\n}",
  535    536   
                ))
  536    537   
                .unwrap(),
  537    538   
        )
  538    539   
        .unwrap();
  539    540   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  540    541   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  541    542   
  542    543   
        let op = crate::operation::json_unions::JsonUnions::new();
  543    544   
        let config = op.config().expect("the operation has config");
  544    545   
        let de = config
  545    546   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  546    547   
            .expect("the config must have a deserializer");
  547    548   
  548    549   
        let parsed = de.deserialize_streaming(&mut http_response);
  549    550   
        let parsed = parsed.unwrap_or_else(|| {
  550    551   
            let http_response =
  551    552   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  552    553   
            de.deserialize_nonstreaming(&http_response)
  553    554   
        });
  554    555   
        let parsed = parsed
  555    556   
            .expect("should be successful response")
  556    557   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  557    558   
            .unwrap();
  558    559   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  559    560   
    }
  560    561   
    /// Deserializes a boolean union value
  561    562   
    /// Test ID: AwsJson11DeserializeBooleanUnionValue
  562    563   
    #[::tokio::test]
  563         -
    #[allow(unused_mut)]
         564  +
    #[::tracing_test::traced_test]
  564    565   
    async fn aws_json11_deserialize_boolean_union_value_response() {
  565    566   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  566    567   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::BooleanValue(true)))
  567    568   
            .build();
  568    569   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  569    570   
            ::http::response::Builder::new()
  570    571   
                .header("Content-Type", "application/x-amz-json-1.1")
  571    572   
                .status(200)
  572    573   
                .body(::aws_smithy_types::body::SdkBody::from(
  573    574   
                    "{\n    \"contents\": {\n        \"booleanValue\": true\n    }\n}",
  574    575   
                ))
  575    576   
                .unwrap(),
  576    577   
        )
  577    578   
        .unwrap();
  578    579   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  579    580   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  580    581   
  581    582   
        let op = crate::operation::json_unions::JsonUnions::new();
  582    583   
        let config = op.config().expect("the operation has config");
  583    584   
        let de = config
  584    585   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  585    586   
            .expect("the config must have a deserializer");
  586    587   
  587    588   
        let parsed = de.deserialize_streaming(&mut http_response);
  588    589   
        let parsed = parsed.unwrap_or_else(|| {
  589    590   
            let http_response =
  590    591   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  591    592   
            de.deserialize_nonstreaming(&http_response)
  592    593   
        });
  593    594   
        let parsed = parsed
  594    595   
            .expect("should be successful response")
  595    596   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  596    597   
            .unwrap();
  597    598   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  598    599   
    }
  599    600   
    /// Deserializes a number union value
  600    601   
    /// Test ID: AwsJson11DeserializeNumberUnionValue
  601    602   
    #[::tokio::test]
  602         -
    #[allow(unused_mut)]
         603  +
    #[::tracing_test::traced_test]
  603    604   
    async fn aws_json11_deserialize_number_union_value_response() {
  604    605   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  605    606   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::NumberValue(1)))
  606    607   
            .build();
  607    608   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  608    609   
            ::http::response::Builder::new()
  609    610   
                .header("Content-Type", "application/x-amz-json-1.1")
  610    611   
                .status(200)
  611    612   
                .body(::aws_smithy_types::body::SdkBody::from(
  612    613   
                    "{\n    \"contents\": {\n        \"numberValue\": 1\n    }\n}",
  613    614   
                ))
  614    615   
                .unwrap(),
  615    616   
        )
  616    617   
        .unwrap();
  617    618   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  618    619   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  619    620   
  620    621   
        let op = crate::operation::json_unions::JsonUnions::new();
  621    622   
        let config = op.config().expect("the operation has config");
  622    623   
        let de = config
  623    624   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  624    625   
            .expect("the config must have a deserializer");
  625    626   
  626    627   
        let parsed = de.deserialize_streaming(&mut http_response);
  627    628   
        let parsed = parsed.unwrap_or_else(|| {
  628    629   
            let http_response =
  629    630   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  630    631   
            de.deserialize_nonstreaming(&http_response)
  631    632   
        });
  632    633   
        let parsed = parsed
  633    634   
            .expect("should be successful response")
  634    635   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  635    636   
            .unwrap();
  636    637   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  637    638   
    }
  638    639   
    /// Deserializes a blob union value
  639    640   
    /// Test ID: AwsJson11DeserializeBlobUnionValue
  640    641   
    #[::tokio::test]
  641         -
    #[allow(unused_mut)]
         642  +
    #[::tracing_test::traced_test]
  642    643   
    async fn aws_json11_deserialize_blob_union_value_response() {
  643    644   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  644    645   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::BlobValue(
  645    646   
                ::aws_smithy_types::Blob::new("foo"),
  646    647   
            )))
  647    648   
            .build();
  648    649   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  649    650   
            ::http::response::Builder::new()
  650    651   
                .header("Content-Type", "application/x-amz-json-1.1")
  651    652   
                .status(200)
  652    653   
                .body(::aws_smithy_types::body::SdkBody::from(
  653    654   
                    "{\n    \"contents\": {\n        \"blobValue\": \"Zm9v\"\n    }\n}",
  654    655   
                ))
  655    656   
                .unwrap(),
  656    657   
        )
  657    658   
        .unwrap();
  658    659   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  659    660   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  660    661   
  661    662   
        let op = crate::operation::json_unions::JsonUnions::new();
  662    663   
        let config = op.config().expect("the operation has config");
  663    664   
        let de = config
  664    665   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  665    666   
            .expect("the config must have a deserializer");
  666    667   
  667    668   
        let parsed = de.deserialize_streaming(&mut http_response);
  668    669   
        let parsed = parsed.unwrap_or_else(|| {
  669    670   
            let http_response =
  670    671   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  671    672   
            de.deserialize_nonstreaming(&http_response)
  672    673   
        });
  673    674   
        let parsed = parsed
  674    675   
            .expect("should be successful response")
  675    676   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  676    677   
            .unwrap();
  677    678   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  678    679   
    }
  679    680   
    /// Deserializes a timestamp union value
  680    681   
    /// Test ID: AwsJson11DeserializeTimestampUnionValue
  681    682   
    #[::tokio::test]
  682         -
    #[allow(unused_mut)]
         683  +
    #[::tracing_test::traced_test]
  683    684   
    async fn aws_json11_deserialize_timestamp_union_value_response() {
  684    685   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  685    686   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::TimestampValue(
  686    687   
                ::aws_smithy_types::DateTime::from_fractional_secs(1398796238, 0_f64),
  687    688   
            )))
  688    689   
            .build();
  689    690   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  690    691   
            ::http::response::Builder::new()
  691    692   
                .header("Content-Type", "application/x-amz-json-1.1")
  692    693   
                .status(200)
  693    694   
                .body(::aws_smithy_types::body::SdkBody::from(
  694    695   
                    "{\n    \"contents\": {\n        \"timestampValue\": 1398796238\n    }\n}",
  695    696   
                ))
  696    697   
                .unwrap(),
  697    698   
        )
  698    699   
        .unwrap();
  699    700   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  700    701   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  701    702   
  702    703   
        let op = crate::operation::json_unions::JsonUnions::new();
  703    704   
        let config = op.config().expect("the operation has config");
  704    705   
        let de = config
  705    706   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  706    707   
            .expect("the config must have a deserializer");
  707    708   
  708    709   
        let parsed = de.deserialize_streaming(&mut http_response);
  709    710   
        let parsed = parsed.unwrap_or_else(|| {
  710    711   
            let http_response =
  711    712   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  712    713   
            de.deserialize_nonstreaming(&http_response)
  713    714   
        });
  714    715   
        let parsed = parsed
  715    716   
            .expect("should be successful response")
  716    717   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  717    718   
            .unwrap();
  718    719   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  719    720   
    }
  720    721   
    /// Deserializes an enum union value
  721    722   
    /// Test ID: AwsJson11DeserializeEnumUnionValue
  722    723   
    #[::tokio::test]
  723         -
    #[allow(unused_mut)]
         724  +
    #[::tracing_test::traced_test]
  724    725   
    async fn aws_json11_deserialize_enum_union_value_response() {
  725    726   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  726    727   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::EnumValue(
  727    728   
                "Foo".parse::<crate::types::FooEnum>().expect("static value validated to member"),
  728    729   
            )))
  729    730   
            .build();
  730    731   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  731    732   
            ::http::response::Builder::new()
  732    733   
                .header("Content-Type", "application/x-amz-json-1.1")
  733    734   
                .status(200)
  734    735   
                .body(::aws_smithy_types::body::SdkBody::from(
  735    736   
                    "{\n    \"contents\": {\n        \"enumValue\": \"Foo\"\n    }\n}",
  736    737   
                ))
  737    738   
                .unwrap(),
  738    739   
        )
  739    740   
        .unwrap();
  740    741   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  741    742   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  742    743   
  743    744   
        let op = crate::operation::json_unions::JsonUnions::new();
  744    745   
        let config = op.config().expect("the operation has config");
  745    746   
        let de = config
  746    747   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  747    748   
            .expect("the config must have a deserializer");
  748    749   
  749    750   
        let parsed = de.deserialize_streaming(&mut http_response);
  750    751   
        let parsed = parsed.unwrap_or_else(|| {
  751    752   
            let http_response =
  752    753   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  753    754   
            de.deserialize_nonstreaming(&http_response)
  754    755   
        });
  755    756   
        let parsed = parsed
  756    757   
            .expect("should be successful response")
  757    758   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  758    759   
            .unwrap();
  759    760   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  760    761   
    }
  761    762   
    /// Deserializes a list union value
  762    763   
    /// Test ID: AwsJson11DeserializeListUnionValue
  763    764   
    #[::tokio::test]
  764         -
    #[allow(unused_mut)]
         765  +
    #[::tracing_test::traced_test]
  765    766   
    async fn aws_json11_deserialize_list_union_value_response() {
  766    767   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  767    768   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::ListValue(vec![
  768    769   
                "foo".to_owned(),
  769    770   
                "bar".to_owned(),
  770    771   
            ])))
  771    772   
            .build();
  772    773   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  773    774   
            ::http::response::Builder::new()
  774    775   
                .header("Content-Type", "application/x-amz-json-1.1")
  775    776   
                .status(200)
  776    777   
                .body(::aws_smithy_types::body::SdkBody::from(
  777    778   
                    "{\n    \"contents\": {\n        \"listValue\": [\"foo\", \"bar\"]\n    }\n}",
  778    779   
                ))
  779    780   
                .unwrap(),
  780    781   
        )
  781    782   
        .unwrap();
  782    783   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  783    784   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  784    785   
  785    786   
        let op = crate::operation::json_unions::JsonUnions::new();
  786    787   
        let config = op.config().expect("the operation has config");
  787    788   
        let de = config
  788    789   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  789    790   
            .expect("the config must have a deserializer");
  790    791   
  791    792   
        let parsed = de.deserialize_streaming(&mut http_response);
  792    793   
        let parsed = parsed.unwrap_or_else(|| {
  793    794   
            let http_response =
  794    795   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  795    796   
            de.deserialize_nonstreaming(&http_response)
  796    797   
        });
  797    798   
        let parsed = parsed
  798    799   
            .expect("should be successful response")
  799    800   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  800    801   
            .unwrap();
  801    802   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  802    803   
    }
  803    804   
    /// Deserializes a map union value
  804    805   
    /// Test ID: AwsJson11DeserializeMapUnionValue
  805    806   
    #[::tokio::test]
  806         -
    #[allow(unused_mut)]
         807  +
    #[::tracing_test::traced_test]
  807    808   
    async fn aws_json11_deserialize_map_union_value_response() {
  808    809   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  809    810   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::MapValue({
  810    811   
                let mut ret = ::std::collections::HashMap::new();
  811    812   
                ret.insert("foo".to_owned(), "bar".to_owned());
  812    813   
                ret.insert("spam".to_owned(), "eggs".to_owned());
  813    814   
                ret
  814    815   
            })))
  815    816   
            .build();
  816    817   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(::http::response::Builder::new()
  817    818   
        .header("Content-Type", "application/x-amz-json-1.1")
  818    819   
        .status(200)
  819    820   
                    .body(::aws_smithy_types::body::SdkBody::from("{\n    \"contents\": {\n        \"mapValue\": {\n            \"foo\": \"bar\",\n            \"spam\": \"eggs\"\n        }\n    }\n}"))
  820    821   
                    .unwrap()
  821    822   
                    ).unwrap();
  822    823   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  823    824   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  824    825   
  825    826   
        let op = crate::operation::json_unions::JsonUnions::new();
  826    827   
        let config = op.config().expect("the operation has config");
  827    828   
        let de = config
  828    829   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  829    830   
            .expect("the config must have a deserializer");
  830    831   
  831    832   
        let parsed = de.deserialize_streaming(&mut http_response);
  832    833   
        let parsed = parsed.unwrap_or_else(|| {
  833    834   
            let http_response =
  834    835   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  835    836   
            de.deserialize_nonstreaming(&http_response)
  836    837   
        });
  837    838   
        let parsed = parsed
  838    839   
            .expect("should be successful response")
  839    840   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  840    841   
            .unwrap();
  841    842   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  842    843   
    }
  843    844   
    /// Deserializes a structure union value
  844    845   
    /// Test ID: AwsJson11DeserializeStructureUnionValue
  845    846   
    #[::tokio::test]
  846         -
    #[allow(unused_mut)]
         847  +
    #[::tracing_test::traced_test]
  847    848   
    async fn aws_json11_deserialize_structure_union_value_response() {
  848    849   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  849    850   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::StructureValue(
  850    851   
                crate::types::GreetingStruct::builder()
  851    852   
                    .set_hi(::std::option::Option::Some("hello".to_owned()))
  852    853   
                    .build(),
  853    854   
            )))
  854    855   
            .build();
  855    856   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  856    857   
            ::http::response::Builder::new()
  857    858   
                .header("Content-Type", "application/x-amz-json-1.1")
  858    859   
                .status(200)
  859    860   
                .body(::aws_smithy_types::body::SdkBody::from(
  860    861   
                    "{\n    \"contents\": {\n        \"structureValue\": {\n            \"hi\": \"hello\"\n        }\n    }\n}",
  861    862   
                ))
  862    863   
                .unwrap(),
  863    864   
        )
  864    865   
        .unwrap();
  865    866   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  866    867   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  867    868   
  868    869   
        let op = crate::operation::json_unions::JsonUnions::new();
  869    870   
        let config = op.config().expect("the operation has config");
  870    871   
        let de = config
  871    872   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  872    873   
            .expect("the config must have a deserializer");
  873    874   
  874    875   
        let parsed = de.deserialize_streaming(&mut http_response);
  875    876   
        let parsed = parsed.unwrap_or_else(|| {
  876    877   
            let http_response =
  877    878   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  878    879   
            de.deserialize_nonstreaming(&http_response)
  879    880   
        });
  880    881   
        let parsed = parsed
  881    882   
            .expect("should be successful response")
  882    883   
            .downcast::<crate::operation::json_unions::JsonUnionsOutput>()
  883    884   
            .unwrap();
  884    885   
        ::pretty_assertions::assert_eq!(parsed.contents, expected_output.contents, "Unexpected value for `contents`");
  885    886   
    }
  886    887   
    /// Ignores an unrecognized __type property
  887    888   
    /// Test ID: AwsJson11DeserializeIgnoreType
  888    889   
    #[::tokio::test]
  889         -
    #[allow(unused_mut)]
         890  +
    #[::tracing_test::traced_test]
  890    891   
    async fn aws_json11_deserialize_ignore_type_response() {
  891    892   
        let expected_output = crate::operation::json_unions::JsonUnionsOutput::builder()
  892    893   
            .set_contents(::std::option::Option::Some(crate::types::MyUnion::StructureValue(
  893    894   
                crate::types::GreetingStruct::builder()
  894    895   
                    .set_hi(::std::option::Option::Some("hello".to_owned()))
  895    896   
                    .build(),
  896    897   
            )))
  897    898   
            .build();
  898    899   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(::http::response::Builder::new()
  899    900   
        .header("Content-Type", "application/x-amz-json-1.1")

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/kitchen_sink_operation.rs

@@ -198,198 +1309,1310 @@
  218    218   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  219    219   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  220    220   
        })?;
  221    221   
        cfg.interceptor_state()
  222    222   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  223    223   
        ::std::result::Result::Ok(())
  224    224   
    }
  225    225   
}
  226    226   
#[allow(unreachable_code, unused_variables)]
  227    227   
#[cfg(test)]
  228         -
mod kitchen_sink_operation_request_test {
         228  +
mod kitchen_sink_operation_test {
  229    229   
    use ::aws_smithy_protocol_test::FloatEquals;
         230  +
  230    231   
    /// Serializes string shapes
  231    232   
    /// Test ID: serializes_string_shapes
  232    233   
    #[::tokio::test]
  233         -
    #[allow(unused_mut)]
         234  +
    #[::tracing_test::traced_test]
  234    235   
    async fn serializes_string_shapes_request() {
  235    236   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  236    237   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  237    238   
  238    239   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  239    240   
        let result = client
  240    241   
            .kitchen_sink_operation()
  241    242   
            .set_string(::std::option::Option::Some("abc xyz".to_owned()))
  242    243   
            .send()
  243    244   
            .await;
  244    245   
        let _ = dbg!(result);
  245    246   
        let http_request = request_receiver.expect_request();
  246    247   
        let expected_headers = [
  247    248   
            ("Content-Type", "application/x-amz-json-1.1"),
  248    249   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  249    250   
        ];
  250    251   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  251    252   
        let required_headers = &["Content-Length"];
  252    253   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  253    254   
        let body = http_request.body().bytes().expect("body should be strict");
  254    255   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  255    256   
            body,
  256    257   
            "{\"String\":\"abc xyz\"}",
  257    258   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  258    259   
        ));
  259    260   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  260    261   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  261    262   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  262    263   
    }
  263    264   
    /// Serializes string shapes with jsonvalue trait
  264    265   
    /// Test ID: serializes_string_shapes_with_jsonvalue_trait
  265    266   
    #[::tokio::test]
  266         -
    #[allow(unused_mut)]
         267  +
    #[::tracing_test::traced_test]
  267    268   
    async fn serializes_string_shapes_with_jsonvalue_trait_request() {
  268    269   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  269    270   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  270    271   
  271    272   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  272    273   
        let result = client.kitchen_sink_operation()
  273    274   
        .set_json_value(
  274    275   
            ::std::option::Option::Some(
  275    276   
                "{\"string\":\"value\",\"number\":1234.5,\"boolTrue\":true,\"boolFalse\":false,\"array\":[1,2,3,4],\"object\":{\"key\":\"value\"},\"null\":null}".to_owned()
  276    277   
            )
  277    278   
        )
  278    279   
        .send().await;
  279    280   
        let _ = dbg!(result);
  280    281   
        let http_request = request_receiver.expect_request();
  281    282   
        let expected_headers = [
  282    283   
            ("Content-Type", "application/x-amz-json-1.1"),
  283    284   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  284    285   
        ];
  285    286   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  286    287   
        let required_headers = &["Content-Length"];
  287    288   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  288    289   
        let body = http_request.body().bytes().expect("body should be strict");
  289    290   
        ::aws_smithy_protocol_test::assert_ok(
  290    291   
        ::aws_smithy_protocol_test::validate_body(body, "{\"JsonValue\":\"{\\\"string\\\":\\\"value\\\",\\\"number\\\":1234.5,\\\"boolTrue\\\":true,\\\"boolFalse\\\":false,\\\"array\\\":[1,2,3,4],\\\"object\\\":{\\\"key\\\":\\\"value\\\"},\\\"null\\\":null}\"}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
  291    292   
        );
  292    293   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  293    294   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  294    295   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  295    296   
    }
  296    297   
    /// Serializes integer shapes
  297    298   
    /// Test ID: serializes_integer_shapes
  298    299   
    #[::tokio::test]
  299         -
    #[allow(unused_mut)]
         300  +
    #[::tracing_test::traced_test]
  300    301   
    async fn serializes_integer_shapes_request() {
  301    302   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  302    303   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  303    304   
  304    305   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  305    306   
        let result = client
  306    307   
            .kitchen_sink_operation()
  307    308   
            .set_integer(::std::option::Option::Some(1234))
  308    309   
            .send()
  309    310   
            .await;
  310    311   
        let _ = dbg!(result);
  311    312   
        let http_request = request_receiver.expect_request();
  312    313   
        let expected_headers = [
  313    314   
            ("Content-Type", "application/x-amz-json-1.1"),
  314    315   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  315    316   
        ];
  316    317   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  317    318   
        let required_headers = &["Content-Length"];
  318    319   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  319    320   
        let body = http_request.body().bytes().expect("body should be strict");
  320    321   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  321    322   
            body,
  322    323   
            "{\"Integer\":1234}",
  323    324   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  324    325   
        ));
  325    326   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  326    327   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  327    328   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  328    329   
    }
  329    330   
    /// Serializes long shapes
  330    331   
    /// Test ID: serializes_long_shapes
  331    332   
    #[::tokio::test]
  332         -
    #[allow(unused_mut)]
         333  +
    #[::tracing_test::traced_test]
  333    334   
    async fn serializes_long_shapes_request() {
  334    335   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  335    336   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  336    337   
  337    338   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  338    339   
        let result = client
  339    340   
            .kitchen_sink_operation()
  340    341   
            .set_long(::std::option::Option::Some(999999999999))
  341    342   
            .send()
  342    343   
            .await;
  343    344   
        let _ = dbg!(result);
  344    345   
        let http_request = request_receiver.expect_request();
  345    346   
        let expected_headers = [
  346    347   
            ("Content-Type", "application/x-amz-json-1.1"),
  347    348   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  348    349   
        ];
  349    350   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  350    351   
        let required_headers = &["Content-Length"];
  351    352   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  352    353   
        let body = http_request.body().bytes().expect("body should be strict");
  353    354   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  354    355   
            body,
  355    356   
            "{\"Long\":999999999999}",
  356    357   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  357    358   
        ));
  358    359   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  359    360   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  360    361   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  361    362   
    }
  362    363   
    /// Serializes float shapes
  363    364   
    /// Test ID: serializes_float_shapes
  364    365   
    #[::tokio::test]
  365         -
    #[allow(unused_mut)]
         366  +
    #[::tracing_test::traced_test]
  366    367   
    async fn serializes_float_shapes_request() {
  367    368   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  368    369   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  369    370   
  370    371   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  371    372   
        let result = client
  372    373   
            .kitchen_sink_operation()
  373    374   
            .set_float(::std::option::Option::Some(1234.5_f32))
  374    375   
            .send()
  375    376   
            .await;
  376    377   
        let _ = dbg!(result);
  377    378   
        let http_request = request_receiver.expect_request();
  378    379   
        let expected_headers = [
  379    380   
            ("Content-Type", "application/x-amz-json-1.1"),
  380    381   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  381    382   
        ];
  382    383   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  383    384   
        let required_headers = &["Content-Length"];
  384    385   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  385    386   
        let body = http_request.body().bytes().expect("body should be strict");
  386    387   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  387    388   
            body,
  388    389   
            "{\"Float\":1234.5}",
  389    390   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  390    391   
        ));
  391    392   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  392    393   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  393    394   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  394    395   
    }
  395    396   
    /// Serializes double shapes
  396    397   
    /// Test ID: serializes_double_shapes
  397    398   
    #[::tokio::test]
  398         -
    #[allow(unused_mut)]
         399  +
    #[::tracing_test::traced_test]
  399    400   
    async fn serializes_double_shapes_request() {
  400    401   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  401    402   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  402    403   
  403    404   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  404    405   
        let result = client
  405    406   
            .kitchen_sink_operation()
  406    407   
            .set_double(::std::option::Option::Some(1234.5_f64))
  407    408   
            .send()
  408    409   
            .await;
  409    410   
        let _ = dbg!(result);
  410    411   
        let http_request = request_receiver.expect_request();
  411    412   
        let expected_headers = [
  412    413   
            ("Content-Type", "application/x-amz-json-1.1"),
  413    414   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  414    415   
        ];
  415    416   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  416    417   
        let required_headers = &["Content-Length"];
  417    418   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  418    419   
        let body = http_request.body().bytes().expect("body should be strict");
  419    420   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  420    421   
            body,
  421    422   
            "{\"Double\":1234.5}",
  422    423   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  423    424   
        ));
  424    425   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  425    426   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  426    427   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  427    428   
    }
  428    429   
    /// Serializes blob shapes
  429    430   
    /// Test ID: serializes_blob_shapes
  430    431   
    #[::tokio::test]
  431         -
    #[allow(unused_mut)]
         432  +
    #[::tracing_test::traced_test]
  432    433   
    async fn serializes_blob_shapes_request() {
  433    434   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  434    435   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  435    436   
  436    437   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  437    438   
        let result = client
  438    439   
            .kitchen_sink_operation()
  439    440   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::Blob::new("binary-value")))
  440    441   
            .send()
  441    442   
            .await;
  442    443   
        let _ = dbg!(result);
  443    444   
        let http_request = request_receiver.expect_request();
  444    445   
        let expected_headers = [
  445    446   
            ("Content-Type", "application/x-amz-json-1.1"),
  446    447   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  447    448   
        ];
  448    449   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  449    450   
        let required_headers = &["Content-Length"];
  450    451   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  451    452   
        let body = http_request.body().bytes().expect("body should be strict");
  452    453   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  453    454   
            body,
  454    455   
            "{\"Blob\":\"YmluYXJ5LXZhbHVl\"}",
  455    456   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  456    457   
        ));
  457    458   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  458    459   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  459    460   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  460    461   
    }
  461    462   
    /// Serializes boolean shapes (true)
  462    463   
    /// Test ID: serializes_boolean_shapes_true
  463    464   
    #[::tokio::test]
  464         -
    #[allow(unused_mut)]
         465  +
    #[::tracing_test::traced_test]
  465    466   
    async fn serializes_boolean_shapes_true_request() {
  466    467   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  467    468   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  468    469   
  469    470   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  470    471   
        let result = client
  471    472   
            .kitchen_sink_operation()
  472    473   
            .set_boolean(::std::option::Option::Some(true))
  473    474   
            .send()
  474    475   
            .await;
  475    476   
        let _ = dbg!(result);
  476    477   
        let http_request = request_receiver.expect_request();
  477    478   
        let expected_headers = [
  478    479   
            ("Content-Type", "application/x-amz-json-1.1"),
  479    480   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  480    481   
        ];
  481    482   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  482    483   
        let required_headers = &["Content-Length"];
  483    484   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  484    485   
        let body = http_request.body().bytes().expect("body should be strict");
  485    486   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  486    487   
            body,
  487    488   
            "{\"Boolean\":true}",
  488    489   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  489    490   
        ));
  490    491   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  491    492   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  492    493   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  493    494   
    }
  494    495   
    /// Serializes boolean shapes (false)
  495    496   
    /// Test ID: serializes_boolean_shapes_false
  496    497   
    #[::tokio::test]
  497         -
    #[allow(unused_mut)]
         498  +
    #[::tracing_test::traced_test]
  498    499   
    async fn serializes_boolean_shapes_false_request() {
  499    500   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  500    501   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  501    502   
  502    503   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  503    504   
        let result = client
  504    505   
            .kitchen_sink_operation()
  505    506   
            .set_boolean(::std::option::Option::Some(false))
  506    507   
            .send()
  507    508   
            .await;
  508    509   
        let _ = dbg!(result);
  509    510   
        let http_request = request_receiver.expect_request();
  510    511   
        let expected_headers = [
  511    512   
            ("Content-Type", "application/x-amz-json-1.1"),
  512    513   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  513    514   
        ];
  514    515   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  515    516   
        let required_headers = &["Content-Length"];
  516    517   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  517    518   
        let body = http_request.body().bytes().expect("body should be strict");
  518    519   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  519    520   
            body,
  520    521   
            "{\"Boolean\":false}",
  521    522   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  522    523   
        ));
  523    524   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  524    525   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  525    526   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  526    527   
    }
  527    528   
    /// Serializes timestamp shapes
  528    529   
    /// Test ID: serializes_timestamp_shapes
  529    530   
    #[::tokio::test]
  530         -
    #[allow(unused_mut)]
         531  +
    #[::tracing_test::traced_test]
  531    532   
    async fn serializes_timestamp_shapes_request() {
  532    533   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  533    534   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  534    535   
  535    536   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  536    537   
        let result = client
  537    538   
            .kitchen_sink_operation()
  538    539   
            .set_timestamp(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  539    540   
                946845296, 0_f64,
  540    541   
            )))
  541    542   
            .send()
  542    543   
            .await;
  543    544   
        let _ = dbg!(result);
  544    545   
        let http_request = request_receiver.expect_request();
  545    546   
        let expected_headers = [
  546    547   
            ("Content-Type", "application/x-amz-json-1.1"),
  547    548   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  548    549   
        ];
  549    550   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  550    551   
        let required_headers = &["Content-Length"];
  551    552   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  552    553   
        let body = http_request.body().bytes().expect("body should be strict");
  553    554   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  554    555   
            body,
  555    556   
            "{\"Timestamp\":946845296}",
  556    557   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  557    558   
        ));
  558    559   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  559    560   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  560    561   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  561    562   
    }
  562    563   
    /// Serializes timestamp shapes with iso8601 timestampFormat
  563    564   
    /// Test ID: serializes_timestamp_shapes_with_iso8601_timestampformat
  564    565   
    #[::tokio::test]
  565         -
    #[allow(unused_mut)]
         566  +
    #[::tracing_test::traced_test]
  566    567   
    async fn serializes_timestamp_shapes_with_iso8601_timestampformat_request() {
  567    568   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  568    569   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  569    570   
  570    571   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  571    572   
        let result = client
  572    573   
            .kitchen_sink_operation()
  573    574   
            .set_iso8601_timestamp(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  574    575   
                946845296, 0_f64,
  575    576   
            )))
  576    577   
            .send()
  577    578   
            .await;
  578    579   
        let _ = dbg!(result);
  579    580   
        let http_request = request_receiver.expect_request();
  580    581   
        let expected_headers = [
  581    582   
            ("Content-Type", "application/x-amz-json-1.1"),
  582    583   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  583    584   
        ];
  584    585   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  585    586   
        let required_headers = &["Content-Length"];
  586    587   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  587    588   
        let body = http_request.body().bytes().expect("body should be strict");
  588    589   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  589    590   
            body,
  590    591   
            "{\"Iso8601Timestamp\":\"2000-01-02T20:34:56Z\"}",
  591    592   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  592    593   
        ));
  593    594   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  594    595   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  595    596   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  596    597   
    }
  597    598   
    /// Serializes timestamp shapes with httpdate timestampFormat
  598    599   
    /// Test ID: serializes_timestamp_shapes_with_httpdate_timestampformat
  599    600   
    #[::tokio::test]
  600         -
    #[allow(unused_mut)]
         601  +
    #[::tracing_test::traced_test]
  601    602   
    async fn serializes_timestamp_shapes_with_httpdate_timestampformat_request() {
  602    603   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  603    604   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  604    605   
  605    606   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  606    607   
        let result = client
  607    608   
            .kitchen_sink_operation()
  608    609   
            .set_httpdate_timestamp(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  609    610   
                946845296, 0_f64,
  610    611   
            )))
  611    612   
            .send()
  612    613   
            .await;
  613    614   
        let _ = dbg!(result);
  614    615   
        let http_request = request_receiver.expect_request();
  615    616   
        let expected_headers = [
  616    617   
            ("Content-Type", "application/x-amz-json-1.1"),
  617    618   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  618    619   
        ];
  619    620   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  620    621   
        let required_headers = &["Content-Length"];
  621    622   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  622    623   
        let body = http_request.body().bytes().expect("body should be strict");
  623    624   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  624    625   
            body,
  625    626   
            "{\"HttpdateTimestamp\":\"Sun, 02 Jan 2000 20:34:56 GMT\"}",
  626    627   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  627    628   
        ));
  628    629   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  629    630   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  630    631   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  631    632   
    }
  632    633   
    /// Serializes timestamp shapes with unixTimestamp timestampFormat
  633    634   
    /// Test ID: serializes_timestamp_shapes_with_unixtimestamp_timestampformat
  634    635   
    #[::tokio::test]
  635         -
    #[allow(unused_mut)]
         636  +
    #[::tracing_test::traced_test]
  636    637   
    async fn serializes_timestamp_shapes_with_unixtimestamp_timestampformat_request() {
  637    638   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  638    639   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  639    640   
  640    641   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  641    642   
        let result = client
  642    643   
            .kitchen_sink_operation()
  643    644   
            .set_unix_timestamp(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
  644    645   
                946845296, 0_f64,
  645    646   
            )))
  646    647   
            .send()
  647    648   
            .await;
  648    649   
        let _ = dbg!(result);
  649    650   
        let http_request = request_receiver.expect_request();
  650    651   
        let expected_headers = [
  651    652   
            ("Content-Type", "application/x-amz-json-1.1"),
  652    653   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  653    654   
        ];
  654    655   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  655    656   
        let required_headers = &["Content-Length"];
  656    657   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  657    658   
        let body = http_request.body().bytes().expect("body should be strict");
  658    659   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  659    660   
            body,
  660    661   
            "{\"UnixTimestamp\":946845296}",
  661    662   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  662    663   
        ));
  663    664   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  664    665   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  665    666   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  666    667   
    }
  667    668   
    /// Serializes list shapes
  668    669   
    /// Test ID: serializes_list_shapes
  669    670   
    #[::tokio::test]
  670         -
    #[allow(unused_mut)]
         671  +
    #[::tracing_test::traced_test]
  671    672   
    async fn serializes_list_shapes_request() {
  672    673   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  673    674   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  674    675   
  675    676   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  676    677   
        let result = client
  677    678   
            .kitchen_sink_operation()
  678    679   
            .set_list_of_strings(::std::option::Option::Some(vec!["abc".to_owned(), "mno".to_owned(), "xyz".to_owned()]))
  679    680   
            .send()
  680    681   
            .await;
  681    682   
        let _ = dbg!(result);
  682    683   
        let http_request = request_receiver.expect_request();
  683    684   
        let expected_headers = [
  684    685   
            ("Content-Type", "application/x-amz-json-1.1"),
  685    686   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  686    687   
        ];
  687    688   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  688    689   
        let required_headers = &["Content-Length"];
  689    690   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  690    691   
        let body = http_request.body().bytes().expect("body should be strict");
  691    692   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  692    693   
            body,
  693    694   
            "{\"ListOfStrings\":[\"abc\",\"mno\",\"xyz\"]}",
  694    695   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  695    696   
        ));
  696    697   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  697    698   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  698    699   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  699    700   
    }
  700    701   
    /// Serializes empty list shapes
  701    702   
    /// Test ID: serializes_empty_list_shapes
  702    703   
    #[::tokio::test]
  703         -
    #[allow(unused_mut)]
         704  +
    #[::tracing_test::traced_test]
  704    705   
    async fn serializes_empty_list_shapes_request() {
  705    706   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  706    707   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  707    708   
  708    709   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  709    710   
        let result = client
  710    711   
            .kitchen_sink_operation()
  711    712   
            .set_list_of_strings(::std::option::Option::Some(vec![]))
  712    713   
            .send()
  713    714   
            .await;
  714    715   
        let _ = dbg!(result);
  715    716   
        let http_request = request_receiver.expect_request();
  716    717   
        let expected_headers = [
  717    718   
            ("Content-Type", "application/x-amz-json-1.1"),
  718    719   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  719    720   
        ];
  720    721   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  721    722   
        let required_headers = &["Content-Length"];
  722    723   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  723    724   
        let body = http_request.body().bytes().expect("body should be strict");
  724    725   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  725    726   
            body,
  726    727   
            "{\"ListOfStrings\":[]}",
  727    728   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  728    729   
        ));
  729    730   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  730    731   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  731    732   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  732    733   
    }
  733    734   
    /// Serializes list of map shapes
  734    735   
    /// Test ID: serializes_list_of_map_shapes
  735    736   
    #[::tokio::test]
  736         -
    #[allow(unused_mut)]
         737  +
    #[::tracing_test::traced_test]
  737    738   
    async fn serializes_list_of_map_shapes_request() {
  738    739   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  739    740   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  740    741   
  741    742   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  742    743   
        let result = client
  743    744   
            .kitchen_sink_operation()
  744    745   
            .set_list_of_maps_of_strings(::std::option::Option::Some(vec![
  745    746   
                {
  746    747   
                    let mut ret = ::std::collections::HashMap::new();
  747    748   
                    ret.insert("foo".to_owned(), "bar".to_owned());
  748    749   
                    ret
  749    750   
                },
  750    751   
                {
  751    752   
                    let mut ret = ::std::collections::HashMap::new();
  752    753   
                    ret.insert("abc".to_owned(), "xyz".to_owned());
  753    754   
                    ret
  754    755   
                },
  755    756   
                {
  756    757   
                    let mut ret = ::std::collections::HashMap::new();
  757    758   
                    ret.insert("red".to_owned(), "blue".to_owned());
  758    759   
                    ret
  759    760   
                },
  760    761   
            ]))
  761    762   
            .send()
  762    763   
            .await;
  763    764   
        let _ = dbg!(result);
  764    765   
        let http_request = request_receiver.expect_request();
  765    766   
        let expected_headers = [
  766    767   
            ("Content-Type", "application/x-amz-json-1.1"),
  767    768   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  768    769   
        ];
  769    770   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  770    771   
        let required_headers = &["Content-Length"];
  771    772   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  772    773   
        let body = http_request.body().bytes().expect("body should be strict");
  773    774   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  774    775   
            body,
  775    776   
            "{\"ListOfMapsOfStrings\":[{\"foo\":\"bar\"},{\"abc\":\"xyz\"},{\"red\":\"blue\"}]}",
  776    777   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  777    778   
        ));
  778    779   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  779    780   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  780    781   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  781    782   
    }
  782    783   
    /// Serializes list of structure shapes
  783    784   
    /// Test ID: serializes_list_of_structure_shapes
  784    785   
    #[::tokio::test]
  785         -
    #[allow(unused_mut)]
         786  +
    #[::tracing_test::traced_test]
  786    787   
    async fn serializes_list_of_structure_shapes_request() {
  787    788   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  788    789   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  789    790   
  790    791   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  791    792   
        let result = client
  792    793   
            .kitchen_sink_operation()
  793    794   
            .set_list_of_structs(::std::option::Option::Some(vec![
  794    795   
                crate::types::SimpleStruct::builder()
  795    796   
                    .set_value(::std::option::Option::Some("abc".to_owned()))
  796    797   
                    .build(),
  797    798   
                crate::types::SimpleStruct::builder()
  798    799   
                    .set_value(::std::option::Option::Some("mno".to_owned()))
  799    800   
                    .build(),
  800    801   
                crate::types::SimpleStruct::builder()
  801    802   
                    .set_value(::std::option::Option::Some("xyz".to_owned()))
  802    803   
                    .build(),
  803    804   
            ]))
  804    805   
            .send()
  805    806   
            .await;
  806    807   
        let _ = dbg!(result);
  807    808   
        let http_request = request_receiver.expect_request();
  808    809   
        let expected_headers = [
  809    810   
            ("Content-Type", "application/x-amz-json-1.1"),
  810    811   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  811    812   
        ];
  812    813   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  813    814   
        let required_headers = &["Content-Length"];
  814    815   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  815    816   
        let body = http_request.body().bytes().expect("body should be strict");
  816    817   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  817    818   
            body,
  818    819   
            "{\"ListOfStructs\":[{\"Value\":\"abc\"},{\"Value\":\"mno\"},{\"Value\":\"xyz\"}]}",
  819    820   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  820    821   
        ));
  821    822   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  822    823   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  823    824   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  824    825   
    }
  825    826   
    /// Serializes list of recursive structure shapes
  826    827   
    /// Test ID: serializes_list_of_recursive_structure_shapes
  827    828   
    #[::tokio::test]
  828         -
    #[allow(unused_mut)]
         829  +
    #[::tracing_test::traced_test]
  829    830   
    async fn serializes_list_of_recursive_structure_shapes_request() {
  830    831   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  831    832   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  832    833   
  833    834   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  834    835   
        let result = client
  835    836   
            .kitchen_sink_operation()
  836    837   
            .set_recursive_list(::std::option::Option::Some(vec![crate::types::KitchenSink::builder()
  837    838   
                .set_recursive_list(::std::option::Option::Some(vec![crate::types::KitchenSink::builder()
  838    839   
                    .set_recursive_list(::std::option::Option::Some(vec![crate::types::KitchenSink::builder()
  839    840   
                        .set_integer(::std::option::Option::Some(123))
  840    841   
                        .build()]))
  841    842   
                    .build()]))
  842    843   
                .build()]))
  843    844   
            .send()
  844    845   
            .await;
  845    846   
        let _ = dbg!(result);
  846    847   
        let http_request = request_receiver.expect_request();
  847    848   
        let expected_headers = [
  848    849   
            ("Content-Type", "application/x-amz-json-1.1"),
  849    850   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  850    851   
        ];
  851    852   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  852    853   
        let required_headers = &["Content-Length"];
  853    854   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  854    855   
        let body = http_request.body().bytes().expect("body should be strict");
  855    856   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  856    857   
            body,
  857    858   
            "{\"RecursiveList\":[{\"RecursiveList\":[{\"RecursiveList\":[{\"Integer\":123}]}]}]}",
  858    859   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  859    860   
        ));
  860    861   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  861    862   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  862    863   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  863    864   
    }
  864    865   
    /// Serializes map shapes
  865    866   
    /// Test ID: serializes_map_shapes
  866    867   
    #[::tokio::test]
  867         -
    #[allow(unused_mut)]
         868  +
    #[::tracing_test::traced_test]
  868    869   
    async fn serializes_map_shapes_request() {
  869    870   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  870    871   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  871    872   
  872    873   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  873    874   
        let result = client
  874    875   
            .kitchen_sink_operation()
  875    876   
            .set_map_of_strings(::std::option::Option::Some({
  876    877   
                let mut ret = ::std::collections::HashMap::new();
  877    878   
                ret.insert("abc".to_owned(), "xyz".to_owned());
  878    879   
                ret.insert("mno".to_owned(), "hjk".to_owned());
  879    880   
                ret
  880    881   
            }))
  881    882   
            .send()
  882    883   
            .await;
  883    884   
        let _ = dbg!(result);
  884    885   
        let http_request = request_receiver.expect_request();
  885    886   
        let expected_headers = [
  886    887   
            ("Content-Type", "application/x-amz-json-1.1"),
  887    888   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  888    889   
        ];
  889    890   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  890    891   
        let required_headers = &["Content-Length"];
  891    892   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  892    893   
        let body = http_request.body().bytes().expect("body should be strict");
  893    894   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  894    895   
            body,
  895    896   
            "{\"MapOfStrings\":{\"abc\":\"xyz\",\"mno\":\"hjk\"}}",
  896    897   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  897    898   
        ));
  898    899   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  899    900   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  900    901   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  901    902   
    }
  902    903   
    /// Serializes empty map shapes
  903    904   
    /// Test ID: serializes_empty_map_shapes
  904    905   
    #[::tokio::test]
  905         -
    #[allow(unused_mut)]
         906  +
    #[::tracing_test::traced_test]
  906    907   
    async fn serializes_empty_map_shapes_request() {
  907    908   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  908    909   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  909    910   
  910    911   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  911    912   
        let result = client
  912    913   
            .kitchen_sink_operation()
  913    914   
            .set_map_of_strings(::std::option::Option::Some(::std::collections::HashMap::new()))
  914    915   
            .send()
  915    916   
            .await;
  916    917   
        let _ = dbg!(result);
  917    918   
        let http_request = request_receiver.expect_request();
  918    919   
        let expected_headers = [
  919    920   
            ("Content-Type", "application/x-amz-json-1.1"),
  920    921   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  921    922   
        ];
  922    923   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  923    924   
        let required_headers = &["Content-Length"];
  924    925   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  925    926   
        let body = http_request.body().bytes().expect("body should be strict");
  926    927   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  927    928   
            body,
  928    929   
            "{\"MapOfStrings\":{}}",
  929    930   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  930    931   
        ));
  931    932   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  932    933   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  933    934   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  934    935   
    }
  935    936   
    /// Serializes map of list shapes
  936    937   
    /// Test ID: serializes_map_of_list_shapes
  937    938   
    #[::tokio::test]
  938         -
    #[allow(unused_mut)]
         939  +
    #[::tracing_test::traced_test]
  939    940   
    async fn serializes_map_of_list_shapes_request() {
  940    941   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  941    942   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  942    943   
  943    944   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  944    945   
        let result = client
  945    946   
            .kitchen_sink_operation()
  946    947   
            .set_map_of_lists_of_strings(::std::option::Option::Some({
  947    948   
                let mut ret = ::std::collections::HashMap::new();
  948    949   
                ret.insert("abc".to_owned(), vec!["abc".to_owned(), "xyz".to_owned()]);
  949    950   
                ret.insert("mno".to_owned(), vec!["xyz".to_owned(), "abc".to_owned()]);
  950    951   
                ret
  951    952   
            }))
  952    953   
            .send()
  953    954   
            .await;
  954    955   
        let _ = dbg!(result);
  955    956   
        let http_request = request_receiver.expect_request();
  956    957   
        let expected_headers = [
  957    958   
            ("Content-Type", "application/x-amz-json-1.1"),
  958    959   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
  959    960   
        ];
  960    961   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  961    962   
        let required_headers = &["Content-Length"];
  962    963   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  963    964   
        let body = http_request.body().bytes().expect("body should be strict");
  964    965   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  965    966   
            body,
  966    967   
            "{\"MapOfListsOfStrings\":{\"abc\":[\"abc\",\"xyz\"],\"mno\":[\"xyz\",\"abc\"]}}",
  967    968   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  968    969   
        ));
  969    970   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  970    971   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  971    972   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  972    973   
    }
  973    974   
    /// Serializes map of structure shapes
  974    975   
    /// Test ID: serializes_map_of_structure_shapes
  975    976   
    #[::tokio::test]
  976         -
    #[allow(unused_mut)]
         977  +
    #[::tracing_test::traced_test]
  977    978   
    async fn serializes_map_of_structure_shapes_request() {
  978    979   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  979    980   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  980    981   
  981    982   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  982    983   
        let result = client
  983    984   
            .kitchen_sink_operation()
  984    985   
            .set_map_of_structs(::std::option::Option::Some({
  985    986   
                let mut ret = ::std::collections::HashMap::new();
  986    987   
                ret.insert(
  987    988   
                    "key1".to_owned(),
  988    989   
                    crate::types::SimpleStruct::builder()
  989    990   
                        .set_value(::std::option::Option::Some("value-1".to_owned()))
  990    991   
                        .build(),
  991    992   
                );
  992    993   
                ret.insert(
  993    994   
                    "key2".to_owned(),
  994    995   
                    crate::types::SimpleStruct::builder()
  995    996   
                        .set_value(::std::option::Option::Some("value-2".to_owned()))
  996    997   
                        .build(),
  997    998   
                );
  998    999   
                ret
  999   1000   
            }))
 1000   1001   
            .send()
 1001   1002   
            .await;
 1002   1003   
        let _ = dbg!(result);
 1003   1004   
        let http_request = request_receiver.expect_request();
 1004   1005   
        let expected_headers = [
 1005   1006   
            ("Content-Type", "application/x-amz-json-1.1"),
 1006   1007   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
 1007   1008   
        ];
 1008   1009   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
 1009   1010   
        let required_headers = &["Content-Length"];
 1010   1011   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
 1011   1012   
        let body = http_request.body().bytes().expect("body should be strict");
 1012   1013   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 1013   1014   
            body,
 1014   1015   
            "{\"MapOfStructs\":{\"key1\":{\"Value\":\"value-1\"},\"key2\":{\"Value\":\"value-2\"}}}",
 1015   1016   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 1016   1017   
        ));
 1017   1018   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
 1018   1019   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
 1019   1020   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
 1020   1021   
    }
 1021   1022   
    /// Serializes map of recursive structure shapes
 1022   1023   
    /// Test ID: serializes_map_of_recursive_structure_shapes
 1023   1024   
    #[::tokio::test]
 1024         -
    #[allow(unused_mut)]
        1025  +
    #[::tracing_test::traced_test]
 1025   1026   
    async fn serializes_map_of_recursive_structure_shapes_request() {
 1026   1027   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
 1027   1028   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
 1028   1029   
 1029   1030   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
 1030   1031   
        let result = client
 1031   1032   
            .kitchen_sink_operation()
 1032   1033   
            .set_recursive_map(::std::option::Option::Some({
 1033   1034   
                let mut ret = ::std::collections::HashMap::new();
 1034   1035   
                ret.insert(
 1035   1036   
                    "key1".to_owned(),
 1036   1037   
                    crate::types::KitchenSink::builder()
 1037   1038   
                        .set_recursive_map(::std::option::Option::Some({
 1038   1039   
                            let mut ret = ::std::collections::HashMap::new();
 1039   1040   
                            ret.insert(
 1040   1041   
                                "key2".to_owned(),
 1041   1042   
                                crate::types::KitchenSink::builder()
 1042   1043   
                                    .set_recursive_map(::std::option::Option::Some({
 1043   1044   
                                        let mut ret = ::std::collections::HashMap::new();
 1044   1045   
                                        ret.insert(
 1045   1046   
                                            "key3".to_owned(),
 1046   1047   
                                            crate::types::KitchenSink::builder()
 1047   1048   
                                                .set_boolean(::std::option::Option::Some(false))
 1048   1049   
                                                .build(),
 1049   1050   
                                        );
 1050   1051   
                                        ret
 1051   1052   
                                    }))
 1052   1053   
                                    .build(),
 1053   1054   
                            );
 1054   1055   
                            ret
 1055   1056   
                        }))
 1056   1057   
                        .build(),
 1057   1058   
                );
 1058   1059   
                ret
 1059   1060   
            }))
 1060   1061   
            .send()
 1061   1062   
            .await;
 1062   1063   
        let _ = dbg!(result);
 1063   1064   
        let http_request = request_receiver.expect_request();
 1064   1065   
        let expected_headers = [
 1065   1066   
            ("Content-Type", "application/x-amz-json-1.1"),
 1066   1067   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
 1067   1068   
        ];
 1068   1069   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
 1069   1070   
        let required_headers = &["Content-Length"];
 1070   1071   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
 1071   1072   
        let body = http_request.body().bytes().expect("body should be strict");
 1072   1073   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 1073   1074   
            body,
 1074   1075   
            "{\"RecursiveMap\":{\"key1\":{\"RecursiveMap\":{\"key2\":{\"RecursiveMap\":{\"key3\":{\"Boolean\":false}}}}}}}",
 1075   1076   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 1076   1077   
        ));
 1077   1078   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
 1078   1079   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
 1079   1080   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
 1080   1081   
    }
 1081   1082   
    /// Serializes structure shapes
 1082   1083   
    /// Test ID: serializes_structure_shapes
 1083   1084   
    #[::tokio::test]
 1084         -
    #[allow(unused_mut)]
        1085  +
    #[::tracing_test::traced_test]
 1085   1086   
    async fn serializes_structure_shapes_request() {
 1086   1087   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
 1087   1088   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
 1088   1089   
 1089   1090   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
 1090   1091   
        let result = client
 1091   1092   
            .kitchen_sink_operation()
 1092   1093   
            .set_simple_struct(::std::option::Option::Some(
 1093   1094   
                crate::types::SimpleStruct::builder()
 1094   1095   
                    .set_value(::std::option::Option::Some("abc".to_owned()))
 1095   1096   
                    .build(),
 1096   1097   
            ))
 1097   1098   
            .send()
 1098   1099   
            .await;
 1099   1100   
        let _ = dbg!(result);
 1100   1101   
        let http_request = request_receiver.expect_request();
 1101   1102   
        let expected_headers = [
 1102   1103   
            ("Content-Type", "application/x-amz-json-1.1"),
 1103   1104   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
 1104   1105   
        ];
 1105   1106   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
 1106   1107   
        let required_headers = &["Content-Length"];
 1107   1108   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
 1108   1109   
        let body = http_request.body().bytes().expect("body should be strict");
 1109   1110   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 1110   1111   
            body,
 1111   1112   
            "{\"SimpleStruct\":{\"Value\":\"abc\"}}",
 1112   1113   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 1113   1114   
        ));
 1114   1115   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
 1115   1116   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
 1116   1117   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
 1117   1118   
    }
 1118   1119   
    /// Serializes structure members with locationName traits
 1119   1120   
    /// Test ID: serializes_structure_members_with_locationname_traits
 1120   1121   
    #[::tokio::test]
 1121         -
    #[allow(unused_mut)]
        1122  +
    #[::tracing_test::traced_test]
 1122   1123   
    async fn serializes_structure_members_with_locationname_traits_request() {
 1123   1124   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
 1124   1125   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
 1125   1126   
 1126   1127   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
 1127   1128   
        let result = client
 1128   1129   
            .kitchen_sink_operation()
 1129   1130   
            .set_struct_with_json_name(::std::option::Option::Some(
 1130   1131   
                crate::types::StructWithJsonName::builder()
 1131   1132   
                    .set_value(::std::option::Option::Some("some-value".to_owned()))
 1132   1133   
                    .build(),
 1133   1134   
            ))
 1134   1135   
            .send()
 1135   1136   
            .await;
 1136   1137   
        let _ = dbg!(result);
 1137   1138   
        let http_request = request_receiver.expect_request();
 1138   1139   
        let expected_headers = [
 1139   1140   
            ("Content-Type", "application/x-amz-json-1.1"),
 1140   1141   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
 1141   1142   
        ];
 1142   1143   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
 1143   1144   
        let required_headers = &["Content-Length"];
 1144   1145   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
 1145   1146   
        let body = http_request.body().bytes().expect("body should be strict");
 1146   1147   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 1147   1148   
            body,
 1148   1149   
            "{\"StructWithJsonName\":{\"Value\":\"some-value\"}}",
 1149   1150   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 1150   1151   
        ));
 1151   1152   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
 1152   1153   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
 1153   1154   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
 1154   1155   
    }
 1155   1156   
    /// Serializes empty structure shapes
 1156   1157   
    /// Test ID: serializes_empty_structure_shapes
 1157   1158   
    #[::tokio::test]
 1158         -
    #[allow(unused_mut)]
        1159  +
    #[::tracing_test::traced_test]
 1159   1160   
    async fn serializes_empty_structure_shapes_request() {
 1160   1161   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
 1161   1162   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
 1162   1163   
 1163   1164   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
 1164   1165   
        let result = client
 1165   1166   
            .kitchen_sink_operation()
 1166   1167   
            .set_simple_struct(::std::option::Option::Some(crate::types::SimpleStruct::builder().build()))
 1167   1168   
            .send()
 1168   1169   
            .await;
 1169   1170   
        let _ = dbg!(result);
 1170   1171   
        let http_request = request_receiver.expect_request();
 1171   1172   
        let expected_headers = [
 1172   1173   
            ("Content-Type", "application/x-amz-json-1.1"),
 1173   1174   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
 1174   1175   
        ];
 1175   1176   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
 1176   1177   
        let required_headers = &["Content-Length"];
 1177   1178   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
 1178   1179   
        let body = http_request.body().bytes().expect("body should be strict");
 1179   1180   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 1180   1181   
            body,
 1181   1182   
            "{\"SimpleStruct\":{}}",
 1182   1183   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 1183   1184   
        ));
 1184   1185   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
 1185   1186   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
 1186   1187   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
 1187   1188   
    }
 1188   1189   
    /// Serializes structure which have no members
 1189   1190   
    /// Test ID: serializes_structure_which_have_no_members
 1190   1191   
    #[::tokio::test]
 1191         -
    #[allow(unused_mut)]
        1192  +
    #[::tracing_test::traced_test]
 1192   1193   
    async fn serializes_structure_which_have_no_members_request() {
 1193   1194   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
 1194   1195   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
 1195   1196   
 1196   1197   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
 1197   1198   
        let result = client
 1198   1199   
            .kitchen_sink_operation()
 1199   1200   
            .set_empty_struct(::std::option::Option::Some(crate::types::EmptyStruct::builder().build()))
 1200   1201   
            .send()
 1201   1202   
            .await;
 1202   1203   
        let _ = dbg!(result);
 1203   1204   
        let http_request = request_receiver.expect_request();
 1204   1205   
        let expected_headers = [
 1205   1206   
            ("Content-Type", "application/x-amz-json-1.1"),
 1206   1207   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
 1207   1208   
        ];
 1208   1209   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
 1209   1210   
        let required_headers = &["Content-Length"];
 1210   1211   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
 1211   1212   
        let body = http_request.body().bytes().expect("body should be strict");
 1212   1213   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 1213   1214   
            body,
 1214   1215   
            "{\"EmptyStruct\":{}}",
 1215   1216   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 1216   1217   
        ));
 1217   1218   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
 1218   1219   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
 1219   1220   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
 1220   1221   
    }
 1221   1222   
    /// Serializes recursive structure shapes
 1222   1223   
    /// Test ID: serializes_recursive_structure_shapes
 1223   1224   
    #[::tokio::test]
 1224         -
    #[allow(unused_mut)]
        1225  +
    #[::tracing_test::traced_test]
 1225   1226   
    async fn serializes_recursive_structure_shapes_request() {
 1226   1227   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
 1227   1228   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
 1228   1229   
 1229   1230   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
 1230   1231   
        let result = client
 1231   1232   
            .kitchen_sink_operation()
 1232   1233   
            .set_string(::std::option::Option::Some("top-value".to_owned()))
 1233   1234   
            .set_boolean(::std::option::Option::Some(false))
 1234   1235   
            .set_recursive_struct(::std::option::Option::Some(::std::boxed::Box::new(
 1235   1236   
                crate::types::KitchenSink::builder()
 1236   1237   
                    .set_string(::std::option::Option::Some("nested-value".to_owned()))
 1237   1238   
                    .set_boolean(::std::option::Option::Some(true))
 1238   1239   
                    .set_recursive_list(::std::option::Option::Some(vec![
 1239   1240   
                        crate::types::KitchenSink::builder()
 1240   1241   
                            .set_string(::std::option::Option::Some("string-only".to_owned()))
 1241   1242   
                            .build(),
 1242   1243   
                        crate::types::KitchenSink::builder()
 1243   1244   
                            .set_recursive_struct(::std::option::Option::Some(::std::boxed::Box::new(
 1244   1245   
                                crate::types::KitchenSink::builder()
 1245   1246   
                                    .set_map_of_strings(::std::option::Option::Some({
 1246   1247   
                                        let mut ret = ::std::collections::HashMap::new();
 1247   1248   
                                        ret.insert("color".to_owned(), "red".to_owned());
 1248   1249   
                                        ret.insert("size".to_owned(), "large".to_owned());
 1249   1250   
                                        ret
 1250   1251   
                                    }))
 1251   1252   
                                    .build(),
 1252   1253   
                            )))
 1253   1254   
                            .build(),
 1254   1255   
                    ]))
 1255   1256   
                    .build(),
 1256   1257   
            )))
 1257   1258   
            .send()
 1258   1259   
            .await;
 1259   1260   
        let _ = dbg!(result);
 1260   1261   
        let http_request = request_receiver.expect_request();
 1261   1262   
        let expected_headers = [
 1262   1263   
            ("Content-Type", "application/x-amz-json-1.1"),
 1263   1264   
            ("X-Amz-Target", "JsonProtocol.KitchenSinkOperation"),
 1264   1265   
        ];
 1265   1266   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
 1266   1267   
        let required_headers = &["Content-Length"];
 1267   1268   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
 1268   1269   
        let body = http_request.body().bytes().expect("body should be strict");
 1269   1270   
        ::aws_smithy_protocol_test::assert_ok(
 1270   1271   
        ::aws_smithy_protocol_test::validate_body(body, "{\"String\":\"top-value\",\"Boolean\":false,\"RecursiveStruct\":{\"String\":\"nested-value\",\"Boolean\":true,\"RecursiveList\":[{\"String\":\"string-only\"},{\"RecursiveStruct\":{\"MapOfStrings\":{\"color\":\"red\",\"size\":\"large\"}}}]}}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
 1271   1272   
        );
 1272   1273   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
 1273   1274   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
 1274   1275   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
 1275   1276   
    }
 1276   1277   
    /// Parses operations with empty JSON bodies
 1277   1278   
    /// Test ID: parses_operations_with_empty_json_bodies
 1278   1279   
    #[::tokio::test]
 1279         -
    #[allow(unused_mut)]
        1280  +
    #[::tracing_test::traced_test]
 1280   1281   
    async fn parses_operations_with_empty_json_bodies_response() {
 1281   1282   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder().build();
 1282   1283   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 1283   1284   
            ::http::response::Builder::new()
 1284   1285   
                .header("Content-Type", "application/x-amz-json-1.1")
 1285   1286   
                .status(200)
 1286   1287   
                .body(::aws_smithy_types::body::SdkBody::from("{}"))
 1287   1288   
                .unwrap(),
 1288   1289   
        )
 1289   1290   
        .unwrap();
@@ -1379,1380 +1439,1440 @@
 1399   1400   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 1400   1401   
        ::pretty_assertions::assert_eq!(
 1401   1402   
            parsed.unix_timestamp,
 1402   1403   
            expected_output.unix_timestamp,
 1403   1404   
            "Unexpected value for `unix_timestamp`"
 1404   1405   
        );
 1405   1406   
    }
 1406   1407   
    /// Parses string shapes
 1407   1408   
    /// Test ID: parses_string_shapes
 1408   1409   
    #[::tokio::test]
 1409         -
    #[allow(unused_mut)]
        1410  +
    #[::tracing_test::traced_test]
 1410   1411   
    async fn parses_string_shapes_response() {
 1411   1412   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 1412   1413   
            .set_string(::std::option::Option::Some("string-value".to_owned()))
 1413   1414   
            .build();
 1414   1415   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 1415   1416   
            ::http::response::Builder::new()
 1416   1417   
                .header("Content-Type", "application/x-amz-json-1.1")
 1417   1418   
                .status(200)
 1418   1419   
                .body(::aws_smithy_types::body::SdkBody::from("{\"String\":\"string-value\"}"))
 1419   1420   
                .unwrap(),
@@ -1511,1512 +1571,1572 @@
 1531   1532   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 1532   1533   
        ::pretty_assertions::assert_eq!(
 1533   1534   
            parsed.unix_timestamp,
 1534   1535   
            expected_output.unix_timestamp,
 1535   1536   
            "Unexpected value for `unix_timestamp`"
 1536   1537   
        );
 1537   1538   
    }
 1538   1539   
    /// Parses integer shapes
 1539   1540   
    /// Test ID: parses_integer_shapes
 1540   1541   
    #[::tokio::test]
 1541         -
    #[allow(unused_mut)]
        1542  +
    #[::tracing_test::traced_test]
 1542   1543   
    async fn parses_integer_shapes_response() {
 1543   1544   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 1544   1545   
            .set_integer(::std::option::Option::Some(1234))
 1545   1546   
            .build();
 1546   1547   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 1547   1548   
            ::http::response::Builder::new()
 1548   1549   
                .header("Content-Type", "application/x-amz-json-1.1")
 1549   1550   
                .status(200)
 1550   1551   
                .body(::aws_smithy_types::body::SdkBody::from("{\"Integer\":1234}"))
 1551   1552   
                .unwrap(),
@@ -1643,1644 +1703,1704 @@
 1663   1664   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 1664   1665   
        ::pretty_assertions::assert_eq!(
 1665   1666   
            parsed.unix_timestamp,
 1666   1667   
            expected_output.unix_timestamp,
 1667   1668   
            "Unexpected value for `unix_timestamp`"
 1668   1669   
        );
 1669   1670   
    }
 1670   1671   
    /// Parses long shapes
 1671   1672   
    /// Test ID: parses_long_shapes
 1672   1673   
    #[::tokio::test]
 1673         -
    #[allow(unused_mut)]
        1674  +
    #[::tracing_test::traced_test]
 1674   1675   
    async fn parses_long_shapes_response() {
 1675   1676   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 1676   1677   
            .set_long(::std::option::Option::Some(1234567890123456789))
 1677   1678   
            .build();
 1678   1679   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 1679   1680   
            ::http::response::Builder::new()
 1680   1681   
                .header("Content-Type", "application/x-amz-json-1.1")
 1681   1682   
                .status(200)
 1682   1683   
                .body(::aws_smithy_types::body::SdkBody::from("{\"Long\":1234567890123456789}"))
 1683   1684   
                .unwrap(),
@@ -1775,1776 +1835,1836 @@
 1795   1796   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 1796   1797   
        ::pretty_assertions::assert_eq!(
 1797   1798   
            parsed.unix_timestamp,
 1798   1799   
            expected_output.unix_timestamp,
 1799   1800   
            "Unexpected value for `unix_timestamp`"
 1800   1801   
        );
 1801   1802   
    }
 1802   1803   
    /// Parses float shapes
 1803   1804   
    /// Test ID: parses_float_shapes
 1804   1805   
    #[::tokio::test]
 1805         -
    #[allow(unused_mut)]
        1806  +
    #[::tracing_test::traced_test]
 1806   1807   
    async fn parses_float_shapes_response() {
 1807   1808   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 1808   1809   
            .set_float(::std::option::Option::Some(1234.5_f32))
 1809   1810   
            .build();
 1810   1811   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 1811   1812   
            ::http::response::Builder::new()
 1812   1813   
                .header("Content-Type", "application/x-amz-json-1.1")
 1813   1814   
                .status(200)
 1814   1815   
                .body(::aws_smithy_types::body::SdkBody::from("{\"Float\":1234.5}"))
 1815   1816   
                .unwrap(),
@@ -1907,1908 +1967,1968 @@
 1927   1928   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 1928   1929   
        ::pretty_assertions::assert_eq!(
 1929   1930   
            parsed.unix_timestamp,
 1930   1931   
            expected_output.unix_timestamp,
 1931   1932   
            "Unexpected value for `unix_timestamp`"
 1932   1933   
        );
 1933   1934   
    }
 1934   1935   
    /// Parses double shapes
 1935   1936   
    /// Test ID: parses_double_shapes
 1936   1937   
    #[::tokio::test]
 1937         -
    #[allow(unused_mut)]
        1938  +
    #[::tracing_test::traced_test]
 1938   1939   
    async fn parses_double_shapes_response() {
 1939   1940   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 1940   1941   
            .set_double(::std::option::Option::Some(1.2345678912345679E8_f64))
 1941   1942   
            .build();
 1942   1943   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 1943   1944   
            ::http::response::Builder::new()
 1944   1945   
                .header("Content-Type", "application/x-amz-json-1.1")
 1945   1946   
                .status(200)
 1946   1947   
                .body(::aws_smithy_types::body::SdkBody::from("{\"Double\":123456789.12345679}"))
 1947   1948   
                .unwrap(),
@@ -2039,2040 +2099,2100 @@
 2059   2060   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 2060   2061   
        ::pretty_assertions::assert_eq!(
 2061   2062   
            parsed.unix_timestamp,
 2062   2063   
            expected_output.unix_timestamp,
 2063   2064   
            "Unexpected value for `unix_timestamp`"
 2064   2065   
        );
 2065   2066   
    }
 2066   2067   
    /// Parses boolean shapes (true)
 2067   2068   
    /// Test ID: parses_boolean_shapes_true
 2068   2069   
    #[::tokio::test]
 2069         -
    #[allow(unused_mut)]
        2070  +
    #[::tracing_test::traced_test]
 2070   2071   
    async fn parses_boolean_shapes_true_response() {
 2071   2072   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 2072   2073   
            .set_boolean(::std::option::Option::Some(true))
 2073   2074   
            .build();
 2074   2075   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 2075   2076   
            ::http::response::Builder::new()
 2076   2077   
                .header("Content-Type", "application/x-amz-json-1.1")
 2077   2078   
                .status(200)
 2078   2079   
                .body(::aws_smithy_types::body::SdkBody::from("{\"Boolean\":true}"))
 2079   2080   
                .unwrap(),
@@ -2171,2172 +2231,2232 @@
 2191   2192   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 2192   2193   
        ::pretty_assertions::assert_eq!(
 2193   2194   
            parsed.unix_timestamp,
 2194   2195   
            expected_output.unix_timestamp,
 2195   2196   
            "Unexpected value for `unix_timestamp`"
 2196   2197   
        );
 2197   2198   
    }
 2198   2199   
    /// Parses boolean (false)
 2199   2200   
    /// Test ID: parses_boolean_false
 2200   2201   
    #[::tokio::test]
 2201         -
    #[allow(unused_mut)]
        2202  +
    #[::tracing_test::traced_test]
 2202   2203   
    async fn parses_boolean_false_response() {
 2203   2204   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 2204   2205   
            .set_boolean(::std::option::Option::Some(false))
 2205   2206   
            .build();
 2206   2207   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 2207   2208   
            ::http::response::Builder::new()
 2208   2209   
                .header("Content-Type", "application/x-amz-json-1.1")
 2209   2210   
                .status(200)
 2210   2211   
                .body(::aws_smithy_types::body::SdkBody::from("{\"Boolean\":false}"))
 2211   2212   
                .unwrap(),
@@ -2303,2304 +2363,2364 @@
 2323   2324   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 2324   2325   
        ::pretty_assertions::assert_eq!(
 2325   2326   
            parsed.unix_timestamp,
 2326   2327   
            expected_output.unix_timestamp,
 2327   2328   
            "Unexpected value for `unix_timestamp`"
 2328   2329   
        );
 2329   2330   
    }
 2330   2331   
    /// Parses blob shapes
 2331   2332   
    /// Test ID: parses_blob_shapes
 2332   2333   
    #[::tokio::test]
 2333         -
    #[allow(unused_mut)]
        2334  +
    #[::tracing_test::traced_test]
 2334   2335   
    async fn parses_blob_shapes_response() {
 2335   2336   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 2336   2337   
            .set_blob(::std::option::Option::Some(::aws_smithy_types::Blob::new("binary-value")))
 2337   2338   
            .build();
 2338   2339   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 2339   2340   
            ::http::response::Builder::new()
 2340   2341   
                .header("Content-Type", "application/x-amz-json-1.1")
 2341   2342   
                .status(200)
 2342   2343   
                .body(::aws_smithy_types::body::SdkBody::from("{\"Blob\":\"YmluYXJ5LXZhbHVl\"}"))
 2343   2344   
                .unwrap(),
@@ -2435,2436 +2495,2496 @@
 2455   2456   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 2456   2457   
        ::pretty_assertions::assert_eq!(
 2457   2458   
            parsed.unix_timestamp,
 2458   2459   
            expected_output.unix_timestamp,
 2459   2460   
            "Unexpected value for `unix_timestamp`"
 2460   2461   
        );
 2461   2462   
    }
 2462   2463   
    /// Parses timestamp shapes
 2463   2464   
    /// Test ID: parses_timestamp_shapes
 2464   2465   
    #[::tokio::test]
 2465         -
    #[allow(unused_mut)]
        2466  +
    #[::tracing_test::traced_test]
 2466   2467   
    async fn parses_timestamp_shapes_response() {
 2467   2468   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 2468   2469   
            .set_timestamp(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
 2469   2470   
                946845296, 0_f64,
 2470   2471   
            )))
 2471   2472   
            .build();
 2472   2473   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 2473   2474   
            ::http::response::Builder::new()
 2474   2475   
                .header("Content-Type", "application/x-amz-json-1.1")
 2475   2476   
                .status(200)
@@ -2569,2570 +2629,2630 @@
 2589   2590   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 2590   2591   
        ::pretty_assertions::assert_eq!(
 2591   2592   
            parsed.unix_timestamp,
 2592   2593   
            expected_output.unix_timestamp,
 2593   2594   
            "Unexpected value for `unix_timestamp`"
 2594   2595   
        );
 2595   2596   
    }
 2596   2597   
    /// Parses iso8601 timestamps
 2597   2598   
    /// Test ID: parses_iso8601_timestamps
 2598   2599   
    #[::tokio::test]
 2599         -
    #[allow(unused_mut)]
        2600  +
    #[::tracing_test::traced_test]
 2600   2601   
    async fn parses_iso8601_timestamps_response() {
 2601   2602   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 2602   2603   
            .set_iso8601_timestamp(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
 2603   2604   
                946845296, 0_f64,
 2604   2605   
            )))
 2605   2606   
            .build();
 2606   2607   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 2607   2608   
            ::http::response::Builder::new()
 2608   2609   
                .header("Content-Type", "application/x-amz-json-1.1")
 2609   2610   
                .status(200)
@@ -2703,2704 +2763,2764 @@
 2723   2724   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 2724   2725   
        ::pretty_assertions::assert_eq!(
 2725   2726   
            parsed.unix_timestamp,
 2726   2727   
            expected_output.unix_timestamp,
 2727   2728   
            "Unexpected value for `unix_timestamp`"
 2728   2729   
        );
 2729   2730   
    }
 2730   2731   
    /// Parses httpdate timestamps
 2731   2732   
    /// Test ID: parses_httpdate_timestamps
 2732   2733   
    #[::tokio::test]
 2733         -
    #[allow(unused_mut)]
        2734  +
    #[::tracing_test::traced_test]
 2734   2735   
    async fn parses_httpdate_timestamps_response() {
 2735   2736   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 2736   2737   
            .set_httpdate_timestamp(::std::option::Option::Some(::aws_smithy_types::DateTime::from_fractional_secs(
 2737   2738   
                946845296, 0_f64,
 2738   2739   
            )))
 2739   2740   
            .build();
 2740   2741   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 2741   2742   
            ::http::response::Builder::new()
 2742   2743   
                .header("Content-Type", "application/x-amz-json-1.1")
 2743   2744   
                .status(200)
@@ -2839,2840 +2899,2900 @@
 2859   2860   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 2860   2861   
        ::pretty_assertions::assert_eq!(
 2861   2862   
            parsed.unix_timestamp,
 2862   2863   
            expected_output.unix_timestamp,
 2863   2864   
            "Unexpected value for `unix_timestamp`"
 2864   2865   
        );
 2865   2866   
    }
 2866   2867   
    /// Parses list shapes
 2867   2868   
    /// Test ID: parses_list_shapes
 2868   2869   
    #[::tokio::test]
 2869         -
    #[allow(unused_mut)]
        2870  +
    #[::tracing_test::traced_test]
 2870   2871   
    async fn parses_list_shapes_response() {
 2871   2872   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 2872   2873   
            .set_list_of_strings(::std::option::Option::Some(vec!["abc".to_owned(), "mno".to_owned(), "xyz".to_owned()]))
 2873   2874   
            .build();
 2874   2875   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 2875   2876   
            ::http::response::Builder::new()
 2876   2877   
                .header("Content-Type", "application/x-amz-json-1.1")
 2877   2878   
                .status(200)
 2878   2879   
                .body(::aws_smithy_types::body::SdkBody::from("{\"ListOfStrings\":[\"abc\",\"mno\",\"xyz\"]}"))
 2879   2880   
                .unwrap(),
@@ -2971,2972 +3031,3032 @@
 2991   2992   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 2992   2993   
        ::pretty_assertions::assert_eq!(
 2993   2994   
            parsed.unix_timestamp,
 2994   2995   
            expected_output.unix_timestamp,
 2995   2996   
            "Unexpected value for `unix_timestamp`"
 2996   2997   
        );
 2997   2998   
    }
 2998   2999   
    /// Parses list of map shapes
 2999   3000   
    /// Test ID: parses_list_of_map_shapes
 3000   3001   
    #[::tokio::test]
 3001         -
    #[allow(unused_mut)]
        3002  +
    #[::tracing_test::traced_test]
 3002   3003   
    async fn parses_list_of_map_shapes_response() {
 3003   3004   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 3004   3005   
            .set_list_of_maps_of_strings(::std::option::Option::Some(vec![
 3005   3006   
                {
 3006   3007   
                    let mut ret = ::std::collections::HashMap::new();
 3007   3008   
                    ret.insert("size".to_owned(), "large".to_owned());
 3008   3009   
                    ret
 3009   3010   
                },
 3010   3011   
                {
 3011   3012   
                    let mut ret = ::std::collections::HashMap::new();
@@ -3116,3117 +3176,3177 @@
 3136   3137   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 3137   3138   
        ::pretty_assertions::assert_eq!(
 3138   3139   
            parsed.unix_timestamp,
 3139   3140   
            expected_output.unix_timestamp,
 3140   3141   
            "Unexpected value for `unix_timestamp`"
 3141   3142   
        );
 3142   3143   
    }
 3143   3144   
    /// Parses list of list shapes
 3144   3145   
    /// Test ID: parses_list_of_list_shapes
 3145   3146   
    #[::tokio::test]
 3146         -
    #[allow(unused_mut)]
        3147  +
    #[::tracing_test::traced_test]
 3147   3148   
    async fn parses_list_of_list_shapes_response() {
 3148   3149   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 3149   3150   
            .set_list_of_lists(::std::option::Option::Some(vec![
 3150   3151   
                vec!["abc".to_owned(), "mno".to_owned(), "xyz".to_owned()],
 3151   3152   
                vec!["hjk".to_owned(), "qrs".to_owned(), "tuv".to_owned()],
 3152   3153   
            ]))
 3153   3154   
            .build();
 3154   3155   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 3155   3156   
            ::http::response::Builder::new()
 3156   3157   
                .header("Content-Type", "application/x-amz-json-1.1")
@@ -3253,3254 +3313,3314 @@
 3273   3274   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 3274   3275   
        ::pretty_assertions::assert_eq!(
 3275   3276   
            parsed.unix_timestamp,
 3276   3277   
            expected_output.unix_timestamp,
 3277   3278   
            "Unexpected value for `unix_timestamp`"
 3278   3279   
        );
 3279   3280   
    }
 3280   3281   
    /// Parses list of structure shapes
 3281   3282   
    /// Test ID: parses_list_of_structure_shapes
 3282   3283   
    #[::tokio::test]
 3283         -
    #[allow(unused_mut)]
        3284  +
    #[::tracing_test::traced_test]
 3284   3285   
    async fn parses_list_of_structure_shapes_response() {
 3285   3286   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 3286   3287   
            .set_list_of_structs(::std::option::Option::Some(vec![
 3287   3288   
                crate::types::SimpleStruct::builder()
 3288   3289   
                    .set_value(::std::option::Option::Some("value-1".to_owned()))
 3289   3290   
                    .build(),
 3290   3291   
                crate::types::SimpleStruct::builder()
 3291   3292   
                    .set_value(::std::option::Option::Some("value-2".to_owned()))
 3292   3293   
                    .build(),
 3293   3294   
            ]))
@@ -3394,3395 +3454,3455 @@
 3414   3415   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 3415   3416   
        ::pretty_assertions::assert_eq!(
 3416   3417   
            parsed.unix_timestamp,
 3417   3418   
            expected_output.unix_timestamp,
 3418   3419   
            "Unexpected value for `unix_timestamp`"
 3419   3420   
        );
 3420   3421   
    }
 3421   3422   
    /// Parses list of recursive structure shapes
 3422   3423   
    /// Test ID: parses_list_of_recursive_structure_shapes
 3423   3424   
    #[::tokio::test]
 3424         -
    #[allow(unused_mut)]
        3425  +
    #[::tracing_test::traced_test]
 3425   3426   
    async fn parses_list_of_recursive_structure_shapes_response() {
 3426   3427   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 3427   3428   
            .set_recursive_list(::std::option::Option::Some(vec![crate::types::KitchenSink::builder()
 3428   3429   
                .set_recursive_list(::std::option::Option::Some(vec![crate::types::KitchenSink::builder()
 3429   3430   
                    .set_recursive_list(::std::option::Option::Some(vec![crate::types::KitchenSink::builder()
 3430   3431   
                        .set_string(::std::option::Option::Some("value".to_owned()))
 3431   3432   
                        .build()]))
 3432   3433   
                    .build()]))
 3433   3434   
                .build()]))
 3434   3435   
            .build();
@@ -3534,3535 +3594,3595 @@
 3554   3555   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 3555   3556   
        ::pretty_assertions::assert_eq!(
 3556   3557   
            parsed.unix_timestamp,
 3557   3558   
            expected_output.unix_timestamp,
 3558   3559   
            "Unexpected value for `unix_timestamp`"
 3559   3560   
        );
 3560   3561   
    }
 3561   3562   
    /// Parses map shapes
 3562   3563   
    /// Test ID: parses_map_shapes
 3563   3564   
    #[::tokio::test]
 3564         -
    #[allow(unused_mut)]
        3565  +
    #[::tracing_test::traced_test]
 3565   3566   
    async fn parses_map_shapes_response() {
 3566   3567   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 3567   3568   
            .set_map_of_strings(::std::option::Option::Some({
 3568   3569   
                let mut ret = ::std::collections::HashMap::new();
 3569   3570   
                ret.insert("size".to_owned(), "large".to_owned());
 3570   3571   
                ret.insert("color".to_owned(), "red".to_owned());
 3571   3572   
                ret
 3572   3573   
            }))
 3573   3574   
            .build();
 3574   3575   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
@@ -3673,3674 +3733,3734 @@
 3693   3694   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 3694   3695   
        ::pretty_assertions::assert_eq!(
 3695   3696   
            parsed.unix_timestamp,
 3696   3697   
            expected_output.unix_timestamp,
 3697   3698   
            "Unexpected value for `unix_timestamp`"
 3698   3699   
        );
 3699   3700   
    }
 3700   3701   
    /// Parses map of list shapes
 3701   3702   
    /// Test ID: parses_map_of_list_shapes
 3702   3703   
    #[::tokio::test]
 3703         -
    #[allow(unused_mut)]
        3704  +
    #[::tracing_test::traced_test]
 3704   3705   
    async fn parses_map_of_list_shapes_response() {
 3705   3706   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 3706   3707   
            .set_map_of_lists_of_strings(::std::option::Option::Some({
 3707   3708   
                let mut ret = ::std::collections::HashMap::new();
 3708   3709   
                ret.insert("sizes".to_owned(), vec!["large".to_owned(), "small".to_owned()]);
 3709   3710   
                ret.insert("colors".to_owned(), vec!["red".to_owned(), "green".to_owned()]);
 3710   3711   
                ret
 3711   3712   
            }))
 3712   3713   
            .build();
 3713   3714   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
@@ -3812,3813 +3872,3873 @@
 3832   3833   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 3833   3834   
        ::pretty_assertions::assert_eq!(
 3834   3835   
            parsed.unix_timestamp,
 3835   3836   
            expected_output.unix_timestamp,
 3836   3837   
            "Unexpected value for `unix_timestamp`"
 3837   3838   
        );
 3838   3839   
    }
 3839   3840   
    /// Parses map of map shapes
 3840   3841   
    /// Test ID: parses_map_of_map_shapes
 3841   3842   
    #[::tokio::test]
 3842         -
    #[allow(unused_mut)]
        3843  +
    #[::tracing_test::traced_test]
 3843   3844   
    async fn parses_map_of_map_shapes_response() {
 3844   3845   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 3845   3846   
            .set_map_of_maps(::std::option::Option::Some({
 3846   3847   
                let mut ret = ::std::collections::HashMap::new();
 3847   3848   
                ret.insert("sizes".to_owned(), {
 3848   3849   
                    let mut ret = ::std::collections::HashMap::new();
 3849   3850   
                    ret.insert("large".to_owned(), "L".to_owned());
 3850   3851   
                    ret.insert("medium".to_owned(), "M".to_owned());
 3851   3852   
                    ret
 3852   3853   
                });
@@ -3961,3962 +4021,4022 @@
 3981   3982   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 3982   3983   
        ::pretty_assertions::assert_eq!(
 3983   3984   
            parsed.unix_timestamp,
 3984   3985   
            expected_output.unix_timestamp,
 3985   3986   
            "Unexpected value for `unix_timestamp`"
 3986   3987   
        );
 3987   3988   
    }
 3988   3989   
    /// Parses map of structure shapes
 3989   3990   
    /// Test ID: parses_map_of_structure_shapes
 3990   3991   
    #[::tokio::test]
 3991         -
    #[allow(unused_mut)]
        3992  +
    #[::tracing_test::traced_test]
 3992   3993   
    async fn parses_map_of_structure_shapes_response() {
 3993   3994   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 3994   3995   
            .set_map_of_structs(::std::option::Option::Some({
 3995   3996   
                let mut ret = ::std::collections::HashMap::new();
 3996   3997   
                ret.insert(
 3997   3998   
                    "size".to_owned(),
 3998   3999   
                    crate::types::SimpleStruct::builder()
 3999   4000   
                        .set_value(::std::option::Option::Some("small".to_owned()))
 4000   4001   
                        .build(),
 4001   4002   
                );
@@ -4110,4111 +4170,4171 @@
 4130   4131   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 4131   4132   
        ::pretty_assertions::assert_eq!(
 4132   4133   
            parsed.unix_timestamp,
 4133   4134   
            expected_output.unix_timestamp,
 4134   4135   
            "Unexpected value for `unix_timestamp`"
 4135   4136   
        );
 4136   4137   
    }
 4137   4138   
    /// Parses map of recursive structure shapes
 4138   4139   
    /// Test ID: parses_map_of_recursive_structure_shapes
 4139   4140   
    #[::tokio::test]
 4140         -
    #[allow(unused_mut)]
        4141  +
    #[::tracing_test::traced_test]
 4141   4142   
    async fn parses_map_of_recursive_structure_shapes_response() {
 4142   4143   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder()
 4143   4144   
            .set_recursive_map(::std::option::Option::Some({
 4144   4145   
                let mut ret = ::std::collections::HashMap::new();
 4145   4146   
                ret.insert(
 4146   4147   
                    "key-1".to_owned(),
 4147   4148   
                    crate::types::KitchenSink::builder()
 4148   4149   
                        .set_recursive_map(::std::option::Option::Some({
 4149   4150   
                            let mut ret = ::std::collections::HashMap::new();
 4150   4151   
                            ret.insert(
@@ -4271,4272 +4331,4332 @@
 4291   4292   
        ::pretty_assertions::assert_eq!(parsed.timestamp, expected_output.timestamp, "Unexpected value for `timestamp`");
 4292   4293   
        ::pretty_assertions::assert_eq!(
 4293   4294   
            parsed.unix_timestamp,
 4294   4295   
            expected_output.unix_timestamp,
 4295   4296   
            "Unexpected value for `unix_timestamp`"
 4296   4297   
        );
 4297   4298   
    }
 4298   4299   
    /// Parses the request id from the response
 4299   4300   
    /// Test ID: parses_the_request_id_from_the_response
 4300   4301   
    #[::tokio::test]
 4301         -
    #[allow(unused_mut)]
        4302  +
    #[::tracing_test::traced_test]
 4302   4303   
    async fn parses_the_request_id_from_the_response_response() {
 4303   4304   
        let expected_output = crate::operation::kitchen_sink_operation::KitchenSinkOperationOutput::builder().build();
 4304   4305   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
 4305   4306   
            ::http::response::Builder::new()
 4306   4307   
                .header("Content-Type", "application/x-amz-json-1.1")
 4307   4308   
                .header("X-Amzn-Requestid", "amazon-uniq-request-id")
 4308   4309   
                .status(200)
 4309   4310   
                .body(::aws_smithy_types::body::SdkBody::from("{}"))
 4310   4311   
                .unwrap(),
 4311   4312   
        )

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/null_operation.rs

@@ -195,195 +286,287 @@
  215    215   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  216    216   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  217    217   
        })?;
  218    218   
        cfg.interceptor_state()
  219    219   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  220    220   
        ::std::result::Result::Ok(())
  221    221   
    }
  222    222   
}
  223    223   
#[allow(unreachable_code, unused_variables)]
  224    224   
#[cfg(test)]
  225         -
mod null_operation_request_test {
         225  +
mod null_operation_test {
         226  +
  226    227   
    /// Null structure values are dropped
  227    228   
    /// Test ID: AwsJson11StructuresDontSerializeNullValues
  228    229   
    #[::tokio::test]
  229         -
    #[allow(unused_mut)]
         230  +
    #[::tracing_test::traced_test]
  230    231   
    async fn aws_json11_structures_dont_serialize_null_values_request() {
  231    232   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  232    233   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  233    234   
  234    235   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  235    236   
        let result = client.null_operation().set_string(::std::option::Option::None).send().await;
  236    237   
        let _ = dbg!(result);
  237    238   
        let http_request = request_receiver.expect_request();
  238    239   
        let expected_headers = [
  239    240   
            ("Content-Type", "application/x-amz-json-1.1"),
  240    241   
            ("X-Amz-Target", "JsonProtocol.NullOperation"),
  241    242   
        ];
  242    243   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  243    244   
        let body = http_request.body().bytes().expect("body should be strict");
  244    245   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  245    246   
            body,
  246    247   
            "{}",
  247    248   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  248    249   
        ));
  249    250   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  250    251   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  251    252   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  252    253   
    }
  253    254   
    /// Null structure values are dropped
  254    255   
    /// Test ID: AwsJson11StructuresDontDeserializeNullValues
  255    256   
    #[::tokio::test]
  256         -
    #[allow(unused_mut)]
         257  +
    #[::tracing_test::traced_test]
  257    258   
    async fn aws_json11_structures_dont_deserialize_null_values_response() {
  258    259   
        let expected_output = crate::operation::null_operation::NullOperationOutput::builder().build();
  259    260   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  260    261   
            ::http::response::Builder::new()
  261    262   
                .header("Content-Type", "application/x-amz-json-1.1")
  262    263   
                .status(200)
  263    264   
                .body(::aws_smithy_types::body::SdkBody::from("{\n    \"string\": null\n}"))
  264    265   
                .unwrap(),
  265    266   
        )
  266    267   
        .unwrap();

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/operation_with_optional_input_output.rs

@@ -208,208 +299,300 @@
  228    228   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  229    229   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  230    230   
        })?;
  231    231   
        cfg.interceptor_state()
  232    232   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  233    233   
        ::std::result::Result::Ok(())
  234    234   
    }
  235    235   
}
  236    236   
#[allow(unreachable_code, unused_variables)]
  237    237   
#[cfg(test)]
  238         -
mod operation_with_optional_input_output_request_test {
         238  +
mod operation_with_optional_input_output_test {
         239  +
  239    240   
    /// Can call operations with no input or output
  240    241   
    /// Test ID: can_call_operation_with_no_input_or_output
  241    242   
    #[::tokio::test]
  242         -
    #[allow(unused_mut)]
         243  +
    #[::tracing_test::traced_test]
  243    244   
    async fn can_call_operation_with_no_input_or_output_request() {
  244    245   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  245    246   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  246    247   
  247    248   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  248    249   
        let result = client.operation_with_optional_input_output().send().await;
  249    250   
        let _ = dbg!(result);
  250    251   
        let http_request = request_receiver.expect_request();
  251    252   
        let expected_headers = [
  252    253   
            ("Content-Type", "application/x-amz-json-1.1"),
  253    254   
            ("X-Amz-Target", "JsonProtocol.OperationWithOptionalInputOutput"),
  254    255   
        ];
  255    256   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  256    257   
        let body = http_request.body().bytes().expect("body should be strict");
  257    258   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  258    259   
            body,
  259    260   
            "{}",
  260    261   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  261    262   
        ));
  262    263   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  263    264   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  264    265   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  265    266   
    }
  266    267   
    /// Can invoke operations with optional input
  267    268   
    /// Test ID: can_call_operation_with_optional_input
  268    269   
    #[::tokio::test]
  269         -
    #[allow(unused_mut)]
         270  +
    #[::tracing_test::traced_test]
  270    271   
    async fn can_call_operation_with_optional_input_request() {
  271    272   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  272    273   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  273    274   
  274    275   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  275    276   
        let result = client
  276    277   
            .operation_with_optional_input_output()
  277    278   
            .set_value(::std::option::Option::Some("Hi".to_owned()))
  278    279   
            .send()
  279    280   
            .await;

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/put_and_get_inline_documents.rs

@@ -204,204 +307,308 @@
  224    224   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  225    225   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  226    226   
        })?;
  227    227   
        cfg.interceptor_state()
  228    228   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  229    229   
        ::std::result::Result::Ok(())
  230    230   
    }
  231    231   
}
  232    232   
#[allow(unreachable_code, unused_variables)]
  233    233   
#[cfg(test)]
  234         -
mod put_and_get_inline_documents_request_test {
         234  +
mod put_and_get_inline_documents_test {
         235  +
  235    236   
    /// Serializes inline documents in a JSON request.
  236    237   
    /// Test ID: PutAndGetInlineDocumentsInput
  237    238   
    #[::tokio::test]
  238         -
    #[allow(unused_mut)]
         239  +
    #[::tracing_test::traced_test]
  239    240   
    async fn put_and_get_inline_documents_input_request() {
  240    241   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  241    242   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  242    243   
  243    244   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  244    245   
        let result = client
  245    246   
            .put_and_get_inline_documents()
  246    247   
            .set_inline_document(::std::option::Option::Some({
  247    248   
                let json_bytes = br#"{
  248    249   
                        "foo": "bar"
  249    250   
                    }"#;
  250    251   
                let mut tokens = ::aws_smithy_json::deserialize::json_token_iter(json_bytes).peekable();
  251    252   
                ::aws_smithy_json::deserialize::token::expect_document(&mut tokens).expect("well formed json")
  252    253   
            }))
  253    254   
            .send()
  254    255   
            .await;
  255    256   
        let _ = dbg!(result);
  256    257   
        let http_request = request_receiver.expect_request();
  257    258   
        let expected_headers = [
  258    259   
            ("Content-Type", "application/x-amz-json-1.1"),
  259    260   
            ("X-Amz-Target", "JsonProtocol.PutAndGetInlineDocuments"),
  260    261   
        ];
  261    262   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  262    263   
        let required_headers = &["Content-Length"];
  263    264   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::require_headers(http_request.headers(), required_headers));
  264    265   
        let body = http_request.body().bytes().expect("body should be strict");
  265    266   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  266    267   
            body,
  267    268   
            "{\n    \"inlineDocument\": {\"foo\": \"bar\"}\n}",
  268    269   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  269    270   
        ));
  270    271   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  271    272   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  272    273   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  273    274   
    }
  274    275   
    /// Serializes inline documents in a JSON response.
  275    276   
    /// Test ID: PutAndGetInlineDocumentsInput
  276    277   
    #[::tokio::test]
  277         -
    #[allow(unused_mut)]
         278  +
    #[::tracing_test::traced_test]
  278    279   
    async fn put_and_get_inline_documents_input_response() {
  279    280   
        let expected_output = crate::operation::put_and_get_inline_documents::PutAndGetInlineDocumentsOutput::builder()
  280    281   
            .set_inline_document(::std::option::Option::Some({
  281    282   
                let json_bytes = br#"{
  282    283   
                        "foo": "bar"
  283    284   
                    }"#;
  284    285   
                let mut tokens = ::aws_smithy_json::deserialize::json_token_iter(json_bytes).peekable();
  285    286   
                ::aws_smithy_json::deserialize::token::expect_document(&mut tokens).expect("well formed json")
  286    287   
            }))
  287    288   
            .build();

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/put_with_content_encoding.rs

@@ -206,206 +297,298 @@
  226    226   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  227    227   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  228    228   
        })?;
  229    229   
        cfg.interceptor_state()
  230    230   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  231    231   
        ::std::result::Result::Ok(())
  232    232   
    }
  233    233   
}
  234    234   
#[allow(unreachable_code, unused_variables)]
  235    235   
#[cfg(test)]
  236         -
mod put_with_content_encoding_request_test {
         236  +
mod put_with_content_encoding_test {
         237  +
  237    238   
    /// Compression algorithm encoding is appended to the Content-Encoding header.
  238    239   
    /// Test ID: SDKAppliedContentEncoding_awsJson1_1
  239    240   
    #[::tokio::test]
  240         -
    #[allow(unused_mut)]
         241  +
    #[::tracing_test::traced_test]
  241    242   
    async fn sdk_applied_content_encoding_aws_json1_1_request() {
  242    243   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  243    244   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  244    245   
  245    246   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  246    247   
        let result = client.put_with_content_encoding()
  247    248   
        .set_data(
  248    249   
            ::std::option::Option::Some(
  249    250   
                "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n".to_owned()
  250    251   
            )
  251    252   
        )
  252    253   
        .send().await;
  253    254   
        let _ = dbg!(result);
  254    255   
        let http_request = request_receiver.expect_request();
  255    256   
        let expected_headers = [("Content-Encoding", "gzip")];
  256    257   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  257    258   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  258    259   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  259    260   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  260    261   
    }
  261    262   
    /// Compression algorithm encoding is appended to the Content-Encoding header, and the
  262    263   
    /// user-provided content-encoding is NOT in the Content-Encoding header since HTTP binding
  263    264   
    /// traits are ignored in the awsJson1_1 protocol.
  264    265   
    ///
  265    266   
    /// Test ID: SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsJson1_1
  266    267   
    #[::tokio::test]
  267         -
    #[allow(unused_mut)]
         268  +
    #[::tracing_test::traced_test]
  268    269   
    async fn sdk_appends_gzip_and_ignores_http_provided_encoding_aws_json1_1_request() {
  269    270   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  270    271   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  271    272   
  272    273   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  273    274   
        let result = client.put_with_content_encoding()
  274    275   
        .set_encoding(
  275    276   
            ::std::option::Option::Some(
  276    277   
                "custom".to_owned()
  277    278   
            )

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/simple_scalar_properties.rs

@@ -204,204 +487,488 @@
  224    224   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  225    225   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  226    226   
        })?;
  227    227   
        cfg.interceptor_state()
  228    228   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  229    229   
        ::std::result::Result::Ok(())
  230    230   
    }
  231    231   
}
  232    232   
#[allow(unreachable_code, unused_variables)]
  233    233   
#[cfg(test)]
  234         -
mod simple_scalar_properties_request_test {
         234  +
mod simple_scalar_properties_test {
  235    235   
    use ::aws_smithy_protocol_test::FloatEquals;
         236  +
  236    237   
    /// Supports handling NaN float values.
  237    238   
    /// Test ID: AwsJson11SupportsNaNFloatInputs
  238    239   
    #[::tokio::test]
  239         -
    #[allow(unused_mut)]
         240  +
    #[::tracing_test::traced_test]
  240    241   
    async fn aws_json11_supports_na_n_float_inputs_request() {
  241    242   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  242    243   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  243    244   
  244    245   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  245    246   
        let result = client
  246    247   
            .simple_scalar_properties()
  247    248   
            .set_float_value(::std::option::Option::Some(
  248    249   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  249    250   
            ))
  250    251   
            .set_double_value(::std::option::Option::Some(
  251    252   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  252    253   
            ))
  253    254   
            .send()
  254    255   
            .await;
  255    256   
        let _ = dbg!(result);
  256    257   
        let http_request = request_receiver.expect_request();
  257    258   
        let expected_headers = [
  258    259   
            ("Content-Type", "application/x-amz-json-1.1"),
  259    260   
            ("X-Amz-Target", "JsonProtocol.SimpleScalarProperties"),
  260    261   
        ];
  261    262   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  262    263   
        let body = http_request.body().bytes().expect("body should be strict");
  263    264   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  264    265   
            body,
  265    266   
            "{\n    \"floatValue\": \"NaN\",\n    \"doubleValue\": \"NaN\"\n}",
  266    267   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  267    268   
        ));
  268    269   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  269    270   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  270    271   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  271    272   
    }
  272    273   
    /// Supports handling Infinity float values.
  273    274   
    /// Test ID: AwsJson11SupportsInfinityFloatInputs
  274    275   
    #[::tokio::test]
  275         -
    #[allow(unused_mut)]
         276  +
    #[::tracing_test::traced_test]
  276    277   
    async fn aws_json11_supports_infinity_float_inputs_request() {
  277    278   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  278    279   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  279    280   
  280    281   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  281    282   
        let result = client
  282    283   
            .simple_scalar_properties()
  283    284   
            .set_float_value(::std::option::Option::Some(
  284    285   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  285    286   
            ))
  286    287   
            .set_double_value(::std::option::Option::Some(
  287    288   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  288    289   
            ))
  289    290   
            .send()
  290    291   
            .await;
  291    292   
        let _ = dbg!(result);
  292    293   
        let http_request = request_receiver.expect_request();
  293    294   
        let expected_headers = [
  294    295   
            ("Content-Type", "application/x-amz-json-1.1"),
  295    296   
            ("X-Amz-Target", "JsonProtocol.SimpleScalarProperties"),
  296    297   
        ];
  297    298   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  298    299   
        let body = http_request.body().bytes().expect("body should be strict");
  299    300   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  300    301   
            body,
  301    302   
            "{\n    \"floatValue\": \"Infinity\",\n    \"doubleValue\": \"Infinity\"\n}",
  302    303   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  303    304   
        ));
  304    305   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  305    306   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  306    307   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  307    308   
    }
  308    309   
    /// Supports handling -Infinity float values.
  309    310   
    /// Test ID: AwsJson11SupportsNegativeInfinityFloatInputs
  310    311   
    #[::tokio::test]
  311         -
    #[allow(unused_mut)]
         312  +
    #[::tracing_test::traced_test]
  312    313   
    async fn aws_json11_supports_negative_infinity_float_inputs_request() {
  313    314   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  314    315   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  315    316   
  316    317   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  317    318   
        let result = client
  318    319   
            .simple_scalar_properties()
  319    320   
            .set_float_value(::std::option::Option::Some(
  320    321   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),
  321    322   
            ))
  322    323   
            .set_double_value(::std::option::Option::Some(
  323    324   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),
  324    325   
            ))
  325    326   
            .send()
  326    327   
            .await;
  327    328   
        let _ = dbg!(result);
  328    329   
        let http_request = request_receiver.expect_request();
  329    330   
        let expected_headers = [
  330    331   
            ("Content-Type", "application/x-amz-json-1.1"),
  331    332   
            ("X-Amz-Target", "JsonProtocol.SimpleScalarProperties"),
  332    333   
        ];
  333    334   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  334    335   
        let body = http_request.body().bytes().expect("body should be strict");
  335    336   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  336    337   
            body,
  337    338   
            "{\n    \"floatValue\": \"-Infinity\",\n    \"doubleValue\": \"-Infinity\"\n}",
  338    339   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  339    340   
        ));
  340    341   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  341    342   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  342    343   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  343    344   
    }
  344    345   
    /// Supports handling NaN float values.
  345    346   
    /// Test ID: AwsJson11SupportsNaNFloatInputs
  346    347   
    #[::tokio::test]
  347         -
    #[allow(unused_mut)]
         348  +
    #[::tracing_test::traced_test]
  348    349   
    async fn aws_json11_supports_na_n_float_inputs_response() {
  349    350   
        let expected_output = crate::operation::simple_scalar_properties::SimpleScalarPropertiesOutput::builder()
  350    351   
            .set_float_value(::std::option::Option::Some(
  351    352   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  352    353   
            ))
  353    354   
            .set_double_value(::std::option::Option::Some(
  354    355   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("NaN").expect("invalid string for number"),
  355    356   
            ))
  356    357   
            .build();
  357    358   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  358    359   
            ::http::response::Builder::new()
  359    360   
                .header("Content-Type", "application/x-amz-json-1.1")
  360    361   
                .status(200)
  361    362   
                .body(::aws_smithy_types::body::SdkBody::from(
  362    363   
                    "{\n    \"floatValue\": \"NaN\",\n    \"doubleValue\": \"NaN\"\n}",
  363    364   
                ))
  364    365   
                .unwrap(),
  365    366   
        )
  366    367   
        .unwrap();
  367    368   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  368    369   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  369    370   
  370    371   
        let op = crate::operation::simple_scalar_properties::SimpleScalarProperties::new();
  371    372   
        let config = op.config().expect("the operation has config");
  372    373   
        let de = config
  373    374   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  374    375   
            .expect("the config must have a deserializer");
  375    376   
  376    377   
        let parsed = de.deserialize_streaming(&mut http_response);
  377    378   
        let parsed = parsed.unwrap_or_else(|| {
  378    379   
            let http_response =
  379    380   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  380    381   
            de.deserialize_nonstreaming(&http_response)
  381    382   
        });
  382    383   
        let parsed = parsed
  383    384   
            .expect("should be successful response")
  384    385   
            .downcast::<crate::operation::simple_scalar_properties::SimpleScalarPropertiesOutput>()
  385    386   
            .unwrap();
  386    387   
        assert!(
  387    388   
            parsed.float_value.float_equals(&expected_output.float_value),
  388    389   
            "Unexpected value for `float_value` {:?} vs. {:?}",
  389    390   
            expected_output.float_value,
  390    391   
            parsed.float_value
  391    392   
        );
  392    393   
        assert!(
  393    394   
            parsed.double_value.float_equals(&expected_output.double_value),
  394    395   
            "Unexpected value for `double_value` {:?} vs. {:?}",
  395    396   
            expected_output.double_value,
  396    397   
            parsed.double_value
  397    398   
        );
  398    399   
    }
  399    400   
    /// Supports handling Infinity float values.
  400    401   
    /// Test ID: AwsJson11SupportsInfinityFloatInputs
  401    402   
    #[::tokio::test]
  402         -
    #[allow(unused_mut)]
         403  +
    #[::tracing_test::traced_test]
  403    404   
    async fn aws_json11_supports_infinity_float_inputs_response() {
  404    405   
        let expected_output = crate::operation::simple_scalar_properties::SimpleScalarPropertiesOutput::builder()
  405    406   
            .set_float_value(::std::option::Option::Some(
  406    407   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  407    408   
            ))
  408    409   
            .set_double_value(::std::option::Option::Some(
  409    410   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("Infinity").expect("invalid string for number"),
  410    411   
            ))
  411    412   
            .build();
  412    413   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  413    414   
            ::http::response::Builder::new()
  414    415   
                .header("Content-Type", "application/x-amz-json-1.1")
  415    416   
                .status(200)
  416    417   
                .body(::aws_smithy_types::body::SdkBody::from(
  417    418   
                    "{\n    \"floatValue\": \"Infinity\",\n    \"doubleValue\": \"Infinity\"\n}",
  418    419   
                ))
  419    420   
                .unwrap(),
  420    421   
        )
  421    422   
        .unwrap();
  422    423   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  423    424   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  424    425   
  425    426   
        let op = crate::operation::simple_scalar_properties::SimpleScalarProperties::new();
  426    427   
        let config = op.config().expect("the operation has config");
  427    428   
        let de = config
  428    429   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  429    430   
            .expect("the config must have a deserializer");
  430    431   
  431    432   
        let parsed = de.deserialize_streaming(&mut http_response);
  432    433   
        let parsed = parsed.unwrap_or_else(|| {
  433    434   
            let http_response =
  434    435   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  435    436   
            de.deserialize_nonstreaming(&http_response)
  436    437   
        });
  437    438   
        let parsed = parsed
  438    439   
            .expect("should be successful response")
  439    440   
            .downcast::<crate::operation::simple_scalar_properties::SimpleScalarPropertiesOutput>()
  440    441   
            .unwrap();
  441    442   
        assert!(
  442    443   
            parsed.float_value.float_equals(&expected_output.float_value),
  443    444   
            "Unexpected value for `float_value` {:?} vs. {:?}",
  444    445   
            expected_output.float_value,
  445    446   
            parsed.float_value
  446    447   
        );
  447    448   
        assert!(
  448    449   
            parsed.double_value.float_equals(&expected_output.double_value),
  449    450   
            "Unexpected value for `double_value` {:?} vs. {:?}",
  450    451   
            expected_output.double_value,
  451    452   
            parsed.double_value
  452    453   
        );
  453    454   
    }
  454    455   
    /// Supports handling -Infinity float values.
  455    456   
    /// Test ID: AwsJson11SupportsNegativeInfinityFloatInputs
  456    457   
    #[::tokio::test]
  457         -
    #[allow(unused_mut)]
         458  +
    #[::tracing_test::traced_test]
  458    459   
    async fn aws_json11_supports_negative_infinity_float_inputs_response() {
  459    460   
        let expected_output = crate::operation::simple_scalar_properties::SimpleScalarPropertiesOutput::builder()
  460    461   
            .set_float_value(::std::option::Option::Some(
  461    462   
                <f32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),
  462    463   
            ))
  463    464   
            .set_double_value(::std::option::Option::Some(
  464    465   
                <f64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive("-Infinity").expect("invalid string for number"),
  465    466   
            ))
  466    467   
            .build();
  467    468   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(

tmp-codegen-diff/codegen-client-test/json_rpc11/rust-client-codegen/src/operation/sparse_nulls_operation.rs

@@ -198,198 +380,381 @@
  218    218   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  219    219   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  220    220   
        })?;
  221    221   
        cfg.interceptor_state()
  222    222   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  223    223   
        ::std::result::Result::Ok(())
  224    224   
    }
  225    225   
}
  226    226   
#[allow(unreachable_code, unused_variables)]
  227    227   
#[cfg(test)]
  228         -
mod sparse_nulls_operation_request_test {
         228  +
mod sparse_nulls_operation_test {
         229  +
  229    230   
    /// Serializes null values in maps
  230    231   
    /// Test ID: AwsJson11SparseMapsSerializeNullValues
  231    232   
    #[::tokio::test]
  232         -
    #[allow(unused_mut)]
         233  +
    #[::tracing_test::traced_test]
  233    234   
    async fn aws_json11_sparse_maps_serialize_null_values_request() {
  234    235   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  235    236   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  236    237   
  237    238   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  238    239   
        let result = client
  239    240   
            .sparse_nulls_operation()
  240    241   
            .set_sparse_string_map(::std::option::Option::Some({
  241    242   
                let mut ret = ::std::collections::HashMap::new();
  242    243   
                ret.insert("foo".to_owned(), ::std::option::Option::None);
  243    244   
                ret
  244    245   
            }))
  245    246   
            .send()
  246    247   
            .await;
  247    248   
        let _ = dbg!(result);
  248    249   
        let http_request = request_receiver.expect_request();
  249    250   
        let expected_headers = [
  250    251   
            ("Content-Type", "application/x-amz-json-1.1"),
  251    252   
            ("X-Amz-Target", "JsonProtocol.SparseNullsOperation"),
  252    253   
        ];
  253    254   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  254    255   
        let body = http_request.body().bytes().expect("body should be strict");
  255    256   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  256    257   
            body,
  257    258   
            "{\n    \"sparseStringMap\": {\n        \"foo\": null\n    }\n}",
  258    259   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  259    260   
        ));
  260    261   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  261    262   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  262    263   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  263    264   
    }
  264    265   
    /// Serializes null values in lists
  265    266   
    /// Test ID: AwsJson11SparseListsSerializeNull
  266    267   
    #[::tokio::test]
  267         -
    #[allow(unused_mut)]
         268  +
    #[::tracing_test::traced_test]
  268    269   
    async fn aws_json11_sparse_lists_serialize_null_request() {
  269    270   
        let (http_client, request_receiver) = ::aws_smithy_runtime::client::http::test_util::capture_request(None);
  270    271   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  271    272   
  272    273   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  273    274   
        let result = client
  274    275   
            .sparse_nulls_operation()
  275    276   
            .set_sparse_string_list(::std::option::Option::Some(vec![::std::option::Option::None]))
  276    277   
            .send()
  277    278   
            .await;
  278    279   
        let _ = dbg!(result);
  279    280   
        let http_request = request_receiver.expect_request();
  280    281   
        let expected_headers = [
  281    282   
            ("Content-Type", "application/x-amz-json-1.1"),
  282    283   
            ("X-Amz-Target", "JsonProtocol.SparseNullsOperation"),
  283    284   
        ];
  284    285   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  285    286   
        let body = http_request.body().bytes().expect("body should be strict");
  286    287   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
  287    288   
            body,
  288    289   
            "{\n    \"sparseStringList\": [\n        null\n    ]\n}",
  289    290   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
  290    291   
        ));
  291    292   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  292    293   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  293    294   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  294    295   
    }
  295    296   
    /// Deserializes null values in maps
  296    297   
    /// Test ID: AwsJson11SparseMapsDeserializeNullValues
  297    298   
    #[::tokio::test]
  298         -
    #[allow(unused_mut)]
         299  +
    #[::tracing_test::traced_test]
  299    300   
    async fn aws_json11_sparse_maps_deserialize_null_values_response() {
  300    301   
        let expected_output = crate::operation::sparse_nulls_operation::SparseNullsOperationOutput::builder()
  301    302   
            .set_sparse_string_map(::std::option::Option::Some({
  302    303   
                let mut ret = ::std::collections::HashMap::new();
  303    304   
                ret.insert("foo".to_owned(), ::std::option::Option::None);
  304    305   
                ret
  305    306   
            }))
  306    307   
            .build();
  307    308   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  308    309   
            ::http::response::Builder::new()
  309    310   
                .header("Content-Type", "application/x-amz-json-1.1")
  310    311   
                .status(200)
  311    312   
                .body(::aws_smithy_types::body::SdkBody::from(
  312    313   
                    "{\n    \"sparseStringMap\": {\n        \"foo\": null\n    }\n}",
  313    314   
                ))
  314    315   
                .unwrap(),
  315    316   
        )
  316    317   
        .unwrap();
  317    318   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;
  318    319   
        use ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse;
  319    320   
  320    321   
        let op = crate::operation::sparse_nulls_operation::SparseNullsOperation::new();
  321    322   
        let config = op.config().expect("the operation has config");
  322    323   
        let de = config
  323    324   
            .load::<::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer>()
  324    325   
            .expect("the config must have a deserializer");
  325    326   
  326    327   
        let parsed = de.deserialize_streaming(&mut http_response);
  327    328   
        let parsed = parsed.unwrap_or_else(|| {
  328    329   
            let http_response =
  329    330   
                http_response.map(|body| ::aws_smithy_types::body::SdkBody::from(::bytes::Bytes::copy_from_slice(body.bytes().unwrap())));
  330    331   
            de.deserialize_nonstreaming(&http_response)
  331    332   
        });
  332    333   
        let parsed = parsed
  333    334   
            .expect("should be successful response")
  334    335   
            .downcast::<crate::operation::sparse_nulls_operation::SparseNullsOperationOutput>()
  335    336   
            .unwrap();
  336    337   
        ::pretty_assertions::assert_eq!(
  337    338   
            parsed.sparse_string_list,
  338    339   
            expected_output.sparse_string_list,
  339    340   
            "Unexpected value for `sparse_string_list`"
  340    341   
        );
  341    342   
        ::pretty_assertions::assert_eq!(
  342    343   
            parsed.sparse_string_map,
  343    344   
            expected_output.sparse_string_map,
  344    345   
            "Unexpected value for `sparse_string_map`"
  345    346   
        );
  346    347   
    }
  347    348   
    /// Deserializes null values in lists
  348    349   
    /// Test ID: AwsJson11SparseListsDeserializeNull
  349    350   
    #[::tokio::test]
  350         -
    #[allow(unused_mut)]
         351  +
    #[::tracing_test::traced_test]
  351    352   
    async fn aws_json11_sparse_lists_deserialize_null_response() {
  352    353   
        let expected_output = crate::operation::sparse_nulls_operation::SparseNullsOperationOutput::builder()
  353    354   
            .set_sparse_string_list(::std::option::Option::Some(vec![::std::option::Option::None]))
  354    355   
            .build();
  355    356   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  356    357   
            ::http::response::Builder::new()
  357    358   
                .header("Content-Type", "application/x-amz-json-1.1")
  358    359   
                .status(200)
  359    360   
                .body(::aws_smithy_types::body::SdkBody::from(
  360    361   
                    "{\n    \"sparseStringList\": [\n        null\n    ]\n}",

tmp-codegen-diff/codegen-client-test/misc/rust-client-codegen/Cargo.toml

@@ -4,4 +41,46 @@
   24     24   
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-types"
   25     25   
[dependencies.bytes]
   26     26   
version = "1.4.0"
   27     27   
[dependencies.http]
   28     28   
version = "0.2.9"
   29     29   
[dev-dependencies.pretty_assertions]
   30     30   
version = "1.3.0"
   31     31   
[dev-dependencies.tokio]
   32     32   
version = "1.23.1"
   33     33   
features = ["macros", "test-util", "rt-multi-thread"]
          34  +
[dev-dependencies.tracing]
          35  +
version = "0.1"
          36  +
[dev-dependencies.tracing-test]
          37  +
version = "0.2.5"
          38  +
features = ["no-env-filter"]
   34     39   
[features]
   35     40   
test-util = ["aws-smithy-runtime/test-util"]
   36     41   
rt-tokio = ["aws-smithy-async/rt-tokio", "aws-smithy-types/rt-tokio"]
   37     42   
behavior-version-latest = []
   38     43   
rustls = ["aws-smithy-runtime/tls-rustls"]
   39     44   
default = ["rt-tokio", "rustls"]
   40     45   
   41     46   

tmp-codegen-diff/codegen-client-test/misc/rust-client-codegen/src/operation/response_code_default_operation.rs

@@ -193,193 +256,257 @@
  213    213   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  214    214   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  215    215   
        })?;
  216    216   
        cfg.interceptor_state()
  217    217   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  218    218   
        ::std::result::Result::Ok(())
  219    219   
    }
  220    220   
}
  221    221   
#[allow(unreachable_code, unused_variables)]
  222    222   
#[cfg(test)]
  223         -
mod response_code_default_operation_request_test {
         223  +
mod response_code_default_operation_test {
         224  +
  224    225   
    /// Test ID: ResponseCodeDefaultOperation
  225    226   
    #[::tokio::test]
  226         -
    #[allow(unused_mut)]
         227  +
    #[::tracing_test::traced_test]
  227    228   
    async fn response_code_default_operation_response() {
  228    229   
        let expected_output = crate::operation::response_code_default_operation::ResponseCodeDefaultOperationOutput::builder().build();
  229    230   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  230    231   
            ::http::response::Builder::new()
  231    232   
                .status(200)
  232    233   
                .body(::aws_smithy_types::body::SdkBody::from(vec![]))
  233    234   
                .unwrap(),
  234    235   
        )
  235    236   
        .unwrap();
  236    237   
        use ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin;

tmp-codegen-diff/codegen-client-test/misc/rust-client-codegen/src/operation/response_code_http_fallback_operation.rs

@@ -197,197 +260,261 @@
  217    217   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  218    218   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  219    219   
        })?;
  220    220   
        cfg.interceptor_state()
  221    221   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  222    222   
        ::std::result::Result::Ok(())
  223    223   
    }
  224    224   
}
  225    225   
#[allow(unreachable_code, unused_variables)]
  226    226   
#[cfg(test)]
  227         -
mod response_code_http_fallback_operation_request_test {
         227  +
mod response_code_http_fallback_operation_test {
         228  +
  228    229   
    /// Test ID: ResponseCodeHttpFallbackOperation
  229    230   
    #[::tokio::test]
  230         -
    #[allow(unused_mut)]
         231  +
    #[::tracing_test::traced_test]
  231    232   
    async fn response_code_http_fallback_operation_response() {
  232    233   
        let expected_output = crate::operation::response_code_http_fallback_operation::ResponseCodeHttpFallbackOperationOutput::builder().build();
  233    234   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  234    235   
            ::http::response::Builder::new()
  235    236   
                .header("Content-Length", "2")
  236    237   
                .status(201)
  237    238   
                .body(::aws_smithy_types::body::SdkBody::from(vec![]))
  238    239   
                .unwrap(),
  239    240   
        )
  240    241   
        .unwrap();

tmp-codegen-diff/codegen-client-test/misc/rust-client-codegen/src/operation/response_code_required_operation.rs

@@ -193,193 +256,257 @@
  213    213   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  214    214   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  215    215   
        })?;
  216    216   
        cfg.interceptor_state()
  217    217   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  218    218   
        ::std::result::Result::Ok(())
  219    219   
    }
  220    220   
}
  221    221   
#[allow(unreachable_code, unused_variables)]
  222    222   
#[cfg(test)]
  223         -
mod response_code_required_operation_request_test {
         223  +
mod response_code_required_operation_test {
         224  +
  224    225   
    /// Test ID: ResponseCodeRequiredOperation
  225    226   
    #[::tokio::test]
  226         -
    #[allow(unused_mut)]
         227  +
    #[::tracing_test::traced_test]
  227    228   
    async fn response_code_required_operation_response() {
  228    229   
        let expected_output = crate::operation::response_code_required_operation::ResponseCodeRequiredOperationOutput::builder()
  229    230   
            .set_response_code(::std::option::Option::Some(201))
  230    231   
            .build()
  231    232   
            .unwrap();
  232    233   
        let mut http_response = ::aws_smithy_runtime_api::http::Response::try_from(
  233    234   
            ::http::response::Builder::new()
  234    235   
                .header("Content-Length", "2")
  235    236   
                .status(201)
  236    237   
                .body(::aws_smithy_types::body::SdkBody::from(vec![]))