Server Test

Server Test

rev. 03e6e47f15dfd569240d570d98975ebba692c405 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-server-test/json_rpc11/rust-server-codegen/src/protocol_serde/shape_simple_scalar_properties.rs

@@ -1,1 +91,94 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(clippy::unnecessary_wraps)]
    3      3   
pub async fn de_simple_scalar_properties_http_request<B>(
    4         -
    #[allow(unused_variables)] request: ::http::Request<B>,
           4  +
    #[allow(unused_variables)] request: ::http_1x::Request<B>,
    5      5   
) -> std::result::Result<
    6      6   
    crate::input::SimpleScalarPropertiesInput,
    7      7   
    ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection,
    8      8   
>
    9      9   
where
   10     10   
    B: ::aws_smithy_http_server::body::HttpBody + Send,
   11     11   
    B::Data: Send,
   12     12   
    ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection:
   13     13   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
   14     14   
{
   15     15   
    Ok({
   16     16   
        #[allow(unused_mut)]
   17     17   
        let mut input = crate::input::simple_scalar_properties_input::Builder::default();
   18     18   
        #[allow(unused_variables)]
   19     19   
        let ::aws_smithy_runtime_api::http::RequestParts {
   20     20   
            uri, headers, body, ..
   21     21   
        } = ::aws_smithy_runtime_api::http::Request::try_from(request)?.into_parts();
   22         -
        let bytes = ::hyper::body::to_bytes(body).await?;
          22  +
        let bytes = {
          23  +
            use ::http_body_util::BodyExt;
          24  +
            body.collect().await?.to_bytes()
          25  +
        };
   23     26   
        if !bytes.is_empty() {
   24     27   
            ::aws_smithy_http_server::protocol::content_type_header_classifier_smithy(
   25     28   
                &headers,
   26     29   
                Some("application/x-amz-json-1.1"),
   27     30   
            )?;
   28     31   
            input =
   29     32   
                crate::protocol_serde::shape_simple_scalar_properties::de_simple_scalar_properties(
   30     33   
                    bytes.as_ref(),
   31     34   
                    input,
   32     35   
                )?;
   33     36   
        }
   34     37   
        input.build()
   35     38   
    })
   36     39   
}
   37     40   
   38     41   
#[allow(clippy::unnecessary_wraps)]
   39     42   
pub fn ser_simple_scalar_properties_http_response(
   40     43   
    #[allow(unused_variables)] output: crate::output::SimpleScalarPropertiesOutput,
   41     44   
) -> std::result::Result<
   42     45   
    ::aws_smithy_http_server::response::Response,
   43     46   
    ::aws_smithy_http_server::protocol::aws_json::rejection::ResponseRejection,
   44     47   
> {
   45     48   
    Ok({
   46     49   
        #[allow(unused_mut)]
   47         -
        let mut builder = ::http::Response::builder();
          50  +
        let mut builder = ::http_1x::Response::builder();
   48     51   
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
   49     52   
            builder,
   50         -
            ::http::header::CONTENT_TYPE,
          53  +
            ::http_1x::header::CONTENT_TYPE,
   51     54   
            "application/x-amz-json-1.1",
   52     55   
        );
   53     56   
        let http_status: u16 = 200;
   54     57   
        builder = builder.status(http_status);
   55     58   
        let payload =
   56     59   
            crate::protocol_serde::shape_simple_scalar_properties_output::ser_simple_scalar_properties_output_output_output(&output)?
   57     60   
        ;
   58     61   
        let content_length = payload.len();
   59     62   
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
   60     63   
            builder,
   61         -
            ::http::header::CONTENT_LENGTH,
          64  +
            ::http_1x::header::CONTENT_LENGTH,
   62     65   
            content_length,
   63     66   
        );
   64     67   
        let body = ::aws_smithy_http_server::body::to_boxed(payload);
   65     68   
        builder.body(body)?
   66     69   
    })
   67     70   
}
   68     71   
   69     72   
pub(crate) fn de_simple_scalar_properties(
   70     73   
    value: &[u8],
   71     74   
    mut builder: crate::input::simple_scalar_properties_input::Builder,

tmp-codegen-diff/codegen-server-test/json_rpc11/rust-server-codegen/src/protocol_serde/shape_sparse_nulls_operation.rs

@@ -1,1 +90,93 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(clippy::unnecessary_wraps)]
    3      3   
pub async fn de_sparse_nulls_operation_http_request<B>(
    4         -
    #[allow(unused_variables)] request: ::http::Request<B>,
           4  +
    #[allow(unused_variables)] request: ::http_1x::Request<B>,
    5      5   
) -> std::result::Result<
    6      6   
    crate::input::SparseNullsOperationInput,
    7      7   
    ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection,
    8      8   
>
    9      9   
where
   10     10   
    B: ::aws_smithy_http_server::body::HttpBody + Send,
   11     11   
    B::Data: Send,
   12     12   
    ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection:
   13     13   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
   14     14   
{
   15     15   
    Ok({
   16     16   
        #[allow(unused_mut)]
   17     17   
        let mut input = crate::input::sparse_nulls_operation_input::Builder::default();
   18     18   
        #[allow(unused_variables)]
   19     19   
        let ::aws_smithy_runtime_api::http::RequestParts {
   20     20   
            uri, headers, body, ..
   21     21   
        } = ::aws_smithy_runtime_api::http::Request::try_from(request)?.into_parts();
   22         -
        let bytes = ::hyper::body::to_bytes(body).await?;
          22  +
        let bytes = {
          23  +
            use ::http_body_util::BodyExt;
          24  +
            body.collect().await?.to_bytes()
          25  +
        };
   23     26   
        if !bytes.is_empty() {
   24     27   
            ::aws_smithy_http_server::protocol::content_type_header_classifier_smithy(
   25     28   
                &headers,
   26     29   
                Some("application/x-amz-json-1.1"),
   27     30   
            )?;
   28     31   
            input = crate::protocol_serde::shape_sparse_nulls_operation::de_sparse_nulls_operation(
   29     32   
                bytes.as_ref(),
   30     33   
                input,
   31     34   
            )?;
   32     35   
        }
   33     36   
        input.build()
   34     37   
    })
   35     38   
}
   36     39   
   37     40   
#[allow(clippy::unnecessary_wraps)]
   38     41   
pub fn ser_sparse_nulls_operation_http_response(
   39     42   
    #[allow(unused_variables)] output: crate::output::SparseNullsOperationOutput,
   40     43   
) -> std::result::Result<
   41     44   
    ::aws_smithy_http_server::response::Response,
   42     45   
    ::aws_smithy_http_server::protocol::aws_json::rejection::ResponseRejection,
   43     46   
> {
   44     47   
    Ok({
   45     48   
        #[allow(unused_mut)]
   46         -
        let mut builder = ::http::Response::builder();
          49  +
        let mut builder = ::http_1x::Response::builder();
   47     50   
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
   48     51   
            builder,
   49         -
            ::http::header::CONTENT_TYPE,
          52  +
            ::http_1x::header::CONTENT_TYPE,
   50     53   
            "application/x-amz-json-1.1",
   51     54   
        );
   52     55   
        let http_status: u16 = 200;
   53     56   
        builder = builder.status(http_status);
   54     57   
        let payload =
   55     58   
            crate::protocol_serde::shape_sparse_nulls_operation_output::ser_sparse_nulls_operation_output_output_output(&output)?
   56     59   
        ;
   57     60   
        let content_length = payload.len();
   58     61   
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
   59     62   
            builder,
   60         -
            ::http::header::CONTENT_LENGTH,
          63  +
            ::http_1x::header::CONTENT_LENGTH,
   61     64   
            content_length,
   62     65   
        );
   63     66   
        let body = ::aws_smithy_http_server::body::to_boxed(payload);
   64     67   
        builder.body(body)?
   65     68   
    })
   66     69   
}
   67     70   
   68     71   
