Server Test

Server Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

tmp-codegen-diff/codegen-server-test/rest_json/rust-server-codegen/src/operation.rs

@@ -1,1 +31,32 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
    2      3   
const CONTENT_TYPE_OPERATIONWITHNESTEDSTRUCTURE: ::mime::Mime = ::mime::APPLICATION_JSON;
    3      4   
::pin_project_lite::pin_project! {
    4      5   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
    5      6   
    /// [`OperationWithNestedStructureInput`](crate::input::OperationWithNestedStructureInput) using modelled bindings.
    6      7   
    pub struct OperationWithNestedStructureInputFuture {
    7      8   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithNestedStructureInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
    8      9   
    }
    9     10   
}
   10     11   
   11     12   
impl std::future::Future for OperationWithNestedStructureInputFuture {
@@ -38,39 +133,139 @@
   58     59   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   59     60   
                    e,
   60     61   
                )
   61     62   
            },
   62     63   
        );
   63     64   
        OperationWithNestedStructureInputFuture {
   64     65   
            inner: Box::pin(fut),
   65     66   
        }
   66     67   
    }
   67     68   
}
          69  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
   68     70   
impl
   69     71   
    ::aws_smithy_http_server::response::IntoResponse<
   70     72   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
   71     73   
    > for crate::output::OperationWithNestedStructureOutput
   72     74   
{
   73     75   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
   74     76   
        match crate::protocol_serde::shape_operation_with_nested_structure::ser_operation_with_nested_structure_http_response(self) {
   75     77   
                        Ok(response) => response,
   76     78   
                        Err(e) => {
   77     79   
                            ::tracing::error!(error = %e, "failed to serialize response");
   78     80   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
   79     81   
                        }
   80     82   
                    }
   81     83   
    }
   82     84   
}
          85  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
   83     86   
impl
   84     87   
    ::aws_smithy_http_server::response::IntoResponse<
   85     88   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
   86     89   
    > for crate::error::OperationWithNestedStructureError
   87     90   
{
   88     91   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
   89     92   
        match crate::protocol_serde::shape_operation_with_nested_structure::ser_operation_with_nested_structure_http_error(&self) {
   90     93   
            Ok(mut response) => {
   91     94   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
   92     95   
                response
   93     96   
            },
   94     97   
            Err(e) => {
   95     98   
                ::tracing::error!(error = %e, "failed to serialize response");
   96     99   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
   97    100   
            }
   98    101   
        }
   99    102   
    }
  100    103   
}
  101    104   
         105  +
/* RustType.kt:516 */
  102    106   
#[allow(unreachable_code, unused_variables)]
         107  +
/* RustType.kt:516 */
  103    108   
#[cfg(test)]
         109  +
/* ProtocolTestGenerator.kt:98 */
  104    110   
mod operation_with_nested_structure_test {
  105    111   
  106    112   
    /// Server populates nested default values when missing in request body.
  107    113   
    /// Test ID: RestJsonServerPopulatesNestedDefaultsWhenMissingInRequestBody
  108    114   
    #[::tokio::test]
  109    115   
    #[::tracing_test::traced_test]
  110    116   
    async fn rest_json_server_populates_nested_defaults_when_missing_in_request_body_request() {
  111    117   
        #[allow(unused_mut)]
  112    118   
                    let mut http_request = http::Request::builder()
  113    119   
                        .uri("/OperationWithNestedStructure")
@@ -284,290 +345,354 @@
  304    310   
            http_response.headers(),
  305    311   
            expected_headers,
  306    312   
        ));
  307    313   
        let body = ::hyper::body::to_bytes(http_response.into_body())
  308    314   
            .await
  309    315   
            .expect("unable to extract body to bytes");
  310    316   
        ::aws_smithy_protocol_test::assert_ok(
  311    317   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"dialog\": {\n        \"language\": \"en\",\n        \"greeting\": \"hi\"\n    },\n    \"dialogList\": [\n        {\n            \"greeting\": \"hi\"\n        },\n        {\n            \"greeting\": \"hi\",\n            \"farewell\": {\n                \"phrase\": \"bye\"\n            }\n        },\n        {\n            \"language\": \"it\",\n            \"greeting\": \"ciao\",\n            \"farewell\": {\n                \"phrase\": \"arrivederci\"\n            }\n        }\n    ],\n    \"dialogMap\": {\n        \"emptyDialog\": {\n            \"greeting\": \"hi\"\n        },\n        \"partialEmptyDialog\": {\n            \"language\": \"en\",\n            \"greeting\": \"hi\",\n            \"farewell\": {\n                \"phrase\": \"bye\"\n            }\n        },\n        \"nonEmptyDialog\": {\n            \"greeting\": \"konnichiwa\",\n            \"farewell\": {\n                \"phrase\": \"sayonara\"\n            }\n        }\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
  312    318   
        );
  313    319   
    }
         320  +
         321  +
    /* ProtocolTestGenerator.kt:98 */
  314    322   
}
  315    323   
         324  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  316    325   
const CONTENT_TYPE_OPERATIONWITHDEFAULTS: ::mime::Mime = ::mime::APPLICATION_JSON;
  317    326   
::pin_project_lite::pin_project! {
  318    327   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  319    328   
    /// [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput) using modelled bindings.
  320    329   
    pub struct OperationWithDefaultsInputFuture {
  321    330   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithDefaultsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  322    331   
    }
  323    332   
}
  324    333   
  325    334   
impl std::future::Future for OperationWithDefaultsInputFuture {
@@ -352,361 +447,461 @@
  372    381   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  373    382   
                    e,
  374    383   
                )
  375    384   
            },
  376    385   
        );
  377    386   
        OperationWithDefaultsInputFuture {
  378    387   
            inner: Box::pin(fut),
  379    388   
        }
  380    389   
    }
  381    390   
}
         391  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  382    392   
impl
  383    393   
    ::aws_smithy_http_server::response::IntoResponse<
  384    394   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  385    395   
    > for crate::output::OperationWithDefaultsOutput
  386    396   
{
  387    397   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  388    398   
        match crate::protocol_serde::shape_operation_with_defaults::ser_operation_with_defaults_http_response(self) {
  389    399   
                        Ok(response) => response,
  390    400   
                        Err(e) => {
  391    401   
                            ::tracing::error!(error = %e, "failed to serialize response");
  392    402   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  393    403   
                        }
  394    404   
                    }
  395    405   
    }
  396    406   
}
         407  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  397    408   
impl
  398    409   
    ::aws_smithy_http_server::response::IntoResponse<
  399    410   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  400    411   
    > for crate::error::OperationWithDefaultsError
  401    412   
{
  402    413   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  403    414   
        match crate::protocol_serde::shape_operation_with_defaults::ser_operation_with_defaults_http_error(&self) {
  404    415   
            Ok(mut response) => {
  405    416   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
  406    417   
                response
  407    418   
            },
  408    419   
            Err(e) => {
  409    420   
                ::tracing::error!(error = %e, "failed to serialize response");
  410    421   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  411    422   
            }
  412    423   
        }
  413    424   
    }
  414    425   
}
  415    426   
         427  +
/* RustType.kt:516 */
  416    428   
#[allow(unreachable_code, unused_variables)]
         429  +
/* RustType.kt:516 */
  417    430   
#[cfg(test)]
         431  +
/* ProtocolTestGenerator.kt:98 */
  418    432   
mod operation_with_defaults_test {
  419    433   
  420    434   
    /// Server populates default values when missing in request body.
  421    435   
    /// Test ID: RestJsonServerPopulatesDefaultsWhenMissingInRequestBody
  422    436   
    #[::tokio::test]
  423    437   
    #[::tracing_test::traced_test]
  424    438   
    #[should_panic]
  425    439   
    async fn rest_json_server_populates_defaults_when_missing_in_request_body_request() {
  426    440   
        #[allow(unused_mut)]
  427    441   
        let mut http_request = http::Request::builder()
@@ -671,685 +732,749 @@
  691    705   
            http_response.headers(),
  692    706   
            expected_headers,
  693    707   
        ));
  694    708   
        let body = ::hyper::body::to_bytes(http_response.into_body())
  695    709   
            .await
  696    710   
            .expect("unable to extract body to bytes");
  697    711   
        ::aws_smithy_protocol_test::assert_ok(
  698    712   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"defaultString\": \"hi\",\n    \"defaultBoolean\": true,\n    \"defaultList\": [],\n    \"defaultDocumentMap\": {},\n    \"defaultDocumentString\": \"hi\",\n    \"defaultDocumentBoolean\": true,\n    \"defaultDocumentList\": [],\n    \"defaultTimestamp\": 0,\n    \"defaultBlob\": \"YWJj\",\n    \"defaultByte\": 1,\n    \"defaultShort\": 1,\n    \"defaultInteger\": 10,\n    \"defaultLong\": 100,\n    \"defaultFloat\": 1.0,\n    \"defaultDouble\": 1.0,\n    \"defaultMap\": {},\n    \"defaultEnum\": \"FOO\",\n    \"defaultIntEnum\": 1,\n    \"emptyString\": \"\",\n    \"falseBoolean\": false,\n    \"emptyBlob\": \"\",\n    \"zeroByte\": 0,\n    \"zeroShort\": 0,\n    \"zeroInteger\": 0,\n    \"zeroLong\": 0,\n    \"zeroFloat\": 0.0,\n    \"zeroDouble\": 0.0\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
  699    713   
        );
  700    714   
    }
         715  +
         716  +
    /* ProtocolTestGenerator.kt:98 */
  701    717   
}
  702    718   
         719  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  703    720   
const CONTENT_TYPE_CONTENTTYPEPARAMETERS: ::mime::Mime = ::mime::APPLICATION_JSON;
  704    721   
::pin_project_lite::pin_project! {
  705    722   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  706    723   
    /// [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput) using modelled bindings.
  707    724   
    pub struct ContentTypeParametersInputFuture {
  708    725   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ContentTypeParametersInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  709    726   
    }
  710    727   
}
  711    728   
  712    729   
impl std::future::Future for ContentTypeParametersInputFuture {
@@ -739,756 +865,889 @@
  759    776   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  760    777   
                    e,
  761    778   
                )
  762    779   
            },
  763    780   
        );
  764    781   
        ContentTypeParametersInputFuture {
  765    782   
            inner: Box::pin(fut),
  766    783   
        }
  767    784   
    }
  768    785   
}
         786  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  769    787   
impl
  770    788   
    ::aws_smithy_http_server::response::IntoResponse<
  771    789   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  772    790   
    > for crate::output::ContentTypeParametersOutput
  773    791   
{
  774    792   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  775    793   
        match crate::protocol_serde::shape_content_type_parameters::ser_content_type_parameters_http_response(self) {
  776    794   
                        Ok(response) => response,
  777    795   
                        Err(e) => {
  778    796   
                            ::tracing::error!(error = %e, "failed to serialize response");
  779    797   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  780    798   
                        }
  781    799   
                    }
  782    800   
    }
  783    801   
}
  784    802   
         803  +
/* RustType.kt:516 */
  785    804   
#[allow(unreachable_code, unused_variables)]
         805  +
/* RustType.kt:516 */
  786    806   
#[cfg(test)]
         807  +
/* ProtocolTestGenerator.kt:98 */
  787    808   
mod content_type_parameters_test {
  788    809   
  789    810   
    /// A server should ignore parameters added to the content type
  790    811   
    /// Test ID: RestJsonMustSupportParametersInContentType
  791    812   
    #[::tokio::test]
  792    813   
    #[::tracing_test::traced_test]
  793    814   
    async fn rest_json_must_support_parameters_in_content_type_request() {
  794    815   
        #[allow(unused_mut)]
  795    816   
        let mut http_request = http::Request::builder()
  796    817   
            .uri("/ContentTypeParameters")
  797    818   
            .method("POST")
  798    819   
            .header("Content-Type", "application/json; charset=utf-8")
  799    820   
            .body(::aws_smithy_http_server::body::Body::from(
  800    821   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
  801    822   
                    "{\"value\":5}".as_bytes(),
  802    823   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
  803    824   
                )),
  804    825   
            ))
  805    826   
            .unwrap();
  806    827   
        #[allow(unused_mut)]
  807    828   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
  808    829   
        let config = crate::service::RestJsonConfig::builder().build();
  809    830   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
  810    831   
            .content_type_parameters(move |input: crate::input::ContentTypeParametersInput| {
  811    832   
                let sender = sender.clone();
  812    833   
                async move {
  813    834   
                    let result = {
  814    835   
                        let expected = crate::input::ContentTypeParametersInput {
  815    836   
                            value: ::std::option::Option::Some(5),
  816    837   
                        };
  817    838   
                        ::pretty_assertions::assert_eq!(input, expected);
  818    839   
                        let output = crate::output::ContentTypeParametersOutput {};
  819    840   
                        output
  820    841   
                    };
  821    842   
                    sender.send(()).await.expect("receiver dropped early");
  822    843   
                    result
  823    844   
                }
  824    845   
            })
  825    846   
            .build_unchecked();
  826    847   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
  827    848   
            .await
  828    849   
            .expect("unable to make an HTTP request");
  829    850   
        assert!(
  830    851   
            receiver.recv().await.is_some(),
  831    852   
            "we expected operation handler to be invoked but it was not entered"
  832    853   
        );
  833    854   
    }
         855  +
         856  +
    /* ProtocolTestGenerator.kt:98 */
  834    857   
}
  835    858   
         859  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  836    860   
const CONTENT_TYPE_PUTWITHCONTENTENCODING: ::mime::Mime = ::mime::APPLICATION_JSON;
  837    861   
::pin_project_lite::pin_project! {
  838    862   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  839    863   
    /// [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput) using modelled bindings.
  840    864   
    pub struct PutWithContentEncodingInputFuture {
  841    865   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::PutWithContentEncodingInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  842    866   
    }
  843    867   
}
  844    868   
  845    869   
impl std::future::Future for PutWithContentEncodingInputFuture {
@@ -872,896 +947,973 @@
  892    916   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  893    917   
                    e,
  894    918   
                )
  895    919   
            },
  896    920   
        );
  897    921   
        PutWithContentEncodingInputFuture {
  898    922   
            inner: Box::pin(fut),
  899    923   
        }
  900    924   
    }
  901    925   
}
         926  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  902    927   
impl
  903    928   
    ::aws_smithy_http_server::response::IntoResponse<
  904    929   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  905    930   
    > for crate::output::PutWithContentEncodingOutput
  906    931   
{
  907    932   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  908    933   
        match crate::protocol_serde::shape_put_with_content_encoding::ser_put_with_content_encoding_http_response(self) {
  909    934   
                        Ok(response) => response,
  910    935   
                        Err(e) => {
  911    936   
                            ::tracing::error!(error = %e, "failed to serialize response");
  912    937   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  913    938   
                        }
  914    939   
                    }
  915    940   
    }
  916    941   
}
  917    942   
         943  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  918    944   
const CONTENT_TYPE_FRACTIONALSECONDS: ::mime::Mime = ::mime::APPLICATION_JSON;
  919    945   
::pin_project_lite::pin_project! {
  920    946   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  921    947   
    /// [`FractionalSecondsInput`](crate::input::FractionalSecondsInput) using modelled bindings.
  922    948   
    pub struct FractionalSecondsInputFuture {
  923    949   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::FractionalSecondsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  924    950   
    }
  925    951   
}
  926    952   
  927    953   
impl std::future::Future for FractionalSecondsInputFuture {
@@ -956,982 +1033,1061 @@
  976   1002   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  977   1003   
                    e,
  978   1004   
                )
  979   1005   
            },
  980   1006   
        );
  981   1007   
        FractionalSecondsInputFuture {
  982   1008   
            inner: Box::pin(fut),
  983   1009   
        }
  984   1010   
    }
  985   1011   
}
        1012  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  986   1013   
impl
  987   1014   
    ::aws_smithy_http_server::response::IntoResponse<
  988   1015   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  989   1016   
    > for crate::output::FractionalSecondsOutput
  990   1017   
{
  991   1018   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  992   1019   
        match crate::protocol_serde::shape_fractional_seconds::ser_fractional_seconds_http_response(
  993   1020   
            self,
  994   1021   
        ) {
  995   1022   
            Ok(response) => response,
  996   1023   
            Err(e) => {
  997   1024   
                ::tracing::error!(error = %e, "failed to serialize response");
  998   1025   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  999   1026   
            }
 1000   1027   
        }
 1001   1028   
    }
 1002   1029   
}
 1003   1030   
        1031  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1004   1032   
const CONTENT_TYPE_DATETIMEOFFSETS: ::mime::Mime = ::mime::APPLICATION_JSON;
 1005   1033   
::pin_project_lite::pin_project! {
 1006   1034   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1007   1035   
    /// [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput) using modelled bindings.
 1008   1036   
    pub struct DatetimeOffsetsInputFuture {
 1009   1037   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::DatetimeOffsetsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 1010   1038   
    }
 1011   1039   
}
 1012   1040   
 1013   1041   
impl std::future::Future for DatetimeOffsetsInputFuture {
@@ -1040,1068 +1117,1147 @@
 1060   1088   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1061   1089   
                    e,
 1062   1090   
                )
 1063   1091   
            },
 1064   1092   
        );
 1065   1093   
        DatetimeOffsetsInputFuture {
 1066   1094   
            inner: Box::pin(fut),
 1067   1095   
        }
 1068   1096   
    }
 1069   1097   
}
        1098  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1070   1099   
impl
 1071   1100   
    ::aws_smithy_http_server::response::IntoResponse<
 1072   1101   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 1073   1102   
    > for crate::output::DatetimeOffsetsOutput
 1074   1103   
{
 1075   1104   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1076   1105   
        match crate::protocol_serde::shape_datetime_offsets::ser_datetime_offsets_http_response(
 1077   1106   
            self,
 1078   1107   
        ) {
 1079   1108   
            Ok(response) => response,
 1080   1109   
            Err(e) => {
 1081   1110   
                ::tracing::error!(error = %e, "failed to serialize response");
 1082   1111   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 1083   1112   
            }
 1084   1113   
        }
 1085   1114   
    }
 1086   1115   
}
 1087   1116   
        1117  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1088   1118   
const CONTENT_TYPE_TESTPOSTNOINPUTNOPAYLOAD: ::mime::Mime = ::mime::APPLICATION_JSON;
 1089   1119   
::pin_project_lite::pin_project! {
 1090   1120   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1091   1121   
    /// [`TestPostNoInputNoPayloadInput`](crate::input::TestPostNoInputNoPayloadInput) using modelled bindings.
 1092   1122   
    pub struct TestPostNoInputNoPayloadInputFuture {
 1093   1123   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::TestPostNoInputNoPayloadInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 1094   1124   
    }
 1095   1125   
}
 1096   1126   
 1097   1127   
impl std::future::Future for TestPostNoInputNoPayloadInputFuture {
@@ -1124,1154 +1251,1288 @@
 1144   1174   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1145   1175   
                    e,
 1146   1176   
                )
 1147   1177   
            },
 1148   1178   
        );
 1149   1179   
        TestPostNoInputNoPayloadInputFuture {
 1150   1180   
            inner: Box::pin(fut),
 1151   1181   
        }
 1152   1182   
    }
 1153   1183   
}
        1184  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1154   1185   
impl
 1155   1186   
    ::aws_smithy_http_server::response::IntoResponse<
 1156   1187   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 1157   1188   
    > for crate::output::TestPostNoInputNoPayloadOutput
 1158   1189   
{
 1159   1190   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1160   1191   
        match crate::protocol_serde::shape_test_post_no_input_no_payload::ser_test_post_no_input_no_payload_http_response(self) {
 1161   1192   
                        Ok(response) => response,
 1162   1193   
                        Err(e) => {
 1163   1194   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1164   1195   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 1165   1196   
                        }
 1166   1197   
                    }
 1167   1198   
    }
 1168   1199   
}
 1169   1200   
        1201  +
/* RustType.kt:516 */
 1170   1202   
#[allow(unreachable_code, unused_variables)]
        1203  +
/* RustType.kt:516 */
 1171   1204   
#[cfg(test)]
        1205  +
/* ProtocolTestGenerator.kt:98 */
 1172   1206   
mod test_post_no_input_no_payload_test {
 1173   1207   
 1174   1208   
    /// Serializes a POST request for an operation with no input, and therefore no modeled body
 1175   1209   
    /// Test ID: RestJsonHttpPostWithNoInput
 1176   1210   
    #[::tokio::test]
 1177   1211   
    #[::tracing_test::traced_test]
 1178   1212   
    async fn rest_json_http_post_with_no_input_request() {
 1179   1213   
        #[allow(unused_mut)]
 1180   1214   
        let mut http_request = http::Request::builder()
 1181   1215   
            .uri("/no_input_no_payload")
 1182   1216   
            .method("POST")
 1183   1217   
            .body(::aws_smithy_http_server::body::Body::from(
 1184   1218   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
 1185   1219   
                    "".as_bytes(),
 1186   1220   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
 1187   1221   
                )),
 1188   1222   
            ))
 1189   1223   
            .unwrap();
 1190   1224   
        #[allow(unused_mut)]
 1191   1225   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
 1192   1226   
        let config = crate::service::RestJsonConfig::builder().build();
 1193   1227   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
 1194   1228   
            .test_post_no_input_no_payload(
 1195   1229   
                move |input: crate::input::TestPostNoInputNoPayloadInput| {
 1196   1230   
                    let sender = sender.clone();
 1197   1231   
                    async move {
 1198   1232   
                        let result = {
 1199   1233   
                            let expected = crate::input::TestPostNoInputNoPayloadInput {};
 1200   1234   
                            ::pretty_assertions::assert_eq!(input, expected);
 1201   1235   
                            let output = crate::output::TestPostNoInputNoPayloadOutput {
 1202   1236   
                                test_id: ::std::option::Option::None,
 1203   1237   
                            };
 1204   1238   
                            output
 1205   1239   
                        };
 1206   1240   
                        sender.send(()).await.expect("receiver dropped early");
 1207   1241   
                        result
 1208   1242   
                    }
 1209   1243   
                },
 1210   1244   
            )
 1211   1245   
            .build_unchecked();
 1212   1246   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 1213   1247   
            .await
 1214   1248   
            .expect("unable to make an HTTP request");
 1215   1249   
        assert!(
 1216   1250   
            receiver.recv().await.is_some(),
 1217   1251   
            "we expected operation handler to be invoked but it was not entered"
 1218   1252   
        );
 1219   1253   
    }
        1254  +
        1255  +
    /* ProtocolTestGenerator.kt:98 */
 1220   1256   
}
 1221   1257   
        1258  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1222   1259   
const CONTENT_TYPE_TESTGETNOINPUTNOPAYLOAD: ::mime::Mime = ::mime::APPLICATION_JSON;
 1223   1260   
::pin_project_lite::pin_project! {
 1224   1261   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1225   1262   
    /// [`TestGetNoInputNoPayloadInput`](crate::input::TestGetNoInputNoPayloadInput) using modelled bindings.
 1226   1263   
    pub struct TestGetNoInputNoPayloadInputFuture {
 1227   1264   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::TestGetNoInputNoPayloadInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 1228   1265   
    }
 1229   1266   
}
 1230   1267   
 1231   1268   
impl std::future::Future for TestGetNoInputNoPayloadInputFuture {
@@ -1258,1295 +1385,1429 @@
 1278   1315   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1279   1316   
                    e,
 1280   1317   
                )
 1281   1318   
            },
 1282   1319   
        );
 1283   1320   
        TestGetNoInputNoPayloadInputFuture {
 1284   1321   
            inner: Box::pin(fut),
 1285   1322   
        }
 1286   1323   
    }
 1287   1324   
}
        1325  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1288   1326   
impl
 1289   1327   
    ::aws_smithy_http_server::response::IntoResponse<
 1290   1328   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 1291   1329   
    > for crate::output::TestGetNoInputNoPayloadOutput
 1292   1330   
{
 1293   1331   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1294   1332   
        match crate::protocol_serde::shape_test_get_no_input_no_payload::ser_test_get_no_input_no_payload_http_response(self) {
 1295   1333   
                        Ok(response) => response,
 1296   1334   
                        Err(e) => {
 1297   1335   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1298   1336   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 1299   1337   
                        }
 1300   1338   
                    }
 1301   1339   
    }
 1302   1340   
}
 1303   1341   
        1342  +
/* RustType.kt:516 */
 1304   1343   
#[allow(unreachable_code, unused_variables)]
        1344  +
/* RustType.kt:516 */
 1305   1345   
#[cfg(test)]
        1346  +
/* ProtocolTestGenerator.kt:98 */
 1306   1347   
mod test_get_no_input_no_payload_test {
 1307   1348   
 1308   1349   
    /// Serializes a GET request for an operation with no input, and therefore no modeled body
 1309   1350   
    /// Test ID: RestJsonHttpGetWithNoInput
 1310   1351   
    #[::tokio::test]
 1311   1352   
    #[::tracing_test::traced_test]
 1312   1353   
    async fn rest_json_http_get_with_no_input_request() {
 1313   1354   
        #[allow(unused_mut)]
 1314   1355   
        let mut http_request = http::Request::builder()
 1315   1356   
            .uri("/no_input_no_payload")
 1316   1357   
            .method("GET")
 1317   1358   
            .body(::aws_smithy_http_server::body::Body::from(
 1318   1359   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
 1319   1360   
                    "".as_bytes(),
 1320   1361   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
 1321   1362   
                )),
 1322   1363   
            ))
 1323   1364   
            .unwrap();
 1324   1365   
        #[allow(unused_mut)]
 1325   1366   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
 1326   1367   
        let config = crate::service::RestJsonConfig::builder().build();
 1327   1368   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
 1328   1369   
            .test_get_no_input_no_payload(
 1329   1370   
                move |input: crate::input::TestGetNoInputNoPayloadInput| {
 1330   1371   
                    let sender = sender.clone();
 1331   1372   
                    async move {
 1332   1373   
                        let result = {
 1333   1374   
                            let expected = crate::input::TestGetNoInputNoPayloadInput {};
 1334   1375   
                            ::pretty_assertions::assert_eq!(input, expected);
 1335   1376   
                            let output = crate::output::TestGetNoInputNoPayloadOutput {
 1336   1377   
                                test_id: ::std::option::Option::None,
 1337   1378   
                            };
 1338   1379   
                            output
 1339   1380   
                        };
 1340   1381   
                        sender.send(()).await.expect("receiver dropped early");
 1341   1382   
                        result
 1342   1383   
                    }
 1343   1384   
                },
 1344   1385   
            )
 1345   1386   
            .build_unchecked();
 1346   1387   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 1347   1388   
            .await
 1348   1389   
            .expect("unable to make an HTTP request");
 1349   1390   
        assert!(
 1350   1391   
            receiver.recv().await.is_some(),
 1351   1392   
            "we expected operation handler to be invoked but it was not entered"
 1352   1393   
        );
 1353   1394   
    }
        1395  +
        1396  +
    /* ProtocolTestGenerator.kt:98 */
 1354   1397   
}
 1355   1398   
        1399  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1356   1400   
const CONTENT_TYPE_TESTPOSTNOPAYLOAD: ::mime::Mime = ::mime::APPLICATION_JSON;
 1357   1401   
::pin_project_lite::pin_project! {
 1358   1402   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1359   1403   
    /// [`TestPostNoPayloadInput`](crate::input::TestPostNoPayloadInput) using modelled bindings.
 1360   1404   
    pub struct TestPostNoPayloadInputFuture {
 1361   1405   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::TestPostNoPayloadInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 1362   1406   
    }
 1363   1407   
}
 1364   1408   
 1365   1409   
impl std::future::Future for TestPostNoPayloadInputFuture {
@@ -1394,1438 +1471,1519 @@
 1414   1458   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1415   1459   
                    e,
 1416   1460   
                )
 1417   1461   
            },
 1418   1462   
        );
 1419   1463   
        TestPostNoPayloadInputFuture {
 1420   1464   
            inner: Box::pin(fut),
 1421   1465   
        }
 1422   1466   
    }
 1423   1467   
}
        1468  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1424   1469   
impl
 1425   1470   
    ::aws_smithy_http_server::response::IntoResponse<
 1426   1471   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 1427   1472   
    > for crate::output::TestPostNoPayloadOutput
 1428   1473   
{
 1429   1474   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1430   1475   
        match crate::protocol_serde::shape_test_post_no_payload::ser_test_post_no_payload_http_response(self) {
 1431   1476   
                        Ok(response) => response,
 1432   1477   
                        Err(e) => {
 1433   1478   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1434   1479   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 1435   1480   
                        }
 1436   1481   
                    }
 1437   1482   
    }
 1438   1483   
}
 1439   1484   
        1485  +
/* RustType.kt:516 */
 1440   1486   
#[allow(unreachable_code, unused_variables)]
        1487  +
/* RustType.kt:516 */
 1441   1488   
#[cfg(test)]
        1489  +
/* ProtocolTestGenerator.kt:98 */
 1442   1490   
mod test_post_no_payload_test {
 1443   1491   
 1444   1492   
    /// Serializes a POST request with no modeled body
 1445   1493   
    /// Test ID: RestJsonHttpPostWithNoModeledBody
 1446   1494   
    #[::tokio::test]
 1447   1495   
    #[::tracing_test::traced_test]
 1448   1496   
    async fn rest_json_http_post_with_no_modeled_body_request() {
 1449   1497   
        #[allow(unused_mut)]
 1450   1498   
        let mut http_request = http::Request::builder()
 1451   1499   
            .uri("/no_payload")
@@ -1508,1556 +1569,1620 @@
 1528   1576   
            })
 1529   1577   
            .build_unchecked();
 1530   1578   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 1531   1579   
            .await
 1532   1580   
            .expect("unable to make an HTTP request");
 1533   1581   
        assert!(
 1534   1582   
            receiver.recv().await.is_some(),
 1535   1583   
            "we expected operation handler to be invoked but it was not entered"
 1536   1584   
        );
 1537   1585   
    }
        1586  +
        1587  +
    /* ProtocolTestGenerator.kt:98 */
 1538   1588   
}
 1539   1589   
        1590  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1540   1591   
const CONTENT_TYPE_TESTGETNOPAYLOAD: ::mime::Mime = ::mime::APPLICATION_JSON;
 1541   1592   
::pin_project_lite::pin_project! {
 1542   1593   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1543   1594   
    /// [`TestGetNoPayloadInput`](crate::input::TestGetNoPayloadInput) using modelled bindings.
 1544   1595   
    pub struct TestGetNoPayloadInputFuture {
 1545   1596   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::TestGetNoPayloadInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 1546   1597   
    }
 1547   1598   
}
 1548   1599   
 1549   1600   
impl std::future::Future for TestGetNoPayloadInputFuture {
@@ -1578,1629 +1655,1710 @@
 1598   1649   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1599   1650   
                    e,
 1600   1651   
                )
 1601   1652   
            },
 1602   1653   
        );
 1603   1654   
        TestGetNoPayloadInputFuture {
 1604   1655   
            inner: Box::pin(fut),
 1605   1656   
        }
 1606   1657   
    }
 1607   1658   
}
        1659  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1608   1660   
impl
 1609   1661   
    ::aws_smithy_http_server::response::IntoResponse<
 1610   1662   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 1611   1663   
    > for crate::output::TestGetNoPayloadOutput
 1612   1664   
{
 1613   1665   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1614   1666   
        match crate::protocol_serde::shape_test_get_no_payload::ser_test_get_no_payload_http_response(self) {
 1615   1667   
                        Ok(response) => response,
 1616   1668   
                        Err(e) => {
 1617   1669   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1618   1670   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 1619   1671   
                        }
 1620   1672   
                    }
 1621   1673   
    }
 1622   1674   
}
 1623   1675   
        1676  +
/* RustType.kt:516 */
 1624   1677   
#[allow(unreachable_code, unused_variables)]
        1678  +
/* RustType.kt:516 */
 1625   1679   
#[cfg(test)]
        1680  +
/* ProtocolTestGenerator.kt:98 */
 1626   1681   
mod test_get_no_payload_test {
 1627   1682   
 1628   1683   
    /// Serializes a GET request with no modeled body
 1629   1684   
    /// Test ID: RestJsonHttpGetWithNoModeledBody
 1630   1685   
    #[::tokio::test]
 1631   1686   
    #[::tracing_test::traced_test]
 1632   1687   
    async fn rest_json_http_get_with_no_modeled_body_request() {
 1633   1688   
        #[allow(unused_mut)]
 1634   1689   
        let mut http_request = http::Request::builder()
 1635   1690   
            .uri("/no_payload")
@@ -1692,1747 +1753,1811 @@
 1712   1767   
            })
 1713   1768   
            .build_unchecked();
 1714   1769   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 1715   1770   
            .await
 1716   1771   
            .expect("unable to make an HTTP request");
 1717   1772   
        assert!(
 1718   1773   
            receiver.recv().await.is_some(),
 1719   1774   
            "we expected operation handler to be invoked but it was not entered"
 1720   1775   
        );
 1721   1776   
    }
        1777  +
        1778  +
    /* ProtocolTestGenerator.kt:98 */
 1722   1779   
}
 1723   1780   
        1781  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1724   1782   
::pin_project_lite::pin_project! {
 1725   1783   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1726   1784   
    /// [`TestPayloadBlobInput`](crate::input::TestPayloadBlobInput) using modelled bindings.
 1727   1785   
    pub struct TestPayloadBlobInputFuture {
 1728   1786   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::TestPayloadBlobInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 1729   1787   
    }
 1730   1788   
}
 1731   1789   
 1732   1790   
impl std::future::Future for TestPayloadBlobInputFuture {
 1733   1791   
    type Output = Result<
@@ -1755,1813 +1834,1896 @@
 1775   1833   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1776   1834   
                    e,
 1777   1835   
                )
 1778   1836   
            },
 1779   1837   
        );
 1780   1838   
        TestPayloadBlobInputFuture {
 1781   1839   
            inner: Box::pin(fut),
 1782   1840   
        }
 1783   1841   
    }
 1784   1842   
}
        1843  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1785   1844   
impl
 1786   1845   
    ::aws_smithy_http_server::response::IntoResponse<
 1787   1846   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 1788   1847   
    > for crate::output::TestPayloadBlobOutput
 1789   1848   
{
 1790   1849   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1791   1850   
        match crate::protocol_serde::shape_test_payload_blob::ser_test_payload_blob_http_response(
 1792   1851   
            self,
 1793   1852   
        ) {
 1794   1853   
            Ok(response) => response,
 1795   1854   
            Err(e) => {
 1796   1855   
                ::tracing::error!(error = %e, "failed to serialize response");
 1797   1856   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 1798   1857   
            }
 1799   1858   
        }
 1800   1859   
    }
 1801   1860   
}
 1802   1861   
        1862  +
/* RustType.kt:516 */
 1803   1863   
#[allow(unreachable_code, unused_variables)]
        1864  +
/* RustType.kt:516 */
 1804   1865   
#[cfg(test)]
        1866  +
/* ProtocolTestGenerator.kt:98 */
 1805   1867   
mod test_payload_blob_test {
 1806   1868   
 1807   1869   
    /// Serializes a payload targeting an empty blob
 1808   1870   
    /// Test ID: RestJsonHttpWithEmptyBlobPayload
 1809   1871   
    #[::tokio::test]
 1810   1872   
    #[::tracing_test::traced_test]
 1811   1873   
    async fn rest_json_http_with_empty_blob_payload_request() {
 1812   1874   
        #[allow(unused_mut)]
 1813   1875   
        let mut http_request = http::Request::builder()
 1814   1876   
            .uri("/blob_payload")
@@ -1877,1939 +1938,2003 @@
 1897   1959   
            })
 1898   1960   
            .build_unchecked();
 1899   1961   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 1900   1962   
            .await
 1901   1963   
            .expect("unable to make an HTTP request");
 1902   1964   
        assert!(
 1903   1965   
            receiver.recv().await.is_some(),
 1904   1966   
            "we expected operation handler to be invoked but it was not entered"
 1905   1967   
        );
 1906   1968   
    }
        1969  +
        1970  +
    /* ProtocolTestGenerator.kt:98 */
 1907   1971   
}
 1908   1972   
        1973  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1909   1974   
const CONTENT_TYPE_TESTPAYLOADSTRUCTURE: ::mime::Mime = ::mime::APPLICATION_JSON;
 1910   1975   
::pin_project_lite::pin_project! {
 1911   1976   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1912   1977   
    /// [`TestPayloadStructureInput`](crate::input::TestPayloadStructureInput) using modelled bindings.
 1913   1978   
    pub struct TestPayloadStructureInputFuture {
 1914   1979   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::TestPayloadStructureInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 1915   1980   
    }
 1916   1981   
}
 1917   1982   
 1918   1983   
impl std::future::Future for TestPayloadStructureInputFuture {
@@ -1945,2010 +2022,2091 @@
 1965   2030   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1966   2031   
                    e,
 1967   2032   
                )
 1968   2033   
            },
 1969   2034   
        );
 1970   2035   
        TestPayloadStructureInputFuture {
 1971   2036   
            inner: Box::pin(fut),
 1972   2037   
        }
 1973   2038   
    }
 1974   2039   
}
        2040  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1975   2041   
impl
 1976   2042   
    ::aws_smithy_http_server::response::IntoResponse<
 1977   2043   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 1978   2044   
    > for crate::output::TestPayloadStructureOutput
 1979   2045   
{
 1980   2046   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1981   2047   
        match crate::protocol_serde::shape_test_payload_structure::ser_test_payload_structure_http_response(self) {
 1982   2048   
                        Ok(response) => response,
 1983   2049   
                        Err(e) => {
 1984   2050   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1985   2051   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 1986   2052   
                        }
 1987   2053   
                    }
 1988   2054   
    }
 1989   2055   
}
 1990   2056   
        2057  +
/* RustType.kt:516 */
 1991   2058   
#[allow(unreachable_code, unused_variables)]
        2059  +
/* RustType.kt:516 */
 1992   2060   
#[cfg(test)]
        2061  +
/* ProtocolTestGenerator.kt:98 */
 1993   2062   
mod test_payload_structure_test {
 1994   2063   
 1995   2064   
    /// Serializes a payload targeting an empty structure
 1996   2065   
    /// Test ID: RestJsonHttpWithEmptyStructurePayload
 1997   2066   
    #[::tokio::test]
 1998   2067   
    #[::tracing_test::traced_test]
 1999   2068   
    async fn rest_json_http_with_empty_structure_payload_request() {
 2000   2069   
        #[allow(unused_mut)]
 2001   2070   
        let mut http_request = http::Request::builder()
 2002   2071   
            .uri("/payload")
@@ -2139,2208 +2200,2272 @@
 2159   2228   
            })
 2160   2229   
            .build_unchecked();
 2161   2230   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 2162   2231   
            .await
 2163   2232   
            .expect("unable to make an HTTP request");
 2164   2233   
        assert!(
 2165   2234   
            receiver.recv().await.is_some(),
 2166   2235   
            "we expected operation handler to be invoked but it was not entered"
 2167   2236   
        );
 2168   2237   
    }
        2238  +
        2239  +
    /* ProtocolTestGenerator.kt:98 */
 2169   2240   
}
 2170   2241   
        2242  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2171   2243   
const CONTENT_TYPE_TESTBODYSTRUCTURE: ::mime::Mime = ::mime::APPLICATION_JSON;
 2172   2244   
::pin_project_lite::pin_project! {
 2173   2245   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2174   2246   
    /// [`TestBodyStructureInput`](crate::input::TestBodyStructureInput) using modelled bindings.
 2175   2247   
    pub struct TestBodyStructureInputFuture {
 2176   2248   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::TestBodyStructureInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 2177   2249   
    }
 2178   2250   
}
 2179   2251   
 2180   2252   
impl std::future::Future for TestBodyStructureInputFuture {
@@ -2209,2281 +2286,2362 @@
 2229   2301   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 2230   2302   
                    e,
 2231   2303   
                )
 2232   2304   
            },
 2233   2305   
        );
 2234   2306   
        TestBodyStructureInputFuture {
 2235   2307   
            inner: Box::pin(fut),
 2236   2308   
        }
 2237   2309   
    }
 2238   2310   
}
        2311  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2239   2312   
impl
 2240   2313   
    ::aws_smithy_http_server::response::IntoResponse<
 2241   2314   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2242   2315   
    > for crate::output::TestBodyStructureOutput
 2243   2316   
{
 2244   2317   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2245   2318   
        match crate::protocol_serde::shape_test_body_structure::ser_test_body_structure_http_response(self) {
 2246   2319   
                        Ok(response) => response,
 2247   2320   
                        Err(e) => {
 2248   2321   
                            ::tracing::error!(error = %e, "failed to serialize response");
 2249   2322   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 2250   2323   
                        }
 2251   2324   
                    }
 2252   2325   
    }
 2253   2326   
}
 2254   2327   
        2328  +
/* RustType.kt:516 */
 2255   2329   
#[allow(unreachable_code, unused_variables)]
        2330  +
/* RustType.kt:516 */
 2256   2331   
#[cfg(test)]
        2332  +
/* ProtocolTestGenerator.kt:98 */
 2257   2333   
mod test_body_structure_test {
 2258   2334   
 2259   2335   
    /// Serializes a structure
 2260   2336   
    /// Test ID: RestJsonTestBodyStructure
 2261   2337   
    #[::tokio::test]
 2262   2338   
    #[::tracing_test::traced_test]
 2263   2339   
    async fn rest_json_test_body_structure_request() {
 2264   2340   
        #[allow(unused_mut)]
 2265   2341   
        let mut http_request = http::Request::builder()
 2266   2342   
            .uri("/body")
@@ -2330,2406 +2391,2470 @@
 2350   2426   
            })
 2351   2427   
            .build_unchecked();
 2352   2428   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 2353   2429   
            .await
 2354   2430   
            .expect("unable to make an HTTP request");
 2355   2431   
        assert!(
 2356   2432   
            receiver.recv().await.is_some(),
 2357   2433   
            "we expected operation handler to be invoked but it was not entered"
 2358   2434   
        );
 2359   2435   
    }
        2436  +
        2437  +
    /* ProtocolTestGenerator.kt:98 */
 2360   2438   
}
 2361   2439   
        2440  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2362   2441   
static CONTENT_TYPE_MALFORMEDACCEPTWITHGENERICSTRING: std::sync::LazyLock<::mime::Mime> =
 2363   2442   
    std::sync::LazyLock::new(|| {
 2364   2443   
        "text/plain"
 2365   2444   
            .parse::<::mime::Mime>()
 2366   2445   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 2367   2446   
    });
 2368   2447   
::pin_project_lite::pin_project! {
 2369   2448   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2370   2449   
    /// [`MalformedAcceptWithGenericStringInput`](crate::input::MalformedAcceptWithGenericStringInput) using modelled bindings.
 2371   2450   
    pub struct MalformedAcceptWithGenericStringInputFuture {
@@ -2403,2482 +2525,2611 @@
 2423   2502   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 2424   2503   
                    e,
 2425   2504   
                )
 2426   2505   
            },
 2427   2506   
        );
 2428   2507   
        MalformedAcceptWithGenericStringInputFuture {
 2429   2508   
            inner: Box::pin(fut),
 2430   2509   
        }
 2431   2510   
    }
 2432   2511   
}
        2512  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2433   2513   
impl
 2434   2514   
    ::aws_smithy_http_server::response::IntoResponse<
 2435   2515   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2436   2516   
    > for crate::output::MalformedAcceptWithGenericStringOutput
 2437   2517   
{
 2438   2518   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2439   2519   
        match crate::protocol_serde::shape_malformed_accept_with_generic_string::ser_malformed_accept_with_generic_string_http_response(self) {
 2440   2520   
                        Ok(response) => response,
 2441   2521   
                        Err(e) => {
 2442   2522   
                            ::tracing::error!(error = %e, "failed to serialize response");
 2443   2523   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 2444   2524   
                        }
 2445   2525   
                    }
 2446   2526   
    }
 2447   2527   
}
 2448   2528   
        2529  +
/* RustType.kt:516 */
 2449   2530   
#[allow(unreachable_code, unused_variables)]
        2531  +
/* RustType.kt:516 */
 2450   2532   
#[cfg(test)]
        2533  +
/* ProtocolTestGenerator.kt:98 */
 2451   2534   
mod malformed_accept_with_generic_string_test {
 2452   2535   
 2453   2536   
    /// When there is a payload without a mediaType trait, the accept must match the
 2454   2537   
    /// implied content type of the shape.
 2455   2538   
    /// Test ID: RestJsonWithPayloadExpectsImpliedAccept
 2456   2539   
    #[::tokio::test]
 2457   2540   
    #[::tracing_test::traced_test]
 2458   2541   
    async fn rest_json_with_payload_expects_implied_accept_malformed_request() {
 2459   2542   
        {
 2460   2543   
            #[allow(unused_mut)]
 2461   2544   
            let mut http_request = http::Request::builder()
 2462   2545   
                .uri("/MalformedAcceptWithGenericString")
 2463   2546   
                .method("POST")
 2464   2547   
                .header("accept", "application/json")
 2465   2548   
                .body(::aws_smithy_http_server::body::Body::empty())
 2466   2549   
                .unwrap();
 2467   2550   
            #[allow(unused_mut)]
 2468   2551   
            let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
 2469   2552   
            let config = crate::service::RestJsonConfig::builder().build();
 2470   2553   
            let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
 2471   2554   
                            .malformed_accept_with_generic_string(move |input: crate::input::MalformedAcceptWithGenericStringInput| {
 2472   2555   
                                let sender = sender.clone();
 2473   2556   
                                async move {
 2474   2557   
                                    let result = { panic!("request should have been rejected, but we accepted it; we parsed operation input `{:?}`", &input) as crate::output::MalformedAcceptWithGenericStringOutput };
 2475   2558   
                                    sender.send(()).await.expect("receiver dropped early");
 2476   2559   
                                    result
 2477   2560   
                                }
 2478   2561   
                            })
 2479   2562   
                            .build_unchecked();
 2480   2563   
            let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 2481   2564   
                .await
 2482   2565   
                .expect("unable to make an HTTP request");
 2483   2566   
            ::pretty_assertions::assert_eq!(
 2484   2567   
                http::StatusCode::from_u16(406).expect("invalid expected HTTP status code"),
 2485   2568   
                http_response.status()
 2486   2569   
            );
 2487   2570   
            let expected_headers = [("x-amzn-errortype", "NotAcceptableException")];
 2488   2571   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 2489   2572   
                http_response.headers(),
 2490   2573   
                expected_headers,
 2491   2574   
            ));
 2492   2575   
        }
 2493   2576   
    }
        2577  +
        2578  +
    /* ProtocolTestGenerator.kt:98 */
 2494   2579   
}
 2495   2580   
        2581  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2496   2582   
static CONTENT_TYPE_MALFORMEDACCEPTWITHPAYLOAD: std::sync::LazyLock<::mime::Mime> =
 2497   2583   
    std::sync::LazyLock::new(|| {
 2498   2584   
        "image/jpeg"
 2499   2585   
            .parse::<::mime::Mime>()
 2500   2586   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 2501   2587   
    });
 2502   2588   
::pin_project_lite::pin_project! {
 2503   2589   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2504   2590   
    /// [`MalformedAcceptWithPayloadInput`](crate::input::MalformedAcceptWithPayloadInput) using modelled bindings.
 2505   2591   
    pub struct MalformedAcceptWithPayloadInputFuture {
@@ -2537,2623 +2658,2751 @@
 2557   2643   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 2558   2644   
                    e,
 2559   2645   
                )
 2560   2646   
            },
 2561   2647   
        );
 2562   2648   
        MalformedAcceptWithPayloadInputFuture {
 2563   2649   
            inner: Box::pin(fut),
 2564   2650   
        }
 2565   2651   
    }
 2566   2652   
}
        2653  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2567   2654   
impl
 2568   2655   
    ::aws_smithy_http_server::response::IntoResponse<
 2569   2656   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2570   2657   
    > for crate::output::MalformedAcceptWithPayloadOutput
 2571   2658   
{
 2572   2659   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2573   2660   
        match crate::protocol_serde::shape_malformed_accept_with_payload::ser_malformed_accept_with_payload_http_response(self) {
 2574   2661   
                        Ok(response) => response,
 2575   2662   
                        Err(e) => {
 2576   2663   
                            ::tracing::error!(error = %e, "failed to serialize response");
 2577   2664   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 2578   2665   
                        }
 2579   2666   
                    }
 2580   2667   
    }
 2581   2668   
}
 2582   2669   
        2670  +
/* RustType.kt:516 */
 2583   2671   
#[allow(unreachable_code, unused_variables)]
        2672  +
/* RustType.kt:516 */
 2584   2673   
#[cfg(test)]
        2674  +
/* ProtocolTestGenerator.kt:98 */
 2585   2675   
mod malformed_accept_with_payload_test {
 2586   2676   
 2587   2677   
    /// When there is a payload with a mediaType trait, the accept must match.
 2588   2678   
    /// Test ID: RestJsonWithPayloadExpectsModeledAccept
 2589   2679   
    #[::tokio::test]
 2590   2680   
    #[::tracing_test::traced_test]
 2591   2681   
    async fn rest_json_with_payload_expects_modeled_accept_malformed_request() {
 2592   2682   
        {
 2593   2683   
            #[allow(unused_mut)]
 2594   2684   
            let mut http_request = http::Request::builder()
 2595   2685   
                .uri("/MalformedAcceptWithPayload")
 2596   2686   
                .method("POST")
 2597   2687   
                .header("accept", "application/json")
 2598   2688   
                .body(::aws_smithy_http_server::body::Body::empty())
 2599   2689   
                .unwrap();
 2600   2690   
            #[allow(unused_mut)]
 2601   2691   
            let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
 2602   2692   
            let config = crate::service::RestJsonConfig::builder().build();
 2603   2693   
            let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
 2604   2694   
                            .malformed_accept_with_payload(move |input: crate::input::MalformedAcceptWithPayloadInput| {
 2605   2695   
                                let sender = sender.clone();
 2606   2696   
                                async move {
 2607   2697   
                                    let result = { panic!("request should have been rejected, but we accepted it; we parsed operation input `{:?}`", &input) as crate::output::MalformedAcceptWithPayloadOutput };
 2608   2698   
                                    sender.send(()).await.expect("receiver dropped early");
 2609   2699   
                                    result
 2610   2700   
                                }
 2611   2701   
                            })
 2612   2702   
                            .build_unchecked();
 2613   2703   
            let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 2614   2704   
                .await
 2615   2705   
                .expect("unable to make an HTTP request");
 2616   2706   
            ::pretty_assertions::assert_eq!(
 2617   2707   
                http::StatusCode::from_u16(406).expect("invalid expected HTTP status code"),
 2618   2708   
                http_response.status()
 2619   2709   
            );
 2620   2710   
            let expected_headers = [("x-amzn-errortype", "NotAcceptableException")];
 2621   2711   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 2622   2712   
                http_response.headers(),
 2623   2713   
                expected_headers,
 2624   2714   
            ));
 2625   2715   
        }
 2626   2716   
    }
        2717  +
        2718  +
    /* ProtocolTestGenerator.kt:98 */
 2627   2719   
}
 2628   2720   
        2721  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2629   2722   
const CONTENT_TYPE_MALFORMEDACCEPTWITHBODY: ::mime::Mime = ::mime::APPLICATION_JSON;
 2630   2723   
::pin_project_lite::pin_project! {
 2631   2724   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2632   2725   
    /// [`MalformedAcceptWithBodyInput`](crate::input::MalformedAcceptWithBodyInput) using modelled bindings.
 2633   2726   
    pub struct MalformedAcceptWithBodyInputFuture {
 2634   2727   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedAcceptWithBodyInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 2635   2728   
    }
 2636   2729   
}
 2637   2730   
 2638   2731   
impl std::future::Future for MalformedAcceptWithBodyInputFuture {
@@ -2665,2758 +2786,2886 @@
 2685   2778   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 2686   2779   
                    e,
 2687   2780   
                )
 2688   2781   
            },
 2689   2782   
        );
 2690   2783   
        MalformedAcceptWithBodyInputFuture {
 2691   2784   
            inner: Box::pin(fut),
 2692   2785   
        }
 2693   2786   
    }
 2694   2787   
}
        2788  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2695   2789   
impl
 2696   2790   
    ::aws_smithy_http_server::response::IntoResponse<
 2697   2791   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2698   2792   
    > for crate::output::MalformedAcceptWithBodyOutput
 2699   2793   
{
 2700   2794   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2701   2795   
        match crate::protocol_serde::shape_malformed_accept_with_body::ser_malformed_accept_with_body_http_response(self) {
 2702   2796   
                        Ok(response) => response,
 2703   2797   
                        Err(e) => {
 2704   2798   
                            ::tracing::error!(error = %e, "failed to serialize response");
 2705   2799   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 2706   2800   
                        }
 2707   2801   
                    }
 2708   2802   
    }
 2709   2803   
}
 2710   2804   
        2805  +
/* RustType.kt:516 */
 2711   2806   
#[allow(unreachable_code, unused_variables)]
        2807  +
/* RustType.kt:516 */
 2712   2808   
#[cfg(test)]
        2809  +
/* ProtocolTestGenerator.kt:98 */
 2713   2810   
mod malformed_accept_with_body_test {
 2714   2811   
 2715   2812   
    /// When there is modeled output, the accept must be application/json
 2716   2813   
    /// Test ID: RestJsonWithBodyExpectsApplicationJsonAccept
 2717   2814   
    #[::tokio::test]
 2718   2815   
    #[::tracing_test::traced_test]
 2719   2816   
    async fn rest_json_with_body_expects_application_json_accept_malformed_request() {
 2720   2817   
        {
 2721   2818   
            #[allow(unused_mut)]
 2722   2819   
            let mut http_request = http::Request::builder()
 2723   2820   
                .uri("/MalformedAcceptWithBody")
 2724   2821   
                .method("POST")
 2725   2822   
                .header("accept", "application/hal+json")
 2726   2823   
                .body(::aws_smithy_http_server::body::Body::empty())
 2727   2824   
                .unwrap();
 2728   2825   
            #[allow(unused_mut)]
 2729   2826   
            let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
 2730   2827   
            let config = crate::service::RestJsonConfig::builder().build();
 2731   2828   
            let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
 2732   2829   
                            .malformed_accept_with_body(move |input: crate::input::MalformedAcceptWithBodyInput| {
 2733   2830   
                                let sender = sender.clone();
 2734   2831   
                                async move {
 2735   2832   
                                    let result = { panic!("request should have been rejected, but we accepted it; we parsed operation input `{:?}`", &input) as crate::output::MalformedAcceptWithBodyOutput };
 2736   2833   
                                    sender.send(()).await.expect("receiver dropped early");
 2737   2834   
                                    result
 2738   2835   
                                }
 2739   2836   
                            })
 2740   2837   
                            .build_unchecked();
 2741   2838   
            let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 2742   2839   
                .await
 2743   2840   
                .expect("unable to make an HTTP request");
 2744   2841   
            ::pretty_assertions::assert_eq!(
 2745   2842   
                http::StatusCode::from_u16(406).expect("invalid expected HTTP status code"),
 2746   2843   
                http_response.status()
 2747   2844   
            );
 2748   2845   
            let expected_headers = [("x-amzn-errortype", "NotAcceptableException")];
 2749   2846   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 2750   2847   
                http_response.headers(),
 2751   2848   
                expected_headers,
 2752   2849   
            ));
 2753   2850   
        }
 2754   2851   
    }
        2852  +
        2853  +
    /* ProtocolTestGenerator.kt:98 */
 2755   2854   
}
 2756   2855   
        2856  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2757   2857   
const CONTENT_TYPE_MALFORMEDCONTENTTYPEWITHGENERICSTRING: ::mime::Mime = ::mime::APPLICATION_JSON;
 2758   2858   
::pin_project_lite::pin_project! {
 2759   2859   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2760   2860   
    /// [`MalformedContentTypeWithGenericStringInput`](crate::input::MalformedContentTypeWithGenericStringInput) using modelled bindings.
 2761   2861   
    pub struct MalformedContentTypeWithGenericStringInputFuture {
 2762   2862   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedContentTypeWithGenericStringInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 2763   2863   
    }
 2764   2864   
}
 2765   2865   
 2766   2866   
impl std::future::Future for MalformedContentTypeWithGenericStringInputFuture {
@@ -2793,2893 +2868,2970 @@
 2813   2913   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 2814   2914   
                    e,
 2815   2915   
                )
 2816   2916   
            },
 2817   2917   
        );
 2818   2918   
        MalformedContentTypeWithGenericStringInputFuture {
 2819   2919   
            inner: Box::pin(fut),
 2820   2920   
        }
 2821   2921   
    }
 2822   2922   
}
        2923  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2823   2924   
impl
 2824   2925   
    ::aws_smithy_http_server::response::IntoResponse<
 2825   2926   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2826   2927   
    > for crate::output::MalformedContentTypeWithGenericStringOutput
 2827   2928   
{
 2828   2929   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2829   2930   
        match crate::protocol_serde::shape_malformed_content_type_with_generic_string::ser_malformed_content_type_with_generic_string_http_response(self) {
 2830   2931   
                        Ok(response) => response,
 2831   2932   
                        Err(e) => {
 2832   2933   
                            ::tracing::error!(error = %e, "failed to serialize response");
 2833   2934   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 2834   2935   
                        }
 2835   2936   
                    }
 2836   2937   
    }
 2837   2938   
}
 2838   2939   
        2940  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2839   2941   
const CONTENT_TYPE_MALFORMEDCONTENTTYPEWITHPAYLOAD: ::mime::Mime = ::mime::APPLICATION_JSON;
 2840   2942   
::pin_project_lite::pin_project! {
 2841   2943   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2842   2944   
    /// [`MalformedContentTypeWithPayloadInput`](crate::input::MalformedContentTypeWithPayloadInput) using modelled bindings.
 2843   2945   
    pub struct MalformedContentTypeWithPayloadInputFuture {
 2844   2946   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedContentTypeWithPayloadInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 2845   2947   
    }
 2846   2948   
}
 2847   2949   
 2848   2950   
impl std::future::Future for MalformedContentTypeWithPayloadInputFuture {
@@ -2875,2977 +2952,3058 @@
 2895   2997   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 2896   2998   
                    e,
 2897   2999   
                )
 2898   3000   
            },
 2899   3001   
        );
 2900   3002   
        MalformedContentTypeWithPayloadInputFuture {
 2901   3003   
            inner: Box::pin(fut),
 2902   3004   
        }
 2903   3005   
    }
 2904   3006   
}
        3007  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2905   3008   
impl
 2906   3009   
    ::aws_smithy_http_server::response::IntoResponse<
 2907   3010   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2908   3011   
    > for crate::output::MalformedContentTypeWithPayloadOutput
 2909   3012   
{
 2910   3013   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2911   3014   
        match crate::protocol_serde::shape_malformed_content_type_with_payload::ser_malformed_content_type_with_payload_http_response(self) {
 2912   3015   
                        Ok(response) => response,
 2913   3016   
                        Err(e) => {
 2914   3017   
                            ::tracing::error!(error = %e, "failed to serialize response");
 2915   3018   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 2916   3019   
                        }
 2917   3020   
                    }
 2918   3021   
    }
 2919   3022   
}
 2920   3023   
        3024  +
/* RustType.kt:516 */
 2921   3025   
#[allow(unreachable_code, unused_variables)]
        3026  +
/* RustType.kt:516 */
 2922   3027   
#[cfg(test)]
        3028  +
/* ProtocolTestGenerator.kt:98 */
 2923   3029   
mod malformed_content_type_with_payload_test {
 2924   3030   
 2925   3031   
    /// When there is a payload with a mediaType trait, the content type must match.
 2926   3032   
    /// Test ID: RestJsonWithPayloadExpectsModeledContentType
 2927   3033   
    #[::tokio::test]
 2928   3034   
    #[::tracing_test::traced_test]
 2929   3035   
    async fn rest_json_with_payload_expects_modeled_content_type_malformed_request() {
 2930   3036   
        {
 2931   3037   
            #[allow(unused_mut)]
 2932   3038   
            let mut http_request = http::Request::builder()
@@ -2987,3093 +3048,3157 @@
 3007   3113   
                http::StatusCode::from_u16(415).expect("invalid expected HTTP status code"),
 3008   3114   
                http_response.status()
 3009   3115   
            );
 3010   3116   
            let expected_headers = [("x-amzn-errortype", "UnsupportedMediaTypeException")];
 3011   3117   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 3012   3118   
                http_response.headers(),
 3013   3119   
                expected_headers,
 3014   3120   
            ));
 3015   3121   
        }
 3016   3122   
    }
        3123  +
        3124  +
    /* ProtocolTestGenerator.kt:98 */
 3017   3125   
}
 3018   3126   
        3127  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 3019   3128   
const CONTENT_TYPE_MALFORMEDCONTENTTYPEWITHBODY: ::mime::Mime = ::mime::APPLICATION_JSON;
 3020   3129   
::pin_project_lite::pin_project! {
 3021   3130   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 3022   3131   
    /// [`MalformedContentTypeWithBodyInput`](crate::input::MalformedContentTypeWithBodyInput) using modelled bindings.
 3023   3132   
    pub struct MalformedContentTypeWithBodyInputFuture {
 3024   3133   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedContentTypeWithBodyInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 3025   3134   
    }
 3026   3135   
}
 3027   3136   
 3028   3137   
impl std::future::Future for MalformedContentTypeWithBodyInputFuture {
@@ -3055,3164 +3132,3245 @@
 3075   3184   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 3076   3185   
                    e,
 3077   3186   
                )
 3078   3187   
            },
 3079   3188   
        );
 3080   3189   
        MalformedContentTypeWithBodyInputFuture {
 3081   3190   
            inner: Box::pin(fut),
 3082   3191   
        }
 3083   3192   
    }
 3084   3193   
}
        3194  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 3085   3195   
impl
 3086   3196   
    ::aws_smithy_http_server::response::IntoResponse<
 3087   3197   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 3088   3198   
    > for crate::output::MalformedContentTypeWithBodyOutput
 3089   3199   
{
 3090   3200   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3091   3201   
        match crate::protocol_serde::shape_malformed_content_type_with_body::ser_malformed_content_type_with_body_http_response(self) {
 3092   3202   
                        Ok(response) => response,
 3093   3203   
                        Err(e) => {
 3094   3204   
                            ::tracing::error!(error = %e, "failed to serialize response");
 3095   3205   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 3096   3206   
                        }
 3097   3207   
                    }
 3098   3208   
    }
 3099   3209   
}
 3100   3210   
        3211  +
/* RustType.kt:516 */
 3101   3212   
#[allow(unreachable_code, unused_variables)]
        3213  +
/* RustType.kt:516 */
 3102   3214   
#[cfg(test)]
        3215  +
/* ProtocolTestGenerator.kt:98 */
 3103   3216   
mod malformed_content_type_with_body_test {
 3104   3217   
 3105   3218   
    /// When there is modeled input, the content type must be application/json
 3106   3219   
    /// Test ID: RestJsonWithBodyExpectsApplicationJsonContentType
 3107   3220   
    #[::tokio::test]
 3108   3221   
    #[::tracing_test::traced_test]
 3109   3222   
    async fn rest_json_with_body_expects_application_json_content_type_malformed_request() {
 3110   3223   
        {
 3111   3224   
            #[allow(unused_mut)]
 3112   3225   
            let mut http_request = http::Request::builder()
@@ -3166,3279 +3227,3343 @@
 3186   3299   
                http::StatusCode::from_u16(415).expect("invalid expected HTTP status code"),
 3187   3300   
                http_response.status()
 3188   3301   
            );
 3189   3302   
            let expected_headers = [("x-amzn-errortype", "UnsupportedMediaTypeException")];
 3190   3303   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 3191   3304   
                http_response.headers(),
 3192   3305   
                expected_headers,
 3193   3306   
            ));
 3194   3307   
        }
 3195   3308   
    }
        3309  +
        3310  +
    /* ProtocolTestGenerator.kt:98 */
 3196   3311   
}
 3197   3312   
        3313  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 3198   3314   
const CONTENT_TYPE_MALFORMEDCONTENTTYPEWITHOUTBODY: ::mime::Mime = ::mime::APPLICATION_JSON;
 3199   3315   
::pin_project_lite::pin_project! {
 3200   3316   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 3201   3317   
    /// [`MalformedContentTypeWithoutBodyInput`](crate::input::MalformedContentTypeWithoutBodyInput) using modelled bindings.
 3202   3318   
    pub struct MalformedContentTypeWithoutBodyInputFuture {
 3203   3319   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedContentTypeWithoutBodyInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 3204   3320   
    }
 3205   3321   
}
 3206   3322   
 3207   3323   
impl std::future::Future for MalformedContentTypeWithoutBodyInputFuture {
@@ -3234,3350 +3360,3483 @@
 3254   3370   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 3255   3371   
                    e,
 3256   3372   
                )
 3257   3373   
            },
 3258   3374   
        );
 3259   3375   
        MalformedContentTypeWithoutBodyInputFuture {
 3260   3376   
            inner: Box::pin(fut),
 3261   3377   
        }
 3262   3378   
    }
 3263   3379   
}
        3380  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 3264   3381   
impl
 3265   3382   
    ::aws_smithy_http_server::response::IntoResponse<
 3266   3383   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 3267   3384   
    > for crate::output::MalformedContentTypeWithoutBodyOutput
 3268   3385   
{
 3269   3386   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3270   3387   
        match crate::protocol_serde::shape_malformed_content_type_without_body::ser_malformed_content_type_without_body_http_response(self) {
 3271   3388   
                        Ok(response) => response,
 3272   3389   
                        Err(e) => {
 3273   3390   
                            ::tracing::error!(error = %e, "failed to serialize response");
 3274   3391   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 3275   3392   
                        }
 3276   3393   
                    }
 3277   3394   
    }
 3278   3395   
}
 3279   3396   
        3397  +
/* RustType.kt:516 */
 3280   3398   
#[allow(unreachable_code, unused_variables)]
        3399  +
/* RustType.kt:516 */
 3281   3400   
#[cfg(test)]
        3401  +
/* ProtocolTestGenerator.kt:98 */
 3282   3402   
mod malformed_content_type_without_body_test {
 3283   3403   
 3284   3404   
    /// When there is no modeled input, content type must not be set and the body must be empty.
 3285   3405   
    /// Test ID: RestJsonWithoutBodyExpectsEmptyContentType
 3286   3406   
    #[::tokio::test]
 3287   3407   
    #[::tracing_test::traced_test]
 3288   3408   
    async fn rest_json_without_body_expects_empty_content_type_malformed_request() {
 3289   3409   
        {
 3290   3410   
            #[allow(unused_mut)]
 3291   3411   
            let mut http_request = http::Request::builder()
 3292   3412   
                .uri("/MalformedContentTypeWithoutBody")
 3293   3413   
                .method("POST")
 3294   3414   
                .header("content-type", "application/json")
 3295   3415   
                .body(::aws_smithy_http_server::body::Body::from(
 3296   3416   
                    ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
 3297   3417   
                        "{}".as_bytes(),
 3298   3418   
                        ::aws_smithy_protocol_test::MediaType::from("unknown"),
 3299   3419   
                    )),
 3300   3420   
                ))
 3301   3421   
                .unwrap();
 3302   3422   
            #[allow(unused_mut)]
 3303   3423   
            let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
 3304   3424   
            let config = crate::service::RestJsonConfig::builder().build();
 3305   3425   
            let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
 3306   3426   
                            .malformed_content_type_without_body(move |input: crate::input::MalformedContentTypeWithoutBodyInput| {
 3307   3427   
                                let sender = sender.clone();
 3308   3428   
                                async move {
 3309   3429   
                                    let result = { panic!("request should have been rejected, but we accepted it; we parsed operation input `{:?}`", &input) as crate::output::MalformedContentTypeWithoutBodyOutput };
 3310   3430   
                                    sender.send(()).await.expect("receiver dropped early");
 3311   3431   
                                    result
 3312   3432   
                                }
 3313   3433   
                            })
 3314   3434   
                            .build_unchecked();
 3315   3435   
            let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 3316   3436   
                .await
 3317   3437   
                .expect("unable to make an HTTP request");
 3318   3438   
            ::pretty_assertions::assert_eq!(
 3319   3439   
                http::StatusCode::from_u16(415).expect("invalid expected HTTP status code"),
 3320   3440   
                http_response.status()
 3321   3441   
            );
 3322   3442   
            let expected_headers = [("x-amzn-errortype", "UnsupportedMediaTypeException")];
 3323   3443   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 3324   3444   
                http_response.headers(),
 3325   3445   
                expected_headers,
 3326   3446   
            ));
 3327   3447   
        }
 3328   3448   
    }
        3449  +
        3450  +
    /* ProtocolTestGenerator.kt:98 */
 3329   3451   
}
 3330   3452   
        3453  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 3331   3454   
const CONTENT_TYPE_MALFORMEDTIMESTAMPBODYHTTPDATE: ::mime::Mime = ::mime::APPLICATION_JSON;
 3332   3455   
::pin_project_lite::pin_project! {
 3333   3456   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 3334   3457   
    /// [`MalformedTimestampBodyHttpDateInput`](crate::input::MalformedTimestampBodyHttpDateInput) using modelled bindings.
 3335   3458   
    pub struct MalformedTimestampBodyHttpDateInputFuture {
 3336   3459   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampBodyHttpDateInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 3337   3460   
    }
 3338   3461   
}
 3339   3462   
 3340   3463   
impl std::future::Future for MalformedTimestampBodyHttpDateInputFuture {
@@ -3367,3490 +3462,3590 @@
 3387   3510   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 3388   3511   
                    e,
 3389   3512   
                )
 3390   3513   
            },
 3391   3514   
        );
 3392   3515   
        MalformedTimestampBodyHttpDateInputFuture {
 3393   3516   
            inner: Box::pin(fut),
 3394   3517   
        }
 3395   3518   
    }
 3396   3519   
}
        3520  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 3397   3521   
impl
 3398   3522   
    ::aws_smithy_http_server::response::IntoResponse<
 3399   3523   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 3400   3524   
    > for crate::output::MalformedTimestampBodyHttpDateOutput
 3401   3525   
{
 3402   3526   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3403   3527   
        match crate::protocol_serde::shape_malformed_timestamp_body_http_date::ser_malformed_timestamp_body_http_date_http_response(self) {
 3404   3528   
                        Ok(response) => response,
 3405   3529   
                        Err(e) => {
 3406   3530   
                            ::tracing::error!(error = %e, "failed to serialize response");
 3407   3531   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 3408   3532   
                        }
 3409   3533   
                    }
 3410   3534   
    }
 3411   3535   
}
        3536  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 3412   3537   
impl
 3413   3538   
    ::aws_smithy_http_server::response::IntoResponse<
 3414   3539   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 3415   3540   
    > for crate::error::MalformedTimestampBodyHttpDateError
 3416   3541   
{
 3417   3542   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3418   3543   
        match crate::protocol_serde::shape_malformed_timestamp_body_http_date::ser_malformed_timestamp_body_http_date_http_error(&self) {
 3419   3544   
            Ok(mut response) => {
 3420   3545   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 3421   3546   
                response
 3422   3547   
            },
 3423   3548   
            Err(e) => {
 3424   3549   
                ::tracing::error!(error = %e, "failed to serialize response");
 3425   3550   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 3426   3551   
            }
 3427   3552   
        }
 3428   3553   
    }
 3429   3554   
}
 3430   3555   
        3556  +
/* RustType.kt:516 */
 3431   3557   
#[allow(unreachable_code, unused_variables)]
        3558  +
/* RustType.kt:516 */
 3432   3559   
#[cfg(test)]
        3560  +
/* ProtocolTestGenerator.kt:98 */
 3433   3561   
mod malformed_timestamp_body_http_date_test {
 3434   3562   
 3435   3563   
    /// When the format is http-date, RFC3339 timestamps are rejected with a
 3436   3564   
    /// 400 SerializationException
 3437   3565   
    /// Test ID: RestJsonBodyTimestampHttpDateRejectsDateTime_case0
 3438   3566   
    #[::tokio::test]
 3439   3567   
    #[::tracing_test::traced_test]
 3440   3568   
    async fn rest_json_body_timestamp_http_date_rejects_date_time_case0_malformed_request() {
 3441   3569   
        {
 3442   3570   
            #[allow(unused_mut)]
@@ -3639,3767 +3700,3831 @@
 3659   3787   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 3660   3788   
                http_response.status()
 3661   3789   
            );
 3662   3790   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 3663   3791   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 3664   3792   
                http_response.headers(),
 3665   3793   
                expected_headers,
 3666   3794   
            ));
 3667   3795   
        }
 3668   3796   
    }
        3797  +
        3798  +
    /* ProtocolTestGenerator.kt:98 */
 3669   3799   
}
 3670   3800   
        3801  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 3671   3802   
const CONTENT_TYPE_MALFORMEDTIMESTAMPBODYDATETIME: ::mime::Mime = ::mime::APPLICATION_JSON;
 3672   3803   
::pin_project_lite::pin_project! {
 3673   3804   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 3674   3805   
    /// [`MalformedTimestampBodyDateTimeInput`](crate::input::MalformedTimestampBodyDateTimeInput) using modelled bindings.
 3675   3806   
    pub struct MalformedTimestampBodyDateTimeInputFuture {
 3676   3807   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampBodyDateTimeInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 3677   3808   
    }
 3678   3809   
}
 3679   3810   
 3680   3811   
impl std::future::Future for MalformedTimestampBodyDateTimeInputFuture {
@@ -3707,3838 +3802,3938 @@
 3727   3858   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 3728   3859   
                    e,
 3729   3860   
                )
 3730   3861   
            },
 3731   3862   
        );
 3732   3863   
        MalformedTimestampBodyDateTimeInputFuture {
 3733   3864   
            inner: Box::pin(fut),
 3734   3865   
        }
 3735   3866   
    }
 3736   3867   
}
        3868  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 3737   3869   
impl
 3738   3870   
    ::aws_smithy_http_server::response::IntoResponse<
 3739   3871   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 3740   3872   
    > for crate::output::MalformedTimestampBodyDateTimeOutput
 3741   3873   
{
 3742   3874   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3743   3875   
        match crate::protocol_serde::shape_malformed_timestamp_body_date_time::ser_malformed_timestamp_body_date_time_http_response(self) {
 3744   3876   
                        Ok(response) => response,
 3745   3877   
                        Err(e) => {
 3746   3878   
                            ::tracing::error!(error = %e, "failed to serialize response");
 3747   3879   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 3748   3880   
                        }
 3749   3881   
                    }
 3750   3882   
    }
 3751   3883   
}
        3884  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 3752   3885   
impl
 3753   3886   
    ::aws_smithy_http_server::response::IntoResponse<
 3754   3887   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 3755   3888   
    > for crate::error::MalformedTimestampBodyDateTimeError
 3756   3889   
{
 3757   3890   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3758   3891   
        match crate::protocol_serde::shape_malformed_timestamp_body_date_time::ser_malformed_timestamp_body_date_time_http_error(&self) {
 3759   3892   
            Ok(mut response) => {
 3760   3893   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 3761   3894   
                response
 3762   3895   
            },
 3763   3896   
            Err(e) => {
 3764   3897   
                ::tracing::error!(error = %e, "failed to serialize response");
 3765   3898   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 3766   3899   
            }
 3767   3900   
        }
 3768   3901   
    }
 3769   3902   
}
 3770   3903   
        3904  +
/* RustType.kt:516 */
 3771   3905   
#[allow(unreachable_code, unused_variables)]
        3906  +
/* RustType.kt:516 */
 3772   3907   
#[cfg(test)]
        3908  +
/* ProtocolTestGenerator.kt:98 */
 3773   3909   
mod malformed_timestamp_body_date_time_test {
 3774   3910   
 3775   3911   
    /// When the format is date-time, IMF-fixdate timestamps are rejected with a
 3776   3912   
    /// 400 SerializationException
 3777   3913   
    /// Test ID: RestJsonBodyTimestampDateTimeRejectsHttpDate_case0
 3778   3914   
    #[::tokio::test]
 3779   3915   
    #[::tracing_test::traced_test]
 3780   3916   
    async fn rest_json_body_timestamp_date_time_rejects_http_date_case0_malformed_request() {
 3781   3917   
        {
 3782   3918   
            #[allow(unused_mut)]
@@ -4652,4788 +4713,4852 @@
 4672   4808   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 4673   4809   
                http_response.status()
 4674   4810   
            );
 4675   4811   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 4676   4812   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 4677   4813   
                http_response.headers(),
 4678   4814   
                expected_headers,
 4679   4815   
            ));
 4680   4816   
        }
 4681   4817   
    }
        4818  +
        4819  +
    /* ProtocolTestGenerator.kt:98 */
 4682   4820   
}
 4683   4821   
        4822  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 4684   4823   
const CONTENT_TYPE_MALFORMEDTIMESTAMPBODYDEFAULT: ::mime::Mime = ::mime::APPLICATION_JSON;
 4685   4824   
::pin_project_lite::pin_project! {
 4686   4825   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 4687   4826   
    /// [`MalformedTimestampBodyDefaultInput`](crate::input::MalformedTimestampBodyDefaultInput) using modelled bindings.
 4688   4827   
    pub struct MalformedTimestampBodyDefaultInputFuture {
 4689   4828   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampBodyDefaultInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 4690   4829   
    }
 4691   4830   
}
 4692   4831   
 4693   4832   
impl std::future::Future for MalformedTimestampBodyDefaultInputFuture {
@@ -4720,4859 +4815,4959 @@
 4740   4879   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 4741   4880   
                    e,
 4742   4881   
                )
 4743   4882   
            },
 4744   4883   
        );
 4745   4884   
        MalformedTimestampBodyDefaultInputFuture {
 4746   4885   
            inner: Box::pin(fut),
 4747   4886   
        }
 4748   4887   
    }
 4749   4888   
}
        4889  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 4750   4890   
impl
 4751   4891   
    ::aws_smithy_http_server::response::IntoResponse<
 4752   4892   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 4753   4893   
    > for crate::output::MalformedTimestampBodyDefaultOutput
 4754   4894   
{
 4755   4895   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 4756   4896   
        match crate::protocol_serde::shape_malformed_timestamp_body_default::ser_malformed_timestamp_body_default_http_response(self) {
 4757   4897   
                        Ok(response) => response,
 4758   4898   
                        Err(e) => {
 4759   4899   
                            ::tracing::error!(error = %e, "failed to serialize response");
 4760   4900   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 4761   4901   
                        }
 4762   4902   
                    }
 4763   4903   
    }
 4764   4904   
}
        4905  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 4765   4906   
impl
 4766   4907   
    ::aws_smithy_http_server::response::IntoResponse<
 4767   4908   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 4768   4909   
    > for crate::error::MalformedTimestampBodyDefaultError
 4769   4910   
{
 4770   4911   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 4771   4912   
        match crate::protocol_serde::shape_malformed_timestamp_body_default::ser_malformed_timestamp_body_default_http_error(&self) {
 4772   4913   
            Ok(mut response) => {
 4773   4914   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 4774   4915   
                response
 4775   4916   
            },
 4776   4917   
            Err(e) => {
 4777   4918   
                ::tracing::error!(error = %e, "failed to serialize response");
 4778   4919   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 4779   4920   
            }
 4780   4921   
        }
 4781   4922   
    }
 4782   4923   
}
 4783   4924   
        4925  +
/* RustType.kt:516 */
 4784   4926   
#[allow(unreachable_code, unused_variables)]
        4927  +
/* RustType.kt:516 */
 4785   4928   
#[cfg(test)]
        4929  +
/* ProtocolTestGenerator.kt:98 */
 4786   4930   
mod malformed_timestamp_body_default_test {
 4787   4931   
 4788   4932   
    /// By default, RFC3339 timestamps are rejected with a
 4789   4933   
    /// 400 SerializationException
 4790   4934   
    /// Test ID: RestJsonBodyTimestampDefaultRejectsDateTime_case0
 4791   4935   
    #[::tokio::test]
 4792   4936   
    #[::tracing_test::traced_test]
 4793   4937   
    async fn rest_json_body_timestamp_default_rejects_date_time_case0_malformed_request() {
 4794   4938   
        {
 4795   4939   
            #[allow(unused_mut)]
@@ -5511,5655 +5572,5719 @@
 5531   5675   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 5532   5676   
                http_response.status()
 5533   5677   
            );
 5534   5678   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 5535   5679   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 5536   5680   
                http_response.headers(),
 5537   5681   
                expected_headers,
 5538   5682   
            ));
 5539   5683   
        }
 5540   5684   
    }
        5685  +
        5686  +
    /* ProtocolTestGenerator.kt:98 */
 5541   5687   
}
 5542   5688   
        5689  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 5543   5690   
const CONTENT_TYPE_MALFORMEDTIMESTAMPHEADEREPOCH: ::mime::Mime = ::mime::APPLICATION_JSON;
 5544   5691   
::pin_project_lite::pin_project! {
 5545   5692   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 5546   5693   
    /// [`MalformedTimestampHeaderEpochInput`](crate::input::MalformedTimestampHeaderEpochInput) using modelled bindings.
 5547   5694   
    pub struct MalformedTimestampHeaderEpochInputFuture {
 5548   5695   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampHeaderEpochInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 5549   5696   
    }
 5550   5697   
}
 5551   5698   
 5552   5699   
impl std::future::Future for MalformedTimestampHeaderEpochInputFuture {
@@ -5579,5726 +5674,5826 @@
 5599   5746   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 5600   5747   
                    e,
 5601   5748   
                )
 5602   5749   
            },
 5603   5750   
        );
 5604   5751   
        MalformedTimestampHeaderEpochInputFuture {
 5605   5752   
            inner: Box::pin(fut),
 5606   5753   
        }
 5607   5754   
    }
 5608   5755   
}
        5756  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 5609   5757   
impl
 5610   5758   
    ::aws_smithy_http_server::response::IntoResponse<
 5611   5759   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 5612   5760   
    > for crate::output::MalformedTimestampHeaderEpochOutput
 5613   5761   
{
 5614   5762   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 5615   5763   
        match crate::protocol_serde::shape_malformed_timestamp_header_epoch::ser_malformed_timestamp_header_epoch_http_response(self) {
 5616   5764   
                        Ok(response) => response,
 5617   5765   
                        Err(e) => {
 5618   5766   
                            ::tracing::error!(error = %e, "failed to serialize response");
 5619   5767   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 5620   5768   
                        }
 5621   5769   
                    }
 5622   5770   
    }
 5623   5771   
}
        5772  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 5624   5773   
impl
 5625   5774   
    ::aws_smithy_http_server::response::IntoResponse<
 5626   5775   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 5627   5776   
    > for crate::error::MalformedTimestampHeaderEpochError
 5628   5777   
{
 5629   5778   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 5630   5779   
        match crate::protocol_serde::shape_malformed_timestamp_header_epoch::ser_malformed_timestamp_header_epoch_http_error(&self) {
 5631   5780   
            Ok(mut response) => {
 5632   5781   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 5633   5782   
                response
 5634   5783   
            },
 5635   5784   
            Err(e) => {
 5636   5785   
                ::tracing::error!(error = %e, "failed to serialize response");
 5637   5786   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 5638   5787   
            }
 5639   5788   
        }
 5640   5789   
    }
 5641   5790   
}
 5642   5791   
        5792  +
/* RustType.kt:516 */
 5643   5793   
#[allow(unreachable_code, unused_variables)]
        5794  +
/* RustType.kt:516 */
 5644   5795   
#[cfg(test)]
        5796  +
/* ProtocolTestGenerator.kt:98 */
 5645   5797   
mod malformed_timestamp_header_epoch_test {
 5646   5798   
 5647   5799   
    /// When the format is epoch-seconds, RFC3339 timestamps are rejected with a
 5648   5800   
    /// 400 SerializationException
 5649   5801   
    /// Test ID: RestJsonHeaderTimestampEpochRejectsDateTime_case0
 5650   5802   
    #[::tokio::test]
 5651   5803   
    #[::tracing_test::traced_test]
 5652   5804   
    async fn rest_json_header_timestamp_epoch_rejects_date_time_case0_malformed_request() {
 5653   5805   
        {
 5654   5806   
            #[allow(unused_mut)]
@@ -6071,6223 +6132,6287 @@
 6091   6243   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 6092   6244   
                http_response.status()
 6093   6245   
            );
 6094   6246   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 6095   6247   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 6096   6248   
                http_response.headers(),
 6097   6249   
                expected_headers,
 6098   6250   
            ));
 6099   6251   
        }
 6100   6252   
    }
        6253  +
        6254  +
    /* ProtocolTestGenerator.kt:98 */
 6101   6255   
}
 6102   6256   
        6257  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 6103   6258   
const CONTENT_TYPE_MALFORMEDTIMESTAMPHEADERDATETIME: ::mime::Mime = ::mime::APPLICATION_JSON;
 6104   6259   
::pin_project_lite::pin_project! {
 6105   6260   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 6106   6261   
    /// [`MalformedTimestampHeaderDateTimeInput`](crate::input::MalformedTimestampHeaderDateTimeInput) using modelled bindings.
 6107   6262   
    pub struct MalformedTimestampHeaderDateTimeInputFuture {
 6108   6263   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampHeaderDateTimeInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 6109   6264   
    }
 6110   6265   
}
 6111   6266   
 6112   6267   
impl std::future::Future for MalformedTimestampHeaderDateTimeInputFuture {
@@ -6139,6294 +6234,6394 @@
 6159   6314   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 6160   6315   
                    e,
 6161   6316   
                )
 6162   6317   
            },
 6163   6318   
        );
 6164   6319   
        MalformedTimestampHeaderDateTimeInputFuture {
 6165   6320   
            inner: Box::pin(fut),
 6166   6321   
        }
 6167   6322   
    }
 6168   6323   
}
        6324  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 6169   6325   
impl
 6170   6326   
    ::aws_smithy_http_server::response::IntoResponse<
 6171   6327   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 6172   6328   
    > for crate::output::MalformedTimestampHeaderDateTimeOutput
 6173   6329   
{
 6174   6330   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 6175   6331   
        match crate::protocol_serde::shape_malformed_timestamp_header_date_time::ser_malformed_timestamp_header_date_time_http_response(self) {
 6176   6332   
                        Ok(response) => response,
 6177   6333   
                        Err(e) => {
 6178   6334   
                            ::tracing::error!(error = %e, "failed to serialize response");
 6179   6335   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 6180   6336   
                        }
 6181   6337   
                    }
 6182   6338   
    }
 6183   6339   
}
        6340  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 6184   6341   
impl
 6185   6342   
    ::aws_smithy_http_server::response::IntoResponse<
 6186   6343   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 6187   6344   
    > for crate::error::MalformedTimestampHeaderDateTimeError
 6188   6345   
{
 6189   6346   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 6190   6347   
        match crate::protocol_serde::shape_malformed_timestamp_header_date_time::ser_malformed_timestamp_header_date_time_http_error(&self) {
 6191   6348   
            Ok(mut response) => {
 6192   6349   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 6193   6350   
                response
 6194   6351   
            },
 6195   6352   
            Err(e) => {
 6196   6353   
                ::tracing::error!(error = %e, "failed to serialize response");
 6197   6354   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 6198   6355   
            }
 6199   6356   
        }
 6200   6357   
    }
 6201   6358   
}
 6202   6359   
        6360  +
/* RustType.kt:516 */
 6203   6361   
#[allow(unreachable_code, unused_variables)]
        6362  +
/* RustType.kt:516 */
 6204   6363   
#[cfg(test)]
        6364  +
/* ProtocolTestGenerator.kt:98 */
 6205   6365   
mod malformed_timestamp_header_date_time_test {
 6206   6366   
 6207   6367   
    /// When the format is date-time, IMF-fixdate timestamps are rejected with a
 6208   6368   
    /// 400 SerializationException
 6209   6369   
    /// Test ID: RestJsonHeaderTimestampDateTimeRejectsHttpDate_case0
 6210   6370   
    #[::tokio::test]
 6211   6371   
    #[::tracing_test::traced_test]
 6212   6372   
    async fn rest_json_header_timestamp_date_time_rejects_http_date_case0_malformed_request() {
 6213   6373   
        {
 6214   6374   
            #[allow(unused_mut)]
@@ -6947,7107 +7008,7171 @@
 6967   7127   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 6968   7128   
                http_response.status()
 6969   7129   
            );
 6970   7130   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 6971   7131   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 6972   7132   
                http_response.headers(),
 6973   7133   
                expected_headers,
 6974   7134   
            ));
 6975   7135   
        }
 6976   7136   
    }
        7137  +
        7138  +
    /* ProtocolTestGenerator.kt:98 */
 6977   7139   
}
 6978   7140   
        7141  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 6979   7142   
const CONTENT_TYPE_MALFORMEDTIMESTAMPHEADERDEFAULT: ::mime::Mime = ::mime::APPLICATION_JSON;
 6980   7143   
::pin_project_lite::pin_project! {
 6981   7144   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 6982   7145   
    /// [`MalformedTimestampHeaderDefaultInput`](crate::input::MalformedTimestampHeaderDefaultInput) using modelled bindings.
 6983   7146   
    pub struct MalformedTimestampHeaderDefaultInputFuture {
 6984   7147   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampHeaderDefaultInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 6985   7148   
    }
 6986   7149   
}
 6987   7150   
 6988   7151   
impl std::future::Future for MalformedTimestampHeaderDefaultInputFuture {
@@ -7015,7178 +7110,7278 @@
 7035   7198   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 7036   7199   
                    e,
 7037   7200   
                )
 7038   7201   
            },
 7039   7202   
        );
 7040   7203   
        MalformedTimestampHeaderDefaultInputFuture {
 7041   7204   
            inner: Box::pin(fut),
 7042   7205   
        }
 7043   7206   
    }
 7044   7207   
}
        7208  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 7045   7209   
impl
 7046   7210   
    ::aws_smithy_http_server::response::IntoResponse<
 7047   7211   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 7048   7212   
    > for crate::output::MalformedTimestampHeaderDefaultOutput
 7049   7213   
{
 7050   7214   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 7051   7215   
        match crate::protocol_serde::shape_malformed_timestamp_header_default::ser_malformed_timestamp_header_default_http_response(self) {
 7052   7216   
                        Ok(response) => response,
 7053   7217   
                        Err(e) => {
 7054   7218   
                            ::tracing::error!(error = %e, "failed to serialize response");
 7055   7219   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 7056   7220   
                        }
 7057   7221   
                    }
 7058   7222   
    }
 7059   7223   
}
        7224  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 7060   7225   
impl
 7061   7226   
    ::aws_smithy_http_server::response::IntoResponse<
 7062   7227   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 7063   7228   
    > for crate::error::MalformedTimestampHeaderDefaultError
 7064   7229   
{
 7065   7230   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 7066   7231   
        match crate::protocol_serde::shape_malformed_timestamp_header_default::ser_malformed_timestamp_header_default_http_error(&self) {
 7067   7232   
            Ok(mut response) => {
 7068   7233   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 7069   7234   
                response
 7070   7235   
            },
 7071   7236   
            Err(e) => {
 7072   7237   
                ::tracing::error!(error = %e, "failed to serialize response");
 7073   7238   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 7074   7239   
            }
 7075   7240   
        }
 7076   7241   
    }
 7077   7242   
}
 7078   7243   
        7244  +
/* RustType.kt:516 */
 7079   7245   
#[allow(unreachable_code, unused_variables)]
        7246  +
/* RustType.kt:516 */
 7080   7247   
#[cfg(test)]
        7248  +
/* ProtocolTestGenerator.kt:98 */
 7081   7249   
mod malformed_timestamp_header_default_test {
 7082   7250   
 7083   7251   
    /// By default, RFC3339 timestamps are rejected with a
 7084   7252   
    /// 400 SerializationException
 7085   7253   
    /// Test ID: RestJsonHeaderTimestampDefaultRejectsDateTime_case0
 7086   7254   
    #[::tokio::test]
 7087   7255   
    #[::tracing_test::traced_test]
 7088   7256   
    async fn rest_json_header_timestamp_default_rejects_date_time_case0_malformed_request() {
 7089   7257   
        {
 7090   7258   
            #[allow(unused_mut)]
@@ -7262,7430 +7323,7494 @@
 7282   7450   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 7283   7451   
                http_response.status()
 7284   7452   
            );
 7285   7453   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 7286   7454   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 7287   7455   
                http_response.headers(),
 7288   7456   
                expected_headers,
 7289   7457   
            ));
 7290   7458   
        }
 7291   7459   
    }
        7460  +
        7461  +
    /* ProtocolTestGenerator.kt:98 */
 7292   7462   
}
 7293   7463   
        7464  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 7294   7465   
const CONTENT_TYPE_MALFORMEDTIMESTAMPQUERYEPOCH: ::mime::Mime = ::mime::APPLICATION_JSON;
 7295   7466   
::pin_project_lite::pin_project! {
 7296   7467   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 7297   7468   
    /// [`MalformedTimestampQueryEpochInput`](crate::input::MalformedTimestampQueryEpochInput) using modelled bindings.
 7298   7469   
    pub struct MalformedTimestampQueryEpochInputFuture {
 7299   7470   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampQueryEpochInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 7300   7471   
    }
 7301   7472   
}
 7302   7473   
 7303   7474   
impl std::future::Future for MalformedTimestampQueryEpochInputFuture {
@@ -7330,7501 +7425,7601 @@
 7350   7521   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 7351   7522   
                    e,
 7352   7523   
                )
 7353   7524   
            },
 7354   7525   
        );
 7355   7526   
        MalformedTimestampQueryEpochInputFuture {
 7356   7527   
            inner: Box::pin(fut),
 7357   7528   
        }
 7358   7529   
    }
 7359   7530   
}
        7531  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 7360   7532   
impl
 7361   7533   
    ::aws_smithy_http_server::response::IntoResponse<
 7362   7534   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 7363   7535   
    > for crate::output::MalformedTimestampQueryEpochOutput
 7364   7536   
{
 7365   7537   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 7366   7538   
        match crate::protocol_serde::shape_malformed_timestamp_query_epoch::ser_malformed_timestamp_query_epoch_http_response(self) {
 7367   7539   
                        Ok(response) => response,
 7368   7540   
                        Err(e) => {
 7369   7541   
                            ::tracing::error!(error = %e, "failed to serialize response");
 7370   7542   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 7371   7543   
                        }
 7372   7544   
                    }
 7373   7545   
    }
 7374   7546   
}
        7547  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 7375   7548   
impl
 7376   7549   
    ::aws_smithy_http_server::response::IntoResponse<
 7377   7550   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 7378   7551   
    > for crate::error::MalformedTimestampQueryEpochError
 7379   7552   
{
 7380   7553   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 7381   7554   
        match crate::protocol_serde::shape_malformed_timestamp_query_epoch::ser_malformed_timestamp_query_epoch_http_error(&self) {
 7382   7555   
            Ok(mut response) => {
 7383   7556   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 7384   7557   
                response
 7385   7558   
            },
 7386   7559   
            Err(e) => {
 7387   7560   
                ::tracing::error!(error = %e, "failed to serialize response");
 7388   7561   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 7389   7562   
            }
 7390   7563   
        }
 7391   7564   
    }
 7392   7565   
}
 7393   7566   
        7567  +
/* RustType.kt:516 */
 7394   7568   
#[allow(unreachable_code, unused_variables)]
        7569  +
/* RustType.kt:516 */
 7395   7570   
#[cfg(test)]
        7571  +
/* ProtocolTestGenerator.kt:98 */
 7396   7572   
mod malformed_timestamp_query_epoch_test {
 7397   7573   
 7398   7574   
    /// When the format is epoch-seconds, RFC3339 timestamps are rejected with a
 7399   7575   
    /// 400 SerializationException
 7400   7576   
    /// Test ID: RestJsonQueryTimestampEpochRejectsDateTime_case0
 7401   7577   
    #[::tokio::test]
 7402   7578   
    #[::tracing_test::traced_test]
 7403   7579   
    async fn rest_json_query_timestamp_epoch_rejects_date_time_case0_malformed_request() {
 7404   7580   
        {
 7405   7581   
            #[allow(unused_mut)]
@@ -7887,8063 +7948,8127 @@
 7907   8083   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 7908   8084   
                http_response.status()
 7909   8085   
            );
 7910   8086   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 7911   8087   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 7912   8088   
                http_response.headers(),
 7913   8089   
                expected_headers,
 7914   8090   
            ));
 7915   8091   
        }
 7916   8092   
    }
        8093  +
        8094  +
    /* ProtocolTestGenerator.kt:98 */
 7917   8095   
}
 7918   8096   
        8097  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 7919   8098   
const CONTENT_TYPE_MALFORMEDTIMESTAMPQUERYHTTPDATE: ::mime::Mime = ::mime::APPLICATION_JSON;
 7920   8099   
::pin_project_lite::pin_project! {
 7921   8100   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 7922   8101   
    /// [`MalformedTimestampQueryHttpDateInput`](crate::input::MalformedTimestampQueryHttpDateInput) using modelled bindings.
 7923   8102   
    pub struct MalformedTimestampQueryHttpDateInputFuture {
 7924   8103   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampQueryHttpDateInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 7925   8104   
    }
 7926   8105   
}
 7927   8106   
 7928   8107   
impl std::future::Future for MalformedTimestampQueryHttpDateInputFuture {
@@ -7955,8134 +8050,8234 @@
 7975   8154   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 7976   8155   
                    e,
 7977   8156   
                )
 7978   8157   
            },
 7979   8158   
        );
 7980   8159   
        MalformedTimestampQueryHttpDateInputFuture {
 7981   8160   
            inner: Box::pin(fut),
 7982   8161   
        }
 7983   8162   
    }
 7984   8163   
}
        8164  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 7985   8165   
impl
 7986   8166   
    ::aws_smithy_http_server::response::IntoResponse<
 7987   8167   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 7988   8168   
    > for crate::output::MalformedTimestampQueryHttpDateOutput
 7989   8169   
{
 7990   8170   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 7991   8171   
        match crate::protocol_serde::shape_malformed_timestamp_query_http_date::ser_malformed_timestamp_query_http_date_http_response(self) {
 7992   8172   
                        Ok(response) => response,
 7993   8173   
                        Err(e) => {
 7994   8174   
                            ::tracing::error!(error = %e, "failed to serialize response");
 7995   8175   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 7996   8176   
                        }
 7997   8177   
                    }
 7998   8178   
    }
 7999   8179   
}
        8180  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 8000   8181   
impl
 8001   8182   
    ::aws_smithy_http_server::response::IntoResponse<
 8002   8183   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 8003   8184   
    > for crate::error::MalformedTimestampQueryHttpDateError
 8004   8185   
{
 8005   8186   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 8006   8187   
        match crate::protocol_serde::shape_malformed_timestamp_query_http_date::ser_malformed_timestamp_query_http_date_http_error(&self) {
 8007   8188   
            Ok(mut response) => {
 8008   8189   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 8009   8190   
                response
 8010   8191   
            },
 8011   8192   
            Err(e) => {
 8012   8193   
                ::tracing::error!(error = %e, "failed to serialize response");
 8013   8194   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 8014   8195   
            }
 8015   8196   
        }
 8016   8197   
    }
 8017   8198   
}
 8018   8199   
        8200  +
/* RustType.kt:516 */
 8019   8201   
#[allow(unreachable_code, unused_variables)]
        8202  +
/* RustType.kt:516 */
 8020   8203   
#[cfg(test)]
        8204  +
/* ProtocolTestGenerator.kt:98 */
 8021   8205   
mod malformed_timestamp_query_http_date_test {
 8022   8206   
 8023   8207   
    /// When the format is http-date, RFC3339 timestamps are rejected with a
 8024   8208   
    /// 400 SerializationException
 8025   8209   
    /// Test ID: RestJsonQueryTimestampHttpDateRejectsDateTime_case0
 8026   8210   
    #[::tokio::test]
 8027   8211   
    #[::tracing_test::traced_test]
 8028   8212   
    async fn rest_json_query_timestamp_http_date_rejects_date_time_case0_malformed_request() {
 8029   8213   
        {
 8030   8214   
            #[allow(unused_mut)]
@@ -8215,8399 +8276,8463 @@
 8235   8419   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 8236   8420   
                http_response.status()
 8237   8421   
            );
 8238   8422   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 8239   8423   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 8240   8424   
                http_response.headers(),
 8241   8425   
                expected_headers,
 8242   8426   
            ));
 8243   8427   
        }
 8244   8428   
    }
        8429  +
        8430  +
    /* ProtocolTestGenerator.kt:98 */
 8245   8431   
}
 8246   8432   
        8433  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 8247   8434   
const CONTENT_TYPE_MALFORMEDTIMESTAMPQUERYDEFAULT: ::mime::Mime = ::mime::APPLICATION_JSON;
 8248   8435   
::pin_project_lite::pin_project! {
 8249   8436   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 8250   8437   
    /// [`MalformedTimestampQueryDefaultInput`](crate::input::MalformedTimestampQueryDefaultInput) using modelled bindings.
 8251   8438   
    pub struct MalformedTimestampQueryDefaultInputFuture {
 8252   8439   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampQueryDefaultInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 8253   8440   
    }
 8254   8441   
}
 8255   8442   
 8256   8443   
impl std::future::Future for MalformedTimestampQueryDefaultInputFuture {
@@ -8283,8470 +8378,8570 @@
 8303   8490   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 8304   8491   
                    e,
 8305   8492   
                )
 8306   8493   
            },
 8307   8494   
        );
 8308   8495   
        MalformedTimestampQueryDefaultInputFuture {
 8309   8496   
            inner: Box::pin(fut),
 8310   8497   
        }
 8311   8498   
    }
 8312   8499   
}
        8500  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 8313   8501   
impl
 8314   8502   
    ::aws_smithy_http_server::response::IntoResponse<
 8315   8503   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 8316   8504   
    > for crate::output::MalformedTimestampQueryDefaultOutput
 8317   8505   
{
 8318   8506   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 8319   8507   
        match crate::protocol_serde::shape_malformed_timestamp_query_default::ser_malformed_timestamp_query_default_http_response(self) {
 8320   8508   
                        Ok(response) => response,
 8321   8509   
                        Err(e) => {
 8322   8510   
                            ::tracing::error!(error = %e, "failed to serialize response");
 8323   8511   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 8324   8512   
                        }
 8325   8513   
                    }
 8326   8514   
    }
 8327   8515   
}
        8516  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 8328   8517   
impl
 8329   8518   
    ::aws_smithy_http_server::response::IntoResponse<
 8330   8519   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 8331   8520   
    > for crate::error::MalformedTimestampQueryDefaultError
 8332   8521   
{
 8333   8522   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 8334   8523   
        match crate::protocol_serde::shape_malformed_timestamp_query_default::ser_malformed_timestamp_query_default_http_error(&self) {
 8335   8524   
            Ok(mut response) => {
 8336   8525   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 8337   8526   
                response
 8338   8527   
            },
 8339   8528   
            Err(e) => {
 8340   8529   
                ::tracing::error!(error = %e, "failed to serialize response");
 8341   8530   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 8342   8531   
            }
 8343   8532   
        }
 8344   8533   
    }
 8345   8534   
}
 8346   8535   
        8536  +
/* RustType.kt:516 */
 8347   8537   
#[allow(unreachable_code, unused_variables)]
        8538  +
/* RustType.kt:516 */
 8348   8539   
#[cfg(test)]
        8540  +
/* ProtocolTestGenerator.kt:98 */
 8349   8541   
mod malformed_timestamp_query_default_test {
 8350   8542   
 8351   8543   
    /// By default, IMF-fixdate timestamps are rejected with a
 8352   8544   
    /// 400 SerializationException
 8353   8545   
    /// Test ID: RestJsonQueryTimestampDefaultRejectsHttpDate_case0
 8354   8546   
    #[::tokio::test]
 8355   8547   
    #[::tracing_test::traced_test]
 8356   8548   
    async fn rest_json_query_timestamp_default_rejects_http_date_case0_malformed_request() {
 8357   8549   
        {
 8358   8550   
            #[allow(unused_mut)]
@@ -9217,9409 +9278,9473 @@
 9237   9429   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 9238   9430   
                http_response.status()
 9239   9431   
            );
 9240   9432   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 9241   9433   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 9242   9434   
                http_response.headers(),
 9243   9435   
                expected_headers,
 9244   9436   
            ));
 9245   9437   
        }
 9246   9438   
    }
        9439  +
        9440  +
    /* ProtocolTestGenerator.kt:98 */
 9247   9441   
}
 9248   9442   
        9443  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 9249   9444   
const CONTENT_TYPE_MALFORMEDTIMESTAMPPATHEPOCH: ::mime::Mime = ::mime::APPLICATION_JSON;
 9250   9445   
::pin_project_lite::pin_project! {
 9251   9446   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 9252   9447   
    /// [`MalformedTimestampPathEpochInput`](crate::input::MalformedTimestampPathEpochInput) using modelled bindings.
 9253   9448   
    pub struct MalformedTimestampPathEpochInputFuture {
 9254   9449   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampPathEpochInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 9255   9450   
    }
 9256   9451   
}
 9257   9452   
 9258   9453   
impl std::future::Future for MalformedTimestampPathEpochInputFuture {
@@ -9285,9480 +9380,9580 @@
 9305   9500   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 9306   9501   
                    e,
 9307   9502   
                )
 9308   9503   
            },
 9309   9504   
        );
 9310   9505   
        MalformedTimestampPathEpochInputFuture {
 9311   9506   
            inner: Box::pin(fut),
 9312   9507   
        }
 9313   9508   
    }
 9314   9509   
}
        9510  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 9315   9511   
impl
 9316   9512   
    ::aws_smithy_http_server::response::IntoResponse<
 9317   9513   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 9318   9514   
    > for crate::output::MalformedTimestampPathEpochOutput
 9319   9515   
{
 9320   9516   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 9321   9517   
        match crate::protocol_serde::shape_malformed_timestamp_path_epoch::ser_malformed_timestamp_path_epoch_http_response(self) {
 9322   9518   
                        Ok(response) => response,
 9323   9519   
                        Err(e) => {
 9324   9520   
                            ::tracing::error!(error = %e, "failed to serialize response");
 9325   9521   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 9326   9522   
                        }
 9327   9523   
                    }
 9328   9524   
    }
 9329   9525   
}
        9526  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 9330   9527   
impl
 9331   9528   
    ::aws_smithy_http_server::response::IntoResponse<
 9332   9529   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 9333   9530   
    > for crate::error::MalformedTimestampPathEpochError
 9334   9531   
{
 9335   9532   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 9336   9533   
        match crate::protocol_serde::shape_malformed_timestamp_path_epoch::ser_malformed_timestamp_path_epoch_http_error(&self) {
 9337   9534   
            Ok(mut response) => {
 9338   9535   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 9339   9536   
                response
 9340   9537   
            },
 9341   9538   
            Err(e) => {
 9342   9539   
                ::tracing::error!(error = %e, "failed to serialize response");
 9343   9540   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 9344   9541   
            }
 9345   9542   
        }
 9346   9543   
    }
 9347   9544   
}
 9348   9545   
        9546  +
/* RustType.kt:516 */
 9349   9547   
#[allow(unreachable_code, unused_variables)]
        9548  +
/* RustType.kt:516 */
 9350   9549   
#[cfg(test)]
        9550  +
/* ProtocolTestGenerator.kt:98 */
 9351   9551   
mod malformed_timestamp_path_epoch_test {
 9352   9552   
 9353   9553   
    /// When the format is epoch-seconds, RFC3339 timestamps are rejected with a
 9354   9554   
    /// 400 SerializationException
 9355   9555   
    /// Test ID: RestJsonPathTimestampEpochRejectsDateTime_case0
 9356   9556   
    #[::tokio::test]
 9357   9557   
    #[::tracing_test::traced_test]
 9358   9558   
    async fn rest_json_path_timestamp_epoch_rejects_date_time_case0_malformed_request() {
 9359   9559   
        {
 9360   9560   
            #[allow(unused_mut)]
@@ -9806,10006 +9867,10070 @@
 9826  10026   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
 9827  10027   
                http_response.status()
 9828  10028   
            );
 9829  10029   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
 9830  10030   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
 9831  10031   
                http_response.headers(),
 9832  10032   
                expected_headers,
 9833  10033   
            ));
 9834  10034   
        }
 9835  10035   
    }
       10036  +
       10037  +
    /* ProtocolTestGenerator.kt:98 */
 9836  10038   
}
 9837  10039   
       10040  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 9838  10041   
const CONTENT_TYPE_MALFORMEDTIMESTAMPPATHHTTPDATE: ::mime::Mime = ::mime::APPLICATION_JSON;
 9839  10042   
::pin_project_lite::pin_project! {
 9840  10043   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 9841  10044   
    /// [`MalformedTimestampPathHttpDateInput`](crate::input::MalformedTimestampPathHttpDateInput) using modelled bindings.
 9842  10045   
    pub struct MalformedTimestampPathHttpDateInputFuture {
 9843  10046   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampPathHttpDateInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
 9844  10047   
    }
 9845  10048   
}
 9846  10049   
 9847  10050   
impl std::future::Future for MalformedTimestampPathHttpDateInputFuture {
@@ -9874,10077 +9969,10177 @@
 9894  10097   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 9895  10098   
                    e,
 9896  10099   
                )
 9897  10100   
            },
 9898  10101   
        );
 9899  10102   
        MalformedTimestampPathHttpDateInputFuture {
 9900  10103   
            inner: Box::pin(fut),
 9901  10104   
        }
 9902  10105   
    }
 9903  10106   
}
       10107  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 9904  10108   
impl
 9905  10109   
    ::aws_smithy_http_server::response::IntoResponse<
 9906  10110   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 9907  10111   
    > for crate::output::MalformedTimestampPathHttpDateOutput
 9908  10112   
{
 9909  10113   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 9910  10114   
        match crate::protocol_serde::shape_malformed_timestamp_path_http_date::ser_malformed_timestamp_path_http_date_http_response(self) {
 9911  10115   
                        Ok(response) => response,
 9912  10116   
                        Err(e) => {
 9913  10117   
                            ::tracing::error!(error = %e, "failed to serialize response");
 9914  10118   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 9915  10119   
                        }
 9916  10120   
                    }
 9917  10121   
    }
 9918  10122   
}
       10123  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 9919  10124   
impl
 9920  10125   
    ::aws_smithy_http_server::response::IntoResponse<
 9921  10126   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 9922  10127   
    > for crate::error::MalformedTimestampPathHttpDateError
 9923  10128   
{
 9924  10129   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 9925  10130   
        match crate::protocol_serde::shape_malformed_timestamp_path_http_date::ser_malformed_timestamp_path_http_date_http_error(&self) {
 9926  10131   
            Ok(mut response) => {
 9927  10132   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 9928  10133   
                response
 9929  10134   
            },
 9930  10135   
            Err(e) => {
 9931  10136   
                ::tracing::error!(error = %e, "failed to serialize response");
 9932  10137   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
 9933  10138   
            }
 9934  10139   
        }
 9935  10140   
    }
 9936  10141   
}
 9937  10142   
       10143  +
/* RustType.kt:516 */
 9938  10144   
#[allow(unreachable_code, unused_variables)]
       10145  +
/* RustType.kt:516 */
 9939  10146   
#[cfg(test)]
       10147  +
/* ProtocolTestGenerator.kt:98 */
 9940  10148   
mod malformed_timestamp_path_http_date_test {
 9941  10149   
 9942  10150   
    /// When the format is http-date, RFC3339 timestamps are rejected with a
 9943  10151   
    /// 400 SerializationException
 9944  10152   
    /// Test ID: RestJsonPathTimestampHttpDateRejectsDateTime_case0
 9945  10153   
    #[::tokio::test]
 9946  10154   
    #[::tracing_test::traced_test]
 9947  10155   
    async fn rest_json_path_timestamp_http_date_rejects_date_time_case0_malformed_request() {
 9948  10156   
        {
 9949  10157   
            #[allow(unused_mut)]
@@ -10116,10324 +10177,10388 @@
10136  10344   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
10137  10345   
                http_response.status()
10138  10346   
            );
10139  10347   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
10140  10348   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
10141  10349   
                http_response.headers(),
10142  10350   
                expected_headers,
10143  10351   
            ));
10144  10352   
        }
10145  10353   
    }
       10354  +
       10355  +
    /* ProtocolTestGenerator.kt:98 */
10146  10356   
}
10147  10357   
       10358  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
10148  10359   
const CONTENT_TYPE_MALFORMEDTIMESTAMPPATHDEFAULT: ::mime::Mime = ::mime::APPLICATION_JSON;
10149  10360   
::pin_project_lite::pin_project! {
10150  10361   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
10151  10362   
    /// [`MalformedTimestampPathDefaultInput`](crate::input::MalformedTimestampPathDefaultInput) using modelled bindings.
10152  10363   
    pub struct MalformedTimestampPathDefaultInputFuture {
10153  10364   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedTimestampPathDefaultInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
10154  10365   
    }
10155  10366   
}
10156  10367   
10157  10368   
impl std::future::Future for MalformedTimestampPathDefaultInputFuture {
@@ -10184,10395 +10279,10495 @@
10204  10415   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
10205  10416   
                    e,
10206  10417   
                )
10207  10418   
            },
10208  10419   
        );
10209  10420   
        MalformedTimestampPathDefaultInputFuture {
10210  10421   
            inner: Box::pin(fut),
10211  10422   
        }
10212  10423   
    }
10213  10424   
}
       10425  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
10214  10426   
impl
10215  10427   
    ::aws_smithy_http_server::response::IntoResponse<
10216  10428   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
10217  10429   
    > for crate::output::MalformedTimestampPathDefaultOutput
10218  10430   
{
10219  10431   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
10220  10432   
        match crate::protocol_serde::shape_malformed_timestamp_path_default::ser_malformed_timestamp_path_default_http_response(self) {
10221  10433   
                        Ok(response) => response,
10222  10434   
                        Err(e) => {
10223  10435   
                            ::tracing::error!(error = %e, "failed to serialize response");
10224  10436   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
10225  10437   
                        }
10226  10438   
                    }
10227  10439   
    }
10228  10440   
}
       10441  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
10229  10442   
impl
10230  10443   
    ::aws_smithy_http_server::response::IntoResponse<
10231  10444   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
10232  10445   
    > for crate::error::MalformedTimestampPathDefaultError
10233  10446   
{
10234  10447   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
10235  10448   
        match crate::protocol_serde::shape_malformed_timestamp_path_default::ser_malformed_timestamp_path_default_http_error(&self) {
10236  10449   
            Ok(mut response) => {
10237  10450   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
10238  10451   
                response
10239  10452   
            },
10240  10453   
            Err(e) => {
10241  10454   
                ::tracing::error!(error = %e, "failed to serialize response");
10242  10455   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
10243  10456   
            }
10244  10457   
        }
10245  10458   
    }
10246  10459   
}
10247  10460   
       10461  +
/* RustType.kt:516 */
10248  10462   
#[allow(unreachable_code, unused_variables)]
       10463  +
/* RustType.kt:516 */
10249  10464   
#[cfg(test)]
       10465  +
/* ProtocolTestGenerator.kt:98 */
10250  10466   
mod malformed_timestamp_path_default_test {
10251  10467   
10252  10468   
    /// By default, IMF-fixdate timestamps are rejected with a
10253  10469   
    /// 400 SerializationException
10254  10470   
    /// Test ID: RestJsonPathTimestampDefaultRejectsHttpDate_case0
10255  10471   
    #[::tokio::test]
10256  10472   
    #[::tracing_test::traced_test]
10257  10473   
    async fn rest_json_path_timestamp_default_rejects_http_date_case0_malformed_request() {
10258  10474   
        {
10259  10475   
            #[allow(unused_mut)]
@@ -11054,11270 +11115,11334 @@
11074  11290   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
11075  11291   
                http_response.status()
11076  11292   
            );
11077  11293   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
11078  11294   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
11079  11295   
                http_response.headers(),
11080  11296   
                expected_headers,
11081  11297   
            ));
11082  11298   
        }
11083  11299   
    }
       11300  +
       11301  +
    /* ProtocolTestGenerator.kt:98 */
11084  11302   
}
11085  11303   
       11304  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
11086  11305   
const CONTENT_TYPE_MALFORMEDSTRING: ::mime::Mime = ::mime::APPLICATION_JSON;
11087  11306   
::pin_project_lite::pin_project! {
11088  11307   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
11089  11308   
    /// [`MalformedStringInput`](crate::input::MalformedStringInput) using modelled bindings.
11090  11309   
    pub struct MalformedStringInputFuture {
11091  11310   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedStringInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
11092  11311   
    }
11093  11312   
}
11094  11313   
11095  11314   
impl std::future::Future for MalformedStringInputFuture {
@@ -11122,11341 +11201,11424 @@
11142  11361   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
11143  11362   
                    e,
11144  11363   
                )
11145  11364   
            },
11146  11365   
        );
11147  11366   
        MalformedStringInputFuture {
11148  11367   
            inner: Box::pin(fut),
11149  11368   
        }
11150  11369   
    }
11151  11370   
}
       11371  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
11152  11372   
impl
11153  11373   
    ::aws_smithy_http_server::response::IntoResponse<
11154  11374   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
11155  11375   
    > for crate::output::MalformedStringOutput
11156  11376   
{
11157  11377   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
11158  11378   
        match crate::protocol_serde::shape_malformed_string::ser_malformed_string_http_response(
11159  11379   
            self,
11160  11380   
        ) {
11161  11381   
            Ok(response) => response,
11162  11382   
            Err(e) => {
11163  11383   
                ::tracing::error!(error = %e, "failed to serialize response");
11164  11384   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
11165  11385   
            }
11166  11386   
        }
11167  11387   
    }
11168  11388   
}
11169  11389   
       11390  +
/* RustType.kt:516 */
11170  11391   
#[allow(unreachable_code, unused_variables)]
       11392  +
/* RustType.kt:516 */
11171  11393   
#[cfg(test)]
       11394  +
/* ProtocolTestGenerator.kt:98 */
11172  11395   
mod malformed_string_test {
11173  11396   
11174  11397   
    /// When string with the mediaType trait is bound to a header, its value
11175  11398   
    /// must be base64 encoded. The server should reject values that aren't
11176  11399   
    /// valid base64 out of hand.
11177  11400   
    /// Test ID: RestJsonHeaderMalformedStringInvalidBase64MediaType_case0
11178  11401   
    #[::tokio::test]
11179  11402   
    #[::tracing_test::traced_test]
11180  11403   
    async fn rest_json_header_malformed_string_invalid_base64_media_type_case0_malformed_request() {
11181  11404   
        {
@@ -11319,11542 +11380,11606 @@
11339  11562   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
11340  11563   
                http_response.status()
11341  11564   
            );
11342  11565   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
11343  11566   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
11344  11567   
                http_response.headers(),
11345  11568   
                expected_headers,
11346  11569   
            ));
11347  11570   
        }
11348  11571   
    }
       11572  +
       11573  +
    /* ProtocolTestGenerator.kt:98 */
11349  11574   
}
11350  11575   
       11576  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
11351  11577   
const CONTENT_TYPE_MALFORMEDDOUBLE: ::mime::Mime = ::mime::APPLICATION_JSON;
11352  11578   
::pin_project_lite::pin_project! {
11353  11579   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
11354  11580   
    /// [`MalformedDoubleInput`](crate::input::MalformedDoubleInput) using modelled bindings.
11355  11581   
    pub struct MalformedDoubleInputFuture {
11356  11582   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedDoubleInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
11357  11583   
    }
11358  11584   
}
11359  11585   
11360  11586   
impl std::future::Future for MalformedDoubleInputFuture {
@@ -11387,11613 +11487,11718 @@
11407  11633   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
11408  11634   
                    e,
11409  11635   
                )
11410  11636   
            },
11411  11637   
        );
11412  11638   
        MalformedDoubleInputFuture {
11413  11639   
            inner: Box::pin(fut),
11414  11640   
        }
11415  11641   
    }
11416  11642   
}
       11643  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
11417  11644   
impl
11418  11645   
    ::aws_smithy_http_server::response::IntoResponse<
11419  11646   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
11420  11647   
    > for crate::output::MalformedDoubleOutput
11421  11648   
{
11422  11649   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
11423  11650   
        match crate::protocol_serde::shape_malformed_double::ser_malformed_double_http_response(
11424  11651   
            self,
11425  11652   
        ) {
11426  11653   
            Ok(response) => response,
11427  11654   
            Err(e) => {
11428  11655   
                ::tracing::error!(error = %e, "failed to serialize response");
11429  11656   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
11430  11657   
            }
11431  11658   
        }
11432  11659   
    }
11433  11660   
}
       11661  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
11434  11662   
impl
11435  11663   
    ::aws_smithy_http_server::response::IntoResponse<
11436  11664   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
11437  11665   
    > for crate::error::MalformedDoubleError
11438  11666   
{
11439  11667   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
11440  11668   
        match crate::protocol_serde::shape_malformed_double::ser_malformed_double_http_error(&self)
11441  11669   
        {
11442  11670   
            Ok(mut response) => {
11443  11671   
                response.extensions_mut().insert(
11444  11672   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
11445  11673   
                );
11446  11674   
                response
11447  11675   
            }
11448  11676   
            Err(e) => {
11449  11677   
                ::tracing::error!(error = %e, "failed to serialize response");
11450  11678   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
11451  11679   
            }
11452  11680   
        }
11453  11681   
    }
11454  11682   
}
11455  11683   
       11684  +
/* RustType.kt:516 */
11456  11685   
#[allow(unreachable_code, unused_variables)]
       11686  +
/* RustType.kt:516 */
11457  11687   
#[cfg(test)]
       11688  +
/* ProtocolTestGenerator.kt:98 */
11458  11689   
mod malformed_double_test {
11459  11690   
11460  11691   
    /// Malformed values in the body should be rejected
11461  11692   
    /// Test ID: RestJsonBodyDoubleMalformedValueRejected_case0
11462  11693   
    #[::tokio::test]
11463  11694   
    #[::tracing_test::traced_test]
11464  11695   
    async fn rest_json_body_double_malformed_value_rejected_case0_malformed_request() {
11465  11696   
        {
11466  11697   
            #[allow(unused_mut)]
11467  11698   
            let mut http_request = http::Request::builder()
@@ -12117,12348 +12178,12412 @@
12137  12368   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
12138  12369   
                http_response.status()
12139  12370   
            );
12140  12371   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
12141  12372   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
12142  12373   
                http_response.headers(),
12143  12374   
                expected_headers,
12144  12375   
            ));
12145  12376   
        }
12146  12377   
    }
       12378  +
       12379  +
    /* ProtocolTestGenerator.kt:98 */
12147  12380   
}
12148  12381   
       12382  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
12149  12383   
const CONTENT_TYPE_MALFORMEDFLOAT: ::mime::Mime = ::mime::APPLICATION_JSON;
12150  12384   
::pin_project_lite::pin_project! {
12151  12385   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
12152  12386   
    /// [`MalformedFloatInput`](crate::input::MalformedFloatInput) using modelled bindings.
12153  12387   
    pub struct MalformedFloatInputFuture {
12154  12388   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedFloatInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
12155  12389   
    }
12156  12390   
}
12157  12391   
12158  12392   
impl std::future::Future for MalformedFloatInputFuture {
@@ -12185,12419 +12283,12522 @@
12205  12439   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
12206  12440   
                    e,
12207  12441   
                )
12208  12442   
            },
12209  12443   
        );
12210  12444   
        MalformedFloatInputFuture {
12211  12445   
            inner: Box::pin(fut),
12212  12446   
        }
12213  12447   
    }
12214  12448   
}
       12449  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
12215  12450   
impl
12216  12451   
    ::aws_smithy_http_server::response::IntoResponse<
12217  12452   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
12218  12453   
    > for crate::output::MalformedFloatOutput
12219  12454   
{
12220  12455   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
12221  12456   
        match crate::protocol_serde::shape_malformed_float::ser_malformed_float_http_response(self)
12222  12457   
        {
12223  12458   
            Ok(response) => response,
12224  12459   
            Err(e) => {
12225  12460   
                ::tracing::error!(error = %e, "failed to serialize response");
12226  12461   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
12227  12462   
            }
12228  12463   
        }
12229  12464   
    }
12230  12465   
}
       12466  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
12231  12467   
impl
12232  12468   
    ::aws_smithy_http_server::response::IntoResponse<
12233  12469   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
12234  12470   
    > for crate::error::MalformedFloatError
12235  12471   
{
12236  12472   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
12237  12473   
        match crate::protocol_serde::shape_malformed_float::ser_malformed_float_http_error(&self) {
12238  12474   
            Ok(mut response) => {
12239  12475   
                response.extensions_mut().insert(
12240  12476   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
12241  12477   
                );
12242  12478   
                response
12243  12479   
            }
12244  12480   
            Err(e) => {
12245  12481   
                ::tracing::error!(error = %e, "failed to serialize response");
12246  12482   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
12247  12483   
            }
12248  12484   
        }
12249  12485   
    }
12250  12486   
}
12251  12487   
       12488  +
/* RustType.kt:516 */
12252  12489   
#[allow(unreachable_code, unused_variables)]
       12490  +
/* RustType.kt:516 */
12253  12491   
#[cfg(test)]
       12492  +
/* ProtocolTestGenerator.kt:98 */
12254  12493   
mod malformed_float_test {
12255  12494   
12256  12495   
    /// Malformed values in the body should be rejected
12257  12496   
    /// Test ID: RestJsonBodyFloatMalformedValueRejected_case0
12258  12497   
    #[::tokio::test]
12259  12498   
    #[::tracing_test::traced_test]
12260  12499   
    async fn rest_json_body_float_malformed_value_rejected_case0_malformed_request() {
12261  12500   
        {
12262  12501   
            #[allow(unused_mut)]
12263  12502   
            let mut http_request = http::Request::builder()
@@ -12913,13152 +12974,13216 @@
12933  13172   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
12934  13173   
                http_response.status()
12935  13174   
            );
12936  13175   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
12937  13176   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
12938  13177   
                http_response.headers(),
12939  13178   
                expected_headers,
12940  13179   
            ));
12941  13180   
        }
12942  13181   
    }
       13182  +
       13183  +
    /* ProtocolTestGenerator.kt:98 */
12943  13184   
}
12944  13185   
       13186  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
12945  13187   
const CONTENT_TYPE_MALFORMEDLONG: ::mime::Mime = ::mime::APPLICATION_JSON;
12946  13188   
::pin_project_lite::pin_project! {
12947  13189   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
12948  13190   
    /// [`MalformedLongInput`](crate::input::MalformedLongInput) using modelled bindings.
12949  13191   
    pub struct MalformedLongInputFuture {
12950  13192   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedLongInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
12951  13193   
    }
12952  13194   
}
12953  13195   
12954  13196   
impl std::future::Future for MalformedLongInputFuture {
@@ -12981,13223 +13078,13325 @@
13001  13243   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
13002  13244   
                    e,
13003  13245   
                )
13004  13246   
            },
13005  13247   
        );
13006  13248   
        MalformedLongInputFuture {
13007  13249   
            inner: Box::pin(fut),
13008  13250   
        }
13009  13251   
    }
13010  13252   
}
       13253  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
13011  13254   
impl
13012  13255   
    ::aws_smithy_http_server::response::IntoResponse<
13013  13256   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
13014  13257   
    > for crate::output::MalformedLongOutput
13015  13258   
{
13016  13259   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
13017  13260   
        match crate::protocol_serde::shape_malformed_long::ser_malformed_long_http_response(self) {
13018  13261   
            Ok(response) => response,
13019  13262   
            Err(e) => {
13020  13263   
                ::tracing::error!(error = %e, "failed to serialize response");
13021  13264   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
13022  13265   
            }
13023  13266   
        }
13024  13267   
    }
13025  13268   
}
       13269  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
13026  13270   
impl
13027  13271   
    ::aws_smithy_http_server::response::IntoResponse<
13028  13272   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
13029  13273   
    > for crate::error::MalformedLongError
13030  13274   
{
13031  13275   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
13032  13276   
        match crate::protocol_serde::shape_malformed_long::ser_malformed_long_http_error(&self) {
13033  13277   
            Ok(mut response) => {
13034  13278   
                response.extensions_mut().insert(
13035  13279   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
13036  13280   
                );
13037  13281   
                response
13038  13282   
            }
13039  13283   
            Err(e) => {
13040  13284   
                ::tracing::error!(error = %e, "failed to serialize response");
13041  13285   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
13042  13286   
            }
13043  13287   
        }
13044  13288   
    }
13045  13289   
}
13046  13290   
       13291  +
/* RustType.kt:516 */
13047  13292   
#[allow(unreachable_code, unused_variables)]
       13293  +
/* RustType.kt:516 */
13048  13294   
#[cfg(test)]
       13295  +
/* ProtocolTestGenerator.kt:98 */
13049  13296   
mod malformed_long_test {
13050  13297   
13051  13298   
    /// Underflow or overflow should result in SerializationException
13052  13299   
    /// Test ID: RestJsonBodyLongUnderflowOverflow_case0
13053  13300   
    #[::tokio::test]
13054  13301   
    #[::tracing_test::traced_test]
13055  13302   
    async fn rest_json_body_long_underflow_overflow_case0_malformed_request() {
13056  13303   
        {
13057  13304   
            #[allow(unused_mut)]
13058  13305   
            let mut http_request = http::Request::builder()
@@ -14890,15137 +14951,15201 @@
14910  15157   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
14911  15158   
                http_response.status()
14912  15159   
            );
14913  15160   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
14914  15161   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
14915  15162   
                http_response.headers(),
14916  15163   
                expected_headers,
14917  15164   
            ));
14918  15165   
        }
14919  15166   
    }
       15167  +
       15168  +
    /* ProtocolTestGenerator.kt:98 */
14920  15169   
}
14921  15170   
       15171  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
14922  15172   
const CONTENT_TYPE_MALFORMEDSHORT: ::mime::Mime = ::mime::APPLICATION_JSON;
14923  15173   
::pin_project_lite::pin_project! {
14924  15174   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
14925  15175   
    /// [`MalformedShortInput`](crate::input::MalformedShortInput) using modelled bindings.
14926  15176   
    pub struct MalformedShortInputFuture {
14927  15177   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedShortInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
14928  15178   
    }
14929  15179   
}
14930  15180   
14931  15181   
impl std::future::Future for MalformedShortInputFuture {
@@ -14958,15208 +15056,15311 @@
14978  15228   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
14979  15229   
                    e,
14980  15230   
                )
14981  15231   
            },
14982  15232   
        );
14983  15233   
        MalformedShortInputFuture {
14984  15234   
            inner: Box::pin(fut),
14985  15235   
        }
14986  15236   
    }
14987  15237   
}
       15238  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
14988  15239   
impl
14989  15240   
    ::aws_smithy_http_server::response::IntoResponse<
14990  15241   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
14991  15242   
    > for crate::output::MalformedShortOutput
14992  15243   
{
14993  15244   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
14994  15245   
        match crate::protocol_serde::shape_malformed_short::ser_malformed_short_http_response(self)
14995  15246   
        {
14996  15247   
            Ok(response) => response,
14997  15248   
            Err(e) => {
14998  15249   
                ::tracing::error!(error = %e, "failed to serialize response");
14999  15250   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
15000  15251   
            }
15001  15252   
        }
15002  15253   
    }
15003  15254   
}
       15255  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
15004  15256   
impl
15005  15257   
    ::aws_smithy_http_server::response::IntoResponse<
15006  15258   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
15007  15259   
    > for crate::error::MalformedShortError
15008  15260   
{
15009  15261   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
15010  15262   
        match crate::protocol_serde::shape_malformed_short::ser_malformed_short_http_error(&self) {
15011  15263   
            Ok(mut response) => {
15012  15264   
                response.extensions_mut().insert(
15013  15265   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
15014  15266   
                );
15015  15267   
                response
15016  15268   
            }
15017  15269   
            Err(e) => {
15018  15270   
                ::tracing::error!(error = %e, "failed to serialize response");
15019  15271   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
15020  15272   
            }
15021  15273   
        }
15022  15274   
    }
15023  15275   
}
15024  15276   
       15277  +
/* RustType.kt:516 */
15025  15278   
#[allow(unreachable_code, unused_variables)]
       15279  +
/* RustType.kt:516 */
15026  15280   
#[cfg(test)]
       15281  +
/* ProtocolTestGenerator.kt:98 */
15027  15282   
mod malformed_short_test {
15028  15283   
15029  15284   
    /// Underflow or overflow should result in SerializationException
15030  15285   
    /// Test ID: RestJsonBodyShortUnderflowOverflow_case0
15031  15286   
    #[::tokio::test]
15032  15287   
    #[::tracing_test::traced_test]
15033  15288   
    async fn rest_json_body_short_underflow_overflow_case0_malformed_request() {
15034  15289   
        {
15035  15290   
            #[allow(unused_mut)]
15036  15291   
            let mut http_request = http::Request::builder()
@@ -17204,17459 +17265,17523 @@
17224  17479   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
17225  17480   
                http_response.status()
17226  17481   
            );
17227  17482   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
17228  17483   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
17229  17484   
                http_response.headers(),
17230  17485   
                expected_headers,
17231  17486   
            ));
17232  17487   
        }
17233  17488   
    }
       17489  +
       17490  +
    /* ProtocolTestGenerator.kt:98 */
17234  17491   
}
17235  17492   
       17493  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
17236  17494   
const CONTENT_TYPE_MALFORMEDBYTE: ::mime::Mime = ::mime::APPLICATION_JSON;
17237  17495   
::pin_project_lite::pin_project! {
17238  17496   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
17239  17497   
    /// [`MalformedByteInput`](crate::input::MalformedByteInput) using modelled bindings.
17240  17498   
    pub struct MalformedByteInputFuture {
17241  17499   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedByteInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
17242  17500   
    }
17243  17501   
}
17244  17502   
17245  17503   
impl std::future::Future for MalformedByteInputFuture {
@@ -17272,17530 +17369,17632 @@
17292  17550   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
17293  17551   
                    e,
17294  17552   
                )
17295  17553   
            },
17296  17554   
        );
17297  17555   
        MalformedByteInputFuture {
17298  17556   
            inner: Box::pin(fut),
17299  17557   
        }
17300  17558   
    }
17301  17559   
}
       17560  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
17302  17561   
impl
17303  17562   
    ::aws_smithy_http_server::response::IntoResponse<
17304  17563   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
17305  17564   
    > for crate::output::MalformedByteOutput
17306  17565   
{
17307  17566   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
17308  17567   
        match crate::protocol_serde::shape_malformed_byte::ser_malformed_byte_http_response(self) {
17309  17568   
            Ok(response) => response,
17310  17569   
            Err(e) => {
17311  17570   
                ::tracing::error!(error = %e, "failed to serialize response");
17312  17571   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
17313  17572   
            }
17314  17573   
        }
17315  17574   
    }
17316  17575   
}
       17576  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
17317  17577   
impl
17318  17578   
    ::aws_smithy_http_server::response::IntoResponse<
17319  17579   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
17320  17580   
    > for crate::error::MalformedByteError
17321  17581   
{
17322  17582   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
17323  17583   
        match crate::protocol_serde::shape_malformed_byte::ser_malformed_byte_http_error(&self) {
17324  17584   
            Ok(mut response) => {
17325  17585   
                response.extensions_mut().insert(
17326  17586   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
17327  17587   
                );
17328  17588   
                response
17329  17589   
            }
17330  17590   
            Err(e) => {
17331  17591   
                ::tracing::error!(error = %e, "failed to serialize response");
17332  17592   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
17333  17593   
            }
17334  17594   
        }
17335  17595   
    }
17336  17596   
}
17337  17597   
       17598  +
/* RustType.kt:516 */
17338  17599   
#[allow(unreachable_code, unused_variables)]
       17600  +
/* RustType.kt:516 */
17339  17601   
#[cfg(test)]
       17602  +
/* ProtocolTestGenerator.kt:98 */
17340  17603   
mod malformed_byte_test {
17341  17604   
17342  17605   
    /// Underflow or overflow should result in SerializationException
17343  17606   
    /// Test ID: RestJsonBodyByteUnderflowOverflow_case0
17344  17607   
    #[::tokio::test]
17345  17608   
    #[::tracing_test::traced_test]
17346  17609   
    async fn rest_json_body_byte_underflow_overflow_case0_malformed_request() {
17347  17610   
        {
17348  17611   
            #[allow(unused_mut)]
17349  17612   
            let mut http_request = http::Request::builder()
@@ -19517,19780 +19578,19844 @@
19537  19800   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
19538  19801   
                http_response.status()
19539  19802   
            );
19540  19803   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
19541  19804   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
19542  19805   
                http_response.headers(),
19543  19806   
                expected_headers,
19544  19807   
            ));
19545  19808   
        }
19546  19809   
    }
       19810  +
       19811  +
    /* ProtocolTestGenerator.kt:98 */
19547  19812   
}
19548  19813   
       19814  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
19549  19815   
const CONTENT_TYPE_MALFORMEDBLOB: ::mime::Mime = ::mime::APPLICATION_JSON;
19550  19816   
::pin_project_lite::pin_project! {
19551  19817   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
19552  19818   
    /// [`MalformedBlobInput`](crate::input::MalformedBlobInput) using modelled bindings.
19553  19819   
    pub struct MalformedBlobInputFuture {
19554  19820   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedBlobInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
19555  19821   
    }
19556  19822   
}
19557  19823   
19558  19824   
impl std::future::Future for MalformedBlobInputFuture {
@@ -19585,19851 +19662,19932 @@
19605  19871   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
19606  19872   
                    e,
19607  19873   
                )
19608  19874   
            },
19609  19875   
        );
19610  19876   
        MalformedBlobInputFuture {
19611  19877   
            inner: Box::pin(fut),
19612  19878   
        }
19613  19879   
    }
19614  19880   
}
       19881  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
19615  19882   
impl
19616  19883   
    ::aws_smithy_http_server::response::IntoResponse<
19617  19884   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
19618  19885   
    > for crate::output::MalformedBlobOutput
19619  19886   
{
19620  19887   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
19621  19888   
        match crate::protocol_serde::shape_malformed_blob::ser_malformed_blob_http_response(self) {
19622  19889   
            Ok(response) => response,
19623  19890   
            Err(e) => {
19624  19891   
                ::tracing::error!(error = %e, "failed to serialize response");
19625  19892   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
19626  19893   
            }
19627  19894   
        }
19628  19895   
    }
19629  19896   
}
19630  19897   
       19898  +
/* RustType.kt:516 */
19631  19899   
#[allow(unreachable_code, unused_variables)]
       19900  +
/* RustType.kt:516 */
19632  19901   
#[cfg(test)]
       19902  +
/* ProtocolTestGenerator.kt:98 */
19633  19903   
mod malformed_blob_test {
19634  19904   
19635  19905   
    /// When a blob member is not properly base64 encoded, or not encoded at
19636  19906   
    /// all, the response should be a 400 SerializationException.
19637  19907   
    /// Test ID: RestJsonBodyMalformedBlobInvalidBase64_case0
19638  19908   
    #[::tokio::test]
19639  19909   
    #[::tracing_test::traced_test]
19640  19910   
    async fn rest_json_body_malformed_blob_invalid_base64_case0_malformed_request() {
19641  19911   
        {
19642  19912   
            #[allow(unused_mut)]
@@ -20027,20297 +20088,20361 @@
20047  20317   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
20048  20318   
                http_response.status()
20049  20319   
            );
20050  20320   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
20051  20321   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
20052  20322   
                http_response.headers(),
20053  20323   
                expected_headers,
20054  20324   
            ));
20055  20325   
        }
20056  20326   
    }
       20327  +
       20328  +
    /* ProtocolTestGenerator.kt:98 */
20057  20329   
}
20058  20330   
       20331  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
20059  20332   
const CONTENT_TYPE_MALFORMEDMAP: ::mime::Mime = ::mime::APPLICATION_JSON;
20060  20333   
::pin_project_lite::pin_project! {
20061  20334   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
20062  20335   
    /// [`MalformedMapInput`](crate::input::MalformedMapInput) using modelled bindings.
20063  20336   
    pub struct MalformedMapInputFuture {
20064  20337   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedMapInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
20065  20338   
    }
20066  20339   
}
20067  20340   
20068  20341   
impl std::future::Future for MalformedMapInputFuture {
@@ -20095,20368 +20172,20449 @@
20115  20388   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
20116  20389   
                    e,
20117  20390   
                )
20118  20391   
            },
20119  20392   
        );
20120  20393   
        MalformedMapInputFuture {
20121  20394   
            inner: Box::pin(fut),
20122  20395   
        }
20123  20396   
    }
20124  20397   
}
       20398  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
20125  20399   
impl
20126  20400   
    ::aws_smithy_http_server::response::IntoResponse<
20127  20401   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
20128  20402   
    > for crate::output::MalformedMapOutput
20129  20403   
{
20130  20404   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
20131  20405   
        match crate::protocol_serde::shape_malformed_map::ser_malformed_map_http_response(self) {
20132  20406   
            Ok(response) => response,
20133  20407   
            Err(e) => {
20134  20408   
                ::tracing::error!(error = %e, "failed to serialize response");
20135  20409   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
20136  20410   
            }
20137  20411   
        }
20138  20412   
    }
20139  20413   
}
20140  20414   
       20415  +
/* RustType.kt:516 */
20141  20416   
#[allow(unreachable_code, unused_variables)]
       20417  +
/* RustType.kt:516 */
20142  20418   
#[cfg(test)]
       20419  +
/* ProtocolTestGenerator.kt:98 */
20143  20420   
mod malformed_map_test {
20144  20421   
20145  20422   
    /// When a map contains a null key, the response should be a 400
20146  20423   
    /// SerializationException.
20147  20424   
    /// Test ID: RestJsonBodyMalformedMapNullKey
20148  20425   
    #[::tokio::test]
20149  20426   
    #[::tracing_test::traced_test]
20150  20427   
    async fn rest_json_body_malformed_map_null_key_malformed_request() {
20151  20428   
        {
20152  20429   
            #[allow(unused_mut)]
@@ -20208,20485 +20269,20549 @@
20228  20505   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
20229  20506   
                http_response.status()
20230  20507   
            );
20231  20508   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
20232  20509   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
20233  20510   
                http_response.headers(),
20234  20511   
                expected_headers,
20235  20512   
            ));
20236  20513   
        }
20237  20514   
    }
       20515  +
       20516  +
    /* ProtocolTestGenerator.kt:98 */
20238  20517   
}
20239  20518   
       20519  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
20240  20520   
const CONTENT_TYPE_MALFORMEDLIST: ::mime::Mime = ::mime::APPLICATION_JSON;
20241  20521   
::pin_project_lite::pin_project! {
20242  20522   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
20243  20523   
    /// [`MalformedListInput`](crate::input::MalformedListInput) using modelled bindings.
20244  20524   
    pub struct MalformedListInputFuture {
20245  20525   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedListInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
20246  20526   
    }
20247  20527   
}
20248  20528   
20249  20529   
impl std::future::Future for MalformedListInputFuture {
@@ -20276,20556 +20353,20637 @@
20296  20576   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
20297  20577   
                    e,
20298  20578   
                )
20299  20579   
            },
20300  20580   
        );
20301  20581   
        MalformedListInputFuture {
20302  20582   
            inner: Box::pin(fut),
20303  20583   
        }
20304  20584   
    }
20305  20585   
}
       20586  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
20306  20587   
impl
20307  20588   
    ::aws_smithy_http_server::response::IntoResponse<
20308  20589   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
20309  20590   
    > for crate::output::MalformedListOutput
20310  20591   
{
20311  20592   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
20312  20593   
        match crate::protocol_serde::shape_malformed_list::ser_malformed_list_http_response(self) {
20313  20594   
            Ok(response) => response,
20314  20595   
            Err(e) => {
20315  20596   
                ::tracing::error!(error = %e, "failed to serialize response");
20316  20597   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
20317  20598   
            }
20318  20599   
        }
20319  20600   
    }
20320  20601   
}
20321  20602   
       20603  +
/* RustType.kt:516 */
20322  20604   
#[allow(unreachable_code, unused_variables)]
       20605  +
/* RustType.kt:516 */
20323  20606   
#[cfg(test)]
       20607  +
/* ProtocolTestGenerator.kt:98 */
20324  20608   
mod malformed_list_test {
20325  20609   
20326  20610   
    /// When a dense list contains null, the response should be a 400
20327  20611   
    /// SerializationException.
20328  20612   
    /// Test ID: RestJsonBodyMalformedListNullItem
20329  20613   
    #[::tokio::test]
20330  20614   
    #[::tracing_test::traced_test]
20331  20615   
    async fn rest_json_body_malformed_list_null_item_malformed_request() {
20332  20616   
        {
20333  20617   
            #[allow(unused_mut)]
@@ -20389,20673 +20450,20737 @@
20409  20693   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
20410  20694   
                http_response.status()
20411  20695   
            );
20412  20696   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
20413  20697   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
20414  20698   
                http_response.headers(),
20415  20699   
                expected_headers,
20416  20700   
            ));
20417  20701   
        }
20418  20702   
    }
       20703  +
       20704  +
    /* ProtocolTestGenerator.kt:98 */
20419  20705   
}
20420  20706   
       20707  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
20421  20708   
const CONTENT_TYPE_MALFORMEDBOOLEAN: ::mime::Mime = ::mime::APPLICATION_JSON;
20422  20709   
::pin_project_lite::pin_project! {
20423  20710   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
20424  20711   
    /// [`MalformedBooleanInput`](crate::input::MalformedBooleanInput) using modelled bindings.
20425  20712   
    pub struct MalformedBooleanInputFuture {
20426  20713   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedBooleanInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
20427  20714   
    }
20428  20715   
}
20429  20716   
20430  20717   
impl std::future::Future for MalformedBooleanInputFuture {
@@ -20459,20746 +20560,20852 @@
20479  20766   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
20480  20767   
                    e,
20481  20768   
                )
20482  20769   
            },
20483  20770   
        );
20484  20771   
        MalformedBooleanInputFuture {
20485  20772   
            inner: Box::pin(fut),
20486  20773   
        }
20487  20774   
    }
20488  20775   
}
       20776  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
20489  20777   
impl
20490  20778   
    ::aws_smithy_http_server::response::IntoResponse<
20491  20779   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
20492  20780   
    > for crate::output::MalformedBooleanOutput
20493  20781   
{
20494  20782   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
20495  20783   
        match crate::protocol_serde::shape_malformed_boolean::ser_malformed_boolean_http_response(
20496  20784   
            self,
20497  20785   
        ) {
20498  20786   
            Ok(response) => response,
20499  20787   
            Err(e) => {
20500  20788   
                ::tracing::error!(error = %e, "failed to serialize response");
20501  20789   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
20502  20790   
            }
20503  20791   
        }
20504  20792   
    }
20505  20793   
}
       20794  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
20506  20795   
impl
20507  20796   
    ::aws_smithy_http_server::response::IntoResponse<
20508  20797   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
20509  20798   
    > for crate::error::MalformedBooleanError
20510  20799   
{
20511  20800   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
20512  20801   
        match crate::protocol_serde::shape_malformed_boolean::ser_malformed_boolean_http_error(
20513  20802   
            &self,
20514  20803   
        ) {
20515  20804   
            Ok(mut response) => {
20516  20805   
                response.extensions_mut().insert(
20517  20806   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
20518  20807   
                );
20519  20808   
                response
20520  20809   
            }
20521  20810   
            Err(e) => {
20522  20811   
                ::tracing::error!(error = %e, "failed to serialize response");
20523  20812   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
20524  20813   
            }
20525  20814   
        }
20526  20815   
    }
20527  20816   
}
20528  20817   
       20818  +
/* RustType.kt:516 */
20529  20819   
#[allow(unreachable_code, unused_variables)]
       20820  +
/* RustType.kt:516 */
20530  20821   
#[cfg(test)]
       20822  +
/* ProtocolTestGenerator.kt:98 */
20531  20823   
mod malformed_boolean_test {
20532  20824   
20533  20825   
    /// Attempted string coercion should result in SerializationException
20534  20826   
    /// Test ID: RestJsonBodyBooleanStringCoercion_case0
20535  20827   
    #[::tokio::test]
20536  20828   
    #[::tracing_test::traced_test]
20537  20829   
    async fn rest_json_body_boolean_string_coercion_case0_malformed_request() {
20538  20830   
        {
20539  20831   
            #[allow(unused_mut)]
20540  20832   
            let mut http_request = http::Request::builder()
@@ -25310,25602 +25371,25666 @@
25330  25622   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
25331  25623   
                http_response.status()
25332  25624   
            );
25333  25625   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
25334  25626   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
25335  25627   
                http_response.headers(),
25336  25628   
                expected_headers,
25337  25629   
            ));
25338  25630   
        }
25339  25631   
    }
       25632  +
       25633  +
    /* ProtocolTestGenerator.kt:98 */
25340  25634   
}
25341  25635   
       25636  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
25342  25637   
const CONTENT_TYPE_MALFORMEDUNION: ::mime::Mime = ::mime::APPLICATION_JSON;
25343  25638   
::pin_project_lite::pin_project! {
25344  25639   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
25345  25640   
    /// [`MalformedUnionInput`](crate::input::MalformedUnionInput) using modelled bindings.
25346  25641   
    pub struct MalformedUnionInputFuture {
25347  25642   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedUnionInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
25348  25643   
    }
25349  25644   
}
25350  25645   
25351  25646   
impl std::future::Future for MalformedUnionInputFuture {
@@ -25378,25673 +25456,25755 @@
25398  25693   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
25399  25694   
                    e,
25400  25695   
                )
25401  25696   
            },
25402  25697   
        );
25403  25698   
        MalformedUnionInputFuture {
25404  25699   
            inner: Box::pin(fut),
25405  25700   
        }
25406  25701   
    }
25407  25702   
}
       25703  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
25408  25704   
impl
25409  25705   
    ::aws_smithy_http_server::response::IntoResponse<
25410  25706   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
25411  25707   
    > for crate::output::MalformedUnionOutput
25412  25708   
{
25413  25709   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
25414  25710   
        match crate::protocol_serde::shape_malformed_union::ser_malformed_union_http_response(self)
25415  25711   
        {
25416  25712   
            Ok(response) => response,
25417  25713   
            Err(e) => {
25418  25714   
                ::tracing::error!(error = %e, "failed to serialize response");
25419  25715   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
25420  25716   
            }
25421  25717   
        }
25422  25718   
    }
25423  25719   
}
25424  25720   
       25721  +
/* RustType.kt:516 */
25425  25722   
#[allow(unreachable_code, unused_variables)]
       25723  +
/* RustType.kt:516 */
25426  25724   
#[cfg(test)]
       25725  +
/* ProtocolTestGenerator.kt:98 */
25427  25726   
mod malformed_union_test {
25428  25727   
25429  25728   
    /// When the union has multiple fields set, the response should be a 400
25430  25729   
    /// SerializationException.
25431  25730   
    /// Test ID: RestJsonMalformedUnionMultipleFieldsSet
25432  25731   
    #[::tokio::test]
25433  25732   
    #[::tracing_test::traced_test]
25434  25733   
    async fn rest_json_malformed_union_multiple_fields_set_malformed_request() {
25435  25734   
        {
25436  25735   
            #[allow(unused_mut)]
@@ -25680,25979 +25741,26043 @@
25700  25999   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
25701  26000   
                http_response.status()
25702  26001   
            );
25703  26002   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
25704  26003   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
25705  26004   
                http_response.headers(),
25706  26005   
                expected_headers,
25707  26006   
            ));
25708  26007   
        }
25709  26008   
    }
       26009  +
       26010  +
    /* ProtocolTestGenerator.kt:98 */
25710  26011   
}
25711  26012   
       26013  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
25712  26014   
const CONTENT_TYPE_MALFORMEDINTEGER: ::mime::Mime = ::mime::APPLICATION_JSON;
25713  26015   
::pin_project_lite::pin_project! {
25714  26016   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
25715  26017   
    /// [`MalformedIntegerInput`](crate::input::MalformedIntegerInput) using modelled bindings.
25716  26018   
    pub struct MalformedIntegerInputFuture {
25717  26019   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedIntegerInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
25718  26020   
    }
25719  26021   
}
25720  26022   
25721  26023   
impl std::future::Future for MalformedIntegerInputFuture {
@@ -25750,26052 +25851,26158 @@
25770  26072   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
25771  26073   
                    e,
25772  26074   
                )
25773  26075   
            },
25774  26076   
        );
25775  26077   
        MalformedIntegerInputFuture {
25776  26078   
            inner: Box::pin(fut),
25777  26079   
        }
25778  26080   
    }
25779  26081   
}
       26082  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
25780  26083   
impl
25781  26084   
    ::aws_smithy_http_server::response::IntoResponse<
25782  26085   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
25783  26086   
    > for crate::output::MalformedIntegerOutput
25784  26087   
{
25785  26088   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
25786  26089   
        match crate::protocol_serde::shape_malformed_integer::ser_malformed_integer_http_response(
25787  26090   
            self,
25788  26091   
        ) {
25789  26092   
            Ok(response) => response,
25790  26093   
            Err(e) => {
25791  26094   
                ::tracing::error!(error = %e, "failed to serialize response");
25792  26095   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
25793  26096   
            }
25794  26097   
        }
25795  26098   
    }
25796  26099   
}
       26100  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
25797  26101   
impl
25798  26102   
    ::aws_smithy_http_server::response::IntoResponse<
25799  26103   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
25800  26104   
    > for crate::error::MalformedIntegerError
25801  26105   
{
25802  26106   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
25803  26107   
        match crate::protocol_serde::shape_malformed_integer::ser_malformed_integer_http_error(
25804  26108   
            &self,
25805  26109   
        ) {
25806  26110   
            Ok(mut response) => {
25807  26111   
                response.extensions_mut().insert(
25808  26112   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
25809  26113   
                );
25810  26114   
                response
25811  26115   
            }
25812  26116   
            Err(e) => {
25813  26117   
                ::tracing::error!(error = %e, "failed to serialize response");
25814  26118   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
25815  26119   
            }
25816  26120   
        }
25817  26121   
    }
25818  26122   
}
25819  26123   
       26124  +
/* RustType.kt:516 */
25820  26125   
#[allow(unreachable_code, unused_variables)]
       26126  +
/* RustType.kt:516 */
25821  26127   
#[cfg(test)]
       26128  +
/* ProtocolTestGenerator.kt:98 */
25822  26129   
mod malformed_integer_test {
25823  26130   
25824  26131   
    /// Underflow or overflow should result in SerializationException
25825  26132   
    /// Test ID: RestJsonBodyIntegerUnderflowOverflow_case0
25826  26133   
    #[::tokio::test]
25827  26134   
    #[::tracing_test::traced_test]
25828  26135   
    async fn rest_json_body_integer_underflow_overflow_case0_malformed_request() {
25829  26136   
        {
25830  26137   
            #[allow(unused_mut)]
25831  26138   
            let mut http_request = http::Request::builder()
@@ -27667,27974 +27728,28038 @@
27687  27994   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
27688  27995   
                http_response.status()
27689  27996   
            );
27690  27997   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
27691  27998   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
27692  27999   
                http_response.headers(),
27693  28000   
                expected_headers,
27694  28001   
            ));
27695  28002   
        }
27696  28003   
    }
       28004  +
       28005  +
    /* ProtocolTestGenerator.kt:98 */
27697  28006   
}
27698  28007   
       28008  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
27699  28009   
const CONTENT_TYPE_MALFORMEDREQUESTBODY: ::mime::Mime = ::mime::APPLICATION_JSON;
27700  28010   
::pin_project_lite::pin_project! {
27701  28011   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
27702  28012   
    /// [`MalformedRequestBodyInput`](crate::input::MalformedRequestBodyInput) using modelled bindings.
27703  28013   
    pub struct MalformedRequestBodyInputFuture {
27704  28014   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MalformedRequestBodyInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
27705  28015   
    }
27706  28016   
}
27707  28017   
27708  28018   
impl std::future::Future for MalformedRequestBodyInputFuture {
@@ -27735,28045 +27812,28126 @@
27755  28065   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
27756  28066   
                    e,
27757  28067   
                )
27758  28068   
            },
27759  28069   
        );
27760  28070   
        MalformedRequestBodyInputFuture {
27761  28071   
            inner: Box::pin(fut),
27762  28072   
        }
27763  28073   
    }
27764  28074   
}
       28075  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
27765  28076   
impl
27766  28077   
    ::aws_smithy_http_server::response::IntoResponse<
27767  28078   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
27768  28079   
    > for crate::output::MalformedRequestBodyOutput
27769  28080   
{
27770  28081   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
27771  28082   
        match crate::protocol_serde::shape_malformed_request_body::ser_malformed_request_body_http_response(self) {
27772  28083   
                        Ok(response) => response,
27773  28084   
                        Err(e) => {
27774  28085   
                            ::tracing::error!(error = %e, "failed to serialize response");
27775  28086   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
27776  28087   
                        }
27777  28088   
                    }
27778  28089   
    }
27779  28090   
}
27780  28091   
       28092  +
/* RustType.kt:516 */
27781  28093   
#[allow(unreachable_code, unused_variables)]
       28094  +
/* RustType.kt:516 */
27782  28095   
#[cfg(test)]
       28096  +
/* ProtocolTestGenerator.kt:98 */
27783  28097   
mod malformed_request_body_test {
27784  28098   
27785  28099   
    /// When the request body is not valid JSON, the response should be a 400
27786  28100   
    /// SerializationException.
27787  28101   
    /// Test ID: RestJsonInvalidJsonBody_case0
27788  28102   
    #[::tokio::test]
27789  28103   
    #[::tracing_test::traced_test]
27790  28104   
    async fn rest_json_invalid_json_body_case0_malformed_request() {
27791  28105   
        {
27792  28106   
            #[allow(unused_mut)]
@@ -28271,28585 +28332,28649 @@
28291  28605   
                http::StatusCode::from_u16(400).expect("invalid expected HTTP status code"),
28292  28606   
                http_response.status()
28293  28607   
            );
28294  28608   
            let expected_headers = [("x-amzn-errortype", "SerializationException")];
28295  28609   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
28296  28610   
                http_response.headers(),
28297  28611   
                expected_headers,
28298  28612   
            ));
28299  28613   
        }
28300  28614   
    }
       28615  +
       28616  +
    /* ProtocolTestGenerator.kt:98 */
28301  28617   
}
28302  28618   
       28619  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
28303  28620   
const CONTENT_TYPE_HTTPCHECKSUMREQUIRED: ::mime::Mime = ::mime::APPLICATION_JSON;
28304  28621   
::pin_project_lite::pin_project! {
28305  28622   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
28306  28623   
    /// [`HttpChecksumRequiredInput`](crate::input::HttpChecksumRequiredInput) using modelled bindings.
28307  28624   
    pub struct HttpChecksumRequiredInputFuture {
28308  28625   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpChecksumRequiredInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
28309  28626   
    }
28310  28627   
}
28311  28628   
28312  28629   
impl std::future::Future for HttpChecksumRequiredInputFuture {
@@ -28339,28656 +28470,28794 @@
28359  28676   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
28360  28677   
                    e,
28361  28678   
                )
28362  28679   
            },
28363  28680   
        );
28364  28681   
        HttpChecksumRequiredInputFuture {
28365  28682   
            inner: Box::pin(fut),
28366  28683   
        }
28367  28684   
    }
28368  28685   
}
       28686  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
28369  28687   
impl
28370  28688   
    ::aws_smithy_http_server::response::IntoResponse<
28371  28689   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
28372  28690   
    > for crate::output::HttpChecksumRequiredOutput
28373  28691   
{
28374  28692   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
28375  28693   
        match crate::protocol_serde::shape_http_checksum_required::ser_http_checksum_required_http_response(self) {
28376  28694   
                        Ok(response) => response,
28377  28695   
                        Err(e) => {
28378  28696   
                            ::tracing::error!(error = %e, "failed to serialize response");
28379  28697   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
28380  28698   
                        }
28381  28699   
                    }
28382  28700   
    }
28383  28701   
}
28384  28702   
       28703  +
/* RustType.kt:516 */
28385  28704   
#[allow(unreachable_code, unused_variables)]
       28705  +
/* RustType.kt:516 */
28386  28706   
#[cfg(test)]
       28707  +
/* ProtocolTestGenerator.kt:98 */
28387  28708   
mod http_checksum_required_test {
28388  28709   
28389  28710   
    /// Adds Content-MD5 header
28390  28711   
    /// Test ID: RestJsonHttpChecksumRequired
28391  28712   
    #[::tokio::test]
28392  28713   
    #[::tracing_test::traced_test]
28393  28714   
    async fn rest_json_http_checksum_required_request() {
28394  28715   
        #[allow(unused_mut)]
28395  28716   
        let mut http_request = http::Request::builder()
28396  28717   
            .uri("/HttpChecksumRequired")
28397  28718   
            .method("POST")
28398  28719   
            .header("Content-MD5", "iB0/3YSo7maijL0IGOgA9g==")
28399  28720   
            .header("Content-Type", "application/json")
28400  28721   
            .body(::aws_smithy_http_server::body::Body::from(
28401  28722   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
28402  28723   
                    "{\n    \"foo\":\"base64 encoded md5 checksum\"\n}\n".as_bytes(),
28403  28724   
                    ::aws_smithy_protocol_test::MediaType::from("application/json"),
28404  28725   
                )),
28405  28726   
            ))
28406  28727   
            .unwrap();
28407  28728   
        #[allow(unused_mut)]
28408  28729   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
28409  28730   
        let config = crate::service::RestJsonConfig::builder().build();
28410  28731   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
28411  28732   
            .http_checksum_required(move |input: crate::input::HttpChecksumRequiredInput| {
28412  28733   
                let sender = sender.clone();
28413  28734   
                async move {
28414  28735   
                    let result = {
28415  28736   
                        let expected = crate::input::HttpChecksumRequiredInput {
28416  28737   
                            foo: ::std::option::Option::Some(
28417  28738   
                                "base64 encoded md5 checksum".to_owned(),
28418  28739   
                            ),
28419  28740   
                        };
28420  28741   
                        ::pretty_assertions::assert_eq!(input, expected);
28421  28742   
                        let output = crate::output::HttpChecksumRequiredOutput {
28422  28743   
                            foo: ::std::option::Option::None,
28423  28744   
                        };
28424  28745   
                        output
28425  28746   
                    };
28426  28747   
                    sender.send(()).await.expect("receiver dropped early");
28427  28748   
                    result
28428  28749   
                }
28429  28750   
            })
28430  28751   
            .build_unchecked();
28431  28752   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
28432  28753   
            .await
28433  28754   
            .expect("unable to make an HTTP request");
28434  28755   
        assert!(
28435  28756   
            receiver.recv().await.is_some(),
28436  28757   
            "we expected operation handler to be invoked but it was not entered"
28437  28758   
        );
28438  28759   
    }
       28760  +
       28761  +
    /* ProtocolTestGenerator.kt:98 */
28439  28762   
}
28440  28763   
       28764  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
28441  28765   
const CONTENT_TYPE_HOSTWITHPATHOPERATION: ::mime::Mime = ::mime::APPLICATION_JSON;
28442  28766   
::pin_project_lite::pin_project! {
28443  28767   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
28444  28768   
    /// [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput) using modelled bindings.
28445  28769   
    pub struct HostWithPathOperationInputFuture {
28446  28770   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HostWithPathOperationInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
28447  28771   
    }
28448  28772   
}
28449  28773   
28450  28774   
impl std::future::Future for HostWithPathOperationInputFuture {
@@ -28477,28801 +28552,28878 @@
28497  28821   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
28498  28822   
                    e,
28499  28823   
                )
28500  28824   
            },
28501  28825   
        );
28502  28826   
        HostWithPathOperationInputFuture {
28503  28827   
            inner: Box::pin(fut),
28504  28828   
        }
28505  28829   
    }
28506  28830   
}
       28831  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
28507  28832   
impl
28508  28833   
    ::aws_smithy_http_server::response::IntoResponse<
28509  28834   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
28510  28835   
    > for crate::output::HostWithPathOperationOutput
28511  28836   
{
28512  28837   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
28513  28838   
        match crate::protocol_serde::shape_host_with_path_operation::ser_host_with_path_operation_http_response(self) {
28514  28839   
                        Ok(response) => response,
28515  28840   
                        Err(e) => {
28516  28841   
                            ::tracing::error!(error = %e, "failed to serialize response");
28517  28842   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
28518  28843   
                        }
28519  28844   
                    }
28520  28845   
    }
28521  28846   
}
28522  28847   
       28848  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
28523  28849   
const CONTENT_TYPE_ENDPOINTWITHHOSTLABELOPERATION: ::mime::Mime = ::mime::APPLICATION_JSON;
28524  28850   
::pin_project_lite::pin_project! {
28525  28851   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
28526  28852   
    /// [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput) using modelled bindings.
28527  28853   
    pub struct EndpointWithHostLabelOperationInputFuture {
28528  28854   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EndpointWithHostLabelOperationInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
28529  28855   
    }
28530  28856   
}
28531  28857   
28532  28858   
impl std::future::Future for EndpointWithHostLabelOperationInputFuture {
@@ -28559,28885 +28708,29042 @@
28579  28905   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
28580  28906   
                    e,
28581  28907   
                )
28582  28908   
            },
28583  28909   
        );
28584  28910   
        EndpointWithHostLabelOperationInputFuture {
28585  28911   
            inner: Box::pin(fut),
28586  28912   
        }
28587  28913   
    }
28588  28914   
}
       28915  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
28589  28916   
impl
28590  28917   
    ::aws_smithy_http_server::response::IntoResponse<
28591  28918   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
28592  28919   
    > for crate::output::EndpointWithHostLabelOperationOutput
28593  28920   
{
28594  28921   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
28595  28922   
        match crate::protocol_serde::shape_endpoint_with_host_label_operation::ser_endpoint_with_host_label_operation_http_response(self) {
28596  28923   
                        Ok(response) => response,
28597  28924   
                        Err(e) => {
28598  28925   
                            ::tracing::error!(error = %e, "failed to serialize response");
28599  28926   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
28600  28927   
                        }
28601  28928   
                    }
28602  28929   
    }
28603  28930   
}
       28931  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
28604  28932   
impl
28605  28933   
    ::aws_smithy_http_server::response::IntoResponse<
28606  28934   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
28607  28935   
    > for crate::error::EndpointWithHostLabelOperationError
28608  28936   
{
28609  28937   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
28610  28938   
        match crate::protocol_serde::shape_endpoint_with_host_label_operation::ser_endpoint_with_host_label_operation_http_error(&self) {
28611  28939   
            Ok(mut response) => {
28612  28940   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
28613  28941   
                response
28614  28942   
            },
28615  28943   
            Err(e) => {
28616  28944   
                ::tracing::error!(error = %e, "failed to serialize response");
28617  28945   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
28618  28946   
            }
28619  28947   
        }
28620  28948   
    }
28621  28949   
}
28622  28950   
       28951  +
/* RustType.kt:516 */
28623  28952   
#[allow(unreachable_code, unused_variables)]
       28953  +
/* RustType.kt:516 */
28624  28954   
#[cfg(test)]
       28955  +
/* ProtocolTestGenerator.kt:98 */
28625  28956   
mod endpoint_with_host_label_operation_test {
28626  28957   
28627  28958   
    /// Operations can prepend to the given host if they define the
28628  28959   
    /// endpoint trait, and can use the host label trait to define
28629  28960   
    /// further customization based on user input.
28630  28961   
    /// Test ID: RestJsonEndpointTraitWithHostLabel
28631  28962   
    #[::tokio::test]
28632  28963   
    #[::tracing_test::traced_test]
28633  28964   
    #[should_panic]
28634  28965   
    async fn rest_json_endpoint_trait_with_host_label_request() {
28635  28966   
        #[allow(unused_mut)]
28636  28967   
        let mut http_request = http::Request::builder()
28637  28968   
            .uri("/EndpointWithHostLabelOperation")
28638  28969   
            .method("POST")
28639  28970   
            .body(::aws_smithy_http_server::body::Body::from(
28640  28971   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
28641  28972   
                    "{\"label\": \"bar\"}".as_bytes(),
28642  28973   
                    ::aws_smithy_protocol_test::MediaType::from("application/json"),
28643  28974   
                )),
28644  28975   
            ))
28645  28976   
            .unwrap();
28646  28977   
        todo!("endpoint trait not supported yet");
28647  28978   
        #[allow(unused_mut)]
28648  28979   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
28649  28980   
        let config = crate::service::RestJsonConfig::builder().build();
28650  28981   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
28651  28982   
            .endpoint_with_host_label_operation(
28652  28983   
                move |input: crate::input::EndpointWithHostLabelOperationInput| {
28653  28984   
                    let sender = sender.clone();
28654  28985   
                    async move {
28655  28986   
                        let result = {
28656  28987   
                            let expected = crate::input::EndpointWithHostLabelOperationInput {
28657  28988   
                                label: "bar".to_owned(),
28658  28989   
                            };
28659  28990   
                            ::pretty_assertions::assert_eq!(input, expected);
28660  28991   
                            let output = crate::output::EndpointWithHostLabelOperationOutput {};
28661  28992   
                            Ok(output)
28662  28993   
                        };
28663  28994   
                        sender.send(()).await.expect("receiver dropped early");
28664  28995   
                        result
28665  28996   
                    }
28666  28997   
                },
28667  28998   
            )
28668  28999   
            .build_unchecked();
28669  29000   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
28670  29001   
            .await
28671  29002   
            .expect("unable to make an HTTP request");
28672  29003   
        assert!(
28673  29004   
            receiver.recv().await.is_some(),
28674  29005   
            "we expected operation handler to be invoked but it was not entered"
28675  29006   
        );
28676  29007   
    }
       29008  +
       29009  +
    /* ProtocolTestGenerator.kt:98 */
28677  29010   
}
28678  29011   
       29012  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
28679  29013   
const CONTENT_TYPE_ENDPOINTOPERATION: ::mime::Mime = ::mime::APPLICATION_JSON;
28680  29014   
::pin_project_lite::pin_project! {
28681  29015   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
28682  29016   
    /// [`EndpointOperationInput`](crate::input::EndpointOperationInput) using modelled bindings.
28683  29017   
    pub struct EndpointOperationInputFuture {
28684  29018   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EndpointOperationInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
28685  29019   
    }
28686  29020   
}
28687  29021   
28688  29022   
impl std::future::Future for EndpointOperationInputFuture {
@@ -28717,29051 +28845,29186 @@
28737  29071   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
28738  29072   
                    e,
28739  29073   
                )
28740  29074   
            },
28741  29075   
        );
28742  29076   
        EndpointOperationInputFuture {
28743  29077   
            inner: Box::pin(fut),
28744  29078   
        }
28745  29079   
    }
28746  29080   
}
       29081  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
28747  29082   
impl
28748  29083   
    ::aws_smithy_http_server::response::IntoResponse<
28749  29084   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
28750  29085   
    > for crate::output::EndpointOperationOutput
28751  29086   
{
28752  29087   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
28753  29088   
        match crate::protocol_serde::shape_endpoint_operation::ser_endpoint_operation_http_response(
28754  29089   
            self,
28755  29090   
        ) {
28756  29091   
            Ok(response) => response,
28757  29092   
            Err(e) => {
28758  29093   
                ::tracing::error!(error = %e, "failed to serialize response");
28759  29094   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
28760  29095   
            }
28761  29096   
        }
28762  29097   
    }
28763  29098   
}
28764  29099   
       29100  +
/* RustType.kt:516 */
28765  29101   
#[allow(unreachable_code, unused_variables)]
       29102  +
/* RustType.kt:516 */
28766  29103   
#[cfg(test)]
       29104  +
/* ProtocolTestGenerator.kt:98 */
28767  29105   
mod endpoint_operation_test {
28768  29106   
28769  29107   
    /// Operations can prepend to the given host if they define the
28770  29108   
    /// endpoint trait.
28771  29109   
    /// Test ID: RestJsonEndpointTrait
28772  29110   
    #[::tokio::test]
28773  29111   
    #[::tracing_test::traced_test]
28774  29112   
    #[should_panic]
28775  29113   
    async fn rest_json_endpoint_trait_request() {
28776  29114   
        #[allow(unused_mut)]
28777  29115   
        let mut http_request = http::Request::builder()
28778  29116   
            .uri("/EndpointOperation")
28779  29117   
            .method("POST")
28780  29118   
            .body(::aws_smithy_http_server::body::Body::from(
28781  29119   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
28782  29120   
                    "".as_bytes(),
28783  29121   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
28784  29122   
                )),
28785  29123   
            ))
28786  29124   
            .unwrap();
28787  29125   
        todo!("endpoint trait not supported yet");
28788  29126   
        #[allow(unused_mut)]
28789  29127   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
28790  29128   
        let config = crate::service::RestJsonConfig::builder().build();
28791  29129   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
28792  29130   
            .endpoint_operation(move |input: crate::input::EndpointOperationInput| {
28793  29131   
                let sender = sender.clone();
28794  29132   
                async move {
28795  29133   
                    let result = {
28796  29134   
                        let expected = crate::input::EndpointOperationInput {};
28797  29135   
                        ::pretty_assertions::assert_eq!(input, expected);
28798  29136   
                        let output = crate::output::EndpointOperationOutput {};
28799  29137   
                        output
28800  29138   
                    };
28801  29139   
                    sender.send(()).await.expect("receiver dropped early");
28802  29140   
                    result
28803  29141   
                }
28804  29142   
            })
28805  29143   
            .build_unchecked();
28806  29144   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
28807  29145   
            .await
28808  29146   
            .expect("unable to make an HTTP request");
28809  29147   
        assert!(
28810  29148   
            receiver.recv().await.is_some(),
28811  29149   
            "we expected operation handler to be invoked but it was not entered"
28812  29150   
        );
28813  29151   
    }
       29152  +
       29153  +
    /* ProtocolTestGenerator.kt:98 */
28814  29154   
}
28815  29155   
       29156  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
28816  29157   
const CONTENT_TYPE_POSTUNIONWITHJSONNAME: ::mime::Mime = ::mime::APPLICATION_JSON;
28817  29158   
::pin_project_lite::pin_project! {
28818  29159   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
28819  29160   
    /// [`PostUnionWithJsonNameInput`](crate::input::PostUnionWithJsonNameInput) using modelled bindings.
28820  29161   
    pub struct PostUnionWithJsonNameInputFuture {
28821  29162   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::PostUnionWithJsonNameInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
28822  29163   
    }
28823  29164   
}
28824  29165   
28825  29166   
impl std::future::Future for PostUnionWithJsonNameInputFuture {
@@ -28852,29193 +28929,29274 @@
28872  29213   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
28873  29214   
                    e,
28874  29215   
                )
28875  29216   
            },
28876  29217   
        );
28877  29218   
        PostUnionWithJsonNameInputFuture {
28878  29219   
            inner: Box::pin(fut),
28879  29220   
        }
28880  29221   
    }
28881  29222   
}
       29223  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
28882  29224   
impl
28883  29225   
    ::aws_smithy_http_server::response::IntoResponse<
28884  29226   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
28885  29227   
    > for crate::output::PostUnionWithJsonNameOutput
28886  29228   
{
28887  29229   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
28888  29230   
        match crate::protocol_serde::shape_post_union_with_json_name::ser_post_union_with_json_name_http_response(self) {
28889  29231   
                        Ok(response) => response,
28890  29232   
                        Err(e) => {
28891  29233   
                            ::tracing::error!(error = %e, "failed to serialize response");
28892  29234   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
28893  29235   
                        }
28894  29236   
                    }
28895  29237   
    }
28896  29238   
}
28897  29239   
       29240  +
/* RustType.kt:516 */
28898  29241   
#[allow(unreachable_code, unused_variables)]
       29242  +
/* RustType.kt:516 */
28899  29243   
#[cfg(test)]
       29244  +
/* ProtocolTestGenerator.kt:98 */
28900  29245   
mod post_union_with_json_name_test {
28901  29246   
28902  29247   
    /// Tests that jsonName works with union members.
28903  29248   
    /// Test ID: PostUnionWithJsonNameRequest1
28904  29249   
    #[::tokio::test]
28905  29250   
    #[::tracing_test::traced_test]
28906  29251   
    async fn post_union_with_json_name_request1_request() {
28907  29252   
        #[allow(unused_mut)]
28908  29253   
        let mut http_request = http::Request::builder()
28909  29254   
            .uri("/PostUnionWithJsonName")
@@ -29108,29453 +29169,29517 @@
29128  29473   
        ));
29129  29474   
        let body = ::hyper::body::to_bytes(http_response.into_body())
29130  29475   
            .await
29131  29476   
            .expect("unable to extract body to bytes");
29132  29477   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
29133  29478   
            &body,
29134  29479   
            "{\n    \"value\": {\n        \"bar\": \"hi\"\n    }\n}",
29135  29480   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
29136  29481   
        ));
29137  29482   
    }
       29483  +
       29484  +
    /* ProtocolTestGenerator.kt:98 */
29138  29485   
}
29139  29486   
       29487  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
29140  29488   
const CONTENT_TYPE_POSTPLAYERACTION: ::mime::Mime = ::mime::APPLICATION_JSON;
29141  29489   
::pin_project_lite::pin_project! {
29142  29490   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
29143  29491   
    /// [`PostPlayerActionInput`](crate::input::PostPlayerActionInput) using modelled bindings.
29144  29492   
    pub struct PostPlayerActionInputFuture {
29145  29493   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::PostPlayerActionInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
29146  29494   
    }
29147  29495   
}
29148  29496   
29149  29497   
impl std::future::Future for PostPlayerActionInputFuture {
@@ -29178,29526 +29257,29609 @@
29198  29546   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
29199  29547   
                    e,
29200  29548   
                )
29201  29549   
            },
29202  29550   
        );
29203  29551   
        PostPlayerActionInputFuture {
29204  29552   
            inner: Box::pin(fut),
29205  29553   
        }
29206  29554   
    }
29207  29555   
}
       29556  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
29208  29557   
impl
29209  29558   
    ::aws_smithy_http_server::response::IntoResponse<
29210  29559   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
29211  29560   
    > for crate::output::PostPlayerActionOutput
29212  29561   
{
29213  29562   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
29214  29563   
        match crate::protocol_serde::shape_post_player_action::ser_post_player_action_http_response(
29215  29564   
            self,
29216  29565   
        ) {
29217  29566   
            Ok(response) => response,
29218  29567   
            Err(e) => {
29219  29568   
                ::tracing::error!(error = %e, "failed to serialize response");
29220  29569   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
29221  29570   
            }
29222  29571   
        }
29223  29572   
    }
29224  29573   
}
29225  29574   
       29575  +
/* RustType.kt:516 */
29226  29576   
#[allow(unreachable_code, unused_variables)]
       29577  +
/* RustType.kt:516 */
29227  29578   
#[cfg(test)]
       29579  +
/* ProtocolTestGenerator.kt:98 */
29228  29580   
mod post_player_action_test {
29229  29581   
29230  29582   
    /// Unit types in unions are serialized like normal structures in requests.
29231  29583   
    /// Test ID: RestJsonInputUnionWithUnitMember
29232  29584   
    #[::tokio::test]
29233  29585   
    #[::tracing_test::traced_test]
29234  29586   
    async fn rest_json_input_union_with_unit_member_request() {
29235  29587   
        #[allow(unused_mut)]
29236  29588   
        let mut http_request = http::Request::builder()
29237  29589   
            .uri("/PostPlayerAction")
@@ -29276,29628 +29337,29692 @@
29296  29648   
        ));
29297  29649   
        let body = ::hyper::body::to_bytes(http_response.into_body())
29298  29650   
            .await
29299  29651   
            .expect("unable to extract body to bytes");
29300  29652   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
29301  29653   
            &body,
29302  29654   
            "{\n    \"action\": {\n        \"quit\": {}\n    }\n}",
29303  29655   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
29304  29656   
        ));
29305  29657   
    }
       29658  +
       29659  +
    /* ProtocolTestGenerator.kt:98 */
29306  29660   
}
29307  29661   
       29662  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
29308  29663   
const CONTENT_TYPE_JSONUNIONS: ::mime::Mime = ::mime::APPLICATION_JSON;
29309  29664   
::pin_project_lite::pin_project! {
29310  29665   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
29311  29666   
    /// [`JsonUnionsInput`](crate::input::JsonUnionsInput) using modelled bindings.
29312  29667   
    pub struct JsonUnionsInputFuture {
29313  29668   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonUnionsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
29314  29669   
    }
29315  29670   
}
29316  29671   
29317  29672   
impl std::future::Future for JsonUnionsInputFuture {
@@ -29344,29699 +29441,29801 @@
29364  29719   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
29365  29720   
                    e,
29366  29721   
                )
29367  29722   
            },
29368  29723   
        );
29369  29724   
        JsonUnionsInputFuture {
29370  29725   
            inner: Box::pin(fut),
29371  29726   
        }
29372  29727   
    }
29373  29728   
}
       29729  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
29374  29730   
impl
29375  29731   
    ::aws_smithy_http_server::response::IntoResponse<
29376  29732   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
29377  29733   
    > for crate::output::JsonUnionsOutput
29378  29734   
{
29379  29735   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
29380  29736   
        match crate::protocol_serde::shape_json_unions::ser_json_unions_http_response(self) {
29381  29737   
            Ok(response) => response,
29382  29738   
            Err(e) => {
29383  29739   
                ::tracing::error!(error = %e, "failed to serialize response");
29384  29740   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
29385  29741   
            }
29386  29742   
        }
29387  29743   
    }
29388  29744   
}
       29745  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
29389  29746   
impl
29390  29747   
    ::aws_smithy_http_server::response::IntoResponse<
29391  29748   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
29392  29749   
    > for crate::error::JsonUnionsError
29393  29750   
{
29394  29751   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
29395  29752   
        match crate::protocol_serde::shape_json_unions::ser_json_unions_http_error(&self) {
29396  29753   
            Ok(mut response) => {
29397  29754   
                response.extensions_mut().insert(
29398  29755   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
29399  29756   
                );
29400  29757   
                response
29401  29758   
            }
29402  29759   
            Err(e) => {
29403  29760   
                ::tracing::error!(error = %e, "failed to serialize response");
29404  29761   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
29405  29762   
            }
29406  29763   
        }
29407  29764   
    }
29408  29765   
}
29409  29766   
       29767  +
/* RustType.kt:516 */
29410  29768   
#[allow(unreachable_code, unused_variables)]
       29769  +
/* RustType.kt:516 */
29411  29770   
#[cfg(test)]
       29771  +
/* ProtocolTestGenerator.kt:98 */
29412  29772   
mod json_unions_test {
29413  29773   
29414  29774   
    /// Serializes a string union value
29415  29775   
    /// Test ID: RestJsonSerializeStringUnionValue
29416  29776   
    #[::tokio::test]
29417  29777   
    #[::tracing_test::traced_test]
29418  29778   
    async fn rest_json_serialize_string_union_value_request() {
29419  29779   
        #[allow(unused_mut)]
29420  29780   
        let mut http_request = http::Request::builder()
29421  29781   
            .uri("/JsonUnions")
@@ -30186,30546 +30247,30610 @@
30206  30566   
            http_response.headers(),
30207  30567   
            expected_headers,
30208  30568   
        ));
30209  30569   
        let body = ::hyper::body::to_bytes(http_response.into_body())
30210  30570   
            .await
30211  30571   
            .expect("unable to extract body to bytes");
30212  30572   
        ::aws_smithy_protocol_test::assert_ok(
30213  30573   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"contents\": {\n        \"structureValue\": {\n            \"hi\": \"hello\"\n        }\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
30214  30574   
        );
30215  30575   
    }
       30576  +
       30577  +
    /* ProtocolTestGenerator.kt:98 */
30216  30578   
}
30217  30579   
       30580  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
30218  30581   
const CONTENT_TYPE_DOCUMENTTYPEASMAPVALUE: ::mime::Mime = ::mime::APPLICATION_JSON;
30219  30582   
::pin_project_lite::pin_project! {
30220  30583   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
30221  30584   
    /// [`DocumentTypeAsMapValueInput`](crate::input::DocumentTypeAsMapValueInput) using modelled bindings.
30222  30585   
    pub struct DocumentTypeAsMapValueInputFuture {
30223  30586   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::DocumentTypeAsMapValueInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
30224  30587   
    }
30225  30588   
}
30226  30589   
30227  30590   
impl std::future::Future for DocumentTypeAsMapValueInputFuture {
@@ -30254,30617 +30331,30698 @@
30274  30637   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
30275  30638   
                    e,
30276  30639   
                )
30277  30640   
            },
30278  30641   
        );
30279  30642   
        DocumentTypeAsMapValueInputFuture {
30280  30643   
            inner: Box::pin(fut),
30281  30644   
        }
30282  30645   
    }
30283  30646   
}
       30647  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
30284  30648   
impl
30285  30649   
    ::aws_smithy_http_server::response::IntoResponse<
30286  30650   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
30287  30651   
    > for crate::output::DocumentTypeAsMapValueOutput
30288  30652   
{
30289  30653   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
30290  30654   
        match crate::protocol_serde::shape_document_type_as_map_value::ser_document_type_as_map_value_http_response(self) {
30291  30655   
                        Ok(response) => response,
30292  30656   
                        Err(e) => {
30293  30657   
                            ::tracing::error!(error = %e, "failed to serialize response");
30294  30658   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
30295  30659   
                        }
30296  30660   
                    }
30297  30661   
    }
30298  30662   
}
30299  30663   
       30664  +
/* RustType.kt:516 */
30300  30665   
#[allow(unreachable_code, unused_variables)]
       30666  +
/* RustType.kt:516 */
30301  30667   
#[cfg(test)]
       30668  +
/* ProtocolTestGenerator.kt:98 */
30302  30669   
mod document_type_as_map_value_test {
30303  30670   
30304  30671   
    /// Serializes a map that uses documents as the value.
30305  30672   
    /// Test ID: DocumentTypeAsMapValueInput
30306  30673   
    #[::tokio::test]
30307  30674   
    #[::tracing_test::traced_test]
30308  30675   
    async fn document_type_as_map_value_input_request() {
30309  30676   
        #[allow(unused_mut)]
30310  30677   
                    let mut http_request = http::Request::builder()
30311  30678   
                        .uri("/DocumentTypeAsMapValue")
@@ -30417,30784 +30478,30848 @@
30437  30804   
            http_response.headers(),
30438  30805   
            expected_headers,
30439  30806   
        ));
30440  30807   
        let body = ::hyper::body::to_bytes(http_response.into_body())
30441  30808   
            .await
30442  30809   
            .expect("unable to extract body to bytes");
30443  30810   
        ::aws_smithy_protocol_test::assert_ok(
30444  30811   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"docValuedMap\": {\n        \"foo\": { \"f\": 1, \"o\": 2 },\n        \"bar\": [ \"b\", \"a\", \"r\" ],\n        \"baz\": \"BAZ\"\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
30445  30812   
        );
30446  30813   
    }
       30814  +
       30815  +
    /* ProtocolTestGenerator.kt:98 */
30447  30816   
}
30448  30817   
       30818  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
30449  30819   
const CONTENT_TYPE_DOCUMENTTYPEASPAYLOAD: ::mime::Mime = ::mime::APPLICATION_JSON;
30450  30820   
::pin_project_lite::pin_project! {
30451  30821   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
30452  30822   
    /// [`DocumentTypeAsPayloadInput`](crate::input::DocumentTypeAsPayloadInput) using modelled bindings.
30453  30823   
    pub struct DocumentTypeAsPayloadInputFuture {
30454  30824   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::DocumentTypeAsPayloadInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
30455  30825   
    }
30456  30826   
}
30457  30827   
30458  30828   
impl std::future::Future for DocumentTypeAsPayloadInputFuture {
@@ -30485,30855 +30562,30936 @@
30505  30875   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
30506  30876   
                    e,
30507  30877   
                )
30508  30878   
            },
30509  30879   
        );
30510  30880   
        DocumentTypeAsPayloadInputFuture {
30511  30881   
            inner: Box::pin(fut),
30512  30882   
        }
30513  30883   
    }
30514  30884   
}
       30885  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
30515  30886   
impl
30516  30887   
    ::aws_smithy_http_server::response::IntoResponse<
30517  30888   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
30518  30889   
    > for crate::output::DocumentTypeAsPayloadOutput
30519  30890   
{
30520  30891   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
30521  30892   
        match crate::protocol_serde::shape_document_type_as_payload::ser_document_type_as_payload_http_response(self) {
30522  30893   
                        Ok(response) => response,
30523  30894   
                        Err(e) => {
30524  30895   
                            ::tracing::error!(error = %e, "failed to serialize response");
30525  30896   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
30526  30897   
                        }
30527  30898   
                    }
30528  30899   
    }
30529  30900   
}
30530  30901   
       30902  +
/* RustType.kt:516 */
30531  30903   
#[allow(unreachable_code, unused_variables)]
       30904  +
/* RustType.kt:516 */
30532  30905   
#[cfg(test)]
       30906  +
/* ProtocolTestGenerator.kt:98 */
30533  30907   
mod document_type_as_payload_test {
30534  30908   
30535  30909   
    /// Serializes a document as the target of the httpPayload trait.
30536  30910   
    /// Test ID: DocumentTypeAsPayloadInput
30537  30911   
    #[::tokio::test]
30538  30912   
    #[::tracing_test::traced_test]
30539  30913   
    async fn document_type_as_payload_input_request() {
30540  30914   
        #[allow(unused_mut)]
30541  30915   
        let mut http_request = http::Request::builder()
30542  30916   
            .uri("/DocumentTypeAsPayload")
@@ -30702,31076 +30763,31140 @@
30722  31096   
        ));
30723  31097   
        let body = ::hyper::body::to_bytes(http_response.into_body())
30724  31098   
            .await
30725  31099   
            .expect("unable to extract body to bytes");
30726  31100   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
30727  31101   
            &body,
30728  31102   
            "\"hello\"",
30729  31103   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
30730  31104   
        ));
30731  31105   
    }
       31106  +
       31107  +
    /* ProtocolTestGenerator.kt:98 */
30732  31108   
}
30733  31109   
       31110  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
30734  31111   
const CONTENT_TYPE_DOCUMENTTYPE: ::mime::Mime = ::mime::APPLICATION_JSON;
30735  31112   
::pin_project_lite::pin_project! {
30736  31113   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
30737  31114   
    /// [`DocumentTypeInput`](crate::input::DocumentTypeInput) using modelled bindings.
30738  31115   
    pub struct DocumentTypeInputFuture {
30739  31116   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::DocumentTypeInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
30740  31117   
    }
30741  31118   
}
30742  31119   
30743  31120   
impl std::future::Future for DocumentTypeInputFuture {
@@ -30770,31147 +30847,31228 @@
30790  31167   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
30791  31168   
                    e,
30792  31169   
                )
30793  31170   
            },
30794  31171   
        );
30795  31172   
        DocumentTypeInputFuture {
30796  31173   
            inner: Box::pin(fut),
30797  31174   
        }
30798  31175   
    }
30799  31176   
}
       31177  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
30800  31178   
impl
30801  31179   
    ::aws_smithy_http_server::response::IntoResponse<
30802  31180   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
30803  31181   
    > for crate::output::DocumentTypeOutput
30804  31182   
{
30805  31183   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
30806  31184   
        match crate::protocol_serde::shape_document_type::ser_document_type_http_response(self) {
30807  31185   
            Ok(response) => response,
30808  31186   
            Err(e) => {
30809  31187   
                ::tracing::error!(error = %e, "failed to serialize response");
30810  31188   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
30811  31189   
            }
30812  31190   
        }
30813  31191   
    }
30814  31192   
}
30815  31193   
       31194  +
/* RustType.kt:516 */
30816  31195   
#[allow(unreachable_code, unused_variables)]
       31196  +
/* RustType.kt:516 */
30817  31197   
#[cfg(test)]
       31198  +
/* ProtocolTestGenerator.kt:98 */
30818  31199   
mod document_type_test {
30819  31200   
30820  31201   
    /// Serializes document types as part of the JSON request payload with no escaping.
30821  31202   
    /// Test ID: DocumentTypeInputWithObject
30822  31203   
    #[::tokio::test]
30823  31204   
    #[::tracing_test::traced_test]
30824  31205   
    async fn document_type_input_with_object_request() {
30825  31206   
        #[allow(unused_mut)]
30826  31207   
                    let mut http_request = http::Request::builder()
30827  31208   
                        .uri("/DocumentType")
@@ -31305,31686 +31366,31750 @@
31325  31706   
            http_response.headers(),
31326  31707   
            expected_headers,
31327  31708   
        ));
31328  31709   
        let body = ::hyper::body::to_bytes(http_response.into_body())
31329  31710   
            .await
31330  31711   
            .expect("unable to extract body to bytes");
31331  31712   
        ::aws_smithy_protocol_test::assert_ok(
31332  31713   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"stringValue\": \"string\",\n    \"documentValue\": [\n        true,\n        false\n    ]\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
31333  31714   
        );
31334  31715   
    }
       31716  +
       31717  +
    /* ProtocolTestGenerator.kt:98 */
31335  31718   
}
31336  31719   
       31720  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
31337  31721   
const CONTENT_TYPE_JSONBLOBS: ::mime::Mime = ::mime::APPLICATION_JSON;
31338  31722   
::pin_project_lite::pin_project! {
31339  31723   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
31340  31724   
    /// [`JsonBlobsInput`](crate::input::JsonBlobsInput) using modelled bindings.
31341  31725   
    pub struct JsonBlobsInputFuture {
31342  31726   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonBlobsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
31343  31727   
    }
31344  31728   
}
31345  31729   
31346  31730   
impl std::future::Future for JsonBlobsInputFuture {
@@ -31373,31757 +31450,31838 @@
31393  31777   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
31394  31778   
                    e,
31395  31779   
                )
31396  31780   
            },
31397  31781   
        );
31398  31782   
        JsonBlobsInputFuture {
31399  31783   
            inner: Box::pin(fut),
31400  31784   
        }
31401  31785   
    }
31402  31786   
}
       31787  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
31403  31788   
impl
31404  31789   
    ::aws_smithy_http_server::response::IntoResponse<
31405  31790   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
31406  31791   
    > for crate::output::JsonBlobsOutput
31407  31792   
{
31408  31793   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
31409  31794   
        match crate::protocol_serde::shape_json_blobs::ser_json_blobs_http_response(self) {
31410  31795   
            Ok(response) => response,
31411  31796   
            Err(e) => {
31412  31797   
                ::tracing::error!(error = %e, "failed to serialize response");
31413  31798   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
31414  31799   
            }
31415  31800   
        }
31416  31801   
    }
31417  31802   
}
31418  31803   
       31804  +
/* RustType.kt:516 */
31419  31805   
#[allow(unreachable_code, unused_variables)]
       31806  +
/* RustType.kt:516 */
31420  31807   
#[cfg(test)]
       31808  +
/* ProtocolTestGenerator.kt:98 */
31421  31809   
mod json_blobs_test {
31422  31810   
31423  31811   
    /// Blobs are base64 encoded
31424  31812   
    /// Test ID: RestJsonJsonBlobs
31425  31813   
    #[::tokio::test]
31426  31814   
    #[::tracing_test::traced_test]
31427  31815   
    async fn rest_json_json_blobs_request() {
31428  31816   
        #[allow(unused_mut)]
31429  31817   
        let mut http_request = http::Request::builder()
31430  31818   
            .uri("/JsonBlobs")
@@ -31471,31859 +31532,31923 @@
31491  31879   
        ));
31492  31880   
        let body = ::hyper::body::to_bytes(http_response.into_body())
31493  31881   
            .await
31494  31882   
            .expect("unable to extract body to bytes");
31495  31883   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
31496  31884   
            &body,
31497  31885   
            "{\n    \"data\": \"dmFsdWU=\"\n}",
31498  31886   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
31499  31887   
        ));
31500  31888   
    }
       31889  +
       31890  +
    /* ProtocolTestGenerator.kt:98 */
31501  31891   
}
31502  31892   
       31893  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
31503  31894   
const CONTENT_TYPE_SPARSEJSONMAPS: ::mime::Mime = ::mime::APPLICATION_JSON;
31504  31895   
::pin_project_lite::pin_project! {
31505  31896   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
31506  31897   
    /// [`SparseJsonMapsInput`](crate::input::SparseJsonMapsInput) using modelled bindings.
31507  31898   
    pub struct SparseJsonMapsInputFuture {
31508  31899   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::SparseJsonMapsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
31509  31900   
    }
31510  31901   
}
31511  31902   
31512  31903   
impl std::future::Future for SparseJsonMapsInputFuture {
@@ -31539,31930 +31639,32035 @@
31559  31950   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
31560  31951   
                    e,
31561  31952   
                )
31562  31953   
            },
31563  31954   
        );
31564  31955   
        SparseJsonMapsInputFuture {
31565  31956   
            inner: Box::pin(fut),
31566  31957   
        }
31567  31958   
    }
31568  31959   
}
       31960  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
31569  31961   
impl
31570  31962   
    ::aws_smithy_http_server::response::IntoResponse<
31571  31963   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
31572  31964   
    > for crate::output::SparseJsonMapsOutput
31573  31965   
{
31574  31966   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
31575  31967   
        match crate::protocol_serde::shape_sparse_json_maps::ser_sparse_json_maps_http_response(
31576  31968   
            self,
31577  31969   
        ) {
31578  31970   
            Ok(response) => response,
31579  31971   
            Err(e) => {
31580  31972   
                ::tracing::error!(error = %e, "failed to serialize response");
31581  31973   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
31582  31974   
            }
31583  31975   
        }
31584  31976   
    }
31585  31977   
}
       31978  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
31586  31979   
impl
31587  31980   
    ::aws_smithy_http_server::response::IntoResponse<
31588  31981   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
31589  31982   
    > for crate::error::SparseJsonMapsError
31590  31983   
{
31591  31984   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
31592  31985   
        match crate::protocol_serde::shape_sparse_json_maps::ser_sparse_json_maps_http_error(&self)
31593  31986   
        {
31594  31987   
            Ok(mut response) => {
31595  31988   
                response.extensions_mut().insert(
31596  31989   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
31597  31990   
                );
31598  31991   
                response
31599  31992   
            }
31600  31993   
            Err(e) => {
31601  31994   
                ::tracing::error!(error = %e, "failed to serialize response");
31602  31995   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
31603  31996   
            }
31604  31997   
        }
31605  31998   
    }
31606  31999   
}
31607  32000   
       32001  +
/* RustType.kt:516 */
31608  32002   
#[allow(unreachable_code, unused_variables)]
       32003  +
/* RustType.kt:516 */
31609  32004   
#[cfg(test)]
       32005  +
/* ProtocolTestGenerator.kt:98 */
31610  32006   
mod sparse_json_maps_test {
31611  32007   
31612  32008   
    /// Serializes JSON maps
31613  32009   
    /// Test ID: RestJsonSparseJsonMaps
31614  32010   
    #[::tokio::test]
31615  32011   
    #[::tracing_test::traced_test]
31616  32012   
    async fn rest_json_sparse_json_maps_request() {
31617  32013   
        #[allow(unused_mut)]
31618  32014   
                    let mut http_request = http::Request::builder()
31619  32015   
                        .uri("/SparseJsonMaps")
@@ -32154,32550 +32215,32614 @@
32174  32570   
            http_response.headers(),
32175  32571   
            expected_headers,
32176  32572   
        ));
32177  32573   
        let body = ::hyper::body::to_bytes(http_response.into_body())
32178  32574   
            .await
32179  32575   
            .expect("unable to extract body to bytes");
32180  32576   
        ::aws_smithy_protocol_test::assert_ok(
32181  32577   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"sparseSetMap\": {\n        \"x\": [],\n        \"y\": [\"a\", \"b\"],\n        \"z\": null\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
32182  32578   
        );
32183  32579   
    }
       32580  +
       32581  +
    /* ProtocolTestGenerator.kt:98 */
32184  32582   
}
32185  32583   
       32584  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
32186  32585   
const CONTENT_TYPE_JSONMAPS: ::mime::Mime = ::mime::APPLICATION_JSON;
32187  32586   
::pin_project_lite::pin_project! {
32188  32587   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
32189  32588   
    /// [`JsonMapsInput`](crate::input::JsonMapsInput) using modelled bindings.
32190  32589   
    pub struct JsonMapsInputFuture {
32191  32590   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonMapsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
32192  32591   
    }
32193  32592   
}
32194  32593   
32195  32594   
impl std::future::Future for JsonMapsInputFuture {
@@ -32222,32621 +32319,32723 @@
32242  32641   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
32243  32642   
                    e,
32244  32643   
                )
32245  32644   
            },
32246  32645   
        );
32247  32646   
        JsonMapsInputFuture {
32248  32647   
            inner: Box::pin(fut),
32249  32648   
        }
32250  32649   
    }
32251  32650   
}
       32651  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
32252  32652   
impl
32253  32653   
    ::aws_smithy_http_server::response::IntoResponse<
32254  32654   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
32255  32655   
    > for crate::output::JsonMapsOutput
32256  32656   
{
32257  32657   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
32258  32658   
        match crate::protocol_serde::shape_json_maps::ser_json_maps_http_response(self) {
32259  32659   
            Ok(response) => response,
32260  32660   
            Err(e) => {
32261  32661   
                ::tracing::error!(error = %e, "failed to serialize response");
32262  32662   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
32263  32663   
            }
32264  32664   
        }
32265  32665   
    }
32266  32666   
}
       32667  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
32267  32668   
impl
32268  32669   
    ::aws_smithy_http_server::response::IntoResponse<
32269  32670   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
32270  32671   
    > for crate::error::JsonMapsError
32271  32672   
{
32272  32673   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
32273  32674   
        match crate::protocol_serde::shape_json_maps::ser_json_maps_http_error(&self) {
32274  32675   
            Ok(mut response) => {
32275  32676   
                response.extensions_mut().insert(
32276  32677   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
32277  32678   
                );
32278  32679   
                response
32279  32680   
            }
32280  32681   
            Err(e) => {
32281  32682   
                ::tracing::error!(error = %e, "failed to serialize response");
32282  32683   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
32283  32684   
            }
32284  32685   
        }
32285  32686   
    }
32286  32687   
}
32287  32688   
       32689  +
/* RustType.kt:516 */
32288  32690   
#[allow(unreachable_code, unused_variables)]
       32691  +
/* RustType.kt:516 */
32289  32692   
#[cfg(test)]
       32693  +
/* ProtocolTestGenerator.kt:98 */
32290  32694   
mod json_maps_test {
32291  32695   
32292  32696   
    /// Serializes JSON maps
32293  32697   
    /// Test ID: RestJsonJsonMaps
32294  32698   
    #[::tokio::test]
32295  32699   
    #[::tracing_test::traced_test]
32296  32700   
    async fn rest_json_json_maps_request() {
32297  32701   
        #[allow(unused_mut)]
32298  32702   
                    let mut http_request = http::Request::builder()
32299  32703   
                        .uri("/JsonMaps")
@@ -32588,32992 +32649,33056 @@
32608  33012   
            http_response.headers(),
32609  33013   
            expected_headers,
32610  33014   
        ));
32611  33015   
        let body = ::hyper::body::to_bytes(http_response.into_body())
32612  33016   
            .await
32613  33017   
            .expect("unable to extract body to bytes");
32614  33018   
        ::aws_smithy_protocol_test::assert_ok(
32615  33019   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"denseSetMap\": {\n        \"x\": [],\n        \"y\": [\"a\", \"b\"]\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
32616  33020   
        );
32617  33021   
    }
       33022  +
       33023  +
    /* ProtocolTestGenerator.kt:98 */
32618  33024   
}
32619  33025   
       33026  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
32620  33027   
const CONTENT_TYPE_SPARSEJSONLISTS: ::mime::Mime = ::mime::APPLICATION_JSON;
32621  33028   
::pin_project_lite::pin_project! {
32622  33029   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
32623  33030   
    /// [`SparseJsonListsInput`](crate::input::SparseJsonListsInput) using modelled bindings.
32624  33031   
    pub struct SparseJsonListsInputFuture {
32625  33032   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::SparseJsonListsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
32626  33033   
    }
32627  33034   
}
32628  33035   
32629  33036   
impl std::future::Future for SparseJsonListsInputFuture {
@@ -32658,33065 +32737,33148 @@
32678  33085   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
32679  33086   
                    e,
32680  33087   
                )
32681  33088   
            },
32682  33089   
        );
32683  33090   
        SparseJsonListsInputFuture {
32684  33091   
            inner: Box::pin(fut),
32685  33092   
        }
32686  33093   
    }
32687  33094   
}
       33095  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
32688  33096   
impl
32689  33097   
    ::aws_smithy_http_server::response::IntoResponse<
32690  33098   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
32691  33099   
    > for crate::output::SparseJsonListsOutput
32692  33100   
{
32693  33101   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
32694  33102   
        match crate::protocol_serde::shape_sparse_json_lists::ser_sparse_json_lists_http_response(
32695  33103   
            self,
32696  33104   
        ) {
32697  33105   
            Ok(response) => response,
32698  33106   
            Err(e) => {
32699  33107   
                ::tracing::error!(error = %e, "failed to serialize response");
32700  33108   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
32701  33109   
            }
32702  33110   
        }
32703  33111   
    }
32704  33112   
}
32705  33113   
       33114  +
/* RustType.kt:516 */
32706  33115   
#[allow(unreachable_code, unused_variables)]
       33116  +
/* RustType.kt:516 */
32707  33117   
#[cfg(test)]
       33118  +
/* ProtocolTestGenerator.kt:98 */
32708  33119   
mod sparse_json_lists_test {
32709  33120   
32710  33121   
    /// Serializes null values in sparse lists
32711  33122   
    /// Test ID: RestJsonSparseListsSerializeNull
32712  33123   
    #[::tokio::test]
32713  33124   
    #[::tracing_test::traced_test]
32714  33125   
    async fn rest_json_sparse_lists_serialize_null_request() {
32715  33126   
        #[allow(unused_mut)]
32716  33127   
                    let mut http_request = http::Request::builder()
32717  33128   
                        .uri("/SparseJsonLists")
@@ -32767,33178 +32828,33242 @@
32787  33198   
            http_response.headers(),
32788  33199   
            expected_headers,
32789  33200   
        ));
32790  33201   
        let body = ::hyper::body::to_bytes(http_response.into_body())
32791  33202   
            .await
32792  33203   
            .expect("unable to extract body to bytes");
32793  33204   
        ::aws_smithy_protocol_test::assert_ok(
32794  33205   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"sparseStringList\": [\n        null,\n        \"hi\"\n    ],\n    \"sparseShortList\": [\n        null,\n        2\n    ]\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
32795  33206   
        );
32796  33207   
    }
       33208  +
       33209  +
    /* ProtocolTestGenerator.kt:98 */
32797  33210   
}
32798  33211   
       33212  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
32799  33213   
const CONTENT_TYPE_JSONLISTS: ::mime::Mime = ::mime::APPLICATION_JSON;
32800  33214   
::pin_project_lite::pin_project! {
32801  33215   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
32802  33216   
    /// [`JsonListsInput`](crate::input::JsonListsInput) using modelled bindings.
32803  33217   
    pub struct JsonListsInputFuture {
32804  33218   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonListsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
32805  33219   
    }
32806  33220   
}
32807  33221   
32808  33222   
impl std::future::Future for JsonListsInputFuture {
@@ -32835,33249 +32932,33351 @@
32855  33269   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
32856  33270   
                    e,
32857  33271   
                )
32858  33272   
            },
32859  33273   
        );
32860  33274   
        JsonListsInputFuture {
32861  33275   
            inner: Box::pin(fut),
32862  33276   
        }
32863  33277   
    }
32864  33278   
}
       33279  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
32865  33280   
impl
32866  33281   
    ::aws_smithy_http_server::response::IntoResponse<
32867  33282   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
32868  33283   
    > for crate::output::JsonListsOutput
32869  33284   
{
32870  33285   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
32871  33286   
        match crate::protocol_serde::shape_json_lists::ser_json_lists_http_response(self) {
32872  33287   
            Ok(response) => response,
32873  33288   
            Err(e) => {
32874  33289   
                ::tracing::error!(error = %e, "failed to serialize response");
32875  33290   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
32876  33291   
            }
32877  33292   
        }
32878  33293   
    }
32879  33294   
}
       33295  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
32880  33296   
impl
32881  33297   
    ::aws_smithy_http_server::response::IntoResponse<
32882  33298   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
32883  33299   
    > for crate::error::JsonListsError
32884  33300   
{
32885  33301   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
32886  33302   
        match crate::protocol_serde::shape_json_lists::ser_json_lists_http_error(&self) {
32887  33303   
            Ok(mut response) => {
32888  33304   
                response.extensions_mut().insert(
32889  33305   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
32890  33306   
                );
32891  33307   
                response
32892  33308   
            }
32893  33309   
            Err(e) => {
32894  33310   
                ::tracing::error!(error = %e, "failed to serialize response");
32895  33311   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
32896  33312   
            }
32897  33313   
        }
32898  33314   
    }
32899  33315   
}
32900  33316   
       33317  +
/* RustType.kt:516 */
32901  33318   
#[allow(unreachable_code, unused_variables)]
       33319  +
/* RustType.kt:516 */
32902  33320   
#[cfg(test)]
       33321  +
/* ProtocolTestGenerator.kt:98 */
32903  33322   
mod json_lists_test {
32904  33323   
32905  33324   
    /// Serializes JSON lists
32906  33325   
    /// Test ID: RestJsonLists
32907  33326   
    #[::tokio::test]
32908  33327   
    #[::tracing_test::traced_test]
32909  33328   
    async fn rest_json_lists_request() {
32910  33329   
        #[allow(unused_mut)]
32911  33330   
                    let mut http_request = http::Request::builder()
32912  33331   
                        .uri("/JsonLists")
@@ -33129,33548 +33190,33612 @@
33149  33568   
        ));
33150  33569   
        let body = ::hyper::body::to_bytes(http_response.into_body())
33151  33570   
            .await
33152  33571   
            .expect("unable to extract body to bytes");
33153  33572   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
33154  33573   
            &body,
33155  33574   
            "{\n    \"stringList\": []\n}",
33156  33575   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
33157  33576   
        ));
33158  33577   
    }
       33578  +
       33579  +
    /* ProtocolTestGenerator.kt:98 */
33159  33580   
}
33160  33581   
       33582  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
33161  33583   
const CONTENT_TYPE_RECURSIVESHAPES: ::mime::Mime = ::mime::APPLICATION_JSON;
33162  33584   
::pin_project_lite::pin_project! {
33163  33585   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
33164  33586   
    /// [`RecursiveShapesInput`](crate::input::RecursiveShapesInput) using modelled bindings.
33165  33587   
    pub struct RecursiveShapesInputFuture {
33166  33588   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::RecursiveShapesInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
33167  33589   
    }
33168  33590   
}
33169  33591   
33170  33592   
impl std::future::Future for RecursiveShapesInputFuture {
@@ -33197,33619 +33276,33702 @@
33217  33639   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
33218  33640   
                    e,
33219  33641   
                )
33220  33642   
            },
33221  33643   
        );
33222  33644   
        RecursiveShapesInputFuture {
33223  33645   
            inner: Box::pin(fut),
33224  33646   
        }
33225  33647   
    }
33226  33648   
}
       33649  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
33227  33650   
impl
33228  33651   
    ::aws_smithy_http_server::response::IntoResponse<
33229  33652   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
33230  33653   
    > for crate::output::RecursiveShapesOutput
33231  33654   
{
33232  33655   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
33233  33656   
        match crate::protocol_serde::shape_recursive_shapes::ser_recursive_shapes_http_response(
33234  33657   
            self,
33235  33658   
        ) {
33236  33659   
            Ok(response) => response,
33237  33660   
            Err(e) => {
33238  33661   
                ::tracing::error!(error = %e, "failed to serialize response");
33239  33662   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
33240  33663   
            }
33241  33664   
        }
33242  33665   
    }
33243  33666   
}
33244  33667   
       33668  +
/* RustType.kt:516 */
33245  33669   
#[allow(unreachable_code, unused_variables)]
       33670  +
/* RustType.kt:516 */
33246  33671   
#[cfg(test)]
       33672  +
/* ProtocolTestGenerator.kt:98 */
33247  33673   
mod recursive_shapes_test {
33248  33674   
33249  33675   
    /// Serializes recursive structures
33250  33676   
    /// Test ID: RestJsonRecursiveShapes
33251  33677   
    #[::tokio::test]
33252  33678   
    #[::tracing_test::traced_test]
33253  33679   
    async fn rest_json_recursive_shapes_request() {
33254  33680   
        #[allow(unused_mut)]
33255  33681   
                    let mut http_request = http::Request::builder()
33256  33682   
                        .uri("/RecursiveShapes")
@@ -33363,33789 +33424,33853 @@
33383  33809   
            http_response.headers(),
33384  33810   
            expected_headers,
33385  33811   
        ));
33386  33812   
        let body = ::hyper::body::to_bytes(http_response.into_body())
33387  33813   
            .await
33388  33814   
            .expect("unable to extract body to bytes");
33389  33815   
        ::aws_smithy_protocol_test::assert_ok(
33390  33816   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"nested\": {\n        \"foo\": \"Foo1\",\n        \"nested\": {\n            \"bar\": \"Bar1\",\n            \"recursiveMember\": {\n                \"foo\": \"Foo2\",\n                \"nested\": {\n                    \"bar\": \"Bar2\"\n                }\n            }\n        }\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
33391  33817   
        );
33392  33818   
    }
       33819  +
       33820  +
    /* ProtocolTestGenerator.kt:98 */
33393  33821   
}
33394  33822   
       33823  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
33395  33824   
const CONTENT_TYPE_JSONINTENUMS: ::mime::Mime = ::mime::APPLICATION_JSON;
33396  33825   
::pin_project_lite::pin_project! {
33397  33826   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
33398  33827   
    /// [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput) using modelled bindings.
33399  33828   
    pub struct JsonIntEnumsInputFuture {
33400  33829   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonIntEnumsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
33401  33830   
    }
33402  33831   
}
33403  33832   
33404  33833   
impl std::future::Future for JsonIntEnumsInputFuture {
@@ -33431,33860 +33528,33962 @@
33451  33880   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
33452  33881   
                    e,
33453  33882   
                )
33454  33883   
            },
33455  33884   
        );
33456  33885   
        JsonIntEnumsInputFuture {
33457  33886   
            inner: Box::pin(fut),
33458  33887   
        }
33459  33888   
    }
33460  33889   
}
       33890  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
33461  33891   
impl
33462  33892   
    ::aws_smithy_http_server::response::IntoResponse<
33463  33893   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
33464  33894   
    > for crate::output::JsonIntEnumsOutput
33465  33895   
{
33466  33896   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
33467  33897   
        match crate::protocol_serde::shape_json_int_enums::ser_json_int_enums_http_response(self) {
33468  33898   
            Ok(response) => response,
33469  33899   
            Err(e) => {
33470  33900   
                ::tracing::error!(error = %e, "failed to serialize response");
33471  33901   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
33472  33902   
            }
33473  33903   
        }
33474  33904   
    }
33475  33905   
}
       33906  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
33476  33907   
impl
33477  33908   
    ::aws_smithy_http_server::response::IntoResponse<
33478  33909   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
33479  33910   
    > for crate::error::JsonIntEnumsError
33480  33911   
{
33481  33912   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
33482  33913   
        match crate::protocol_serde::shape_json_int_enums::ser_json_int_enums_http_error(&self) {
33483  33914   
            Ok(mut response) => {
33484  33915   
                response.extensions_mut().insert(
33485  33916   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
33486  33917   
                );
33487  33918   
                response
33488  33919   
            }
33489  33920   
            Err(e) => {
33490  33921   
                ::tracing::error!(error = %e, "failed to serialize response");
33491  33922   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
33492  33923   
            }
33493  33924   
        }
33494  33925   
    }
33495  33926   
}
33496  33927   
       33928  +
/* RustType.kt:516 */
33497  33929   
#[allow(unreachable_code, unused_variables)]
       33930  +
/* RustType.kt:516 */
33498  33931   
#[cfg(test)]
       33932  +
/* ProtocolTestGenerator.kt:98 */
33499  33933   
mod json_int_enums_test {
33500  33934   
33501  33935   
    /// Serializes intEnums as integers
33502  33936   
    /// Test ID: RestJsonJsonIntEnums
33503  33937   
    #[::tokio::test]
33504  33938   
    #[::tracing_test::traced_test]
33505  33939   
    async fn rest_json_json_int_enums_request() {
33506  33940   
        #[allow(unused_mut)]
33507  33941   
                    let mut http_request = http::Request::builder()
33508  33942   
                        .uri("/JsonIntEnums")
@@ -33572,34006 +33633,34070 @@
33592  34026   
            http_response.headers(),
33593  34027   
            expected_headers,
33594  34028   
        ));
33595  34029   
        let body = ::hyper::body::to_bytes(http_response.into_body())
33596  34030   
            .await
33597  34031   
            .expect("unable to extract body to bytes");
33598  34032   
        ::aws_smithy_protocol_test::assert_ok(
33599  34033   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"integerEnum1\": 1,\n    \"integerEnum2\": 2,\n    \"integerEnum3\": 3,\n    \"integerEnumList\": [\n        1,\n        2,\n        3\n    ],\n    \"integerEnumSet\": [\n        1,\n        2\n    ],\n    \"integerEnumMap\": {\n        \"abc\": 1,\n        \"def\": 2\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
33600  34034   
        );
33601  34035   
    }
       34036  +
       34037  +
    /* ProtocolTestGenerator.kt:98 */
33602  34038   
}
33603  34039   
       34040  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
33604  34041   
const CONTENT_TYPE_JSONENUMS: ::mime::Mime = ::mime::APPLICATION_JSON;
33605  34042   
::pin_project_lite::pin_project! {
33606  34043   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
33607  34044   
    /// [`JsonEnumsInput`](crate::input::JsonEnumsInput) using modelled bindings.
33608  34045   
    pub struct JsonEnumsInputFuture {
33609  34046   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonEnumsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
33610  34047   
    }
33611  34048   
}
33612  34049   
33613  34050   
impl std::future::Future for JsonEnumsInputFuture {
@@ -33640,34077 +33737,34179 @@
33660  34097   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
33661  34098   
                    e,
33662  34099   
                )
33663  34100   
            },
33664  34101   
        );
33665  34102   
        JsonEnumsInputFuture {
33666  34103   
            inner: Box::pin(fut),
33667  34104   
        }
33668  34105   
    }
33669  34106   
}
       34107  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
33670  34108   
impl
33671  34109   
    ::aws_smithy_http_server::response::IntoResponse<
33672  34110   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
33673  34111   
    > for crate::output::JsonEnumsOutput
33674  34112   
{
33675  34113   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
33676  34114   
        match crate::protocol_serde::shape_json_enums::ser_json_enums_http_response(self) {
33677  34115   
            Ok(response) => response,
33678  34116   
            Err(e) => {
33679  34117   
                ::tracing::error!(error = %e, "failed to serialize response");
33680  34118   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
33681  34119   
            }
33682  34120   
        }
33683  34121   
    }
33684  34122   
}
       34123  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
33685  34124   
impl
33686  34125   
    ::aws_smithy_http_server::response::IntoResponse<
33687  34126   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
33688  34127   
    > for crate::error::JsonEnumsError
33689  34128   
{
33690  34129   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
33691  34130   
        match crate::protocol_serde::shape_json_enums::ser_json_enums_http_error(&self) {
33692  34131   
            Ok(mut response) => {
33693  34132   
                response.extensions_mut().insert(
33694  34133   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
33695  34134   
                );
33696  34135   
                response
33697  34136   
            }
33698  34137   
            Err(e) => {
33699  34138   
                ::tracing::error!(error = %e, "failed to serialize response");
33700  34139   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
33701  34140   
            }
33702  34141   
        }
33703  34142   
    }
33704  34143   
}
33705  34144   
       34145  +
/* RustType.kt:516 */
33706  34146   
#[allow(unreachable_code, unused_variables)]
       34147  +
/* RustType.kt:516 */
33707  34148   
#[cfg(test)]
       34149  +
/* ProtocolTestGenerator.kt:98 */
33708  34150   
mod json_enums_test {
33709  34151   
33710  34152   
    /// Serializes simple scalar properties
33711  34153   
    /// Test ID: RestJsonJsonEnums
33712  34154   
    #[::tokio::test]
33713  34155   
    #[::tracing_test::traced_test]
33714  34156   
    async fn rest_json_json_enums_request() {
33715  34157   
        #[allow(unused_mut)]
33716  34158   
                    let mut http_request = http::Request::builder()
33717  34159   
                        .uri("/JsonEnums")
@@ -33847,34289 +33908,34353 @@
33867  34309   
            http_response.headers(),
33868  34310   
            expected_headers,
33869  34311   
        ));
33870  34312   
        let body = ::hyper::body::to_bytes(http_response.into_body())
33871  34313   
            .await
33872  34314   
            .expect("unable to extract body to bytes");
33873  34315   
        ::aws_smithy_protocol_test::assert_ok(
33874  34316   
        ::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"))
33875  34317   
        );
33876  34318   
    }
       34319  +
       34320  +
    /* ProtocolTestGenerator.kt:98 */
33877  34321   
}
33878  34322   
       34323  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
33879  34324   
const CONTENT_TYPE_JSONTIMESTAMPS: ::mime::Mime = ::mime::APPLICATION_JSON;
33880  34325   
::pin_project_lite::pin_project! {
33881  34326   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
33882  34327   
    /// [`JsonTimestampsInput`](crate::input::JsonTimestampsInput) using modelled bindings.
33883  34328   
    pub struct JsonTimestampsInputFuture {
33884  34329   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonTimestampsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
33885  34330   
    }
33886  34331   
}
33887  34332   
33888  34333   
impl std::future::Future for JsonTimestampsInputFuture {
@@ -33915,34360 +33993,34442 @@
33935  34380   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
33936  34381   
                    e,
33937  34382   
                )
33938  34383   
            },
33939  34384   
        );
33940  34385   
        JsonTimestampsInputFuture {
33941  34386   
            inner: Box::pin(fut),
33942  34387   
        }
33943  34388   
    }
33944  34389   
}
       34390  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
33945  34391   
impl
33946  34392   
    ::aws_smithy_http_server::response::IntoResponse<
33947  34393   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
33948  34394   
    > for crate::output::JsonTimestampsOutput
33949  34395   
{
33950  34396   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
33951  34397   
        match crate::protocol_serde::shape_json_timestamps::ser_json_timestamps_http_response(self)
33952  34398   
        {
33953  34399   
            Ok(response) => response,
33954  34400   
            Err(e) => {
33955  34401   
                ::tracing::error!(error = %e, "failed to serialize response");
33956  34402   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
33957  34403   
            }
33958  34404   
        }
33959  34405   
    }
33960  34406   
}
33961  34407   
       34408  +
/* RustType.kt:516 */
33962  34409   
#[allow(unreachable_code, unused_variables)]
       34410  +
/* RustType.kt:516 */
33963  34411   
#[cfg(test)]
       34412  +
/* ProtocolTestGenerator.kt:98 */
33964  34413   
mod json_timestamps_test {
33965  34414   
33966  34415   
    /// Tests how normal timestamps are serialized
33967  34416   
    /// Test ID: RestJsonJsonTimestamps
33968  34417   
    #[::tokio::test]
33969  34418   
    #[::tracing_test::traced_test]
33970  34419   
    async fn rest_json_json_timestamps_request() {
33971  34420   
        #[allow(unused_mut)]
33972  34421   
        let mut http_request = http::Request::builder()
33973  34422   
            .uri("/JsonTimestamps")
@@ -34642,35091 +34703,35155 @@
34662  35111   
        ));
34663  35112   
        let body = ::hyper::body::to_bytes(http_response.into_body())
34664  35113   
            .await
34665  35114   
            .expect("unable to extract body to bytes");
34666  35115   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
34667  35116   
            &body,
34668  35117   
            "{\n    \"httpDateOnTarget\": \"Tue, 29 Apr 2014 18:30:38 GMT\"\n}",
34669  35118   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
34670  35119   
        ));
34671  35120   
    }
       35121  +
       35122  +
    /* ProtocolTestGenerator.kt:98 */
34672  35123   
}
34673  35124   
       35125  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
34674  35126   
const CONTENT_TYPE_SIMPLESCALARPROPERTIES: ::mime::Mime = ::mime::APPLICATION_JSON;
34675  35127   
::pin_project_lite::pin_project! {
34676  35128   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
34677  35129   
    /// [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput) using modelled bindings.
34678  35130   
    pub struct SimpleScalarPropertiesInputFuture {
34679  35131   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::SimpleScalarPropertiesInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
34680  35132   
    }
34681  35133   
}
34682  35134   
34683  35135   
impl std::future::Future for SimpleScalarPropertiesInputFuture {
@@ -34710,35162 +34787,35243 @@
34730  35182   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
34731  35183   
                    e,
34732  35184   
                )
34733  35185   
            },
34734  35186   
        );
34735  35187   
        SimpleScalarPropertiesInputFuture {
34736  35188   
            inner: Box::pin(fut),
34737  35189   
        }
34738  35190   
    }
34739  35191   
}
       35192  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
34740  35193   
impl
34741  35194   
    ::aws_smithy_http_server::response::IntoResponse<
34742  35195   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
34743  35196   
    > for crate::output::SimpleScalarPropertiesOutput
34744  35197   
{
34745  35198   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
34746  35199   
        match crate::protocol_serde::shape_simple_scalar_properties::ser_simple_scalar_properties_http_response(self) {
34747  35200   
                        Ok(response) => response,
34748  35201   
                        Err(e) => {
34749  35202   
                            ::tracing::error!(error = %e, "failed to serialize response");
34750  35203   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
34751  35204   
                        }
34752  35205   
                    }
34753  35206   
    }
34754  35207   
}
34755  35208   
       35209  +
/* RustType.kt:516 */
34756  35210   
#[allow(unreachable_code, unused_variables)]
       35211  +
/* RustType.kt:516 */
34757  35212   
#[cfg(test)]
       35213  +
/* ProtocolTestGenerator.kt:98 */
34758  35214   
mod simple_scalar_properties_test {
34759  35215   
34760  35216   
    /// Serializes simple scalar properties
34761  35217   
    /// Test ID: RestJsonSimpleScalarProperties
34762  35218   
    #[::tokio::test]
34763  35219   
    #[::tracing_test::traced_test]
34764  35220   
    async fn rest_json_simple_scalar_properties_request() {
34765  35221   
        #[allow(unused_mut)]
34766  35222   
                    let mut http_request = http::Request::builder()
34767  35223   
                        .uri("/SimpleScalarProperties")
@@ -35541,35997 +35602,36061 @@
35561  36017   
        ));
35562  36018   
        let body = ::hyper::body::to_bytes(http_response.into_body())
35563  36019   
            .await
35564  36020   
            .expect("unable to extract body to bytes");
35565  36021   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
35566  36022   
            &body,
35567  36023   
            "{\n    \"floatValue\": \"-Infinity\",\n    \"DoubleDribble\": \"-Infinity\"\n}",
35568  36024   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
35569  36025   
        ));
35570  36026   
    }
       36027  +
       36028  +
    /* ProtocolTestGenerator.kt:98 */
35571  36029   
}
35572  36030   
       36031  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
35573  36032   
const CONTENT_TYPE_GREETINGWITHERRORS: ::mime::Mime = ::mime::APPLICATION_JSON;
35574  36033   
::pin_project_lite::pin_project! {
35575  36034   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
35576  36035   
    /// [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput) using modelled bindings.
35577  36036   
    pub struct GreetingWithErrorsInputFuture {
35578  36037   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::GreetingWithErrorsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
35579  36038   
    }
35580  36039   
}
35581  36040   
35582  36041   
impl std::future::Future for GreetingWithErrorsInputFuture {
@@ -35611,36070 +35710,36174 @@
35631  36090   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
35632  36091   
                    e,
35633  36092   
                )
35634  36093   
            },
35635  36094   
        );
35636  36095   
        GreetingWithErrorsInputFuture {
35637  36096   
            inner: Box::pin(fut),
35638  36097   
        }
35639  36098   
    }
35640  36099   
}
       36100  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
35641  36101   
impl
35642  36102   
    ::aws_smithy_http_server::response::IntoResponse<
35643  36103   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
35644  36104   
    > for crate::output::GreetingWithErrorsOutput
35645  36105   
{
35646  36106   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
35647  36107   
        match crate::protocol_serde::shape_greeting_with_errors::ser_greeting_with_errors_http_response(self) {
35648  36108   
                        Ok(response) => response,
35649  36109   
                        Err(e) => {
35650  36110   
                            ::tracing::error!(error = %e, "failed to serialize response");
35651  36111   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
35652  36112   
                        }
35653  36113   
                    }
35654  36114   
    }
35655  36115   
}
       36116  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
35656  36117   
impl
35657  36118   
    ::aws_smithy_http_server::response::IntoResponse<
35658  36119   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
35659  36120   
    > for crate::error::GreetingWithErrorsError
35660  36121   
{
35661  36122   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
35662  36123   
        match crate::protocol_serde::shape_greeting_with_errors::ser_greeting_with_errors_http_error(
35663  36124   
            &self,
35664  36125   
        ) {
35665  36126   
            Ok(mut response) => {
35666  36127   
                response.extensions_mut().insert(
35667  36128   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
35668  36129   
                );
35669  36130   
                response
35670  36131   
            }
35671  36132   
            Err(e) => {
35672  36133   
                ::tracing::error!(error = %e, "failed to serialize response");
35673  36134   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
35674  36135   
            }
35675  36136   
        }
35676  36137   
    }
35677  36138   
}
35678  36139   
       36140  +
/* RustType.kt:516 */
35679  36141   
#[allow(unreachable_code, unused_variables)]
       36142  +
/* RustType.kt:516 */
35680  36143   
#[cfg(test)]
       36144  +
/* ProtocolTestGenerator.kt:98 */
35681  36145   
mod greeting_with_errors_test {
35682  36146   
35683  36147   
    /// Ensures that operations with errors successfully know how
35684  36148   
    /// to deserialize a successful response. As of January 2021,
35685  36149   
    /// server implementations are expected to respond with a
35686  36150   
    /// JSON object regardless of if the output parameters are
35687  36151   
    /// empty.
35688  36152   
    /// Test ID: RestJsonGreetingWithErrors
35689  36153   
    #[::tokio::test]
35690  36154   
    #[::tracing_test::traced_test]
@@ -35787,36251 +35848,36315 @@
35807  36271   
        ));
35808  36272   
        let body = ::hyper::body::to_bytes(http_response.into_body())
35809  36273   
            .await
35810  36274   
            .expect("unable to extract body to bytes");
35811  36275   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
35812  36276   
            &body,
35813  36277   
            "{}",
35814  36278   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
35815  36279   
        ));
35816  36280   
    }
       36281  +
       36282  +
    /* ProtocolTestGenerator.kt:98 */
35817  36283   
}
35818  36284   
       36285  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
35819  36286   
static CONTENT_TYPE_STREAMINGTRAITSWITHMEDIATYPE: std::sync::LazyLock<::mime::Mime> =
35820  36287   
    std::sync::LazyLock::new(|| {
35821  36288   
        "text/plain"
35822  36289   
            .parse::<::mime::Mime>()
35823  36290   
            .expect("BUG: MIME parsing failed, content_type is not valid")
35824  36291   
    });
35825  36292   
::pin_project_lite::pin_project! {
35826  36293   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
35827  36294   
    /// [`StreamingTraitsWithMediaTypeInput`](crate::input::StreamingTraitsWithMediaTypeInput) using modelled bindings.
35828  36295   
    pub struct StreamingTraitsWithMediaTypeInputFuture {
@@ -35861,36328 +35938,36409 @@
35881  36348   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
35882  36349   
                    e,
35883  36350   
                )
35884  36351   
            },
35885  36352   
        );
35886  36353   
        StreamingTraitsWithMediaTypeInputFuture {
35887  36354   
            inner: Box::pin(fut),
35888  36355   
        }
35889  36356   
    }
35890  36357   
}
       36358  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
35891  36359   
impl
35892  36360   
    ::aws_smithy_http_server::response::IntoResponse<
35893  36361   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
35894  36362   
    > for crate::output::StreamingTraitsWithMediaTypeOutput
35895  36363   
{
35896  36364   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
35897  36365   
        match crate::protocol_serde::shape_streaming_traits_with_media_type::ser_streaming_traits_with_media_type_http_response(self) {
35898  36366   
                        Ok(response) => response,
35899  36367   
                        Err(e) => {
35900  36368   
                            ::tracing::error!(error = %e, "failed to serialize response");
35901  36369   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
35902  36370   
                        }
35903  36371   
                    }
35904  36372   
    }
35905  36373   
}
35906  36374   
       36375  +
/* RustType.kt:516 */
35907  36376   
#[allow(unreachable_code, unused_variables)]
       36377  +
/* RustType.kt:516 */
35908  36378   
#[cfg(test)]
       36379  +
/* ProtocolTestGenerator.kt:98 */
35909  36380   
mod streaming_traits_with_media_type_test {
35910  36381   
35911  36382   
    /// Serializes a blob in the HTTP payload with a content-type
35912  36383   
    /// Test ID: RestJsonStreamingTraitsWithMediaTypeWithBlob
35913  36384   
    #[::tokio::test]
35914  36385   
    #[::tracing_test::traced_test]
35915  36386   
    async fn rest_json_streaming_traits_with_media_type_with_blob_request() {
35916  36387   
        #[allow(unused_mut)]
35917  36388   
        let mut http_request = http::Request::builder()
35918  36389   
            .uri("/StreamingTraitsWithMediaType")
@@ -35973,36444 +36034,36508 @@
35993  36464   
        ));
35994  36465   
        let body = ::hyper::body::to_bytes(http_response.into_body())
35995  36466   
            .await
35996  36467   
            .expect("unable to extract body to bytes");
35997  36468   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
35998  36469   
            &body,
35999  36470   
            "blobby blob blob",
36000  36471   
            ::aws_smithy_protocol_test::MediaType::from("application/octet-stream"),
36001  36472   
        ));
36002  36473   
    }
       36474  +
       36475  +
    /* ProtocolTestGenerator.kt:98 */
36003  36476   
}
36004  36477   
       36478  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
36005  36479   
const CONTENT_TYPE_STREAMINGTRAITSREQUIRELENGTH: ::mime::Mime = ::mime::APPLICATION_JSON;
36006  36480   
::pin_project_lite::pin_project! {
36007  36481   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
36008  36482   
    /// [`StreamingTraitsRequireLengthInput`](crate::input::StreamingTraitsRequireLengthInput) using modelled bindings.
36009  36483   
    pub struct StreamingTraitsRequireLengthInputFuture {
36010  36484   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::StreamingTraitsRequireLengthInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
36011  36485   
    }
36012  36486   
}
36013  36487   
36014  36488   
impl std::future::Future for StreamingTraitsRequireLengthInputFuture {
@@ -36042,36516 +36119,36597 @@
36062  36536   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
36063  36537   
                    e,
36064  36538   
                )
36065  36539   
            },
36066  36540   
        );
36067  36541   
        StreamingTraitsRequireLengthInputFuture {
36068  36542   
            inner: Box::pin(fut),
36069  36543   
        }
36070  36544   
    }
36071  36545   
}
       36546  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
36072  36547   
impl
36073  36548   
    ::aws_smithy_http_server::response::IntoResponse<
36074  36549   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
36075  36550   
    > for crate::output::StreamingTraitsRequireLengthOutput
36076  36551   
{
36077  36552   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
36078  36553   
        match crate::protocol_serde::shape_streaming_traits_require_length::ser_streaming_traits_require_length_http_response(self) {
36079  36554   
                        Ok(response) => response,
36080  36555   
                        Err(e) => {
36081  36556   
                            ::tracing::error!(error = %e, "failed to serialize response");
36082  36557   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
36083  36558   
                        }
36084  36559   
                    }
36085  36560   
    }
36086  36561   
}
36087  36562   
       36563  +
/* RustType.kt:516 */
36088  36564   
#[allow(unreachable_code, unused_variables)]
       36565  +
/* RustType.kt:516 */
36089  36566   
#[cfg(test)]
       36567  +
/* ProtocolTestGenerator.kt:98 */
36090  36568   
mod streaming_traits_require_length_test {
36091  36569   
36092  36570   
    /// Serializes a blob in the HTTP payload with a required length
36093  36571   
    /// Test ID: RestJsonStreamingTraitsRequireLengthWithBlob
36094  36572   
    #[::tokio::test]
36095  36573   
    #[::tracing_test::traced_test]
36096  36574   
    async fn rest_json_streaming_traits_require_length_with_blob_request() {
36097  36575   
        #[allow(unused_mut)]
36098  36576   
        let mut http_request = http::Request::builder()
36099  36577   
            .uri("/StreamingTraitsRequireLength")
@@ -36178,36656 +36239,36720 @@
36198  36676   
            )
36199  36677   
            .build_unchecked();
36200  36678   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
36201  36679   
            .await
36202  36680   
            .expect("unable to make an HTTP request");
36203  36681   
        assert!(
36204  36682   
            receiver.recv().await.is_some(),
36205  36683   
            "we expected operation handler to be invoked but it was not entered"
36206  36684   
        );
36207  36685   
    }
       36686  +
       36687  +
    /* ProtocolTestGenerator.kt:98 */
36208  36688   
}
36209  36689   
       36690  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
36210  36691   
const CONTENT_TYPE_STREAMINGTRAITS: ::mime::Mime = ::mime::APPLICATION_OCTET_STREAM;
36211  36692   
::pin_project_lite::pin_project! {
36212  36693   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
36213  36694   
    /// [`StreamingTraitsInput`](crate::input::StreamingTraitsInput) using modelled bindings.
36214  36695   
    pub struct StreamingTraitsInputFuture {
36215  36696   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::StreamingTraitsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
36216  36697   
    }
36217  36698   
}
36218  36699   
36219  36700   
impl std::future::Future for StreamingTraitsInputFuture {
@@ -36247,36728 +36326,36811 @@
36267  36748   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
36268  36749   
                    e,
36269  36750   
                )
36270  36751   
            },
36271  36752   
        );
36272  36753   
        StreamingTraitsInputFuture {
36273  36754   
            inner: Box::pin(fut),
36274  36755   
        }
36275  36756   
    }
36276  36757   
}
       36758  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
36277  36759   
impl
36278  36760   
    ::aws_smithy_http_server::response::IntoResponse<
36279  36761   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
36280  36762   
    > for crate::output::StreamingTraitsOutput
36281  36763   
{
36282  36764   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
36283  36765   
        match crate::protocol_serde::shape_streaming_traits::ser_streaming_traits_http_response(
36284  36766   
            self,
36285  36767   
        ) {
36286  36768   
            Ok(response) => response,
36287  36769   
            Err(e) => {
36288  36770   
                ::tracing::error!(error = %e, "failed to serialize response");
36289  36771   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
36290  36772   
            }
36291  36773   
        }
36292  36774   
    }
36293  36775   
}
36294  36776   
       36777  +
/* RustType.kt:516 */
36295  36778   
#[allow(unreachable_code, unused_variables)]
       36779  +
/* RustType.kt:516 */
36296  36780   
#[cfg(test)]
       36781  +
/* ProtocolTestGenerator.kt:98 */
36297  36782   
mod streaming_traits_test {
36298  36783   
36299  36784   
    /// Serializes a blob in the HTTP payload
36300  36785   
    /// Test ID: RestJsonStreamingTraitsWithBlob
36301  36786   
    #[::tokio::test]
36302  36787   
    #[::tracing_test::traced_test]
36303  36788   
    async fn rest_json_streaming_traits_with_blob_request() {
36304  36789   
        #[allow(unused_mut)]
36305  36790   
        let mut http_request = http::Request::builder()
36306  36791   
            .uri("/StreamingTraits")
@@ -36447,36932 +36508,36996 @@
36467  36952   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
36468  36953   
            http_response.headers(),
36469  36954   
            expected_headers,
36470  36955   
        ));
36471  36956   
        let body = ::hyper::body::to_bytes(http_response.into_body())
36472  36957   
            .await
36473  36958   
            .expect("unable to extract body to bytes");
36474  36959   
        // No body.
36475  36960   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
36476  36961   
    }
       36962  +
       36963  +
    /* ProtocolTestGenerator.kt:98 */
36477  36964   
}
36478  36965   
       36966  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
36479  36967   
const CONTENT_TYPE_HTTPRESPONSECODE: ::mime::Mime = ::mime::APPLICATION_JSON;
36480  36968   
::pin_project_lite::pin_project! {
36481  36969   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
36482  36970   
    /// [`HttpResponseCodeInput`](crate::input::HttpResponseCodeInput) using modelled bindings.
36483  36971   
    pub struct HttpResponseCodeInputFuture {
36484  36972   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpResponseCodeInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
36485  36973   
    }
36486  36974   
}
36487  36975   
36488  36976   
impl std::future::Future for HttpResponseCodeInputFuture {
@@ -36517,37005 +36596,37088 @@
36537  37025   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
36538  37026   
                    e,
36539  37027   
                )
36540  37028   
            },
36541  37029   
        );
36542  37030   
        HttpResponseCodeInputFuture {
36543  37031   
            inner: Box::pin(fut),
36544  37032   
        }
36545  37033   
    }
36546  37034   
}
       37035  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
36547  37036   
impl
36548  37037   
    ::aws_smithy_http_server::response::IntoResponse<
36549  37038   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
36550  37039   
    > for crate::output::HttpResponseCodeOutput
36551  37040   
{
36552  37041   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
36553  37042   
        match crate::protocol_serde::shape_http_response_code::ser_http_response_code_http_response(
36554  37043   
            self,
36555  37044   
        ) {
36556  37045   
            Ok(response) => response,
36557  37046   
            Err(e) => {
36558  37047   
                ::tracing::error!(error = %e, "failed to serialize response");
36559  37048   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
36560  37049   
            }
36561  37050   
        }
36562  37051   
    }
36563  37052   
}
36564  37053   
       37054  +
/* RustType.kt:516 */
36565  37055   
#[allow(unreachable_code, unused_variables)]
       37056  +
/* RustType.kt:516 */
36566  37057   
#[cfg(test)]
       37058  +
/* ProtocolTestGenerator.kt:98 */
36567  37059   
mod http_response_code_test {
36568  37060   
36569  37061   
    /// Binds the http response code to an output structure. Note that
36570  37062   
    /// even though all members are bound outside of the payload, an
36571  37063   
    /// empty JSON object is serialized in the response. However,
36572  37064   
    /// clients should be able to handle an empty JSON object or an
36573  37065   
    /// empty payload without failing to deserialize a response.
36574  37066   
    /// Test ID: RestJsonHttpResponseCode
36575  37067   
    #[::tokio::test]
36576  37068   
    #[::tracing_test::traced_test]
@@ -36603,37095 +36664,37159 @@
36623  37115   
        ));
36624  37116   
        let body = ::hyper::body::to_bytes(http_response.into_body())
36625  37117   
            .await
36626  37118   
            .expect("unable to extract body to bytes");
36627  37119   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
36628  37120   
            &body,
36629  37121   
            "{}",
36630  37122   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
36631  37123   
        ));
36632  37124   
    }
       37125  +
       37126  +
    /* ProtocolTestGenerator.kt:98 */
36633  37127   
}
36634  37128   
       37129  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
36635  37130   
const CONTENT_TYPE_HTTPPAYLOADWITHUNION: ::mime::Mime = ::mime::APPLICATION_JSON;
36636  37131   
::pin_project_lite::pin_project! {
36637  37132   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
36638  37133   
    /// [`HttpPayloadWithUnionInput`](crate::input::HttpPayloadWithUnionInput) using modelled bindings.
36639  37134   
    pub struct HttpPayloadWithUnionInputFuture {
36640  37135   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpPayloadWithUnionInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
36641  37136   
    }
36642  37137   
}
36643  37138   
36644  37139   
impl std::future::Future for HttpPayloadWithUnionInputFuture {
@@ -36671,37166 +36748,37247 @@
36691  37186   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
36692  37187   
                    e,
36693  37188   
                )
36694  37189   
            },
36695  37190   
        );
36696  37191   
        HttpPayloadWithUnionInputFuture {
36697  37192   
            inner: Box::pin(fut),
36698  37193   
        }
36699  37194   
    }
36700  37195   
}
       37196  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
36701  37197   
impl
36702  37198   
    ::aws_smithy_http_server::response::IntoResponse<
36703  37199   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
36704  37200   
    > for crate::output::HttpPayloadWithUnionOutput
36705  37201   
{
36706  37202   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
36707  37203   
        match crate::protocol_serde::shape_http_payload_with_union::ser_http_payload_with_union_http_response(self) {
36708  37204   
                        Ok(response) => response,
36709  37205   
                        Err(e) => {
36710  37206   
                            ::tracing::error!(error = %e, "failed to serialize response");
36711  37207   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
36712  37208   
                        }
36713  37209   
                    }
36714  37210   
    }
36715  37211   
}
36716  37212   
       37213  +
/* RustType.kt:516 */
36717  37214   
#[allow(unreachable_code, unused_variables)]
       37215  +
/* RustType.kt:516 */
36718  37216   
#[cfg(test)]
       37217  +
/* ProtocolTestGenerator.kt:98 */
36719  37218   
mod http_payload_with_union_test {
36720  37219   
36721  37220   
    /// Serializes a union in the payload.
36722  37221   
    /// Test ID: RestJsonHttpPayloadWithUnion
36723  37222   
    #[::tokio::test]
36724  37223   
    #[::tracing_test::traced_test]
36725  37224   
    async fn rest_json_http_payload_with_union_request() {
36726  37225   
        #[allow(unused_mut)]
36727  37226   
        let mut http_request = http::Request::builder()
36728  37227   
            .uri("/HttpPayloadWithUnion")
@@ -36844,37343 +36905,37407 @@
36864  37363   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
36865  37364   
            http_response.headers(),
36866  37365   
            expected_headers,
36867  37366   
        ));
36868  37367   
        let body = ::hyper::body::to_bytes(http_response.into_body())
36869  37368   
            .await
36870  37369   
            .expect("unable to extract body to bytes");
36871  37370   
        // No body.
36872  37371   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
36873  37372   
    }
       37373  +
       37374  +
    /* ProtocolTestGenerator.kt:98 */
36874  37375   
}
36875  37376   
       37377  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
36876  37378   
static CONTENT_TYPE_HTTPSTRINGPAYLOAD: std::sync::LazyLock<::mime::Mime> =
36877  37379   
    std::sync::LazyLock::new(|| {
36878  37380   
        "text/plain"
36879  37381   
            .parse::<::mime::Mime>()
36880  37382   
            .expect("BUG: MIME parsing failed, content_type is not valid")
36881  37383   
    });
36882  37384   
::pin_project_lite::pin_project! {
36883  37385   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
36884  37386   
    /// [`HttpStringPayloadInput`](crate::input::HttpStringPayloadInput) using modelled bindings.
36885  37387   
    pub struct HttpStringPayloadInputFuture {
@@ -36919,37421 +36996,37502 @@
36939  37441   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
36940  37442   
                    e,
36941  37443   
                )
36942  37444   
            },
36943  37445   
        );
36944  37446   
        HttpStringPayloadInputFuture {
36945  37447   
            inner: Box::pin(fut),
36946  37448   
        }
36947  37449   
    }
36948  37450   
}
       37451  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
36949  37452   
impl
36950  37453   
    ::aws_smithy_http_server::response::IntoResponse<
36951  37454   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
36952  37455   
    > for crate::output::HttpStringPayloadOutput
36953  37456   
{
36954  37457   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
36955  37458   
        match crate::protocol_serde::shape_http_string_payload::ser_http_string_payload_http_response(self) {
36956  37459   
                        Ok(response) => response,
36957  37460   
                        Err(e) => {
36958  37461   
                            ::tracing::error!(error = %e, "failed to serialize response");
36959  37462   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
36960  37463   
                        }
36961  37464   
                    }
36962  37465   
    }
36963  37466   
}
36964  37467   
       37468  +
/* RustType.kt:516 */
36965  37469   
#[allow(unreachable_code, unused_variables)]
       37470  +
/* RustType.kt:516 */
36966  37471   
#[cfg(test)]
       37472  +
/* ProtocolTestGenerator.kt:98 */
36967  37473   
mod http_string_payload_test {
36968  37474   
36969  37475   
    /// Test ID: RestJsonStringPayloadRequest
36970  37476   
    #[::tokio::test]
36971  37477   
    #[::tracing_test::traced_test]
36972  37478   
    async fn rest_json_string_payload_request_request() {
36973  37479   
        #[allow(unused_mut)]
36974  37480   
        let mut http_request = http::Request::builder()
36975  37481   
            .uri("/StringPayload")
36976  37482   
            .method("POST")
@@ -37150,37656 +37211,37720 @@
37170  37676   
                http::StatusCode::from_u16(406).expect("invalid expected HTTP status code"),
37171  37677   
                http_response.status()
37172  37678   
            );
37173  37679   
            let expected_headers = [("x-amzn-errortype", "NotAcceptableException")];
37174  37680   
            ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
37175  37681   
                http_response.headers(),
37176  37682   
                expected_headers,
37177  37683   
            ));
37178  37684   
        }
37179  37685   
    }
       37686  +
       37687  +
    /* ProtocolTestGenerator.kt:98 */
37180  37688   
}
37181  37689   
       37690  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
37182  37691   
static CONTENT_TYPE_HTTPENUMPAYLOAD: std::sync::LazyLock<::mime::Mime> =
37183  37692   
    std::sync::LazyLock::new(|| {
37184  37693   
        "text/plain"
37185  37694   
            .parse::<::mime::Mime>()
37186  37695   
            .expect("BUG: MIME parsing failed, content_type is not valid")
37187  37696   
    });
37188  37697   
::pin_project_lite::pin_project! {
37189  37698   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
37190  37699   
    /// [`HttpEnumPayloadInput`](crate::input::HttpEnumPayloadInput) using modelled bindings.
37191  37700   
    pub struct HttpEnumPayloadInputFuture {
@@ -37225,37734 +37326,37840 @@
37245  37754   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
37246  37755   
                    e,
37247  37756   
                )
37248  37757   
            },
37249  37758   
        );
37250  37759   
        HttpEnumPayloadInputFuture {
37251  37760   
            inner: Box::pin(fut),
37252  37761   
        }
37253  37762   
    }
37254  37763   
}
       37764  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
37255  37765   
impl
37256  37766   
    ::aws_smithy_http_server::response::IntoResponse<
37257  37767   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
37258  37768   
    > for crate::output::HttpEnumPayloadOutput
37259  37769   
{
37260  37770   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
37261  37771   
        match crate::protocol_serde::shape_http_enum_payload::ser_http_enum_payload_http_response(
37262  37772   
            self,
37263  37773   
        ) {
37264  37774   
            Ok(response) => response,
37265  37775   
            Err(e) => {
37266  37776   
                ::tracing::error!(error = %e, "failed to serialize response");
37267  37777   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
37268  37778   
            }
37269  37779   
        }
37270  37780   
    }
37271  37781   
}
       37782  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
37272  37783   
impl
37273  37784   
    ::aws_smithy_http_server::response::IntoResponse<
37274  37785   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
37275  37786   
    > for crate::error::HttpEnumPayloadError
37276  37787   
{
37277  37788   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
37278  37789   
        match crate::protocol_serde::shape_http_enum_payload::ser_http_enum_payload_http_error(
37279  37790   
            &self,
37280  37791   
        ) {
37281  37792   
            Ok(mut response) => {
37282  37793   
                response.extensions_mut().insert(
37283  37794   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
37284  37795   
                );
37285  37796   
                response
37286  37797   
            }
37287  37798   
            Err(e) => {
37288  37799   
                ::tracing::error!(error = %e, "failed to serialize response");
37289  37800   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
37290  37801   
            }
37291  37802   
        }
37292  37803   
    }
37293  37804   
}
37294  37805   
       37806  +
/* RustType.kt:516 */
37295  37807   
#[allow(unreachable_code, unused_variables)]
       37808  +
/* RustType.kt:516 */
37296  37809   
#[cfg(test)]
       37810  +
/* ProtocolTestGenerator.kt:98 */
37297  37811   
mod http_enum_payload_test {
37298  37812   
37299  37813   
    /// Test ID: RestJsonEnumPayloadRequest
37300  37814   
    #[::tokio::test]
37301  37815   
    #[::tracing_test::traced_test]
37302  37816   
    async fn rest_json_enum_payload_request_request() {
37303  37817   
        #[allow(unused_mut)]
37304  37818   
        let mut http_request = http::Request::builder()
37305  37819   
            .uri("/EnumPayload")
37306  37820   
            .method("POST")
@@ -37350,37864 +37411,37928 @@
37370  37884   
        ));
37371  37885   
        let body = ::hyper::body::to_bytes(http_response.into_body())
37372  37886   
            .await
37373  37887   
            .expect("unable to extract body to bytes");
37374  37888   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
37375  37889   
            &body,
37376  37890   
            "enumvalue",
37377  37891   
            ::aws_smithy_protocol_test::MediaType::from("unknown"),
37378  37892   
        ));
37379  37893   
    }
       37894  +
       37895  +
    /* ProtocolTestGenerator.kt:98 */
37380  37896   
}
37381  37897   
       37898  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
37382  37899   
const CONTENT_TYPE_HTTPPAYLOADWITHSTRUCTURE: ::mime::Mime = ::mime::APPLICATION_JSON;
37383  37900   
::pin_project_lite::pin_project! {
37384  37901   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
37385  37902   
    /// [`HttpPayloadWithStructureInput`](crate::input::HttpPayloadWithStructureInput) using modelled bindings.
37386  37903   
    pub struct HttpPayloadWithStructureInputFuture {
37387  37904   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpPayloadWithStructureInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
37388  37905   
    }
37389  37906   
}
37390  37907   
37391  37908   
impl std::future::Future for HttpPayloadWithStructureInputFuture {
@@ -37418,37935 +37495,38016 @@
37438  37955   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
37439  37956   
                    e,
37440  37957   
                )
37441  37958   
            },
37442  37959   
        );
37443  37960   
        HttpPayloadWithStructureInputFuture {
37444  37961   
            inner: Box::pin(fut),
37445  37962   
        }
37446  37963   
    }
37447  37964   
}
       37965  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
37448  37966   
impl
37449  37967   
    ::aws_smithy_http_server::response::IntoResponse<
37450  37968   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
37451  37969   
    > for crate::output::HttpPayloadWithStructureOutput
37452  37970   
{
37453  37971   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
37454  37972   
        match crate::protocol_serde::shape_http_payload_with_structure::ser_http_payload_with_structure_http_response(self) {
37455  37973   
                        Ok(response) => response,
37456  37974   
                        Err(e) => {
37457  37975   
                            ::tracing::error!(error = %e, "failed to serialize response");
37458  37976   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
37459  37977   
                        }
37460  37978   
                    }
37461  37979   
    }
37462  37980   
}
37463  37981   
       37982  +
/* RustType.kt:516 */
37464  37983   
#[allow(unreachable_code, unused_variables)]
       37984  +
/* RustType.kt:516 */
37465  37985   
#[cfg(test)]
       37986  +
/* ProtocolTestGenerator.kt:98 */
37466  37987   
mod http_payload_with_structure_test {
37467  37988   
37468  37989   
    /// Serializes a structure in the payload
37469  37990   
    /// Test ID: RestJsonHttpPayloadWithStructure
37470  37991   
    #[::tokio::test]
37471  37992   
    #[::tracing_test::traced_test]
37472  37993   
    async fn rest_json_http_payload_with_structure_request() {
37473  37994   
        #[allow(unused_mut)]
37474  37995   
        let mut http_request = http::Request::builder()
37475  37996   
            .uri("/HttpPayloadWithStructure")
@@ -37525,38046 +37586,38110 @@
37545  38066   
        ));
37546  38067   
        let body = ::hyper::body::to_bytes(http_response.into_body())
37547  38068   
            .await
37548  38069   
            .expect("unable to extract body to bytes");
37549  38070   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
37550  38071   
            &body,
37551  38072   
            "{\n    \"greeting\": \"hello\",\n    \"name\": \"Phreddy\"\n}",
37552  38073   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
37553  38074   
        ));
37554  38075   
    }
       38076  +
       38077  +
    /* ProtocolTestGenerator.kt:98 */
37555  38078   
}
37556  38079   
       38080  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
37557  38081   
static CONTENT_TYPE_HTTPPAYLOADTRAITSWITHMEDIATYPE: std::sync::LazyLock<::mime::Mime> =
37558  38082   
    std::sync::LazyLock::new(|| {
37559  38083   
        "text/plain"
37560  38084   
            .parse::<::mime::Mime>()
37561  38085   
            .expect("BUG: MIME parsing failed, content_type is not valid")
37562  38086   
    });
37563  38087   
::pin_project_lite::pin_project! {
37564  38088   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
37565  38089   
    /// [`HttpPayloadTraitsWithMediaTypeInput`](crate::input::HttpPayloadTraitsWithMediaTypeInput) using modelled bindings.
37566  38090   
    pub struct HttpPayloadTraitsWithMediaTypeInputFuture {
@@ -37598,38122 +37675,38203 @@
37618  38142   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
37619  38143   
                    e,
37620  38144   
                )
37621  38145   
            },
37622  38146   
        );
37623  38147   
        HttpPayloadTraitsWithMediaTypeInputFuture {
37624  38148   
            inner: Box::pin(fut),
37625  38149   
        }
37626  38150   
    }
37627  38151   
}
       38152  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
37628  38153   
impl
37629  38154   
    ::aws_smithy_http_server::response::IntoResponse<
37630  38155   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
37631  38156   
    > for crate::output::HttpPayloadTraitsWithMediaTypeOutput
37632  38157   
{
37633  38158   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
37634  38159   
        match crate::protocol_serde::shape_http_payload_traits_with_media_type::ser_http_payload_traits_with_media_type_http_response(self) {
37635  38160   
                        Ok(response) => response,
37636  38161   
                        Err(e) => {
37637  38162   
                            ::tracing::error!(error = %e, "failed to serialize response");
37638  38163   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
37639  38164   
                        }
37640  38165   
                    }
37641  38166   
    }
37642  38167   
}
37643  38168   
       38169  +
/* RustType.kt:516 */
37644  38170   
#[allow(unreachable_code, unused_variables)]
       38171  +
/* RustType.kt:516 */
37645  38172   
#[cfg(test)]
       38173  +
/* ProtocolTestGenerator.kt:98 */
37646  38174   
mod http_payload_traits_with_media_type_test {
37647  38175   
37648  38176   
    /// Serializes a blob in the HTTP payload with a content-type
37649  38177   
    /// Test ID: RestJsonHttpPayloadTraitsWithMediaTypeWithBlob
37650  38178   
    #[::tokio::test]
37651  38179   
    #[::tracing_test::traced_test]
37652  38180   
    async fn rest_json_http_payload_traits_with_media_type_with_blob_request() {
37653  38181   
        #[allow(unused_mut)]
37654  38182   
        let mut http_request = http::Request::builder()
37655  38183   
            .uri("/HttpPayloadTraitsWithMediaType")
@@ -37702,38230 +37763,38294 @@
37722  38250   
        ));
37723  38251   
        let body = ::hyper::body::to_bytes(http_response.into_body())
37724  38252   
            .await
37725  38253   
            .expect("unable to extract body to bytes");
37726  38254   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
37727  38255   
            &body,
37728  38256   
            "blobby blob blob",
37729  38257   
            ::aws_smithy_protocol_test::MediaType::from("application/octet-stream"),
37730  38258   
        ));
37731  38259   
    }
       38260  +
       38261  +
    /* ProtocolTestGenerator.kt:98 */
37732  38262   
}
37733  38263   
       38264  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
37734  38265   
::pin_project_lite::pin_project! {
37735  38266   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
37736  38267   
    /// [`HttpPayloadTraitsInput`](crate::input::HttpPayloadTraitsInput) using modelled bindings.
37737  38268   
    pub struct HttpPayloadTraitsInputFuture {
37738  38269   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpPayloadTraitsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
37739  38270   
    }
37740  38271   
}
37741  38272   
37742  38273   
impl std::future::Future for HttpPayloadTraitsInputFuture {
37743  38274   
    type Output = Result<
@@ -37765,38296 +37842,38377 @@
37785  38316   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
37786  38317   
                    e,
37787  38318   
                )
37788  38319   
            },
37789  38320   
        );
37790  38321   
        HttpPayloadTraitsInputFuture {
37791  38322   
            inner: Box::pin(fut),
37792  38323   
        }
37793  38324   
    }
37794  38325   
}
       38326  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
37795  38327   
impl
37796  38328   
    ::aws_smithy_http_server::response::IntoResponse<
37797  38329   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
37798  38330   
    > for crate::output::HttpPayloadTraitsOutput
37799  38331   
{
37800  38332   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
37801  38333   
        match crate::protocol_serde::shape_http_payload_traits::ser_http_payload_traits_http_response(self) {
37802  38334   
                        Ok(response) => response,
37803  38335   
                        Err(e) => {
37804  38336   
                            ::tracing::error!(error = %e, "failed to serialize response");
37805  38337   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
37806  38338   
                        }
37807  38339   
                    }
37808  38340   
    }
37809  38341   
}
37810  38342   
       38343  +
/* RustType.kt:516 */
37811  38344   
#[allow(unreachable_code, unused_variables)]
       38345  +
/* RustType.kt:516 */
37812  38346   
#[cfg(test)]
       38347  +
/* ProtocolTestGenerator.kt:98 */
37813  38348   
mod http_payload_traits_test {
37814  38349   
37815  38350   
    /// Serializes a blob in the HTTP payload
37816  38351   
    /// Test ID: RestJsonHttpPayloadTraitsWithBlob
37817  38352   
    #[::tokio::test]
37818  38353   
    #[::tracing_test::traced_test]
37819  38354   
    async fn rest_json_http_payload_traits_with_blob_request() {
37820  38355   
        #[allow(unused_mut)]
37821  38356   
        let mut http_request = http::Request::builder()
37822  38357   
            .uri("/HttpPayloadTraits")
@@ -38105,38640 +38166,38704 @@
38125  38660   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
38126  38661   
            http_response.headers(),
38127  38662   
            expected_headers,
38128  38663   
        ));
38129  38664   
        let body = ::hyper::body::to_bytes(http_response.into_body())
38130  38665   
            .await
38131  38666   
            .expect("unable to extract body to bytes");
38132  38667   
        // No body.
38133  38668   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
38134  38669   
    }
       38670  +
       38671  +
    /* ProtocolTestGenerator.kt:98 */
38135  38672   
}
38136  38673   
       38674  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
38137  38675   
const CONTENT_TYPE_HTTPPREFIXHEADERSINRESPONSE: ::mime::Mime = ::mime::APPLICATION_JSON;
38138  38676   
::pin_project_lite::pin_project! {
38139  38677   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
38140  38678   
    /// [`HttpPrefixHeadersInResponseInput`](crate::input::HttpPrefixHeadersInResponseInput) using modelled bindings.
38141  38679   
    pub struct HttpPrefixHeadersInResponseInputFuture {
38142  38680   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpPrefixHeadersInResponseInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
38143  38681   
    }
38144  38682   
}
38145  38683   
38146  38684   
impl std::future::Future for HttpPrefixHeadersInResponseInputFuture {
@@ -38173,38711 +38279,38824 @@
38193  38731   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
38194  38732   
                    e,
38195  38733   
                )
38196  38734   
            },
38197  38735   
        );
38198  38736   
        HttpPrefixHeadersInResponseInputFuture {
38199  38737   
            inner: Box::pin(fut),
38200  38738   
        }
38201  38739   
    }
38202  38740   
}
       38741  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
38203  38742   
impl
38204  38743   
    ::aws_smithy_http_server::response::IntoResponse<
38205  38744   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
38206  38745   
    > for crate::output::HttpPrefixHeadersInResponseOutput
38207  38746   
{
38208  38747   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
38209  38748   
        match crate::protocol_serde::shape_http_prefix_headers_in_response::ser_http_prefix_headers_in_response_http_response(self) {
38210  38749   
                        Ok(response) => response,
38211  38750   
                        Err(e) => {
38212  38751   
                            ::tracing::error!(error = %e, "failed to serialize response");
38213  38752   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
38214  38753   
                        }
38215  38754   
                    }
38216  38755   
    }
38217  38756   
}
38218  38757   
       38758  +
/* RustType.kt:516 */
38219  38759   
#[allow(unreachable_code, unused_variables)]
       38760  +
/* RustType.kt:516 */
38220  38761   
#[cfg(test)]
       38762  +
/* ProtocolTestGenerator.kt:98 */
38221  38763   
mod http_prefix_headers_in_response_test {
38222  38764   
38223  38765   
    /// (de)serializes all response headers
38224  38766   
    /// Test ID: HttpPrefixHeadersResponse
38225  38767   
    #[::tokio::test]
38226  38768   
    #[::tracing_test::traced_test]
38227  38769   
    async fn http_prefix_headers_response_response() {
38228  38770   
        let output = crate::output::HttpPrefixHeadersInResponseOutput {
38229  38771   
            prefix_headers: ::std::option::Option::Some({
38230  38772   
                let mut ret = ::std::collections::HashMap::new();
38231  38773   
                ret.insert("X-Foo".to_owned().to_ascii_lowercase(), "Foo".to_owned());
38232  38774   
                ret.insert("Hello".to_owned().to_ascii_lowercase(), "Hello".to_owned());
38233  38775   
                ret
38234  38776   
            }),
38235  38777   
        };
38236  38778   
        use ::aws_smithy_http_server::response::IntoResponse;
38237  38779   
        let http_response = output.into_response();
38238  38780   
        ::pretty_assertions::assert_eq!(
38239  38781   
            http::StatusCode::from_u16(200).expect("invalid expected HTTP status code"),
38240  38782   
            http_response.status()
38241  38783   
        );
38242  38784   
        let expected_headers = [("Hello", "Hello"), ("X-Foo", "Foo")];
38243  38785   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
38244  38786   
            http_response.headers(),
38245  38787   
            expected_headers,
38246  38788   
        ));
38247  38789   
    }
       38790  +
       38791  +
    /* ProtocolTestGenerator.kt:98 */
38248  38792   
}
38249  38793   
       38794  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
38250  38795   
const CONTENT_TYPE_HTTPPREFIXHEADERS: ::mime::Mime = ::mime::APPLICATION_JSON;
38251  38796   
::pin_project_lite::pin_project! {
38252  38797   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
38253  38798   
    /// [`HttpPrefixHeadersInput`](crate::input::HttpPrefixHeadersInput) using modelled bindings.
38254  38799   
    pub struct HttpPrefixHeadersInputFuture {
38255  38800   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpPrefixHeadersInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
38256  38801   
    }
38257  38802   
}
38258  38803   
38259  38804   
impl std::future::Future for HttpPrefixHeadersInputFuture {
@@ -38288,38833 +38365,38914 @@
38308  38853   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
38309  38854   
                    e,
38310  38855   
                )
38311  38856   
            },
38312  38857   
        );
38313  38858   
        HttpPrefixHeadersInputFuture {
38314  38859   
            inner: Box::pin(fut),
38315  38860   
        }
38316  38861   
    }
38317  38862   
}
       38863  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
38318  38864   
impl
38319  38865   
    ::aws_smithy_http_server::response::IntoResponse<
38320  38866   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
38321  38867   
    > for crate::output::HttpPrefixHeadersOutput
38322  38868   
{
38323  38869   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
38324  38870   
        match crate::protocol_serde::shape_http_prefix_headers::ser_http_prefix_headers_http_response(self) {
38325  38871   
                        Ok(response) => response,
38326  38872   
                        Err(e) => {
38327  38873   
                            ::tracing::error!(error = %e, "failed to serialize response");
38328  38874   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
38329  38875   
                        }
38330  38876   
                    }
38331  38877   
    }
38332  38878   
}
38333  38879   
       38880  +
/* RustType.kt:516 */
38334  38881   
#[allow(unreachable_code, unused_variables)]
       38882  +
/* RustType.kt:516 */
38335  38883   
#[cfg(test)]
       38884  +
/* ProtocolTestGenerator.kt:98 */
38336  38885   
mod http_prefix_headers_test {
38337  38886   
38338  38887   
    /// Adds headers by prefix
38339  38888   
    /// Test ID: RestJsonHttpPrefixHeadersArePresent
38340  38889   
    #[::tokio::test]
38341  38890   
    #[::tracing_test::traced_test]
38342  38891   
    async fn rest_json_http_prefix_headers_are_present_request() {
38343  38892   
        #[allow(unused_mut)]
38344  38893   
        let mut http_request = http::Request::builder()
38345  38894   
            .uri("/HttpPrefixHeaders")
@@ -38407,38956 +38468,39020 @@
38427  38976   
        let expected_headers = [
38428  38977   
            ("X-Foo", "Foo"),
38429  38978   
            ("X-Foo-Abc", "Abc value"),
38430  38979   
            ("X-Foo-Def", "Def value"),
38431  38980   
        ];
38432  38981   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
38433  38982   
            http_response.headers(),
38434  38983   
            expected_headers,
38435  38984   
        ));
38436  38985   
    }
       38986  +
       38987  +
    /* ProtocolTestGenerator.kt:98 */
38437  38988   
}
38438  38989   
       38990  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
38439  38991   
const CONTENT_TYPE_QUERYPARAMSASSTRINGLISTMAP: ::mime::Mime = ::mime::APPLICATION_JSON;
38440  38992   
::pin_project_lite::pin_project! {
38441  38993   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
38442  38994   
    /// [`QueryParamsAsStringListMapInput`](crate::input::QueryParamsAsStringListMapInput) using modelled bindings.
38443  38995   
    pub struct QueryParamsAsStringListMapInputFuture {
38444  38996   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::QueryParamsAsStringListMapInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
38445  38997   
    }
38446  38998   
}
38447  38999   
38448  39000   
impl std::future::Future for QueryParamsAsStringListMapInputFuture {
@@ -38475,39027 +38614,39173 @@
38495  39047   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
38496  39048   
                    e,
38497  39049   
                )
38498  39050   
            },
38499  39051   
        );
38500  39052   
        QueryParamsAsStringListMapInputFuture {
38501  39053   
            inner: Box::pin(fut),
38502  39054   
        }
38503  39055   
    }
38504  39056   
}
       39057  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
38505  39058   
impl
38506  39059   
    ::aws_smithy_http_server::response::IntoResponse<
38507  39060   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
38508  39061   
    > for crate::output::QueryParamsAsStringListMapOutput
38509  39062   
{
38510  39063   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
38511  39064   
        match crate::protocol_serde::shape_query_params_as_string_list_map::ser_query_params_as_string_list_map_http_response(self) {
38512  39065   
                        Ok(response) => response,
38513  39066   
                        Err(e) => {
38514  39067   
                            ::tracing::error!(error = %e, "failed to serialize response");
38515  39068   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
38516  39069   
                        }
38517  39070   
                    }
38518  39071   
    }
38519  39072   
}
38520  39073   
       39074  +
/* RustType.kt:516 */
38521  39075   
#[allow(unreachable_code, unused_variables)]
       39076  +
/* RustType.kt:516 */
38522  39077   
#[cfg(test)]
       39078  +
/* ProtocolTestGenerator.kt:98 */
38523  39079   
mod query_params_as_string_list_map_test {
38524  39080   
38525  39081   
    /// Servers put all query params in map
38526  39082   
    /// Test ID: RestJsonServersQueryParamsStringListMap
38527  39083   
    #[::tokio::test]
38528  39084   
    #[::tracing_test::traced_test]
38529  39085   
    async fn rest_json_servers_query_params_string_list_map_request() {
38530  39086   
        #[allow(unused_mut)]
38531  39087   
        let mut http_request = http::Request::builder()
38532  39088   
            .uri("/StringListMap")
38533  39089   
            .method("POST")
38534  39090   
            .body(::aws_smithy_http_server::body::Body::from(
38535  39091   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
38536  39092   
                    "".as_bytes(),
38537  39093   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
38538  39094   
                )),
38539  39095   
            ))
38540  39096   
            .unwrap();
38541  39097   
        *http_request.uri_mut() = "/StringListMap?corge=named&baz=bar&baz=qux"
38542  39098   
            .parse()
38543  39099   
            .unwrap();
38544  39100   
        #[allow(unused_mut)]
38545  39101   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
38546  39102   
        let config = crate::service::RestJsonConfig::builder().build();
38547  39103   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
38548  39104   
            .query_params_as_string_list_map(
38549  39105   
                move |input: crate::input::QueryParamsAsStringListMapInput| {
38550  39106   
                    let sender = sender.clone();
38551  39107   
                    async move {
38552  39108   
                        let result = {
38553  39109   
                            let expected = crate::input::QueryParamsAsStringListMapInput {
38554  39110   
                                qux: ::std::option::Option::Some("named".to_owned()),
38555  39111   
                                foo: ::std::option::Option::Some({
38556  39112   
                                    let mut ret = ::std::collections::HashMap::new();
38557  39113   
                                    ret.insert("corge".to_owned(), vec!["named".to_owned()]);
38558  39114   
                                    ret.insert(
38559  39115   
                                        "baz".to_owned(),
38560  39116   
                                        vec!["bar".to_owned(), "qux".to_owned()],
38561  39117   
                                    );
38562  39118   
                                    ret
38563  39119   
                                }),
38564  39120   
                            };
38565  39121   
                            ::pretty_assertions::assert_eq!(input, expected);
38566  39122   
                            let output = crate::output::QueryParamsAsStringListMapOutput {};
38567  39123   
                            output
38568  39124   
                        };
38569  39125   
                        sender.send(()).await.expect("receiver dropped early");
38570  39126   
                        result
38571  39127   
                    }
38572  39128   
                },
38573  39129   
            )
38574  39130   
            .build_unchecked();
38575  39131   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
38576  39132   
            .await
38577  39133   
            .expect("unable to make an HTTP request");
38578  39134   
        assert!(
38579  39135   
            receiver.recv().await.is_some(),
38580  39136   
            "we expected operation handler to be invoked but it was not entered"
38581  39137   
        );
38582  39138   
    }
       39139  +
       39140  +
    /* ProtocolTestGenerator.kt:98 */
38583  39141   
}
38584  39142   
       39143  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
38585  39144   
const CONTENT_TYPE_QUERYPRECEDENCE: ::mime::Mime = ::mime::APPLICATION_JSON;
38586  39145   
::pin_project_lite::pin_project! {
38587  39146   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
38588  39147   
    /// [`QueryPrecedenceInput`](crate::input::QueryPrecedenceInput) using modelled bindings.
38589  39148   
    pub struct QueryPrecedenceInputFuture {
38590  39149   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::QueryPrecedenceInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
38591  39150   
    }
38592  39151   
}
38593  39152   
38594  39153   
impl std::future::Future for QueryPrecedenceInputFuture {
@@ -38621,39180 +38755,39321 @@
38641  39200   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
38642  39201   
                    e,
38643  39202   
                )
38644  39203   
            },
38645  39204   
        );
38646  39205   
        QueryPrecedenceInputFuture {
38647  39206   
            inner: Box::pin(fut),
38648  39207   
        }
38649  39208   
    }
38650  39209   
}
       39210  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
38651  39211   
impl
38652  39212   
    ::aws_smithy_http_server::response::IntoResponse<
38653  39213   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
38654  39214   
    > for crate::output::QueryPrecedenceOutput
38655  39215   
{
38656  39216   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
38657  39217   
        match crate::protocol_serde::shape_query_precedence::ser_query_precedence_http_response(
38658  39218   
            self,
38659  39219   
        ) {
38660  39220   
            Ok(response) => response,
38661  39221   
            Err(e) => {
38662  39222   
                ::tracing::error!(error = %e, "failed to serialize response");
38663  39223   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
38664  39224   
            }
38665  39225   
        }
38666  39226   
    }
38667  39227   
}
38668  39228   
       39229  +
/* RustType.kt:516 */
38669  39230   
#[allow(unreachable_code, unused_variables)]
       39231  +
/* RustType.kt:516 */
38670  39232   
#[cfg(test)]
       39233  +
/* ProtocolTestGenerator.kt:98 */
38671  39234   
mod query_precedence_test {
38672  39235   
38673  39236   
    /// Servers put all query params in map
38674  39237   
    /// Test ID: RestJsonServersPutAllQueryParamsInMap
38675  39238   
    #[::tokio::test]
38676  39239   
    #[::tracing_test::traced_test]
38677  39240   
    async fn rest_json_servers_put_all_query_params_in_map_request() {
38678  39241   
        #[allow(unused_mut)]
38679  39242   
        let mut http_request = http::Request::builder()
38680  39243   
            .uri("/Precedence")
38681  39244   
            .method("POST")
38682  39245   
            .body(::aws_smithy_http_server::body::Body::from(
38683  39246   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
38684  39247   
                    "".as_bytes(),
38685  39248   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
38686  39249   
                )),
38687  39250   
            ))
38688  39251   
            .unwrap();
38689  39252   
        *http_request.uri_mut() = "/Precedence?bar=named&qux=fromMap".parse().unwrap();
38690  39253   
        #[allow(unused_mut)]
38691  39254   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
38692  39255   
        let config = crate::service::RestJsonConfig::builder().build();
38693  39256   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
38694  39257   
            .query_precedence(move |input: crate::input::QueryPrecedenceInput| {
38695  39258   
                let sender = sender.clone();
38696  39259   
                async move {
38697  39260   
                    let result = {
38698  39261   
                        let expected = crate::input::QueryPrecedenceInput {
38699  39262   
                            foo: ::std::option::Option::Some("named".to_owned()),
38700  39263   
                            baz: ::std::option::Option::Some({
38701  39264   
                                let mut ret = ::std::collections::HashMap::new();
38702  39265   
                                ret.insert("bar".to_owned(), "named".to_owned());
38703  39266   
                                ret.insert("qux".to_owned(), "fromMap".to_owned());
38704  39267   
                                ret
38705  39268   
                            }),
38706  39269   
                        };
38707  39270   
                        ::pretty_assertions::assert_eq!(input, expected);
38708  39271   
                        let output = crate::output::QueryPrecedenceOutput {};
38709  39272   
                        output
38710  39273   
                    };
38711  39274   
                    sender.send(()).await.expect("receiver dropped early");
38712  39275   
                    result
38713  39276   
                }
38714  39277   
            })
38715  39278   
            .build_unchecked();
38716  39279   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
38717  39280   
            .await
38718  39281   
            .expect("unable to make an HTTP request");
38719  39282   
        assert!(
38720  39283   
            receiver.recv().await.is_some(),
38721  39284   
            "we expected operation handler to be invoked but it was not entered"
38722  39285   
        );
38723  39286   
    }
       39287  +
       39288  +
    /* ProtocolTestGenerator.kt:98 */
38724  39289   
}
38725  39290   
       39291  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
38726  39292   
const CONTENT_TYPE_QUERYIDEMPOTENCYTOKENAUTOFILL: ::mime::Mime = ::mime::APPLICATION_JSON;
38727  39293   
::pin_project_lite::pin_project! {
38728  39294   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
38729  39295   
    /// [`QueryIdempotencyTokenAutoFillInput`](crate::input::QueryIdempotencyTokenAutoFillInput) using modelled bindings.
38730  39296   
    pub struct QueryIdempotencyTokenAutoFillInputFuture {
38731  39297   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::QueryIdempotencyTokenAutoFillInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
38732  39298   
    }
38733  39299   
}
38734  39300   
38735  39301   
impl std::future::Future for QueryIdempotencyTokenAutoFillInputFuture {
@@ -38762,39328 +38837,39405 @@
38782  39348   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
38783  39349   
                    e,
38784  39350   
                )
38785  39351   
            },
38786  39352   
        );
38787  39353   
        QueryIdempotencyTokenAutoFillInputFuture {
38788  39354   
            inner: Box::pin(fut),
38789  39355   
        }
38790  39356   
    }
38791  39357   
}
       39358  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
38792  39359   
impl
38793  39360   
    ::aws_smithy_http_server::response::IntoResponse<
38794  39361   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
38795  39362   
    > for crate::output::QueryIdempotencyTokenAutoFillOutput
38796  39363   
{
38797  39364   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
38798  39365   
        match crate::protocol_serde::shape_query_idempotency_token_auto_fill::ser_query_idempotency_token_auto_fill_http_response(self) {
38799  39366   
                        Ok(response) => response,
38800  39367   
                        Err(e) => {
38801  39368   
                            ::tracing::error!(error = %e, "failed to serialize response");
38802  39369   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
38803  39370   
                        }
38804  39371   
                    }
38805  39372   
    }
38806  39373   
}
38807  39374   
       39375  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
38808  39376   
const CONTENT_TYPE_OMITSSERIALIZINGEMPTYLISTS: ::mime::Mime = ::mime::APPLICATION_JSON;
38809  39377   
::pin_project_lite::pin_project! {
38810  39378   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
38811  39379   
    /// [`OmitsSerializingEmptyListsInput`](crate::input::OmitsSerializingEmptyListsInput) using modelled bindings.
38812  39380   
    pub struct OmitsSerializingEmptyListsInputFuture {
38813  39381   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OmitsSerializingEmptyListsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
38814  39382   
    }
38815  39383   
}
38816  39384   
38817  39385   
impl std::future::Future for OmitsSerializingEmptyListsInputFuture {
@@ -38844,39412 +38996,39572 @@
38864  39432   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
38865  39433   
                    e,
38866  39434   
                )
38867  39435   
            },
38868  39436   
        );
38869  39437   
        OmitsSerializingEmptyListsInputFuture {
38870  39438   
            inner: Box::pin(fut),
38871  39439   
        }
38872  39440   
    }
38873  39441   
}
       39442  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
38874  39443   
impl
38875  39444   
    ::aws_smithy_http_server::response::IntoResponse<
38876  39445   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
38877  39446   
    > for crate::output::OmitsSerializingEmptyListsOutput
38878  39447   
{
38879  39448   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
38880  39449   
        match crate::protocol_serde::shape_omits_serializing_empty_lists::ser_omits_serializing_empty_lists_http_response(self) {
38881  39450   
                        Ok(response) => response,
38882  39451   
                        Err(e) => {
38883  39452   
                            ::tracing::error!(error = %e, "failed to serialize response");
38884  39453   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
38885  39454   
                        }
38886  39455   
                    }
38887  39456   
    }
38888  39457   
}
       39458  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
38889  39459   
impl
38890  39460   
    ::aws_smithy_http_server::response::IntoResponse<
38891  39461   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
38892  39462   
    > for crate::error::OmitsSerializingEmptyListsError
38893  39463   
{
38894  39464   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
38895  39465   
        match crate::protocol_serde::shape_omits_serializing_empty_lists::ser_omits_serializing_empty_lists_http_error(&self) {
38896  39466   
            Ok(mut response) => {
38897  39467   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
38898  39468   
                response
38899  39469   
            },
38900  39470   
            Err(e) => {
38901  39471   
                ::tracing::error!(error = %e, "failed to serialize response");
38902  39472   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
38903  39473   
            }
38904  39474   
        }
38905  39475   
    }
38906  39476   
}
38907  39477   
       39478  +
/* RustType.kt:516 */
38908  39479   
#[allow(unreachable_code, unused_variables)]
       39480  +
/* RustType.kt:516 */
38909  39481   
#[cfg(test)]
       39482  +
/* ProtocolTestGenerator.kt:98 */
38910  39483   
mod omits_serializing_empty_lists_test {
38911  39484   
38912  39485   
    /// Supports omitting empty lists.
38913  39486   
    /// Test ID: RestJsonOmitsEmptyListQueryValues
38914  39487   
    #[::tokio::test]
38915  39488   
    #[::tracing_test::traced_test]
38916  39489   
    #[should_panic]
38917  39490   
    async fn rest_json_omits_empty_list_query_values_request() {
38918  39491   
        #[allow(unused_mut)]
38919  39492   
        let mut http_request = http::Request::builder()
38920  39493   
            .uri("/OmitsSerializingEmptyLists")
38921  39494   
            .method("POST")
38922  39495   
            .body(::aws_smithy_http_server::body::Body::from(
38923  39496   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
38924  39497   
                    "".as_bytes(),
38925  39498   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
38926  39499   
                )),
38927  39500   
            ))
38928  39501   
            .unwrap();
38929  39502   
        #[allow(unused_mut)]
38930  39503   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
38931  39504   
        let config = crate::service::RestJsonConfig::builder().build();
38932  39505   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
38933  39506   
            .omits_serializing_empty_lists(
38934  39507   
                move |input: crate::input::OmitsSerializingEmptyListsInput| {
38935  39508   
                    let sender = sender.clone();
38936  39509   
                    async move {
38937  39510   
                        let result = {
38938  39511   
                            let expected = crate::input::OmitsSerializingEmptyListsInput {
38939  39512   
                                query_string_list: ::std::option::Option::Some(vec![]),
38940  39513   
                                query_integer_list: ::std::option::Option::Some(vec![]),
38941  39514   
                                query_double_list: ::std::option::Option::Some(vec![]),
38942  39515   
                                query_boolean_list: ::std::option::Option::Some(vec![]),
38943  39516   
                                query_timestamp_list: ::std::option::Option::Some(vec![]),
38944  39517   
                                query_enum_list: ::std::option::Option::Some(vec![]),
38945  39518   
                                query_integer_enum_list: ::std::option::Option::Some(vec![]),
38946  39519   
                            };
38947  39520   
                            ::pretty_assertions::assert_eq!(input, expected);
38948  39521   
                            let output = crate::output::OmitsSerializingEmptyListsOutput {};
38949  39522   
                            Ok(output)
38950  39523   
                        };
38951  39524   
                        sender.send(()).await.expect("receiver dropped early");
38952  39525   
                        result
38953  39526   
                    }
38954  39527   
                },
38955  39528   
            )
38956  39529   
            .build_unchecked();
38957  39530   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
38958  39531   
            .await
38959  39532   
            .expect("unable to make an HTTP request");
38960  39533   
        assert!(
38961  39534   
            receiver.recv().await.is_some(),
38962  39535   
            "we expected operation handler to be invoked but it was not entered"
38963  39536   
        );
38964  39537   
    }
       39538  +
       39539  +
    /* ProtocolTestGenerator.kt:98 */
38965  39540   
}
38966  39541   
       39542  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
38967  39543   
const CONTENT_TYPE_OMITSNULLSERIALIZESEMPTYSTRING: ::mime::Mime = ::mime::APPLICATION_JSON;
38968  39544   
::pin_project_lite::pin_project! {
38969  39545   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
38970  39546   
    /// [`OmitsNullSerializesEmptyStringInput`](crate::input::OmitsNullSerializesEmptyStringInput) using modelled bindings.
38971  39547   
    pub struct OmitsNullSerializesEmptyStringInputFuture {
38972  39548   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OmitsNullSerializesEmptyStringInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
38973  39549   
    }
38974  39550   
}
38975  39551   
38976  39552   
impl std::future::Future for OmitsNullSerializesEmptyStringInputFuture {
@@ -39003,39579 +39080,39660 @@
39023  39599   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
39024  39600   
                    e,
39025  39601   
                )
39026  39602   
            },
39027  39603   
        );
39028  39604   
        OmitsNullSerializesEmptyStringInputFuture {
39029  39605   
            inner: Box::pin(fut),
39030  39606   
        }
39031  39607   
    }
39032  39608   
}
       39609  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
39033  39610   
impl
39034  39611   
    ::aws_smithy_http_server::response::IntoResponse<
39035  39612   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
39036  39613   
    > for crate::output::OmitsNullSerializesEmptyStringOutput
39037  39614   
{
39038  39615   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
39039  39616   
        match crate::protocol_serde::shape_omits_null_serializes_empty_string::ser_omits_null_serializes_empty_string_http_response(self) {
39040  39617   
                        Ok(response) => response,
39041  39618   
                        Err(e) => {
39042  39619   
                            ::tracing::error!(error = %e, "failed to serialize response");
39043  39620   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
39044  39621   
                        }
39045  39622   
                    }
39046  39623   
    }
39047  39624   
}
39048  39625   
       39626  +
/* RustType.kt:516 */
39049  39627   
#[allow(unreachable_code, unused_variables)]
       39628  +
/* RustType.kt:516 */
39050  39629   
#[cfg(test)]
       39630  +
/* ProtocolTestGenerator.kt:98 */
39051  39631   
mod omits_null_serializes_empty_string_test {
39052  39632   
39053  39633   
    /// Serializes empty query strings
39054  39634   
    /// Test ID: RestJsonSerializesEmptyQueryValue
39055  39635   
    #[::tokio::test]
39056  39636   
    #[::tracing_test::traced_test]
39057  39637   
    async fn rest_json_serializes_empty_query_value_request() {
39058  39638   
        #[allow(unused_mut)]
39059  39639   
        let mut http_request = http::Request::builder()
39060  39640   
            .uri("/OmitsNullSerializesEmptyString")
@@ -39120,39700 +39181,39764 @@
39140  39720   
            )
39141  39721   
            .build_unchecked();
39142  39722   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
39143  39723   
            .await
39144  39724   
            .expect("unable to make an HTTP request");
39145  39725   
        assert!(
39146  39726   
            receiver.recv().await.is_some(),
39147  39727   
            "we expected operation handler to be invoked but it was not entered"
39148  39728   
        );
39149  39729   
    }
       39730  +
       39731  +
    /* ProtocolTestGenerator.kt:98 */
39150  39732   
}
39151  39733   
       39734  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
39152  39735   
const CONTENT_TYPE_IGNOREQUERYPARAMSINRESPONSE: ::mime::Mime = ::mime::APPLICATION_JSON;
39153  39736   
::pin_project_lite::pin_project! {
39154  39737   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
39155  39738   
    /// [`IgnoreQueryParamsInResponseInput`](crate::input::IgnoreQueryParamsInResponseInput) using modelled bindings.
39156  39739   
    pub struct IgnoreQueryParamsInResponseInputFuture {
39157  39740   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::IgnoreQueryParamsInResponseInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
39158  39741   
    }
39159  39742   
}
39160  39743   
39161  39744   
impl std::future::Future for IgnoreQueryParamsInResponseInputFuture {
@@ -39188,39771 +39300,39890 @@
39208  39791   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
39209  39792   
                    e,
39210  39793   
                )
39211  39794   
            },
39212  39795   
        );
39213  39796   
        IgnoreQueryParamsInResponseInputFuture {
39214  39797   
            inner: Box::pin(fut),
39215  39798   
        }
39216  39799   
    }
39217  39800   
}
       39801  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
39218  39802   
impl
39219  39803   
    ::aws_smithy_http_server::response::IntoResponse<
39220  39804   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
39221  39805   
    > for crate::output::IgnoreQueryParamsInResponseOutput
39222  39806   
{
39223  39807   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
39224  39808   
        match crate::protocol_serde::shape_ignore_query_params_in_response::ser_ignore_query_params_in_response_http_response(self) {
39225  39809   
                        Ok(response) => response,
39226  39810   
                        Err(e) => {
39227  39811   
                            ::tracing::error!(error = %e, "failed to serialize response");
39228  39812   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
39229  39813   
                        }
39230  39814   
                    }
39231  39815   
    }
39232  39816   
}
39233  39817   
       39818  +
/* RustType.kt:516 */
39234  39819   
#[allow(unreachable_code, unused_variables)]
       39820  +
/* RustType.kt:516 */
39235  39821   
#[cfg(test)]
       39822  +
/* ProtocolTestGenerator.kt:98 */
39236  39823   
mod ignore_query_params_in_response_test {
39237  39824   
39238  39825   
    /// Query parameters must be ignored when serializing the output
39239  39826   
    /// of an operation. As of January 2021, server implementations
39240  39827   
    /// are expected to respond with a JSON object regardless of
39241  39828   
    /// if the output parameters are empty.
39242  39829   
    /// Test ID: RestJsonIgnoreQueryParamsInResponse
39243  39830   
    #[::tokio::test]
39244  39831   
    #[::tracing_test::traced_test]
39245  39832   
    async fn rest_json_ignore_query_params_in_response_response() {
39246  39833   
        let output = crate::output::IgnoreQueryParamsInResponseOutput {
39247  39834   
            baz: ::std::option::Option::None,
39248  39835   
        };
39249  39836   
        use ::aws_smithy_http_server::response::IntoResponse;
39250  39837   
        let http_response = output.into_response();
39251  39838   
        ::pretty_assertions::assert_eq!(
39252  39839   
            http::StatusCode::from_u16(200).expect("invalid expected HTTP status code"),
39253  39840   
            http_response.status()
39254  39841   
        );
39255  39842   
        let expected_headers = [("Content-Type", "application/json")];
39256  39843   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
39257  39844   
            http_response.headers(),
39258  39845   
            expected_headers,
39259  39846   
        ));
39260  39847   
        let body = ::hyper::body::to_bytes(http_response.into_body())
39261  39848   
            .await
39262  39849   
            .expect("unable to extract body to bytes");
39263  39850   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
39264  39851   
            &body,
39265  39852   
            "{}",
39266  39853   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
39267  39854   
        ));
39268  39855   
    }
       39856  +
       39857  +
    /* ProtocolTestGenerator.kt:98 */
39269  39858   
}
39270  39859   
       39860  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
39271  39861   
const CONTENT_TYPE_CONSTANTANDVARIABLEQUERYSTRING: ::mime::Mime = ::mime::APPLICATION_JSON;
39272  39862   
::pin_project_lite::pin_project! {
39273  39863   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
39274  39864   
    /// [`ConstantAndVariableQueryStringInput`](crate::input::ConstantAndVariableQueryStringInput) using modelled bindings.
39275  39865   
    pub struct ConstantAndVariableQueryStringInputFuture {
39276  39866   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ConstantAndVariableQueryStringInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
39277  39867   
    }
39278  39868   
}
39279  39869   
39280  39870   
impl std::future::Future for ConstantAndVariableQueryStringInputFuture {
@@ -39307,39897 +39384,39978 @@
39327  39917   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
39328  39918   
                    e,
39329  39919   
                )
39330  39920   
            },
39331  39921   
        );
39332  39922   
        ConstantAndVariableQueryStringInputFuture {
39333  39923   
            inner: Box::pin(fut),
39334  39924   
        }
39335  39925   
    }
39336  39926   
}
       39927  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
39337  39928   
impl
39338  39929   
    ::aws_smithy_http_server::response::IntoResponse<
39339  39930   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
39340  39931   
    > for crate::output::ConstantAndVariableQueryStringOutput
39341  39932   
{
39342  39933   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
39343  39934   
        match crate::protocol_serde::shape_constant_and_variable_query_string::ser_constant_and_variable_query_string_http_response(self) {
39344  39935   
                        Ok(response) => response,
39345  39936   
                        Err(e) => {
39346  39937   
                            ::tracing::error!(error = %e, "failed to serialize response");
39347  39938   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
39348  39939   
                        }
39349  39940   
                    }
39350  39941   
    }
39351  39942   
}
39352  39943   
       39944  +
/* RustType.kt:516 */
39353  39945   
#[allow(unreachable_code, unused_variables)]
       39946  +
/* RustType.kt:516 */
39354  39947   
#[cfg(test)]
       39948  +
/* ProtocolTestGenerator.kt:98 */
39355  39949   
mod constant_and_variable_query_string_test {
39356  39950   
39357  39951   
    /// Mixes constant and variable query string parameters
39358  39952   
    /// Test ID: RestJsonConstantAndVariableQueryStringMissingOneValue
39359  39953   
    #[::tokio::test]
39360  39954   
    #[::tracing_test::traced_test]
39361  39955   
    async fn rest_json_constant_and_variable_query_string_missing_one_value_request() {
39362  39956   
        #[allow(unused_mut)]
39363  39957   
        let mut http_request = http::Request::builder()
39364  39958   
            .uri("/ConstantAndVariableQueryString")
@@ -39428,40022 +39489,40086 @@
39448  40042   
            )
39449  40043   
            .build_unchecked();
39450  40044   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
39451  40045   
            .await
39452  40046   
            .expect("unable to make an HTTP request");
39453  40047   
        assert!(
39454  40048   
            receiver.recv().await.is_some(),
39455  40049   
            "we expected operation handler to be invoked but it was not entered"
39456  40050   
        );
39457  40051   
    }
       40052  +
       40053  +
    /* ProtocolTestGenerator.kt:98 */
39458  40054   
}
39459  40055   
       40056  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
39460  40057   
const CONTENT_TYPE_CONSTANTQUERYSTRING: ::mime::Mime = ::mime::APPLICATION_JSON;
39461  40058   
::pin_project_lite::pin_project! {
39462  40059   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
39463  40060   
    /// [`ConstantQueryStringInput`](crate::input::ConstantQueryStringInput) using modelled bindings.
39464  40061   
    pub struct ConstantQueryStringInputFuture {
39465  40062   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ConstantQueryStringInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
39466  40063   
    }
39467  40064   
}
39468  40065   
39469  40066   
impl std::future::Future for ConstantQueryStringInputFuture {
@@ -39496,40093 +39640,40245 @@
39516  40113   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
39517  40114   
                    e,
39518  40115   
                )
39519  40116   
            },
39520  40117   
        );
39521  40118   
        ConstantQueryStringInputFuture {
39522  40119   
            inner: Box::pin(fut),
39523  40120   
        }
39524  40121   
    }
39525  40122   
}
       40123  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
39526  40124   
impl
39527  40125   
    ::aws_smithy_http_server::response::IntoResponse<
39528  40126   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
39529  40127   
    > for crate::output::ConstantQueryStringOutput
39530  40128   
{
39531  40129   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
39532  40130   
        match crate::protocol_serde::shape_constant_query_string::ser_constant_query_string_http_response(self) {
39533  40131   
                        Ok(response) => response,
39534  40132   
                        Err(e) => {
39535  40133   
                            ::tracing::error!(error = %e, "failed to serialize response");
39536  40134   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
39537  40135   
                        }
39538  40136   
                    }
39539  40137   
    }
39540  40138   
}
       40139  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
39541  40140   
impl
39542  40141   
    ::aws_smithy_http_server::response::IntoResponse<
39543  40142   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
39544  40143   
    > for crate::error::ConstantQueryStringError
39545  40144   
{
39546  40145   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
39547  40146   
        match crate::protocol_serde::shape_constant_query_string::ser_constant_query_string_http_error(&self) {
39548  40147   
            Ok(mut response) => {
39549  40148   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
39550  40149   
                response
39551  40150   
            },
39552  40151   
            Err(e) => {
39553  40152   
                ::tracing::error!(error = %e, "failed to serialize response");
39554  40153   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
39555  40154   
            }
39556  40155   
        }
39557  40156   
    }
39558  40157   
}
39559  40158   
       40159  +
/* RustType.kt:516 */
39560  40160   
#[allow(unreachable_code, unused_variables)]
       40161  +
/* RustType.kt:516 */
39561  40162   
#[cfg(test)]
       40163  +
/* ProtocolTestGenerator.kt:98 */
39562  40164   
mod constant_query_string_test {
39563  40165   
39564  40166   
    /// Includes constant query string parameters
39565  40167   
    /// Test ID: RestJsonConstantQueryString
39566  40168   
    #[::tokio::test]
39567  40169   
    #[::tracing_test::traced_test]
39568  40170   
    async fn rest_json_constant_query_string_request() {
39569  40171   
        #[allow(unused_mut)]
39570  40172   
        let mut http_request = http::Request::builder()
39571  40173   
            .uri("/ConstantQueryString/hi")
39572  40174   
            .method("GET")
39573  40175   
            .body(::aws_smithy_http_server::body::Body::from(
39574  40176   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
39575  40177   
                    "".as_bytes(),
39576  40178   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
39577  40179   
                )),
39578  40180   
            ))
39579  40181   
            .unwrap();
39580  40182   
        *http_request.uri_mut() = "/ConstantQueryString/hi?foo=bar&hello".parse().unwrap();
39581  40183   
        #[allow(unused_mut)]
39582  40184   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
39583  40185   
        let config = crate::service::RestJsonConfig::builder().build();
39584  40186   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
39585  40187   
            .constant_query_string(move |input: crate::input::ConstantQueryStringInput| {
39586  40188   
                let sender = sender.clone();
39587  40189   
                async move {
39588  40190   
                    let result = {
39589  40191   
                        let expected = crate::input::ConstantQueryStringInput {
39590  40192   
                            hello: "hi".to_owned(),
39591  40193   
                        };
39592  40194   
                        ::pretty_assertions::assert_eq!(input, expected);
39593  40195   
                        let output = crate::output::ConstantQueryStringOutput {};
39594  40196   
                        Ok(output)
39595  40197   
                    };
39596  40198   
                    sender.send(()).await.expect("receiver dropped early");
39597  40199   
                    result
39598  40200   
                }
39599  40201   
            })
39600  40202   
            .build_unchecked();
39601  40203   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
39602  40204   
            .await
39603  40205   
            .expect("unable to make an HTTP request");
39604  40206   
        assert!(
39605  40207   
            receiver.recv().await.is_some(),
39606  40208   
            "we expected operation handler to be invoked but it was not entered"
39607  40209   
        );
39608  40210   
    }
       40211  +
       40212  +
    /* ProtocolTestGenerator.kt:98 */
39609  40213   
}
39610  40214   
       40215  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
39611  40216   
const CONTENT_TYPE_ALLQUERYSTRINGTYPES: ::mime::Mime = ::mime::APPLICATION_JSON;
39612  40217   
::pin_project_lite::pin_project! {
39613  40218   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
39614  40219   
    /// [`AllQueryStringTypesInput`](crate::input::AllQueryStringTypesInput) using modelled bindings.
39615  40220   
    pub struct AllQueryStringTypesInputFuture {
39616  40221   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::AllQueryStringTypesInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
39617  40222   
    }
39618  40223   
}
39619  40224   
39620  40225   
impl std::future::Future for AllQueryStringTypesInputFuture {
@@ -39647,40252 +39742,40352 @@
39667  40272   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
39668  40273   
                    e,
39669  40274   
                )
39670  40275   
            },
39671  40276   
        );
39672  40277   
        AllQueryStringTypesInputFuture {
39673  40278   
            inner: Box::pin(fut),
39674  40279   
        }
39675  40280   
    }
39676  40281   
}
       40282  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
39677  40283   
impl
39678  40284   
    ::aws_smithy_http_server::response::IntoResponse<
39679  40285   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
39680  40286   
    > for crate::output::AllQueryStringTypesOutput
39681  40287   
{
39682  40288   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
39683  40289   
        match crate::protocol_serde::shape_all_query_string_types::ser_all_query_string_types_http_response(self) {
39684  40290   
                        Ok(response) => response,
39685  40291   
                        Err(e) => {
39686  40292   
                            ::tracing::error!(error = %e, "failed to serialize response");
39687  40293   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
39688  40294   
                        }
39689  40295   
                    }
39690  40296   
    }
39691  40297   
}
       40298  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
39692  40299   
impl
39693  40300   
    ::aws_smithy_http_server::response::IntoResponse<
39694  40301   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
39695  40302   
    > for crate::error::AllQueryStringTypesError
39696  40303   
{
39697  40304   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
39698  40305   
        match crate::protocol_serde::shape_all_query_string_types::ser_all_query_string_types_http_error(&self) {
39699  40306   
            Ok(mut response) => {
39700  40307   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
39701  40308   
                response
39702  40309   
            },
39703  40310   
            Err(e) => {
39704  40311   
                ::tracing::error!(error = %e, "failed to serialize response");
39705  40312   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
39706  40313   
            }
39707  40314   
        }
39708  40315   
    }
39709  40316   
}
39710  40317   
       40318  +
/* RustType.kt:516 */
39711  40319   
#[allow(unreachable_code, unused_variables)]
       40320  +
/* RustType.kt:516 */
39712  40321   
#[cfg(test)]
       40322  +
/* ProtocolTestGenerator.kt:98 */
39713  40323   
mod all_query_string_types_test {
39714  40324   
39715  40325   
    /// Serializes query string parameters with all supported types
39716  40326   
    /// Test ID: RestJsonAllQueryStringTypes
39717  40327   
    #[::tokio::test]
39718  40328   
    #[::tracing_test::traced_test]
39719  40329   
    async fn rest_json_all_query_string_types_request() {
39720  40330   
        #[allow(unused_mut)]
39721  40331   
        let mut http_request = http::Request::builder()
39722  40332   
            .uri("/AllQueryStringTypesInput")
@@ -40982,41592 +41043,41656 @@
41002  41612   
            })
41003  41613   
            .build_unchecked();
41004  41614   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
41005  41615   
            .await
41006  41616   
            .expect("unable to make an HTTP request");
41007  41617   
        assert!(
41008  41618   
            receiver.recv().await.is_some(),
41009  41619   
            "we expected operation handler to be invoked but it was not entered"
41010  41620   
        );
41011  41621   
    }
       41622  +
       41623  +
    /* ProtocolTestGenerator.kt:98 */
41012  41624   
}
41013  41625   
       41626  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
41014  41627   
const CONTENT_TYPE_HTTPREQUESTWITHREGEXLITERAL: ::mime::Mime = ::mime::APPLICATION_JSON;
41015  41628   
::pin_project_lite::pin_project! {
41016  41629   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
41017  41630   
    /// [`HttpRequestWithRegexLiteralInput`](crate::input::HttpRequestWithRegexLiteralInput) using modelled bindings.
41018  41631   
    pub struct HttpRequestWithRegexLiteralInputFuture {
41019  41632   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpRequestWithRegexLiteralInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
41020  41633   
    }
41021  41634   
}
41022  41635   
41023  41636   
impl std::future::Future for HttpRequestWithRegexLiteralInputFuture {
@@ -41050,41663 +41195,41816 @@
41070  41683   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
41071  41684   
                    e,
41072  41685   
                )
41073  41686   
            },
41074  41687   
        );
41075  41688   
        HttpRequestWithRegexLiteralInputFuture {
41076  41689   
            inner: Box::pin(fut),
41077  41690   
        }
41078  41691   
    }
41079  41692   
}
       41693  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
41080  41694   
impl
41081  41695   
    ::aws_smithy_http_server::response::IntoResponse<
41082  41696   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41083  41697   
    > for crate::output::HttpRequestWithRegexLiteralOutput
41084  41698   
{
41085  41699   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41086  41700   
        match crate::protocol_serde::shape_http_request_with_regex_literal::ser_http_request_with_regex_literal_http_response(self) {
41087  41701   
                        Ok(response) => response,
41088  41702   
                        Err(e) => {
41089  41703   
                            ::tracing::error!(error = %e, "failed to serialize response");
41090  41704   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41091  41705   
                        }
41092  41706   
                    }
41093  41707   
    }
41094  41708   
}
       41709  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
41095  41710   
impl
41096  41711   
    ::aws_smithy_http_server::response::IntoResponse<
41097  41712   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41098  41713   
    > for crate::error::HttpRequestWithRegexLiteralError
41099  41714   
{
41100  41715   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41101  41716   
        match crate::protocol_serde::shape_http_request_with_regex_literal::ser_http_request_with_regex_literal_http_error(&self) {
41102  41717   
            Ok(mut response) => {
41103  41718   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
41104  41719   
                response
41105  41720   
            },
41106  41721   
            Err(e) => {
41107  41722   
                ::tracing::error!(error = %e, "failed to serialize response");
41108  41723   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41109  41724   
            }
41110  41725   
        }
41111  41726   
    }
41112  41727   
}
41113  41728   
       41729  +
/* RustType.kt:516 */
41114  41730   
#[allow(unreachable_code, unused_variables)]
       41731  +
/* RustType.kt:516 */
41115  41732   
#[cfg(test)]
       41733  +
/* ProtocolTestGenerator.kt:98 */
41116  41734   
mod http_request_with_regex_literal_test {
41117  41735   
41118  41736   
    /// Path matching is not broken by regex expressions in literal segments
41119  41737   
    /// Test ID: RestJsonToleratesRegexCharsInSegments
41120  41738   
    #[::tokio::test]
41121  41739   
    #[::tracing_test::traced_test]
41122  41740   
    async fn rest_json_tolerates_regex_chars_in_segments_request() {
41123  41741   
        #[allow(unused_mut)]
41124  41742   
        let mut http_request = http::Request::builder()
41125  41743   
            .uri("/ReDosLiteral/abc/(a+)+")
41126  41744   
            .method("GET")
41127  41745   
            .body(::aws_smithy_http_server::body::Body::from(
41128  41746   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
41129  41747   
                    "".as_bytes(),
41130  41748   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
41131  41749   
                )),
41132  41750   
            ))
41133  41751   
            .unwrap();
41134  41752   
        #[allow(unused_mut)]
41135  41753   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
41136  41754   
        let config = crate::service::RestJsonConfig::builder().build();
41137  41755   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
41138  41756   
            .http_request_with_regex_literal(
41139  41757   
                move |input: crate::input::HttpRequestWithRegexLiteralInput| {
41140  41758   
                    let sender = sender.clone();
41141  41759   
                    async move {
41142  41760   
                        let result = {
41143  41761   
                            let expected = crate::input::HttpRequestWithRegexLiteralInput {
41144  41762   
                                str: "abc".to_owned(),
41145  41763   
                            };
41146  41764   
                            ::pretty_assertions::assert_eq!(input, expected);
41147  41765   
                            let output = crate::output::HttpRequestWithRegexLiteralOutput {};
41148  41766   
                            Ok(output)
41149  41767   
                        };
41150  41768   
                        sender.send(()).await.expect("receiver dropped early");
41151  41769   
                        result
41152  41770   
                    }
41153  41771   
                },
41154  41772   
            )
41155  41773   
            .build_unchecked();
41156  41774   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
41157  41775   
            .await
41158  41776   
            .expect("unable to make an HTTP request");
41159  41777   
        assert!(
41160  41778   
            receiver.recv().await.is_some(),
41161  41779   
            "we expected operation handler to be invoked but it was not entered"
41162  41780   
        );
41163  41781   
    }
       41782  +
       41783  +
    /* ProtocolTestGenerator.kt:98 */
41164  41784   
}
41165  41785   
       41786  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
41166  41787   
const CONTENT_TYPE_HTTPREQUESTWITHFLOATLABELS: ::mime::Mime = ::mime::APPLICATION_JSON;
41167  41788   
::pin_project_lite::pin_project! {
41168  41789   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
41169  41790   
    /// [`HttpRequestWithFloatLabelsInput`](crate::input::HttpRequestWithFloatLabelsInput) using modelled bindings.
41170  41791   
    pub struct HttpRequestWithFloatLabelsInputFuture {
41171  41792   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpRequestWithFloatLabelsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
41172  41793   
    }
41173  41794   
}
41174  41795   
41175  41796   
impl std::future::Future for HttpRequestWithFloatLabelsInputFuture {
@@ -41202,41823 +41297,41923 @@
41222  41843   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
41223  41844   
                    e,
41224  41845   
                )
41225  41846   
            },
41226  41847   
        );
41227  41848   
        HttpRequestWithFloatLabelsInputFuture {
41228  41849   
            inner: Box::pin(fut),
41229  41850   
        }
41230  41851   
    }
41231  41852   
}
       41853  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
41232  41854   
impl
41233  41855   
    ::aws_smithy_http_server::response::IntoResponse<
41234  41856   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41235  41857   
    > for crate::output::HttpRequestWithFloatLabelsOutput
41236  41858   
{
41237  41859   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41238  41860   
        match crate::protocol_serde::shape_http_request_with_float_labels::ser_http_request_with_float_labels_http_response(self) {
41239  41861   
                        Ok(response) => response,
41240  41862   
                        Err(e) => {
41241  41863   
                            ::tracing::error!(error = %e, "failed to serialize response");
41242  41864   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41243  41865   
                        }
41244  41866   
                    }
41245  41867   
    }
41246  41868   
}
       41869  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
41247  41870   
impl
41248  41871   
    ::aws_smithy_http_server::response::IntoResponse<
41249  41872   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41250  41873   
    > for crate::error::HttpRequestWithFloatLabelsError
41251  41874   
{
41252  41875   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41253  41876   
        match crate::protocol_serde::shape_http_request_with_float_labels::ser_http_request_with_float_labels_http_error(&self) {
41254  41877   
            Ok(mut response) => {
41255  41878   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
41256  41879   
                response
41257  41880   
            },
41258  41881   
            Err(e) => {
41259  41882   
                ::tracing::error!(error = %e, "failed to serialize response");
41260  41883   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41261  41884   
            }
41262  41885   
        }
41263  41886   
    }
41264  41887   
}
41265  41888   
       41889  +
/* RustType.kt:516 */
41266  41890   
#[allow(unreachable_code, unused_variables)]
       41891  +
/* RustType.kt:516 */
41267  41892   
#[cfg(test)]
       41893  +
/* ProtocolTestGenerator.kt:98 */
41268  41894   
mod http_request_with_float_labels_test {
41269  41895   
41270  41896   
    /// Supports handling NaN float label values.
41271  41897   
    /// Test ID: RestJsonSupportsNaNFloatLabels
41272  41898   
    #[::tokio::test]
41273  41899   
    #[::tracing_test::traced_test]
41274  41900   
    async fn rest_json_supports_na_n_float_labels_request() {
41275  41901   
        #[allow(unused_mut)]
41276  41902   
        let mut http_request = http::Request::builder()
41277  41903   
            .uri("/FloatHttpLabels/NaN/NaN")
@@ -41410,42036 +41471,42100 @@
41430  42056   
                        })
41431  42057   
                        .build_unchecked();
41432  42058   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
41433  42059   
            .await
41434  42060   
            .expect("unable to make an HTTP request");
41435  42061   
        assert!(
41436  42062   
            receiver.recv().await.is_some(),
41437  42063   
            "we expected operation handler to be invoked but it was not entered"
41438  42064   
        );
41439  42065   
    }
       42066  +
       42067  +
    /* ProtocolTestGenerator.kt:98 */
41440  42068   
}
41441  42069   
       42070  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
41442  42071   
const CONTENT_TYPE_HTTPREQUESTWITHGREEDYLABELINPATH: ::mime::Mime = ::mime::APPLICATION_JSON;
41443  42072   
::pin_project_lite::pin_project! {
41444  42073   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
41445  42074   
    /// [`HttpRequestWithGreedyLabelInPathInput`](crate::input::HttpRequestWithGreedyLabelInPathInput) using modelled bindings.
41446  42075   
    pub struct HttpRequestWithGreedyLabelInPathInputFuture {
41447  42076   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpRequestWithGreedyLabelInPathInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
41448  42077   
    }
41449  42078   
}
41450  42079   
41451  42080   
impl std::future::Future for HttpRequestWithGreedyLabelInPathInputFuture {
@@ -41478,42107 +41624,42261 @@
41498  42127   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
41499  42128   
                    e,
41500  42129   
                )
41501  42130   
            },
41502  42131   
        );
41503  42132   
        HttpRequestWithGreedyLabelInPathInputFuture {
41504  42133   
            inner: Box::pin(fut),
41505  42134   
        }
41506  42135   
    }
41507  42136   
}
       42137  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
41508  42138   
impl
41509  42139   
    ::aws_smithy_http_server::response::IntoResponse<
41510  42140   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41511  42141   
    > for crate::output::HttpRequestWithGreedyLabelInPathOutput
41512  42142   
{
41513  42143   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41514  42144   
        match crate::protocol_serde::shape_http_request_with_greedy_label_in_path::ser_http_request_with_greedy_label_in_path_http_response(self) {
41515  42145   
                        Ok(response) => response,
41516  42146   
                        Err(e) => {
41517  42147   
                            ::tracing::error!(error = %e, "failed to serialize response");
41518  42148   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41519  42149   
                        }
41520  42150   
                    }
41521  42151   
    }
41522  42152   
}
       42153  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
41523  42154   
impl
41524  42155   
    ::aws_smithy_http_server::response::IntoResponse<
41525  42156   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41526  42157   
    > for crate::error::HttpRequestWithGreedyLabelInPathError
41527  42158   
{
41528  42159   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41529  42160   
        match crate::protocol_serde::shape_http_request_with_greedy_label_in_path::ser_http_request_with_greedy_label_in_path_http_error(&self) {
41530  42161   
            Ok(mut response) => {
41531  42162   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
41532  42163   
                response
41533  42164   
            },
41534  42165   
            Err(e) => {
41535  42166   
                ::tracing::error!(error = %e, "failed to serialize response");
41536  42167   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41537  42168   
            }
41538  42169   
        }
41539  42170   
    }
41540  42171   
}
41541  42172   
       42173  +
/* RustType.kt:516 */
41542  42174   
#[allow(unreachable_code, unused_variables)]
       42175  +
/* RustType.kt:516 */
41543  42176   
#[cfg(test)]
       42177  +
/* ProtocolTestGenerator.kt:98 */
41544  42178   
mod http_request_with_greedy_label_in_path_test {
41545  42179   
41546  42180   
    /// Serializes greedy labels and normal labels
41547  42181   
    /// Test ID: RestJsonHttpRequestWithGreedyLabelInPath
41548  42182   
    #[::tokio::test]
41549  42183   
    #[::tracing_test::traced_test]
41550  42184   
    async fn rest_json_http_request_with_greedy_label_in_path_request() {
41551  42185   
        #[allow(unused_mut)]
41552  42186   
        let mut http_request = http::Request::builder()
41553  42187   
            .uri("/HttpRequestWithGreedyLabelInPath/foo/hello%2Fescape/baz/there/guy")
41554  42188   
            .method("GET")
41555  42189   
            .body(::aws_smithy_http_server::body::Body::from(
41556  42190   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
41557  42191   
                    "".as_bytes(),
41558  42192   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
41559  42193   
                )),
41560  42194   
            ))
41561  42195   
            .unwrap();
41562  42196   
        #[allow(unused_mut)]
41563  42197   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
41564  42198   
        let config = crate::service::RestJsonConfig::builder().build();
41565  42199   
        let service = crate::service::RestJson::builder::<::hyper::body::Body, _, _, _>(config)
41566  42200   
            .http_request_with_greedy_label_in_path(
41567  42201   
                move |input: crate::input::HttpRequestWithGreedyLabelInPathInput| {
41568  42202   
                    let sender = sender.clone();
41569  42203   
                    async move {
41570  42204   
                        let result = {
41571  42205   
                            let expected = crate::input::HttpRequestWithGreedyLabelInPathInput {
41572  42206   
                                foo: "hello/escape".to_owned(),
41573  42207   
                                baz: "there/guy".to_owned(),
41574  42208   
                            };
41575  42209   
                            ::pretty_assertions::assert_eq!(input, expected);
41576  42210   
                            let output = crate::output::HttpRequestWithGreedyLabelInPathOutput {};
41577  42211   
                            Ok(output)
41578  42212   
                        };
41579  42213   
                        sender.send(()).await.expect("receiver dropped early");
41580  42214   
                        result
41581  42215   
                    }
41582  42216   
                },
41583  42217   
            )
41584  42218   
            .build_unchecked();
41585  42219   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
41586  42220   
            .await
41587  42221   
            .expect("unable to make an HTTP request");
41588  42222   
        assert!(
41589  42223   
            receiver.recv().await.is_some(),
41590  42224   
            "we expected operation handler to be invoked but it was not entered"
41591  42225   
        );
41592  42226   
    }
       42227  +
       42228  +
    /* ProtocolTestGenerator.kt:98 */
41593  42229   
}
41594  42230   
       42231  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
41595  42232   
const CONTENT_TYPE_HTTPREQUESTWITHLABELSANDTIMESTAMPFORMAT: ::mime::Mime = ::mime::APPLICATION_JSON;
41596  42233   
::pin_project_lite::pin_project! {
41597  42234   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
41598  42235   
    /// [`HttpRequestWithLabelsAndTimestampFormatInput`](crate::input::HttpRequestWithLabelsAndTimestampFormatInput) using modelled bindings.
41599  42236   
    pub struct HttpRequestWithLabelsAndTimestampFormatInputFuture {
41600  42237   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpRequestWithLabelsAndTimestampFormatInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
41601  42238   
    }
41602  42239   
}
41603  42240   
41604  42241   
impl std::future::Future for HttpRequestWithLabelsAndTimestampFormatInputFuture {
@@ -41631,42268 +41726,42368 @@
41651  42288   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
41652  42289   
                    e,
41653  42290   
                )
41654  42291   
            },
41655  42292   
        );
41656  42293   
        HttpRequestWithLabelsAndTimestampFormatInputFuture {
41657  42294   
            inner: Box::pin(fut),
41658  42295   
        }
41659  42296   
    }
41660  42297   
}
       42298  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
41661  42299   
impl
41662  42300   
    ::aws_smithy_http_server::response::IntoResponse<
41663  42301   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41664  42302   
    > for crate::output::HttpRequestWithLabelsAndTimestampFormatOutput
41665  42303   
{
41666  42304   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41667  42305   
        match crate::protocol_serde::shape_http_request_with_labels_and_timestamp_format::ser_http_request_with_labels_and_timestamp_format_http_response(self) {
41668  42306   
                        Ok(response) => response,
41669  42307   
                        Err(e) => {
41670  42308   
                            ::tracing::error!(error = %e, "failed to serialize response");
41671  42309   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41672  42310   
                        }
41673  42311   
                    }
41674  42312   
    }
41675  42313   
}
       42314  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
41676  42315   
impl
41677  42316   
    ::aws_smithy_http_server::response::IntoResponse<
41678  42317   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41679  42318   
    > for crate::error::HttpRequestWithLabelsAndTimestampFormatError
41680  42319   
{
41681  42320   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41682  42321   
        match crate::protocol_serde::shape_http_request_with_labels_and_timestamp_format::ser_http_request_with_labels_and_timestamp_format_http_error(&self) {
41683  42322   
            Ok(mut response) => {
41684  42323   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
41685  42324   
                response
41686  42325   
            },
41687  42326   
            Err(e) => {
41688  42327   
                ::tracing::error!(error = %e, "failed to serialize response");
41689  42328   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41690  42329   
            }
41691  42330   
        }
41692  42331   
    }
41693  42332   
}
41694  42333   
       42334  +
/* RustType.kt:516 */
41695  42335   
#[allow(unreachable_code, unused_variables)]
       42336  +
/* RustType.kt:516 */
41696  42337   
#[cfg(test)]
       42338  +
/* ProtocolTestGenerator.kt:98 */
41697  42339   
mod http_request_with_labels_and_timestamp_format_test {
41698  42340   
41699  42341   
    /// Serializes different timestamp formats in URI labels
41700  42342   
    /// Test ID: RestJsonHttpRequestWithLabelsAndTimestampFormat
41701  42343   
    #[::tokio::test]
41702  42344   
    #[::tracing_test::traced_test]
41703  42345   
    async fn rest_json_http_request_with_labels_and_timestamp_format_request() {
41704  42346   
        #[allow(unused_mut)]
41705  42347   
                    let mut http_request = http::Request::builder()
41706  42348   
                        .uri("/HttpRequestWithLabelsAndTimestampFormat/1576540098/Mon%2C%2016%20Dec%202019%2023%3A48%3A18%20GMT/2019-12-16T23%3A48%3A18Z/2019-12-16T23%3A48%3A18Z/1576540098/Mon%2C%2016%20Dec%202019%2023%3A48%3A18%20GMT/2019-12-16T23%3A48%3A18Z")
@@ -41740,42382 +41801,42446 @@
41760  42402   
                )
41761  42403   
                .build_unchecked();
41762  42404   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
41763  42405   
            .await
41764  42406   
            .expect("unable to make an HTTP request");
41765  42407   
        assert!(
41766  42408   
            receiver.recv().await.is_some(),
41767  42409   
            "we expected operation handler to be invoked but it was not entered"
41768  42410   
        );
41769  42411   
    }
       42412  +
       42413  +
    /* ProtocolTestGenerator.kt:98 */
41770  42414   
}
41771  42415   
       42416  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
41772  42417   
const CONTENT_TYPE_HTTPREQUESTWITHLABELS: ::mime::Mime = ::mime::APPLICATION_JSON;
41773  42418   
::pin_project_lite::pin_project! {
41774  42419   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
41775  42420   
    /// [`HttpRequestWithLabelsInput`](crate::input::HttpRequestWithLabelsInput) using modelled bindings.
41776  42421   
    pub struct HttpRequestWithLabelsInputFuture {
41777  42422   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HttpRequestWithLabelsInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
41778  42423   
    }
41779  42424   
}
41780  42425   
41781  42426   
impl std::future::Future for HttpRequestWithLabelsInputFuture {
@@ -41808,42453 +41903,42553 @@
41828  42473   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
41829  42474   
                    e,
41830  42475   
                )
41831  42476   
            },
41832  42477   
        );
41833  42478   
        HttpRequestWithLabelsInputFuture {
41834  42479   
            inner: Box::pin(fut),
41835  42480   
        }
41836  42481   
    }
41837  42482   
}
       42483  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
41838  42484   
impl
41839  42485   
    ::aws_smithy_http_server::response::IntoResponse<
41840  42486   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41841  42487   
    > for crate::output::HttpRequestWithLabelsOutput
41842  42488   
{
41843  42489   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41844  42490   
        match crate::protocol_serde::shape_http_request_with_labels::ser_http_request_with_labels_http_response(self) {
41845  42491   
                        Ok(response) => response,
41846  42492   
                        Err(e) => {
41847  42493   
                            ::tracing::error!(error = %e, "failed to serialize response");
41848  42494   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41849  42495   
                        }
41850  42496   
                    }
41851  42497   
    }
41852  42498   
}
       42499  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
41853  42500   
impl
41854  42501   
    ::aws_smithy_http_server::response::IntoResponse<
41855  42502   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
41856  42503   
    > for crate::error::HttpRequestWithLabelsError
41857  42504   
{
41858  42505   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
41859  42506   
        match crate::protocol_serde::shape_http_request_with_labels::ser_http_request_with_labels_http_error(&self) {
41860  42507   
            Ok(mut response) => {
41861  42508   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
41862  42509   
                response
41863  42510   
            },
41864  42511   
            Err(e) => {
41865  42512   
                ::tracing::error!(error = %e, "failed to serialize response");
41866  42513   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
41867  42514   
            }
41868  42515   
        }
41869  42516   
    }
41870  42517   
}
41871  42518   
       42519  +
/* RustType.kt:516 */
41872  42520   
#[allow(unreachable_code, unused_variables)]
       42521  +
/* RustType.kt:516 */
41873  42522   
#[cfg(test)]
       42523  +
/* ProtocolTestGenerator.kt:98 */
41874  42524   
mod http_request_with_labels_test {
41875  42525   
41876  42526   
    /// Sends a GET request that uses URI label bindings
41877  42527   
    /// Test ID: RestJsonInputWithHeadersAndAllParams
41878  42528   
    #[::tokio::test]
41879  42529   
    #[::tracing_test::traced_test]
41880  42530   
    async fn rest_json_input_with_headers_and_all_params_request() {
41881  42531   
        #[allow(unused_mut)]
41882  42532   
        let mut http_request = http::Request::builder()
41883  42533   
            .uri("/HttpRequestWithLabels/string/1/2/3/4.1/5.1/true/2019-12-16T23%3A48%3A18Z")
@@ -42035,42685 +42096,42749 @@
42055  42705   
            })
42056  42706   
            .build_unchecked();
42057  42707   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
42058  42708   
            .await
42059  42709   
            .expect("unable to make an HTTP request");
42060  42710   
        assert!(
42061  42711   
            receiver.recv().await.is_some(),
42062  42712   
            "we expected operation handler to be invoked but it was not entered"
42063  42713   
        );
42064  42714   
    }
       42715  +
       42716  +
    /* ProtocolTestGenerator.kt:98 */
42065  42717   
}
42066  42718   
       42719  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
42067  42720   
const CONTENT_TYPE_MEDIATYPEHEADER: ::mime::Mime = ::mime::APPLICATION_JSON;
42068  42721   
::pin_project_lite::pin_project! {
42069  42722   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
42070  42723   
    /// [`MediaTypeHeaderInput`](crate::input::MediaTypeHeaderInput) using modelled bindings.
42071  42724   
    pub struct MediaTypeHeaderInputFuture {
42072  42725   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::MediaTypeHeaderInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
42073  42726   
    }
42074  42727   
}
42075  42728   
42076  42729   
impl std::future::Future for MediaTypeHeaderInputFuture {
@@ -42105,42758 +42184,42841 @@
42125  42778   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
42126  42779   
                    e,
42127  42780   
                )
42128  42781   
            },
42129  42782   
        );
42130  42783   
        MediaTypeHeaderInputFuture {
42131  42784   
            inner: Box::pin(fut),
42132  42785   
        }
42133  42786   
    }
42134  42787   
}
       42788  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
42135  42789   
impl
42136  42790   
    ::aws_smithy_http_server::response::IntoResponse<
42137  42791   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
42138  42792   
    > for crate::output::MediaTypeHeaderOutput
42139  42793   
{
42140  42794   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
42141  42795   
        match crate::protocol_serde::shape_media_type_header::ser_media_type_header_http_response(
42142  42796   
            self,
42143  42797   
        ) {
42144  42798   
            Ok(response) => response,
42145  42799   
            Err(e) => {
42146  42800   
                ::tracing::error!(error = %e, "failed to serialize response");
42147  42801   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
42148  42802   
            }
42149  42803   
        }
42150  42804   
    }
42151  42805   
}
42152  42806   
       42807  +
/* RustType.kt:516 */
42153  42808   
#[allow(unreachable_code, unused_variables)]
       42809  +
/* RustType.kt:516 */
42154  42810   
#[cfg(test)]
       42811  +
/* ProtocolTestGenerator.kt:98 */
42155  42812   
mod media_type_header_test {
42156  42813   
42157  42814   
    /// Headers that target strings with a mediaType are base64 encoded
42158  42815   
    /// Test ID: MediaTypeHeaderInputBase64
42159  42816   
    #[::tokio::test]
42160  42817   
    #[::tracing_test::traced_test]
42161  42818   
    async fn media_type_header_input_base64_request() {
42162  42819   
        #[allow(unused_mut)]
42163  42820   
        let mut http_request = http::Request::builder()
42164  42821   
            .uri("/MediaTypeHeader")
@@ -42195,42852 +42256,42916 @@
42215  42872   
        ::pretty_assertions::assert_eq!(
42216  42873   
            http::StatusCode::from_u16(200).expect("invalid expected HTTP status code"),
42217  42874   
            http_response.status()
42218  42875   
        );
42219  42876   
        let expected_headers = [("X-Json", "dHJ1ZQ==")];
42220  42877   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
42221  42878   
            http_response.headers(),
42222  42879   
            expected_headers,
42223  42880   
        ));
42224  42881   
    }
       42882  +
       42883  +
    /* ProtocolTestGenerator.kt:98 */
42225  42884   
}
42226  42885   
       42886  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
42227  42887   
const CONTENT_TYPE_TIMESTAMPFORMATHEADERS: ::mime::Mime = ::mime::APPLICATION_JSON;
42228  42888   
::pin_project_lite::pin_project! {
42229  42889   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
42230  42890   
    /// [`TimestampFormatHeadersInput`](crate::input::TimestampFormatHeadersInput) using modelled bindings.
42231  42891   
    pub struct TimestampFormatHeadersInputFuture {
42232  42892   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::TimestampFormatHeadersInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
42233  42893   
    }
42234  42894   
}
42235  42895   
42236  42896   
impl std::future::Future for TimestampFormatHeadersInputFuture {
@@ -42263,42923 +42340,43004 @@
42283  42943   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
42284  42944   
                    e,
42285  42945   
                )
42286  42946   
            },
42287  42947   
        );
42288  42948   
        TimestampFormatHeadersInputFuture {
42289  42949   
            inner: Box::pin(fut),
42290  42950   
        }
42291  42951   
    }
42292  42952   
}
       42953  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
42293  42954   
impl
42294  42955   
    ::aws_smithy_http_server::response::IntoResponse<
42295  42956   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
42296  42957   
    > for crate::output::TimestampFormatHeadersOutput
42297  42958   
{
42298  42959   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
42299  42960   
        match crate::protocol_serde::shape_timestamp_format_headers::ser_timestamp_format_headers_http_response(self) {
42300  42961   
                        Ok(response) => response,
42301  42962   
                        Err(e) => {
42302  42963   
                            ::tracing::error!(error = %e, "failed to serialize response");
42303  42964   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
42304  42965   
                        }
42305  42966   
                    }
42306  42967   
    }
42307  42968   
}
42308  42969   
       42970  +
/* RustType.kt:516 */
42309  42971   
#[allow(unreachable_code, unused_variables)]
       42972  +
/* RustType.kt:516 */
42310  42973   
#[cfg(test)]
       42974  +
/* ProtocolTestGenerator.kt:98 */
42311  42975   
mod timestamp_format_headers_test {
42312  42976   
42313  42977   
    /// Tests how timestamp request headers are serialized
42314  42978   
    /// Test ID: RestJsonTimestampFormatHeaders
42315  42979   
    #[::tokio::test]
42316  42980   
    #[::tracing_test::traced_test]
42317  42981   
    async fn rest_json_timestamp_format_headers_request() {
42318  42982   
        #[allow(unused_mut)]
42319  42983   
        let mut http_request = http::Request::builder()
42320  42984   
            .uri("/TimestampFormatHeaders")
@@ -42425,43089 +42486,43153 @@
42445  43109   
            ("X-memberHttpDate", "Mon, 16 Dec 2019 23:48:18 GMT"),
42446  43110   
            ("X-targetDateTime", "2019-12-16T23:48:18Z"),
42447  43111   
            ("X-targetEpochSeconds", "1576540098"),
42448  43112   
            ("X-targetHttpDate", "Mon, 16 Dec 2019 23:48:18 GMT"),
42449  43113   
        ];
42450  43114   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
42451  43115   
            http_response.headers(),
42452  43116   
            expected_headers,
42453  43117   
        ));
42454  43118   
    }
       43119  +
       43120  +
    /* ProtocolTestGenerator.kt:98 */
42455  43121   
}
42456  43122   
       43123  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
42457  43124   
const CONTENT_TYPE_NULLANDEMPTYHEADERSSERVER: ::mime::Mime = ::mime::APPLICATION_JSON;
42458  43125   
::pin_project_lite::pin_project! {
42459  43126   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
42460  43127   
    /// [`NullAndEmptyHeadersServerInput`](crate::input::NullAndEmptyHeadersServerInput) using modelled bindings.
42461  43128   
    pub struct NullAndEmptyHeadersServerInputFuture {
42462  43129   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::NullAndEmptyHeadersServerInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
42463  43130   
    }
42464  43131   
}
42465  43132   
42466  43133   
impl std::future::Future for NullAndEmptyHeadersServerInputFuture {
@@ -42493,43160 +42596,43270 @@
42513  43180   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
42514  43181   
                    e,
42515  43182   
                )
42516  43183   
            },
42517  43184   
        );
42518  43185   
        NullAndEmptyHeadersServerInputFuture {
42519  43186   
            inner: Box::pin(fut),
42520  43187   
        }
42521  43188   
    }
42522  43189   
}
       43190  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
42523  43191   
impl
42524  43192   
    ::aws_smithy_http_server::response::IntoResponse<
42525  43193   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
42526  43194   
    > for crate::output::NullAndEmptyHeadersServerOutput
42527  43195   
{
42528  43196   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
42529  43197   
        match crate::protocol_serde::shape_null_and_empty_headers_server::ser_null_and_empty_headers_server_http_response(self) {
42530  43198   
                        Ok(response) => response,
42531  43199   
                        Err(e) => {
42532  43200   
                            ::tracing::error!(error = %e, "failed to serialize response");
42533  43201   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
42534  43202   
                        }
42535  43203   
                    }
42536  43204   
    }
42537  43205   
}
42538  43206   
       43207  +
/* RustType.kt:516 */
42539  43208   
#[allow(unreachable_code, unused_variables)]
       43209  +
/* RustType.kt:516 */
42540  43210   
#[cfg(test)]
       43211  +
/* ProtocolTestGenerator.kt:98 */
42541  43212   
mod null_and_empty_headers_server_test {
42542  43213   
42543  43214   
    /// Do not send null or empty headers
42544  43215   
    /// Test ID: RestJsonNullAndEmptyHeaders
42545  43216   
    #[::tokio::test]
42546  43217   
    #[::tracing_test::traced_test]
42547  43218   
    async fn rest_json_null_and_empty_headers_response() {
42548  43219   
        let output = crate::output::NullAndEmptyHeadersServerOutput {
42549  43220   
            a: ::std::option::Option::None,
42550  43221   
            b: ::std::option::Option::Some("".to_owned()),
42551  43222   
            c: ::std::option::Option::Some(vec![]),
42552  43223   
        };
42553  43224   
        use ::aws_smithy_http_server::response::IntoResponse;
42554  43225   
        let http_response = output.into_response();
42555  43226   
        ::pretty_assertions::assert_eq!(
42556  43227   
            http::StatusCode::from_u16(200).expect("invalid expected HTTP status code"),
42557  43228   
            http_response.status()
42558  43229   
        );
42559  43230   
        let forbidden_headers = &["X-A", "X-B", "X-C"];
42560  43231   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::forbid_headers(
42561  43232   
            http_response.headers(),
42562  43233   
            forbidden_headers,
42563  43234   
        ));
42564  43235   
    }
       43236  +
       43237  +
    /* ProtocolTestGenerator.kt:98 */
42565  43238   
}
42566  43239   
       43240  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
42567  43241   
const CONTENT_TYPE_NULLANDEMPTYHEADERSCLIENT: ::mime::Mime = ::mime::APPLICATION_JSON;
42568  43242   
::pin_project_lite::pin_project! {
42569  43243   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
42570  43244   
    /// [`NullAndEmptyHeadersClientInput`](crate::input::NullAndEmptyHeadersClientInput) using modelled bindings.
42571  43245   
    pub struct NullAndEmptyHeadersClientInputFuture {
42572  43246   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::NullAndEmptyHeadersClientInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
42573  43247   
    }
42574  43248   
}
42575  43249   
42576  43250   
impl std::future::Future for NullAndEmptyHeadersClientInputFuture {
@@ -42603,43277 +42678,43354 @@
42623  43297   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
42624  43298   
                    e,
42625  43299   
                )
42626  43300   
            },
42627  43301   
        );
42628  43302   
        NullAndEmptyHeadersClientInputFuture {
42629  43303   
            inner: Box::pin(fut),
42630  43304   
        }
42631  43305   
    }
42632  43306   
}
       43307  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
42633  43308   
impl
42634  43309   
    ::aws_smithy_http_server::response::IntoResponse<
42635  43310   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
42636  43311   
    > for crate::output::NullAndEmptyHeadersClientOutput
42637  43312   
{
42638  43313   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
42639  43314   
        match crate::protocol_serde::shape_null_and_empty_headers_client::ser_null_and_empty_headers_client_http_response(self) {
42640  43315   
                        Ok(response) => response,
42641  43316   
                        Err(e) => {
42642  43317   
                            ::tracing::error!(error = %e, "failed to serialize response");
42643  43318   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
42644  43319   
                        }
42645  43320   
                    }
42646  43321   
    }
42647  43322   
}
42648  43323   
       43324  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
42649  43325   
const CONTENT_TYPE_INPUTANDOUTPUTWITHHEADERS: ::mime::Mime = ::mime::APPLICATION_JSON;
42650  43326   
::pin_project_lite::pin_project! {
42651  43327   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
42652  43328   
    /// [`InputAndOutputWithHeadersInput`](crate::input::InputAndOutputWithHeadersInput) using modelled bindings.
42653  43329   
    pub struct InputAndOutputWithHeadersInputFuture {
42654  43330   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::InputAndOutputWithHeadersInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
42655  43331   
    }
42656  43332   
}
42657  43333   
42658  43334   
impl std::future::Future for InputAndOutputWithHeadersInputFuture {
@@ -42685,43361 +42780,43461 @@
42705  43381   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
42706  43382   
                    e,
42707  43383   
                )
42708  43384   
            },
42709  43385   
        );
42710  43386   
        InputAndOutputWithHeadersInputFuture {
42711  43387   
            inner: Box::pin(fut),
42712  43388   
        }
42713  43389   
    }
42714  43390   
}
       43391  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
42715  43392   
impl
42716  43393   
    ::aws_smithy_http_server::response::IntoResponse<
42717  43394   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
42718  43395   
    > for crate::output::InputAndOutputWithHeadersOutput
42719  43396   
{
42720  43397   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
42721  43398   
        match crate::protocol_serde::shape_input_and_output_with_headers::ser_input_and_output_with_headers_http_response(self) {
42722  43399   
                        Ok(response) => response,
42723  43400   
                        Err(e) => {
42724  43401   
                            ::tracing::error!(error = %e, "failed to serialize response");
42725  43402   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
42726  43403   
                        }
42727  43404   
                    }
42728  43405   
    }
42729  43406   
}
       43407  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
42730  43408   
impl
42731  43409   
    ::aws_smithy_http_server::response::IntoResponse<
42732  43410   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
42733  43411   
    > for crate::error::InputAndOutputWithHeadersError
42734  43412   
{
42735  43413   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
42736  43414   
        match crate::protocol_serde::shape_input_and_output_with_headers::ser_input_and_output_with_headers_http_error(&self) {
42737  43415   
            Ok(mut response) => {
42738  43416   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
42739  43417   
                response
42740  43418   
            },
42741  43419   
            Err(e) => {
42742  43420   
                ::tracing::error!(error = %e, "failed to serialize response");
42743  43421   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
42744  43422   
            }
42745  43423   
        }
42746  43424   
    }
42747  43425   
}
42748  43426   
       43427  +
/* RustType.kt:516 */
42749  43428   
#[allow(unreachable_code, unused_variables)]
       43429  +
/* RustType.kt:516 */
42750  43430   
#[cfg(test)]
       43431  +
/* ProtocolTestGenerator.kt:98 */
42751  43432   
mod input_and_output_with_headers_test {
42752  43433   
42753  43434   
    /// Tests requests with string header bindings
42754  43435   
    /// Test ID: RestJsonInputAndOutputWithStringHeaders
42755  43436   
    #[::tokio::test]
42756  43437   
    #[::tracing_test::traced_test]
42757  43438   
    async fn rest_json_input_and_output_with_string_headers_request() {
42758  43439   
        #[allow(unused_mut)]
42759  43440   
        let mut http_request = http::Request::builder()
42760  43441   
            .uri("/InputAndOutputWithHeaders")
@@ -44995,45676 +45056,45740 @@
45015  45696   
        ::pretty_assertions::assert_eq!(
45016  45697   
            http::StatusCode::from_u16(200).expect("invalid expected HTTP status code"),
45017  45698   
            http_response.status()
45018  45699   
        );
45019  45700   
        let expected_headers = [("X-Double", "-Infinity"), ("X-Float", "-Infinity")];
45020  45701   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
45021  45702   
            http_response.headers(),
45022  45703   
            expected_headers,
45023  45704   
        ));
45024  45705   
    }
       45706  +
       45707  +
    /* ProtocolTestGenerator.kt:98 */
45025  45708   
}
45026  45709   
       45710  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
45027  45711   
const CONTENT_TYPE_UNITINPUTANDOUTPUT: ::mime::Mime = ::mime::APPLICATION_JSON;
45028  45712   
::pin_project_lite::pin_project! {
45029  45713   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
45030  45714   
    /// [`UnitInputAndOutputInput`](crate::input::UnitInputAndOutputInput) using modelled bindings.
45031  45715   
    pub struct UnitInputAndOutputInputFuture {
45032  45716   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::UnitInputAndOutputInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
45033  45717   
    }
45034  45718   
}
45035  45719   
45036  45720   
impl std::future::Future for UnitInputAndOutputInputFuture {
@@ -45063,45747 +45140,45828 @@
45083  45767   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
45084  45768   
                    e,
45085  45769   
                )
45086  45770   
            },
45087  45771   
        );
45088  45772   
        UnitInputAndOutputInputFuture {
45089  45773   
            inner: Box::pin(fut),
45090  45774   
        }
45091  45775   
    }
45092  45776   
}
       45777  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
45093  45778   
impl
45094  45779   
    ::aws_smithy_http_server::response::IntoResponse<
45095  45780   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
45096  45781   
    > for crate::output::UnitInputAndOutputOutput
45097  45782   
{
45098  45783   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
45099  45784   
        match crate::protocol_serde::shape_unit_input_and_output::ser_unit_input_and_output_http_response(self) {
45100  45785   
                        Ok(response) => response,
45101  45786   
                        Err(e) => {
45102  45787   
                            ::tracing::error!(error = %e, "failed to serialize response");
45103  45788   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
45104  45789   
                        }
45105  45790   
                    }
45106  45791   
    }
45107  45792   
}
45108  45793   
       45794  +
/* RustType.kt:516 */
45109  45795   
#[allow(unreachable_code, unused_variables)]
       45796  +
/* RustType.kt:516 */
45110  45797   
#[cfg(test)]
       45798  +
/* ProtocolTestGenerator.kt:98 */
45111  45799   
mod unit_input_and_output_test {
45112  45800   
45113  45801   
    /// A unit type input serializes no payload. When clients do not
45114  45802   
    /// need to serialize any data in the payload, they should omit
45115  45803   
    /// a payload altogether.
45116  45804   
    /// Test ID: RestJsonUnitInputAndOutput
45117  45805   
    #[::tokio::test]
45118  45806   
    #[::tracing_test::traced_test]
45119  45807   
    async fn rest_json_unit_input_and_output_request() {
45120  45808   
        #[allow(unused_mut)]
@@ -45193,45881 +45254,45945 @@
45213  45901   
        ::pretty_assertions::assert_eq!(
45214  45902   
            http::StatusCode::from_u16(200).expect("invalid expected HTTP status code"),
45215  45903   
            http_response.status()
45216  45904   
        );
45217  45905   
        let body = ::hyper::body::to_bytes(http_response.into_body())
45218  45906   
            .await
45219  45907   
            .expect("unable to extract body to bytes");
45220  45908   
        // No body.
45221  45909   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
45222  45910   
    }
       45911  +
       45912  +
    /* ProtocolTestGenerator.kt:98 */
45223  45913   
}
45224  45914   
       45915  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
45225  45916   
const CONTENT_TYPE_EMPTYINPUTANDEMPTYOUTPUT: ::mime::Mime = ::mime::APPLICATION_JSON;
45226  45917   
::pin_project_lite::pin_project! {
45227  45918   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
45228  45919   
    /// [`EmptyInputAndEmptyOutputInput`](crate::input::EmptyInputAndEmptyOutputInput) using modelled bindings.
45229  45920   
    pub struct EmptyInputAndEmptyOutputInputFuture {
45230  45921   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EmptyInputAndEmptyOutputInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
45231  45922   
    }
45232  45923   
}
45233  45924   
45234  45925   
impl std::future::Future for EmptyInputAndEmptyOutputInputFuture {
@@ -45261,45952 +45338,46033 @@
45281  45972   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
45282  45973   
                    e,
45283  45974   
                )
45284  45975   
            },
45285  45976   
        );
45286  45977   
        EmptyInputAndEmptyOutputInputFuture {
45287  45978   
            inner: Box::pin(fut),
45288  45979   
        }
45289  45980   
    }
45290  45981   
}
       45982  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
45291  45983   
impl
45292  45984   
    ::aws_smithy_http_server::response::IntoResponse<
45293  45985   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
45294  45986   
    > for crate::output::EmptyInputAndEmptyOutputOutput
45295  45987   
{
45296  45988   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
45297  45989   
        match crate::protocol_serde::shape_empty_input_and_empty_output::ser_empty_input_and_empty_output_http_response(self) {
45298  45990   
                        Ok(response) => response,
45299  45991   
                        Err(e) => {
45300  45992   
                            ::tracing::error!(error = %e, "failed to serialize response");
45301  45993   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
45302  45994   
                        }
45303  45995   
                    }
45304  45996   
    }
45305  45997   
}
45306  45998   
       45999  +
/* RustType.kt:516 */
45307  46000   
#[allow(unreachable_code, unused_variables)]
       46001  +
/* RustType.kt:516 */
45308  46002   
#[cfg(test)]
       46003  +
/* ProtocolTestGenerator.kt:98 */
45309  46004   
mod empty_input_and_empty_output_test {
45310  46005   
45311  46006   
    /// Clients should not serialize a JSON payload when no parameters
45312  46007   
    /// are given that are sent in the body. A service will tolerate
45313  46008   
    /// clients that omit a payload or that send a JSON object.
45314  46009   
    /// Test ID: RestJsonEmptyInputAndEmptyOutput
45315  46010   
    #[::tokio::test]
45316  46011   
    #[::tracing_test::traced_test]
45317  46012   
    async fn rest_json_empty_input_and_empty_output_request() {
45318  46013   
        #[allow(unused_mut)]
@@ -45403,46098 +45464,46162 @@
45423  46118   
        ));
45424  46119   
        let body = ::hyper::body::to_bytes(http_response.into_body())
45425  46120   
            .await
45426  46121   
            .expect("unable to extract body to bytes");
45427  46122   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
45428  46123   
            &body,
45429  46124   
            "{}",
45430  46125   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
45431  46126   
        ));
45432  46127   
    }
       46128  +
       46129  +
    /* ProtocolTestGenerator.kt:98 */
45433  46130   
}
45434  46131   
       46132  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
45435  46133   
const CONTENT_TYPE_NOINPUTANDOUTPUT: ::mime::Mime = ::mime::APPLICATION_JSON;
45436  46134   
::pin_project_lite::pin_project! {
45437  46135   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
45438  46136   
    /// [`NoInputAndOutputInput`](crate::input::NoInputAndOutputInput) using modelled bindings.
45439  46137   
    pub struct NoInputAndOutputInputFuture {
45440  46138   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::NoInputAndOutputInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
45441  46139   
    }
45442  46140   
}
45443  46141   
45444  46142   
impl std::future::Future for NoInputAndOutputInputFuture {
@@ -45473,46171 +45550,46252 @@
45493  46191   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
45494  46192   
                    e,
45495  46193   
                )
45496  46194   
            },
45497  46195   
        );
45498  46196   
        NoInputAndOutputInputFuture {
45499  46197   
            inner: Box::pin(fut),
45500  46198   
        }
45501  46199   
    }
45502  46200   
}
       46201  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
45503  46202   
impl
45504  46203   
    ::aws_smithy_http_server::response::IntoResponse<
45505  46204   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
45506  46205   
    > for crate::output::NoInputAndOutputOutput
45507  46206   
{
45508  46207   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
45509  46208   
        match crate::protocol_serde::shape_no_input_and_output::ser_no_input_and_output_http_response(self) {
45510  46209   
                        Ok(response) => response,
45511  46210   
                        Err(e) => {
45512  46211   
                            ::tracing::error!(error = %e, "failed to serialize response");
45513  46212   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
45514  46213   
                        }
45515  46214   
                    }
45516  46215   
    }
45517  46216   
}
45518  46217   
       46218  +
/* RustType.kt:516 */
45519  46219   
#[allow(unreachable_code, unused_variables)]
       46220  +
/* RustType.kt:516 */
45520  46221   
#[cfg(test)]
       46222  +
/* ProtocolTestGenerator.kt:98 */
45521  46223   
mod no_input_and_output_test {
45522  46224   
45523  46225   
    /// No input serializes no payload. When clients do not need to
45524  46226   
    /// serialize any data in the payload, they should omit a payload
45525  46227   
    /// altogether.
45526  46228   
    /// Test ID: RestJsonNoInputAndOutput
45527  46229   
    #[::tokio::test]
45528  46230   
    #[::tracing_test::traced_test]
45529  46231   
    async fn rest_json_no_input_and_output_request() {
45530  46232   
        #[allow(unused_mut)]
@@ -45610,46312 +45671,46376 @@
45630  46332   
        ));
45631  46333   
        let body = ::hyper::body::to_bytes(http_response.into_body())
45632  46334   
            .await
45633  46335   
            .expect("unable to extract body to bytes");
45634  46336   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
45635  46337   
            &body,
45636  46338   
            "{}",
45637  46339   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
45638  46340   
        ));
45639  46341   
    }
       46342  +
       46343  +
    /* ProtocolTestGenerator.kt:98 */
45640  46344   
}
45641  46345   
       46346  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
45642  46347   
const CONTENT_TYPE_NOINPUTANDNOOUTPUT: ::mime::Mime = ::mime::APPLICATION_JSON;
45643  46348   
::pin_project_lite::pin_project! {
45644  46349   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
45645  46350   
    /// [`NoInputAndNoOutputInput`](crate::input::NoInputAndNoOutputInput) using modelled bindings.
45646  46351   
    pub struct NoInputAndNoOutputInputFuture {
45647  46352   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::NoInputAndNoOutputInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
45648  46353   
    }
45649  46354   
}
45650  46355   
45651  46356   
impl std::future::Future for NoInputAndNoOutputInputFuture {
@@ -45678,46383 +45755,46464 @@
45698  46403   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
45699  46404   
                    e,
45700  46405   
                )
45701  46406   
            },
45702  46407   
        );
45703  46408   
        NoInputAndNoOutputInputFuture {
45704  46409   
            inner: Box::pin(fut),
45705  46410   
        }
45706  46411   
    }
45707  46412   
}
       46413  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
45708  46414   
impl
45709  46415   
    ::aws_smithy_http_server::response::IntoResponse<
45710  46416   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
45711  46417   
    > for crate::output::NoInputAndNoOutputOutput
45712  46418   
{
45713  46419   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
45714  46420   
        match crate::protocol_serde::shape_no_input_and_no_output::ser_no_input_and_no_output_http_response(self) {
45715  46421   
                        Ok(response) => response,
45716  46422   
                        Err(e) => {
45717  46423   
                            ::tracing::error!(error = %e, "failed to serialize response");
45718  46424   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
45719  46425   
                        }
45720  46426   
                    }
45721  46427   
    }
45722  46428   
}
45723  46429   
       46430  +
/* RustType.kt:516 */
45724  46431   
#[allow(unreachable_code, unused_variables)]
       46432  +
/* RustType.kt:516 */
45725  46433   
#[cfg(test)]
       46434  +
/* ProtocolTestGenerator.kt:98 */
45726  46435   
mod no_input_and_no_output_test {
45727  46436   
45728  46437   
    /// No input serializes no payload. When clients do not need to
45729  46438   
    /// serialize any data in the payload, they should omit a payload
45730  46439   
    /// altogether.
45731  46440   
    /// Test ID: RestJsonNoInputAndNoOutput
45732  46441   
    #[::tokio::test]
45733  46442   
    #[::tracing_test::traced_test]
45734  46443   
    async fn rest_json_no_input_and_no_output_request() {
45735  46444   
        #[allow(unused_mut)]
@@ -45808,46517 +45838,46549 @@
45828  46537   
        ::pretty_assertions::assert_eq!(
45829  46538   
            http::StatusCode::from_u16(200).expect("invalid expected HTTP status code"),
45830  46539   
            http_response.status()
45831  46540   
        );
45832  46541   
        let body = ::hyper::body::to_bytes(http_response.into_body())
45833  46542   
            .await
45834  46543   
            .expect("unable to extract body to bytes");
45835  46544   
        // No body.
45836  46545   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
45837  46546   
    }
       46547  +
       46548  +
    /* ProtocolTestGenerator.kt:98 */
45838  46549   
}

tmp-codegen-diff/codegen-server-test/rest_json/rust-server-codegen/src/operation_shape.rs

@@ -1,1 +0,4184 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ServerOperationGenerator.kt:48 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
                       /* ServerOperationGenerator.kt:55 */
    3      5   
pub struct OperationWithNestedStructure;
    4      6   
    5      7   
impl ::aws_smithy_http_server::operation::OperationShape for OperationWithNestedStructure {
    6      8   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
    7      9   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
    8     10   
            "aws.protocoltests.restjson#OperationWithNestedStructure",
    9     11   
            "aws.protocoltests.restjson",
   10     12   
            "OperationWithNestedStructure",
   11     13   
        );
   12     14   
   13     15   
    type Input = crate::input::OperationWithNestedStructureInput;
   14     16   
    type Output = crate::output::OperationWithNestedStructureOutput;
   15     17   
    type Error = crate::error::OperationWithNestedStructureError;
   16     18   
}
   17     19   
   18     20   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
   19     21   
    for OperationWithNestedStructure
   20     22   
{
   21     23   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   22     24   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   23     25   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
   24     26   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   25     27   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   26     28   
        >,
   27     29   
    >;
   28     30   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
   29     31   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   30     32   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   31     33   
    >;
   32     34   
   33     35   
    fn request_fmt() -> Self::RequestFmt {
   34     36   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   35     37   
    }
   36     38   
   37     39   
    fn response_fmt() -> Self::ResponseFmt {
   38     40   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   39     41   
    }
   40     42   
}
          43  +
/* ServerOperationGenerator.kt:88 */
   41     44   
          45  +
/* ServerOperationGenerator.kt:48 */
   42     46   
#[allow(missing_docs)] // documentation missing in model
          47  +
                       /* ServerOperationGenerator.kt:55 */
   43     48   
pub struct OperationWithDefaults;
   44     49   
   45     50   
impl ::aws_smithy_http_server::operation::OperationShape for OperationWithDefaults {
   46     51   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   47     52   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   48     53   
            "aws.protocoltests.restjson#OperationWithDefaults",
   49     54   
            "aws.protocoltests.restjson",
   50     55   
            "OperationWithDefaults",
   51     56   
        );
   52     57   
   53     58   
    type Input = crate::input::OperationWithDefaultsInput;
   54     59   
    type Output = crate::output::OperationWithDefaultsOutput;
   55     60   
    type Error = crate::error::OperationWithDefaultsError;
   56     61   
}
   57     62   
   58     63   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for OperationWithDefaults {
   59     64   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   60     65   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   61     66   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
   62     67   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   63     68   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   64     69   
        >,
   65     70   
    >;
   66     71   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
   67     72   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   68     73   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   69     74   
    >;
   70     75   
   71     76   
    fn request_fmt() -> Self::RequestFmt {
   72     77   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   73     78   
    }
   74     79   
   75     80   
    fn response_fmt() -> Self::ResponseFmt {
   76     81   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   77     82   
    }
   78     83   
}
          84  +
/* ServerOperationGenerator.kt:88 */
   79     85   
   80         -
/// The example tests how servers must support requests containing a `Content-Type` header with parameters.
          86  +
/// /* ServerOperationGenerator.kt:48 */The example tests how servers must support requests containing a `Content-Type` header with parameters.
          87  +
/* ServerOperationGenerator.kt:55 */
   81     88   
pub struct ContentTypeParameters;
   82     89   
   83     90   
impl ::aws_smithy_http_server::operation::OperationShape for ContentTypeParameters {
   84     91   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   85     92   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   86     93   
            "aws.protocoltests.restjson#ContentTypeParameters",
   87     94   
            "aws.protocoltests.restjson",
   88     95   
            "ContentTypeParameters",
   89     96   
        );
   90     97   
   91     98   
    type Input = crate::input::ContentTypeParametersInput;
   92     99   
    type Output = crate::output::ContentTypeParametersOutput;
   93    100   
    type Error = std::convert::Infallible;
   94    101   
}
   95    102   
   96    103   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for ContentTypeParameters {
   97    104   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   98    105   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   99    106   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  100    107   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  101    108   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  102    109   
        >,
  103    110   
    >;
  104    111   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  105    112   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  106    113   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  107    114   
    >;
  108    115   
  109    116   
    fn request_fmt() -> Self::RequestFmt {
  110    117   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  111    118   
    }
  112    119   
  113    120   
    fn response_fmt() -> Self::ResponseFmt {
  114    121   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  115    122   
    }
  116    123   
}
         124  +
/* ServerOperationGenerator.kt:88 */
  117    125   
         126  +
/* ServerOperationGenerator.kt:48 */
  118    127   
#[allow(missing_docs)] // documentation missing in model
         128  +
                       /* ServerOperationGenerator.kt:55 */
  119    129   
pub struct PutWithContentEncoding;
  120    130   
  121    131   
impl ::aws_smithy_http_server::operation::OperationShape for PutWithContentEncoding {
  122    132   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  123    133   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  124    134   
            "aws.protocoltests.restjson#PutWithContentEncoding",
  125    135   
            "aws.protocoltests.restjson",
  126    136   
            "PutWithContentEncoding",
  127    137   
        );
  128    138   
  129    139   
    type Input = crate::input::PutWithContentEncodingInput;
  130    140   
    type Output = crate::output::PutWithContentEncodingOutput;
  131    141   
    type Error = std::convert::Infallible;
  132    142   
}
  133    143   
  134    144   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  135    145   
    for PutWithContentEncoding
  136    146   
{
  137    147   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  138    148   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  139    149   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  140    150   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  141    151   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  142    152   
        >,
  143    153   
    >;
  144    154   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  145    155   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  146    156   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  147    157   
    >;
  148    158   
  149    159   
    fn request_fmt() -> Self::RequestFmt {
  150    160   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  151    161   
    }
  152    162   
  153    163   
    fn response_fmt() -> Self::ResponseFmt {
  154    164   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  155    165   
    }
  156    166   
}
         167  +
/* ServerOperationGenerator.kt:88 */
  157    168   
         169  +
/* ServerOperationGenerator.kt:48 */
  158    170   
#[allow(missing_docs)] // documentation missing in model
         171  +
                       /* ServerOperationGenerator.kt:55 */
  159    172   
pub struct FractionalSeconds;
  160    173   
  161    174   
impl ::aws_smithy_http_server::operation::OperationShape for FractionalSeconds {
  162    175   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  163    176   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  164    177   
            "aws.protocoltests.restjson#FractionalSeconds",
  165    178   
            "aws.protocoltests.restjson",
  166    179   
            "FractionalSeconds",
  167    180   
        );
  168    181   
  169    182   
    type Input = crate::input::FractionalSecondsInput;
  170    183   
    type Output = crate::output::FractionalSecondsOutput;
  171    184   
    type Error = std::convert::Infallible;
  172    185   
}
  173    186   
  174    187   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for FractionalSeconds {
  175    188   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  176    189   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  177    190   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  178    191   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  179    192   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  180    193   
        >,
  181    194   
    >;
  182    195   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  183    196   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  184    197   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  185    198   
    >;
  186    199   
  187    200   
    fn request_fmt() -> Self::RequestFmt {
  188    201   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  189    202   
    }
  190    203   
  191    204   
    fn response_fmt() -> Self::ResponseFmt {
  192    205   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  193    206   
    }
  194    207   
}
         208  +
/* ServerOperationGenerator.kt:88 */
  195    209   
         210  +
/* ServerOperationGenerator.kt:48 */
  196    211   
#[allow(missing_docs)] // documentation missing in model
         212  +
                       /* ServerOperationGenerator.kt:55 */
  197    213   
pub struct DatetimeOffsets;
  198    214   
  199    215   
impl ::aws_smithy_http_server::operation::OperationShape for DatetimeOffsets {
  200    216   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  201    217   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  202    218   
            "aws.protocoltests.restjson#DatetimeOffsets",
  203    219   
            "aws.protocoltests.restjson",
  204    220   
            "DatetimeOffsets",
  205    221   
        );
  206    222   
  207    223   
    type Input = crate::input::DatetimeOffsetsInput;
  208    224   
    type Output = crate::output::DatetimeOffsetsOutput;
  209    225   
    type Error = std::convert::Infallible;
  210    226   
}
  211    227   
  212    228   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for DatetimeOffsets {
  213    229   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  214    230   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  215    231   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  216    232   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  217    233   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  218    234   
        >,
  219    235   
    >;
  220    236   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  221    237   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  222    238   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  223    239   
    >;
  224    240   
  225    241   
    fn request_fmt() -> Self::RequestFmt {
  226    242   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  227    243   
    }
  228    244   
  229    245   
    fn response_fmt() -> Self::ResponseFmt {
  230    246   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  231    247   
    }
  232    248   
}
         249  +
/* ServerOperationGenerator.kt:88 */
  233    250   
  234         -
/// This example POST operation has no input and serializes a request without a HTTP body. These tests are to ensure we do not attach a body or related headers (Content-Type) to a POST operation with no modeled input.
         251  +
/// /* ServerOperationGenerator.kt:48 */This example POST operation has no input and serializes a request without a HTTP body. These tests are to ensure we do not attach a body or related headers (Content-Type) to a POST operation with no modeled input.
         252  +
/* ServerOperationGenerator.kt:55 */
  235    253   
pub struct TestPostNoInputNoPayload;
  236    254   
  237    255   
impl ::aws_smithy_http_server::operation::OperationShape for TestPostNoInputNoPayload {
  238    256   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  239    257   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  240    258   
            "aws.protocoltests.restjson#TestPostNoInputNoPayload",
  241    259   
            "aws.protocoltests.restjson",
  242    260   
            "TestPostNoInputNoPayload",
  243    261   
        );
  244    262   
  245    263   
    type Input = crate::input::TestPostNoInputNoPayloadInput;
  246    264   
    type Output = crate::output::TestPostNoInputNoPayloadOutput;
  247    265   
    type Error = std::convert::Infallible;
  248    266   
}
  249    267   
  250    268   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  251    269   
    for TestPostNoInputNoPayload
  252    270   
{
  253    271   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  254    272   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  255    273   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  256    274   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  257    275   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  258    276   
        >,
  259    277   
    >;
  260    278   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  261    279   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  262    280   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  263    281   
    >;
  264    282   
  265    283   
    fn request_fmt() -> Self::RequestFmt {
  266    284   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  267    285   
    }
  268    286   
  269    287   
    fn response_fmt() -> Self::ResponseFmt {
  270    288   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  271    289   
    }
  272    290   
}
         291  +
/* ServerOperationGenerator.kt:88 */
  273    292   
  274         -
/// This example GET operation has no input and serializes a request without a HTTP body. These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.
         293  +
/// /* ServerOperationGenerator.kt:48 */This example GET operation has no input and serializes a request without a HTTP body. These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.
         294  +
/* ServerOperationGenerator.kt:55 */
  275    295   
pub struct TestGetNoInputNoPayload;
  276    296   
  277    297   
impl ::aws_smithy_http_server::operation::OperationShape for TestGetNoInputNoPayload {
  278    298   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  279    299   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  280    300   
            "aws.protocoltests.restjson#TestGetNoInputNoPayload",
  281    301   
            "aws.protocoltests.restjson",
  282    302   
            "TestGetNoInputNoPayload",
  283    303   
        );
  284    304   
  285    305   
    type Input = crate::input::TestGetNoInputNoPayloadInput;
  286    306   
    type Output = crate::output::TestGetNoInputNoPayloadOutput;
  287    307   
    type Error = std::convert::Infallible;
  288    308   
}
  289    309   
  290    310   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  291    311   
    for TestGetNoInputNoPayload
  292    312   
{
  293    313   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  294    314   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  295    315   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  296    316   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  297    317   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  298    318   
        >,
  299    319   
    >;
  300    320   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  301    321   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  302    322   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  303    323   
    >;
  304    324   
  305    325   
    fn request_fmt() -> Self::RequestFmt {
  306    326   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  307    327   
    }
  308    328   
  309    329   
    fn response_fmt() -> Self::ResponseFmt {
  310    330   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  311    331   
    }
  312    332   
}
         333  +
/* ServerOperationGenerator.kt:88 */
  313    334   
  314         -
/// This example POST operation serializes a request without a modeled HTTP body. These tests are to ensure we do not attach a body or related headers (Content-Type) to a POST operation with no modeled payload.
         335  +
/// /* ServerOperationGenerator.kt:48 */This example POST operation serializes a request without a modeled HTTP body. These tests are to ensure we do not attach a body or related headers (Content-Type) to a POST operation with no modeled payload.
         336  +
/* ServerOperationGenerator.kt:55 */
  315    337   
pub struct TestPostNoPayload;
  316    338   
  317    339   
impl ::aws_smithy_http_server::operation::OperationShape for TestPostNoPayload {
  318    340   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  319    341   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  320    342   
            "aws.protocoltests.restjson#TestPostNoPayload",
  321    343   
            "aws.protocoltests.restjson",
  322    344   
            "TestPostNoPayload",
  323    345   
        );
  324    346   
  325    347   
    type Input = crate::input::TestPostNoPayloadInput;
  326    348   
    type Output = crate::output::TestPostNoPayloadOutput;
  327    349   
    type Error = std::convert::Infallible;
  328    350   
}
  329    351   
  330    352   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for TestPostNoPayload {
  331    353   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  332    354   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  333    355   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  334    356   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  335    357   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  336    358   
        >,
  337    359   
    >;
  338    360   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  339    361   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  340    362   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  341    363   
    >;
  342    364   
  343    365   
    fn request_fmt() -> Self::RequestFmt {
  344    366   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  345    367   
    }
  346    368   
  347    369   
    fn response_fmt() -> Self::ResponseFmt {
  348    370   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  349    371   
    }
  350    372   
}
         373  +
/* ServerOperationGenerator.kt:88 */
  351    374   
  352         -
/// This example GET operation serializes a request without a modeled HTTP body. These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.
         375  +
/// /* ServerOperationGenerator.kt:48 */This example GET operation serializes a request without a modeled HTTP body. These tests are to ensure we do not attach a body or related headers (Content-Length, Content-Type) to operations that semantically cannot produce an HTTP body.
         376  +
/* ServerOperationGenerator.kt:55 */
  353    377   
pub struct TestGetNoPayload;
  354    378   
  355    379   
impl ::aws_smithy_http_server::operation::OperationShape for TestGetNoPayload {
  356    380   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  357    381   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  358    382   
            "aws.protocoltests.restjson#TestGetNoPayload",
  359    383   
            "aws.protocoltests.restjson",
  360    384   
            "TestGetNoPayload",
  361    385   
        );
  362    386   
  363    387   
    type Input = crate::input::TestGetNoPayloadInput;
  364    388   
    type Output = crate::output::TestGetNoPayloadOutput;
  365    389   
    type Error = std::convert::Infallible;
  366    390   
}
  367    391   
  368    392   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for TestGetNoPayload {
  369    393   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  370    394   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  371    395   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  372    396   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  373    397   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  374    398   
        >,
  375    399   
    >;
  376    400   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  377    401   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  378    402   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  379    403   
    >;
  380    404   
  381    405   
    fn request_fmt() -> Self::RequestFmt {
  382    406   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  383    407   
    }
  384    408   
  385    409   
    fn response_fmt() -> Self::ResponseFmt {
  386    410   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  387    411   
    }
  388    412   
}
         413  +
/* ServerOperationGenerator.kt:88 */
  389    414   
  390         -
/// This example operation serializes a payload targeting a blob. The Blob shape is not structured content and we cannot make assumptions about what data will be sent. This test ensures only a generic "Content-Type: application/octet-stream" header is used, and that we are not treating an empty body as an empty JSON document.
         415  +
/// /* ServerOperationGenerator.kt:48 */This example operation serializes a payload targeting a blob. The Blob shape is not structured content and we cannot make assumptions about what data will be sent. This test ensures only a generic "Content-Type: application/octet-stream" header is used, and that we are not treating an empty body as an empty JSON document.
         416  +
/* ServerOperationGenerator.kt:55 */
  391    417   
pub struct TestPayloadBlob;
  392    418   
  393    419   
impl ::aws_smithy_http_server::operation::OperationShape for TestPayloadBlob {
  394    420   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  395    421   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  396    422   
            "aws.protocoltests.restjson#TestPayloadBlob",
  397    423   
            "aws.protocoltests.restjson",
  398    424   
            "TestPayloadBlob",
  399    425   
        );
  400    426   
  401    427   
    type Input = crate::input::TestPayloadBlobInput;
  402    428   
    type Output = crate::output::TestPayloadBlobOutput;
  403    429   
    type Error = std::convert::Infallible;
  404    430   
}
  405    431   
  406    432   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for TestPayloadBlob {
  407    433   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  408    434   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  409    435   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  410    436   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  411    437   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  412    438   
        >,
  413    439   
    >;
  414    440   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  415    441   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  416    442   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  417    443   
    >;
  418    444   
  419    445   
    fn request_fmt() -> Self::RequestFmt {
  420    446   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  421    447   
    }
  422    448   
  423    449   
    fn response_fmt() -> Self::ResponseFmt {
  424    450   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  425    451   
    }
  426    452   
}
         453  +
/* ServerOperationGenerator.kt:88 */
  427    454   
  428         -
/// This example operation serializes a payload targeting a structure. This enforces the same requirements as TestBodyStructure but with the body specified by the @httpPayload trait.
         455  +
/// /* ServerOperationGenerator.kt:48 */This example operation serializes a payload targeting a structure. This enforces the same requirements as TestBodyStructure but with the body specified by the @httpPayload trait.
         456  +
/* ServerOperationGenerator.kt:55 */
  429    457   
pub struct TestPayloadStructure;
  430    458   
  431    459   
impl ::aws_smithy_http_server::operation::OperationShape for TestPayloadStructure {
  432    460   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  433    461   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  434    462   
            "aws.protocoltests.restjson#TestPayloadStructure",
  435    463   
            "aws.protocoltests.restjson",
  436    464   
            "TestPayloadStructure",
  437    465   
        );
  438    466   
  439    467   
    type Input = crate::input::TestPayloadStructureInput;
  440    468   
    type Output = crate::output::TestPayloadStructureOutput;
  441    469   
    type Error = std::convert::Infallible;
  442    470   
}
  443    471   
  444    472   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for TestPayloadStructure {
  445    473   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  446    474   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  447    475   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  448    476   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  449    477   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  450    478   
        >,
  451    479   
    >;
  452    480   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  453    481   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  454    482   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  455    483   
    >;
  456    484   
  457    485   
    fn request_fmt() -> Self::RequestFmt {
  458    486   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  459    487   
    }
  460    488   
  461    489   
    fn response_fmt() -> Self::ResponseFmt {
  462    490   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  463    491   
    }
  464    492   
}
         493  +
/* ServerOperationGenerator.kt:88 */
  465    494   
  466         -
/// This example operation serializes a structure in the HTTP body. It should ensure Content-Type: application/json is used in all requests and that an "empty" body is an empty JSON document ({}).
         495  +
/// /* ServerOperationGenerator.kt:48 */This example operation serializes a structure in the HTTP body. It should ensure Content-Type: application/json is used in all requests and that an "empty" body is an empty JSON document ({}).
         496  +
/* ServerOperationGenerator.kt:55 */
  467    497   
pub struct TestBodyStructure;
  468    498   
  469    499   
impl ::aws_smithy_http_server::operation::OperationShape for TestBodyStructure {
  470    500   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  471    501   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  472    502   
            "aws.protocoltests.restjson#TestBodyStructure",
  473    503   
            "aws.protocoltests.restjson",
  474    504   
            "TestBodyStructure",
  475    505   
        );
  476    506   
  477    507   
    type Input = crate::input::TestBodyStructureInput;
  478    508   
    type Output = crate::output::TestBodyStructureOutput;
  479    509   
    type Error = std::convert::Infallible;
  480    510   
}
  481    511   
  482    512   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for TestBodyStructure {
  483    513   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  484    514   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  485    515   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  486    516   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  487    517   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  488    518   
        >,
  489    519   
    >;
  490    520   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  491    521   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  492    522   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  493    523   
    >;
  494    524   
  495    525   
    fn request_fmt() -> Self::RequestFmt {
  496    526   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  497    527   
    }
  498    528   
  499    529   
    fn response_fmt() -> Self::ResponseFmt {
  500    530   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  501    531   
    }
  502    532   
}
         533  +
/* ServerOperationGenerator.kt:88 */
  503    534   
         535  +
/* ServerOperationGenerator.kt:48 */
  504    536   
#[allow(missing_docs)] // documentation missing in model
         537  +
                       /* ServerOperationGenerator.kt:55 */
  505    538   
pub struct MalformedAcceptWithGenericString;
  506    539   
  507    540   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedAcceptWithGenericString {
  508    541   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  509    542   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  510    543   
            "aws.protocoltests.restjson#MalformedAcceptWithGenericString",
  511    544   
            "aws.protocoltests.restjson",
  512    545   
            "MalformedAcceptWithGenericString",
  513    546   
        );
  514    547   
  515    548   
    type Input = crate::input::MalformedAcceptWithGenericStringInput;
  516    549   
    type Output = crate::output::MalformedAcceptWithGenericStringOutput;
  517    550   
    type Error = std::convert::Infallible;
  518    551   
}
  519    552   
  520    553   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  521    554   
    for MalformedAcceptWithGenericString
  522    555   
{
  523    556   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  524    557   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  525    558   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  526    559   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  527    560   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  528    561   
        >,
  529    562   
    >;
  530    563   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  531    564   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  532    565   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  533    566   
    >;
  534    567   
  535    568   
    fn request_fmt() -> Self::RequestFmt {
  536    569   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  537    570   
    }
  538    571   
  539    572   
    fn response_fmt() -> Self::ResponseFmt {
  540    573   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  541    574   
    }
  542    575   
}
         576  +
/* ServerOperationGenerator.kt:88 */
  543    577   
         578  +
/* ServerOperationGenerator.kt:48 */
  544    579   
#[allow(missing_docs)] // documentation missing in model
         580  +
                       /* ServerOperationGenerator.kt:55 */
  545    581   
pub struct MalformedAcceptWithPayload;
  546    582   
  547    583   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedAcceptWithPayload {
  548    584   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  549    585   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  550    586   
            "aws.protocoltests.restjson#MalformedAcceptWithPayload",
  551    587   
            "aws.protocoltests.restjson",
  552    588   
            "MalformedAcceptWithPayload",
  553    589   
        );
  554    590   
  555    591   
    type Input = crate::input::MalformedAcceptWithPayloadInput;
  556    592   
    type Output = crate::output::MalformedAcceptWithPayloadOutput;
  557    593   
    type Error = std::convert::Infallible;
  558    594   
}
  559    595   
  560    596   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  561    597   
    for MalformedAcceptWithPayload
  562    598   
{
  563    599   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  564    600   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  565    601   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  566    602   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  567    603   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  568    604   
        >,
  569    605   
    >;
  570    606   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  571    607   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  572    608   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  573    609   
    >;
  574    610   
  575    611   
    fn request_fmt() -> Self::RequestFmt {
  576    612   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  577    613   
    }
  578    614   
  579    615   
    fn response_fmt() -> Self::ResponseFmt {
  580    616   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  581    617   
    }
  582    618   
}
         619  +
/* ServerOperationGenerator.kt:88 */
  583    620   
         621  +
/* ServerOperationGenerator.kt:48 */
  584    622   
#[allow(missing_docs)] // documentation missing in model
         623  +
                       /* ServerOperationGenerator.kt:55 */
  585    624   
pub struct MalformedAcceptWithBody;
  586    625   
  587    626   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedAcceptWithBody {
  588    627   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  589    628   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  590    629   
            "aws.protocoltests.restjson#MalformedAcceptWithBody",
  591    630   
            "aws.protocoltests.restjson",
  592    631   
            "MalformedAcceptWithBody",
  593    632   
        );
  594    633   
  595    634   
    type Input = crate::input::MalformedAcceptWithBodyInput;
  596    635   
    type Output = crate::output::MalformedAcceptWithBodyOutput;
  597    636   
    type Error = std::convert::Infallible;
  598    637   
}
  599    638   
  600    639   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  601    640   
    for MalformedAcceptWithBody
  602    641   
{
  603    642   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  604    643   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  605    644   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  606    645   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  607    646   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  608    647   
        >,
  609    648   
    >;
  610    649   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  611    650   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  612    651   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  613    652   
    >;
  614    653   
  615    654   
    fn request_fmt() -> Self::RequestFmt {
  616    655   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  617    656   
    }
  618    657   
  619    658   
    fn response_fmt() -> Self::ResponseFmt {
  620    659   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  621    660   
    }
  622    661   
}
         662  +
/* ServerOperationGenerator.kt:88 */
  623    663   
         664  +
/* ServerOperationGenerator.kt:48 */
  624    665   
#[allow(missing_docs)] // documentation missing in model
         666  +
                       /* ServerOperationGenerator.kt:55 */
  625    667   
pub struct MalformedContentTypeWithGenericString;
  626    668   
  627    669   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedContentTypeWithGenericString {
  628    670   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  629    671   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  630    672   
            "aws.protocoltests.restjson#MalformedContentTypeWithGenericString",
  631    673   
            "aws.protocoltests.restjson",
  632    674   
            "MalformedContentTypeWithGenericString",
  633    675   
        );
  634    676   
  635    677   
    type Input = crate::input::MalformedContentTypeWithGenericStringInput;
  636    678   
    type Output = crate::output::MalformedContentTypeWithGenericStringOutput;
  637    679   
    type Error = std::convert::Infallible;
  638    680   
}
  639    681   
  640    682   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  641    683   
    for MalformedContentTypeWithGenericString
  642    684   
{
  643    685   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  644    686   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  645    687   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  646    688   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  647    689   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  648    690   
        >,
  649    691   
    >;
  650    692   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  651    693   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  652    694   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  653    695   
    >;
  654    696   
  655    697   
    fn request_fmt() -> Self::RequestFmt {
  656    698   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  657    699   
    }
  658    700   
  659    701   
    fn response_fmt() -> Self::ResponseFmt {
  660    702   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  661    703   
    }
  662    704   
}
         705  +
/* ServerOperationGenerator.kt:88 */
  663    706   
         707  +
/* ServerOperationGenerator.kt:48 */
  664    708   
#[allow(missing_docs)] // documentation missing in model
         709  +
                       /* ServerOperationGenerator.kt:55 */
  665    710   
pub struct MalformedContentTypeWithPayload;
  666    711   
  667    712   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedContentTypeWithPayload {
  668    713   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  669    714   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  670    715   
            "aws.protocoltests.restjson#MalformedContentTypeWithPayload",
  671    716   
            "aws.protocoltests.restjson",
  672    717   
            "MalformedContentTypeWithPayload",
  673    718   
        );
  674    719   
  675    720   
    type Input = crate::input::MalformedContentTypeWithPayloadInput;
  676    721   
    type Output = crate::output::MalformedContentTypeWithPayloadOutput;
  677    722   
    type Error = std::convert::Infallible;
  678    723   
}
  679    724   
  680    725   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  681    726   
    for MalformedContentTypeWithPayload
  682    727   
{
  683    728   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  684    729   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  685    730   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  686    731   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  687    732   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  688    733   
        >,
  689    734   
    >;
  690    735   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  691    736   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  692    737   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  693    738   
    >;
  694    739   
  695    740   
    fn request_fmt() -> Self::RequestFmt {
  696    741   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  697    742   
    }
  698    743   
  699    744   
    fn response_fmt() -> Self::ResponseFmt {
  700    745   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  701    746   
    }
  702    747   
}
         748  +
/* ServerOperationGenerator.kt:88 */
  703    749   
         750  +
/* ServerOperationGenerator.kt:48 */
  704    751   
#[allow(missing_docs)] // documentation missing in model
         752  +
                       /* ServerOperationGenerator.kt:55 */
  705    753   
pub struct MalformedContentTypeWithBody;
  706    754   
  707    755   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedContentTypeWithBody {
  708    756   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  709    757   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  710    758   
            "aws.protocoltests.restjson#MalformedContentTypeWithBody",
  711    759   
            "aws.protocoltests.restjson",
  712    760   
            "MalformedContentTypeWithBody",
  713    761   
        );
  714    762   
  715    763   
    type Input = crate::input::MalformedContentTypeWithBodyInput;
  716    764   
    type Output = crate::output::MalformedContentTypeWithBodyOutput;
  717    765   
    type Error = std::convert::Infallible;
  718    766   
}
  719    767   
  720    768   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  721    769   
    for MalformedContentTypeWithBody
  722    770   
{
  723    771   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  724    772   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  725    773   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  726    774   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  727    775   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  728    776   
        >,
  729    777   
    >;
  730    778   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  731    779   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  732    780   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  733    781   
    >;
  734    782   
  735    783   
    fn request_fmt() -> Self::RequestFmt {
  736    784   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  737    785   
    }
  738    786   
  739    787   
    fn response_fmt() -> Self::ResponseFmt {
  740    788   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  741    789   
    }
  742    790   
}
         791  +
/* ServerOperationGenerator.kt:88 */
  743    792   
         793  +
/* ServerOperationGenerator.kt:48 */
  744    794   
#[allow(missing_docs)] // documentation missing in model
         795  +
                       /* ServerOperationGenerator.kt:55 */
  745    796   
pub struct MalformedContentTypeWithoutBody;
  746    797   
  747    798   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedContentTypeWithoutBody {
  748    799   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  749    800   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  750    801   
            "aws.protocoltests.restjson#MalformedContentTypeWithoutBody",
  751    802   
            "aws.protocoltests.restjson",
  752    803   
            "MalformedContentTypeWithoutBody",
  753    804   
        );
  754    805   
  755    806   
    type Input = crate::input::MalformedContentTypeWithoutBodyInput;
  756    807   
    type Output = crate::output::MalformedContentTypeWithoutBodyOutput;
  757    808   
    type Error = std::convert::Infallible;
  758    809   
}
  759    810   
  760    811   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  761    812   
    for MalformedContentTypeWithoutBody
  762    813   
{
  763    814   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  764    815   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  765    816   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  766    817   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  767    818   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  768    819   
        >,
  769    820   
    >;
  770    821   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  771    822   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  772    823   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  773    824   
    >;
  774    825   
  775    826   
    fn request_fmt() -> Self::RequestFmt {
  776    827   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  777    828   
    }
  778    829   
  779    830   
    fn response_fmt() -> Self::ResponseFmt {
  780    831   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  781    832   
    }
  782    833   
}
         834  +
/* ServerOperationGenerator.kt:88 */
  783    835   
         836  +
/* ServerOperationGenerator.kt:48 */
  784    837   
#[allow(missing_docs)] // documentation missing in model
         838  +
                       /* ServerOperationGenerator.kt:55 */
  785    839   
pub struct MalformedTimestampBodyHttpDate;
  786    840   
  787    841   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampBodyHttpDate {
  788    842   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  789    843   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  790    844   
            "aws.protocoltests.restjson#MalformedTimestampBodyHttpDate",
  791    845   
            "aws.protocoltests.restjson",
  792    846   
            "MalformedTimestampBodyHttpDate",
  793    847   
        );
  794    848   
  795    849   
    type Input = crate::input::MalformedTimestampBodyHttpDateInput;
  796    850   
    type Output = crate::output::MalformedTimestampBodyHttpDateOutput;
  797    851   
    type Error = crate::error::MalformedTimestampBodyHttpDateError;
  798    852   
}
  799    853   
  800    854   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  801    855   
    for MalformedTimestampBodyHttpDate
  802    856   
{
  803    857   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  804    858   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  805    859   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  806    860   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  807    861   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  808    862   
        >,
  809    863   
    >;
  810    864   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  811    865   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  812    866   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  813    867   
    >;
  814    868   
  815    869   
    fn request_fmt() -> Self::RequestFmt {
  816    870   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  817    871   
    }
  818    872   
  819    873   
    fn response_fmt() -> Self::ResponseFmt {
  820    874   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  821    875   
    }
  822    876   
}
         877  +
/* ServerOperationGenerator.kt:88 */
  823    878   
         879  +
/* ServerOperationGenerator.kt:48 */
  824    880   
#[allow(missing_docs)] // documentation missing in model
         881  +
                       /* ServerOperationGenerator.kt:55 */
  825    882   
pub struct MalformedTimestampBodyDateTime;
  826    883   
  827    884   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampBodyDateTime {
  828    885   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  829    886   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  830    887   
            "aws.protocoltests.restjson#MalformedTimestampBodyDateTime",
  831    888   
            "aws.protocoltests.restjson",
  832    889   
            "MalformedTimestampBodyDateTime",
  833    890   
        );
  834    891   
  835    892   
    type Input = crate::input::MalformedTimestampBodyDateTimeInput;
  836    893   
    type Output = crate::output::MalformedTimestampBodyDateTimeOutput;
  837    894   
    type Error = crate::error::MalformedTimestampBodyDateTimeError;
  838    895   
}
  839    896   
  840    897   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  841    898   
    for MalformedTimestampBodyDateTime
  842    899   
{
  843    900   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  844    901   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  845    902   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  846    903   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  847    904   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  848    905   
        >,
  849    906   
    >;
  850    907   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  851    908   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  852    909   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  853    910   
    >;
  854    911   
  855    912   
    fn request_fmt() -> Self::RequestFmt {
  856    913   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  857    914   
    }
  858    915   
  859    916   
    fn response_fmt() -> Self::ResponseFmt {
  860    917   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  861    918   
    }
  862    919   
}
         920  +
/* ServerOperationGenerator.kt:88 */
  863    921   
         922  +
/* ServerOperationGenerator.kt:48 */
  864    923   
#[allow(missing_docs)] // documentation missing in model
         924  +
                       /* ServerOperationGenerator.kt:55 */
  865    925   
pub struct MalformedTimestampBodyDefault;
  866    926   
  867    927   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampBodyDefault {
  868    928   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  869    929   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  870    930   
            "aws.protocoltests.restjson#MalformedTimestampBodyDefault",
  871    931   
            "aws.protocoltests.restjson",
  872    932   
            "MalformedTimestampBodyDefault",
  873    933   
        );
  874    934   
  875    935   
    type Input = crate::input::MalformedTimestampBodyDefaultInput;
  876    936   
    type Output = crate::output::MalformedTimestampBodyDefaultOutput;
  877    937   
    type Error = crate::error::MalformedTimestampBodyDefaultError;
  878    938   
}
  879    939   
  880    940   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  881    941   
    for MalformedTimestampBodyDefault
  882    942   
{
  883    943   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  884    944   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  885    945   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  886    946   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  887    947   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  888    948   
        >,
  889    949   
    >;
  890    950   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  891    951   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  892    952   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  893    953   
    >;
  894    954   
  895    955   
    fn request_fmt() -> Self::RequestFmt {
  896    956   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  897    957   
    }
  898    958   
  899    959   
    fn response_fmt() -> Self::ResponseFmt {
  900    960   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  901    961   
    }
  902    962   
}
         963  +
/* ServerOperationGenerator.kt:88 */
  903    964   
         965  +
/* ServerOperationGenerator.kt:48 */
  904    966   
#[allow(missing_docs)] // documentation missing in model
         967  +
                       /* ServerOperationGenerator.kt:55 */
  905    968   
pub struct MalformedTimestampHeaderEpoch;
  906    969   
  907    970   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampHeaderEpoch {
  908    971   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  909    972   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  910    973   
            "aws.protocoltests.restjson#MalformedTimestampHeaderEpoch",
  911    974   
            "aws.protocoltests.restjson",
  912    975   
            "MalformedTimestampHeaderEpoch",
  913    976   
        );
  914    977   
  915    978   
    type Input = crate::input::MalformedTimestampHeaderEpochInput;
  916    979   
    type Output = crate::output::MalformedTimestampHeaderEpochOutput;
  917    980   
    type Error = crate::error::MalformedTimestampHeaderEpochError;
  918    981   
}
  919    982   
  920    983   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  921    984   
    for MalformedTimestampHeaderEpoch
  922    985   
{
  923    986   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  924    987   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  925    988   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  926    989   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  927    990   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  928    991   
        >,
  929    992   
    >;
  930    993   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  931    994   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  932    995   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  933    996   
    >;
  934    997   
  935    998   
    fn request_fmt() -> Self::RequestFmt {
  936    999   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  937   1000   
    }
  938   1001   
  939   1002   
    fn response_fmt() -> Self::ResponseFmt {
  940   1003   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  941   1004   
    }
  942   1005   
}
        1006  +
/* ServerOperationGenerator.kt:88 */
  943   1007   
        1008  +
/* ServerOperationGenerator.kt:48 */
  944   1009   
#[allow(missing_docs)] // documentation missing in model
        1010  +
                       /* ServerOperationGenerator.kt:55 */
  945   1011   
pub struct MalformedTimestampHeaderDateTime;
  946   1012   
  947   1013   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampHeaderDateTime {
  948   1014   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  949   1015   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  950   1016   
            "aws.protocoltests.restjson#MalformedTimestampHeaderDateTime",
  951   1017   
            "aws.protocoltests.restjson",
  952   1018   
            "MalformedTimestampHeaderDateTime",
  953   1019   
        );
  954   1020   
  955   1021   
    type Input = crate::input::MalformedTimestampHeaderDateTimeInput;
  956   1022   
    type Output = crate::output::MalformedTimestampHeaderDateTimeOutput;
  957   1023   
    type Error = crate::error::MalformedTimestampHeaderDateTimeError;
  958   1024   
}
  959   1025   
  960   1026   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  961   1027   
    for MalformedTimestampHeaderDateTime
  962   1028   
{
  963   1029   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  964   1030   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  965   1031   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  966   1032   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  967   1033   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  968   1034   
        >,
  969   1035   
    >;
  970   1036   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  971   1037   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  972   1038   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  973   1039   
    >;
  974   1040   
  975   1041   
    fn request_fmt() -> Self::RequestFmt {
  976   1042   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  977   1043   
    }
  978   1044   
  979   1045   
    fn response_fmt() -> Self::ResponseFmt {
  980   1046   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  981   1047   
    }
  982   1048   
}
        1049  +
/* ServerOperationGenerator.kt:88 */
  983   1050   
        1051  +
/* ServerOperationGenerator.kt:48 */
  984   1052   
#[allow(missing_docs)] // documentation missing in model
        1053  +
                       /* ServerOperationGenerator.kt:55 */
  985   1054   
pub struct MalformedTimestampHeaderDefault;
  986   1055   
  987   1056   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampHeaderDefault {
  988   1057   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  989   1058   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  990   1059   
            "aws.protocoltests.restjson#MalformedTimestampHeaderDefault",
  991   1060   
            "aws.protocoltests.restjson",
  992   1061   
            "MalformedTimestampHeaderDefault",
  993   1062   
        );
  994   1063   
  995   1064   
    type Input = crate::input::MalformedTimestampHeaderDefaultInput;
  996   1065   
    type Output = crate::output::MalformedTimestampHeaderDefaultOutput;
  997   1066   
    type Error = crate::error::MalformedTimestampHeaderDefaultError;
  998   1067   
}
  999   1068   
 1000   1069   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 1001   1070   
    for MalformedTimestampHeaderDefault
 1002   1071   
{
 1003   1072   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1004   1073   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1005   1074   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1006   1075   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1007   1076   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1008   1077   
        >,
 1009   1078   
    >;
 1010   1079   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1011   1080   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1012   1081   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1013   1082   
    >;
 1014   1083   
 1015   1084   
    fn request_fmt() -> Self::RequestFmt {
 1016   1085   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1017   1086   
    }
 1018   1087   
 1019   1088   
    fn response_fmt() -> Self::ResponseFmt {
 1020   1089   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1021   1090   
    }
 1022   1091   
}
        1092  +
/* ServerOperationGenerator.kt:88 */
 1023   1093   
        1094  +
/* ServerOperationGenerator.kt:48 */
 1024   1095   
#[allow(missing_docs)] // documentation missing in model
        1096  +
                       /* ServerOperationGenerator.kt:55 */
 1025   1097   
pub struct MalformedTimestampQueryEpoch;
 1026   1098   
 1027   1099   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampQueryEpoch {
 1028   1100   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1029   1101   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1030   1102   
            "aws.protocoltests.restjson#MalformedTimestampQueryEpoch",
 1031   1103   
            "aws.protocoltests.restjson",
 1032   1104   
            "MalformedTimestampQueryEpoch",
 1033   1105   
        );
 1034   1106   
 1035   1107   
    type Input = crate::input::MalformedTimestampQueryEpochInput;
 1036   1108   
    type Output = crate::output::MalformedTimestampQueryEpochOutput;
 1037   1109   
    type Error = crate::error::MalformedTimestampQueryEpochError;
 1038   1110   
}
 1039   1111   
 1040   1112   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 1041   1113   
    for MalformedTimestampQueryEpoch
 1042   1114   
{
 1043   1115   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1044   1116   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1045   1117   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1046   1118   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1047   1119   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1048   1120   
        >,
 1049   1121   
    >;
 1050   1122   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1051   1123   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1052   1124   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1053   1125   
    >;
 1054   1126   
 1055   1127   
    fn request_fmt() -> Self::RequestFmt {
 1056   1128   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1057   1129   
    }
 1058   1130   
 1059   1131   
    fn response_fmt() -> Self::ResponseFmt {
 1060   1132   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1061   1133   
    }
 1062   1134   
}
        1135  +
/* ServerOperationGenerator.kt:88 */
 1063   1136   
        1137  +
/* ServerOperationGenerator.kt:48 */
 1064   1138   
#[allow(missing_docs)] // documentation missing in model
        1139  +
                       /* ServerOperationGenerator.kt:55 */
 1065   1140   
pub struct MalformedTimestampQueryHttpDate;
 1066   1141   
 1067   1142   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampQueryHttpDate {
 1068   1143   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1069   1144   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1070   1145   
            "aws.protocoltests.restjson#MalformedTimestampQueryHttpDate",
 1071   1146   
            "aws.protocoltests.restjson",
 1072   1147   
            "MalformedTimestampQueryHttpDate",
 1073   1148   
        );
 1074   1149   
 1075   1150   
    type Input = crate::input::MalformedTimestampQueryHttpDateInput;
 1076   1151   
    type Output = crate::output::MalformedTimestampQueryHttpDateOutput;
 1077   1152   
    type Error = crate::error::MalformedTimestampQueryHttpDateError;
 1078   1153   
}
 1079   1154   
 1080   1155   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 1081   1156   
    for MalformedTimestampQueryHttpDate
 1082   1157   
{
 1083   1158   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1084   1159   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1085   1160   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1086   1161   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1087   1162   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1088   1163   
        >,
 1089   1164   
    >;
 1090   1165   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1091   1166   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1092   1167   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1093   1168   
    >;
 1094   1169   
 1095   1170   
    fn request_fmt() -> Self::RequestFmt {
 1096   1171   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1097   1172   
    }
 1098   1173   
 1099   1174   
    fn response_fmt() -> Self::ResponseFmt {
 1100   1175   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1101   1176   
    }
 1102   1177   
}
        1178  +
/* ServerOperationGenerator.kt:88 */
 1103   1179   
        1180  +
/* ServerOperationGenerator.kt:48 */
 1104   1181   
#[allow(missing_docs)] // documentation missing in model
        1182  +
                       /* ServerOperationGenerator.kt:55 */
 1105   1183   
pub struct MalformedTimestampQueryDefault;
 1106   1184   
 1107   1185   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampQueryDefault {
 1108   1186   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1109   1187   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1110   1188   
            "aws.protocoltests.restjson#MalformedTimestampQueryDefault",
 1111   1189   
            "aws.protocoltests.restjson",
 1112   1190   
            "MalformedTimestampQueryDefault",
 1113   1191   
        );
 1114   1192   
 1115   1193   
    type Input = crate::input::MalformedTimestampQueryDefaultInput;
 1116   1194   
    type Output = crate::output::MalformedTimestampQueryDefaultOutput;
 1117   1195   
    type Error = crate::error::MalformedTimestampQueryDefaultError;
 1118   1196   
}
 1119   1197   
 1120   1198   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 1121   1199   
    for MalformedTimestampQueryDefault
 1122   1200   
{
 1123   1201   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1124   1202   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1125   1203   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1126   1204   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1127   1205   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1128   1206   
        >,
 1129   1207   
    >;
 1130   1208   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1131   1209   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1132   1210   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1133   1211   
    >;
 1134   1212   
 1135   1213   
    fn request_fmt() -> Self::RequestFmt {
 1136   1214   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1137   1215   
    }
 1138   1216   
 1139   1217   
    fn response_fmt() -> Self::ResponseFmt {
 1140   1218   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1141   1219   
    }
 1142   1220   
}
        1221  +
/* ServerOperationGenerator.kt:88 */
 1143   1222   
        1223  +
/* ServerOperationGenerator.kt:48 */
 1144   1224   
#[allow(missing_docs)] // documentation missing in model
        1225  +
                       /* ServerOperationGenerator.kt:55 */
 1145   1226   
pub struct MalformedTimestampPathEpoch;
 1146   1227   
 1147   1228   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampPathEpoch {
 1148   1229   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1149   1230   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1150   1231   
            "aws.protocoltests.restjson#MalformedTimestampPathEpoch",
 1151   1232   
            "aws.protocoltests.restjson",
 1152   1233   
            "MalformedTimestampPathEpoch",
 1153   1234   
        );
 1154   1235   
 1155   1236   
    type Input = crate::input::MalformedTimestampPathEpochInput;
 1156   1237   
    type Output = crate::output::MalformedTimestampPathEpochOutput;
 1157   1238   
    type Error = crate::error::MalformedTimestampPathEpochError;
 1158   1239   
}
 1159   1240   
 1160   1241   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 1161   1242   
    for MalformedTimestampPathEpoch
 1162   1243   
{
 1163   1244   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1164   1245   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1165   1246   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1166   1247   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1167   1248   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1168   1249   
        >,
 1169   1250   
    >;
 1170   1251   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1171   1252   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1172   1253   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1173   1254   
    >;
 1174   1255   
 1175   1256   
    fn request_fmt() -> Self::RequestFmt {
 1176   1257   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1177   1258   
    }
 1178   1259   
 1179   1260   
    fn response_fmt() -> Self::ResponseFmt {
 1180   1261   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1181   1262   
    }
 1182   1263   
}
        1264  +
/* ServerOperationGenerator.kt:88 */
 1183   1265   
        1266  +
/* ServerOperationGenerator.kt:48 */
 1184   1267   
#[allow(missing_docs)] // documentation missing in model
        1268  +
                       /* ServerOperationGenerator.kt:55 */
 1185   1269   
pub struct MalformedTimestampPathHttpDate;
 1186   1270   
 1187   1271   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampPathHttpDate {
 1188   1272   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1189   1273   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1190   1274   
            "aws.protocoltests.restjson#MalformedTimestampPathHttpDate",
 1191   1275   
            "aws.protocoltests.restjson",
 1192   1276   
            "MalformedTimestampPathHttpDate",
 1193   1277   
        );
 1194   1278   
 1195   1279   
    type Input = crate::input::MalformedTimestampPathHttpDateInput;
 1196   1280   
    type Output = crate::output::MalformedTimestampPathHttpDateOutput;
 1197   1281   
    type Error = crate::error::MalformedTimestampPathHttpDateError;
 1198   1282   
}
 1199   1283   
 1200   1284   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 1201   1285   
    for MalformedTimestampPathHttpDate
 1202   1286   
{
 1203   1287   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1204   1288   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1205   1289   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1206   1290   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1207   1291   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1208   1292   
        >,
 1209   1293   
    >;
 1210   1294   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1211   1295   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1212   1296   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1213   1297   
    >;
 1214   1298   
 1215   1299   
    fn request_fmt() -> Self::RequestFmt {
 1216   1300   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1217   1301   
    }
 1218   1302   
 1219   1303   
    fn response_fmt() -> Self::ResponseFmt {
 1220   1304   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1221   1305   
    }
 1222   1306   
}
        1307  +
/* ServerOperationGenerator.kt:88 */
 1223   1308   
        1309  +
/* ServerOperationGenerator.kt:48 */
 1224   1310   
#[allow(missing_docs)] // documentation missing in model
        1311  +
                       /* ServerOperationGenerator.kt:55 */
 1225   1312   
pub struct MalformedTimestampPathDefault;
 1226   1313   
 1227   1314   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedTimestampPathDefault {
 1228   1315   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1229   1316   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1230   1317   
            "aws.protocoltests.restjson#MalformedTimestampPathDefault",
 1231   1318   
            "aws.protocoltests.restjson",
 1232   1319   
            "MalformedTimestampPathDefault",
 1233   1320   
        );
 1234   1321   
 1235   1322   
    type Input = crate::input::MalformedTimestampPathDefaultInput;
 1236   1323   
    type Output = crate::output::MalformedTimestampPathDefaultOutput;
 1237   1324   
    type Error = crate::error::MalformedTimestampPathDefaultError;
 1238   1325   
}
 1239   1326   
 1240   1327   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 1241   1328   
    for MalformedTimestampPathDefault
 1242   1329   
{
 1243   1330   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1244   1331   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1245   1332   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1246   1333   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1247   1334   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1248   1335   
        >,
 1249   1336   
    >;
 1250   1337   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1251   1338   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1252   1339   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1253   1340   
    >;
 1254   1341   
 1255   1342   
    fn request_fmt() -> Self::RequestFmt {
 1256   1343   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1257   1344   
    }
 1258   1345   
 1259   1346   
    fn response_fmt() -> Self::ResponseFmt {
 1260   1347   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1261   1348   
    }
 1262   1349   
}
        1350  +
/* ServerOperationGenerator.kt:88 */
 1263   1351   
        1352  +
/* ServerOperationGenerator.kt:48 */
 1264   1353   
#[allow(missing_docs)] // documentation missing in model
        1354  +
                       /* ServerOperationGenerator.kt:55 */
 1265   1355   
pub struct MalformedString;
 1266   1356   
 1267   1357   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedString {
 1268   1358   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1269   1359   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1270   1360   
            "aws.protocoltests.restjson#MalformedString",
 1271   1361   
            "aws.protocoltests.restjson",
 1272   1362   
            "MalformedString",
 1273   1363   
        );
 1274   1364   
 1275   1365   
    type Input = crate::input::MalformedStringInput;
 1276   1366   
    type Output = crate::output::MalformedStringOutput;
 1277   1367   
    type Error = std::convert::Infallible;
 1278   1368   
}
 1279   1369   
 1280   1370   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedString {
 1281   1371   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1282   1372   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1283   1373   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1284   1374   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1285   1375   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1286   1376   
        >,
 1287   1377   
    >;
 1288   1378   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1289   1379   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1290   1380   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1291   1381   
    >;
 1292   1382   
 1293   1383   
    fn request_fmt() -> Self::RequestFmt {
 1294   1384   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1295   1385   
    }
 1296   1386   
 1297   1387   
    fn response_fmt() -> Self::ResponseFmt {
 1298   1388   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1299   1389   
    }
 1300   1390   
}
        1391  +
/* ServerOperationGenerator.kt:88 */
 1301   1392   
        1393  +
/* ServerOperationGenerator.kt:48 */
 1302   1394   
#[allow(missing_docs)] // documentation missing in model
        1395  +
                       /* ServerOperationGenerator.kt:55 */
 1303   1396   
pub struct MalformedDouble;
 1304   1397   
 1305   1398   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedDouble {
 1306   1399   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1307   1400   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1308   1401   
            "aws.protocoltests.restjson#MalformedDouble",
 1309   1402   
            "aws.protocoltests.restjson",
 1310   1403   
            "MalformedDouble",
 1311   1404   
        );
 1312   1405   
 1313   1406   
    type Input = crate::input::MalformedDoubleInput;
 1314   1407   
    type Output = crate::output::MalformedDoubleOutput;
 1315   1408   
    type Error = crate::error::MalformedDoubleError;
 1316   1409   
}
 1317   1410   
 1318   1411   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedDouble {
 1319   1412   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1320   1413   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1321   1414   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1322   1415   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1323   1416   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1324   1417   
        >,
 1325   1418   
    >;
 1326   1419   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1327   1420   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1328   1421   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1329   1422   
    >;
 1330   1423   
 1331   1424   
    fn request_fmt() -> Self::RequestFmt {
 1332   1425   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1333   1426   
    }
 1334   1427   
 1335   1428   
    fn response_fmt() -> Self::ResponseFmt {
 1336   1429   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1337   1430   
    }
 1338   1431   
}
        1432  +
/* ServerOperationGenerator.kt:88 */
 1339   1433   
        1434  +
/* ServerOperationGenerator.kt:48 */
 1340   1435   
#[allow(missing_docs)] // documentation missing in model
        1436  +
                       /* ServerOperationGenerator.kt:55 */
 1341   1437   
pub struct MalformedFloat;
 1342   1438   
 1343   1439   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedFloat {
 1344   1440   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1345   1441   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1346   1442   
            "aws.protocoltests.restjson#MalformedFloat",
 1347   1443   
            "aws.protocoltests.restjson",
 1348   1444   
            "MalformedFloat",
 1349   1445   
        );
 1350   1446   
 1351   1447   
    type Input = crate::input::MalformedFloatInput;
 1352   1448   
    type Output = crate::output::MalformedFloatOutput;
 1353   1449   
    type Error = crate::error::MalformedFloatError;
 1354   1450   
}
 1355   1451   
 1356   1452   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedFloat {
 1357   1453   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1358   1454   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1359   1455   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1360   1456   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1361   1457   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1362   1458   
        >,
 1363   1459   
    >;
 1364   1460   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1365   1461   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1366   1462   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1367   1463   
    >;
 1368   1464   
 1369   1465   
    fn request_fmt() -> Self::RequestFmt {
 1370   1466   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1371   1467   
    }
 1372   1468   
 1373   1469   
    fn response_fmt() -> Self::ResponseFmt {
 1374   1470   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1375   1471   
    }
 1376   1472   
}
        1473  +
/* ServerOperationGenerator.kt:88 */
 1377   1474   
        1475  +
/* ServerOperationGenerator.kt:48 */
 1378   1476   
#[allow(missing_docs)] // documentation missing in model
        1477  +
                       /* ServerOperationGenerator.kt:55 */
 1379   1478   
pub struct MalformedLong;
 1380   1479   
 1381   1480   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedLong {
 1382   1481   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1383   1482   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1384   1483   
            "aws.protocoltests.restjson#MalformedLong",
 1385   1484   
            "aws.protocoltests.restjson",
 1386   1485   
            "MalformedLong",
 1387   1486   
        );
 1388   1487   
 1389   1488   
    type Input = crate::input::MalformedLongInput;
 1390   1489   
    type Output = crate::output::MalformedLongOutput;
 1391   1490   
    type Error = crate::error::MalformedLongError;
 1392   1491   
}
 1393   1492   
 1394   1493   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedLong {
 1395   1494   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1396   1495   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1397   1496   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1398   1497   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1399   1498   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1400   1499   
        >,
 1401   1500   
    >;
 1402   1501   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1403   1502   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1404   1503   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1405   1504   
    >;
 1406   1505   
 1407   1506   
    fn request_fmt() -> Self::RequestFmt {
 1408   1507   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1409   1508   
    }
 1410   1509   
 1411   1510   
    fn response_fmt() -> Self::ResponseFmt {
 1412   1511   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1413   1512   
    }
 1414   1513   
}
        1514  +
/* ServerOperationGenerator.kt:88 */
 1415   1515   
        1516  +
/* ServerOperationGenerator.kt:48 */
 1416   1517   
#[allow(missing_docs)] // documentation missing in model
        1518  +
                       /* ServerOperationGenerator.kt:55 */
 1417   1519   
pub struct MalformedShort;
 1418   1520   
 1419   1521   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedShort {
 1420   1522   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1421   1523   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1422   1524   
            "aws.protocoltests.restjson#MalformedShort",
 1423   1525   
            "aws.protocoltests.restjson",
 1424   1526   
            "MalformedShort",
 1425   1527   
        );
 1426   1528   
 1427   1529   
    type Input = crate::input::MalformedShortInput;
 1428   1530   
    type Output = crate::output::MalformedShortOutput;
 1429   1531   
    type Error = crate::error::MalformedShortError;
 1430   1532   
}
 1431   1533   
 1432   1534   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedShort {
 1433   1535   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1434   1536   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1435   1537   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1436   1538   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1437   1539   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1438   1540   
        >,
 1439   1541   
    >;
 1440   1542   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1441   1543   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1442   1544   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1443   1545   
    >;
 1444   1546   
 1445   1547   
    fn request_fmt() -> Self::RequestFmt {
 1446   1548   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1447   1549   
    }
 1448   1550   
 1449   1551   
    fn response_fmt() -> Self::ResponseFmt {
 1450   1552   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1451   1553   
    }
 1452   1554   
}
        1555  +
/* ServerOperationGenerator.kt:88 */
 1453   1556   
        1557  +
/* ServerOperationGenerator.kt:48 */
 1454   1558   
#[allow(missing_docs)] // documentation missing in model
        1559  +
                       /* ServerOperationGenerator.kt:55 */
 1455   1560   
pub struct MalformedByte;
 1456   1561   
 1457   1562   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedByte {
 1458   1563   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1459   1564   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1460   1565   
            "aws.protocoltests.restjson#MalformedByte",
 1461   1566   
            "aws.protocoltests.restjson",
 1462   1567   
            "MalformedByte",
 1463   1568   
        );
 1464   1569   
 1465   1570   
    type Input = crate::input::MalformedByteInput;
 1466   1571   
    type Output = crate::output::MalformedByteOutput;
 1467   1572   
    type Error = crate::error::MalformedByteError;
 1468   1573   
}
 1469   1574   
 1470   1575   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedByte {
 1471   1576   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1472   1577   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1473   1578   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1474   1579   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1475   1580   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1476   1581   
        >,
 1477   1582   
    >;
 1478   1583   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1479   1584   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1480   1585   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1481   1586   
    >;
 1482   1587   
 1483   1588   
    fn request_fmt() -> Self::RequestFmt {
 1484   1589   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1485   1590   
    }
 1486   1591   
 1487   1592   
    fn response_fmt() -> Self::ResponseFmt {
 1488   1593   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1489   1594   
    }
 1490   1595   
}
        1596  +
/* ServerOperationGenerator.kt:88 */
 1491   1597   
        1598  +
/* ServerOperationGenerator.kt:48 */
 1492   1599   
#[allow(missing_docs)] // documentation missing in model
        1600  +
                       /* ServerOperationGenerator.kt:55 */
 1493   1601   
pub struct MalformedBlob;
 1494   1602   
 1495   1603   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedBlob {
 1496   1604   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1497   1605   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1498   1606   
            "aws.protocoltests.restjson#MalformedBlob",
 1499   1607   
            "aws.protocoltests.restjson",
 1500   1608   
            "MalformedBlob",
 1501   1609   
        );
 1502   1610   
 1503   1611   
    type Input = crate::input::MalformedBlobInput;
 1504   1612   
    type Output = crate::output::MalformedBlobOutput;
 1505   1613   
    type Error = std::convert::Infallible;
 1506   1614   
}
 1507   1615   
 1508   1616   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedBlob {
 1509   1617   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1510   1618   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1511   1619   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1512   1620   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1513   1621   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1514   1622   
        >,
 1515   1623   
    >;
 1516   1624   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1517   1625   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1518   1626   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1519   1627   
    >;
 1520   1628   
 1521   1629   
    fn request_fmt() -> Self::RequestFmt {
 1522   1630   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1523   1631   
    }
 1524   1632   
 1525   1633   
    fn response_fmt() -> Self::ResponseFmt {
 1526   1634   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1527   1635   
    }
 1528   1636   
}
        1637  +
/* ServerOperationGenerator.kt:88 */
 1529   1638   
        1639  +
/* ServerOperationGenerator.kt:48 */
 1530   1640   
#[allow(missing_docs)] // documentation missing in model
        1641  +
                       /* ServerOperationGenerator.kt:55 */
 1531   1642   
pub struct MalformedMap;
 1532   1643   
 1533   1644   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedMap {
 1534   1645   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1535   1646   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1536   1647   
            "aws.protocoltests.restjson#MalformedMap",
 1537   1648   
            "aws.protocoltests.restjson",
 1538   1649   
            "MalformedMap",
 1539   1650   
        );
 1540   1651   
 1541   1652   
    type Input = crate::input::MalformedMapInput;
 1542   1653   
    type Output = crate::output::MalformedMapOutput;
 1543   1654   
    type Error = std::convert::Infallible;
 1544   1655   
}
 1545   1656   
 1546   1657   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedMap {
 1547   1658   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1548   1659   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1549   1660   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1550   1661   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1551   1662   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1552   1663   
        >,
 1553   1664   
    >;
 1554   1665   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1555   1666   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1556   1667   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1557   1668   
    >;
 1558   1669   
 1559   1670   
    fn request_fmt() -> Self::RequestFmt {
 1560   1671   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1561   1672   
    }
 1562   1673   
 1563   1674   
    fn response_fmt() -> Self::ResponseFmt {
 1564   1675   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1565   1676   
    }
 1566   1677   
}
        1678  +
/* ServerOperationGenerator.kt:88 */
 1567   1679   
        1680  +
/* ServerOperationGenerator.kt:48 */
 1568   1681   
#[allow(missing_docs)] // documentation missing in model
        1682  +
                       /* ServerOperationGenerator.kt:55 */
 1569   1683   
pub struct MalformedList;
 1570   1684   
 1571   1685   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedList {
 1572   1686   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1573   1687   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1574   1688   
            "aws.protocoltests.restjson#MalformedList",
 1575   1689   
            "aws.protocoltests.restjson",
 1576   1690   
            "MalformedList",
 1577   1691   
        );
 1578   1692   
 1579   1693   
    type Input = crate::input::MalformedListInput;
 1580   1694   
    type Output = crate::output::MalformedListOutput;
 1581   1695   
    type Error = std::convert::Infallible;
 1582   1696   
}
 1583   1697   
 1584   1698   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedList {
 1585   1699   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1586   1700   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1587   1701   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1588   1702   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1589   1703   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1590   1704   
        >,
 1591   1705   
    >;
 1592   1706   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1593   1707   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1594   1708   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1595   1709   
    >;
 1596   1710   
 1597   1711   
    fn request_fmt() -> Self::RequestFmt {
 1598   1712   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1599   1713   
    }
 1600   1714   
 1601   1715   
    fn response_fmt() -> Self::ResponseFmt {
 1602   1716   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1603   1717   
    }
 1604   1718   
}
        1719  +
/* ServerOperationGenerator.kt:88 */
 1605   1720   
        1721  +
/* ServerOperationGenerator.kt:48 */
 1606   1722   
#[allow(missing_docs)] // documentation missing in model
        1723  +
                       /* ServerOperationGenerator.kt:55 */
 1607   1724   
pub struct MalformedBoolean;
 1608   1725   
 1609   1726   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedBoolean {
 1610   1727   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1611   1728   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1612   1729   
            "aws.protocoltests.restjson#MalformedBoolean",
 1613   1730   
            "aws.protocoltests.restjson",
 1614   1731   
            "MalformedBoolean",
 1615   1732   
        );
 1616   1733   
 1617   1734   
    type Input = crate::input::MalformedBooleanInput;
 1618   1735   
    type Output = crate::output::MalformedBooleanOutput;
 1619   1736   
    type Error = crate::error::MalformedBooleanError;
 1620   1737   
}
 1621   1738   
 1622   1739   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedBoolean {
 1623   1740   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1624   1741   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1625   1742   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1626   1743   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1627   1744   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1628   1745   
        >,
 1629   1746   
    >;
 1630   1747   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1631   1748   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1632   1749   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1633   1750   
    >;
 1634   1751   
 1635   1752   
    fn request_fmt() -> Self::RequestFmt {
 1636   1753   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1637   1754   
    }
 1638   1755   
 1639   1756   
    fn response_fmt() -> Self::ResponseFmt {
 1640   1757   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1641   1758   
    }
 1642   1759   
}
        1760  +
/* ServerOperationGenerator.kt:88 */
 1643   1761   
        1762  +
/* ServerOperationGenerator.kt:48 */
 1644   1763   
#[allow(missing_docs)] // documentation missing in model
        1764  +
                       /* ServerOperationGenerator.kt:55 */
 1645   1765   
pub struct MalformedUnion;
 1646   1766   
 1647   1767   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedUnion {
 1648   1768   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1649   1769   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1650   1770   
            "aws.protocoltests.restjson#MalformedUnion",
 1651   1771   
            "aws.protocoltests.restjson",
 1652   1772   
            "MalformedUnion",
 1653   1773   
        );
 1654   1774   
 1655   1775   
    type Input = crate::input::MalformedUnionInput;
 1656   1776   
    type Output = crate::output::MalformedUnionOutput;
 1657   1777   
    type Error = std::convert::Infallible;
 1658   1778   
}
 1659   1779   
 1660   1780   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedUnion {
 1661   1781   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1662   1782   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1663   1783   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1664   1784   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1665   1785   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1666   1786   
        >,
 1667   1787   
    >;
 1668   1788   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1669   1789   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1670   1790   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1671   1791   
    >;
 1672   1792   
 1673   1793   
    fn request_fmt() -> Self::RequestFmt {
 1674   1794   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1675   1795   
    }
 1676   1796   
 1677   1797   
    fn response_fmt() -> Self::ResponseFmt {
 1678   1798   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1679   1799   
    }
 1680   1800   
}
        1801  +
/* ServerOperationGenerator.kt:88 */
 1681   1802   
        1803  +
/* ServerOperationGenerator.kt:48 */
 1682   1804   
#[allow(missing_docs)] // documentation missing in model
        1805  +
                       /* ServerOperationGenerator.kt:55 */
 1683   1806   
pub struct MalformedInteger;
 1684   1807   
 1685   1808   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedInteger {
 1686   1809   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1687   1810   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1688   1811   
            "aws.protocoltests.restjson#MalformedInteger",
 1689   1812   
            "aws.protocoltests.restjson",
 1690   1813   
            "MalformedInteger",
 1691   1814   
        );
 1692   1815   
 1693   1816   
    type Input = crate::input::MalformedIntegerInput;
 1694   1817   
    type Output = crate::output::MalformedIntegerOutput;
 1695   1818   
    type Error = crate::error::MalformedIntegerError;
 1696   1819   
}
 1697   1820   
 1698   1821   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedInteger {
 1699   1822   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1700   1823   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1701   1824   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1702   1825   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1703   1826   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1704   1827   
        >,
 1705   1828   
    >;
 1706   1829   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1707   1830   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1708   1831   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1709   1832   
    >;
 1710   1833   
 1711   1834   
    fn request_fmt() -> Self::RequestFmt {
 1712   1835   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1713   1836   
    }
 1714   1837   
 1715   1838   
    fn response_fmt() -> Self::ResponseFmt {
 1716   1839   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1717   1840   
    }
 1718   1841   
}
        1842  +
/* ServerOperationGenerator.kt:88 */
 1719   1843   
        1844  +
/* ServerOperationGenerator.kt:48 */
 1720   1845   
#[allow(missing_docs)] // documentation missing in model
        1846  +
                       /* ServerOperationGenerator.kt:55 */
 1721   1847   
pub struct MalformedRequestBody;
 1722   1848   
 1723   1849   
impl ::aws_smithy_http_server::operation::OperationShape for MalformedRequestBody {
 1724   1850   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1725   1851   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1726   1852   
            "aws.protocoltests.restjson#MalformedRequestBody",
 1727   1853   
            "aws.protocoltests.restjson",
 1728   1854   
            "MalformedRequestBody",
 1729   1855   
        );
 1730   1856   
 1731   1857   
    type Input = crate::input::MalformedRequestBodyInput;
 1732   1858   
    type Output = crate::output::MalformedRequestBodyOutput;
 1733   1859   
    type Error = std::convert::Infallible;
 1734   1860   
}
 1735   1861   
 1736   1862   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MalformedRequestBody {
 1737   1863   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1738   1864   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1739   1865   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1740   1866   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1741   1867   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1742   1868   
        >,
 1743   1869   
    >;
 1744   1870   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1745   1871   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1746   1872   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1747   1873   
    >;
 1748   1874   
 1749   1875   
    fn request_fmt() -> Self::RequestFmt {
 1750   1876   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1751   1877   
    }
 1752   1878   
 1753   1879   
    fn response_fmt() -> Self::ResponseFmt {
 1754   1880   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1755   1881   
    }
 1756   1882   
}
        1883  +
/* ServerOperationGenerator.kt:88 */
 1757   1884   
 1758         -
/// This example tests httpChecksumRequired trait
        1885  +
/// /* ServerOperationGenerator.kt:48 */This example tests httpChecksumRequired trait
        1886  +
/* ServerOperationGenerator.kt:55 */
 1759   1887   
pub struct HttpChecksumRequired;
 1760   1888   
 1761   1889   
impl ::aws_smithy_http_server::operation::OperationShape for HttpChecksumRequired {
 1762   1890   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1763   1891   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1764   1892   
            "aws.protocoltests.restjson#HttpChecksumRequired",
 1765   1893   
            "aws.protocoltests.restjson",
 1766   1894   
            "HttpChecksumRequired",
 1767   1895   
        );
 1768   1896   
 1769   1897   
    type Input = crate::input::HttpChecksumRequiredInput;
 1770   1898   
    type Output = crate::output::HttpChecksumRequiredOutput;
 1771   1899   
    type Error = std::convert::Infallible;
 1772   1900   
}
 1773   1901   
 1774   1902   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HttpChecksumRequired {
 1775   1903   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1776   1904   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1777   1905   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1778   1906   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1779   1907   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1780   1908   
        >,
 1781   1909   
    >;
 1782   1910   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1783   1911   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1784   1912   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1785   1913   
    >;
 1786   1914   
 1787   1915   
    fn request_fmt() -> Self::RequestFmt {
 1788   1916   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1789   1917   
    }
 1790   1918   
 1791   1919   
    fn response_fmt() -> Self::ResponseFmt {
 1792   1920   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1793   1921   
    }
 1794   1922   
}
        1923  +
/* ServerOperationGenerator.kt:88 */
 1795   1924   
        1925  +
/* ServerOperationGenerator.kt:48 */
 1796   1926   
#[allow(missing_docs)] // documentation missing in model
        1927  +
                       /* ServerOperationGenerator.kt:55 */
 1797   1928   
pub struct HostWithPathOperation;
 1798   1929   
 1799   1930   
impl ::aws_smithy_http_server::operation::OperationShape for HostWithPathOperation {
 1800   1931   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1801   1932   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1802   1933   
            "aws.protocoltests.restjson#HostWithPathOperation",
 1803   1934   
            "aws.protocoltests.restjson",
 1804   1935   
            "HostWithPathOperation",
 1805   1936   
        );
 1806   1937   
 1807   1938   
    type Input = crate::input::HostWithPathOperationInput;
 1808   1939   
    type Output = crate::output::HostWithPathOperationOutput;
 1809   1940   
    type Error = std::convert::Infallible;
 1810   1941   
}
 1811   1942   
 1812   1943   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HostWithPathOperation {
 1813   1944   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1814   1945   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1815   1946   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1816   1947   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1817   1948   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1818   1949   
        >,
 1819   1950   
    >;
 1820   1951   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1821   1952   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1822   1953   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1823   1954   
    >;
 1824   1955   
 1825   1956   
    fn request_fmt() -> Self::RequestFmt {
 1826   1957   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1827   1958   
    }
 1828   1959   
 1829   1960   
    fn response_fmt() -> Self::ResponseFmt {
 1830   1961   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1831   1962   
    }
 1832   1963   
}
        1964  +
/* ServerOperationGenerator.kt:88 */
 1833   1965   
        1966  +
/* ServerOperationGenerator.kt:48 */
 1834   1967   
#[allow(missing_docs)] // documentation missing in model
        1968  +
                       /* ServerOperationGenerator.kt:55 */
 1835   1969   
pub struct EndpointWithHostLabelOperation;
 1836   1970   
 1837   1971   
impl ::aws_smithy_http_server::operation::OperationShape for EndpointWithHostLabelOperation {
 1838   1972   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1839   1973   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1840   1974   
            "aws.protocoltests.restjson#EndpointWithHostLabelOperation",
 1841   1975   
            "aws.protocoltests.restjson",
 1842   1976   
            "EndpointWithHostLabelOperation",
 1843   1977   
        );
 1844   1978   
 1845   1979   
    type Input = crate::input::EndpointWithHostLabelOperationInput;
 1846   1980   
    type Output = crate::output::EndpointWithHostLabelOperationOutput;
 1847   1981   
    type Error = crate::error::EndpointWithHostLabelOperationError;
 1848   1982   
}
 1849   1983   
 1850   1984   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 1851   1985   
    for EndpointWithHostLabelOperation
 1852   1986   
{
 1853   1987   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1854   1988   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1855   1989   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1856   1990   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1857   1991   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1858   1992   
        >,
 1859   1993   
    >;
 1860   1994   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1861   1995   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1862   1996   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1863   1997   
    >;
 1864   1998   
 1865   1999   
    fn request_fmt() -> Self::RequestFmt {
 1866   2000   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1867   2001   
    }
 1868   2002   
 1869   2003   
    fn response_fmt() -> Self::ResponseFmt {
 1870   2004   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1871   2005   
    }
 1872   2006   
}
        2007  +
/* ServerOperationGenerator.kt:88 */
 1873   2008   
        2009  +
/* ServerOperationGenerator.kt:48 */
 1874   2010   
#[allow(missing_docs)] // documentation missing in model
        2011  +
                       /* ServerOperationGenerator.kt:55 */
 1875   2012   
pub struct EndpointOperation;
 1876   2013   
 1877   2014   
impl ::aws_smithy_http_server::operation::OperationShape for EndpointOperation {
 1878   2015   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1879   2016   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1880   2017   
            "aws.protocoltests.restjson#EndpointOperation",
 1881   2018   
            "aws.protocoltests.restjson",
 1882   2019   
            "EndpointOperation",
 1883   2020   
        );
 1884   2021   
 1885   2022   
    type Input = crate::input::EndpointOperationInput;
 1886   2023   
    type Output = crate::output::EndpointOperationOutput;
 1887   2024   
    type Error = std::convert::Infallible;
 1888   2025   
}
 1889   2026   
 1890   2027   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for EndpointOperation {
 1891   2028   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1892   2029   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1893   2030   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1894   2031   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1895   2032   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1896   2033   
        >,
 1897   2034   
    >;
 1898   2035   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1899   2036   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1900   2037   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1901   2038   
    >;
 1902   2039   
 1903   2040   
    fn request_fmt() -> Self::RequestFmt {
 1904   2041   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1905   2042   
    }
 1906   2043   
 1907   2044   
    fn response_fmt() -> Self::ResponseFmt {
 1908   2045   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1909   2046   
    }
 1910   2047   
}
        2048  +
/* ServerOperationGenerator.kt:88 */
 1911   2049   
 1912         -
/// This operation defines a union that uses jsonName on some members.
        2050  +
/// /* ServerOperationGenerator.kt:48 */This operation defines a union that uses jsonName on some members.
        2051  +
/* ServerOperationGenerator.kt:55 */
 1913   2052   
pub struct PostUnionWithJsonName;
 1914   2053   
 1915   2054   
impl ::aws_smithy_http_server::operation::OperationShape for PostUnionWithJsonName {
 1916   2055   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1917   2056   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1918   2057   
            "aws.protocoltests.restjson#PostUnionWithJsonName",
 1919   2058   
            "aws.protocoltests.restjson",
 1920   2059   
            "PostUnionWithJsonName",
 1921   2060   
        );
 1922   2061   
 1923   2062   
    type Input = crate::input::PostUnionWithJsonNameInput;
 1924   2063   
    type Output = crate::output::PostUnionWithJsonNameOutput;
 1925   2064   
    type Error = std::convert::Infallible;
 1926   2065   
}
 1927   2066   
 1928   2067   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for PostUnionWithJsonName {
 1929   2068   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1930   2069   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1931   2070   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1932   2071   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1933   2072   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1934   2073   
        >,
 1935   2074   
    >;
 1936   2075   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1937   2076   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1938   2077   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1939   2078   
    >;
 1940   2079   
 1941   2080   
    fn request_fmt() -> Self::RequestFmt {
 1942   2081   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1943   2082   
    }
 1944   2083   
 1945   2084   
    fn response_fmt() -> Self::ResponseFmt {
 1946   2085   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1947   2086   
    }
 1948   2087   
}
        2088  +
/* ServerOperationGenerator.kt:88 */
 1949   2089   
 1950         -
/// This operation defines a union with a Unit member.
        2090  +
/// /* ServerOperationGenerator.kt:48 */This operation defines a union with a Unit member.
        2091  +
/* ServerOperationGenerator.kt:55 */
 1951   2092   
pub struct PostPlayerAction;
 1952   2093   
 1953   2094   
impl ::aws_smithy_http_server::operation::OperationShape for PostPlayerAction {
 1954   2095   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1955   2096   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1956   2097   
            "aws.protocoltests.restjson#PostPlayerAction",
 1957   2098   
            "aws.protocoltests.restjson",
 1958   2099   
            "PostPlayerAction",
 1959   2100   
        );
 1960   2101   
 1961   2102   
    type Input = crate::input::PostPlayerActionInput;
 1962   2103   
    type Output = crate::output::PostPlayerActionOutput;
 1963   2104   
    type Error = std::convert::Infallible;
 1964   2105   
}
 1965   2106   
 1966   2107   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for PostPlayerAction {
 1967   2108   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 1968   2109   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1969   2110   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 1970   2111   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1971   2112   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1972   2113   
        >,
 1973   2114   
    >;
 1974   2115   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 1975   2116   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1976   2117   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 1977   2118   
    >;
 1978   2119   
 1979   2120   
    fn request_fmt() -> Self::RequestFmt {
 1980   2121   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 1981   2122   
    }
 1982   2123   
 1983   2124   
    fn response_fmt() -> Self::ResponseFmt {
 1984   2125   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 1985   2126   
    }
 1986   2127   
}
        2128  +
/* ServerOperationGenerator.kt:88 */
 1987   2129   
 1988         -
/// This operation uses unions for inputs and outputs.
        2130  +
/// /* ServerOperationGenerator.kt:48 */This operation uses unions for inputs and outputs.
        2131  +
/* ServerOperationGenerator.kt:55 */
 1989   2132   
pub struct JsonUnions;
 1990   2133   
 1991   2134   
impl ::aws_smithy_http_server::operation::OperationShape for JsonUnions {
 1992   2135   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 1993   2136   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 1994   2137   
            "aws.protocoltests.restjson#JsonUnions",
 1995   2138   
            "aws.protocoltests.restjson",
 1996   2139   
            "JsonUnions",
 1997   2140   
        );
 1998   2141   
 1999   2142   
    type Input = crate::input::JsonUnionsInput;
 2000   2143   
    type Output = crate::output::JsonUnionsOutput;
 2001   2144   
    type Error = crate::error::JsonUnionsError;
 2002   2145   
}
 2003   2146   
 2004   2147   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonUnions {
 2005   2148   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2006   2149   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2007   2150   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2008   2151   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2009   2152   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2010   2153   
        >,
 2011   2154   
    >;
 2012   2155   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2013   2156   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2014   2157   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2015   2158   
    >;
 2016   2159   
 2017   2160   
    fn request_fmt() -> Self::RequestFmt {
 2018   2161   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2019   2162   
    }
 2020   2163   
 2021   2164   
    fn response_fmt() -> Self::ResponseFmt {
 2022   2165   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2023   2166   
    }
 2024   2167   
}
        2168  +
/* ServerOperationGenerator.kt:88 */
 2025   2169   
 2026         -
/// This example serializes documents as the value of maps.
        2170  +
/// /* ServerOperationGenerator.kt:48 */This example serializes documents as the value of maps.
        2171  +
/* ServerOperationGenerator.kt:55 */
 2027   2172   
pub struct DocumentTypeAsMapValue;
 2028   2173   
 2029   2174   
impl ::aws_smithy_http_server::operation::OperationShape for DocumentTypeAsMapValue {
 2030   2175   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2031   2176   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2032   2177   
            "aws.protocoltests.restjson#DocumentTypeAsMapValue",
 2033   2178   
            "aws.protocoltests.restjson",
 2034   2179   
            "DocumentTypeAsMapValue",
 2035   2180   
        );
 2036   2181   
 2037   2182   
    type Input = crate::input::DocumentTypeAsMapValueInput;
 2038   2183   
    type Output = crate::output::DocumentTypeAsMapValueOutput;
 2039   2184   
    type Error = std::convert::Infallible;
 2040   2185   
}
 2041   2186   
 2042   2187   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 2043   2188   
    for DocumentTypeAsMapValue
 2044   2189   
{
 2045   2190   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2046   2191   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2047   2192   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2048   2193   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2049   2194   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2050   2195   
        >,
 2051   2196   
    >;
 2052   2197   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2053   2198   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2054   2199   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2055   2200   
    >;
 2056   2201   
 2057   2202   
    fn request_fmt() -> Self::RequestFmt {
 2058   2203   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2059   2204   
    }
 2060   2205   
 2061   2206   
    fn response_fmt() -> Self::ResponseFmt {
 2062   2207   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2063   2208   
    }
 2064   2209   
}
        2210  +
/* ServerOperationGenerator.kt:88 */
 2065   2211   
 2066         -
/// This example serializes a document as the entire HTTP payload.
        2212  +
/// /* ServerOperationGenerator.kt:48 */This example serializes a document as the entire HTTP payload.
        2213  +
/* ServerOperationGenerator.kt:55 */
 2067   2214   
pub struct DocumentTypeAsPayload;
 2068   2215   
 2069   2216   
impl ::aws_smithy_http_server::operation::OperationShape for DocumentTypeAsPayload {
 2070   2217   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2071   2218   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2072   2219   
            "aws.protocoltests.restjson#DocumentTypeAsPayload",
 2073   2220   
            "aws.protocoltests.restjson",
 2074   2221   
            "DocumentTypeAsPayload",
 2075   2222   
        );
 2076   2223   
 2077   2224   
    type Input = crate::input::DocumentTypeAsPayloadInput;
 2078   2225   
    type Output = crate::output::DocumentTypeAsPayloadOutput;
 2079   2226   
    type Error = std::convert::Infallible;
 2080   2227   
}
 2081   2228   
 2082   2229   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for DocumentTypeAsPayload {
 2083   2230   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2084   2231   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2085   2232   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2086   2233   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2087   2234   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2088   2235   
        >,
 2089   2236   
    >;
 2090   2237   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2091   2238   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2092   2239   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2093   2240   
    >;
 2094   2241   
 2095   2242   
    fn request_fmt() -> Self::RequestFmt {
 2096   2243   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2097   2244   
    }
 2098   2245   
 2099   2246   
    fn response_fmt() -> Self::ResponseFmt {
 2100   2247   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2101   2248   
    }
 2102   2249   
}
        2250  +
/* ServerOperationGenerator.kt:88 */
 2103   2251   
 2104         -
/// This example serializes a document as part of the payload.
        2252  +
/// /* ServerOperationGenerator.kt:48 */This example serializes a document as part of the payload.
        2253  +
/* ServerOperationGenerator.kt:55 */
 2105   2254   
pub struct DocumentType;
 2106   2255   
 2107   2256   
impl ::aws_smithy_http_server::operation::OperationShape for DocumentType {
 2108   2257   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2109   2258   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2110   2259   
            "aws.protocoltests.restjson#DocumentType",
 2111   2260   
            "aws.protocoltests.restjson",
 2112   2261   
            "DocumentType",
 2113   2262   
        );
 2114   2263   
 2115   2264   
    type Input = crate::input::DocumentTypeInput;
 2116   2265   
    type Output = crate::output::DocumentTypeOutput;
 2117   2266   
    type Error = std::convert::Infallible;
 2118   2267   
}
 2119   2268   
 2120   2269   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for DocumentType {
 2121   2270   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2122   2271   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2123   2272   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2124   2273   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2125   2274   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2126   2275   
        >,
 2127   2276   
    >;
 2128   2277   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2129   2278   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2130   2279   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2131   2280   
    >;
 2132   2281   
 2133   2282   
    fn request_fmt() -> Self::RequestFmt {
 2134   2283   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2135   2284   
    }
 2136   2285   
 2137   2286   
    fn response_fmt() -> Self::ResponseFmt {
 2138   2287   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2139   2288   
    }
 2140   2289   
}
        2290  +
/* ServerOperationGenerator.kt:88 */
 2141   2291   
 2142         -
/// Blobs are base64 encoded
        2292  +
/// /* ServerOperationGenerator.kt:48 */Blobs are base64 encoded
        2293  +
/* ServerOperationGenerator.kt:55 */
 2143   2294   
pub struct JsonBlobs;
 2144   2295   
 2145   2296   
impl ::aws_smithy_http_server::operation::OperationShape for JsonBlobs {
 2146   2297   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2147   2298   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2148   2299   
            "aws.protocoltests.restjson#JsonBlobs",
 2149   2300   
            "aws.protocoltests.restjson",
 2150   2301   
            "JsonBlobs",
 2151   2302   
        );
 2152   2303   
 2153   2304   
    type Input = crate::input::JsonBlobsInput;
 2154   2305   
    type Output = crate::output::JsonBlobsOutput;
 2155   2306   
    type Error = std::convert::Infallible;
 2156   2307   
}
 2157   2308   
 2158   2309   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonBlobs {
 2159   2310   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2160   2311   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2161   2312   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2162   2313   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2163   2314   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2164   2315   
        >,
 2165   2316   
    >;
 2166   2317   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2167   2318   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2168   2319   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2169   2320   
    >;
 2170   2321   
 2171   2322   
    fn request_fmt() -> Self::RequestFmt {
 2172   2323   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2173   2324   
    }
 2174   2325   
 2175   2326   
    fn response_fmt() -> Self::ResponseFmt {
 2176   2327   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2177   2328   
    }
 2178   2329   
}
        2330  +
/* ServerOperationGenerator.kt:88 */
 2179   2331   
 2180         -
/// This example tests sparse map serialization.
        2332  +
/// /* ServerOperationGenerator.kt:48 */This example tests sparse map serialization.
        2333  +
/* ServerOperationGenerator.kt:55 */
 2181   2334   
pub struct SparseJsonMaps;
 2182   2335   
 2183   2336   
impl ::aws_smithy_http_server::operation::OperationShape for SparseJsonMaps {
 2184   2337   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2185   2338   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2186   2339   
            "aws.protocoltests.restjson#SparseJsonMaps",
 2187   2340   
            "aws.protocoltests.restjson",
 2188   2341   
            "SparseJsonMaps",
 2189   2342   
        );
 2190   2343   
 2191   2344   
    type Input = crate::input::SparseJsonMapsInput;
 2192   2345   
    type Output = crate::output::SparseJsonMapsOutput;
 2193   2346   
    type Error = crate::error::SparseJsonMapsError;
 2194   2347   
}
 2195   2348   
 2196   2349   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for SparseJsonMaps {
 2197   2350   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2198   2351   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2199   2352   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2200   2353   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2201   2354   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2202   2355   
        >,
 2203   2356   
    >;
 2204   2357   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2205   2358   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2206   2359   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2207   2360   
    >;
 2208   2361   
 2209   2362   
    fn request_fmt() -> Self::RequestFmt {
 2210   2363   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2211   2364   
    }
 2212   2365   
 2213   2366   
    fn response_fmt() -> Self::ResponseFmt {
 2214   2367   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2215   2368   
    }
 2216   2369   
}
        2370  +
/* ServerOperationGenerator.kt:88 */
 2217   2371   
 2218         -
/// The example tests basic map serialization.
        2372  +
/// /* ServerOperationGenerator.kt:48 */The example tests basic map serialization.
        2373  +
/* ServerOperationGenerator.kt:55 */
 2219   2374   
pub struct JsonMaps;
 2220   2375   
 2221   2376   
impl ::aws_smithy_http_server::operation::OperationShape for JsonMaps {
 2222   2377   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2223   2378   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2224   2379   
            "aws.protocoltests.restjson#JsonMaps",
 2225   2380   
            "aws.protocoltests.restjson",
 2226   2381   
            "JsonMaps",
 2227   2382   
        );
 2228   2383   
 2229   2384   
    type Input = crate::input::JsonMapsInput;
 2230   2385   
    type Output = crate::output::JsonMapsOutput;
 2231   2386   
    type Error = crate::error::JsonMapsError;
 2232   2387   
}
 2233   2388   
 2234   2389   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonMaps {
 2235   2390   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2236   2391   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2237   2392   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2238   2393   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2239   2394   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2240   2395   
        >,
 2241   2396   
    >;
 2242   2397   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2243   2398   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2244   2399   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2245   2400   
    >;
 2246   2401   
 2247   2402   
    fn request_fmt() -> Self::RequestFmt {
 2248   2403   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2249   2404   
    }
 2250   2405   
 2251   2406   
    fn response_fmt() -> Self::ResponseFmt {
 2252   2407   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2253   2408   
    }
 2254   2409   
}
        2410  +
/* ServerOperationGenerator.kt:88 */
 2255   2411   
        2412  +
/* ServerOperationGenerator.kt:48 */
 2256   2413   
#[allow(missing_docs)] // documentation missing in model
        2414  +
                       /* ServerOperationGenerator.kt:55 */
 2257   2415   
pub struct SparseJsonLists;
 2258   2416   
 2259   2417   
impl ::aws_smithy_http_server::operation::OperationShape for SparseJsonLists {
 2260   2418   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2261   2419   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2262   2420   
            "aws.protocoltests.restjson#SparseJsonLists",
 2263   2421   
            "aws.protocoltests.restjson",
 2264   2422   
            "SparseJsonLists",
 2265   2423   
        );
 2266   2424   
 2267   2425   
    type Input = crate::input::SparseJsonListsInput;
 2268   2426   
    type Output = crate::output::SparseJsonListsOutput;
 2269   2427   
    type Error = std::convert::Infallible;
 2270   2428   
}
 2271   2429   
 2272   2430   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for SparseJsonLists {
 2273   2431   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2274   2432   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2275   2433   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2276   2434   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2277   2435   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2278   2436   
        >,
 2279   2437   
    >;
 2280   2438   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2281   2439   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2282   2440   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2283   2441   
    >;
 2284   2442   
 2285   2443   
    fn request_fmt() -> Self::RequestFmt {
 2286   2444   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2287   2445   
    }
 2288   2446   
 2289   2447   
    fn response_fmt() -> Self::ResponseFmt {
 2290   2448   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2291   2449   
    }
 2292   2450   
}
        2451  +
/* ServerOperationGenerator.kt:88 */
 2293   2452   
 2294         -
/// This test case serializes JSON lists for the following cases for both input and output: 1. Normal JSON lists. 2. Normal JSON sets. 3. JSON lists of lists. 4. Lists of structures.
        2453  +
/// /* ServerOperationGenerator.kt:48 */This test case serializes JSON lists for the following cases for both input and output: 1. Normal JSON lists. 2. Normal JSON sets. 3. JSON lists of lists. 4. Lists of structures.
        2454  +
/* ServerOperationGenerator.kt:55 */
 2295   2455   
pub struct JsonLists;
 2296   2456   
 2297   2457   
impl ::aws_smithy_http_server::operation::OperationShape for JsonLists {
 2298   2458   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2299   2459   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2300   2460   
            "aws.protocoltests.restjson#JsonLists",
 2301   2461   
            "aws.protocoltests.restjson",
 2302   2462   
            "JsonLists",
 2303   2463   
        );
 2304   2464   
 2305   2465   
    type Input = crate::input::JsonListsInput;
 2306   2466   
    type Output = crate::output::JsonListsOutput;
 2307   2467   
    type Error = crate::error::JsonListsError;
 2308   2468   
}
 2309   2469   
 2310   2470   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonLists {
 2311   2471   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2312   2472   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2313   2473   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2314   2474   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2315   2475   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2316   2476   
        >,
 2317   2477   
    >;
 2318   2478   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2319   2479   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2320   2480   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2321   2481   
    >;
 2322   2482   
 2323   2483   
    fn request_fmt() -> Self::RequestFmt {
 2324   2484   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2325   2485   
    }
 2326   2486   
 2327   2487   
    fn response_fmt() -> Self::ResponseFmt {
 2328   2488   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2329   2489   
    }
 2330   2490   
}
        2491  +
/* ServerOperationGenerator.kt:88 */
 2331   2492   
 2332         -
/// Recursive shapes
        2493  +
/// /* ServerOperationGenerator.kt:48 */Recursive shapes
        2494  +
/* ServerOperationGenerator.kt:55 */
 2333   2495   
pub struct RecursiveShapes;
 2334   2496   
 2335   2497   
impl ::aws_smithy_http_server::operation::OperationShape for RecursiveShapes {
 2336   2498   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2337   2499   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2338   2500   
            "aws.protocoltests.restjson#RecursiveShapes",
 2339   2501   
            "aws.protocoltests.restjson",
 2340   2502   
            "RecursiveShapes",
 2341   2503   
        );
 2342   2504   
 2343   2505   
    type Input = crate::input::RecursiveShapesInput;
 2344   2506   
    type Output = crate::output::RecursiveShapesOutput;
 2345   2507   
    type Error = std::convert::Infallible;
 2346   2508   
}
 2347   2509   
 2348   2510   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for RecursiveShapes {
 2349   2511   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2350   2512   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2351   2513   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2352   2514   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2353   2515   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2354   2516   
        >,
 2355   2517   
    >;
 2356   2518   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2357   2519   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2358   2520   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2359   2521   
    >;
 2360   2522   
 2361   2523   
    fn request_fmt() -> Self::RequestFmt {
 2362   2524   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2363   2525   
    }
 2364   2526   
 2365   2527   
    fn response_fmt() -> Self::ResponseFmt {
 2366   2528   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2367   2529   
    }
 2368   2530   
}
        2531  +
/* ServerOperationGenerator.kt:88 */
 2369   2532   
 2370         -
/// This example serializes intEnums as top level properties, in lists, sets, and maps.
        2533  +
/// /* ServerOperationGenerator.kt:48 */This example serializes intEnums as top level properties, in lists, sets, and maps.
        2534  +
/* ServerOperationGenerator.kt:55 */
 2371   2535   
pub struct JsonIntEnums;
 2372   2536   
 2373   2537   
impl ::aws_smithy_http_server::operation::OperationShape for JsonIntEnums {
 2374   2538   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2375   2539   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2376   2540   
            "aws.protocoltests.restjson#JsonIntEnums",
 2377   2541   
            "aws.protocoltests.restjson",
 2378   2542   
            "JsonIntEnums",
 2379   2543   
        );
 2380   2544   
 2381   2545   
    type Input = crate::input::JsonIntEnumsInput;
 2382   2546   
    type Output = crate::output::JsonIntEnumsOutput;
 2383   2547   
    type Error = crate::error::JsonIntEnumsError;
 2384   2548   
}
 2385   2549   
 2386   2550   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonIntEnums {
 2387   2551   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2388   2552   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2389   2553   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2390   2554   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2391   2555   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2392   2556   
        >,
 2393   2557   
    >;
 2394   2558   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2395   2559   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2396   2560   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2397   2561   
    >;
 2398   2562   
 2399   2563   
    fn request_fmt() -> Self::RequestFmt {
 2400   2564   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2401   2565   
    }
 2402   2566   
 2403   2567   
    fn response_fmt() -> Self::ResponseFmt {
 2404   2568   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2405   2569   
    }
 2406   2570   
}
        2571  +
/* ServerOperationGenerator.kt:88 */
 2407   2572   
 2408         -
/// This example serializes enums as top level properties, in lists, sets, and maps.
        2573  +
/// /* ServerOperationGenerator.kt:48 */This example serializes enums as top level properties, in lists, sets, and maps.
        2574  +
/* ServerOperationGenerator.kt:55 */
 2409   2575   
pub struct JsonEnums;
 2410   2576   
 2411   2577   
impl ::aws_smithy_http_server::operation::OperationShape for JsonEnums {
 2412   2578   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2413   2579   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2414   2580   
            "aws.protocoltests.restjson#JsonEnums",
 2415   2581   
            "aws.protocoltests.restjson",
 2416   2582   
            "JsonEnums",
 2417   2583   
        );
 2418   2584   
 2419   2585   
    type Input = crate::input::JsonEnumsInput;
 2420   2586   
    type Output = crate::output::JsonEnumsOutput;
 2421   2587   
    type Error = crate::error::JsonEnumsError;
 2422   2588   
}
 2423   2589   
 2424   2590   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonEnums {
 2425   2591   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2426   2592   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2427   2593   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2428   2594   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2429   2595   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2430   2596   
        >,
 2431   2597   
    >;
 2432   2598   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2433   2599   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2434   2600   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2435   2601   
    >;
 2436   2602   
 2437   2603   
    fn request_fmt() -> Self::RequestFmt {
 2438   2604   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2439   2605   
    }
 2440   2606   
 2441   2607   
    fn response_fmt() -> Self::ResponseFmt {
 2442   2608   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2443   2609   
    }
 2444   2610   
}
        2611  +
/* ServerOperationGenerator.kt:88 */
 2445   2612   
 2446         -
/// This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.
        2613  +
/// /* ServerOperationGenerator.kt:48 */This tests how timestamps are serialized, including using the default format of date-time and various @timestampFormat trait values.
        2614  +
/* ServerOperationGenerator.kt:55 */
 2447   2615   
pub struct JsonTimestamps;
 2448   2616   
 2449   2617   
impl ::aws_smithy_http_server::operation::OperationShape for JsonTimestamps {
 2450   2618   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2451   2619   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2452   2620   
            "aws.protocoltests.restjson#JsonTimestamps",
 2453   2621   
            "aws.protocoltests.restjson",
 2454   2622   
            "JsonTimestamps",
 2455   2623   
        );
 2456   2624   
 2457   2625   
    type Input = crate::input::JsonTimestampsInput;
 2458   2626   
    type Output = crate::output::JsonTimestampsOutput;
 2459   2627   
    type Error = std::convert::Infallible;
 2460   2628   
}
 2461   2629   
 2462   2630   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonTimestamps {
 2463   2631   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2464   2632   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2465   2633   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2466   2634   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2467   2635   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2468   2636   
        >,
 2469   2637   
    >;
 2470   2638   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2471   2639   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2472   2640   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2473   2641   
    >;
 2474   2642   
 2475   2643   
    fn request_fmt() -> Self::RequestFmt {
 2476   2644   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2477   2645   
    }
 2478   2646   
 2479   2647   
    fn response_fmt() -> Self::ResponseFmt {
 2480   2648   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2481   2649   
    }
 2482   2650   
}
        2651  +
/* ServerOperationGenerator.kt:88 */
 2483   2652   
        2653  +
/* ServerOperationGenerator.kt:48 */
 2484   2654   
#[allow(missing_docs)] // documentation missing in model
        2655  +
                       /* ServerOperationGenerator.kt:55 */
 2485   2656   
pub struct SimpleScalarProperties;
 2486   2657   
 2487   2658   
impl ::aws_smithy_http_server::operation::OperationShape for SimpleScalarProperties {
 2488   2659   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2489   2660   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2490   2661   
            "aws.protocoltests.restjson#SimpleScalarProperties",
 2491   2662   
            "aws.protocoltests.restjson",
 2492   2663   
            "SimpleScalarProperties",
 2493   2664   
        );
 2494   2665   
 2495   2666   
    type Input = crate::input::SimpleScalarPropertiesInput;
 2496   2667   
    type Output = crate::output::SimpleScalarPropertiesOutput;
 2497   2668   
    type Error = std::convert::Infallible;
 2498   2669   
}
 2499   2670   
 2500   2671   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 2501   2672   
    for SimpleScalarProperties
 2502   2673   
{
 2503   2674   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2504   2675   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2505   2676   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2506   2677   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2507   2678   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2508   2679   
        >,
 2509   2680   
    >;
 2510   2681   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2511   2682   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2512   2683   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2513   2684   
    >;
 2514   2685   
 2515   2686   
    fn request_fmt() -> Self::RequestFmt {
 2516   2687   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2517   2688   
    }
 2518   2689   
 2519   2690   
    fn response_fmt() -> Self::ResponseFmt {
 2520   2691   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2521   2692   
    }
 2522   2693   
}
        2694  +
/* ServerOperationGenerator.kt:88 */
 2523   2695   
 2524         -
/// This operation has four possible return values: 1. A successful response in the form of GreetingWithErrorsOutput 2. An InvalidGreeting error. 3. A BadRequest error. 4. A FooError. Implementations must be able to successfully take a response and properly (de)serialize successful and error responses based on the the presence of the
        2696  +
/// /* ServerOperationGenerator.kt:48 */This operation has four possible return values: 1. A successful response in the form of GreetingWithErrorsOutput 2. An InvalidGreeting error. 3. A BadRequest error. 4. A FooError. Implementations must be able to successfully take a response and properly (de)serialize successful and error responses based on the the presence of the
        2697  +
/* ServerOperationGenerator.kt:55 */
 2525   2698   
pub struct GreetingWithErrors;
 2526   2699   
 2527   2700   
impl ::aws_smithy_http_server::operation::OperationShape for GreetingWithErrors {
 2528   2701   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2529   2702   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2530   2703   
            "aws.protocoltests.restjson#GreetingWithErrors",
 2531   2704   
            "aws.protocoltests.restjson",
 2532   2705   
            "GreetingWithErrors",
 2533   2706   
        );
 2534   2707   
 2535   2708   
    type Input = crate::input::GreetingWithErrorsInput;
 2536   2709   
    type Output = crate::output::GreetingWithErrorsOutput;
 2537   2710   
    type Error = crate::error::GreetingWithErrorsError;
 2538   2711   
}
 2539   2712   
 2540   2713   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for GreetingWithErrors {
 2541   2714   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2542   2715   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2543   2716   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2544   2717   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2545   2718   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2546   2719   
        >,
 2547   2720   
    >;
 2548   2721   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2549   2722   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2550   2723   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2551   2724   
    >;
 2552   2725   
 2553   2726   
    fn request_fmt() -> Self::RequestFmt {
 2554   2727   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2555   2728   
    }
 2556   2729   
 2557   2730   
    fn response_fmt() -> Self::ResponseFmt {
 2558   2731   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2559   2732   
    }
 2560   2733   
}
        2734  +
/* ServerOperationGenerator.kt:88 */
 2561   2735   
 2562         -
/// This examples serializes a streaming media-typed blob shape in the request body. This examples uses a `@mediaType` trait on the payload to force a custom content-type to be serialized.
        2736  +
/// /* ServerOperationGenerator.kt:48 */This examples serializes a streaming media-typed blob shape in the request body. This examples uses a `@mediaType` trait on the payload to force a custom content-type to be serialized.
        2737  +
/* ServerOperationGenerator.kt:55 */
 2563   2738   
pub struct StreamingTraitsWithMediaType;
 2564   2739   
 2565   2740   
impl ::aws_smithy_http_server::operation::OperationShape for StreamingTraitsWithMediaType {
 2566   2741   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2567   2742   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2568   2743   
            "aws.protocoltests.restjson#StreamingTraitsWithMediaType",
 2569   2744   
            "aws.protocoltests.restjson",
 2570   2745   
            "StreamingTraitsWithMediaType",
 2571   2746   
        );
 2572   2747   
 2573   2748   
    type Input = crate::input::StreamingTraitsWithMediaTypeInput;
 2574   2749   
    type Output = crate::output::StreamingTraitsWithMediaTypeOutput;
 2575   2750   
    type Error = std::convert::Infallible;
 2576   2751   
}
 2577   2752   
 2578   2753   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 2579   2754   
    for StreamingTraitsWithMediaType
 2580   2755   
{
 2581   2756   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2582   2757   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2583   2758   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2584   2759   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2585   2760   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2586   2761   
        >,
 2587   2762   
    >;
 2588   2763   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2589   2764   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2590   2765   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2591   2766   
    >;
 2592   2767   
 2593   2768   
    fn request_fmt() -> Self::RequestFmt {
 2594   2769   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2595   2770   
    }
 2596   2771   
 2597   2772   
    fn response_fmt() -> Self::ResponseFmt {
 2598   2773   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2599   2774   
    }
 2600   2775   
}
        2776  +
/* ServerOperationGenerator.kt:88 */
 2601   2777   
 2602         -
/// This examples serializes a streaming blob shape with a required content length in the request body. In this example, no JSON document is synthesized because the payload is not a structure or a union type.
        2778  +
/// /* ServerOperationGenerator.kt:48 */This examples serializes a streaming blob shape with a required content length in the request body. In this example, no JSON document is synthesized because the payload is not a structure or a union type.
        2779  +
/* ServerOperationGenerator.kt:55 */
 2603   2780   
pub struct StreamingTraitsRequireLength;
 2604   2781   
 2605   2782   
impl ::aws_smithy_http_server::operation::OperationShape for StreamingTraitsRequireLength {
 2606   2783   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2607   2784   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2608   2785   
            "aws.protocoltests.restjson#StreamingTraitsRequireLength",
 2609   2786   
            "aws.protocoltests.restjson",
 2610   2787   
            "StreamingTraitsRequireLength",
 2611   2788   
        );
 2612   2789   
 2613   2790   
    type Input = crate::input::StreamingTraitsRequireLengthInput;
 2614   2791   
    type Output = crate::output::StreamingTraitsRequireLengthOutput;
 2615   2792   
    type Error = std::convert::Infallible;
 2616   2793   
}
 2617   2794   
 2618   2795   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 2619   2796   
    for StreamingTraitsRequireLength
 2620   2797   
{
 2621   2798   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2622   2799   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2623   2800   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2624   2801   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2625   2802   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2626   2803   
        >,
 2627   2804   
    >;
 2628   2805   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2629   2806   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2630   2807   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2631   2808   
    >;
 2632   2809   
 2633   2810   
    fn request_fmt() -> Self::RequestFmt {
 2634   2811   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2635   2812   
    }
 2636   2813   
 2637   2814   
    fn response_fmt() -> Self::ResponseFmt {
 2638   2815   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2639   2816   
    }
 2640   2817   
}
        2818  +
/* ServerOperationGenerator.kt:88 */
 2641   2819   
 2642         -
/// This examples serializes a streaming blob shape in the request body. In this example, no JSON document is synthesized because the payload is not a structure or a union type.
        2820  +
/// /* ServerOperationGenerator.kt:48 */This examples serializes a streaming blob shape in the request body. In this example, no JSON document is synthesized because the payload is not a structure or a union type.
        2821  +
/* ServerOperationGenerator.kt:55 */
 2643   2822   
pub struct StreamingTraits;
 2644   2823   
 2645   2824   
impl ::aws_smithy_http_server::operation::OperationShape for StreamingTraits {
 2646   2825   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2647   2826   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2648   2827   
            "aws.protocoltests.restjson#StreamingTraits",
 2649   2828   
            "aws.protocoltests.restjson",
 2650   2829   
            "StreamingTraits",
 2651   2830   
        );
 2652   2831   
 2653   2832   
    type Input = crate::input::StreamingTraitsInput;
 2654   2833   
    type Output = crate::output::StreamingTraitsOutput;
 2655   2834   
    type Error = std::convert::Infallible;
 2656   2835   
}
 2657   2836   
 2658   2837   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for StreamingTraits {
 2659   2838   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2660   2839   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2661   2840   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2662   2841   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2663   2842   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2664   2843   
        >,
 2665   2844   
    >;
 2666   2845   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2667   2846   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2668   2847   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2669   2848   
    >;
 2670   2849   
 2671   2850   
    fn request_fmt() -> Self::RequestFmt {
 2672   2851   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2673   2852   
    }
 2674   2853   
 2675   2854   
    fn response_fmt() -> Self::ResponseFmt {
 2676   2855   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2677   2856   
    }
 2678   2857   
}
        2858  +
/* ServerOperationGenerator.kt:88 */
 2679   2859   
        2860  +
/* ServerOperationGenerator.kt:48 */
 2680   2861   
#[allow(missing_docs)] // documentation missing in model
        2862  +
                       /* ServerOperationGenerator.kt:55 */
 2681   2863   
pub struct HttpResponseCode;
 2682   2864   
 2683   2865   
impl ::aws_smithy_http_server::operation::OperationShape for HttpResponseCode {
 2684   2866   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2685   2867   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2686   2868   
            "aws.protocoltests.restjson#HttpResponseCode",
 2687   2869   
            "aws.protocoltests.restjson",
 2688   2870   
            "HttpResponseCode",
 2689   2871   
        );
 2690   2872   
 2691   2873   
    type Input = crate::input::HttpResponseCodeInput;
 2692   2874   
    type Output = crate::output::HttpResponseCodeOutput;
 2693   2875   
    type Error = std::convert::Infallible;
 2694   2876   
}
 2695   2877   
 2696   2878   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HttpResponseCode {
 2697   2879   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2698   2880   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2699   2881   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2700   2882   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2701   2883   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2702   2884   
        >,
 2703   2885   
    >;
 2704   2886   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2705   2887   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2706   2888   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2707   2889   
    >;
 2708   2890   
 2709   2891   
    fn request_fmt() -> Self::RequestFmt {
 2710   2892   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2711   2893   
    }
 2712   2894   
 2713   2895   
    fn response_fmt() -> Self::ResponseFmt {
 2714   2896   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2715   2897   
    }
 2716   2898   
}
        2899  +
/* ServerOperationGenerator.kt:88 */
 2717   2900   
 2718         -
/// This example serializes a union in the payload.
        2901  +
/// /* ServerOperationGenerator.kt:48 */This example serializes a union in the payload.
        2902  +
/* ServerOperationGenerator.kt:55 */
 2719   2903   
pub struct HttpPayloadWithUnion;
 2720   2904   
 2721   2905   
impl ::aws_smithy_http_server::operation::OperationShape for HttpPayloadWithUnion {
 2722   2906   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2723   2907   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2724   2908   
            "aws.protocoltests.restjson#HttpPayloadWithUnion",
 2725   2909   
            "aws.protocoltests.restjson",
 2726   2910   
            "HttpPayloadWithUnion",
 2727   2911   
        );
 2728   2912   
 2729   2913   
    type Input = crate::input::HttpPayloadWithUnionInput;
 2730   2914   
    type Output = crate::output::HttpPayloadWithUnionOutput;
 2731   2915   
    type Error = std::convert::Infallible;
 2732   2916   
}
 2733   2917   
 2734   2918   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HttpPayloadWithUnion {
 2735   2919   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2736   2920   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2737   2921   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2738   2922   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2739   2923   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2740   2924   
        >,
 2741   2925   
    >;
 2742   2926   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2743   2927   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2744   2928   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2745   2929   
    >;
 2746   2930   
 2747   2931   
    fn request_fmt() -> Self::RequestFmt {
 2748   2932   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2749   2933   
    }
 2750   2934   
 2751   2935   
    fn response_fmt() -> Self::ResponseFmt {
 2752   2936   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2753   2937   
    }
 2754   2938   
}
        2939  +
/* ServerOperationGenerator.kt:88 */
 2755   2940   
        2941  +
/* ServerOperationGenerator.kt:48 */
 2756   2942   
#[allow(missing_docs)] // documentation missing in model
        2943  +
                       /* ServerOperationGenerator.kt:55 */
 2757   2944   
pub struct HttpStringPayload;
 2758   2945   
 2759   2946   
impl ::aws_smithy_http_server::operation::OperationShape for HttpStringPayload {
 2760   2947   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2761   2948   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2762   2949   
            "aws.protocoltests.restjson#HttpStringPayload",
 2763   2950   
            "aws.protocoltests.restjson",
 2764   2951   
            "HttpStringPayload",
 2765   2952   
        );
 2766   2953   
 2767   2954   
    type Input = crate::input::HttpStringPayloadInput;
 2768   2955   
    type Output = crate::output::HttpStringPayloadOutput;
 2769   2956   
    type Error = std::convert::Infallible;
 2770   2957   
}
 2771   2958   
 2772   2959   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HttpStringPayload {
 2773   2960   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2774   2961   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2775   2962   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2776   2963   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2777   2964   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2778   2965   
        >,
 2779   2966   
    >;
 2780   2967   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2781   2968   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2782   2969   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2783   2970   
    >;
 2784   2971   
 2785   2972   
    fn request_fmt() -> Self::RequestFmt {
 2786   2973   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2787   2974   
    }
 2788   2975   
 2789   2976   
    fn response_fmt() -> Self::ResponseFmt {
 2790   2977   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2791   2978   
    }
 2792   2979   
}
        2980  +
/* ServerOperationGenerator.kt:88 */
 2793   2981   
        2982  +
/* ServerOperationGenerator.kt:48 */
 2794   2983   
#[allow(missing_docs)] // documentation missing in model
        2984  +
                       /* ServerOperationGenerator.kt:55 */
 2795   2985   
pub struct HttpEnumPayload;
 2796   2986   
 2797   2987   
impl ::aws_smithy_http_server::operation::OperationShape for HttpEnumPayload {
 2798   2988   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2799   2989   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2800   2990   
            "aws.protocoltests.restjson#HttpEnumPayload",
 2801   2991   
            "aws.protocoltests.restjson",
 2802   2992   
            "HttpEnumPayload",
 2803   2993   
        );
 2804   2994   
 2805   2995   
    type Input = crate::input::HttpEnumPayloadInput;
 2806   2996   
    type Output = crate::output::HttpEnumPayloadOutput;
 2807   2997   
    type Error = crate::error::HttpEnumPayloadError;
 2808   2998   
}
 2809   2999   
 2810   3000   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HttpEnumPayload {
 2811   3001   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2812   3002   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2813   3003   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2814   3004   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2815   3005   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2816   3006   
        >,
 2817   3007   
    >;
 2818   3008   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2819   3009   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2820   3010   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2821   3011   
    >;
 2822   3012   
 2823   3013   
    fn request_fmt() -> Self::RequestFmt {
 2824   3014   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2825   3015   
    }
 2826   3016   
 2827   3017   
    fn response_fmt() -> Self::ResponseFmt {
 2828   3018   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2829   3019   
    }
 2830   3020   
}
        3021  +
/* ServerOperationGenerator.kt:88 */
 2831   3022   
 2832         -
/// This example serializes a structure in the payload. Note that serializing a structure changes the wrapper element name to match the targeted structure.
        3023  +
/// /* ServerOperationGenerator.kt:48 */This example serializes a structure in the payload. Note that serializing a structure changes the wrapper element name to match the targeted structure.
        3024  +
/* ServerOperationGenerator.kt:55 */
 2833   3025   
pub struct HttpPayloadWithStructure;
 2834   3026   
 2835   3027   
impl ::aws_smithy_http_server::operation::OperationShape for HttpPayloadWithStructure {
 2836   3028   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2837   3029   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2838   3030   
            "aws.protocoltests.restjson#HttpPayloadWithStructure",
 2839   3031   
            "aws.protocoltests.restjson",
 2840   3032   
            "HttpPayloadWithStructure",
 2841   3033   
        );
 2842   3034   
 2843   3035   
    type Input = crate::input::HttpPayloadWithStructureInput;
 2844   3036   
    type Output = crate::output::HttpPayloadWithStructureOutput;
 2845   3037   
    type Error = std::convert::Infallible;
 2846   3038   
}
 2847   3039   
 2848   3040   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 2849   3041   
    for HttpPayloadWithStructure
 2850   3042   
{
 2851   3043   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2852   3044   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2853   3045   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2854   3046   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2855   3047   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2856   3048   
        >,
 2857   3049   
    >;
 2858   3050   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2859   3051   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2860   3052   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2861   3053   
    >;
 2862   3054   
 2863   3055   
    fn request_fmt() -> Self::RequestFmt {
 2864   3056   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2865   3057   
    }
 2866   3058   
 2867   3059   
    fn response_fmt() -> Self::ResponseFmt {
 2868   3060   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2869   3061   
    }
 2870   3062   
}
        3063  +
/* ServerOperationGenerator.kt:88 */
 2871   3064   
 2872         -
/// This example uses a `@mediaType` trait on the payload to force a custom content-type to be serialized.
        3065  +
/// /* ServerOperationGenerator.kt:48 */This example uses a `@mediaType` trait on the payload to force a custom content-type to be serialized.
        3066  +
/* ServerOperationGenerator.kt:55 */
 2873   3067   
pub struct HttpPayloadTraitsWithMediaType;
 2874   3068   
 2875   3069   
impl ::aws_smithy_http_server::operation::OperationShape for HttpPayloadTraitsWithMediaType {
 2876   3070   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2877   3071   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2878   3072   
            "aws.protocoltests.restjson#HttpPayloadTraitsWithMediaType",
 2879   3073   
            "aws.protocoltests.restjson",
 2880   3074   
            "HttpPayloadTraitsWithMediaType",
 2881   3075   
        );
 2882   3076   
 2883   3077   
    type Input = crate::input::HttpPayloadTraitsWithMediaTypeInput;
 2884   3078   
    type Output = crate::output::HttpPayloadTraitsWithMediaTypeOutput;
 2885   3079   
    type Error = std::convert::Infallible;
 2886   3080   
}
 2887   3081   
 2888   3082   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 2889   3083   
    for HttpPayloadTraitsWithMediaType
 2890   3084   
{
 2891   3085   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2892   3086   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2893   3087   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2894   3088   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2895   3089   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2896   3090   
        >,
 2897   3091   
    >;
 2898   3092   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2899   3093   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2900   3094   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2901   3095   
    >;
 2902   3096   
 2903   3097   
    fn request_fmt() -> Self::RequestFmt {
 2904   3098   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2905   3099   
    }
 2906   3100   
 2907   3101   
    fn response_fmt() -> Self::ResponseFmt {
 2908   3102   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2909   3103   
    }
 2910   3104   
}
        3105  +
/* ServerOperationGenerator.kt:88 */
 2911   3106   
 2912         -
/// This example serializes a blob shape in the payload. In this example, no JSON document is synthesized because the payload is not a structure or a union type.
        3107  +
/// /* ServerOperationGenerator.kt:48 */This example serializes a blob shape in the payload. In this example, no JSON document is synthesized because the payload is not a structure or a union type.
        3108  +
/* ServerOperationGenerator.kt:55 */
 2913   3109   
pub struct HttpPayloadTraits;
 2914   3110   
 2915   3111   
impl ::aws_smithy_http_server::operation::OperationShape for HttpPayloadTraits {
 2916   3112   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2917   3113   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2918   3114   
            "aws.protocoltests.restjson#HttpPayloadTraits",
 2919   3115   
            "aws.protocoltests.restjson",
 2920   3116   
            "HttpPayloadTraits",
 2921   3117   
        );
 2922   3118   
 2923   3119   
    type Input = crate::input::HttpPayloadTraitsInput;
 2924   3120   
    type Output = crate::output::HttpPayloadTraitsOutput;
 2925   3121   
    type Error = std::convert::Infallible;
 2926   3122   
}
 2927   3123   
 2928   3124   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HttpPayloadTraits {
 2929   3125   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2930   3126   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2931   3127   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2932   3128   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2933   3129   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2934   3130   
        >,
 2935   3131   
    >;
 2936   3132   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2937   3133   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2938   3134   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2939   3135   
    >;
 2940   3136   
 2941   3137   
    fn request_fmt() -> Self::RequestFmt {
 2942   3138   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2943   3139   
    }
 2944   3140   
 2945   3141   
    fn response_fmt() -> Self::ResponseFmt {
 2946   3142   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2947   3143   
    }
 2948   3144   
}
        3145  +
/* ServerOperationGenerator.kt:88 */
 2949   3146   
 2950         -
/// Clients that perform this test extract all headers from the response.
        3147  +
/// /* ServerOperationGenerator.kt:48 */Clients that perform this test extract all headers from the response.
        3148  +
/* ServerOperationGenerator.kt:55 */
 2951   3149   
pub struct HttpPrefixHeadersInResponse;
 2952   3150   
 2953   3151   
impl ::aws_smithy_http_server::operation::OperationShape for HttpPrefixHeadersInResponse {
 2954   3152   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2955   3153   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2956   3154   
            "aws.protocoltests.restjson#HttpPrefixHeadersInResponse",
 2957   3155   
            "aws.protocoltests.restjson",
 2958   3156   
            "HttpPrefixHeadersInResponse",
 2959   3157   
        );
 2960   3158   
 2961   3159   
    type Input = crate::input::HttpPrefixHeadersInResponseInput;
 2962   3160   
    type Output = crate::output::HttpPrefixHeadersInResponseOutput;
 2963   3161   
    type Error = std::convert::Infallible;
 2964   3162   
}
 2965   3163   
 2966   3164   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 2967   3165   
    for HttpPrefixHeadersInResponse
 2968   3166   
{
 2969   3167   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 2970   3168   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2971   3169   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 2972   3170   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2973   3171   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2974   3172   
        >,
 2975   3173   
    >;
 2976   3174   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 2977   3175   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2978   3176   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 2979   3177   
    >;
 2980   3178   
 2981   3179   
    fn request_fmt() -> Self::RequestFmt {
 2982   3180   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 2983   3181   
    }
 2984   3182   
 2985   3183   
    fn response_fmt() -> Self::ResponseFmt {
 2986   3184   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 2987   3185   
    }
 2988   3186   
}
        3187  +
/* ServerOperationGenerator.kt:88 */
 2989   3188   
 2990         -
/// This examples adds headers to the input of a request and response by prefix.
        3189  +
/// /* ServerOperationGenerator.kt:48 */This examples adds headers to the input of a request and response by prefix.
        3190  +
/* ServerOperationGenerator.kt:55 */
 2991   3191   
pub struct HttpPrefixHeaders;
 2992   3192   
 2993   3193   
impl ::aws_smithy_http_server::operation::OperationShape for HttpPrefixHeaders {
 2994   3194   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2995   3195   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 2996   3196   
            "aws.protocoltests.restjson#HttpPrefixHeaders",
 2997   3197   
            "aws.protocoltests.restjson",
 2998   3198   
            "HttpPrefixHeaders",
 2999   3199   
        );
 3000   3200   
 3001   3201   
    type Input = crate::input::HttpPrefixHeadersInput;
 3002   3202   
    type Output = crate::output::HttpPrefixHeadersOutput;
 3003   3203   
    type Error = std::convert::Infallible;
 3004   3204   
}
 3005   3205   
 3006   3206   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HttpPrefixHeaders {
 3007   3207   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3008   3208   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3009   3209   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3010   3210   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3011   3211   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3012   3212   
        >,
 3013   3213   
    >;
 3014   3214   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3015   3215   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3016   3216   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3017   3217   
    >;
 3018   3218   
 3019   3219   
    fn request_fmt() -> Self::RequestFmt {
 3020   3220   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3021   3221   
    }
 3022   3222   
 3023   3223   
    fn response_fmt() -> Self::ResponseFmt {
 3024   3224   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3025   3225   
    }
 3026   3226   
}
        3227  +
/* ServerOperationGenerator.kt:88 */
 3027   3228   
        3229  +
/* ServerOperationGenerator.kt:48 */
 3028   3230   
#[allow(missing_docs)] // documentation missing in model
        3231  +
                       /* ServerOperationGenerator.kt:55 */
 3029   3232   
pub struct QueryParamsAsStringListMap;
 3030   3233   
 3031   3234   
impl ::aws_smithy_http_server::operation::OperationShape for QueryParamsAsStringListMap {
 3032   3235   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3033   3236   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3034   3237   
            "aws.protocoltests.restjson#QueryParamsAsStringListMap",
 3035   3238   
            "aws.protocoltests.restjson",
 3036   3239   
            "QueryParamsAsStringListMap",
 3037   3240   
        );
 3038   3241   
 3039   3242   
    type Input = crate::input::QueryParamsAsStringListMapInput;
 3040   3243   
    type Output = crate::output::QueryParamsAsStringListMapOutput;
 3041   3244   
    type Error = std::convert::Infallible;
 3042   3245   
}
 3043   3246   
 3044   3247   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3045   3248   
    for QueryParamsAsStringListMap
 3046   3249   
{
 3047   3250   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3048   3251   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3049   3252   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3050   3253   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3051   3254   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3052   3255   
        >,
 3053   3256   
    >;
 3054   3257   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3055   3258   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3056   3259   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3057   3260   
    >;
 3058   3261   
 3059   3262   
    fn request_fmt() -> Self::RequestFmt {
 3060   3263   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3061   3264   
    }
 3062   3265   
 3063   3266   
    fn response_fmt() -> Self::ResponseFmt {
 3064   3267   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3065   3268   
    }
 3066   3269   
}
        3270  +
/* ServerOperationGenerator.kt:88 */
 3067   3271   
        3272  +
/* ServerOperationGenerator.kt:48 */
 3068   3273   
#[allow(missing_docs)] // documentation missing in model
        3274  +
                       /* ServerOperationGenerator.kt:55 */
 3069   3275   
pub struct QueryPrecedence;
 3070   3276   
 3071   3277   
impl ::aws_smithy_http_server::operation::OperationShape for QueryPrecedence {
 3072   3278   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3073   3279   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3074   3280   
            "aws.protocoltests.restjson#QueryPrecedence",
 3075   3281   
            "aws.protocoltests.restjson",
 3076   3282   
            "QueryPrecedence",
 3077   3283   
        );
 3078   3284   
 3079   3285   
    type Input = crate::input::QueryPrecedenceInput;
 3080   3286   
    type Output = crate::output::QueryPrecedenceOutput;
 3081   3287   
    type Error = std::convert::Infallible;
 3082   3288   
}
 3083   3289   
 3084   3290   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for QueryPrecedence {
 3085   3291   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3086   3292   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3087   3293   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3088   3294   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3089   3295   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3090   3296   
        >,
 3091   3297   
    >;
 3092   3298   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3093   3299   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3094   3300   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3095   3301   
    >;
 3096   3302   
 3097   3303   
    fn request_fmt() -> Self::RequestFmt {
 3098   3304   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3099   3305   
    }
 3100   3306   
 3101   3307   
    fn response_fmt() -> Self::ResponseFmt {
 3102   3308   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3103   3309   
    }
 3104   3310   
}
        3311  +
/* ServerOperationGenerator.kt:88 */
 3105   3312   
 3106         -
/// Automatically adds idempotency tokens.
        3313  +
/// /* ServerOperationGenerator.kt:48 */Automatically adds idempotency tokens.
        3314  +
/* ServerOperationGenerator.kt:55 */
 3107   3315   
pub struct QueryIdempotencyTokenAutoFill;
 3108   3316   
 3109   3317   
impl ::aws_smithy_http_server::operation::OperationShape for QueryIdempotencyTokenAutoFill {
 3110   3318   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3111   3319   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3112   3320   
            "aws.protocoltests.restjson#QueryIdempotencyTokenAutoFill",
 3113   3321   
            "aws.protocoltests.restjson",
 3114   3322   
            "QueryIdempotencyTokenAutoFill",
 3115   3323   
        );
 3116   3324   
 3117   3325   
    type Input = crate::input::QueryIdempotencyTokenAutoFillInput;
 3118   3326   
    type Output = crate::output::QueryIdempotencyTokenAutoFillOutput;
 3119   3327   
    type Error = std::convert::Infallible;
 3120   3328   
}
 3121   3329   
 3122   3330   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3123   3331   
    for QueryIdempotencyTokenAutoFill
 3124   3332   
{
 3125   3333   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3126   3334   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3127   3335   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3128   3336   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3129   3337   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3130   3338   
        >,
 3131   3339   
    >;
 3132   3340   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3133   3341   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3134   3342   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3135   3343   
    >;
 3136   3344   
 3137   3345   
    fn request_fmt() -> Self::RequestFmt {
 3138   3346   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3139   3347   
    }
 3140   3348   
 3141   3349   
    fn response_fmt() -> Self::ResponseFmt {
 3142   3350   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3143   3351   
    }
 3144   3352   
}
        3353  +
/* ServerOperationGenerator.kt:88 */
 3145   3354   
 3146         -
/// Omits serializing empty lists. Because empty strings are serilized as `Foo=`, empty lists cannot also be serialized as `Foo=` and instead must be omitted.
        3355  +
/// /* ServerOperationGenerator.kt:48 */Omits serializing empty lists. Because empty strings are serilized as `Foo=`, empty lists cannot also be serialized as `Foo=` and instead must be omitted.
        3356  +
/* ServerOperationGenerator.kt:55 */
 3147   3357   
pub struct OmitsSerializingEmptyLists;
 3148   3358   
 3149   3359   
impl ::aws_smithy_http_server::operation::OperationShape for OmitsSerializingEmptyLists {
 3150   3360   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3151   3361   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3152   3362   
            "aws.protocoltests.restjson#OmitsSerializingEmptyLists",
 3153   3363   
            "aws.protocoltests.restjson",
 3154   3364   
            "OmitsSerializingEmptyLists",
 3155   3365   
        );
 3156   3366   
 3157   3367   
    type Input = crate::input::OmitsSerializingEmptyListsInput;
 3158   3368   
    type Output = crate::output::OmitsSerializingEmptyListsOutput;
 3159   3369   
    type Error = crate::error::OmitsSerializingEmptyListsError;
 3160   3370   
}
 3161   3371   
 3162   3372   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3163   3373   
    for OmitsSerializingEmptyLists
 3164   3374   
{
 3165   3375   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3166   3376   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3167   3377   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3168   3378   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3169   3379   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3170   3380   
        >,
 3171   3381   
    >;
 3172   3382   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3173   3383   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3174   3384   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3175   3385   
    >;
 3176   3386   
 3177   3387   
    fn request_fmt() -> Self::RequestFmt {
 3178   3388   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3179   3389   
    }
 3180   3390   
 3181   3391   
    fn response_fmt() -> Self::ResponseFmt {
 3182   3392   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3183   3393   
    }
 3184   3394   
}
        3395  +
/* ServerOperationGenerator.kt:88 */
 3185   3396   
 3186         -
/// Omits null, but serializes empty string value.
        3397  +
/// /* ServerOperationGenerator.kt:48 */Omits null, but serializes empty string value.
        3398  +
/* ServerOperationGenerator.kt:55 */
 3187   3399   
pub struct OmitsNullSerializesEmptyString;
 3188   3400   
 3189   3401   
impl ::aws_smithy_http_server::operation::OperationShape for OmitsNullSerializesEmptyString {
 3190   3402   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3191   3403   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3192   3404   
            "aws.protocoltests.restjson#OmitsNullSerializesEmptyString",
 3193   3405   
            "aws.protocoltests.restjson",
 3194   3406   
            "OmitsNullSerializesEmptyString",
 3195   3407   
        );
 3196   3408   
 3197   3409   
    type Input = crate::input::OmitsNullSerializesEmptyStringInput;
 3198   3410   
    type Output = crate::output::OmitsNullSerializesEmptyStringOutput;
 3199   3411   
    type Error = std::convert::Infallible;
 3200   3412   
}
 3201   3413   
 3202   3414   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3203   3415   
    for OmitsNullSerializesEmptyString
 3204   3416   
{
 3205   3417   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3206   3418   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3207   3419   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3208   3420   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3209   3421   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3210   3422   
        >,
 3211   3423   
    >;
 3212   3424   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3213   3425   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3214   3426   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3215   3427   
    >;
 3216   3428   
 3217   3429   
    fn request_fmt() -> Self::RequestFmt {
 3218   3430   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3219   3431   
    }
 3220   3432   
 3221   3433   
    fn response_fmt() -> Self::ResponseFmt {
 3222   3434   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3223   3435   
    }
 3224   3436   
}
        3437  +
/* ServerOperationGenerator.kt:88 */
 3225   3438   
 3226         -
/// This example ensures that query string bound request parameters are serialized in the body of responses if the structure is used in both the request and response.
        3439  +
/// /* ServerOperationGenerator.kt:48 */This example ensures that query string bound request parameters are serialized in the body of responses if the structure is used in both the request and response.
        3440  +
/* ServerOperationGenerator.kt:55 */
 3227   3441   
pub struct IgnoreQueryParamsInResponse;
 3228   3442   
 3229   3443   
impl ::aws_smithy_http_server::operation::OperationShape for IgnoreQueryParamsInResponse {
 3230   3444   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3231   3445   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3232   3446   
            "aws.protocoltests.restjson#IgnoreQueryParamsInResponse",
 3233   3447   
            "aws.protocoltests.restjson",
 3234   3448   
            "IgnoreQueryParamsInResponse",
 3235   3449   
        );
 3236   3450   
 3237   3451   
    type Input = crate::input::IgnoreQueryParamsInResponseInput;
 3238   3452   
    type Output = crate::output::IgnoreQueryParamsInResponseOutput;
 3239   3453   
    type Error = std::convert::Infallible;
 3240   3454   
}
 3241   3455   
 3242   3456   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3243   3457   
    for IgnoreQueryParamsInResponse
 3244   3458   
{
 3245   3459   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3246   3460   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3247   3461   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3248   3462   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3249   3463   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3250   3464   
        >,
 3251   3465   
    >;
 3252   3466   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3253   3467   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3254   3468   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3255   3469   
    >;
 3256   3470   
 3257   3471   
    fn request_fmt() -> Self::RequestFmt {
 3258   3472   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3259   3473   
    }
 3260   3474   
 3261   3475   
    fn response_fmt() -> Self::ResponseFmt {
 3262   3476   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3263   3477   
    }
 3264   3478   
}
        3479  +
/* ServerOperationGenerator.kt:88 */
 3265   3480   
 3266         -
/// This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).
        3481  +
/// /* ServerOperationGenerator.kt:48 */This example uses fixed query string params and variable query string params. The fixed query string parameters and variable parameters must both be serialized (implementations may need to merge them together).
        3482  +
/* ServerOperationGenerator.kt:55 */
 3267   3483   
pub struct ConstantAndVariableQueryString;
 3268   3484   
 3269   3485   
impl ::aws_smithy_http_server::operation::OperationShape for ConstantAndVariableQueryString {
 3270   3486   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3271   3487   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3272   3488   
            "aws.protocoltests.restjson#ConstantAndVariableQueryString",
 3273   3489   
            "aws.protocoltests.restjson",
 3274   3490   
            "ConstantAndVariableQueryString",
 3275   3491   
        );
 3276   3492   
 3277   3493   
    type Input = crate::input::ConstantAndVariableQueryStringInput;
 3278   3494   
    type Output = crate::output::ConstantAndVariableQueryStringOutput;
 3279   3495   
    type Error = std::convert::Infallible;
 3280   3496   
}
 3281   3497   
 3282   3498   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3283   3499   
    for ConstantAndVariableQueryString
 3284   3500   
{
 3285   3501   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3286   3502   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3287   3503   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3288   3504   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3289   3505   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3290   3506   
        >,
 3291   3507   
    >;
 3292   3508   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3293   3509   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3294   3510   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3295   3511   
    >;
 3296   3512   
 3297   3513   
    fn request_fmt() -> Self::RequestFmt {
 3298   3514   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3299   3515   
    }
 3300   3516   
 3301   3517   
    fn response_fmt() -> Self::ResponseFmt {
 3302   3518   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3303   3519   
    }
 3304   3520   
}
        3521  +
/* ServerOperationGenerator.kt:88 */
 3305   3522   
 3306         -
/// This example uses a constant query string parameters and a label. This simply tests that labels and query string parameters are compatible. The fixed query string parameter named "hello" should in no way conflict with the label, `{hello}`.
        3523  +
/// /* ServerOperationGenerator.kt:48 */This example uses a constant query string parameters and a label. This simply tests that labels and query string parameters are compatible. The fixed query string parameter named "hello" should in no way conflict with the label, `{hello}`.
        3524  +
/* ServerOperationGenerator.kt:55 */
 3307   3525   
pub struct ConstantQueryString;
 3308   3526   
 3309   3527   
impl ::aws_smithy_http_server::operation::OperationShape for ConstantQueryString {
 3310   3528   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3311   3529   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3312   3530   
            "aws.protocoltests.restjson#ConstantQueryString",
 3313   3531   
            "aws.protocoltests.restjson",
 3314   3532   
            "ConstantQueryString",
 3315   3533   
        );
 3316   3534   
 3317   3535   
    type Input = crate::input::ConstantQueryStringInput;
 3318   3536   
    type Output = crate::output::ConstantQueryStringOutput;
 3319   3537   
    type Error = crate::error::ConstantQueryStringError;
 3320   3538   
}
 3321   3539   
 3322   3540   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for ConstantQueryString {
 3323   3541   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3324   3542   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3325   3543   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3326   3544   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3327   3545   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3328   3546   
        >,
 3329   3547   
    >;
 3330   3548   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3331   3549   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3332   3550   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3333   3551   
    >;
 3334   3552   
 3335   3553   
    fn request_fmt() -> Self::RequestFmt {
 3336   3554   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3337   3555   
    }
 3338   3556   
 3339   3557   
    fn response_fmt() -> Self::ResponseFmt {
 3340   3558   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3341   3559   
    }
 3342   3560   
}
        3561  +
/* ServerOperationGenerator.kt:88 */
 3343   3562   
 3344         -
/// This example uses all query string types.
        3563  +
/// /* ServerOperationGenerator.kt:48 */This example uses all query string types.
        3564  +
/* ServerOperationGenerator.kt:55 */
 3345   3565   
pub struct AllQueryStringTypes;
 3346   3566   
 3347   3567   
impl ::aws_smithy_http_server::operation::OperationShape for AllQueryStringTypes {
 3348   3568   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3349   3569   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3350   3570   
            "aws.protocoltests.restjson#AllQueryStringTypes",
 3351   3571   
            "aws.protocoltests.restjson",
 3352   3572   
            "AllQueryStringTypes",
 3353   3573   
        );
 3354   3574   
 3355   3575   
    type Input = crate::input::AllQueryStringTypesInput;
 3356   3576   
    type Output = crate::output::AllQueryStringTypesOutput;
 3357   3577   
    type Error = crate::error::AllQueryStringTypesError;
 3358   3578   
}
 3359   3579   
 3360   3580   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for AllQueryStringTypes {
 3361   3581   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3362   3582   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3363   3583   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3364   3584   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3365   3585   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3366   3586   
        >,
 3367   3587   
    >;
 3368   3588   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3369   3589   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3370   3590   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3371   3591   
    >;
 3372   3592   
 3373   3593   
    fn request_fmt() -> Self::RequestFmt {
 3374   3594   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3375   3595   
    }
 3376   3596   
 3377   3597   
    fn response_fmt() -> Self::ResponseFmt {
 3378   3598   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3379   3599   
    }
 3380   3600   
}
        3601  +
/* ServerOperationGenerator.kt:88 */
 3381   3602   
        3603  +
/* ServerOperationGenerator.kt:48 */
 3382   3604   
#[allow(missing_docs)] // documentation missing in model
        3605  +
                       /* ServerOperationGenerator.kt:55 */
 3383   3606   
pub struct HttpRequestWithRegexLiteral;
 3384   3607   
 3385   3608   
impl ::aws_smithy_http_server::operation::OperationShape for HttpRequestWithRegexLiteral {
 3386   3609   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3387   3610   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3388   3611   
            "aws.protocoltests.restjson#HttpRequestWithRegexLiteral",
 3389   3612   
            "aws.protocoltests.restjson",
 3390   3613   
            "HttpRequestWithRegexLiteral",
 3391   3614   
        );
 3392   3615   
 3393   3616   
    type Input = crate::input::HttpRequestWithRegexLiteralInput;
 3394   3617   
    type Output = crate::output::HttpRequestWithRegexLiteralOutput;
 3395   3618   
    type Error = crate::error::HttpRequestWithRegexLiteralError;
 3396   3619   
}
 3397   3620   
 3398   3621   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3399   3622   
    for HttpRequestWithRegexLiteral
 3400   3623   
{
 3401   3624   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3402   3625   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3403   3626   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3404   3627   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3405   3628   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3406   3629   
        >,
 3407   3630   
    >;
 3408   3631   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3409   3632   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3410   3633   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3411   3634   
    >;
 3412   3635   
 3413   3636   
    fn request_fmt() -> Self::RequestFmt {
 3414   3637   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3415   3638   
    }
 3416   3639   
 3417   3640   
    fn response_fmt() -> Self::ResponseFmt {
 3418   3641   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3419   3642   
    }
 3420   3643   
}
        3644  +
/* ServerOperationGenerator.kt:88 */
 3421   3645   
        3646  +
/* ServerOperationGenerator.kt:48 */
 3422   3647   
#[allow(missing_docs)] // documentation missing in model
        3648  +
                       /* ServerOperationGenerator.kt:55 */
 3423   3649   
pub struct HttpRequestWithFloatLabels;
 3424   3650   
 3425   3651   
impl ::aws_smithy_http_server::operation::OperationShape for HttpRequestWithFloatLabels {
 3426   3652   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3427   3653   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3428   3654   
            "aws.protocoltests.restjson#HttpRequestWithFloatLabels",
 3429   3655   
            "aws.protocoltests.restjson",
 3430   3656   
            "HttpRequestWithFloatLabels",
 3431   3657   
        );
 3432   3658   
 3433   3659   
    type Input = crate::input::HttpRequestWithFloatLabelsInput;
 3434   3660   
    type Output = crate::output::HttpRequestWithFloatLabelsOutput;
 3435   3661   
    type Error = crate::error::HttpRequestWithFloatLabelsError;
 3436   3662   
}
 3437   3663   
 3438   3664   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3439   3665   
    for HttpRequestWithFloatLabels
 3440   3666   
{
 3441   3667   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3442   3668   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3443   3669   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3444   3670   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3445   3671   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3446   3672   
        >,
 3447   3673   
    >;
 3448   3674   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3449   3675   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3450   3676   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3451   3677   
    >;
 3452   3678   
 3453   3679   
    fn request_fmt() -> Self::RequestFmt {
 3454   3680   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3455   3681   
    }
 3456   3682   
 3457   3683   
    fn response_fmt() -> Self::ResponseFmt {
 3458   3684   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3459   3685   
    }
 3460   3686   
}
        3687  +
/* ServerOperationGenerator.kt:88 */
 3461   3688   
        3689  +
/* ServerOperationGenerator.kt:48 */
 3462   3690   
#[allow(missing_docs)] // documentation missing in model
        3691  +
                       /* ServerOperationGenerator.kt:55 */
 3463   3692   
pub struct HttpRequestWithGreedyLabelInPath;
 3464   3693   
 3465   3694   
impl ::aws_smithy_http_server::operation::OperationShape for HttpRequestWithGreedyLabelInPath {
 3466   3695   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3467   3696   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3468   3697   
            "aws.protocoltests.restjson#HttpRequestWithGreedyLabelInPath",
 3469   3698   
            "aws.protocoltests.restjson",
 3470   3699   
            "HttpRequestWithGreedyLabelInPath",
 3471   3700   
        );
 3472   3701   
 3473   3702   
    type Input = crate::input::HttpRequestWithGreedyLabelInPathInput;
 3474   3703   
    type Output = crate::output::HttpRequestWithGreedyLabelInPathOutput;
 3475   3704   
    type Error = crate::error::HttpRequestWithGreedyLabelInPathError;
 3476   3705   
}
 3477   3706   
 3478   3707   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3479   3708   
    for HttpRequestWithGreedyLabelInPath
 3480   3709   
{
 3481   3710   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3482   3711   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3483   3712   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3484   3713   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3485   3714   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3486   3715   
        >,
 3487   3716   
    >;
 3488   3717   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3489   3718   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3490   3719   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3491   3720   
    >;
 3492   3721   
 3493   3722   
    fn request_fmt() -> Self::RequestFmt {
 3494   3723   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3495   3724   
    }
 3496   3725   
 3497   3726   
    fn response_fmt() -> Self::ResponseFmt {
 3498   3727   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3499   3728   
    }
 3500   3729   
}
        3730  +
/* ServerOperationGenerator.kt:88 */
 3501   3731   
 3502         -
/// The example tests how requests serialize different timestamp formats in the URI path.
        3732  +
/// /* ServerOperationGenerator.kt:48 */The example tests how requests serialize different timestamp formats in the URI path.
        3733  +
/* ServerOperationGenerator.kt:55 */
 3503   3734   
pub struct HttpRequestWithLabelsAndTimestampFormat;
 3504   3735   
 3505   3736   
impl ::aws_smithy_http_server::operation::OperationShape
 3506   3737   
    for HttpRequestWithLabelsAndTimestampFormat
 3507   3738   
{
 3508   3739   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3509   3740   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3510   3741   
            "aws.protocoltests.restjson#HttpRequestWithLabelsAndTimestampFormat",
 3511   3742   
            "aws.protocoltests.restjson",
 3512   3743   
            "HttpRequestWithLabelsAndTimestampFormat",
 3513   3744   
        );
 3514   3745   
 3515   3746   
    type Input = crate::input::HttpRequestWithLabelsAndTimestampFormatInput;
 3516   3747   
    type Output = crate::output::HttpRequestWithLabelsAndTimestampFormatOutput;
 3517   3748   
    type Error = crate::error::HttpRequestWithLabelsAndTimestampFormatError;
 3518   3749   
}
 3519   3750   
 3520   3751   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3521   3752   
    for HttpRequestWithLabelsAndTimestampFormat
 3522   3753   
{
 3523   3754   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3524   3755   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3525   3756   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3526   3757   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3527   3758   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3528   3759   
        >,
 3529   3760   
    >;
 3530   3761   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3531   3762   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3532   3763   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3533   3764   
    >;
 3534   3765   
 3535   3766   
    fn request_fmt() -> Self::RequestFmt {
 3536   3767   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3537   3768   
    }
 3538   3769   
 3539   3770   
    fn response_fmt() -> Self::ResponseFmt {
 3540   3771   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3541   3772   
    }
 3542   3773   
}
        3774  +
/* ServerOperationGenerator.kt:88 */
 3543   3775   
 3544         -
/// The example tests how requests are serialized when there's no input payload but there are HTTP labels.
        3776  +
/// /* ServerOperationGenerator.kt:48 */The example tests how requests are serialized when there's no input payload but there are HTTP labels.
        3777  +
/* ServerOperationGenerator.kt:55 */
 3545   3778   
pub struct HttpRequestWithLabels;
 3546   3779   
 3547   3780   
impl ::aws_smithy_http_server::operation::OperationShape for HttpRequestWithLabels {
 3548   3781   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3549   3782   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3550   3783   
            "aws.protocoltests.restjson#HttpRequestWithLabels",
 3551   3784   
            "aws.protocoltests.restjson",
 3552   3785   
            "HttpRequestWithLabels",
 3553   3786   
        );
 3554   3787   
 3555   3788   
    type Input = crate::input::HttpRequestWithLabelsInput;
 3556   3789   
    type Output = crate::output::HttpRequestWithLabelsOutput;
 3557   3790   
    type Error = crate::error::HttpRequestWithLabelsError;
 3558   3791   
}
 3559   3792   
 3560   3793   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HttpRequestWithLabels {
 3561   3794   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3562   3795   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3563   3796   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3564   3797   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3565   3798   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3566   3799   
        >,
 3567   3800   
    >;
 3568   3801   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3569   3802   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3570   3803   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3571   3804   
    >;
 3572   3805   
 3573   3806   
    fn request_fmt() -> Self::RequestFmt {
 3574   3807   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3575   3808   
    }
 3576   3809   
 3577   3810   
    fn response_fmt() -> Self::ResponseFmt {
 3578   3811   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3579   3812   
    }
 3580   3813   
}
        3814  +
/* ServerOperationGenerator.kt:88 */
 3581   3815   
 3582         -
/// This example ensures that mediaType strings are base64 encoded in headers.
        3816  +
/// /* ServerOperationGenerator.kt:48 */This example ensures that mediaType strings are base64 encoded in headers.
        3817  +
/* ServerOperationGenerator.kt:55 */
 3583   3818   
pub struct MediaTypeHeader;
 3584   3819   
 3585   3820   
impl ::aws_smithy_http_server::operation::OperationShape for MediaTypeHeader {
 3586   3821   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3587   3822   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3588   3823   
            "aws.protocoltests.restjson#MediaTypeHeader",
 3589   3824   
            "aws.protocoltests.restjson",
 3590   3825   
            "MediaTypeHeader",
 3591   3826   
        );
 3592   3827   
 3593   3828   
    type Input = crate::input::MediaTypeHeaderInput;
 3594   3829   
    type Output = crate::output::MediaTypeHeaderOutput;
 3595   3830   
    type Error = std::convert::Infallible;
 3596   3831   
}
 3597   3832   
 3598   3833   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for MediaTypeHeader {
 3599   3834   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3600   3835   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3601   3836   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3602   3837   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3603   3838   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3604   3839   
        >,
 3605   3840   
    >;
 3606   3841   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3607   3842   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3608   3843   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3609   3844   
    >;
 3610   3845   
 3611   3846   
    fn request_fmt() -> Self::RequestFmt {
 3612   3847   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3613   3848   
    }
 3614   3849   
 3615   3850   
    fn response_fmt() -> Self::ResponseFmt {
 3616   3851   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3617   3852   
    }
 3618   3853   
}
        3854  +
/* ServerOperationGenerator.kt:88 */
 3619   3855   
 3620         -
/// This example tests how timestamp request and response headers are serialized.
        3856  +
/// /* ServerOperationGenerator.kt:48 */This example tests how timestamp request and response headers are serialized.
        3857  +
/* ServerOperationGenerator.kt:55 */
 3621   3858   
pub struct TimestampFormatHeaders;
 3622   3859   
 3623   3860   
impl ::aws_smithy_http_server::operation::OperationShape for TimestampFormatHeaders {
 3624   3861   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3625   3862   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3626   3863   
            "aws.protocoltests.restjson#TimestampFormatHeaders",
 3627   3864   
            "aws.protocoltests.restjson",
 3628   3865   
            "TimestampFormatHeaders",
 3629   3866   
        );
 3630   3867   
 3631   3868   
    type Input = crate::input::TimestampFormatHeadersInput;
 3632   3869   
    type Output = crate::output::TimestampFormatHeadersOutput;
 3633   3870   
    type Error = std::convert::Infallible;
 3634   3871   
}
 3635   3872   
 3636   3873   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3637   3874   
    for TimestampFormatHeaders
 3638   3875   
{
 3639   3876   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3640   3877   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3641   3878   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3642   3879   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3643   3880   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3644   3881   
        >,
 3645   3882   
    >;
 3646   3883   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3647   3884   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3648   3885   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3649   3886   
    >;
 3650   3887   
 3651   3888   
    fn request_fmt() -> Self::RequestFmt {
 3652   3889   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3653   3890   
    }
 3654   3891   
 3655   3892   
    fn response_fmt() -> Self::ResponseFmt {
 3656   3893   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3657   3894   
    }
 3658   3895   
}
        3896  +
/* ServerOperationGenerator.kt:88 */
 3659   3897   
 3660         -
/// Null and empty headers are not sent over the wire.
        3898  +
/// /* ServerOperationGenerator.kt:48 */Null and empty headers are not sent over the wire.
        3899  +
/* ServerOperationGenerator.kt:55 */
 3661   3900   
pub struct NullAndEmptyHeadersServer;
 3662   3901   
 3663   3902   
impl ::aws_smithy_http_server::operation::OperationShape for NullAndEmptyHeadersServer {
 3664   3903   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3665   3904   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3666   3905   
            "aws.protocoltests.restjson#NullAndEmptyHeadersServer",
 3667   3906   
            "aws.protocoltests.restjson",
 3668   3907   
            "NullAndEmptyHeadersServer",
 3669   3908   
        );
 3670   3909   
 3671   3910   
    type Input = crate::input::NullAndEmptyHeadersServerInput;
 3672   3911   
    type Output = crate::output::NullAndEmptyHeadersServerOutput;
 3673   3912   
    type Error = std::convert::Infallible;
 3674   3913   
}
 3675   3914   
 3676   3915   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3677   3916   
    for NullAndEmptyHeadersServer
 3678   3917   
{
 3679   3918   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3680   3919   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3681   3920   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3682   3921   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3683   3922   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3684   3923   
        >,
 3685   3924   
    >;
 3686   3925   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3687   3926   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3688   3927   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3689   3928   
    >;
 3690   3929   
 3691   3930   
    fn request_fmt() -> Self::RequestFmt {
 3692   3931   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3693   3932   
    }
 3694   3933   
 3695   3934   
    fn response_fmt() -> Self::ResponseFmt {
 3696   3935   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3697   3936   
    }
 3698   3937   
}
        3938  +
/* ServerOperationGenerator.kt:88 */
 3699   3939   
 3700         -
/// Null and empty headers are not sent over the wire.
        3940  +
/// /* ServerOperationGenerator.kt:48 */Null and empty headers are not sent over the wire.
        3941  +
/* ServerOperationGenerator.kt:55 */
 3701   3942   
pub struct NullAndEmptyHeadersClient;
 3702   3943   
 3703   3944   
impl ::aws_smithy_http_server::operation::OperationShape for NullAndEmptyHeadersClient {
 3704   3945   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3705   3946   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3706   3947   
            "aws.protocoltests.restjson#NullAndEmptyHeadersClient",
 3707   3948   
            "aws.protocoltests.restjson",
 3708   3949   
            "NullAndEmptyHeadersClient",
 3709   3950   
        );
 3710   3951   
 3711   3952   
    type Input = crate::input::NullAndEmptyHeadersClientInput;
 3712   3953   
    type Output = crate::output::NullAndEmptyHeadersClientOutput;
 3713   3954   
    type Error = std::convert::Infallible;
 3714   3955   
}
 3715   3956   
 3716   3957   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3717   3958   
    for NullAndEmptyHeadersClient
 3718   3959   
{
 3719   3960   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3720   3961   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3721   3962   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3722   3963   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3723   3964   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3724   3965   
        >,
 3725   3966   
    >;
 3726   3967   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3727   3968   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3728   3969   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3729   3970   
    >;
 3730   3971   
 3731   3972   
    fn request_fmt() -> Self::RequestFmt {
 3732   3973   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3733   3974   
    }
 3734   3975   
 3735   3976   
    fn response_fmt() -> Self::ResponseFmt {
 3736   3977   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3737   3978   
    }
 3738   3979   
}
        3980  +
/* ServerOperationGenerator.kt:88 */
 3739   3981   
 3740         -
/// The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.
        3982  +
/// /* ServerOperationGenerator.kt:48 */The example tests how requests and responses are serialized when there is no input or output payload but there are HTTP header bindings.
        3983  +
/* ServerOperationGenerator.kt:55 */
 3741   3984   
pub struct InputAndOutputWithHeaders;
 3742   3985   
 3743   3986   
impl ::aws_smithy_http_server::operation::OperationShape for InputAndOutputWithHeaders {
 3744   3987   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3745   3988   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3746   3989   
            "aws.protocoltests.restjson#InputAndOutputWithHeaders",
 3747   3990   
            "aws.protocoltests.restjson",
 3748   3991   
            "InputAndOutputWithHeaders",
 3749   3992   
        );
 3750   3993   
 3751   3994   
    type Input = crate::input::InputAndOutputWithHeadersInput;
 3752   3995   
    type Output = crate::output::InputAndOutputWithHeadersOutput;
 3753   3996   
    type Error = crate::error::InputAndOutputWithHeadersError;
 3754   3997   
}
 3755   3998   
 3756   3999   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3757   4000   
    for InputAndOutputWithHeaders
 3758   4001   
{
 3759   4002   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3760   4003   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3761   4004   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3762   4005   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3763   4006   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3764   4007   
        >,
 3765   4008   
    >;
 3766   4009   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3767   4010   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3768   4011   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3769   4012   
    >;
 3770   4013   
 3771   4014   
    fn request_fmt() -> Self::RequestFmt {
 3772   4015   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3773   4016   
    }
 3774   4017   
 3775   4018   
    fn response_fmt() -> Self::ResponseFmt {
 3776   4019   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3777   4020   
    }
 3778   4021   
}
        4022  +
/* ServerOperationGenerator.kt:88 */
 3779   4023   
 3780         -
/// This test is similar to NoInputAndNoOutput, but uses explicit Unit types.
        4024  +
/// /* ServerOperationGenerator.kt:48 */This test is similar to NoInputAndNoOutput, but uses explicit Unit types.
        4025  +
/* ServerOperationGenerator.kt:55 */
 3781   4026   
pub struct UnitInputAndOutput;
 3782   4027   
 3783   4028   
impl ::aws_smithy_http_server::operation::OperationShape for UnitInputAndOutput {
 3784   4029   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3785   4030   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3786   4031   
            "aws.protocoltests.restjson#UnitInputAndOutput",
 3787   4032   
            "aws.protocoltests.restjson",
 3788   4033   
            "UnitInputAndOutput",
 3789   4034   
        );
 3790   4035   
 3791   4036   
    type Input = crate::input::UnitInputAndOutputInput;
 3792   4037   
    type Output = crate::output::UnitInputAndOutputOutput;
 3793   4038   
    type Error = std::convert::Infallible;
 3794   4039   
}
 3795   4040   
 3796   4041   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for UnitInputAndOutput {
 3797   4042   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3798   4043   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3799   4044   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3800   4045   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3801   4046   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3802   4047   
        >,
 3803   4048   
    >;
 3804   4049   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3805   4050   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3806   4051   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3807   4052   
    >;
 3808   4053   
 3809   4054   
    fn request_fmt() -> Self::RequestFmt {
 3810   4055   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3811   4056   
    }
 3812   4057   
 3813   4058   
    fn response_fmt() -> Self::ResponseFmt {
 3814   4059   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3815   4060   
    }
 3816   4061   
}
        4062  +
/* ServerOperationGenerator.kt:88 */
 3817   4063   
 3818         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.
        4064  +
/// /* ServerOperationGenerator.kt:48 */The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.
        4065  +
/* ServerOperationGenerator.kt:55 */
 3819   4066   
pub struct EmptyInputAndEmptyOutput;
 3820   4067   
 3821   4068   
impl ::aws_smithy_http_server::operation::OperationShape for EmptyInputAndEmptyOutput {
 3822   4069   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3823   4070   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3824   4071   
            "aws.protocoltests.restjson#EmptyInputAndEmptyOutput",
 3825   4072   
            "aws.protocoltests.restjson",
 3826   4073   
            "EmptyInputAndEmptyOutput",
 3827   4074   
        );
 3828   4075   
 3829   4076   
    type Input = crate::input::EmptyInputAndEmptyOutputInput;
 3830   4077   
    type Output = crate::output::EmptyInputAndEmptyOutputOutput;
 3831   4078   
    type Error = std::convert::Infallible;
 3832   4079   
}
 3833   4080   
 3834   4081   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
 3835   4082   
    for EmptyInputAndEmptyOutput
 3836   4083   
{
 3837   4084   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3838   4085   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3839   4086   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3840   4087   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3841   4088   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3842   4089   
        >,
 3843   4090   
    >;
 3844   4091   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3845   4092   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3846   4093   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3847   4094   
    >;
 3848   4095   
 3849   4096   
    fn request_fmt() -> Self::RequestFmt {
 3850   4097   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3851   4098   
    }
 3852   4099   
 3853   4100   
    fn response_fmt() -> Self::ResponseFmt {
 3854   4101   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3855   4102   
    }
 3856   4103   
}
        4104  +
/* ServerOperationGenerator.kt:88 */
 3857   4105   
 3858         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.
        4106  +
/// /* ServerOperationGenerator.kt:48 */The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.
        4107  +
/* ServerOperationGenerator.kt:55 */
 3859   4108   
pub struct NoInputAndOutput;
 3860   4109   
 3861   4110   
impl ::aws_smithy_http_server::operation::OperationShape for NoInputAndOutput {
 3862   4111   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3863   4112   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3864   4113   
            "aws.protocoltests.restjson#NoInputAndOutput",
 3865   4114   
            "aws.protocoltests.restjson",
 3866   4115   
            "NoInputAndOutput",
 3867   4116   
        );
 3868   4117   
 3869   4118   
    type Input = crate::input::NoInputAndOutputInput;
 3870   4119   
    type Output = crate::output::NoInputAndOutputOutput;
 3871   4120   
    type Error = std::convert::Infallible;
 3872   4121   
}
 3873   4122   
 3874   4123   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for NoInputAndOutput {
 3875   4124   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3876   4125   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3877   4126   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3878   4127   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3879   4128   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3880   4129   
        >,
 3881   4130   
    >;
 3882   4131   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3883   4132   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3884   4133   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3885   4134   
    >;
 3886   4135   
 3887   4136   
    fn request_fmt() -> Self::RequestFmt {
 3888   4137   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3889   4138   
    }
 3890   4139   
 3891   4140   
    fn response_fmt() -> Self::ResponseFmt {
 3892   4141   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3893   4142   
    }
 3894   4143   
}
        4144  +
/* ServerOperationGenerator.kt:88 */
 3895   4145   
 3896         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.
        4146  +
/// /* ServerOperationGenerator.kt:48 */The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.
        4147  +
/* ServerOperationGenerator.kt:55 */
 3897   4148   
pub struct NoInputAndNoOutput;
 3898   4149   
 3899   4150   
impl ::aws_smithy_http_server::operation::OperationShape for NoInputAndNoOutput {
 3900   4151   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3901   4152   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
 3902   4153   
            "aws.protocoltests.restjson#NoInputAndNoOutput",
 3903   4154   
            "aws.protocoltests.restjson",
 3904   4155   
            "NoInputAndNoOutput",
 3905   4156   
        );
 3906   4157   
 3907   4158   
    type Input = crate::input::NoInputAndNoOutputInput;
 3908   4159   
    type Output = crate::output::NoInputAndNoOutputOutput;
 3909   4160   
    type Error = std::convert::Infallible;
 3910   4161   
}
 3911   4162   
 3912   4163   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for NoInputAndNoOutput {
 3913   4164   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
 3914   4165   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3915   4166   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
 3916   4167   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3917   4168   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3918   4169   
        >,
 3919   4170   
    >;
 3920   4171   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
 3921   4172   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3922   4173   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
 3923   4174   
    >;
 3924   4175   
 3925   4176   
    fn request_fmt() -> Self::RequestFmt {
 3926   4177   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
 3927   4178   
    }
 3928   4179   
 3929   4180   
    fn response_fmt() -> Self::ResponseFmt {
 3930   4181   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
 3931   4182   
    }
 3932   4183   
}
        4184  +
/* ServerOperationGenerator.kt:88 */