pub(crate) fn de_sparse_nulls_operation(
   69     72   
    value: &[u8],
   70     73   
    mut builder: crate::input::sparse_nulls_operation_input::Builder,

tmp-codegen-diff/codegen-server-test/json_rpc11/rust-server-codegen/src/service.rs

@@ -52,52 +113,113 @@
   72     72   
                            <
   73     73   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
   74     74   
                                as ::aws_smithy_http_server::plugin::Plugin<
   75     75   
                                    JsonProtocol<L>,
   76     76   
                                    crate::operation_shape::ContentTypeParameters,
   77     77   
                                    ModelPl::Output
   78     78   
                                >
   79     79   
                            >::Output
   80     80   
                        >,
   81     81   
   82         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
   83         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
          82  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
          83  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
   84     84   
   85     85   
                    {
   86     86   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
   87     87   
        use ::aws_smithy_http_server::plugin::Plugin;
   88     88   
        let svc = crate::operation_shape::ContentTypeParameters::from_handler(handler);
   89     89   
        let svc = self.model_plugin.apply(svc);
   90     90   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
   91     91   
            .apply(svc);
   92     92   
        let svc = self.http_plugin.apply(svc);
   93     93   
        self.content_type_parameters_custom(svc)
@@ -119,119 +199,199 @@
  139    139   
                            <
  140    140   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  141    141   
                                as ::aws_smithy_http_server::plugin::Plugin<
  142    142   
                                    JsonProtocol<L>,
  143    143   
                                    crate::operation_shape::ContentTypeParameters,
  144    144   
                                    ModelPl::Output
  145    145   
                                >
  146    146   
                            >::Output
  147    147   
                        >,
  148    148   
  149         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  150         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         149  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         150  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  151    151   
  152    152   
                    {
  153    153   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  154    154   
        use ::aws_smithy_http_server::plugin::Plugin;
  155    155   
        let svc = crate::operation_shape::ContentTypeParameters::from_service(service);
  156    156   
        let svc = self.model_plugin.apply(svc);
  157    157   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  158    158   
            .apply(svc);
  159    159   
        let svc = self.http_plugin.apply(svc);
  160    160   
        self.content_type_parameters_custom(svc)
  161    161   
    }
  162    162   
  163    163   
    /// Sets the [`ContentTypeParameters`](crate::operation_shape::ContentTypeParameters) to a custom [`Service`](tower::Service).
  164    164   
    /// not constrained by the Smithy contract.
  165    165   
    fn content_type_parameters_custom<S>(mut self, svc: S) -> Self
  166    166   
    where
  167    167   
        S: ::tower::Service<
  168         -
                ::http::Request<Body>,
  169         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         168  +
                ::http_1x::Request<Body>,
         169  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  170    170   
                Error = ::std::convert::Infallible,
  171    171   
            > + Clone
  172    172   
            + Send
  173    173   
            + 'static,
  174    174   
        S::Future: Send + 'static,
  175    175   
    {
  176    176   
        self.content_type_parameters = Some(::aws_smithy_http_server::routing::Route::new(svc));
  177    177   
        self
  178    178   
    }
  179    179   
@@ -202,202 +263,263 @@
  222    222   
                            <
  223    223   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  224    224   
                                as ::aws_smithy_http_server::plugin::Plugin<
  225    225   
                                    JsonProtocol<L>,
  226    226   
                                    crate::operation_shape::DatetimeOffsets,
  227    227   
                                    ModelPl::Output
  228    228   
                                >
  229    229   
                            >::Output
  230    230   
                        >,
  231    231   
  232         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  233         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         232  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         233  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  234    234   
  235    235   
                    {
  236    236   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  237    237   
        use ::aws_smithy_http_server::plugin::Plugin;
  238    238   
        let svc = crate::operation_shape::DatetimeOffsets::from_handler(handler);
  239    239   
        let svc = self.model_plugin.apply(svc);
  240    240   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  241    241   
            .apply(svc);
  242    242   
        let svc = self.http_plugin.apply(svc);
  243    243   
        self.datetime_offsets_custom(svc)
@@ -269,269 +349,349 @@
  289    289   
                            <
  290    290   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  291    291   
                                as ::aws_smithy_http_server::plugin::Plugin<
  292    292   
                                    JsonProtocol<L>,
  293    293   
                                    crate::operation_shape::DatetimeOffsets,
  294    294   
                                    ModelPl::Output
  295    295   
                                >
  296    296   
                            >::Output
  297    297   
                        >,
  298    298   
  299         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  300         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         299  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         300  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  301    301   
  302    302   
                    {
  303    303   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  304    304   
        use ::aws_smithy_http_server::plugin::Plugin;
  305    305   
        let svc = crate::operation_shape::DatetimeOffsets::from_service(service);
  306    306   
        let svc = self.model_plugin.apply(svc);
  307    307   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  308    308   
            .apply(svc);
  309    309   
        let svc = self.http_plugin.apply(svc);
  310    310   
        self.datetime_offsets_custom(svc)
  311    311   
    }
  312    312   
  313    313   
    /// Sets the [`DatetimeOffsets`](crate::operation_shape::DatetimeOffsets) to a custom [`Service`](tower::Service).
  314    314   
    /// not constrained by the Smithy contract.
  315    315   
    fn datetime_offsets_custom<S>(mut self, svc: S) -> Self
  316    316   
    where
  317    317   
        S: ::tower::Service<
  318         -
                ::http::Request<Body>,
  319         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         318  +
                ::http_1x::Request<Body>,
         319  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  320    320   
                Error = ::std::convert::Infallible,
  321    321   
            > + Clone
  322    322   
            + Send
  323    323   
            + 'static,
  324    324   
        S::Future: Send + 'static,
  325    325   
    {
  326    326   
        self.datetime_offsets = Some(::aws_smithy_http_server::routing::Route::new(svc));
  327    327   
        self
  328    328   
    }
  329    329   
@@ -352,352 +413,413 @@
  372    372   
                            <
  373    373   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  374    374   
                                as ::aws_smithy_http_server::plugin::Plugin<
  375    375   
                                    JsonProtocol<L>,
  376    376   
                                    crate::operation_shape::EmptyOperation,
  377    377   
                                    ModelPl::Output
  378    378   
                                >
  379    379   
                            >::Output
  380    380   
                        >,
  381    381   
  382         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  383         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         382  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         383  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  384    384   
  385    385   
                    {
  386    386   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  387    387   
        use ::aws_smithy_http_server::plugin::Plugin;
  388    388   
        let svc = crate::operation_shape::EmptyOperation::from_handler(handler);
  389    389   
        let svc = self.model_plugin.apply(svc);
  390    390   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  391    391   
            .apply(svc);
  392    392   
        let svc = self.http_plugin.apply(svc);
  393    393   
        self.empty_operation_custom(svc)
@@ -419,419 +499,499 @@
  439    439   
                            <
  440    440   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  441    441   
                                as ::aws_smithy_http_server::plugin::Plugin<
  442    442   
                                    JsonProtocol<L>,
  443    443   
                                    crate::operation_shape::EmptyOperation,
  444    444   
                                    ModelPl::Output
  445    445   
                                >
  446    446   
                            >::Output
  447    447   
                        >,
  448    448   
  449         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  450         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         449  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         450  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  451    451   
  452    452   
                    {
  453    453   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  454    454   
        use ::aws_smithy_http_server::plugin::Plugin;
  455    455   
        let svc = crate::operation_shape::EmptyOperation::from_service(service);
  456    456   
        let svc = self.model_plugin.apply(svc);
  457    457   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  458    458   
            .apply(svc);
  459    459   
        let svc = self.http_plugin.apply(svc);
  460    460   
        self.empty_operation_custom(svc)
  461    461   
    }
  462    462   
  463    463   
    /// Sets the [`EmptyOperation`](crate::operation_shape::EmptyOperation) to a custom [`Service`](tower::Service).
  464    464   
    /// not constrained by the Smithy contract.
  465    465   
    fn empty_operation_custom<S>(mut self, svc: S) -> Self
  466    466   
    where
  467    467   
        S: ::tower::Service<
  468         -
                ::http::Request<Body>,
  469         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         468  +
                ::http_1x::Request<Body>,
         469  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  470    470   
                Error = ::std::convert::Infallible,
  471    471   
            > + Clone
  472    472   
            + Send
  473    473   
            + 'static,
  474    474   
        S::Future: Send + 'static,
  475    475   
    {
  476    476   
        self.empty_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
  477    477   
        self
  478    478   
    }
  479    479   
@@ -502,502 +563,563 @@
  522    522   
                            <
  523    523   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  524    524   
                                as ::aws_smithy_http_server::plugin::Plugin<
  525    525   
                                    JsonProtocol<L>,
  526    526   
                                    crate::operation_shape::EndpointOperation,
  527    527   
                                    ModelPl::Output
  528    528   
                                >
  529    529   
                            >::Output
  530    530   
                        >,
  531    531   
  532         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  533         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         532  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         533  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  534    534   
  535    535   
                    {
  536    536   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  537    537   
        use ::aws_smithy_http_server::plugin::Plugin;
  538    538   
        let svc = crate::operation_shape::EndpointOperation::from_handler(handler);
  539    539   
        let svc = self.model_plugin.apply(svc);
  540    540   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  541    541   
            .apply(svc);
  542    542   
        let svc = self.http_plugin.apply(svc);
  543    543   
        self.endpoint_operation_custom(svc)
@@ -569,569 +649,649 @@
  589    589   
                            <
  590    590   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  591    591   
                                as ::aws_smithy_http_server::plugin::Plugin<
  592    592   
                                    JsonProtocol<L>,
  593    593   
                                    crate::operation_shape::EndpointOperation,
  594    594   
                                    ModelPl::Output
  595    595   
                                >
  596    596   
                            >::Output
  597    597   
                        >,
  598    598   
  599         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  600         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         599  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         600  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  601    601   
  602    602   
                    {
  603    603   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  604    604   
        use ::aws_smithy_http_server::plugin::Plugin;
  605    605   
        let svc = crate::operation_shape::EndpointOperation::from_service(service);
  606    606   
        let svc = self.model_plugin.apply(svc);
  607    607   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  608    608   
            .apply(svc);
  609    609   
        let svc = self.http_plugin.apply(svc);
  610    610   
        self.endpoint_operation_custom(svc)
  611    611   
    }
  612    612   
  613    613   
    /// Sets the [`EndpointOperation`](crate::operation_shape::EndpointOperation) to a custom [`Service`](tower::Service).
  614    614   
    /// not constrained by the Smithy contract.
  615    615   
    fn endpoint_operation_custom<S>(mut self, svc: S) -> Self
  616    616   
    where
  617    617   
        S: ::tower::Service<
  618         -
                ::http::Request<Body>,
  619         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         618  +
                ::http_1x::Request<Body>,
         619  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  620    620   
                Error = ::std::convert::Infallible,
  621    621   
            > + Clone
  622    622   
            + Send
  623    623   
            + 'static,
  624    624   
        S::Future: Send + 'static,
  625    625   
    {
  626    626   
        self.endpoint_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
  627    627   
        self
  628    628   
    }
  629    629   
@@ -652,652 +713,713 @@
  672    672   
                            <
  673    673   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  674    674   
                                as ::aws_smithy_http_server::plugin::Plugin<
  675    675   
                                    JsonProtocol<L>,
  676    676   
                                    crate::operation_shape::EndpointWithHostLabelOperation,
  677    677   
                                    ModelPl::Output
  678    678   
                                >
  679    679   
                            >::Output
  680    680   
                        >,
  681    681   
  682         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  683         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         682  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         683  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  684    684   
  685    685   
                    {
  686    686   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  687    687   
        use ::aws_smithy_http_server::plugin::Plugin;
  688    688   
        let svc = crate::operation_shape::EndpointWithHostLabelOperation::from_handler(handler);
  689    689   
        let svc = self.model_plugin.apply(svc);
  690    690   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  691    691   
            .apply(svc);
  692    692   
        let svc = self.http_plugin.apply(svc);
  693    693   
        self.endpoint_with_host_label_operation_custom(svc)
@@ -719,719 +799,799 @@
  739    739   
                            <
  740    740   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  741    741   
                                as ::aws_smithy_http_server::plugin::Plugin<
  742    742   
                                    JsonProtocol<L>,
  743    743   
                                    crate::operation_shape::EndpointWithHostLabelOperation,
  744    744   
                                    ModelPl::Output
  745    745   
                                >
  746    746   
                            >::Output
  747    747   
                        >,
  748    748   
  749         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  750         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         749  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         750  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  751    751   
  752    752   
                    {
  753    753   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  754    754   
        use ::aws_smithy_http_server::plugin::Plugin;
  755    755   
        let svc = crate::operation_shape::EndpointWithHostLabelOperation::from_service(service);
  756    756   
        let svc = self.model_plugin.apply(svc);
  757    757   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  758    758   
            .apply(svc);
  759    759   
        let svc = self.http_plugin.apply(svc);
  760    760   
        self.endpoint_with_host_label_operation_custom(svc)
  761    761   
    }
  762    762   
  763    763   
    /// Sets the [`EndpointWithHostLabelOperation`](crate::operation_shape::EndpointWithHostLabelOperation) to a custom [`Service`](tower::Service).
  764    764   
    /// not constrained by the Smithy contract.
  765    765   
    fn endpoint_with_host_label_operation_custom<S>(mut self, svc: S) -> Self
  766    766   
    where
  767    767   
        S: ::tower::Service<
  768         -
                ::http::Request<Body>,
  769         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         768  +
                ::http_1x::Request<Body>,
         769  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  770    770   
                Error = ::std::convert::Infallible,
  771    771   
            > + Clone
  772    772   
            + Send
  773    773   
            + 'static,
  774    774   
        S::Future: Send + 'static,
  775    775   
    {
  776    776   
        self.endpoint_with_host_label_operation =
  777    777   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
  778    778   
        self
  779    779   
    }
@@ -803,803 +864,864 @@
  823    823   
                            <
  824    824   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  825    825   
                                as ::aws_smithy_http_server::plugin::Plugin<
  826    826   
                                    JsonProtocol<L>,
  827    827   
                                    crate::operation_shape::FractionalSeconds,
  828    828   
                                    ModelPl::Output
  829    829   
                                >
  830    830   
                            >::Output
  831    831   
                        >,
  832    832   
  833         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  834         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         833  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         834  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  835    835   
  836    836   
                    {
  837    837   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  838    838   
        use ::aws_smithy_http_server::plugin::Plugin;
  839    839   
        let svc = crate::operation_shape::FractionalSeconds::from_handler(handler);
  840    840   
        let svc = self.model_plugin.apply(svc);
  841    841   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  842    842   
            .apply(svc);
  843    843   
        let svc = self.http_plugin.apply(svc);
  844    844   
        self.fractional_seconds_custom(svc)
@@ -870,870 +950,950 @@
  890    890   
                            <
  891    891   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  892    892   
                                as ::aws_smithy_http_server::plugin::Plugin<
  893    893   
                                    JsonProtocol<L>,
  894    894   
                                    crate::operation_shape::FractionalSeconds,
  895    895   
                                    ModelPl::Output
  896    896   
                                >
  897    897   
                            >::Output
  898    898   
                        >,
  899    899   
  900         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  901         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         900  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         901  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  902    902   
  903    903   
                    {
  904    904   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  905    905   
        use ::aws_smithy_http_server::plugin::Plugin;
  906    906   
        let svc = crate::operation_shape::FractionalSeconds::from_service(service);
  907    907   
        let svc = self.model_plugin.apply(svc);
  908    908   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  909    909   
            .apply(svc);
  910    910   
        let svc = self.http_plugin.apply(svc);
  911    911   
        self.fractional_seconds_custom(svc)
  912    912   
    }
  913    913   
  914    914   
    /// Sets the [`FractionalSeconds`](crate::operation_shape::FractionalSeconds) to a custom [`Service`](tower::Service).
  915    915   
    /// not constrained by the Smithy contract.
  916    916   
    fn fractional_seconds_custom<S>(mut self, svc: S) -> Self
  917    917   
    where
  918    918   
        S: ::tower::Service<
  919         -
                ::http::Request<Body>,
  920         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         919  +
                ::http_1x::Request<Body>,
         920  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  921    921   
                Error = ::std::convert::Infallible,
  922    922   
            > + Clone
  923    923   
            + Send
  924    924   
            + 'static,
  925    925   
        S::Future: Send + 'static,
  926    926   
    {
  927    927   
        self.fractional_seconds = Some(::aws_smithy_http_server::routing::Route::new(svc));
  928    928   
        self
  929    929   
    }
  930    930   
@@ -953,953 +1014,1014 @@
  973    973   
                            <
  974    974   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  975    975   
                                as ::aws_smithy_http_server::plugin::Plugin<
  976    976   
                                    JsonProtocol<L>,
  977    977   
                                    crate::operation_shape::GreetingWithErrors,
  978    978   
                                    ModelPl::Output
  979    979   
                                >
  980    980   
                            >::Output
  981    981   
                        >,
  982    982   
  983         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  984         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         983  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         984  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  985    985   
  986    986   
                    {
  987    987   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  988    988   
        use ::aws_smithy_http_server::plugin::Plugin;
  989    989   
        let svc = crate::operation_shape::GreetingWithErrors::from_handler(handler);
  990    990   
        let svc = self.model_plugin.apply(svc);
  991    991   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  992    992   
            .apply(svc);
  993    993   
        let svc = self.http_plugin.apply(svc);
  994    994   
        self.greeting_with_errors_custom(svc)
@@ -1020,1020 +1100,1100 @@
 1040   1040   
                            <
 1041   1041   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1042   1042   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1043   1043   
                                    JsonProtocol<L>,
 1044   1044   
                                    crate::operation_shape::GreetingWithErrors,
 1045   1045   
                                    ModelPl::Output
 1046   1046   
                                >
 1047   1047   
                            >::Output
 1048   1048   
                        >,
 1049   1049   
 1050         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1051         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1050  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1051  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1052   1052   
 1053   1053   
                    {
 1054   1054   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1055   1055   
        use ::aws_smithy_http_server::plugin::Plugin;
 1056   1056   
        let svc = crate::operation_shape::GreetingWithErrors::from_service(service);
 1057   1057   
        let svc = self.model_plugin.apply(svc);
 1058   1058   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1059   1059   
            .apply(svc);
 1060   1060   
        let svc = self.http_plugin.apply(svc);
 1061   1061   
        self.greeting_with_errors_custom(svc)
 1062   1062   
    }
 1063   1063   
 1064   1064   
    /// Sets the [`GreetingWithErrors`](crate::operation_shape::GreetingWithErrors) to a custom [`Service`](tower::Service).
 1065   1065   
    /// not constrained by the Smithy contract.
 1066   1066   
    fn greeting_with_errors_custom<S>(mut self, svc: S) -> Self
 1067   1067   
    where
 1068   1068   
        S: ::tower::Service<
 1069         -
                ::http::Request<Body>,
 1070         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1069  +
                ::http_1x::Request<Body>,
        1070  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1071   1071   
                Error = ::std::convert::Infallible,
 1072   1072   
            > + Clone
 1073   1073   
            + Send
 1074   1074   
            + 'static,
 1075   1075   
        S::Future: Send + 'static,
 1076   1076   
    {
 1077   1077   
        self.greeting_with_errors = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1078   1078   
        self
 1079   1079   
    }
 1080   1080   
@@ -1103,1103 +1164,1164 @@
 1123   1123   
                            <
 1124   1124   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1125   1125   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1126   1126   
                                    JsonProtocol<L>,
 1127   1127   
                                    crate::operation_shape::HostWithPathOperation,
 1128   1128   
                                    ModelPl::Output
 1129   1129   
                                >
 1130   1130   
                            >::Output
 1131   1131   
                        >,
 1132   1132   
 1133         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1134         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1133  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1134  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1135   1135   
 1136   1136   
                    {
 1137   1137   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1138   1138   
        use ::aws_smithy_http_server::plugin::Plugin;
 1139   1139   
        let svc = crate::operation_shape::HostWithPathOperation::from_handler(handler);
 1140   1140   
        let svc = self.model_plugin.apply(svc);
 1141   1141   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1142   1142   
            .apply(svc);
 1143   1143   
        let svc = self.http_plugin.apply(svc);
 1144   1144   
        self.host_with_path_operation_custom(svc)
@@ -1170,1170 +1250,1250 @@
 1190   1190   
                            <
 1191   1191   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1192   1192   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1193   1193   
                                    JsonProtocol<L>,
 1194   1194   
                                    crate::operation_shape::HostWithPathOperation,
 1195   1195   
                                    ModelPl::Output
 1196   1196   
                                >
 1197   1197   
                            >::Output
 1198   1198   
                        >,
 1199   1199   
 1200         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1201         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1200  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1201  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1202   1202   
 1203   1203   
                    {
 1204   1204   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1205   1205   
        use ::aws_smithy_http_server::plugin::Plugin;
 1206   1206   
        let svc = crate::operation_shape::HostWithPathOperation::from_service(service);
 1207   1207   
        let svc = self.model_plugin.apply(svc);
 1208   1208   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1209   1209   
            .apply(svc);
 1210   1210   
        let svc = self.http_plugin.apply(svc);
 1211   1211   
        self.host_with_path_operation_custom(svc)
 1212   1212   
    }
 1213   1213   
 1214   1214   
    /// Sets the [`HostWithPathOperation`](crate::operation_shape::HostWithPathOperation) to a custom [`Service`](tower::Service).
 1215   1215   
    /// not constrained by the Smithy contract.
 1216   1216   
    fn host_with_path_operation_custom<S>(mut self, svc: S) -> Self
 1217   1217   
    where
 1218   1218   
        S: ::tower::Service<
 1219         -
                ::http::Request<Body>,
 1220         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1219  +
                ::http_1x::Request<Body>,
        1220  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1221   1221   
                Error = ::std::convert::Infallible,
 1222   1222   
            > + Clone
 1223   1223   
            + Send
 1224   1224   
            + 'static,
 1225   1225   
        S::Future: Send + 'static,
 1226   1226   
    {
 1227   1227   
        self.host_with_path_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1228   1228   
        self
 1229   1229   
    }
 1230   1230   
@@ -1253,1253 +1314,1314 @@
 1273   1273   
                            <
 1274   1274   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1275   1275   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1276   1276   
                                    JsonProtocol<L>,
 1277   1277   
                                    crate::operation_shape::JsonEnums,
 1278   1278   
                                    ModelPl::Output
 1279   1279   
                                >
 1280   1280   
                            >::Output
 1281   1281   
                        >,
 1282   1282   
 1283         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1284         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1283  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1284  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1285   1285   
 1286   1286   
                    {
 1287   1287   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1288   1288   
        use ::aws_smithy_http_server::plugin::Plugin;
 1289   1289   
        let svc = crate::operation_shape::JsonEnums::from_handler(handler);
 1290   1290   
        let svc = self.model_plugin.apply(svc);
 1291   1291   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1292   1292   
            .apply(svc);
 1293   1293   
        let svc = self.http_plugin.apply(svc);
 1294   1294   
        self.json_enums_custom(svc)
@@ -1320,1320 +1400,1400 @@
 1340   1340   
                            <
 1341   1341   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1342   1342   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1343   1343   
                                    JsonProtocol<L>,
 1344   1344   
                                    crate::operation_shape::JsonEnums,
 1345   1345   
                                    ModelPl::Output
 1346   1346   
                                >
 1347   1347   
                            >::Output
 1348   1348   
                        >,
 1349   1349   
 1350         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1351         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1350  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1351  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1352   1352   
 1353   1353   
                    {
 1354   1354   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1355   1355   
        use ::aws_smithy_http_server::plugin::Plugin;
 1356   1356   
        let svc = crate::operation_shape::JsonEnums::from_service(service);
 1357   1357   
        let svc = self.model_plugin.apply(svc);
 1358   1358   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1359   1359   
            .apply(svc);
 1360   1360   
        let svc = self.http_plugin.apply(svc);
 1361   1361   
        self.json_enums_custom(svc)
 1362   1362   
    }
 1363   1363   
 1364   1364   
    /// Sets the [`JsonEnums`](crate::operation_shape::JsonEnums) to a custom [`Service`](tower::Service).
 1365   1365   
    /// not constrained by the Smithy contract.
 1366   1366   
    fn json_enums_custom<S>(mut self, svc: S) -> Self
 1367   1367   
    where
 1368   1368   
        S: ::tower::Service<
 1369         -
                ::http::Request<Body>,
 1370         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1369  +
                ::http_1x::Request<Body>,
        1370  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1371   1371   
                Error = ::std::convert::Infallible,
 1372   1372   
            > + Clone
 1373   1373   
            + Send
 1374   1374   
            + 'static,
 1375   1375   
        S::Future: Send + 'static,
 1376   1376   
    {
 1377   1377   
        self.json_enums = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1378   1378   
        self
 1379   1379   
    }
 1380   1380   
@@ -1403,1403 +1464,1464 @@
 1423   1423   
                            <
 1424   1424   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1425   1425   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1426   1426   
                                    JsonProtocol<L>,
 1427   1427   
                                    crate::operation_shape::JsonIntEnums,
 1428   1428   
                                    ModelPl::Output
 1429   1429   
                                >
 1430   1430   
                            >::Output
 1431   1431   
                        >,
 1432   1432   
 1433         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1434         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1433  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1434  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1435   1435   
 1436   1436   
                    {
 1437   1437   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1438   1438   
        use ::aws_smithy_http_server::plugin::Plugin;
 1439   1439   
        let svc = crate::operation_shape::JsonIntEnums::from_handler(handler);
 1440   1440   
        let svc = self.model_plugin.apply(svc);
 1441   1441   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1442   1442   
            .apply(svc);
 1443   1443   
        let svc = self.http_plugin.apply(svc);
 1444   1444   
        self.json_int_enums_custom(svc)
@@ -1470,1470 +1550,1550 @@
 1490   1490   
                            <
 1491   1491   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1492   1492   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1493   1493   
                                    JsonProtocol<L>,
 1494   1494   
                                    crate::operation_shape::JsonIntEnums,
 1495   1495   
                                    ModelPl::Output
 1496   1496   
                                >
 1497   1497   
                            >::Output
 1498   1498   
                        >,
 1499   1499   
 1500         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1501         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1500  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1501  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1502   1502   
 1503   1503   
                    {
 1504   1504   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1505   1505   
        use ::aws_smithy_http_server::plugin::Plugin;
 1506   1506   
        let svc = crate::operation_shape::JsonIntEnums::from_service(service);
 1507   1507   
        let svc = self.model_plugin.apply(svc);
 1508   1508   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1509   1509   
            .apply(svc);
 1510   1510   
        let svc = self.http_plugin.apply(svc);
 1511   1511   
        self.json_int_enums_custom(svc)
 1512   1512   
    }
 1513   1513   
 1514   1514   
    /// Sets the [`JsonIntEnums`](crate::operation_shape::JsonIntEnums) to a custom [`Service`](tower::Service).
 1515   1515   
    /// not constrained by the Smithy contract.
 1516   1516   
    fn json_int_enums_custom<S>(mut self, svc: S) -> Self
 1517   1517   
    where
 1518   1518   
        S: ::tower::Service<
 1519         -
                ::http::Request<Body>,
 1520         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1519  +
                ::http_1x::Request<Body>,
        1520  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1521   1521   
                Error = ::std::convert::Infallible,
 1522   1522   
            > + Clone
 1523   1523   
            + Send
 1524   1524   
            + 'static,
 1525   1525   
        S::Future: Send + 'static,
 1526   1526   
    {
 1527   1527   
        self.json_int_enums = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1528   1528   
        self
 1529   1529   
    }
 1530   1530   
@@ -1553,1553 +1614,1614 @@
 1573   1573   
                            <
 1574   1574   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1575   1575   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1576   1576   
                                    JsonProtocol<L>,
 1577   1577   
                                    crate::operation_shape::JsonUnions,
 1578   1578   
                                    ModelPl::Output
 1579   1579   
                                >
 1580   1580   
                            >::Output
 1581   1581   
                        >,
 1582   1582   
 1583         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1584         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1583  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1584  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1585   1585   
 1586   1586   
                    {
 1587   1587   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1588   1588   
        use ::aws_smithy_http_server::plugin::Plugin;
 1589   1589   
        let svc = crate::operation_shape::JsonUnions::from_handler(handler);
 1590   1590   
        let svc = self.model_plugin.apply(svc);
 1591   1591   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1592   1592   
            .apply(svc);
 1593   1593   
        let svc = self.http_plugin.apply(svc);
 1594   1594   
        self.json_unions_custom(svc)
@@ -1620,1620 +1700,1700 @@
 1640   1640   
                            <
 1641   1641   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1642   1642   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1643   1643   
                                    JsonProtocol<L>,
 1644   1644   
                                    crate::operation_shape::JsonUnions,
 1645   1645   
                                    ModelPl::Output
 1646   1646   
                                >
 1647   1647   
                            >::Output
 1648   1648   
                        >,
 1649   1649   
 1650         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1651         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1650  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1651  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1652   1652   
 1653   1653   
                    {
 1654   1654   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1655   1655   
        use ::aws_smithy_http_server::plugin::Plugin;
 1656   1656   
        let svc = crate::operation_shape::JsonUnions::from_service(service);
 1657   1657   
        let svc = self.model_plugin.apply(svc);
 1658   1658   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1659   1659   
            .apply(svc);
 1660   1660   
        let svc = self.http_plugin.apply(svc);
 1661   1661   
        self.json_unions_custom(svc)
 1662   1662   
    }
 1663   1663   
 1664   1664   
    /// Sets the [`JsonUnions`](crate::operation_shape::JsonUnions) to a custom [`Service`](tower::Service).
 1665   1665   
    /// not constrained by the Smithy contract.
 1666   1666   
    fn json_unions_custom<S>(mut self, svc: S) -> Self
 1667   1667   
    where
 1668   1668   
        S: ::tower::Service<
 1669         -
                ::http::Request<Body>,
 1670         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1669  +
                ::http_1x::Request<Body>,
        1670  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1671   1671   
                Error = ::std::convert::Infallible,
 1672   1672   
            > + Clone
 1673   1673   
            + Send
 1674   1674   
            + 'static,
 1675   1675   
        S::Future: Send + 'static,
 1676   1676   
    {
 1677   1677   
        self.json_unions = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1678   1678   
        self
 1679   1679   
    }
 1680   1680   
@@ -1703,1703 +1764,1764 @@
 1723   1723   
                            <
 1724   1724   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1725   1725   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1726   1726   
                                    JsonProtocol<L>,
 1727   1727   
                                    crate::operation_shape::KitchenSinkOperation,
 1728   1728   
                                    ModelPl::Output
 1729   1729   
                                >
 1730   1730   
                            >::Output
 1731   1731   
                        >,
 1732   1732   
 1733         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1734         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1733  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1734  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1735   1735   
 1736   1736   
                    {
 1737   1737   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1738   1738   
        use ::aws_smithy_http_server::plugin::Plugin;
 1739   1739   
        let svc = crate::operation_shape::KitchenSinkOperation::from_handler(handler);
 1740   1740   
        let svc = self.model_plugin.apply(svc);
 1741   1741   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1742   1742   
            .apply(svc);
 1743   1743   
        let svc = self.http_plugin.apply(svc);
 1744   1744   
        self.kitchen_sink_operation_custom(svc)
@@ -1770,1770 +1850,1850 @@
 1790   1790   
                            <
 1791   1791   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1792   1792   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1793   1793   
                                    JsonProtocol<L>,
 1794   1794   
                                    crate::operation_shape::KitchenSinkOperation,
 1795   1795   
                                    ModelPl::Output
 1796   1796   
                                >
 1797   1797   
                            >::Output
 1798   1798   
                        >,
 1799   1799   
 1800         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1801         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1800  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1801  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1802   1802   
 1803   1803   
                    {
 1804   1804   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1805   1805   
        use ::aws_smithy_http_server::plugin::Plugin;
 1806   1806   
        let svc = crate::operation_shape::KitchenSinkOperation::from_service(service);
 1807   1807   
        let svc = self.model_plugin.apply(svc);
 1808   1808   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1809   1809   
            .apply(svc);
 1810   1810   
        let svc = self.http_plugin.apply(svc);
 1811   1811   
        self.kitchen_sink_operation_custom(svc)
 1812   1812   
    }
 1813   1813   
 1814   1814   
    /// Sets the [`KitchenSinkOperation`](crate::operation_shape::KitchenSinkOperation) to a custom [`Service`](tower::Service).
 1815   1815   
    /// not constrained by the Smithy contract.
 1816   1816   
    fn kitchen_sink_operation_custom<S>(mut self, svc: S) -> Self
 1817   1817   
    where
 1818   1818   
        S: ::tower::Service<
 1819         -
                ::http::Request<Body>,
 1820         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1819  +
                ::http_1x::Request<Body>,
        1820  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1821   1821   
                Error = ::std::convert::Infallible,
 1822   1822   
            > + Clone
 1823   1823   
            + Send
 1824   1824   
            + 'static,
 1825   1825   
        S::Future: Send + 'static,
 1826   1826   
    {
 1827   1827   
        self.kitchen_sink_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1828   1828   
        self
 1829   1829   
    }
 1830   1830   
@@ -1853,1853 +1914,1914 @@
 1873   1873   
                            <
 1874   1874   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1875   1875   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1876   1876   
                                    JsonProtocol<L>,
 1877   1877   
                                    crate::operation_shape::NullOperation,
 1878   1878   
                                    ModelPl::Output
 1879   1879   
                                >
 1880   1880   
                            >::Output
 1881   1881   
                        >,
 1882   1882   
 1883         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1884         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1883  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1884  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1885   1885   
 1886   1886   
                    {
 1887   1887   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1888   1888   
        use ::aws_smithy_http_server::plugin::Plugin;
 1889   1889   
        let svc = crate::operation_shape::NullOperation::from_handler(handler);
 1890   1890   
        let svc = self.model_plugin.apply(svc);
 1891   1891   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1892   1892   
            .apply(svc);
 1893   1893   
        let svc = self.http_plugin.apply(svc);
 1894   1894   
        self.null_operation_custom(svc)
@@ -1920,1920 +2000,2000 @@
 1940   1940   
                            <
 1941   1941   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1942   1942   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1943   1943   
                                    JsonProtocol<L>,
 1944   1944   
                                    crate::operation_shape::NullOperation,
 1945   1945   
                                    ModelPl::Output
 1946   1946   
                                >
 1947   1947   
                            >::Output
 1948   1948   
                        >,
 1949   1949   
 1950         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1951         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1950  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1951  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1952   1952   
 1953   1953   
                    {
 1954   1954   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1955   1955   
        use ::aws_smithy_http_server::plugin::Plugin;
 1956   1956   
        let svc = crate::operation_shape::NullOperation::from_service(service);
 1957   1957   
        let svc = self.model_plugin.apply(svc);
 1958   1958   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1959   1959   
            .apply(svc);
 1960   1960   
        let svc = self.http_plugin.apply(svc);
 1961   1961   
        self.null_operation_custom(svc)
 1962   1962   
    }
 1963   1963   
 1964   1964   
    /// Sets the [`NullOperation`](crate::operation_shape::NullOperation) to a custom [`Service`](tower::Service).
 1965   1965   
    /// not constrained by the Smithy contract.
 1966   1966   
    fn null_operation_custom<S>(mut self, svc: S) -> Self
 1967   1967   
    where
 1968   1968   
        S: ::tower::Service<
 1969         -
                ::http::Request<Body>,
 1970         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1969  +
                ::http_1x::Request<Body>,
        1970  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1971   1971   
                Error = ::std::convert::Infallible,
 1972   1972   
            > + Clone
 1973   1973   
            + Send
 1974   1974   
            + 'static,
 1975   1975   
        S::Future: Send + 'static,
 1976   1976   
    {
 1977   1977   
        self.null_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1978   1978   
        self
 1979   1979   
    }
 1980   1980   
@@ -2003,2003 +2064,2064 @@
 2023   2023   
                            <
 2024   2024   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2025   2025   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2026   2026   
                                    JsonProtocol<L>,
 2027   2027   
                                    crate::operation_shape::OperationWithOptionalInputOutput,
 2028   2028   
                                    ModelPl::Output
 2029   2029   
                                >
 2030   2030   
                            >::Output
 2031   2031   
                        >,
 2032   2032   
 2033         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2034         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2033  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2034  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2035   2035   
 2036   2036   
                    {
 2037   2037   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2038   2038   
        use ::aws_smithy_http_server::plugin::Plugin;
 2039   2039   
        let svc = crate::operation_shape::OperationWithOptionalInputOutput::from_handler(handler);
 2040   2040   
        let svc = self.model_plugin.apply(svc);
 2041   2041   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2042   2042   
            .apply(svc);
 2043   2043   
        let svc = self.http_plugin.apply(svc);
 2044   2044   
        self.operation_with_optional_input_output_custom(svc)
@@ -2070,2070 +2150,2150 @@
 2090   2090   
                            <
 2091   2091   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2092   2092   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2093   2093   
                                    JsonProtocol<L>,
 2094   2094   
                                    crate::operation_shape::OperationWithOptionalInputOutput,
 2095   2095   
                                    ModelPl::Output
 2096   2096   
                                >
 2097   2097   
                            >::Output
 2098   2098   
                        >,
 2099   2099   
 2100         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2101         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2100  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2101  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2102   2102   
 2103   2103   
                    {
 2104   2104   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2105   2105   
        use ::aws_smithy_http_server::plugin::Plugin;
 2106   2106   
        let svc = crate::operation_shape::OperationWithOptionalInputOutput::from_service(service);
 2107   2107   
        let svc = self.model_plugin.apply(svc);
 2108   2108   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2109   2109   
            .apply(svc);
 2110   2110   
        let svc = self.http_plugin.apply(svc);
 2111   2111   
        self.operation_with_optional_input_output_custom(svc)
 2112   2112   
    }
 2113   2113   
 2114   2114   
    /// Sets the [`OperationWithOptionalInputOutput`](crate::operation_shape::OperationWithOptionalInputOutput) to a custom [`Service`](tower::Service).
 2115   2115   
    /// not constrained by the Smithy contract.
 2116   2116   
    fn operation_with_optional_input_output_custom<S>(mut self, svc: S) -> Self
 2117   2117   
    where
 2118   2118   
        S: ::tower::Service<
 2119         -
                ::http::Request<Body>,
 2120         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2119  +
                ::http_1x::Request<Body>,
        2120  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 2121   2121   
                Error = ::std::convert::Infallible,
 2122   2122   
            > + Clone
 2123   2123   
            + Send
 2124   2124   
            + 'static,
 2125   2125   
        S::Future: Send + 'static,
 2126   2126   
    {
 2127   2127   
        self.operation_with_optional_input_output =
 2128   2128   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
 2129   2129   
        self
 2130   2130   
    }
@@ -2154,2154 +2215,2215 @@
 2174   2174   
                            <
 2175   2175   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2176   2176   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2177   2177   
                                    JsonProtocol<L>,
 2178   2178   
                                    crate::operation_shape::PutAndGetInlineDocuments,
 2179   2179   
                                    ModelPl::Output
 2180   2180   
                                >
 2181   2181   
                            >::Output
 2182   2182   
                        >,
 2183   2183   
 2184         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2185         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2184  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2185  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2186   2186   
 2187   2187   
                    {
 2188   2188   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2189   2189   
        use ::aws_smithy_http_server::plugin::Plugin;
 2190   2190   
        let svc = crate::operation_shape::PutAndGetInlineDocuments::from_handler(handler);
 2191   2191   
        let svc = self.model_plugin.apply(svc);
 2192   2192   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2193   2193   
            .apply(svc);
 2194   2194   
        let svc = self.http_plugin.apply(svc);
 2195   2195   
        self.put_and_get_inline_documents_custom(svc)
@@ -2221,2221 +2301,2301 @@
 2241   2241   
                            <
 2242   2242   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2243   2243   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2244   2244   
                                    JsonProtocol<L>,
 2245   2245   
                                    crate::operation_shape::PutAndGetInlineDocuments,
 2246   2246   
                                    ModelPl::Output
 2247   2247   
                                >
 2248   2248   
                            >::Output
 2249   2249   
                        >,
 2250   2250   
 2251         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2252         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2251  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2252  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2253   2253   
 2254   2254   
                    {
 2255   2255   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2256   2256   
        use ::aws_smithy_http_server::plugin::Plugin;
 2257   2257   
        let svc = crate::operation_shape::PutAndGetInlineDocuments::from_service(service);
 2258   2258   
        let svc = self.model_plugin.apply(svc);
 2259   2259   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2260   2260   
            .apply(svc);
 2261   2261   
        let svc = self.http_plugin.apply(svc);
 2262   2262   
        self.put_and_get_inline_documents_custom(svc)
 2263   2263   
    }
 2264   2264   
 2265   2265   
    /// Sets the [`PutAndGetInlineDocuments`](crate::operation_shape::PutAndGetInlineDocuments) to a custom [`Service`](tower::Service).
 2266   2266   
    /// not constrained by the Smithy contract.
 2267   2267   
    fn put_and_get_inline_documents_custom<S>(mut self, svc: S) -> Self
 2268   2268   
    where
 2269   2269   
        S: ::tower::Service<
 2270         -
                ::http::Request<Body>,
 2271         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2270  +
                ::http_1x::Request<Body>,
        2271  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 2272   2272   
                Error = ::std::convert::Infallible,
 2273   2273   
            > + Clone
 2274   2274   
            + Send
 2275   2275   
            + 'static,
 2276   2276   
        S::Future: Send + 'static,
 2277   2277   
    {
 2278   2278   
        self.put_and_get_inline_documents =
 2279   2279   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
 2280   2280   
        self
 2281   2281   
    }
@@ -2305,2305 +2366,2366 @@
 2325   2325   
                            <
 2326   2326   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2327   2327   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2328   2328   
                                    JsonProtocol<L>,
 2329   2329   
                                    crate::operation_shape::PutWithContentEncoding,
 2330   2330   
                                    ModelPl::Output
 2331   2331   
                                >
 2332   2332   
                            >::Output
 2333   2333   
                        >,
 2334   2334   
 2335         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2336         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2335  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2336  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2337   2337   
 2338   2338   
                    {
 2339   2339   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2340   2340   
        use ::aws_smithy_http_server::plugin::Plugin;
 2341   2341   
        let svc = crate::operation_shape::PutWithContentEncoding::from_handler(handler);
 2342   2342   
        let svc = self.model_plugin.apply(svc);
 2343   2343   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2344   2344   
            .apply(svc);
 2345   2345   
        let svc = self.http_plugin.apply(svc);
 2346   2346   
        self.put_with_content_encoding_custom(svc)
@@ -2372,2372 +2452,2452 @@
 2392   2392   
                            <
 2393   2393   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2394   2394   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2395   2395   
                                    JsonProtocol<L>,
 2396   2396   
                                    crate::operation_shape::PutWithContentEncoding,
 2397   2397   
                                    ModelPl::Output
 2398   2398   
                                >
 2399   2399   
                            >::Output
 2400   2400   
                        >,
 2401   2401   
 2402         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2403         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2402  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2403  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2404   2404   
 2405   2405   
                    {
 2406   2406   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2407   2407   
        use ::aws_smithy_http_server::plugin::Plugin;
 2408   2408   
        let svc = crate::operation_shape::PutWithContentEncoding::from_service(service);
 2409   2409   
        let svc = self.model_plugin.apply(svc);
 2410   2410   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2411   2411   
            .apply(svc);
 2412   2412   
        let svc = self.http_plugin.apply(svc);
 2413   2413   
        self.put_with_content_encoding_custom(svc)
 2414   2414   
    }
 2415   2415   
 2416   2416   
    /// Sets the [`PutWithContentEncoding`](crate::operation_shape::PutWithContentEncoding) to a custom [`Service`](tower::Service).
 2417   2417   
    /// not constrained by the Smithy contract.
 2418   2418   
    fn put_with_content_encoding_custom<S>(mut self, svc: S) -> Self
 2419   2419   
    where
 2420   2420   
        S: ::tower::Service<
 2421         -
                ::http::Request<Body>,
 2422         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2421  +
                ::http_1x::Request<Body>,
        2422  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 2423   2423   
                Error = ::std::convert::Infallible,
 2424   2424   
            > + Clone
 2425   2425   
            + Send
 2426   2426   
            + 'static,
 2427   2427   
        S::Future: Send + 'static,
 2428   2428   
    {
 2429   2429   
        self.put_with_content_encoding = Some(::aws_smithy_http_server::routing::Route::new(svc));
 2430   2430   
        self
 2431   2431   
    }
 2432   2432   
@@ -2455,2455 +2516,2516 @@
 2475   2475   
                            <
 2476   2476   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2477   2477   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2478   2478   
                                    JsonProtocol<L>,
 2479   2479   
                                    crate::operation_shape::SimpleScalarProperties,
 2480   2480   
                                    ModelPl::Output
 2481   2481   
                                >
 2482   2482   
                            >::Output
 2483   2483   
                        >,
 2484   2484   
 2485         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2486         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2485  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2486  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2487   2487   
 2488   2488   
                    {
 2489   2489   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2490   2490   
        use ::aws_smithy_http_server::plugin::Plugin;
 2491   2491   
        let svc = crate::operation_shape::SimpleScalarProperties::from_handler(handler);
 2492   2492   
        let svc = self.model_plugin.apply(svc);
 2493   2493   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2494   2494   
            .apply(svc);
 2495   2495   
        let svc = self.http_plugin.apply(svc);
 2496   2496   
        self.simple_scalar_properties_custom(svc)
@@ -2522,2522 +2602,2602 @@
 2542   2542   
                            <
 2543   2543   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2544   2544   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2545   2545   
                                    JsonProtocol<L>,
 2546   2546   
                                    crate::operation_shape::SimpleScalarProperties,
 2547   2547   
                                    ModelPl::Output
 2548   2548   
                                >
 2549   2549   
                            >::Output
 2550   2550   
                        >,
 2551   2551   
 2552         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2553         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2552  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2553  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2554   2554   
 2555   2555   
                    {
 2556   2556   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2557   2557   
        use ::aws_smithy_http_server::plugin::Plugin;
 2558   2558   
        let svc = crate::operation_shape::SimpleScalarProperties::from_service(service);
 2559   2559   
        let svc = self.model_plugin.apply(svc);
 2560   2560   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2561   2561   
            .apply(svc);
 2562   2562   
        let svc = self.http_plugin.apply(svc);
 2563   2563   
        self.simple_scalar_properties_custom(svc)
 2564   2564   
    }
 2565   2565   
 2566   2566   
    /// Sets the [`SimpleScalarProperties`](crate::operation_shape::SimpleScalarProperties) to a custom [`Service`](tower::Service).
 2567   2567   
    /// not constrained by the Smithy contract.
 2568   2568   
    fn simple_scalar_properties_custom<S>(mut self, svc: S) -> Self
 2569   2569   
    where
 2570   2570   
        S: ::tower::Service<
 2571         -
                ::http::Request<Body>,
 2572         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2571  +
                ::http_1x::Request<Body>,
        2572  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 2573   2573   
                Error = ::std::convert::Infallible,
 2574   2574   
            > + Clone
 2575   2575   
            + Send
 2576   2576   
            + 'static,
 2577   2577   
        S::Future: Send + 'static,
 2578   2578   
    {
 2579   2579   
        self.simple_scalar_properties = Some(::aws_smithy_http_server::routing::Route::new(svc));
 2580   2580   
        self
 2581   2581   
    }
 2582   2582   
@@ -2605,2605 +2666,2666 @@
 2625   2625   
                            <
 2626   2626   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2627   2627   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2628   2628   
                                    JsonProtocol<L>,
 2629   2629   
                                    crate::operation_shape::SparseNullsOperation,
 2630   2630   
                                    ModelPl::Output
 2631   2631   
                                >
 2632   2632   
                            >::Output
 2633   2633   
                        >,
 2634   2634   
 2635         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2636         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2635  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2636  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2637   2637   
 2638   2638   
                    {
 2639   2639   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2640   2640   
        use ::aws_smithy_http_server::plugin::Plugin;
 2641   2641   
        let svc = crate::operation_shape::SparseNullsOperation::from_handler(handler);
 2642   2642   
        let svc = self.model_plugin.apply(svc);
 2643   2643   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2644   2644   
            .apply(svc);
 2645   2645   
        let svc = self.http_plugin.apply(svc);
 2646   2646   
        self.sparse_nulls_operation_custom(svc)
@@ -2672,2672 +2752,2752 @@
 2692   2692   
                            <
 2693   2693   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2694   2694   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2695   2695   
                                    JsonProtocol<L>,
 2696   2696   
                                    crate::operation_shape::SparseNullsOperation,
 2697   2697   
                                    ModelPl::Output
 2698   2698   
                                >
 2699   2699   
                            >::Output
 2700   2700   
                        >,
 2701   2701   
 2702         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2703         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2702  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2703  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2704   2704   
 2705   2705   
                    {
 2706   2706   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2707   2707   
        use ::aws_smithy_http_server::plugin::Plugin;
 2708   2708   
        let svc = crate::operation_shape::SparseNullsOperation::from_service(service);
 2709   2709   
        let svc = self.model_plugin.apply(svc);
 2710   2710   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2711   2711   
            .apply(svc);
 2712   2712   
        let svc = self.http_plugin.apply(svc);
 2713   2713   
        self.sparse_nulls_operation_custom(svc)
 2714   2714   
    }
 2715   2715   
 2716   2716   
    /// Sets the [`SparseNullsOperation`](crate::operation_shape::SparseNullsOperation) to a custom [`Service`](tower::Service).
 2717   2717   
    /// not constrained by the Smithy contract.
 2718   2718   
    fn sparse_nulls_operation_custom<S>(mut self, svc: S) -> Self
 2719   2719   
    where
 2720   2720   
        S: ::tower::Service<
 2721         -
                ::http::Request<Body>,
 2722         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2721  +
                ::http_1x::Request<Body>,
        2722  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 2723   2723   
                Error = ::std::convert::Infallible,
 2724   2724   
            > + Clone
 2725   2725   
            + Send
 2726   2726   
            + 'static,
 2727   2727   
        S::Future: Send + 'static,
 2728   2728   
    {
 2729   2729   
        self.sparse_nulls_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
 2730   2730   
        self
 2731   2731   
    }
 2732   2732   
}
@@ -3377,3377 +3438,3438 @@
 3397   3397   
    ) -> JsonProtocol<
 3398   3398   
        ::aws_smithy_http_server::routing::RoutingService<
 3399   3399   
            ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<
 3400   3400   
                ::aws_smithy_http_server::routing::Route<B>,
 3401   3401   
            >,
 3402   3402   
            ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 3403   3403   
        >,
 3404   3404   
    >
 3405   3405   
    where
 3406   3406   
        S: ::tower::Service<
 3407         -
            ::http::Request<B>,
 3408         -
            Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        3407  +
            ::http_1x::Request<B>,
        3408  +
            Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 3409   3409   
            Error = std::convert::Infallible,
 3410   3410   
        >,
 3411   3411   
        S: Clone + Send + 'static,
 3412   3412   
        S::Future: Send + 'static,
 3413   3413   
    {
 3414   3414   
        self.layer(&::tower::layer::layer_fn(
 3415   3415   
            ::aws_smithy_http_server::routing::Route::new,
 3416   3416   
        ))
 3417   3417   
    }
 3418   3418   
}

tmp-codegen-diff/codegen-server-test/misc-http0x/rust-server-codegen/Cargo.toml

@@ -0,1 +0,54 @@
           1  +
# Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
[package]
           3  +
name = "misc-http0x"
           4  +
version = "0.0.1"
           5  +
authors = ["protocoltest@example.com"]
           6  +
description = "test"
           7  +
edition = "2021"
           8  +
           9  +
[package.metadata.smithy]
          10  +
codegen-version = "ci"
          11  +
protocol = "aws.protocols#restJson1"
          12  +
[dependencies.aws-smithy-json]
          13  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-json"
          14  +
[dependencies.aws-smithy-legacy-http]
          15  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-legacy-http"
          16  +
[dependencies.aws-smithy-legacy-http-server]
          17  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-legacy-http-server"
          18  +
[dependencies.aws-smithy-runtime-api]
          19  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-runtime-api"
          20  +
features = ["http-02x"]
          21  +
[dependencies.aws-smithy-types]
          22  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-types"
          23  +
features = ["http-body-0-4-x"]
          24  +
[dependencies.futures-util]
          25  +
version = "0.3"
          26  +
[dependencies.http]
          27  +
version = "0.2.9"
          28  +
[dependencies.hyper]
          29  +
version = "0.14.26"
          30  +
[dependencies.mime]
          31  +
version = "0.3"
          32  +
[dependencies.pin-project-lite]
          33  +
version = "0.2"
          34  +
[dependencies.tower]
          35  +
version = "0.4"
          36  +
[dependencies.tracing]
          37  +
version = "0.1"
          38  +
[dev-dependencies.aws-smithy-protocol-test]
          39  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-protocol-test"
          40  +
[dev-dependencies.pretty_assertions]
          41  +
version = "1.3.0"
          42  +
[dev-dependencies.tokio]
          43  +
version = "1.23.1"
          44  +
features = ["macros", "test-util", "rt-multi-thread"]
          45  +
[dev-dependencies.tracing-test]
          46  +
version = "0.2.5"
          47  +
features = ["no-env-filter"]
          48  +
[features]
          49  +
rt-tokio = ["aws-smithy-types/rt-tokio"]
          50  +
aws-lambda = ["aws-smithy-legacy-http-server/aws-lambda"]
          51  +
request-id = ["aws-smithy-legacy-http-server/request-id"]
          52  +
default = ["rt-tokio", "request-id"]
          53  +
          54  +

tmp-codegen-diff/codegen-server-test/misc-http0x/rust-server-codegen/src/constrained.rs

@@ -0,1 +0,16 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/*
           3  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
           4  +
 * SPDX-License-Identifier: Apache-2.0
           5  +
 */
           6  +
           7  +
pub(crate) trait Constrained {
           8  +
    type Unconstrained;
           9  +
}
          10  +
          11  +
#[derive(Debug, Clone)]
          12  +
#[allow(dead_code)]
          13  +
pub(crate) enum MaybeConstrained<T: Constrained> {
          14  +
    Constrained(T),
          15  +
    Unconstrained(T::Unconstrained),
          16  +
}

tmp-codegen-diff/codegen-server-test/misc-http0x/rust-server-codegen/src/error.rs

@@ -0,1 +0,202 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// Error type for the `RequiredHeaderCollectionOperation` operation.
           4  +
/// Each variant represents an error that can occur for the `RequiredHeaderCollectionOperation` operation.
           5  +
#[derive(::std::fmt::Debug)]
           6  +
pub enum RequiredHeaderCollectionOperationError {
           7  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
           8  +
    ValidationException(crate::error::ValidationException),
           9  +
}
          10  +
impl ::std::fmt::Display for RequiredHeaderCollectionOperationError {
          11  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
          12  +
        match &self {
          13  +
            RequiredHeaderCollectionOperationError::ValidationException(_inner) => _inner.fmt(f),
          14  +
        }
          15  +
    }
          16  +
}
          17  +
impl RequiredHeaderCollectionOperationError {
          18  +
    /// Returns `true` if the error kind is `RequiredHeaderCollectionOperationError::ValidationException`.
          19  +
    pub fn is_validation_exception(&self) -> bool {
          20  +
        matches!(
          21  +
            &self,
          22  +
            RequiredHeaderCollectionOperationError::ValidationException(_)
          23  +
        )
          24  +
    }
          25  +
    /// Returns the error name string by matching the correct variant.
          26  +
    pub fn name(&self) -> &'static str {
          27  +
        match &self {
          28  +
            RequiredHeaderCollectionOperationError::ValidationException(_inner) => _inner.name(),
          29  +
        }
          30  +
    }
          31  +
}
          32  +
impl ::std::error::Error for RequiredHeaderCollectionOperationError {
          33  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
          34  +
        match &self {
          35  +
            RequiredHeaderCollectionOperationError::ValidationException(_inner) => Some(_inner),
          36  +
        }
          37  +
    }
          38  +
}
          39  +
impl ::std::convert::From<crate::error::ValidationException>
          40  +
    for crate::error::RequiredHeaderCollectionOperationError
          41  +
{
          42  +
    fn from(
          43  +
        variant: crate::error::ValidationException,
          44  +
    ) -> crate::error::RequiredHeaderCollectionOperationError {
          45  +
        Self::ValidationException(variant)
          46  +
    }
          47  +
}
          48  +
          49  +
/// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
          50  +
#[derive(
          51  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          52  +
)]
          53  +
pub struct ValidationException {
          54  +
    /// A summary of the validation failure.
          55  +
    pub message: ::std::string::String,
          56  +
    /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
          57  +
    pub field_list: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
          58  +
}
          59  +
impl ValidationException {
          60  +
    /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
          61  +
    pub fn field_list(&self) -> ::std::option::Option<&[crate::model::ValidationExceptionField]> {
          62  +
        self.field_list.as_deref()
          63  +
    }
          64  +
}
          65  +
impl ValidationException {
          66  +
    /// Returns the error message.
          67  +
    pub fn message(&self) -> &str {
          68  +
        &self.message
          69  +
    }
          70  +
    #[doc(hidden)]
          71  +
    /// Returns the error name.
          72  +
    pub fn name(&self) -> &'static str {
          73  +
        "ValidationException"
          74  +
    }
          75  +
}
          76  +
impl ::std::fmt::Display for ValidationException {
          77  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
          78  +
        ::std::write!(f, "ValidationException")?;
          79  +
        {
          80  +
            ::std::write!(f, ": {}", &self.message)?;
          81  +
        }
          82  +
        Ok(())
          83  +
    }
          84  +
}
          85  +
impl ::std::error::Error for ValidationException {}
          86  +
impl ValidationException {
          87  +
    /// Creates a new builder-style object to manufacture [`ValidationException`](crate::error::ValidationException).
          88  +
    pub fn builder() -> crate::error::validation_exception::Builder {
          89  +
        crate::error::validation_exception::Builder::default()
          90  +
    }
          91  +
}
          92  +
          93  +
/// Error type for the `RequiredInnerShapeOperation` operation.
          94  +
/// Each variant represents an error that can occur for the `RequiredInnerShapeOperation` operation.
          95  +
#[derive(::std::fmt::Debug)]
          96  +
pub enum RequiredInnerShapeOperationError {
          97  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
          98  +
    ValidationException(crate::error::ValidationException),
          99  +
}
         100  +
impl ::std::fmt::Display for RequiredInnerShapeOperationError {
         101  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         102  +
        match &self {
         103  +
            RequiredInnerShapeOperationError::ValidationException(_inner) => _inner.fmt(f),
         104  +
        }
         105  +
    }
         106  +
}
         107  +
impl RequiredInnerShapeOperationError {
         108  +
    /// Returns `true` if the error kind is `RequiredInnerShapeOperationError::ValidationException`.
         109  +
    pub fn is_validation_exception(&self) -> bool {
         110  +
        matches!(
         111  +
            &self,
         112  +
            RequiredInnerShapeOperationError::ValidationException(_)
         113  +
        )
         114  +
    }
         115  +
    /// Returns the error name string by matching the correct variant.
         116  +
    pub fn name(&self) -> &'static str {
         117  +
        match &self {
         118  +
            RequiredInnerShapeOperationError::ValidationException(_inner) => _inner.name(),
         119  +
        }
         120  +
    }
         121  +
}
         122  +
impl ::std::error::Error for RequiredInnerShapeOperationError {
         123  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         124  +
        match &self {
         125  +
            RequiredInnerShapeOperationError::ValidationException(_inner) => Some(_inner),
         126  +
        }
         127  +
    }
         128  +
}
         129  +
impl ::std::convert::From<crate::error::ValidationException>
         130  +
    for crate::error::RequiredInnerShapeOperationError
         131  +
{
         132  +
    fn from(
         133  +
        variant: crate::error::ValidationException,
         134  +
    ) -> crate::error::RequiredInnerShapeOperationError {
         135  +
        Self::ValidationException(variant)
         136  +
    }
         137  +
}
         138  +
         139  +
/// See [`ValidationException`](crate::error::ValidationException).
         140  +
pub mod validation_exception {
         141  +
         142  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
         143  +
    /// Holds one variant for each of the ways the builder can fail.
         144  +
    #[non_exhaustive]
         145  +
    #[allow(clippy::enum_variant_names)]
         146  +
    pub enum ConstraintViolation {
         147  +
        /// `message` was not provided but it is required when building `ValidationException`.
         148  +
        MissingMessage,
         149  +
    }
         150  +
    impl ::std::fmt::Display for ConstraintViolation {
         151  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         152  +
            match self {
         153  +
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationException`"),
         154  +
            }
         155  +
        }
         156  +
    }
         157  +
    impl ::std::error::Error for ConstraintViolation {}
         158  +
    impl ::std::convert::TryFrom<Builder> for crate::error::ValidationException {
         159  +
        type Error = ConstraintViolation;
         160  +
         161  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
         162  +
            builder.build()
         163  +
        }
         164  +
    }
         165  +
    /// A builder for [`ValidationException`](crate::error::ValidationException).
         166  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         167  +
    pub struct Builder {
         168  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
         169  +
        pub(crate) field_list:
         170  +
            ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
         171  +
    }
         172  +
    impl Builder {
         173  +
        /// A summary of the validation failure.
         174  +
        pub fn message(mut self, input: ::std::string::String) -> Self {
         175  +
            self.message = Some(input);
         176  +
            self
         177  +
        }
         178  +
        /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
         179  +
        pub fn field_list(
         180  +
            mut self,
         181  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
         182  +
        ) -> Self {
         183  +
            self.field_list = input;
         184  +
            self
         185  +
        }
         186  +
        /// Consumes the builder and constructs a [`ValidationException`](crate::error::ValidationException).
         187  +
        ///
         188  +
        /// The builder fails to construct a [`ValidationException`](crate::error::ValidationException) if a [`ConstraintViolation`] occurs.
         189  +
        ///
         190  +
        pub fn build(self) -> Result<crate::error::ValidationException, ConstraintViolation> {
         191  +
            self.build_enforcing_all_constraints()
         192  +
        }
         193  +
        fn build_enforcing_all_constraints(
         194  +
            self,
         195  +
        ) -> Result<crate::error::ValidationException, ConstraintViolation> {
         196  +
            Ok(crate::error::ValidationException {
         197  +
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
         198  +
                field_list: self.field_list,
         199  +
            })
         200  +
        }
         201  +
    }
         202  +
}

tmp-codegen-diff/codegen-server-test/misc-http0x/rust-server-codegen/src/input.rs

@@ -0,1 +0,548 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
#[allow(missing_docs)] // documentation missing in model
           3  +
#[derive(
           4  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
           5  +
)]
           6  +
pub struct ResponseCodeDefaultOperationInput {}
           7  +
impl ResponseCodeDefaultOperationInput {
           8  +
    /// Creates a new builder-style object to manufacture [`ResponseCodeDefaultOperationInput`](crate::input::ResponseCodeDefaultOperationInput).
           9  +
    pub fn builder() -> crate::input::response_code_default_operation_input::Builder {
          10  +
        crate::input::response_code_default_operation_input::Builder::default()
          11  +
    }
          12  +
}
          13  +
impl crate::constrained::Constrained for crate::input::ResponseCodeDefaultOperationInput {
          14  +
    type Unconstrained = crate::input::response_code_default_operation_input::Builder;
          15  +
}
          16  +
          17  +
#[allow(missing_docs)] // documentation missing in model
          18  +
#[derive(
          19  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          20  +
)]
          21  +
pub struct ResponseCodeHttpFallbackOperationInput {}
          22  +
impl ResponseCodeHttpFallbackOperationInput {
          23  +
    /// Creates a new builder-style object to manufacture [`ResponseCodeHttpFallbackOperationInput`](crate::input::ResponseCodeHttpFallbackOperationInput).
          24  +
    pub fn builder() -> crate::input::response_code_http_fallback_operation_input::Builder {
          25  +
        crate::input::response_code_http_fallback_operation_input::Builder::default()
          26  +
    }
          27  +
}
          28  +
impl crate::constrained::Constrained for crate::input::ResponseCodeHttpFallbackOperationInput {
          29  +
    type Unconstrained = crate::input::response_code_http_fallback_operation_input::Builder;
          30  +
}
          31  +
          32  +
#[allow(missing_docs)] // documentation missing in model
          33  +
#[derive(
          34  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          35  +
)]
          36  +
pub struct ResponseCodeRequiredOperationInput {}
          37  +
impl ResponseCodeRequiredOperationInput {
          38  +
    /// Creates a new builder-style object to manufacture [`ResponseCodeRequiredOperationInput`](crate::input::ResponseCodeRequiredOperationInput).
          39  +
    pub fn builder() -> crate::input::response_code_required_operation_input::Builder {
          40  +
        crate::input::response_code_required_operation_input::Builder::default()
          41  +
    }
          42  +
}
          43  +
impl crate::constrained::Constrained for crate::input::ResponseCodeRequiredOperationInput {
          44  +
    type Unconstrained = crate::input::response_code_required_operation_input::Builder;
          45  +
}
          46  +
          47  +
#[allow(missing_docs)] // documentation missing in model
          48  +
#[derive(
          49  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          50  +
)]
          51  +
pub struct RequiredHeaderCollectionOperationInput {
          52  +
    #[allow(missing_docs)] // documentation missing in model
          53  +
    pub required_header_list: ::std::vec::Vec<::std::string::String>,
          54  +
    #[allow(missing_docs)] // documentation missing in model
          55  +
    pub required_header_set: crate::model::HeaderSet,
          56  +
}
          57  +
impl RequiredHeaderCollectionOperationInput {
          58  +
    #[allow(missing_docs)] // documentation missing in model
          59  +
    pub fn required_header_list(&self) -> &[::std::string::String] {
          60  +
        use std::ops::Deref;
          61  +
        self.required_header_list.deref()
          62  +
    }
          63  +
    #[allow(missing_docs)] // documentation missing in model
          64  +
    pub fn required_header_set(&self) -> &crate::model::HeaderSet {
          65  +
        &self.required_header_set
          66  +
    }
          67  +
}
          68  +
impl RequiredHeaderCollectionOperationInput {
          69  +
    /// Creates a new builder-style object to manufacture [`RequiredHeaderCollectionOperationInput`](crate::input::RequiredHeaderCollectionOperationInput).
          70  +
    pub fn builder() -> crate::input::required_header_collection_operation_input::Builder {
          71  +
        crate::input::required_header_collection_operation_input::Builder::default()
          72  +
    }
          73  +
}
          74  +
impl crate::constrained::Constrained for crate::input::RequiredHeaderCollectionOperationInput {
          75  +
    type Unconstrained = crate::input::required_header_collection_operation_input::Builder;
          76  +
}
          77  +
          78  +
#[allow(missing_docs)] // documentation missing in model
          79  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
          80  +
pub struct RequiredInnerShapeOperationInput {
          81  +
    #[allow(missing_docs)] // documentation missing in model
          82  +
    pub inner: ::std::option::Option<crate::model::InnerShape>,
          83  +
}
          84  +
impl RequiredInnerShapeOperationInput {
          85  +
    #[allow(missing_docs)] // documentation missing in model
          86  +
    pub fn inner(&self) -> ::std::option::Option<&crate::model::InnerShape> {
          87  +
        self.inner.as_ref()
          88  +
    }
          89  +
}
          90  +
impl RequiredInnerShapeOperationInput {
          91  +
    /// Creates a new builder-style object to manufacture [`RequiredInnerShapeOperationInput`](crate::input::RequiredInnerShapeOperationInput).
          92  +
    pub fn builder() -> crate::input::required_inner_shape_operation_input::Builder {
          93  +
        crate::input::required_inner_shape_operation_input::Builder::default()
          94  +
    }
          95  +
}
          96  +
impl crate::constrained::Constrained for crate::input::RequiredInnerShapeOperationInput {
          97  +
    type Unconstrained = crate::input::required_inner_shape_operation_input::Builder;
          98  +
}
          99  +
         100  +
#[allow(missing_docs)] // documentation missing in model
         101  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         102  +
pub struct TypeComplexityOperationInput {
         103  +
    #[allow(missing_docs)] // documentation missing in model
         104  +
    pub list: ::std::option::Option<
         105  +
        ::std::vec::Vec<
         106  +
            ::std::vec::Vec<
         107  +
                ::std::vec::Vec<
         108  +
                    ::std::collections::HashMap<
         109  +
                        ::std::string::String,
         110  +
                        crate::model::EmptyStructure,
         111  +
                    >,
         112  +
                >,
         113  +
            >,
         114  +
        >,
         115  +
    >,
         116  +
}
         117  +
impl TypeComplexityOperationInput {
         118  +
    #[allow(missing_docs)] // documentation missing in model
         119  +
    pub fn list(
         120  +
        &self,
         121  +
    ) -> ::std::option::Option<
         122  +
        &[::std::vec::Vec<
         123  +
            ::std::vec::Vec<
         124  +
                ::std::collections::HashMap<::std::string::String, crate::model::EmptyStructure>,
         125  +
            >,
         126  +
        >],
         127  +
    > {
         128  +
        self.list.as_deref()
         129  +
    }
         130  +
}
         131  +
impl TypeComplexityOperationInput {
         132  +
    /// Creates a new builder-style object to manufacture [`TypeComplexityOperationInput`](crate::input::TypeComplexityOperationInput).
         133  +
    pub fn builder() -> crate::input::type_complexity_operation_input::Builder {
         134  +
        crate::input::type_complexity_operation_input::Builder::default()
         135  +
    }
         136  +
}
         137  +
impl crate::constrained::Constrained for crate::input::TypeComplexityOperationInput {
         138  +
    type Unconstrained = crate::input::type_complexity_operation_input::Builder;
         139  +
}
         140  +
/// See [`ResponseCodeDefaultOperationInput`](crate::input::ResponseCodeDefaultOperationInput).
         141  +
pub mod response_code_default_operation_input {
         142  +
         143  +
    impl ::std::convert::From<Builder> for crate::input::ResponseCodeDefaultOperationInput {
         144  +
        fn from(builder: Builder) -> Self {
         145  +
            builder.build()
         146  +
        }
         147  +
    }
         148  +
    /// A builder for [`ResponseCodeDefaultOperationInput`](crate::input::ResponseCodeDefaultOperationInput).
         149  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         150  +
    pub struct Builder {}
         151  +
    impl Builder {
         152  +
        /// Consumes the builder and constructs a [`ResponseCodeDefaultOperationInput`](crate::input::ResponseCodeDefaultOperationInput).
         153  +
        pub fn build(self) -> crate::input::ResponseCodeDefaultOperationInput {
         154  +
            self.build_enforcing_all_constraints()
         155  +
        }
         156  +
        fn build_enforcing_all_constraints(
         157  +
            self,
         158  +
        ) -> crate::input::ResponseCodeDefaultOperationInput {
         159  +
            crate::input::ResponseCodeDefaultOperationInput {}
         160  +
        }
         161  +
    }
         162  +
}
         163  +
/// See [`ResponseCodeHttpFallbackOperationInput`](crate::input::ResponseCodeHttpFallbackOperationInput).
         164  +
pub mod response_code_http_fallback_operation_input {
         165  +
         166  +
    impl ::std::convert::From<Builder> for crate::input::ResponseCodeHttpFallbackOperationInput {
         167  +
        fn from(builder: Builder) -> Self {
         168  +
            builder.build()
         169  +
        }
         170  +
    }
         171  +
    /// A builder for [`ResponseCodeHttpFallbackOperationInput`](crate::input::ResponseCodeHttpFallbackOperationInput).
         172  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         173  +
    pub struct Builder {}
         174  +
    impl Builder {
         175  +
        /// Consumes the builder and constructs a [`ResponseCodeHttpFallbackOperationInput`](crate::input::ResponseCodeHttpFallbackOperationInput).
         176  +
        pub fn build(self) -> crate::input::ResponseCodeHttpFallbackOperationInput {
         177  +
            self.build_enforcing_all_constraints()
         178  +
        }
         179  +
        fn build_enforcing_all_constraints(
         180  +
            self,
         181  +
        ) -> crate::input::ResponseCodeHttpFallbackOperationInput {
         182  +
            crate::input::ResponseCodeHttpFallbackOperationInput {}
         183  +
        }
         184  +
    }
         185  +
}
         186  +
/// See [`ResponseCodeRequiredOperationInput`](crate::input::ResponseCodeRequiredOperationInput).
         187  +
pub mod response_code_required_operation_input {
         188  +
         189  +
    impl ::std::convert::From<Builder> for crate::input::ResponseCodeRequiredOperationInput {
         190  +
        fn from(builder: Builder) -> Self {
         191  +
            builder.build()
         192  +
        }
         193  +
    }
         194  +
    /// A builder for [`ResponseCodeRequiredOperationInput`](crate::input::ResponseCodeRequiredOperationInput).
         195  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         196  +
    pub struct Builder {}
         197  +
    impl Builder {
         198  +
        /// Consumes the builder and constructs a [`ResponseCodeRequiredOperationInput`](crate::input::ResponseCodeRequiredOperationInput).
         199  +
        pub fn build(self) -> crate::input::ResponseCodeRequiredOperationInput {
         200  +
            self.build_enforcing_all_constraints()
         201  +
        }
         202  +
        fn build_enforcing_all_constraints(
         203  +
            self,
         204  +
        ) -> crate::input::ResponseCodeRequiredOperationInput {
         205  +
            crate::input::ResponseCodeRequiredOperationInput {}
         206  +
        }
         207  +
    }
         208  +
}
         209  +
/// See [`RequiredHeaderCollectionOperationInput`](crate::input::RequiredHeaderCollectionOperationInput).
         210  +
pub mod required_header_collection_operation_input {
         211  +
         212  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
         213  +
    /// Holds one variant for each of the ways the builder can fail.
         214  +
    #[non_exhaustive]
         215  +
    #[allow(clippy::enum_variant_names)]
         216  +
    pub enum ConstraintViolation {
         217  +
        /// `required_header_list` was not provided but it is required when building `RequiredHeaderCollectionOperationInput`.
         218  +
        MissingRequiredHeaderList,
         219  +
        /// `required_header_set` was not provided but it is required when building `RequiredHeaderCollectionOperationInput`.
         220  +
        MissingRequiredHeaderSet,
         221  +
        /// Constraint violation occurred building member `required_header_set` when building `RequiredHeaderCollectionOperationInput`.
         222  +
        #[doc(hidden)]
         223  +
        RequiredHeaderSet(crate::model::header_set::ConstraintViolation),
         224  +
    }
         225  +
    impl ::std::fmt::Display for ConstraintViolation {
         226  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         227  +
            match self {
         228  +
                ConstraintViolation::MissingRequiredHeaderList => write!(f, "`required_header_list` was not provided but it is required when building `RequiredHeaderCollectionOperationInput`"),
         229  +
                ConstraintViolation::MissingRequiredHeaderSet => write!(f, "`required_header_set` was not provided but it is required when building `RequiredHeaderCollectionOperationInput`"),
         230  +
                ConstraintViolation::RequiredHeaderSet(_) => write!(f, "constraint violation occurred building member `required_header_set` when building `RequiredHeaderCollectionOperationInput`"),
         231  +
            }
         232  +
        }
         233  +
    }
         234  +
    impl ::std::error::Error for ConstraintViolation {}
         235  +
    impl ConstraintViolation {
         236  +
        pub(crate) fn as_validation_exception_field(
         237  +
            self,
         238  +
            path: ::std::string::String,
         239  +
        ) -> crate::model::ValidationExceptionField {
         240  +
            match self {
         241  +
            ConstraintViolation::MissingRequiredHeaderList => crate::model::ValidationExceptionField {
         242  +
                                                message: format!("Value at '{}/requiredHeaderList' failed to satisfy constraint: Member must not be null", path),
         243  +
                                                path: path + "/requiredHeaderList",
         244  +
                                            },
         245  +
            ConstraintViolation::MissingRequiredHeaderSet => crate::model::ValidationExceptionField {
         246  +
                                                message: format!("Value at '{}/requiredHeaderSet' failed to satisfy constraint: Member must not be null", path),
         247  +
                                                path: path + "/requiredHeaderSet",
         248  +
                                            },
         249  +
            ConstraintViolation::RequiredHeaderSet(inner) => inner.as_validation_exception_field(path + "/requiredHeaderSet"),
         250  +
        }
         251  +
        }
         252  +
    }
         253  +
    impl ::std::convert::From<ConstraintViolation>
         254  +
        for ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection
         255  +
    {
         256  +
        fn from(constraint_violation: ConstraintViolation) -> Self {
         257  +
            let first_validation_exception_field =
         258  +
                constraint_violation.as_validation_exception_field("".to_owned());
         259  +
            let validation_exception = crate::error::ValidationException {
         260  +
                message: format!(
         261  +
                    "1 validation error detected. {}",
         262  +
                    &first_validation_exception_field.message
         263  +
                ),
         264  +
                field_list: Some(vec![first_validation_exception_field]),
         265  +
            };
         266  +
            Self::ConstraintViolation(
         267  +
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
         268  +
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
         269  +
                            )
         270  +
        }
         271  +
    }
         272  +
    impl ::std::convert::From<Builder>
         273  +
        for crate::constrained::MaybeConstrained<
         274  +
            crate::input::RequiredHeaderCollectionOperationInput,
         275  +
        >
         276  +
    {
         277  +
        fn from(builder: Builder) -> Self {
         278  +
            Self::Unconstrained(builder)
         279  +
        }
         280  +
    }
         281  +
    impl ::std::convert::TryFrom<Builder> for crate::input::RequiredHeaderCollectionOperationInput {
         282  +
        type Error = ConstraintViolation;
         283  +
         284  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
         285  +
            builder.build()
         286  +
        }
         287  +
    }
         288  +
    /// A builder for [`RequiredHeaderCollectionOperationInput`](crate::input::RequiredHeaderCollectionOperationInput).
         289  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         290  +
    pub struct Builder {
         291  +
        pub(crate) required_header_list:
         292  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         293  +
        pub(crate) required_header_set:
         294  +
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::HeaderSet>>,
         295  +
    }
         296  +
    impl Builder {
         297  +
        #[allow(missing_docs)] // documentation missing in model
         298  +
        pub fn required_header_list(
         299  +
            mut self,
         300  +
            input: ::std::vec::Vec<::std::string::String>,
         301  +
        ) -> Self {
         302  +
            self.required_header_list = Some(input);
         303  +
            self
         304  +
        }
         305  +
        #[allow(missing_docs)] // documentation missing in model
         306  +
        pub(crate) fn set_required_header_list(
         307  +
            mut self,
         308  +
            input: impl ::std::convert::Into<::std::vec::Vec<::std::string::String>>,
         309  +
        ) -> Self {
         310  +
            self.required_header_list = Some(input.into());
         311  +
            self
         312  +
        }
         313  +
        #[allow(missing_docs)] // documentation missing in model
         314  +
        pub fn required_header_set(mut self, input: crate::model::HeaderSet) -> Self {
         315  +
            self.required_header_set =
         316  +
                Some(crate::constrained::MaybeConstrained::Constrained(input));
         317  +
            self
         318  +
        }
         319  +
        #[allow(missing_docs)] // documentation missing in model
         320  +
        pub(crate) fn set_required_header_set(
         321  +
            mut self,
         322  +
            input: impl ::std::convert::Into<
         323  +
                crate::constrained::MaybeConstrained<crate::model::HeaderSet>,
         324  +
            >,
         325  +
        ) -> Self {
         326  +
            self.required_header_set = Some(input.into());
         327  +
            self
         328  +
        }
         329  +
        /// Consumes the builder and constructs a [`RequiredHeaderCollectionOperationInput`](crate::input::RequiredHeaderCollectionOperationInput).
         330  +
        ///
         331  +
        /// The builder fails to construct a [`RequiredHeaderCollectionOperationInput`](crate::input::RequiredHeaderCollectionOperationInput) if a [`ConstraintViolation`] occurs.
         332  +
        ///
         333  +
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
         334  +
        pub fn build(
         335  +
            self,
         336  +
        ) -> Result<crate::input::RequiredHeaderCollectionOperationInput, ConstraintViolation>
         337  +
        {
         338  +
            self.build_enforcing_all_constraints()
         339  +
        }
         340  +
        fn build_enforcing_all_constraints(
         341  +
            self,
         342  +
        ) -> Result<crate::input::RequiredHeaderCollectionOperationInput, ConstraintViolation>
         343  +
        {
         344  +
            Ok(crate::input::RequiredHeaderCollectionOperationInput {
         345  +
                required_header_list: self
         346  +
                    .required_header_list
         347  +
                    .ok_or(ConstraintViolation::MissingRequiredHeaderList)?,
         348  +
                required_header_set: self
         349  +
                    .required_header_set
         350  +
                    .map(|v| match v {
         351  +
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
         352  +
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
         353  +
                    })
         354  +
                    .map(|res| res.map_err(ConstraintViolation::RequiredHeaderSet))
         355  +
                    .transpose()?
         356  +
                    .ok_or(ConstraintViolation::MissingRequiredHeaderSet)?,
         357  +
            })
         358  +
        }
         359  +
    }
         360  +
}
         361  +
/// See [`RequiredInnerShapeOperationInput`](crate::input::RequiredInnerShapeOperationInput).
         362  +
pub mod required_inner_shape_operation_input {
         363  +
         364  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
         365  +
    /// Holds one variant for each of the ways the builder can fail.
         366  +
    #[non_exhaustive]
         367  +
    #[allow(clippy::enum_variant_names)]
         368  +
    pub enum ConstraintViolation {
         369  +
        /// Constraint violation occurred building member `inner` when building `RequiredInnerShapeOperationInput`.
         370  +
        #[doc(hidden)]
         371  +
        Inner(crate::model::inner_shape::ConstraintViolation),
         372  +
    }
         373  +
    impl ::std::fmt::Display for ConstraintViolation {
         374  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         375  +
            match self {
         376  +
                ConstraintViolation::Inner(_) => write!(f, "constraint violation occurred building member `inner` when building `RequiredInnerShapeOperationInput`"),
         377  +
            }
         378  +
        }
         379  +
    }
         380  +
    impl ::std::error::Error for ConstraintViolation {}
         381  +
    impl ConstraintViolation {
         382  +
        pub(crate) fn as_validation_exception_field(
         383  +
            self,
         384  +
            path: ::std::string::String,
         385  +
        ) -> crate::model::ValidationExceptionField {
         386  +
            match self {
         387  +
                ConstraintViolation::Inner(inner) => {
         388  +
                    inner.as_validation_exception_field(path + "/inner")
         389  +
                }
         390  +
            }
         391  +
        }
         392  +
    }
         393  +
    impl ::std::convert::From<ConstraintViolation>
         394  +
        for ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection
         395  +
    {
         396  +
        fn from(constraint_violation: ConstraintViolation) -> Self {
         397  +
            let first_validation_exception_field =
         398  +
                constraint_violation.as_validation_exception_field("".to_owned());
         399  +
            let validation_exception = crate::error::ValidationException {
         400  +
                message: format!(
         401  +
                    "1 validation error detected. {}",
         402  +
                    &first_validation_exception_field.message
         403  +
                ),
         404  +
                field_list: Some(vec![first_validation_exception_field]),
         405  +
            };
         406  +
            Self::ConstraintViolation(
         407  +
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
         408  +
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
         409  +
                            )
         410  +
        }
         411  +
    }
         412  +
    impl ::std::convert::From<Builder>
         413  +
        for crate::constrained::MaybeConstrained<crate::input::RequiredInnerShapeOperationInput>
         414  +
    {
         415  +
        fn from(builder: Builder) -> Self {
         416  +
            Self::Unconstrained(builder)
         417  +
        }
         418  +
    }
         419  +
    impl ::std::convert::TryFrom<Builder> for crate::input::RequiredInnerShapeOperationInput {
         420  +
        type Error = ConstraintViolation;
         421  +
         422  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
         423  +
            builder.build()
         424  +
        }
         425  +
    }
         426  +
    /// A builder for [`RequiredInnerShapeOperationInput`](crate::input::RequiredInnerShapeOperationInput).
         427  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         428  +
    pub struct Builder {
         429  +
        pub(crate) inner:
         430  +
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::InnerShape>>,
         431  +
    }
         432  +
    impl Builder {
         433  +
        #[allow(missing_docs)] // documentation missing in model
         434  +
        pub fn inner(mut self, input: ::std::option::Option<crate::model::InnerShape>) -> Self {
         435  +
            self.inner = input.map(crate::constrained::MaybeConstrained::Constrained);
         436  +
            self
         437  +
        }
         438  +
        #[allow(missing_docs)] // documentation missing in model
         439  +
        pub(crate) fn set_inner(
         440  +
            mut self,
         441  +
            input: Option<
         442  +
                impl ::std::convert::Into<
         443  +
                    crate::constrained::MaybeConstrained<crate::model::InnerShape>,
         444  +
                >,
         445  +
            >,
         446  +
        ) -> Self {
         447  +
            self.inner = input.map(|v| v.into());
         448  +
            self
         449  +
        }
         450  +
        /// Consumes the builder and constructs a [`RequiredInnerShapeOperationInput`](crate::input::RequiredInnerShapeOperationInput).
         451  +
        ///
         452  +
        /// The builder fails to construct a [`RequiredInnerShapeOperationInput`](crate::input::RequiredInnerShapeOperationInput) if a [`ConstraintViolation`] occurs.
         453  +
        ///
         454  +
        pub fn build(
         455  +
            self,
         456  +
        ) -> Result<crate::input::RequiredInnerShapeOperationInput, ConstraintViolation> {
         457  +
            self.build_enforcing_all_constraints()
         458  +
        }
         459  +
        fn build_enforcing_all_constraints(
         460  +
            self,
         461  +
        ) -> Result<crate::input::RequiredInnerShapeOperationInput, ConstraintViolation> {
         462  +
            Ok(crate::input::RequiredInnerShapeOperationInput {
         463  +
                inner: self
         464  +
                    .inner
         465  +
                    .map(|v| match v {
         466  +
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
         467  +
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
         468  +
                    })
         469  +
                    .map(|res| res.map_err(ConstraintViolation::Inner))
         470  +
                    .transpose()?,
         471  +
            })
         472  +
        }
         473  +
    }
         474  +
}
         475  +
/// See [`TypeComplexityOperationInput`](crate::input::TypeComplexityOperationInput).
         476  +
pub mod type_complexity_operation_input {
         477  +
         478  +
    impl ::std::convert::From<Builder> for crate::input::TypeComplexityOperationInput {
         479  +
        fn from(builder: Builder) -> Self {
         480  +
            builder.build()
         481  +
        }
         482  +
    }
         483  +
    /// A builder for [`TypeComplexityOperationInput`](crate::input::TypeComplexityOperationInput).
         484  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         485  +
    pub struct Builder {
         486  +
        pub(crate) list: ::std::option::Option<
         487  +
            ::std::vec::Vec<
         488  +
                ::std::vec::Vec<
         489  +
                    ::std::vec::Vec<
         490  +
                        ::std::collections::HashMap<
         491  +
                            ::std::string::String,
         492  +
                            crate::model::EmptyStructure,
         493  +
                        >,
         494  +
                    >,
         495  +
                >,
         496  +
            >,
         497  +
        >,
         498  +
    }
         499  +
    impl Builder {
         500  +
        #[allow(missing_docs)] // documentation missing in model
         501  +
        pub fn list(
         502  +
            mut self,
         503  +
            input: ::std::option::Option<
         504  +
                ::std::vec::Vec<
         505  +
                    ::std::vec::Vec<
         506  +
                        ::std::vec::Vec<
         507  +
                            ::std::collections::HashMap<
         508  +
                                ::std::string::String,
         509  +
                                crate::model::EmptyStructure,
         510  +
                            >,
         511  +
                        >,
         512  +
                    >,
         513  +
                >,
         514  +
            >,
         515  +
        ) -> Self {
         516  +
            self.list = input;
         517  +
            self
         518  +
        }
         519  +
        #[allow(missing_docs)] // documentation missing in model
         520  +
        pub(crate) fn set_list(
         521  +
            mut self,
         522  +
            input: Option<
         523  +
                impl ::std::convert::Into<
         524  +
                    ::std::vec::Vec<
         525  +
                        ::std::vec::Vec<
         526  +
                            ::std::vec::Vec<
         527  +
                                ::std::collections::HashMap<
         528  +
                                    ::std::string::String,
         529  +
                                    crate::model::EmptyStructure,
         530  +
                                >,
         531  +
                            >,
         532  +
                        >,
         533  +
                    >,
         534  +
                >,
         535  +
            >,
         536  +
        ) -> Self {
         537  +
            self.list = input.map(|v| v.into());
         538  +
            self
         539  +
        }
         540  +
        /// Consumes the builder and constructs a [`TypeComplexityOperationInput`](crate::input::TypeComplexityOperationInput).
         541  +
        pub fn build(self) -> crate::input::TypeComplexityOperationInput {
         542  +
            self.build_enforcing_all_constraints()
         543  +
        }
         544  +
        fn build_enforcing_all_constraints(self) -> crate::input::TypeComplexityOperationInput {
         545  +
            crate::input::TypeComplexityOperationInput { list: self.list }
         546  +
        }
         547  +
    }
         548  +
}