Server Test Python

Server Test Python

rev. d06a46cae0f385cdae37a9f8264db3469a090ab5

Files changed:

tmp-codegen-diff/codegen-server-test-python/rest_json_extras/rust-server-codegen-python/src/python_server_application.rs

@@ -100,100 +161,161 @@
  120    120   
    fn handlers(
  121    121   
        &mut self,
  122    122   
    ) -> &mut ::std::collections::HashMap<String, ::aws_smithy_http_server_python::PyHandler> {
  123    123   
        &mut self.handlers
  124    124   
    }
  125    125   
    fn build_service(
  126    126   
        &mut self,
  127    127   
        event_loop: &::pyo3::PyAny,
  128    128   
    ) -> ::pyo3::PyResult<
  129    129   
        ::tower::util::BoxCloneService<
  130         -
            ::http::Request<::aws_smithy_http_server::body::Body>,
  131         -
            ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         130  +
            ::http::Request<::aws_smithy_legacy_http_server::body::Body>,
         131  +
            ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  132    132   
            std::convert::Infallible,
  133    133   
        >,
  134    134   
    > {
  135    135   
        let builder = crate::service::RestJsonExtras::builder_without_plugins();
  136    136   
        let case_insensitive_error_operation_locals = ::pyo3_asyncio::TaskLocals::new(event_loop);
  137    137   
        let handler = self
  138    138   
            .handlers
  139    139   
            .get("case_insensitive_error_operation")
  140    140   
            .expect("Python handler for operation `case_insensitive_error_operation` not found")
  141    141   
            .clone();
@@ -287,287 +347,347 @@
  307    307   
        {
  308    308   
            use ::tower::Layer;
  309    309   
            ::tracing::trace!("adding middlewares to rust python router");
  310    310   
            let mut middlewares = self.middlewares.clone();
  311    311   
            // Reverse the middlewares, so they run with same order as they defined
  312    312   
            middlewares.reverse();
  313    313   
            for handler in middlewares {
  314    314   
                ::tracing::trace!(name = &handler.name, "adding python middleware");
  315    315   
                let locals = ::pyo3_asyncio::TaskLocals::new(event_loop);
  316    316   
                let layer = ::aws_smithy_http_server_python::PyMiddlewareLayer::<
  317         -
                    ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
         317  +
                    ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  318    318   
                >::new(handler, locals);
  319    319   
                service = ::tower::util::BoxCloneService::new(layer.layer(service));
  320    320   
            }
  321    321   
        }
  322    322   
        Ok(service)
  323    323   
    }
  324    324   
}
  325    325   
#[::pyo3::pymethods]
  326    326   
impl App {
  327    327   
    /// Create a new [App].

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

@@ -1,1 +1880,1906 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// The service builder for [`RestJsonExtras`].
    3      3   
///
    4      4   
/// Constructed via [`RestJsonExtras::builder`].
    5      5   
pub struct RestJsonExtrasBuilder<Body, L, HttpPl, ModelPl> {
    6         -
    case_insensitive_error_operation: Option<::aws_smithy_http_server::routing::Route<Body>>,
    7         -
    empty_struct_with_content_on_wire_op: Option<::aws_smithy_http_server::routing::Route<Body>>,
    8         -
    enum_query: Option<::aws_smithy_http_server::routing::Route<Body>>,
    9         -
    escaped_string_values: Option<::aws_smithy_http_server::routing::Route<Body>>,
   10         -
    http_query_params_only_operation: Option<::aws_smithy_http_server::routing::Route<Body>>,
   11         -
    map_with_enum_key_op: Option<::aws_smithy_http_server::routing::Route<Body>>,
   12         -
    null_in_non_sparse: Option<::aws_smithy_http_server::routing::Route<Body>>,
   13         -
    primitive_int_header: Option<::aws_smithy_http_server::routing::Route<Body>>,
   14         -
    primitive_int_op: Option<::aws_smithy_http_server::routing::Route<Body>>,
   15         -
    query_precedence: Option<::aws_smithy_http_server::routing::Route<Body>>,
   16         -
    status_response: Option<::aws_smithy_http_server::routing::Route<Body>>,
   17         -
    string_payload: Option<::aws_smithy_http_server::routing::Route<Body>>,
           6  +
    case_insensitive_error_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
           7  +
    empty_struct_with_content_on_wire_op:
           8  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
           9  +
    enum_query: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          10  +
    escaped_string_values: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          11  +
    http_query_params_only_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          12  +
    map_with_enum_key_op: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          13  +
    null_in_non_sparse: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          14  +
    primitive_int_header: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          15  +
    primitive_int_op: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          16  +
    query_precedence: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          17  +
    status_response: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          18  +
    string_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
   18     19   
    layer: L,
   19     20   
    http_plugin: HttpPl,
   20     21   
    model_plugin: ModelPl,
   21     22   
}
   22     23   
   23     24   
impl<Body, L, HttpPl, ModelPl> RestJsonExtrasBuilder<Body, L, HttpPl, ModelPl> {
   24     25   
    /// Sets the [`CaseInsensitiveErrorOperation`](crate::operation_shape::CaseInsensitiveErrorOperation) operation.
   25     26   
    ///
   26         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
   27         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
          27  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
          28  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
   28     29   
    ///
   29     30   
    /// # Example
   30     31   
    ///
   31     32   
    /// ```no_run
   32     33   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
   33     34   
    ///
   34     35   
    /// use rest_json_extras::{input, output, error};
   35     36   
    ///
   36     37   
    /// async fn handler(input: input::CaseInsensitiveErrorOperationInput) -> Result<output::CaseInsensitiveErrorOperationOutput, error::CaseInsensitiveErrorOperationError> {
   37     38   
    ///     todo!()
   38     39   
    /// }
   39     40   
    ///
   40     41   
    /// let config = RestJsonExtrasConfig::builder().build();
   41     42   
    /// let app = RestJsonExtras::builder(config)
   42     43   
    ///     .case_insensitive_error_operation(handler)
   43     44   
    ///     /* Set other handlers */
   44     45   
    ///     .build()
   45     46   
    ///     .unwrap();
   46         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
          47  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
   47     48   
    /// ```
   48     49   
    ///
   49     50   
                    pub fn case_insensitive_error_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
   50     51   
                    where
   51         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::CaseInsensitiveErrorOperation, HandlerExtractors>,
          52  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::CaseInsensitiveErrorOperation, HandlerExtractors>,
   52     53   
   53         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
          54  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
   54     55   
                            RestJsonExtras<L>,
   55     56   
                            crate::operation_shape::CaseInsensitiveErrorOperation,
   56         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::CaseInsensitiveErrorOperation, HandlerType>
          57  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::CaseInsensitiveErrorOperation, HandlerType>
   57     58   
                        >,
   58         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
          59  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
   59     60   
                            RestJsonExtras<L>,
   60     61   
                            crate::operation_shape::CaseInsensitiveErrorOperation,
   61     62   
                            ModelPl::Output
   62     63   
                        >,
   63         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
          64  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
   64     65   
                            RestJsonExtras<L>,
   65     66   
                            crate::operation_shape::CaseInsensitiveErrorOperation,
   66     67   
                            <
   67         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
   68         -
                                as ::aws_smithy_http_server::plugin::Plugin<
          68  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
          69  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
   69     70   
                                    RestJsonExtras<L>,
   70     71   
                                    crate::operation_shape::CaseInsensitiveErrorOperation,
   71     72   
                                    ModelPl::Output
   72     73   
                                >
   73     74   
                            >::Output
   74     75   
                        >,
   75     76   
   76         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
          77  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
   77     78   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
   78     79   
   79     80   
                    {
   80         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
   81         -
        use ::aws_smithy_http_server::plugin::Plugin;
          81  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
          82  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
   82     83   
        let svc = crate::operation_shape::CaseInsensitiveErrorOperation::from_handler(handler);
   83     84   
        let svc = self.model_plugin.apply(svc);
   84         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
   85         -
            .apply(svc);
          85  +
        let svc =
          86  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
          87  +
                .apply(svc);
   86     88   
        let svc = self.http_plugin.apply(svc);
   87     89   
        self.case_insensitive_error_operation_custom(svc)
   88     90   
    }
   89     91   
   90     92   
    /// Sets the [`CaseInsensitiveErrorOperation`](crate::operation_shape::CaseInsensitiveErrorOperation) operation.
   91     93   
    ///
   92         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
   93         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
          94  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
          95  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
   94     96   
    ///
   95     97   
    /// # Example
   96     98   
    ///
   97     99   
    /// ```no_run
   98    100   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
   99    101   
    ///
  100    102   
    /// use rest_json_extras::{input, output, error};
  101    103   
    ///
  102    104   
    /// async fn handler(input: input::CaseInsensitiveErrorOperationInput) -> Result<output::CaseInsensitiveErrorOperationOutput, error::CaseInsensitiveErrorOperationError> {
  103    105   
    ///     todo!()
  104    106   
    /// }
  105    107   
    ///
  106    108   
    /// let config = RestJsonExtrasConfig::builder().build();
  107    109   
    /// let svc = ::tower::util::service_fn(handler);
  108    110   
    /// let app = RestJsonExtras::builder(config)
  109    111   
    ///     .case_insensitive_error_operation_service(svc)
  110    112   
    ///     /* Set other handlers */
  111    113   
    ///     .build()
  112    114   
    ///     .unwrap();
  113         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         115  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  114    116   
    /// ```
  115    117   
    ///
  116    118   
                    pub fn case_insensitive_error_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  117    119   
                    where
  118         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::CaseInsensitiveErrorOperation, ServiceExtractors>,
         120  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::CaseInsensitiveErrorOperation, ServiceExtractors>,
  119    121   
  120         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         122  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  121    123   
                            RestJsonExtras<L>,
  122    124   
                            crate::operation_shape::CaseInsensitiveErrorOperation,
  123         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::CaseInsensitiveErrorOperation, S>
         125  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::CaseInsensitiveErrorOperation, S>
  124    126   
                        >,
  125         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         127  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  126    128   
                            RestJsonExtras<L>,
  127    129   
                            crate::operation_shape::CaseInsensitiveErrorOperation,
  128    130   
                            ModelPl::Output
  129    131   
                        >,
  130         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         132  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  131    133   
                            RestJsonExtras<L>,
  132    134   
                            crate::operation_shape::CaseInsensitiveErrorOperation,
  133    135   
                            <
  134         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  135         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         136  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         137  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  136    138   
                                    RestJsonExtras<L>,
  137    139   
                                    crate::operation_shape::CaseInsensitiveErrorOperation,
  138    140   
                                    ModelPl::Output
  139    141   
                                >
  140    142   
                            >::Output
  141    143   
                        >,
  142    144   
  143         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         145  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  144    146   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  145    147   
  146    148   
                    {
  147         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  148         -
        use ::aws_smithy_http_server::plugin::Plugin;
         149  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         150  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  149    151   
        let svc = crate::operation_shape::CaseInsensitiveErrorOperation::from_service(service);
  150    152   
        let svc = self.model_plugin.apply(svc);
  151         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  152         -
            .apply(svc);
         153  +
        let svc =
         154  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         155  +
                .apply(svc);
  153    156   
        let svc = self.http_plugin.apply(svc);
  154    157   
        self.case_insensitive_error_operation_custom(svc)
  155    158   
    }
  156    159   
  157    160   
    /// Sets the [`CaseInsensitiveErrorOperation`](crate::operation_shape::CaseInsensitiveErrorOperation) to a custom [`Service`](tower::Service).
  158    161   
    /// not constrained by the Smithy contract.
  159    162   
    fn case_insensitive_error_operation_custom<S>(mut self, svc: S) -> Self
  160    163   
    where
  161    164   
        S: ::tower::Service<
  162    165   
                ::http::Request<Body>,
  163         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         166  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  164    167   
                Error = ::std::convert::Infallible,
  165    168   
            > + Clone
  166    169   
            + Send
  167    170   
            + 'static,
  168    171   
        S::Future: Send + 'static,
  169    172   
    {
  170    173   
        self.case_insensitive_error_operation =
  171         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
         174  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  172    175   
        self
  173    176   
    }
  174    177   
  175    178   
    /// Sets the [`EmptyStructWithContentOnWireOp`](crate::operation_shape::EmptyStructWithContentOnWireOp) operation.
  176    179   
    ///
  177         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  178         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         180  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         181  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  179    182   
    ///
  180    183   
    /// # Example
  181    184   
    ///
  182    185   
    /// ```no_run
  183    186   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  184    187   
    ///
  185    188   
    /// use rest_json_extras::{input, output, error};
  186    189   
    ///
  187    190   
    /// async fn handler(input: input::EmptyStructWithContentOnWireOpInput) -> Result<output::EmptyStructWithContentOnWireOpOutput, error::EmptyStructWithContentOnWireOpError> {
  188    191   
    ///     todo!()
  189    192   
    /// }
  190    193   
    ///
  191    194   
    /// let config = RestJsonExtrasConfig::builder().build();
  192    195   
    /// let app = RestJsonExtras::builder(config)
  193    196   
    ///     .empty_struct_with_content_on_wire_op(handler)
  194    197   
    ///     /* Set other handlers */
  195    198   
    ///     .build()
  196    199   
    ///     .unwrap();
  197         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         200  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  198    201   
    /// ```
  199    202   
    ///
  200    203   
                    pub fn empty_struct_with_content_on_wire_op<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  201    204   
                    where
  202         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::EmptyStructWithContentOnWireOp, HandlerExtractors>,
         205  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EmptyStructWithContentOnWireOp, HandlerExtractors>,
  203    206   
  204         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         207  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  205    208   
                            RestJsonExtras<L>,
  206    209   
                            crate::operation_shape::EmptyStructWithContentOnWireOp,
  207         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::EmptyStructWithContentOnWireOp, HandlerType>
         210  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EmptyStructWithContentOnWireOp, HandlerType>
  208    211   
                        >,
  209         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         212  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  210    213   
                            RestJsonExtras<L>,
  211    214   
                            crate::operation_shape::EmptyStructWithContentOnWireOp,
  212    215   
                            ModelPl::Output
  213    216   
                        >,
  214         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         217  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  215    218   
                            RestJsonExtras<L>,
  216    219   
                            crate::operation_shape::EmptyStructWithContentOnWireOp,
  217    220   
                            <
  218         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  219         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         221  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         222  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  220    223   
                                    RestJsonExtras<L>,
  221    224   
                                    crate::operation_shape::EmptyStructWithContentOnWireOp,
  222    225   
                                    ModelPl::Output
  223    226   
                                >
  224    227   
                            >::Output
  225    228   
                        >,
  226    229   
  227         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         230  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  228    231   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  229    232   
  230    233   
                    {
  231         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  232         -
        use ::aws_smithy_http_server::plugin::Plugin;
         234  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         235  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  233    236   
        let svc = crate::operation_shape::EmptyStructWithContentOnWireOp::from_handler(handler);
  234    237   
        let svc = self.model_plugin.apply(svc);
  235         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  236         -
            .apply(svc);
         238  +
        let svc =
         239  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         240  +
                .apply(svc);
  237    241   
        let svc = self.http_plugin.apply(svc);
  238    242   
        self.empty_struct_with_content_on_wire_op_custom(svc)
  239    243   
    }
  240    244   
  241    245   
    /// Sets the [`EmptyStructWithContentOnWireOp`](crate::operation_shape::EmptyStructWithContentOnWireOp) operation.
  242    246   
    ///
  243         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  244         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         247  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         248  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  245    249   
    ///
  246    250   
    /// # Example
  247    251   
    ///
  248    252   
    /// ```no_run
  249    253   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  250    254   
    ///
  251    255   
    /// use rest_json_extras::{input, output, error};
  252    256   
    ///
  253    257   
    /// async fn handler(input: input::EmptyStructWithContentOnWireOpInput) -> Result<output::EmptyStructWithContentOnWireOpOutput, error::EmptyStructWithContentOnWireOpError> {
  254    258   
    ///     todo!()
  255    259   
    /// }
  256    260   
    ///
  257    261   
    /// let config = RestJsonExtrasConfig::builder().build();
  258    262   
    /// let svc = ::tower::util::service_fn(handler);
  259    263   
    /// let app = RestJsonExtras::builder(config)
  260    264   
    ///     .empty_struct_with_content_on_wire_op_service(svc)
  261    265   
    ///     /* Set other handlers */
  262    266   
    ///     .build()
  263    267   
    ///     .unwrap();
  264         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         268  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  265    269   
    /// ```
  266    270   
    ///
  267    271   
                    pub fn empty_struct_with_content_on_wire_op_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  268    272   
                    where
  269         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::EmptyStructWithContentOnWireOp, ServiceExtractors>,
         273  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EmptyStructWithContentOnWireOp, ServiceExtractors>,
  270    274   
  271         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         275  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  272    276   
                            RestJsonExtras<L>,
  273    277   
                            crate::operation_shape::EmptyStructWithContentOnWireOp,
  274         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::EmptyStructWithContentOnWireOp, S>
         278  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EmptyStructWithContentOnWireOp, S>
  275    279   
                        >,
  276         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         280  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  277    281   
                            RestJsonExtras<L>,
  278    282   
                            crate::operation_shape::EmptyStructWithContentOnWireOp,
  279    283   
                            ModelPl::Output
  280    284   
                        >,
  281         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         285  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  282    286   
                            RestJsonExtras<L>,
  283    287   
                            crate::operation_shape::EmptyStructWithContentOnWireOp,
  284    288   
                            <
  285         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  286         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         289  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         290  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  287    291   
                                    RestJsonExtras<L>,
  288    292   
                                    crate::operation_shape::EmptyStructWithContentOnWireOp,
  289    293   
                                    ModelPl::Output
  290    294   
                                >
  291    295   
                            >::Output
  292    296   
                        >,
  293    297   
  294         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         298  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  295    299   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  296    300   
  297    301   
                    {
  298         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  299         -
        use ::aws_smithy_http_server::plugin::Plugin;
         302  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         303  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  300    304   
        let svc = crate::operation_shape::EmptyStructWithContentOnWireOp::from_service(service);
  301    305   
        let svc = self.model_plugin.apply(svc);
  302         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  303         -
            .apply(svc);
         306  +
        let svc =
         307  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         308  +
                .apply(svc);
  304    309   
        let svc = self.http_plugin.apply(svc);
  305    310   
        self.empty_struct_with_content_on_wire_op_custom(svc)
  306    311   
    }
  307    312   
  308    313   
    /// Sets the [`EmptyStructWithContentOnWireOp`](crate::operation_shape::EmptyStructWithContentOnWireOp) to a custom [`Service`](tower::Service).
  309    314   
    /// not constrained by the Smithy contract.
  310    315   
    fn empty_struct_with_content_on_wire_op_custom<S>(mut self, svc: S) -> Self
  311    316   
    where
  312    317   
        S: ::tower::Service<
  313    318   
                ::http::Request<Body>,
  314         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         319  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  315    320   
                Error = ::std::convert::Infallible,
  316    321   
            > + Clone
  317    322   
            + Send
  318    323   
            + 'static,
  319    324   
        S::Future: Send + 'static,
  320    325   
    {
  321    326   
        self.empty_struct_with_content_on_wire_op =
  322         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
         327  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  323    328   
        self
  324    329   
    }
  325    330   
  326    331   
    /// Sets the [`EnumQuery`](crate::operation_shape::EnumQuery) operation.
  327    332   
    ///
  328         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  329         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         333  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         334  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  330    335   
    ///
  331    336   
    /// # Example
  332    337   
    ///
  333    338   
    /// ```no_run
  334    339   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  335    340   
    ///
  336    341   
    /// use rest_json_extras::{input, output, error};
  337    342   
    ///
  338    343   
    /// async fn handler(input: input::EnumQueryInput) -> Result<output::EnumQueryOutput, error::EnumQueryError> {
  339    344   
    ///     todo!()
  340    345   
    /// }
  341    346   
    ///
  342    347   
    /// let config = RestJsonExtrasConfig::builder().build();
  343    348   
    /// let app = RestJsonExtras::builder(config)
  344    349   
    ///     .enum_query(handler)
  345    350   
    ///     /* Set other handlers */
  346    351   
    ///     .build()
  347    352   
    ///     .unwrap();
  348         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         353  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  349    354   
    /// ```
  350    355   
    ///
  351    356   
                    pub fn enum_query<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  352    357   
                    where
  353         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::EnumQuery, HandlerExtractors>,
         358  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EnumQuery, HandlerExtractors>,
  354    359   
  355         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         360  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  356    361   
                            RestJsonExtras<L>,
  357    362   
                            crate::operation_shape::EnumQuery,
  358         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::EnumQuery, HandlerType>
         363  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EnumQuery, HandlerType>
  359    364   
                        >,
  360         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         365  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  361    366   
                            RestJsonExtras<L>,
  362    367   
                            crate::operation_shape::EnumQuery,
  363    368   
                            ModelPl::Output
  364    369   
                        >,
  365         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         370  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  366    371   
                            RestJsonExtras<L>,
  367    372   
                            crate::operation_shape::EnumQuery,
  368    373   
                            <
  369         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  370         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         374  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         375  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  371    376   
                                    RestJsonExtras<L>,
  372    377   
                                    crate::operation_shape::EnumQuery,
  373    378   
                                    ModelPl::Output
  374    379   
                                >
  375    380   
                            >::Output
  376    381   
                        >,
  377    382   
  378         -
                        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: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  379    384   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  380    385   
  381    386   
                    {
  382         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  383         -
        use ::aws_smithy_http_server::plugin::Plugin;
         387  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         388  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  384    389   
        let svc = crate::operation_shape::EnumQuery::from_handler(handler);
  385    390   
        let svc = self.model_plugin.apply(svc);
  386         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  387         -
            .apply(svc);
         391  +
        let svc =
         392  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         393  +
                .apply(svc);
  388    394   
        let svc = self.http_plugin.apply(svc);
  389    395   
        self.enum_query_custom(svc)
  390    396   
    }
  391    397   
  392    398   
    /// Sets the [`EnumQuery`](crate::operation_shape::EnumQuery) operation.
  393    399   
    ///
  394         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  395         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         400  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         401  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  396    402   
    ///
  397    403   
    /// # Example
  398    404   
    ///
  399    405   
    /// ```no_run
  400    406   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  401    407   
    ///
  402    408   
    /// use rest_json_extras::{input, output, error};
  403    409   
    ///
  404    410   
    /// async fn handler(input: input::EnumQueryInput) -> Result<output::EnumQueryOutput, error::EnumQueryError> {
  405    411   
    ///     todo!()
  406    412   
    /// }
  407    413   
    ///
  408    414   
    /// let config = RestJsonExtrasConfig::builder().build();
  409    415   
    /// let svc = ::tower::util::service_fn(handler);
  410    416   
    /// let app = RestJsonExtras::builder(config)
  411    417   
    ///     .enum_query_service(svc)
  412    418   
    ///     /* Set other handlers */
  413    419   
    ///     .build()
  414    420   
    ///     .unwrap();
  415         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         421  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  416    422   
    /// ```
  417    423   
    ///
  418    424   
                    pub fn enum_query_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  419    425   
                    where
  420         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::EnumQuery, ServiceExtractors>,
         426  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EnumQuery, ServiceExtractors>,
  421    427   
  422         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         428  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  423    429   
                            RestJsonExtras<L>,
  424    430   
                            crate::operation_shape::EnumQuery,
  425         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::EnumQuery, S>
         431  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EnumQuery, S>
  426    432   
                        >,
  427         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         433  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  428    434   
                            RestJsonExtras<L>,
  429    435   
                            crate::operation_shape::EnumQuery,
  430    436   
                            ModelPl::Output
  431    437   
                        >,
  432         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         438  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  433    439   
                            RestJsonExtras<L>,
  434    440   
                            crate::operation_shape::EnumQuery,
  435    441   
                            <
  436         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  437         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         442  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         443  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  438    444   
                                    RestJsonExtras<L>,
  439    445   
                                    crate::operation_shape::EnumQuery,
  440    446   
                                    ModelPl::Output
  441    447   
                                >
  442    448   
                            >::Output
  443    449   
                        >,
  444    450   
  445         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         451  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  446    452   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  447    453   
  448    454   
                    {
  449         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  450         -
        use ::aws_smithy_http_server::plugin::Plugin;
         455  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         456  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  451    457   
        let svc = crate::operation_shape::EnumQuery::from_service(service);
  452    458   
        let svc = self.model_plugin.apply(svc);
  453         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  454         -
            .apply(svc);
         459  +
        let svc =
         460  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         461  +
                .apply(svc);
  455    462   
        let svc = self.http_plugin.apply(svc);
  456    463   
        self.enum_query_custom(svc)
  457    464   
    }
  458    465   
  459    466   
    /// Sets the [`EnumQuery`](crate::operation_shape::EnumQuery) to a custom [`Service`](tower::Service).
  460    467   
    /// not constrained by the Smithy contract.
  461    468   
    fn enum_query_custom<S>(mut self, svc: S) -> Self
  462    469   
    where
  463    470   
        S: ::tower::Service<
  464    471   
                ::http::Request<Body>,
  465         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         472  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  466    473   
                Error = ::std::convert::Infallible,
  467    474   
            > + Clone
  468    475   
            + Send
  469    476   
            + 'static,
  470    477   
        S::Future: Send + 'static,
  471    478   
    {
  472         -
        self.enum_query = Some(::aws_smithy_http_server::routing::Route::new(svc));
         479  +
        self.enum_query = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  473    480   
        self
  474    481   
    }
  475    482   
  476    483   
    /// Sets the [`EscapedStringValues`](crate::operation_shape::EscapedStringValues) operation.
  477    484   
    ///
  478         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  479         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         485  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         486  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  480    487   
    ///
  481    488   
    /// # Example
  482    489   
    ///
  483    490   
    /// ```no_run
  484    491   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  485    492   
    ///
  486    493   
    /// use rest_json_extras::{input, output, error};
  487    494   
    ///
  488    495   
    /// async fn handler(input: input::EscapedStringValuesInput) -> Result<output::EscapedStringValuesOutput, error::EscapedStringValuesError> {
  489    496   
    ///     todo!()
  490    497   
    /// }
  491    498   
    ///
  492    499   
    /// let config = RestJsonExtrasConfig::builder().build();
  493    500   
    /// let app = RestJsonExtras::builder(config)
  494    501   
    ///     .escaped_string_values(handler)
  495    502   
    ///     /* Set other handlers */
  496    503   
    ///     .build()
  497    504   
    ///     .unwrap();
  498         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         505  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  499    506   
    /// ```
  500    507   
    ///
  501    508   
                    pub fn escaped_string_values<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  502    509   
                    where
  503         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::EscapedStringValues, HandlerExtractors>,
         510  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EscapedStringValues, HandlerExtractors>,
  504    511   
  505         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         512  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  506    513   
                            RestJsonExtras<L>,
  507    514   
                            crate::operation_shape::EscapedStringValues,
  508         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::EscapedStringValues, HandlerType>
         515  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EscapedStringValues, HandlerType>
  509    516   
                        >,
  510         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         517  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  511    518   
                            RestJsonExtras<L>,
  512    519   
                            crate::operation_shape::EscapedStringValues,
  513    520   
                            ModelPl::Output
  514    521   
                        >,
  515         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         522  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  516    523   
                            RestJsonExtras<L>,
  517    524   
                            crate::operation_shape::EscapedStringValues,
  518    525   
                            <
  519         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  520         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         526  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         527  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  521    528   
                                    RestJsonExtras<L>,
  522    529   
                                    crate::operation_shape::EscapedStringValues,
  523    530   
                                    ModelPl::Output
  524    531   
                                >
  525    532   
                            >::Output
  526    533   
                        >,
  527    534   
  528         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         535  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  529    536   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  530    537   
  531    538   
                    {
  532         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  533         -
        use ::aws_smithy_http_server::plugin::Plugin;
         539  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         540  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  534    541   
        let svc = crate::operation_shape::EscapedStringValues::from_handler(handler);
  535    542   
        let svc = self.model_plugin.apply(svc);
  536         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  537         -
            .apply(svc);
         543  +
        let svc =
         544  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         545  +
                .apply(svc);
  538    546   
        let svc = self.http_plugin.apply(svc);
  539    547   
        self.escaped_string_values_custom(svc)
  540    548   
    }
  541    549   
  542    550   
    /// Sets the [`EscapedStringValues`](crate::operation_shape::EscapedStringValues) operation.
  543    551   
    ///
  544         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  545         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         552  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         553  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  546    554   
    ///
  547    555   
    /// # Example
  548    556   
    ///
  549    557   
    /// ```no_run
  550    558   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  551    559   
    ///
  552    560   
    /// use rest_json_extras::{input, output, error};
  553    561   
    ///
  554    562   
    /// async fn handler(input: input::EscapedStringValuesInput) -> Result<output::EscapedStringValuesOutput, error::EscapedStringValuesError> {
  555    563   
    ///     todo!()
  556    564   
    /// }
  557    565   
    ///
  558    566   
    /// let config = RestJsonExtrasConfig::builder().build();
  559    567   
    /// let svc = ::tower::util::service_fn(handler);
  560    568   
    /// let app = RestJsonExtras::builder(config)
  561    569   
    ///     .escaped_string_values_service(svc)
  562    570   
    ///     /* Set other handlers */
  563    571   
    ///     .build()
  564    572   
    ///     .unwrap();
  565         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         573  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  566    574   
    /// ```
  567    575   
    ///
  568    576   
                    pub fn escaped_string_values_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  569    577   
                    where
  570         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::EscapedStringValues, ServiceExtractors>,
         578  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EscapedStringValues, ServiceExtractors>,
  571    579   
  572         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         580  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  573    581   
                            RestJsonExtras<L>,
  574    582   
                            crate::operation_shape::EscapedStringValues,
  575         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::EscapedStringValues, S>
         583  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EscapedStringValues, S>
  576    584   
                        >,
  577         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         585  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  578    586   
                            RestJsonExtras<L>,
  579    587   
                            crate::operation_shape::EscapedStringValues,
  580    588   
                            ModelPl::Output
  581    589   
                        >,
  582         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         590  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  583    591   
                            RestJsonExtras<L>,
  584    592   
                            crate::operation_shape::EscapedStringValues,
  585    593   
                            <
  586         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  587         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         594  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         595  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  588    596   
                                    RestJsonExtras<L>,
  589    597   
                                    crate::operation_shape::EscapedStringValues,
  590    598   
                                    ModelPl::Output
  591    599   
                                >
  592    600   
                            >::Output
  593    601   
                        >,
  594    602   
  595         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         603  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  596    604   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  597    605   
  598    606   
                    {
  599         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  600         -
        use ::aws_smithy_http_server::plugin::Plugin;
         607  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         608  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  601    609   
        let svc = crate::operation_shape::EscapedStringValues::from_service(service);
  602    610   
        let svc = self.model_plugin.apply(svc);
  603         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  604         -
            .apply(svc);
         611  +
        let svc =
         612  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         613  +
                .apply(svc);
  605    614   
        let svc = self.http_plugin.apply(svc);
  606    615   
        self.escaped_string_values_custom(svc)
  607    616   
    }
  608    617   
  609    618   
    /// Sets the [`EscapedStringValues`](crate::operation_shape::EscapedStringValues) to a custom [`Service`](tower::Service).
  610    619   
    /// not constrained by the Smithy contract.
  611    620   
    fn escaped_string_values_custom<S>(mut self, svc: S) -> Self
  612    621   
    where
  613    622   
        S: ::tower::Service<
  614    623   
                ::http::Request<Body>,
  615         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         624  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  616    625   
                Error = ::std::convert::Infallible,
  617    626   
            > + Clone
  618    627   
            + Send
  619    628   
            + 'static,
  620    629   
        S::Future: Send + 'static,
  621    630   
    {
  622         -
        self.escaped_string_values = Some(::aws_smithy_http_server::routing::Route::new(svc));
         631  +
        self.escaped_string_values =
         632  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  623    633   
        self
  624    634   
    }
  625    635   
  626    636   
    /// Sets the [`HttpQueryParamsOnlyOperation`](crate::operation_shape::HttpQueryParamsOnlyOperation) operation.
  627    637   
    ///
  628         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  629         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         638  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         639  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  630    640   
    ///
  631    641   
    /// # Example
  632    642   
    ///
  633    643   
    /// ```no_run
  634    644   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  635    645   
    ///
  636    646   
    /// use rest_json_extras::{input, output, error};
  637    647   
    ///
  638    648   
    /// async fn handler(input: input::HttpQueryParamsOnlyOperationInput) -> Result<output::HttpQueryParamsOnlyOperationOutput, error::HttpQueryParamsOnlyOperationError> {
  639    649   
    ///     todo!()
  640    650   
    /// }
  641    651   
    ///
  642    652   
    /// let config = RestJsonExtrasConfig::builder().build();
  643    653   
    /// let app = RestJsonExtras::builder(config)
  644    654   
    ///     .http_query_params_only_operation(handler)
  645    655   
    ///     /* Set other handlers */
  646    656   
    ///     .build()
  647    657   
    ///     .unwrap();
  648         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         658  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  649    659   
    /// ```
  650    660   
    ///
  651    661   
                    pub fn http_query_params_only_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  652    662   
                    where
  653         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::HttpQueryParamsOnlyOperation, HandlerExtractors>,
         663  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpQueryParamsOnlyOperation, HandlerExtractors>,
  654    664   
  655         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         665  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  656    666   
                            RestJsonExtras<L>,
  657    667   
                            crate::operation_shape::HttpQueryParamsOnlyOperation,
  658         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::HttpQueryParamsOnlyOperation, HandlerType>
         668  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpQueryParamsOnlyOperation, HandlerType>
  659    669   
                        >,
  660         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         670  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  661    671   
                            RestJsonExtras<L>,
  662    672   
                            crate::operation_shape::HttpQueryParamsOnlyOperation,
  663    673   
                            ModelPl::Output
  664    674   
                        >,
  665         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         675  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  666    676   
                            RestJsonExtras<L>,
  667    677   
                            crate::operation_shape::HttpQueryParamsOnlyOperation,
  668    678   
                            <
  669         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  670         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         679  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         680  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  671    681   
                                    RestJsonExtras<L>,
  672    682   
                                    crate::operation_shape::HttpQueryParamsOnlyOperation,
  673    683   
                                    ModelPl::Output
  674    684   
                                >
  675    685   
                            >::Output
  676    686   
                        >,
  677    687   
  678         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         688  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  679    689   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  680    690   
  681    691   
                    {
  682         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  683         -
        use ::aws_smithy_http_server::plugin::Plugin;
         692  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         693  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  684    694   
        let svc = crate::operation_shape::HttpQueryParamsOnlyOperation::from_handler(handler);
  685    695   
        let svc = self.model_plugin.apply(svc);
  686         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  687         -
            .apply(svc);
         696  +
        let svc =
         697  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         698  +
                .apply(svc);
  688    699   
        let svc = self.http_plugin.apply(svc);
  689    700   
        self.http_query_params_only_operation_custom(svc)
  690    701   
    }
  691    702   
  692    703   
    /// Sets the [`HttpQueryParamsOnlyOperation`](crate::operation_shape::HttpQueryParamsOnlyOperation) operation.
  693    704   
    ///
  694         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  695         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         705  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         706  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  696    707   
    ///
  697    708   
    /// # Example
  698    709   
    ///
  699    710   
    /// ```no_run
  700    711   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  701    712   
    ///
  702    713   
    /// use rest_json_extras::{input, output, error};
  703    714   
    ///
  704    715   
    /// async fn handler(input: input::HttpQueryParamsOnlyOperationInput) -> Result<output::HttpQueryParamsOnlyOperationOutput, error::HttpQueryParamsOnlyOperationError> {
  705    716   
    ///     todo!()
  706    717   
    /// }
  707    718   
    ///
  708    719   
    /// let config = RestJsonExtrasConfig::builder().build();
  709    720   
    /// let svc = ::tower::util::service_fn(handler);
  710    721   
    /// let app = RestJsonExtras::builder(config)
  711    722   
    ///     .http_query_params_only_operation_service(svc)
  712    723   
    ///     /* Set other handlers */
  713    724   
    ///     .build()
  714    725   
    ///     .unwrap();
  715         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         726  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  716    727   
    /// ```
  717    728   
    ///
  718    729   
                    pub fn http_query_params_only_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  719    730   
                    where
  720         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::HttpQueryParamsOnlyOperation, ServiceExtractors>,
         731  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpQueryParamsOnlyOperation, ServiceExtractors>,
  721    732   
  722         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         733  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  723    734   
                            RestJsonExtras<L>,
  724    735   
                            crate::operation_shape::HttpQueryParamsOnlyOperation,
  725         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::HttpQueryParamsOnlyOperation, S>
         736  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpQueryParamsOnlyOperation, S>
  726    737   
                        >,
  727         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         738  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  728    739   
                            RestJsonExtras<L>,
  729    740   
                            crate::operation_shape::HttpQueryParamsOnlyOperation,
  730    741   
                            ModelPl::Output
  731    742   
                        >,
  732         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         743  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  733    744   
                            RestJsonExtras<L>,
  734    745   
                            crate::operation_shape::HttpQueryParamsOnlyOperation,
  735    746   
                            <
  736         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  737         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         747  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         748  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  738    749   
                                    RestJsonExtras<L>,
  739    750   
                                    crate::operation_shape::HttpQueryParamsOnlyOperation,
  740    751   
                                    ModelPl::Output
  741    752   
                                >
  742    753   
                            >::Output
  743    754   
                        >,
  744    755   
  745         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         756  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  746    757   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  747    758   
  748    759   
                    {
  749         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  750         -
        use ::aws_smithy_http_server::plugin::Plugin;
         760  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         761  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  751    762   
        let svc = crate::operation_shape::HttpQueryParamsOnlyOperation::from_service(service);
  752    763   
        let svc = self.model_plugin.apply(svc);
  753         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  754         -
            .apply(svc);
         764  +
        let svc =
         765  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         766  +
                .apply(svc);
  755    767   
        let svc = self.http_plugin.apply(svc);
  756    768   
        self.http_query_params_only_operation_custom(svc)
  757    769   
    }
  758    770   
  759    771   
    /// Sets the [`HttpQueryParamsOnlyOperation`](crate::operation_shape::HttpQueryParamsOnlyOperation) to a custom [`Service`](tower::Service).
  760    772   
    /// not constrained by the Smithy contract.
  761    773   
    fn http_query_params_only_operation_custom<S>(mut self, svc: S) -> Self
  762    774   
    where
  763    775   
        S: ::tower::Service<
  764    776   
                ::http::Request<Body>,
  765         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         777  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  766    778   
                Error = ::std::convert::Infallible,
  767    779   
            > + Clone
  768    780   
            + Send
  769    781   
            + 'static,
  770    782   
        S::Future: Send + 'static,
  771    783   
    {
  772    784   
        self.http_query_params_only_operation =
  773         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
         785  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  774    786   
        self
  775    787   
    }
  776    788   
  777    789   
    /// Sets the [`MapWithEnumKeyOp`](crate::operation_shape::MapWithEnumKeyOp) operation.
  778    790   
    ///
  779         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  780         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         791  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         792  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  781    793   
    ///
  782    794   
    /// # Example
  783    795   
    ///
  784    796   
    /// ```no_run
  785    797   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  786    798   
    ///
  787    799   
    /// use rest_json_extras::{input, output, error};
  788    800   
    ///
  789    801   
    /// async fn handler(input: input::MapWithEnumKeyOpInput) -> Result<output::MapWithEnumKeyOpOutput, error::MapWithEnumKeyOpError> {
  790    802   
    ///     todo!()
  791    803   
    /// }
  792    804   
    ///
  793    805   
    /// let config = RestJsonExtrasConfig::builder().build();
  794    806   
    /// let app = RestJsonExtras::builder(config)
  795    807   
    ///     .map_with_enum_key_op(handler)
  796    808   
    ///     /* Set other handlers */
  797    809   
    ///     .build()
  798    810   
    ///     .unwrap();
  799         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         811  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  800    812   
    /// ```
  801    813   
    ///
  802    814   
                    pub fn map_with_enum_key_op<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  803    815   
                    where
  804         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::MapWithEnumKeyOp, HandlerExtractors>,
         816  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MapWithEnumKeyOp, HandlerExtractors>,
  805    817   
  806         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         818  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  807    819   
                            RestJsonExtras<L>,
  808    820   
                            crate::operation_shape::MapWithEnumKeyOp,
  809         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::MapWithEnumKeyOp, HandlerType>
         821  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MapWithEnumKeyOp, HandlerType>
  810    822   
                        >,
  811         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         823  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  812    824   
                            RestJsonExtras<L>,
  813    825   
                            crate::operation_shape::MapWithEnumKeyOp,
  814    826   
                            ModelPl::Output
  815    827   
                        >,
  816         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         828  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  817    829   
                            RestJsonExtras<L>,
  818    830   
                            crate::operation_shape::MapWithEnumKeyOp,
  819    831   
                            <
  820         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  821         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         832  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         833  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  822    834   
                                    RestJsonExtras<L>,
  823    835   
                                    crate::operation_shape::MapWithEnumKeyOp,
  824    836   
                                    ModelPl::Output
  825    837   
                                >
  826    838   
                            >::Output
  827    839   
                        >,
  828    840   
  829         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         841  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  830    842   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  831    843   
  832    844   
                    {
  833         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  834         -
        use ::aws_smithy_http_server::plugin::Plugin;
         845  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         846  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  835    847   
        let svc = crate::operation_shape::MapWithEnumKeyOp::from_handler(handler);
  836    848   
        let svc = self.model_plugin.apply(svc);
  837         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  838         -
            .apply(svc);
         849  +
        let svc =
         850  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         851  +
                .apply(svc);
  839    852   
        let svc = self.http_plugin.apply(svc);
  840    853   
        self.map_with_enum_key_op_custom(svc)
  841    854   
    }
  842    855   
  843    856   
    /// Sets the [`MapWithEnumKeyOp`](crate::operation_shape::MapWithEnumKeyOp) operation.
  844    857   
    ///
  845         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  846         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         858  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         859  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  847    860   
    ///
  848    861   
    /// # Example
  849    862   
    ///
  850    863   
    /// ```no_run
  851    864   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  852    865   
    ///
  853    866   
    /// use rest_json_extras::{input, output, error};
  854    867   
    ///
  855    868   
    /// async fn handler(input: input::MapWithEnumKeyOpInput) -> Result<output::MapWithEnumKeyOpOutput, error::MapWithEnumKeyOpError> {
  856    869   
    ///     todo!()
  857    870   
    /// }
  858    871   
    ///
  859    872   
    /// let config = RestJsonExtrasConfig::builder().build();
  860    873   
    /// let svc = ::tower::util::service_fn(handler);
  861    874   
    /// let app = RestJsonExtras::builder(config)
  862    875   
    ///     .map_with_enum_key_op_service(svc)
  863    876   
    ///     /* Set other handlers */
  864    877   
    ///     .build()
  865    878   
    ///     .unwrap();
  866         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         879  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  867    880   
    /// ```
  868    881   
    ///
  869    882   
                    pub fn map_with_enum_key_op_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  870    883   
                    where
  871         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::MapWithEnumKeyOp, ServiceExtractors>,
         884  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MapWithEnumKeyOp, ServiceExtractors>,
  872    885   
  873         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         886  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  874    887   
                            RestJsonExtras<L>,
  875    888   
                            crate::operation_shape::MapWithEnumKeyOp,
  876         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::MapWithEnumKeyOp, S>
         889  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MapWithEnumKeyOp, S>
  877    890   
                        >,
  878         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         891  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  879    892   
                            RestJsonExtras<L>,
  880    893   
                            crate::operation_shape::MapWithEnumKeyOp,
  881    894   
                            ModelPl::Output
  882    895   
                        >,
  883         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         896  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  884    897   
                            RestJsonExtras<L>,
  885    898   
                            crate::operation_shape::MapWithEnumKeyOp,
  886    899   
                            <
  887         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  888         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         900  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         901  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  889    902   
                                    RestJsonExtras<L>,
  890    903   
                                    crate::operation_shape::MapWithEnumKeyOp,
  891    904   
                                    ModelPl::Output
  892    905   
                                >
  893    906   
                            >::Output
  894    907   
                        >,
  895    908   
  896         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         909  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  897    910   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  898    911   
  899    912   
                    {
  900         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  901         -
        use ::aws_smithy_http_server::plugin::Plugin;
         913  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         914  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  902    915   
        let svc = crate::operation_shape::MapWithEnumKeyOp::from_service(service);
  903    916   
        let svc = self.model_plugin.apply(svc);
  904         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  905         -
            .apply(svc);
         917  +
        let svc =
         918  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         919  +
                .apply(svc);
  906    920   
        let svc = self.http_plugin.apply(svc);
  907    921   
        self.map_with_enum_key_op_custom(svc)
  908    922   
    }
  909    923   
  910    924   
    /// Sets the [`MapWithEnumKeyOp`](crate::operation_shape::MapWithEnumKeyOp) to a custom [`Service`](tower::Service).
  911    925   
    /// not constrained by the Smithy contract.
  912    926   
    fn map_with_enum_key_op_custom<S>(mut self, svc: S) -> Self
  913    927   
    where
  914    928   
        S: ::tower::Service<
  915    929   
                ::http::Request<Body>,
  916         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         930  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  917    931   
                Error = ::std::convert::Infallible,
  918    932   
            > + Clone
  919    933   
            + Send
  920    934   
            + 'static,
  921    935   
        S::Future: Send + 'static,
  922    936   
    {
  923         -
        self.map_with_enum_key_op = Some(::aws_smithy_http_server::routing::Route::new(svc));
         937  +
        self.map_with_enum_key_op = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  924    938   
        self
  925    939   
    }
  926    940   
  927    941   
    /// Sets the [`NullInNonSparse`](crate::operation_shape::NullInNonSparse) operation.
  928    942   
    ///
  929         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  930         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         943  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         944  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  931    945   
    ///
  932    946   
    /// # Example
  933    947   
    ///
  934    948   
    /// ```no_run
  935    949   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
  936    950   
    ///
  937    951   
    /// use rest_json_extras::{input, output, error};
  938    952   
    ///
  939    953   
    /// async fn handler(input: input::NullInNonSparseInput) -> Result<output::NullInNonSparseOutput, error::NullInNonSparseError> {
  940    954   
    ///     todo!()
  941    955   
    /// }
  942    956   
    ///
  943    957   
    /// let config = RestJsonExtrasConfig::builder().build();
  944    958   
    /// let app = RestJsonExtras::builder(config)
  945    959   
    ///     .null_in_non_sparse(handler)
  946    960   
    ///     /* Set other handlers */
  947    961   
    ///     .build()
  948    962   
    ///     .unwrap();
  949         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
         963  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
  950    964   
    /// ```
  951    965   
    ///
  952    966   
                    pub fn null_in_non_sparse<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  953    967   
                    where
  954         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::NullInNonSparse, HandlerExtractors>,
         968  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::NullInNonSparse, HandlerExtractors>,
  955    969   
  956         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         970  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  957    971   
                            RestJsonExtras<L>,
  958    972   
                            crate::operation_shape::NullInNonSparse,
  959         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::NullInNonSparse, HandlerType>
         973  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::NullInNonSparse, HandlerType>
  960    974   
                        >,
  961         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         975  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  962    976   
                            RestJsonExtras<L>,
  963    977   
                            crate::operation_shape::NullInNonSparse,
  964    978   
                            ModelPl::Output
  965    979   
                        >,
  966         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         980  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  967    981   
                            RestJsonExtras<L>,
  968    982   
                            crate::operation_shape::NullInNonSparse,
  969    983   
                            <
  970         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  971         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         984  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         985  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  972    986   
                                    RestJsonExtras<L>,
  973    987   
                                    crate::operation_shape::NullInNonSparse,
  974    988   
                                    ModelPl::Output
  975    989   
                                >
  976    990   
                            >::Output
  977    991   
                        >,
  978    992   
  979         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         993  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  980    994   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  981    995   
  982    996   
                    {
  983         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  984         -
        use ::aws_smithy_http_server::plugin::Plugin;
         997  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         998  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  985    999   
        let svc = crate::operation_shape::NullInNonSparse::from_handler(handler);
  986   1000   
        let svc = self.model_plugin.apply(svc);
  987         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  988         -
            .apply(svc);
        1001  +
        let svc =
        1002  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1003  +
                .apply(svc);
  989   1004   
        let svc = self.http_plugin.apply(svc);
  990   1005   
        self.null_in_non_sparse_custom(svc)
  991   1006   
    }
  992   1007   
  993   1008   
    /// Sets the [`NullInNonSparse`](crate::operation_shape::NullInNonSparse) operation.
  994   1009   
    ///
  995         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  996         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1010  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1011  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  997   1012   
    ///
  998   1013   
    /// # Example
  999   1014   
    ///
 1000   1015   
    /// ```no_run
 1001   1016   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1002   1017   
    ///
 1003   1018   
    /// use rest_json_extras::{input, output, error};
 1004   1019   
    ///
 1005   1020   
    /// async fn handler(input: input::NullInNonSparseInput) -> Result<output::NullInNonSparseOutput, error::NullInNonSparseError> {
 1006   1021   
    ///     todo!()
 1007   1022   
    /// }
 1008   1023   
    ///
 1009   1024   
    /// let config = RestJsonExtrasConfig::builder().build();
 1010   1025   
    /// let svc = ::tower::util::service_fn(handler);
 1011   1026   
    /// let app = RestJsonExtras::builder(config)
 1012   1027   
    ///     .null_in_non_sparse_service(svc)
 1013   1028   
    ///     /* Set other handlers */
 1014   1029   
    ///     .build()
 1015   1030   
    ///     .unwrap();
 1016         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1031  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1017   1032   
    /// ```
 1018   1033   
    ///
 1019   1034   
                    pub fn null_in_non_sparse_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1020   1035   
                    where
 1021         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::NullInNonSparse, ServiceExtractors>,
        1036  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::NullInNonSparse, ServiceExtractors>,
 1022   1037   
 1023         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1038  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1024   1039   
                            RestJsonExtras<L>,
 1025   1040   
                            crate::operation_shape::NullInNonSparse,
 1026         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::NullInNonSparse, S>
        1041  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::NullInNonSparse, S>
 1027   1042   
                        >,
 1028         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1043  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1029   1044   
                            RestJsonExtras<L>,
 1030   1045   
                            crate::operation_shape::NullInNonSparse,
 1031   1046   
                            ModelPl::Output
 1032   1047   
                        >,
 1033         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1048  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1034   1049   
                            RestJsonExtras<L>,
 1035   1050   
                            crate::operation_shape::NullInNonSparse,
 1036   1051   
                            <
 1037         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1038         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1052  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1053  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1039   1054   
                                    RestJsonExtras<L>,
 1040   1055   
                                    crate::operation_shape::NullInNonSparse,
 1041   1056   
                                    ModelPl::Output
 1042   1057   
                                >
 1043   1058   
                            >::Output
 1044   1059   
                        >,
 1045   1060   
 1046         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1061  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1047   1062   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1048   1063   
 1049   1064   
                    {
 1050         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1051         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1065  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1066  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1052   1067   
        let svc = crate::operation_shape::NullInNonSparse::from_service(service);
 1053   1068   
        let svc = self.model_plugin.apply(svc);
 1054         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1055         -
            .apply(svc);
        1069  +
        let svc =
        1070  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1071  +
                .apply(svc);
 1056   1072   
        let svc = self.http_plugin.apply(svc);
 1057   1073   
        self.null_in_non_sparse_custom(svc)
 1058   1074   
    }
 1059   1075   
 1060   1076   
    /// Sets the [`NullInNonSparse`](crate::operation_shape::NullInNonSparse) to a custom [`Service`](tower::Service).
 1061   1077   
    /// not constrained by the Smithy contract.
 1062   1078   
    fn null_in_non_sparse_custom<S>(mut self, svc: S) -> Self
 1063   1079   
    where
 1064   1080   
        S: ::tower::Service<
 1065   1081   
                ::http::Request<Body>,
 1066         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1082  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1067   1083   
                Error = ::std::convert::Infallible,
 1068   1084   
            > + Clone
 1069   1085   
            + Send
 1070   1086   
            + 'static,
 1071   1087   
        S::Future: Send + 'static,
 1072   1088   
    {
 1073         -
        self.null_in_non_sparse = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1089  +
        self.null_in_non_sparse = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1074   1090   
        self
 1075   1091   
    }
 1076   1092   
 1077   1093   
    /// Sets the [`PrimitiveIntHeader`](crate::operation_shape::PrimitiveIntHeader) operation.
 1078   1094   
    ///
 1079         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1080         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1095  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1096  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1081   1097   
    ///
 1082   1098   
    /// # Example
 1083   1099   
    ///
 1084   1100   
    /// ```no_run
 1085   1101   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1086   1102   
    ///
 1087   1103   
    /// use rest_json_extras::{input, output, error};
 1088   1104   
    ///
 1089   1105   
    /// async fn handler(input: input::PrimitiveIntHeaderInput) -> Result<output::PrimitiveIntHeaderOutput, error::PrimitiveIntHeaderError> {
 1090   1106   
    ///     todo!()
 1091   1107   
    /// }
 1092   1108   
    ///
 1093   1109   
    /// let config = RestJsonExtrasConfig::builder().build();
 1094   1110   
    /// let app = RestJsonExtras::builder(config)
 1095   1111   
    ///     .primitive_int_header(handler)
 1096   1112   
    ///     /* Set other handlers */
 1097   1113   
    ///     .build()
 1098   1114   
    ///     .unwrap();
 1099         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1115  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1100   1116   
    /// ```
 1101   1117   
    ///
 1102   1118   
                    pub fn primitive_int_header<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1103   1119   
                    where
 1104         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::PrimitiveIntHeader, HandlerExtractors>,
        1120  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::PrimitiveIntHeader, HandlerExtractors>,
 1105   1121   
 1106         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1122  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1107   1123   
                            RestJsonExtras<L>,
 1108   1124   
                            crate::operation_shape::PrimitiveIntHeader,
 1109         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::PrimitiveIntHeader, HandlerType>
        1125  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::PrimitiveIntHeader, HandlerType>
 1110   1126   
                        >,
 1111         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1127  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1112   1128   
                            RestJsonExtras<L>,
 1113   1129   
                            crate::operation_shape::PrimitiveIntHeader,
 1114   1130   
                            ModelPl::Output
 1115   1131   
                        >,
 1116         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1132  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1117   1133   
                            RestJsonExtras<L>,
 1118   1134   
                            crate::operation_shape::PrimitiveIntHeader,
 1119   1135   
                            <
 1120         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1121         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1136  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1137  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1122   1138   
                                    RestJsonExtras<L>,
 1123   1139   
                                    crate::operation_shape::PrimitiveIntHeader,
 1124   1140   
                                    ModelPl::Output
 1125   1141   
                                >
 1126   1142   
                            >::Output
 1127   1143   
                        >,
 1128   1144   
 1129         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1145  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1130   1146   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1131   1147   
 1132   1148   
                    {
 1133         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1134         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1149  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1150  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1135   1151   
        let svc = crate::operation_shape::PrimitiveIntHeader::from_handler(handler);
 1136   1152   
        let svc = self.model_plugin.apply(svc);
 1137         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1138         -
            .apply(svc);
        1153  +
        let svc =
        1154  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1155  +
                .apply(svc);
 1139   1156   
        let svc = self.http_plugin.apply(svc);
 1140   1157   
        self.primitive_int_header_custom(svc)
 1141   1158   
    }
 1142   1159   
 1143   1160   
    /// Sets the [`PrimitiveIntHeader`](crate::operation_shape::PrimitiveIntHeader) operation.
 1144   1161   
    ///
 1145         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1146         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1162  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1163  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1147   1164   
    ///
 1148   1165   
    /// # Example
 1149   1166   
    ///
 1150   1167   
    /// ```no_run
 1151   1168   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1152   1169   
    ///
 1153   1170   
    /// use rest_json_extras::{input, output, error};
 1154   1171   
    ///
 1155   1172   
    /// async fn handler(input: input::PrimitiveIntHeaderInput) -> Result<output::PrimitiveIntHeaderOutput, error::PrimitiveIntHeaderError> {
 1156   1173   
    ///     todo!()
 1157   1174   
    /// }
 1158   1175   
    ///
 1159   1176   
    /// let config = RestJsonExtrasConfig::builder().build();
 1160   1177   
    /// let svc = ::tower::util::service_fn(handler);
 1161   1178   
    /// let app = RestJsonExtras::builder(config)
 1162   1179   
    ///     .primitive_int_header_service(svc)
 1163   1180   
    ///     /* Set other handlers */
 1164   1181   
    ///     .build()
 1165   1182   
    ///     .unwrap();
 1166         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1183  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1167   1184   
    /// ```
 1168   1185   
    ///
 1169   1186   
                    pub fn primitive_int_header_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1170   1187   
                    where
 1171         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::PrimitiveIntHeader, ServiceExtractors>,
        1188  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::PrimitiveIntHeader, ServiceExtractors>,
 1172   1189   
 1173         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1190  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1174   1191   
                            RestJsonExtras<L>,
 1175   1192   
                            crate::operation_shape::PrimitiveIntHeader,
 1176         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::PrimitiveIntHeader, S>
        1193  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::PrimitiveIntHeader, S>
 1177   1194   
                        >,
 1178         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1195  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1179   1196   
                            RestJsonExtras<L>,
 1180   1197   
                            crate::operation_shape::PrimitiveIntHeader,
 1181   1198   
                            ModelPl::Output
 1182   1199   
                        >,
 1183         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1200  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1184   1201   
                            RestJsonExtras<L>,
 1185   1202   
                            crate::operation_shape::PrimitiveIntHeader,
 1186   1203   
                            <
 1187         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1188         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1204  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1205  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1189   1206   
                                    RestJsonExtras<L>,
 1190   1207   
                                    crate::operation_shape::PrimitiveIntHeader,
 1191   1208   
                                    ModelPl::Output
 1192   1209   
                                >
 1193   1210   
                            >::Output
 1194   1211   
                        >,
 1195   1212   
 1196         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1213  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1197   1214   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1198   1215   
 1199   1216   
                    {
 1200         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1201         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1217  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1218  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1202   1219   
        let svc = crate::operation_shape::PrimitiveIntHeader::from_service(service);
 1203   1220   
        let svc = self.model_plugin.apply(svc);
 1204         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1205         -
            .apply(svc);
        1221  +
        let svc =
        1222  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1223  +
                .apply(svc);
 1206   1224   
        let svc = self.http_plugin.apply(svc);
 1207   1225   
        self.primitive_int_header_custom(svc)
 1208   1226   
    }
 1209   1227   
 1210   1228   
    /// Sets the [`PrimitiveIntHeader`](crate::operation_shape::PrimitiveIntHeader) to a custom [`Service`](tower::Service).
 1211   1229   
    /// not constrained by the Smithy contract.
 1212   1230   
    fn primitive_int_header_custom<S>(mut self, svc: S) -> Self
 1213   1231   
    where
 1214   1232   
        S: ::tower::Service<
 1215   1233   
                ::http::Request<Body>,
 1216         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1234  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1217   1235   
                Error = ::std::convert::Infallible,
 1218   1236   
            > + Clone
 1219   1237   
            + Send
 1220   1238   
            + 'static,
 1221   1239   
        S::Future: Send + 'static,
 1222   1240   
    {
 1223         -
        self.primitive_int_header = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1241  +
        self.primitive_int_header = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1224   1242   
        self
 1225   1243   
    }
 1226   1244   
 1227   1245   
    /// Sets the [`PrimitiveIntOp`](crate::operation_shape::PrimitiveIntOp) operation.
 1228   1246   
    ///
 1229         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1230         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1247  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1248  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1231   1249   
    ///
 1232   1250   
    /// # Example
 1233   1251   
    ///
 1234   1252   
    /// ```no_run
 1235   1253   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1236   1254   
    ///
 1237   1255   
    /// use rest_json_extras::{input, output, error};
 1238   1256   
    ///
 1239   1257   
    /// async fn handler(input: input::PrimitiveIntOpInput) -> Result<output::PrimitiveIntOpOutput, error::PrimitiveIntOpError> {
 1240   1258   
    ///     todo!()
 1241   1259   
    /// }
 1242   1260   
    ///
 1243   1261   
    /// let config = RestJsonExtrasConfig::builder().build();
 1244   1262   
    /// let app = RestJsonExtras::builder(config)
 1245   1263   
    ///     .primitive_int_op(handler)
 1246   1264   
    ///     /* Set other handlers */
 1247   1265   
    ///     .build()
 1248   1266   
    ///     .unwrap();
 1249         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1267  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1250   1268   
    /// ```
 1251   1269   
    ///
 1252   1270   
                    pub fn primitive_int_op<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1253   1271   
                    where
 1254         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::PrimitiveIntOp, HandlerExtractors>,
        1272  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::PrimitiveIntOp, HandlerExtractors>,
 1255   1273   
 1256         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1274  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1257   1275   
                            RestJsonExtras<L>,
 1258   1276   
                            crate::operation_shape::PrimitiveIntOp,
 1259         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::PrimitiveIntOp, HandlerType>
        1277  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::PrimitiveIntOp, HandlerType>
 1260   1278   
                        >,
 1261         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1279  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1262   1280   
                            RestJsonExtras<L>,
 1263   1281   
                            crate::operation_shape::PrimitiveIntOp,
 1264   1282   
                            ModelPl::Output
 1265   1283   
                        >,
 1266         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1284  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1267   1285   
                            RestJsonExtras<L>,
 1268   1286   
                            crate::operation_shape::PrimitiveIntOp,
 1269   1287   
                            <
 1270         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1271         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1288  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1289  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1272   1290   
                                    RestJsonExtras<L>,
 1273   1291   
                                    crate::operation_shape::PrimitiveIntOp,
 1274   1292   
                                    ModelPl::Output
 1275   1293   
                                >
 1276   1294   
                            >::Output
 1277   1295   
                        >,
 1278   1296   
 1279         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1297  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1280   1298   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1281   1299   
 1282   1300   
                    {
 1283         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1284         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1301  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1302  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1285   1303   
        let svc = crate::operation_shape::PrimitiveIntOp::from_handler(handler);
 1286   1304   
        let svc = self.model_plugin.apply(svc);
 1287         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1288         -
            .apply(svc);
        1305  +
        let svc =
        1306  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1307  +
                .apply(svc);
 1289   1308   
        let svc = self.http_plugin.apply(svc);
 1290   1309   
        self.primitive_int_op_custom(svc)
 1291   1310   
    }
 1292   1311   
 1293   1312   
    /// Sets the [`PrimitiveIntOp`](crate::operation_shape::PrimitiveIntOp) operation.
 1294   1313   
    ///
 1295         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1296         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1314  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1315  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1297   1316   
    ///
 1298   1317   
    /// # Example
 1299   1318   
    ///
 1300   1319   
    /// ```no_run
 1301   1320   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1302   1321   
    ///
 1303   1322   
    /// use rest_json_extras::{input, output, error};
 1304   1323   
    ///
 1305   1324   
    /// async fn handler(input: input::PrimitiveIntOpInput) -> Result<output::PrimitiveIntOpOutput, error::PrimitiveIntOpError> {
 1306   1325   
    ///     todo!()
 1307   1326   
    /// }
 1308   1327   
    ///
 1309   1328   
    /// let config = RestJsonExtrasConfig::builder().build();
 1310   1329   
    /// let svc = ::tower::util::service_fn(handler);
 1311   1330   
    /// let app = RestJsonExtras::builder(config)
 1312   1331   
    ///     .primitive_int_op_service(svc)
 1313   1332   
    ///     /* Set other handlers */
 1314   1333   
    ///     .build()
 1315   1334   
    ///     .unwrap();
 1316         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1335  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1317   1336   
    /// ```
 1318   1337   
    ///
 1319   1338   
                    pub fn primitive_int_op_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1320   1339   
                    where
 1321         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::PrimitiveIntOp, ServiceExtractors>,
        1340  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::PrimitiveIntOp, ServiceExtractors>,
 1322   1341   
 1323         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1342  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1324   1343   
                            RestJsonExtras<L>,
 1325   1344   
                            crate::operation_shape::PrimitiveIntOp,
 1326         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::PrimitiveIntOp, S>
        1345  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::PrimitiveIntOp, S>
 1327   1346   
                        >,
 1328         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1347  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1329   1348   
                            RestJsonExtras<L>,
 1330   1349   
                            crate::operation_shape::PrimitiveIntOp,
 1331   1350   
                            ModelPl::Output
 1332   1351   
                        >,
 1333         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1352  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1334   1353   
                            RestJsonExtras<L>,
 1335   1354   
                            crate::operation_shape::PrimitiveIntOp,
 1336   1355   
                            <
 1337         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1338         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1356  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1357  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1339   1358   
                                    RestJsonExtras<L>,
 1340   1359   
                                    crate::operation_shape::PrimitiveIntOp,
 1341   1360   
                                    ModelPl::Output
 1342   1361   
                                >
 1343   1362   
                            >::Output
 1344   1363   
                        >,
 1345   1364   
 1346         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1365  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1347   1366   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1348   1367   
 1349   1368   
                    {
 1350         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1351         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1369  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1370  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1352   1371   
        let svc = crate::operation_shape::PrimitiveIntOp::from_service(service);
 1353   1372   
        let svc = self.model_plugin.apply(svc);
 1354         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1355         -
            .apply(svc);
        1373  +
        let svc =
        1374  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1375  +
                .apply(svc);
 1356   1376   
        let svc = self.http_plugin.apply(svc);
 1357   1377   
        self.primitive_int_op_custom(svc)
 1358   1378   
    }
 1359   1379   
 1360   1380   
    /// Sets the [`PrimitiveIntOp`](crate::operation_shape::PrimitiveIntOp) to a custom [`Service`](tower::Service).
 1361   1381   
    /// not constrained by the Smithy contract.
 1362   1382   
    fn primitive_int_op_custom<S>(mut self, svc: S) -> Self
 1363   1383   
    where
 1364   1384   
        S: ::tower::Service<
 1365   1385   
                ::http::Request<Body>,
 1366         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1386  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1367   1387   
                Error = ::std::convert::Infallible,
 1368   1388   
            > + Clone
 1369   1389   
            + Send
 1370   1390   
            + 'static,
 1371   1391   
        S::Future: Send + 'static,
 1372   1392   
    {
 1373         -
        self.primitive_int_op = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1393  +
        self.primitive_int_op = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1374   1394   
        self
 1375   1395   
    }
 1376   1396   
 1377   1397   
    /// Sets the [`QueryPrecedence`](crate::operation_shape::QueryPrecedence) operation.
 1378   1398   
    ///
 1379         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1380         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1399  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1400  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1381   1401   
    ///
 1382   1402   
    /// # Example
 1383   1403   
    ///
 1384   1404   
    /// ```no_run
 1385   1405   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1386   1406   
    ///
 1387   1407   
    /// use rest_json_extras::{input, output, error};
 1388   1408   
    ///
 1389   1409   
    /// async fn handler(input: input::QueryPrecedenceInput) -> Result<output::QueryPrecedenceOutput, error::QueryPrecedenceError> {
 1390   1410   
    ///     todo!()
 1391   1411   
    /// }
 1392   1412   
    ///
 1393   1413   
    /// let config = RestJsonExtrasConfig::builder().build();
 1394   1414   
    /// let app = RestJsonExtras::builder(config)
 1395   1415   
    ///     .query_precedence(handler)
 1396   1416   
    ///     /* Set other handlers */
 1397   1417   
    ///     .build()
 1398   1418   
    ///     .unwrap();
 1399         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1419  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1400   1420   
    /// ```
 1401   1421   
    ///
 1402   1422   
                    pub fn query_precedence<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1403   1423   
                    where
 1404         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::QueryPrecedence, HandlerExtractors>,
        1424  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryPrecedence, HandlerExtractors>,
 1405   1425   
 1406         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1426  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1407   1427   
                            RestJsonExtras<L>,
 1408   1428   
                            crate::operation_shape::QueryPrecedence,
 1409         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::QueryPrecedence, HandlerType>
        1429  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryPrecedence, HandlerType>
 1410   1430   
                        >,
 1411         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1431  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1412   1432   
                            RestJsonExtras<L>,
 1413   1433   
                            crate::operation_shape::QueryPrecedence,
 1414   1434   
                            ModelPl::Output
 1415   1435   
                        >,
 1416         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1436  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1417   1437   
                            RestJsonExtras<L>,
 1418   1438   
                            crate::operation_shape::QueryPrecedence,
 1419   1439   
                            <
 1420         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1421         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1440  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1441  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1422   1442   
                                    RestJsonExtras<L>,
 1423   1443   
                                    crate::operation_shape::QueryPrecedence,
 1424   1444   
                                    ModelPl::Output
 1425   1445   
                                >
 1426   1446   
                            >::Output
 1427   1447   
                        >,
 1428   1448   
 1429         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1449  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1430   1450   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1431   1451   
 1432   1452   
                    {
 1433         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1434         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1453  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1454  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1435   1455   
        let svc = crate::operation_shape::QueryPrecedence::from_handler(handler);
 1436   1456   
        let svc = self.model_plugin.apply(svc);
 1437         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1438         -
            .apply(svc);
        1457  +
        let svc =
        1458  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1459  +
                .apply(svc);
 1439   1460   
        let svc = self.http_plugin.apply(svc);
 1440   1461   
        self.query_precedence_custom(svc)
 1441   1462   
    }
 1442   1463   
 1443   1464   
    /// Sets the [`QueryPrecedence`](crate::operation_shape::QueryPrecedence) operation.
 1444   1465   
    ///
 1445         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1446         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1466  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1467  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1447   1468   
    ///
 1448   1469   
    /// # Example
 1449   1470   
    ///
 1450   1471   
    /// ```no_run
 1451   1472   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1452   1473   
    ///
 1453   1474   
    /// use rest_json_extras::{input, output, error};
 1454   1475   
    ///
 1455   1476   
    /// async fn handler(input: input::QueryPrecedenceInput) -> Result<output::QueryPrecedenceOutput, error::QueryPrecedenceError> {
 1456   1477   
    ///     todo!()
 1457   1478   
    /// }
 1458   1479   
    ///
 1459   1480   
    /// let config = RestJsonExtrasConfig::builder().build();
 1460   1481   
    /// let svc = ::tower::util::service_fn(handler);
 1461   1482   
    /// let app = RestJsonExtras::builder(config)
 1462   1483   
    ///     .query_precedence_service(svc)
 1463   1484   
    ///     /* Set other handlers */
 1464   1485   
    ///     .build()
 1465   1486   
    ///     .unwrap();
 1466         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1487  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1467   1488   
    /// ```
 1468   1489   
    ///
 1469   1490   
                    pub fn query_precedence_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1470   1491   
                    where
 1471         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::QueryPrecedence, ServiceExtractors>,
        1492  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryPrecedence, ServiceExtractors>,
 1472   1493   
 1473         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1494  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1474   1495   
                            RestJsonExtras<L>,
 1475   1496   
                            crate::operation_shape::QueryPrecedence,
 1476         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::QueryPrecedence, S>
        1497  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryPrecedence, S>
 1477   1498   
                        >,
 1478         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1499  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1479   1500   
                            RestJsonExtras<L>,
 1480   1501   
                            crate::operation_shape::QueryPrecedence,
 1481   1502   
                            ModelPl::Output
 1482   1503   
                        >,
 1483         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1504  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1484   1505   
                            RestJsonExtras<L>,
 1485   1506   
                            crate::operation_shape::QueryPrecedence,
 1486   1507   
                            <
 1487         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1488         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1508  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1509  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1489   1510   
                                    RestJsonExtras<L>,
 1490   1511   
                                    crate::operation_shape::QueryPrecedence,
 1491   1512   
                                    ModelPl::Output
 1492   1513   
                                >
 1493   1514   
                            >::Output
 1494   1515   
                        >,
 1495   1516   
 1496         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1517  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1497   1518   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1498   1519   
 1499   1520   
                    {
 1500         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1501         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1521  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1522  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1502   1523   
        let svc = crate::operation_shape::QueryPrecedence::from_service(service);
 1503   1524   
        let svc = self.model_plugin.apply(svc);
 1504         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1505         -
            .apply(svc);
        1525  +
        let svc =
        1526  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1527  +
                .apply(svc);
 1506   1528   
        let svc = self.http_plugin.apply(svc);
 1507   1529   
        self.query_precedence_custom(svc)
 1508   1530   
    }
 1509   1531   
 1510   1532   
    /// Sets the [`QueryPrecedence`](crate::operation_shape::QueryPrecedence) to a custom [`Service`](tower::Service).
 1511   1533   
    /// not constrained by the Smithy contract.
 1512   1534   
    fn query_precedence_custom<S>(mut self, svc: S) -> Self
 1513   1535   
    where
 1514   1536   
        S: ::tower::Service<
 1515   1537   
                ::http::Request<Body>,
 1516         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1538  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1517   1539   
                Error = ::std::convert::Infallible,
 1518   1540   
            > + Clone
 1519   1541   
            + Send
 1520   1542   
            + 'static,
 1521   1543   
        S::Future: Send + 'static,
 1522   1544   
    {
 1523         -
        self.query_precedence = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1545  +
        self.query_precedence = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1524   1546   
        self
 1525   1547   
    }
 1526   1548   
 1527   1549   
    /// Sets the [`StatusResponse`](crate::operation_shape::StatusResponse) operation.
 1528   1550   
    ///
 1529         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1530         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1551  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1552  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1531   1553   
    ///
 1532   1554   
    /// # Example
 1533   1555   
    ///
 1534   1556   
    /// ```no_run
 1535   1557   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1536   1558   
    ///
 1537   1559   
    /// use rest_json_extras::{input, output, error};
 1538   1560   
    ///
 1539   1561   
    /// async fn handler(input: input::StatusResponseInput) -> Result<output::StatusResponseOutput, error::StatusResponseError> {
 1540   1562   
    ///     todo!()
 1541   1563   
    /// }
 1542   1564   
    ///
 1543   1565   
    /// let config = RestJsonExtrasConfig::builder().build();
 1544   1566   
    /// let app = RestJsonExtras::builder(config)
 1545   1567   
    ///     .status_response(handler)
 1546   1568   
    ///     /* Set other handlers */
 1547   1569   
    ///     .build()
 1548   1570   
    ///     .unwrap();
 1549         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1571  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1550   1572   
    /// ```
 1551   1573   
    ///
 1552   1574   
                    pub fn status_response<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1553   1575   
                    where
 1554         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::StatusResponse, HandlerExtractors>,
        1576  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::StatusResponse, HandlerExtractors>,
 1555   1577   
 1556         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1578  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1557   1579   
                            RestJsonExtras<L>,
 1558   1580   
                            crate::operation_shape::StatusResponse,
 1559         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::StatusResponse, HandlerType>
        1581  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::StatusResponse, HandlerType>
 1560   1582   
                        >,
 1561         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1583  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1562   1584   
                            RestJsonExtras<L>,
 1563   1585   
                            crate::operation_shape::StatusResponse,
 1564   1586   
                            ModelPl::Output
 1565   1587   
                        >,
 1566         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1588  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1567   1589   
                            RestJsonExtras<L>,
 1568   1590   
                            crate::operation_shape::StatusResponse,
 1569   1591   
                            <
 1570         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1571         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1592  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1593  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1572   1594   
                                    RestJsonExtras<L>,
 1573   1595   
                                    crate::operation_shape::StatusResponse,
 1574   1596   
                                    ModelPl::Output
 1575   1597   
                                >
 1576   1598   
                            >::Output
 1577   1599   
                        >,
 1578   1600   
 1579         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1601  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1580   1602   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1581   1603   
 1582   1604   
                    {
 1583         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1584         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1605  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1606  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1585   1607   
        let svc = crate::operation_shape::StatusResponse::from_handler(handler);
 1586   1608   
        let svc = self.model_plugin.apply(svc);
 1587         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1588         -
            .apply(svc);
        1609  +
        let svc =
        1610  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1611  +
                .apply(svc);
 1589   1612   
        let svc = self.http_plugin.apply(svc);
 1590   1613   
        self.status_response_custom(svc)
 1591   1614   
    }
 1592   1615   
 1593   1616   
    /// Sets the [`StatusResponse`](crate::operation_shape::StatusResponse) operation.
 1594   1617   
    ///
 1595         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1596         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1618  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1619  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1597   1620   
    ///
 1598   1621   
    /// # Example
 1599   1622   
    ///
 1600   1623   
    /// ```no_run
 1601   1624   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1602   1625   
    ///
 1603   1626   
    /// use rest_json_extras::{input, output, error};
 1604   1627   
    ///
 1605   1628   
    /// async fn handler(input: input::StatusResponseInput) -> Result<output::StatusResponseOutput, error::StatusResponseError> {
 1606   1629   
    ///     todo!()
 1607   1630   
    /// }
 1608   1631   
    ///
 1609   1632   
    /// let config = RestJsonExtrasConfig::builder().build();
 1610   1633   
    /// let svc = ::tower::util::service_fn(handler);
 1611   1634   
    /// let app = RestJsonExtras::builder(config)
 1612   1635   
    ///     .status_response_service(svc)
 1613   1636   
    ///     /* Set other handlers */
 1614   1637   
    ///     .build()
 1615   1638   
    ///     .unwrap();
 1616         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1639  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1617   1640   
    /// ```
 1618   1641   
    ///
 1619   1642   
                    pub fn status_response_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1620   1643   
                    where
 1621         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::StatusResponse, ServiceExtractors>,
        1644  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::StatusResponse, ServiceExtractors>,
 1622   1645   
 1623         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1646  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1624   1647   
                            RestJsonExtras<L>,
 1625   1648   
                            crate::operation_shape::StatusResponse,
 1626         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::StatusResponse, S>
        1649  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::StatusResponse, S>
 1627   1650   
                        >,
 1628         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1651  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1629   1652   
                            RestJsonExtras<L>,
 1630   1653   
                            crate::operation_shape::StatusResponse,
 1631   1654   
                            ModelPl::Output
 1632   1655   
                        >,
 1633         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1656  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1634   1657   
                            RestJsonExtras<L>,
 1635   1658   
                            crate::operation_shape::StatusResponse,
 1636   1659   
                            <
 1637         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1638         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1660  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1661  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1639   1662   
                                    RestJsonExtras<L>,
 1640   1663   
                                    crate::operation_shape::StatusResponse,
 1641   1664   
                                    ModelPl::Output
 1642   1665   
                                >
 1643   1666   
                            >::Output
 1644   1667   
                        >,
 1645   1668   
 1646         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1669  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1647   1670   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1648   1671   
 1649   1672   
                    {
 1650         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1651         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1673  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1674  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1652   1675   
        let svc = crate::operation_shape::StatusResponse::from_service(service);
 1653   1676   
        let svc = self.model_plugin.apply(svc);
 1654         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1655         -
            .apply(svc);
        1677  +
        let svc =
        1678  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1679  +
                .apply(svc);
 1656   1680   
        let svc = self.http_plugin.apply(svc);
 1657   1681   
        self.status_response_custom(svc)
 1658   1682   
    }
 1659   1683   
 1660   1684   
    /// Sets the [`StatusResponse`](crate::operation_shape::StatusResponse) to a custom [`Service`](tower::Service).
 1661   1685   
    /// not constrained by the Smithy contract.
 1662   1686   
    fn status_response_custom<S>(mut self, svc: S) -> Self
 1663   1687   
    where
 1664   1688   
        S: ::tower::Service<
 1665   1689   
                ::http::Request<Body>,
 1666         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1690  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1667   1691   
                Error = ::std::convert::Infallible,
 1668   1692   
            > + Clone
 1669   1693   
            + Send
 1670   1694   
            + 'static,
 1671   1695   
        S::Future: Send + 'static,
 1672   1696   
    {
 1673         -
        self.status_response = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1697  +
        self.status_response = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1674   1698   
        self
 1675   1699   
    }
 1676   1700   
 1677   1701   
    /// Sets the [`StringPayload`](crate::operation_shape::StringPayload) operation.
 1678   1702   
    ///
 1679         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1680         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1703  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1704  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1681   1705   
    ///
 1682   1706   
    /// # Example
 1683   1707   
    ///
 1684   1708   
    /// ```no_run
 1685   1709   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1686   1710   
    ///
 1687   1711   
    /// use rest_json_extras::{input, output, error};
 1688   1712   
    ///
 1689   1713   
    /// async fn handler(input: input::StringPayloadInput) -> Result<output::StringPayloadOutput, error::StringPayloadError> {
 1690   1714   
    ///     todo!()
 1691   1715   
    /// }
 1692   1716   
    ///
 1693   1717   
    /// let config = RestJsonExtrasConfig::builder().build();
 1694   1718   
    /// let app = RestJsonExtras::builder(config)
 1695   1719   
    ///     .string_payload(handler)
 1696   1720   
    ///     /* Set other handlers */
 1697   1721   
    ///     .build()
 1698   1722   
    ///     .unwrap();
 1699         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1723  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1700   1724   
    /// ```
 1701   1725   
    ///
 1702   1726   
                    pub fn string_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1703   1727   
                    where
 1704         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::StringPayload, HandlerExtractors>,
        1728  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::StringPayload, HandlerExtractors>,
 1705   1729   
 1706         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1730  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1707   1731   
                            RestJsonExtras<L>,
 1708   1732   
                            crate::operation_shape::StringPayload,
 1709         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::StringPayload, HandlerType>
        1733  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::StringPayload, HandlerType>
 1710   1734   
                        >,
 1711         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1735  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1712   1736   
                            RestJsonExtras<L>,
 1713   1737   
                            crate::operation_shape::StringPayload,
 1714   1738   
                            ModelPl::Output
 1715   1739   
                        >,
 1716         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1740  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1717   1741   
                            RestJsonExtras<L>,
 1718   1742   
                            crate::operation_shape::StringPayload,
 1719   1743   
                            <
 1720         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1721         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1744  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1745  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1722   1746   
                                    RestJsonExtras<L>,
 1723   1747   
                                    crate::operation_shape::StringPayload,
 1724   1748   
                                    ModelPl::Output
 1725   1749   
                                >
 1726   1750   
                            >::Output
 1727   1751   
                        >,
 1728   1752   
 1729         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1753  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1730   1754   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1731   1755   
 1732   1756   
                    {
 1733         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1734         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1757  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1758  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1735   1759   
        let svc = crate::operation_shape::StringPayload::from_handler(handler);
 1736   1760   
        let svc = self.model_plugin.apply(svc);
 1737         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1738         -
            .apply(svc);
        1761  +
        let svc =
        1762  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1763  +
                .apply(svc);
 1739   1764   
        let svc = self.http_plugin.apply(svc);
 1740   1765   
        self.string_payload_custom(svc)
 1741   1766   
    }
 1742   1767   
 1743   1768   
    /// Sets the [`StringPayload`](crate::operation_shape::StringPayload) operation.
 1744   1769   
    ///
 1745         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1746         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1770  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1771  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1747   1772   
    ///
 1748   1773   
    /// # Example
 1749   1774   
    ///
 1750   1775   
    /// ```no_run
 1751   1776   
    /// use rest_json_extras::{RestJsonExtras, RestJsonExtrasConfig};
 1752   1777   
    ///
 1753   1778   
    /// use rest_json_extras::{input, output, error};
 1754   1779   
    ///
 1755   1780   
    /// async fn handler(input: input::StringPayloadInput) -> Result<output::StringPayloadOutput, error::StringPayloadError> {
 1756   1781   
    ///     todo!()
 1757   1782   
    /// }
 1758   1783   
    ///
 1759   1784   
    /// let config = RestJsonExtrasConfig::builder().build();
 1760   1785   
    /// let svc = ::tower::util::service_fn(handler);
 1761   1786   
    /// let app = RestJsonExtras::builder(config)
 1762   1787   
    ///     .string_payload_service(svc)
 1763   1788   
    ///     /* Set other handlers */
 1764   1789   
    ///     .build()
 1765   1790   
    ///     .unwrap();
 1766         -
    /// # let app: RestJsonExtras<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::rest::router::RestRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1791  +
    /// # let app: RestJsonExtras<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
 1767   1792   
    /// ```
 1768   1793   
    ///
 1769   1794   
                    pub fn string_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1770   1795   
                    where
 1771         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::StringPayload, ServiceExtractors>,
        1796  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::StringPayload, ServiceExtractors>,
 1772   1797   
 1773         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1798  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1774   1799   
                            RestJsonExtras<L>,
 1775   1800   
                            crate::operation_shape::StringPayload,
 1776         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::StringPayload, S>
        1801  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::StringPayload, S>
 1777   1802   
                        >,
 1778         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1803  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1779   1804   
                            RestJsonExtras<L>,
 1780   1805   
                            crate::operation_shape::StringPayload,
 1781   1806   
                            ModelPl::Output
 1782   1807   
                        >,
 1783         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1808  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1784   1809   
                            RestJsonExtras<L>,
 1785   1810   
                            crate::operation_shape::StringPayload,
 1786   1811   
                            <
 1787         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1788         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1812  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1813  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1789   1814   
                                    RestJsonExtras<L>,
 1790   1815   
                                    crate::operation_shape::StringPayload,
 1791   1816   
                                    ModelPl::Output
 1792   1817   
                                >
 1793   1818   
                            >::Output
 1794   1819   
                        >,
 1795   1820   
 1796         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1821  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1797   1822   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1798   1823   
 1799   1824   
                    {
 1800         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1801         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1825  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1826  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1802   1827   
        let svc = crate::operation_shape::StringPayload::from_service(service);
 1803   1828   
        let svc = self.model_plugin.apply(svc);
 1804         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1805         -
            .apply(svc);
        1829  +
        let svc =
        1830  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1831  +
                .apply(svc);
 1806   1832   
        let svc = self.http_plugin.apply(svc);
 1807   1833   
        self.string_payload_custom(svc)
 1808   1834   
    }
 1809   1835   
 1810   1836   
    /// Sets the [`StringPayload`](crate::operation_shape::StringPayload) to a custom [`Service`](tower::Service).
 1811   1837   
    /// not constrained by the Smithy contract.
 1812   1838   
    fn string_payload_custom<S>(mut self, svc: S) -> Self
 1813   1839   
    where
 1814   1840   
        S: ::tower::Service<
 1815   1841   
                ::http::Request<Body>,
 1816         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1842  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1817   1843   
                Error = ::std::convert::Infallible,
 1818   1844   
            > + Clone
 1819   1845   
            + Send
 1820   1846   
            + 'static,
 1821   1847   
        S::Future: Send + 'static,
 1822   1848   
    {
 1823         -
        self.string_payload = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1849  +
        self.string_payload = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1824   1850   
        self
 1825   1851   
    }
 1826   1852   
}
 1827   1853   
 1828   1854   
impl<Body, L, HttpPl, ModelPl> RestJsonExtrasBuilder<Body, L, HttpPl, ModelPl> {
 1829   1855   
    /// Constructs a [`RestJsonExtras`] from the arguments provided to the builder.
 1830   1856   
    ///
 1831   1857   
    /// Forgetting to register a handler for one or more operations will result in an error.
 1832   1858   
    ///
 1833   1859   
    /// Check out [`RestJsonExtrasBuilder::build_unchecked`] if you'd prefer the service to return status code 500 when an
 1834   1860   
    /// unspecified route is requested.
 1835   1861   
    pub fn build(
 1836   1862   
        self,
 1837   1863   
    ) -> ::std::result::Result<
 1838   1864   
        RestJsonExtras<
 1839         -
            ::aws_smithy_http_server::routing::RoutingService<
 1840         -
                ::aws_smithy_http_server::protocol::rest::router::RestRouter<L::Service>,
 1841         -
                ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
        1865  +
            ::aws_smithy_legacy_http_server::routing::RoutingService<
        1866  +
                ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<L::Service>,
        1867  +
                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
 1842   1868   
            >,
 1843   1869   
        >,
 1844   1870   
        MissingOperationsError,
 1845   1871   
    >
 1846   1872   
    where
 1847         -
        L: ::tower::Layer<::aws_smithy_http_server::routing::Route<Body>>,
        1873  +
        L: ::tower::Layer<::aws_smithy_legacy_http_server::routing::Route<Body>>,
 1848   1874   
    {
 1849   1875   
        let router = {
 1850         -
            use ::aws_smithy_http_server::operation::OperationShape;
        1876  +
            use ::aws_smithy_legacy_http_server::operation::OperationShape;
 1851   1877   
            let mut missing_operation_names = std::collections::HashMap::new();
 1852   1878   
            if self.case_insensitive_error_operation.is_none() {
 1853   1879   
                missing_operation_names.insert(
 1854   1880   
                    crate::operation_shape::CaseInsensitiveErrorOperation::ID,
 1855   1881   
                    ".case_insensitive_error_operation()",
 1856   1882   
                );
 1857   1883   
            }
 1858   1884   
            if self.empty_struct_with_content_on_wire_op.is_none() {
 1859   1885   
                missing_operation_names.insert(
 1860   1886   
                    crate::operation_shape::EmptyStructWithContentOnWireOp::ID,
@@ -1899,1925 +2846,2892 @@
 1919   1945   
                    ".string_payload()",
 1920   1946   
                );
 1921   1947   
            }
 1922   1948   
            if !missing_operation_names.is_empty() {
 1923   1949   
                return Err(MissingOperationsError {
 1924   1950   
                    operation_names2setter_methods: missing_operation_names,
 1925   1951   
                });
 1926   1952   
            }
 1927   1953   
            let unexpected_error_msg = "this should never panic since we are supposed to check beforehand that a handler has been registered for this operation; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues";
 1928   1954   
 1929         -
            ::aws_smithy_http_server::protocol::rest::router::RestRouter::from_iter([
        1955  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter::from_iter([
 1930   1956   
                (
 1931   1957   
                    request_specs::case_insensitive_error_operation(),
 1932   1958   
                    self.case_insensitive_error_operation
 1933   1959   
                        .expect(unexpected_error_msg),
 1934   1960   
                ),
 1935   1961   
                (
 1936   1962   
                    request_specs::empty_struct_with_content_on_wire_op(),
 1937   1963   
                    self.empty_struct_with_content_on_wire_op
 1938   1964   
                        .expect(unexpected_error_msg),
 1939   1965   
                ),
 1940   1966   
                (
 1941   1967   
                    request_specs::enum_query(),
 1942   1968   
                    self.enum_query.expect(unexpected_error_msg),
 1943   1969   
                ),
 1944   1970   
                (
 1945   1971   
                    request_specs::escaped_string_values(),
 1946   1972   
                    self.escaped_string_values.expect(unexpected_error_msg),
 1947   1973   
                ),
 1948   1974   
                (
 1949   1975   
                    request_specs::http_query_params_only_operation(),
 1950   1976   
                    self.http_query_params_only_operation
 1951   1977   
                        .expect(unexpected_error_msg),
 1952   1978   
                ),
 1953   1979   
                (
 1954   1980   
                    request_specs::map_with_enum_key_op(),
 1955   1981   
                    self.map_with_enum_key_op.expect(unexpected_error_msg),
 1956   1982   
                ),
 1957   1983   
                (
 1958   1984   
                    request_specs::null_in_non_sparse(),
 1959   1985   
                    self.null_in_non_sparse.expect(unexpected_error_msg),
 1960   1986   
                ),
 1961   1987   
                (
 1962   1988   
                    request_specs::primitive_int_header(),
 1963   1989   
                    self.primitive_int_header.expect(unexpected_error_msg),
 1964   1990   
                ),
 1965   1991   
                (
 1966   1992   
                    request_specs::primitive_int_op(),
 1967   1993   
                    self.primitive_int_op.expect(unexpected_error_msg),
 1968   1994   
                ),
 1969   1995   
                (
 1970   1996   
                    request_specs::query_precedence(),
 1971   1997   
                    self.query_precedence.expect(unexpected_error_msg),
 1972   1998   
                ),
 1973   1999   
                (
 1974   2000   
                    request_specs::status_response(),
 1975   2001   
                    self.status_response.expect(unexpected_error_msg),
 1976   2002   
                ),
 1977   2003   
                (
 1978   2004   
                    request_specs::string_payload(),
 1979   2005   
                    self.string_payload.expect(unexpected_error_msg),
 1980   2006   
                ),
 1981   2007   
            ])
 1982   2008   
        };
 1983         -
        let svc = ::aws_smithy_http_server::routing::RoutingService::new(router);
        2009  +
        let svc = ::aws_smithy_legacy_http_server::routing::RoutingService::new(router);
 1984   2010   
        let svc = svc.map(|s| s.layer(self.layer));
 1985   2011   
        Ok(RestJsonExtras { svc })
 1986   2012   
    }
 1987   2013   
 1988   2014   
    /// Constructs a [`RestJsonExtras`] from the arguments provided to the builder.
 1989   2015   
    /// Operations without a handler default to returning 500 Internal Server Error to the caller.
 1990   2016   
    ///
 1991   2017   
    /// Check out [`RestJsonExtrasBuilder::build`] if you'd prefer the builder to fail if one or more operations do
 1992   2018   
    /// not have a registered handler.
 1993   2019   
    pub fn build_unchecked(self) -> RestJsonExtras<L::Service>
 1994   2020   
    where
 1995   2021   
        Body: Send + 'static,
 1996   2022   
        L: ::tower::Layer<
 1997         -
            ::aws_smithy_http_server::routing::RoutingService<
 1998         -
                ::aws_smithy_http_server::protocol::rest::router::RestRouter<
 1999         -
                    ::aws_smithy_http_server::routing::Route<Body>,
        2023  +
            ::aws_smithy_legacy_http_server::routing::RoutingService<
        2024  +
                ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
        2025  +
                    ::aws_smithy_legacy_http_server::routing::Route<Body>,
 2000   2026   
                >,
 2001         -
                ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
        2027  +
                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
 2002   2028   
            >,
 2003   2029   
        >,
 2004   2030   
    {
 2005         -
        let router = ::aws_smithy_http_server::protocol::rest::router::RestRouter::from_iter([
 2006         -
            (
 2007         -
                request_specs::case_insensitive_error_operation(),
 2008         -
                self.case_insensitive_error_operation.unwrap_or_else(|| {
 2009         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2010         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2011         -
                    >::default();
 2012         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2013         -
                }),
 2014         -
            ),
 2015         -
            (
 2016         -
                request_specs::empty_struct_with_content_on_wire_op(),
 2017         -
                self.empty_struct_with_content_on_wire_op
 2018         -
                    .unwrap_or_else(|| {
 2019         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2020         -
                            ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
        2031  +
        let router =
        2032  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter::from_iter([
        2033  +
                (
        2034  +
                    request_specs::case_insensitive_error_operation(),
        2035  +
                    self.case_insensitive_error_operation.unwrap_or_else(|| {
        2036  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2037  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
 2021   2038   
                        >::default();
 2022         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
        2039  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
 2023   2040   
                    }),
 2024         -
            ),
 2025         -
            (
 2026         -
                request_specs::enum_query(),
 2027         -
                self.enum_query.unwrap_or_else(|| {
 2028         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2029         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2030         -
                    >::default();
 2031         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2032         -
                }),
 2033         -
            ),
 2034         -
            (
 2035         -
                request_specs::escaped_string_values(),
 2036         -
                self.escaped_string_values.unwrap_or_else(|| {
 2037         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2038         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2039         -
                    >::default();
 2040         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2041         -
                }),
 2042         -
            ),
 2043         -
            (
 2044         -
                request_specs::http_query_params_only_operation(),
 2045         -
                self.http_query_params_only_operation.unwrap_or_else(|| {
 2046         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2047         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2048         -
                    >::default();
 2049         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2050         -
                }),
 2051         -
            ),
 2052         -
            (
 2053         -
                request_specs::map_with_enum_key_op(),
 2054         -
                self.map_with_enum_key_op.unwrap_or_else(|| {
 2055         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2056         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2057         -
                    >::default();
 2058         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2059         -
                }),
 2060         -
            ),
 2061         -
            (
 2062         -
                request_specs::null_in_non_sparse(),
 2063         -
                self.null_in_non_sparse.unwrap_or_else(|| {
 2064         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2065         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2066         -
                    >::default();
 2067         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2068         -
                }),
 2069         -
            ),
 2070         -
            (
 2071         -
                request_specs::primitive_int_header(),
 2072         -
                self.primitive_int_header.unwrap_or_else(|| {
 2073         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2074         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2075         -
                    >::default();
 2076         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2077         -
                }),
 2078         -
            ),
 2079         -
            (
 2080         -
                request_specs::primitive_int_op(),
 2081         -
                self.primitive_int_op.unwrap_or_else(|| {
 2082         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2083         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2084         -
                    >::default();
 2085         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2086         -
                }),
 2087         -
            ),
 2088         -
            (
 2089         -
                request_specs::query_precedence(),
 2090         -
                self.query_precedence.unwrap_or_else(|| {
 2091         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2092         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2093         -
                    >::default();
 2094         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2095         -
                }),
 2096         -
            ),
 2097         -
            (
 2098         -
                request_specs::status_response(),
 2099         -
                self.status_response.unwrap_or_else(|| {
 2100         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2101         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2102         -
                    >::default();
 2103         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2104         -
                }),
 2105         -
            ),
 2106         -
            (
 2107         -
                request_specs::string_payload(),
 2108         -
                self.string_payload.unwrap_or_else(|| {
 2109         -
                    let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2110         -
                        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
 2111         -
                    >::default();
 2112         -
                    ::aws_smithy_http_server::routing::Route::new(svc)
 2113         -
                }),
 2114         -
            ),
 2115         -
        ]);
        2041  +
                ),
        2042  +
                (
        2043  +
                    request_specs::empty_struct_with_content_on_wire_op(),
        2044  +
                    self.empty_struct_with_content_on_wire_op
        2045  +
                        .unwrap_or_else(|| {
        2046  +
                            let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2047  +
                                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2048  +
                            >::default();
        2049  +
                            ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2050  +
                        }),
        2051  +
                ),
        2052  +
                (
        2053  +
                    request_specs::enum_query(),
        2054  +
                    self.enum_query.unwrap_or_else(|| {
        2055  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2056  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2057  +
                        >::default();
        2058  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2059  +
                    }),
        2060  +
                ),
        2061  +
                (
        2062  +
                    request_specs::escaped_string_values(),
        2063  +
                    self.escaped_string_values.unwrap_or_else(|| {
        2064  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2065  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2066  +
                        >::default();
        2067  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2068  +
                    }),
        2069  +
                ),
        2070  +
                (
        2071  +
                    request_specs::http_query_params_only_operation(),
        2072  +
                    self.http_query_params_only_operation.unwrap_or_else(|| {
        2073  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2074  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2075  +
                        >::default();
        2076  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2077  +
                    }),
        2078  +
                ),
        2079  +
                (
        2080  +
                    request_specs::map_with_enum_key_op(),
        2081  +
                    self.map_with_enum_key_op.unwrap_or_else(|| {
        2082  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2083  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2084  +
                        >::default();
        2085  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2086  +
                    }),
        2087  +
                ),
        2088  +
                (
        2089  +
                    request_specs::null_in_non_sparse(),
        2090  +
                    self.null_in_non_sparse.unwrap_or_else(|| {
        2091  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2092  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2093  +
                        >::default();
        2094  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2095  +
                    }),
        2096  +
                ),
        2097  +
                (
        2098  +
                    request_specs::primitive_int_header(),
        2099  +
                    self.primitive_int_header.unwrap_or_else(|| {
        2100  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2101  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2102  +
                        >::default();
        2103  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2104  +
                    }),
        2105  +
                ),
        2106  +
                (
        2107  +
                    request_specs::primitive_int_op(),
        2108  +
                    self.primitive_int_op.unwrap_or_else(|| {
        2109  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2110  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2111  +
                        >::default();
        2112  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2113  +
                    }),
        2114  +
                ),
        2115  +
                (
        2116  +
                    request_specs::query_precedence(),
        2117  +
                    self.query_precedence.unwrap_or_else(|| {
        2118  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2119  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2120  +
                        >::default();
        2121  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2122  +
                    }),
        2123  +
                ),
        2124  +
                (
        2125  +
                    request_specs::status_response(),
        2126  +
                    self.status_response.unwrap_or_else(|| {
        2127  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2128  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2129  +
                        >::default();
        2130  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2131  +
                    }),
        2132  +
                ),
        2133  +
                (
        2134  +
                    request_specs::string_payload(),
        2135  +
                    self.string_payload.unwrap_or_else(|| {
        2136  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
        2137  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        2138  +
                        >::default();
        2139  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2140  +
                    }),
        2141  +
                ),
        2142  +
            ]);
 2116   2143   
        let svc = self
 2117   2144   
            .layer
 2118         -
            .layer(::aws_smithy_http_server::routing::RoutingService::new(
 2119         -
                router,
 2120         -
            ));
        2145  +
            .layer(::aws_smithy_legacy_http_server::routing::RoutingService::new(router));
 2121   2146   
        RestJsonExtras { svc }
 2122   2147   
    }
 2123   2148   
}
 2124   2149   
 2125   2150   
/// The error encountered when calling the [`RestJsonExtrasBuilder::build`] method if one or more operation handlers are not
 2126   2151   
/// specified.
 2127   2152   
#[derive(Debug)]
 2128   2153   
pub struct MissingOperationsError {
 2129   2154   
    operation_names2setter_methods:
 2130         -
        std::collections::HashMap<::aws_smithy_http_server::shape_id::ShapeId, &'static str>,
        2155  +
        std::collections::HashMap<::aws_smithy_legacy_http_server::shape_id::ShapeId, &'static str>,
 2131   2156   
}
 2132   2157   
 2133   2158   
impl std::fmt::Display for MissingOperationsError {
 2134   2159   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2135   2160   
        write!(
 2136   2161   
            f,
 2137   2162   
            "You must specify a handler for all operations attached to `RestJsonExtras`.\n\
 2138   2163   
                            We are missing handlers for the following operations:\n",
 2139   2164   
        )?;
 2140   2165   
        for operation_name in self.operation_names2setter_methods.keys() {
 2141   2166   
            writeln!(f, "- {}", operation_name.absolute())?;
 2142   2167   
        }
 2143   2168   
 2144   2169   
        writeln!(f, "\nUse the dedicated methods on `RestJsonExtrasBuilder` to register the missing handlers:")?;
 2145   2170   
        for setter_name in self.operation_names2setter_methods.values() {
 2146   2171   
            writeln!(f, "- {}", setter_name)?;
 2147   2172   
        }
 2148   2173   
        Ok(())
 2149   2174   
    }
 2150   2175   
}
 2151   2176   
 2152   2177   
impl std::error::Error for MissingOperationsError {}
 2153   2178   
 2154   2179   
mod request_specs {
 2155   2180   
    pub(super) fn case_insensitive_error_operation(
 2156         -
    ) -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2157         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2181  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2182  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2158   2183   
                    ::http::Method::POST,
 2159         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2160         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2161         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2162         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("error-sensitive")),
        2184  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2185  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2186  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2187  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("error-sensitive")),
 2163   2188   
]),
 2164         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2189  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2165   2190   
])
 2166   2191   
                        )
 2167   2192   
                    ),
 2168   2193   
                )
 2169   2194   
    }
 2170   2195   
    pub(super) fn empty_struct_with_content_on_wire_op(
 2171         -
    ) -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2172         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2196  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2197  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2173   2198   
                    ::http::Method::GET,
 2174         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2175         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2176         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2177         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("empty-struct-with-content-on-wire-op")),
        2199  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2200  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2201  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2202  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("empty-struct-with-content-on-wire-op")),
 2178   2203   
]),
 2179         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2204  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2180   2205   
])
 2181   2206   
                        )
 2182   2207   
                    ),
 2183   2208   
                )
 2184   2209   
    }
 2185         -
    pub(super) fn enum_query() -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2186         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2210  +
    pub(super) fn enum_query() -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec
        2211  +
    {
        2212  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2187   2213   
                    ::http::Method::GET,
 2188         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2189         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2190         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2191         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("foo")),
 2192         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Label,
        2214  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2215  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2216  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2217  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("foo")),
        2218  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
 2193   2219   
]),
 2194         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2220  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2195   2221   
])
 2196   2222   
                        )
 2197   2223   
                    ),
 2198   2224   
                )
 2199   2225   
    }
 2200   2226   
    pub(super) fn escaped_string_values(
 2201         -
    ) -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2202         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2227  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2228  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2203   2229   
                    ::http::Method::POST,
 2204         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2205         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2206         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2207         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("escaped-string-values")),
        2230  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2231  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2232  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2233  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("escaped-string-values")),
 2208   2234   
]),
 2209         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2235  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2210   2236   
])
 2211   2237   
                        )
 2212   2238   
                    ),
 2213   2239   
                )
 2214   2240   
    }
 2215   2241   
    pub(super) fn http_query_params_only_operation(
 2216         -
    ) -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2217         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2242  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2243  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2218   2244   
                    ::http::Method::GET,
 2219         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2220         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2221         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2222         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("http-query-params-only")),
        2245  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2246  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2247  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2248  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("http-query-params-only")),
 2223   2249   
]),
 2224         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2250  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2225   2251   
])
 2226   2252   
                        )
 2227   2253   
                    ),
 2228   2254   
                )
 2229   2255   
    }
 2230   2256   
    pub(super) fn map_with_enum_key_op(
 2231         -
    ) -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2232         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2257  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2258  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2233   2259   
                    ::http::Method::POST,
 2234         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2235         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2236         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2237         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("map-with-enum-key")),
        2260  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2261  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2262  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2263  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("map-with-enum-key")),
 2238   2264   
]),
 2239         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2265  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2240   2266   
])
 2241   2267   
                        )
 2242   2268   
                    ),
 2243   2269   
                )
 2244   2270   
    }
 2245   2271   
    pub(super) fn null_in_non_sparse(
 2246         -
    ) -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2247         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2272  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2273  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2248   2274   
                    ::http::Method::POST,
 2249         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2250         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2251         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2252         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("null-in-non-sparse")),
        2275  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2276  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2277  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2278  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("null-in-non-sparse")),
 2253   2279   
]),
 2254         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2280  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2255   2281   
])
 2256   2282   
                        )
 2257   2283   
                    ),
 2258   2284   
                )
 2259   2285   
    }
 2260   2286   
    pub(super) fn primitive_int_header(
 2261         -
    ) -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2262         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2287  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2288  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2263   2289   
                    ::http::Method::POST,
 2264         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2265         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2266         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2267         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("primitive")),
        2290  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2291  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2292  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2293  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("primitive")),
 2268   2294   
]),
 2269         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2295  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2270   2296   
])
 2271   2297   
                        )
 2272   2298   
                    ),
 2273   2299   
                )
 2274   2300   
    }
 2275         -
    pub(super) fn primitive_int_op() -> ::aws_smithy_http_server::routing::request_spec::RequestSpec
 2276         -
    {
 2277         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2301  +
    pub(super) fn primitive_int_op(
        2302  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2303  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2278   2304   
                    ::http::Method::POST,
 2279         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2280         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2281         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2282         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("primitive-document")),
        2305  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2306  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2307  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2308  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("primitive-document")),
 2283   2309   
]),
 2284         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2310  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2285   2311   
])
 2286   2312   
                        )
 2287   2313   
                    ),
 2288   2314   
                )
 2289   2315   
    }
 2290         -
    pub(super) fn query_precedence() -> ::aws_smithy_http_server::routing::request_spec::RequestSpec
 2291         -
    {
 2292         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2316  +
    pub(super) fn query_precedence(
        2317  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2318  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2293   2319   
                    ::http::Method::POST,
 2294         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2295         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2296         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2297         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("Precedence")),
        2320  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2321  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2322  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2323  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("Precedence")),
 2298   2324   
]),
 2299         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2325  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2300   2326   
])
 2301   2327   
                        )
 2302   2328   
                    ),
 2303   2329   
                )
 2304   2330   
    }
 2305         -
    pub(super) fn status_response() -> ::aws_smithy_http_server::routing::request_spec::RequestSpec
 2306         -
    {
 2307         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2331  +
    pub(super) fn status_response(
        2332  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2333  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2308   2334   
                    ::http::Method::POST,
 2309         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2310         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2311         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2335  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2336  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2337  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2312   2338   
]),
 2313         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2339  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2314   2340   
])
 2315   2341   
                        )
 2316   2342   
                    ),
 2317   2343   
                )
 2318   2344   
    }
 2319         -
    pub(super) fn string_payload() -> ::aws_smithy_http_server::routing::request_spec::RequestSpec {
 2320         -
        ::aws_smithy_http_server::routing::request_spec::RequestSpec::new(
        2345  +
    pub(super) fn string_payload(
        2346  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        2347  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
 2321   2348   
                    ::http::Method::POST,
 2322         -
                    ::aws_smithy_http_server::routing::request_spec::UriSpec::new(
 2323         -
                        ::aws_smithy_http_server::routing::request_spec::PathAndQuerySpec::new(
 2324         -
                            ::aws_smithy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
 2325         -
    ::aws_smithy_http_server::routing::request_spec::PathSegment::Literal(String::from("StringPayload")),
        2349  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        2350  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        2351  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        2352  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("StringPayload")),
 2326   2353   
]),
 2327         -
                            ::aws_smithy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        2354  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
 2328   2355   
])
 2329   2356   
                        )
 2330   2357   
                    ),
 2331   2358   
                )
 2332   2359   
    }
 2333   2360   
}
 2334   2361   
 2335   2362   
/// A REST JSON service that sends JSON requests and responses.
 2336   2363   
///
 2337   2364   
/// See the [root](crate) documentation for more information.
 2338   2365   
#[derive(Clone)]
 2339   2366   
pub struct RestJsonExtras<
 2340         -
    S = ::aws_smithy_http_server::routing::RoutingService<
 2341         -
        ::aws_smithy_http_server::protocol::rest::router::RestRouter<
 2342         -
            ::aws_smithy_http_server::routing::Route<::aws_smithy_http_server::body::BoxBody>,
        2367  +
    S = ::aws_smithy_legacy_http_server::routing::RoutingService<
        2368  +
        ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
        2369  +
            ::aws_smithy_legacy_http_server::routing::Route<
        2370  +
                ::aws_smithy_legacy_http_server::body::BoxBody,
        2371  +
            >,
 2343   2372   
        >,
 2344         -
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
        2373  +
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
 2345   2374   
    >,
 2346   2375   
> {
 2347   2376   
    // This is the router wrapped by layers.
 2348   2377   
    svc: S,
 2349   2378   
}
 2350   2379   
 2351   2380   
impl RestJsonExtras<()> {
 2352   2381   
    /// Constructs a builder for [`RestJsonExtras`].
 2353   2382   
    /// You must specify a configuration object holding any plugins and layers that should be applied
 2354   2383   
    /// to the operations in this service.
 2355   2384   
    pub fn builder<
 2356   2385   
        Body,
 2357   2386   
        L,
 2358         -
        HttpPl: ::aws_smithy_http_server::plugin::HttpMarker,
 2359         -
        ModelPl: ::aws_smithy_http_server::plugin::ModelMarker,
        2387  +
        HttpPl: ::aws_smithy_legacy_http_server::plugin::HttpMarker,
        2388  +
        ModelPl: ::aws_smithy_legacy_http_server::plugin::ModelMarker,
 2360   2389   
    >(
 2361   2390   
        config: RestJsonExtrasConfig<L, HttpPl, ModelPl>,
 2362   2391   
    ) -> RestJsonExtrasBuilder<Body, L, HttpPl, ModelPl> {
 2363   2392   
        RestJsonExtrasBuilder {
 2364   2393   
            case_insensitive_error_operation: None,
 2365   2394   
            empty_struct_with_content_on_wire_op: None,
 2366   2395   
            enum_query: None,
 2367   2396   
            escaped_string_values: None,
 2368   2397   
            http_query_params_only_operation: None,
 2369   2398   
            map_with_enum_key_op: None,
 2370   2399   
            null_in_non_sparse: None,
 2371   2400   
            primitive_int_header: None,
 2372   2401   
            primitive_int_op: None,
 2373   2402   
            query_precedence: None,
 2374   2403   
            status_response: None,
 2375   2404   
            string_payload: None,
 2376   2405   
            layer: config.layers,
 2377   2406   
            http_plugin: config.http_plugins,
 2378   2407   
            model_plugin: config.model_plugins,
 2379   2408   
        }
 2380   2409   
    }
 2381   2410   
 2382   2411   
    /// Constructs a builder for [`RestJsonExtras`].
 2383   2412   
    /// You must specify what plugins should be applied to the operations in this service.
 2384   2413   
    ///
 2385   2414   
    /// Use [`RestJsonExtras::builder_without_plugins`] if you don't need to apply plugins.
 2386   2415   
    ///
 2387         -
    /// Check out [`HttpPlugins`](::aws_smithy_http_server::plugin::HttpPlugins) and
 2388         -
    /// [`ModelPlugins`](::aws_smithy_http_server::plugin::ModelPlugins) if you need to apply
        2416  +
    /// Check out [`HttpPlugins`](::aws_smithy_legacy_http_server::plugin::HttpPlugins) and
        2417  +
    /// [`ModelPlugins`](::aws_smithy_legacy_http_server::plugin::ModelPlugins) if you need to apply
 2389   2418   
    /// multiple plugins.
 2390   2419   
    #[deprecated(
 2391   2420   
        since = "0.57.0",
 2392   2421   
        note = "please use the `builder` constructor and register plugins on the `RestJsonExtrasConfig` object instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
 2393   2422   
    )]
 2394   2423   
    pub fn builder_with_plugins<
 2395   2424   
        Body,
 2396         -
        HttpPl: ::aws_smithy_http_server::plugin::HttpMarker,
 2397         -
        ModelPl: ::aws_smithy_http_server::plugin::ModelMarker,
        2425  +
        HttpPl: ::aws_smithy_legacy_http_server::plugin::HttpMarker,
        2426  +
        ModelPl: ::aws_smithy_legacy_http_server::plugin::ModelMarker,
 2398   2427   
    >(
 2399   2428   
        http_plugin: HttpPl,
 2400   2429   
        model_plugin: ModelPl,
 2401   2430   
    ) -> RestJsonExtrasBuilder<Body, ::tower::layer::util::Identity, HttpPl, ModelPl> {
 2402   2431   
        RestJsonExtrasBuilder {
 2403   2432   
            case_insensitive_error_operation: None,
 2404   2433   
            empty_struct_with_content_on_wire_op: None,
 2405   2434   
            enum_query: None,
 2406   2435   
            escaped_string_values: None,
 2407   2436   
            http_query_params_only_operation: None,
 2408   2437   
            map_with_enum_key_op: None,
 2409   2438   
            null_in_non_sparse: None,
 2410   2439   
            primitive_int_header: None,
 2411   2440   
            primitive_int_op: None,
 2412   2441   
            query_precedence: None,
 2413   2442   
            status_response: None,
 2414   2443   
            string_payload: None,
 2415   2444   
            layer: ::tower::layer::util::Identity::new(),
 2416   2445   
            http_plugin,
 2417   2446   
            model_plugin,
 2418   2447   
        }
 2419   2448   
    }
 2420   2449   
 2421   2450   
    /// Constructs a builder for [`RestJsonExtras`].
 2422   2451   
    ///
 2423   2452   
    /// Use [`RestJsonExtras::builder_with_plugins`] if you need to specify plugins.
 2424   2453   
    #[deprecated(
 2425   2454   
        since = "0.57.0",
 2426   2455   
        note = "please use the `builder` constructor instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
 2427   2456   
    )]
 2428   2457   
    pub fn builder_without_plugins<Body>() -> RestJsonExtrasBuilder<
 2429   2458   
        Body,
 2430   2459   
        ::tower::layer::util::Identity,
 2431         -
        ::aws_smithy_http_server::plugin::IdentityPlugin,
 2432         -
        ::aws_smithy_http_server::plugin::IdentityPlugin,
        2460  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        2461  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
 2433   2462   
    > {
 2434   2463   
        Self::builder_with_plugins(
 2435         -
            ::aws_smithy_http_server::plugin::IdentityPlugin,
 2436         -
            ::aws_smithy_http_server::plugin::IdentityPlugin,
        2464  +
            ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        2465  +
            ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
 2437   2466   
        )
 2438   2467   
    }
 2439   2468   
}
 2440   2469   
 2441   2470   
impl<S> RestJsonExtras<S> {
 2442   2471   
    /// Converts [`RestJsonExtras`] into a [`MakeService`](tower::make::MakeService).
 2443         -
    pub fn into_make_service(self) -> ::aws_smithy_http_server::routing::IntoMakeService<Self> {
 2444         -
        ::aws_smithy_http_server::routing::IntoMakeService::new(self)
        2472  +
    pub fn into_make_service(
        2473  +
        self,
        2474  +
    ) -> ::aws_smithy_legacy_http_server::routing::IntoMakeService<Self> {
        2475  +
        ::aws_smithy_legacy_http_server::routing::IntoMakeService::new(self)
 2445   2476   
    }
 2446   2477   
 2447         -
    /// Converts [`RestJsonExtras`] into a [`MakeService`](tower::make::MakeService) with [`ConnectInfo`](::aws_smithy_http_server::request::connect_info::ConnectInfo).
        2478  +
    /// Converts [`RestJsonExtras`] into a [`MakeService`](tower::make::MakeService) with [`ConnectInfo`](::aws_smithy_legacy_http_server::request::connect_info::ConnectInfo).
 2448   2479   
    pub fn into_make_service_with_connect_info<C>(
 2449   2480   
        self,
 2450         -
    ) -> ::aws_smithy_http_server::routing::IntoMakeServiceWithConnectInfo<Self, C> {
 2451         -
        ::aws_smithy_http_server::routing::IntoMakeServiceWithConnectInfo::new(self)
        2481  +
    ) -> ::aws_smithy_legacy_http_server::routing::IntoMakeServiceWithConnectInfo<Self, C> {
        2482  +
        ::aws_smithy_legacy_http_server::routing::IntoMakeServiceWithConnectInfo::new(self)
 2452   2483   
    }
 2453   2484   
}
 2454   2485   
 2455   2486   
impl<S>
 2456   2487   
    RestJsonExtras<
 2457         -
        ::aws_smithy_http_server::routing::RoutingService<
 2458         -
            ::aws_smithy_http_server::protocol::rest::router::RestRouter<S>,
 2459         -
            ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
        2488  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        2489  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<S>,
        2490  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
 2460   2491   
        >,
 2461   2492   
    >
 2462   2493   
{
 2463   2494   
    /// Applies a [`Layer`](::tower::Layer) uniformly to all routes.
 2464   2495   
    #[deprecated(
 2465   2496   
        since = "0.57.0",
 2466   2497   
        note = "please add layers to the `RestJsonExtrasConfig` object instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
 2467   2498   
    )]
 2468   2499   
    pub fn layer<L>(
 2469   2500   
        self,
 2470   2501   
        layer: &L,
 2471   2502   
    ) -> RestJsonExtras<
 2472         -
        ::aws_smithy_http_server::routing::RoutingService<
 2473         -
            ::aws_smithy_http_server::protocol::rest::router::RestRouter<L::Service>,
 2474         -
            ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
        2503  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        2504  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<L::Service>,
        2505  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
 2475   2506   
        >,
 2476   2507   
    >
 2477   2508   
    where
 2478   2509   
        L: ::tower::Layer<S>,
 2479   2510   
    {
 2480   2511   
        RestJsonExtras {
 2481   2512   
            svc: self.svc.map(|s| s.layer(layer)),
 2482   2513   
        }
 2483   2514   
    }
 2484   2515   
 2485         -
    /// Applies [`Route::new`](::aws_smithy_http_server::routing::Route::new) to all routes.
        2516  +
    /// Applies [`Route::new`](::aws_smithy_legacy_http_server::routing::Route::new) to all routes.
 2486   2517   
    ///
 2487   2518   
    /// This has the effect of erasing all types accumulated via layers.
 2488   2519   
    pub fn boxed<B>(
 2489   2520   
        self,
 2490   2521   
    ) -> RestJsonExtras<
 2491         -
        ::aws_smithy_http_server::routing::RoutingService<
 2492         -
            ::aws_smithy_http_server::protocol::rest::router::RestRouter<
 2493         -
                ::aws_smithy_http_server::routing::Route<B>,
        2522  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        2523  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
        2524  +
                ::aws_smithy_legacy_http_server::routing::Route<B>,
 2494   2525   
            >,
 2495         -
            ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
        2526  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
 2496   2527   
        >,
 2497   2528   
    >
 2498   2529   
    where
 2499   2530   
        S: ::tower::Service<
 2500   2531   
            ::http::Request<B>,
 2501         -
            Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2532  +
            Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 2502   2533   
            Error = std::convert::Infallible,
 2503   2534   
        >,
 2504   2535   
        S: Clone + Send + 'static,
 2505   2536   
        S::Future: Send + 'static,
 2506   2537   
    {
 2507   2538   
        self.layer(&::tower::layer::layer_fn(
 2508         -
            ::aws_smithy_http_server::routing::Route::new,
        2539  +
            ::aws_smithy_legacy_http_server::routing::Route::new,
 2509   2540   
        ))
 2510   2541   
    }
 2511   2542   
}
 2512   2543   
 2513   2544   
impl<S, R> ::tower::Service<R> for RestJsonExtras<S>
 2514   2545   
where
 2515   2546   
    S: ::tower::Service<R>,
 2516   2547   
{
 2517   2548   
    type Response = S::Response;
 2518   2549   
    type Error = S::Error;
 2519   2550   
    type Future = S::Future;
 2520   2551   
 2521   2552   
    fn poll_ready(
 2522   2553   
        &mut self,
 2523   2554   
        cx: &mut std::task::Context,
 2524   2555   
    ) -> std::task::Poll<::std::result::Result<(), Self::Error>> {
 2525   2556   
        self.svc.poll_ready(cx)
 2526   2557   
    }
 2527   2558   
 2528   2559   
    fn call(&mut self, request: R) -> Self::Future {
 2529   2560   
        self.svc.call(request)
 2530   2561   
    }
 2531   2562   
}
 2532   2563   
 2533   2564   
/// An enumeration of all [operations](https://smithy.io/2.0/spec/service-types.html#operation) in RestJsonExtras.
 2534   2565   
#[allow(clippy::enum_variant_names)]
 2535   2566   
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
 2536   2567   
pub enum Operation {
 2537   2568   
    CaseInsensitiveErrorOperation,
 2538   2569   
    EmptyStructWithContentOnWireOp,
 2539   2570   
    EnumQuery,
 2540   2571   
    EscapedStringValues,
 2541   2572   
    HttpQueryParamsOnlyOperation,
 2542   2573   
    MapWithEnumKeyOp,
 2543   2574   
    NullInNonSparse,
 2544   2575   
    PrimitiveIntHeader,
 2545   2576   
    PrimitiveIntOp,
 2546   2577   
    QueryPrecedence,
 2547   2578   
    StatusResponse,
 2548   2579   
    StringPayload,
 2549   2580   
}
 2550   2581   
 2551   2582   
impl Operation {
 2552         -
    /// Returns the [operations](https://smithy.io/2.0/spec/service-types.html#operation) [`ShapeId`](::aws_smithy_http_server::shape_id::ShapeId).
 2553         -
    pub fn shape_id(&self) -> ::aws_smithy_http_server::shape_id::ShapeId {
        2583  +
    /// Returns the [operations](https://smithy.io/2.0/spec/service-types.html#operation) [`ShapeId`](::aws_smithy_legacy_http_server::shape_id::ShapeId).
        2584  +
    pub fn shape_id(&self) -> ::aws_smithy_legacy_http_server::shape_id::ShapeId {
 2554   2585   
        match self {
 2555   2586   
            Operation::CaseInsensitiveErrorOperation => {
 2556         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        2587  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2557   2588   
                    "aws.protocoltests.restjson#CaseInsensitiveErrorOperation",
 2558   2589   
                    "aws.protocoltests.restjson",
 2559   2590   
                    "CaseInsensitiveErrorOperation",
 2560   2591   
                )
 2561   2592   
            }
 2562   2593   
            Operation::EmptyStructWithContentOnWireOp => {
 2563         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        2594  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2564   2595   
                    "aws.protocoltests.restjson#EmptyStructWithContentOnWireOp",
 2565   2596   
                    "aws.protocoltests.restjson",
 2566   2597   
                    "EmptyStructWithContentOnWireOp",
 2567   2598   
                )
 2568   2599   
            }
 2569         -
            Operation::EnumQuery => ::aws_smithy_http_server::shape_id::ShapeId::new(
        2600  +
            Operation::EnumQuery => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2570   2601   
                "aws.protocoltests.restjson#EnumQuery",
 2571   2602   
                "aws.protocoltests.restjson",
 2572   2603   
                "EnumQuery",
 2573   2604   
            ),
 2574         -
            Operation::EscapedStringValues => ::aws_smithy_http_server::shape_id::ShapeId::new(
 2575         -
                "aws.protocoltests.restjson#EscapedStringValues",
 2576         -
                "aws.protocoltests.restjson",
 2577         -
                "EscapedStringValues",
 2578         -
            ),
        2605  +
            Operation::EscapedStringValues => {
        2606  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
        2607  +
                    "aws.protocoltests.restjson#EscapedStringValues",
        2608  +
                    "aws.protocoltests.restjson",
        2609  +
                    "EscapedStringValues",
        2610  +
                )
        2611  +
            }
 2579   2612   
            Operation::HttpQueryParamsOnlyOperation => {
 2580         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        2613  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2581   2614   
                    "aws.protocoltests.restjson#HttpQueryParamsOnlyOperation",
 2582   2615   
                    "aws.protocoltests.restjson",
 2583   2616   
                    "HttpQueryParamsOnlyOperation",
 2584   2617   
                )
 2585   2618   
            }
 2586         -
            Operation::MapWithEnumKeyOp => ::aws_smithy_http_server::shape_id::ShapeId::new(
        2619  +
            Operation::MapWithEnumKeyOp => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2587   2620   
                "aws.protocoltests.restjson#MapWithEnumKeyOp",
 2588   2621   
                "aws.protocoltests.restjson",
 2589   2622   
                "MapWithEnumKeyOp",
 2590   2623   
            ),
 2591         -
            Operation::NullInNonSparse => ::aws_smithy_http_server::shape_id::ShapeId::new(
        2624  +
            Operation::NullInNonSparse => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2592   2625   
                "aws.protocoltests.restjson#NullInNonSparse",
 2593   2626   
                "aws.protocoltests.restjson",
 2594   2627   
                "NullInNonSparse",
 2595   2628   
            ),
 2596         -
            Operation::PrimitiveIntHeader => ::aws_smithy_http_server::shape_id::ShapeId::new(
 2597         -
                "aws.protocoltests.restjson#PrimitiveIntHeader",
 2598         -
                "aws.protocoltests.restjson",
 2599         -
                "PrimitiveIntHeader",
 2600         -
            ),
 2601         -
            Operation::PrimitiveIntOp => ::aws_smithy_http_server::shape_id::ShapeId::new(
        2629  +
            Operation::PrimitiveIntHeader => {
        2630  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
        2631  +
                    "aws.protocoltests.restjson#PrimitiveIntHeader",
        2632  +
                    "aws.protocoltests.restjson",
        2633  +
                    "PrimitiveIntHeader",
        2634  +
                )
        2635  +
            }
        2636  +
            Operation::PrimitiveIntOp => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2602   2637   
                "aws.protocoltests.restjson#PrimitiveIntOp",
 2603   2638   
                "aws.protocoltests.restjson",
 2604   2639   
                "PrimitiveIntOp",
 2605   2640   
            ),
 2606         -
            Operation::QueryPrecedence => ::aws_smithy_http_server::shape_id::ShapeId::new(
        2641  +
            Operation::QueryPrecedence => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2607   2642   
                "aws.protocoltests.restjson#QueryPrecedence",
 2608   2643   
                "aws.protocoltests.restjson",
 2609   2644   
                "QueryPrecedence",
 2610   2645   
            ),
 2611         -
            Operation::StatusResponse => ::aws_smithy_http_server::shape_id::ShapeId::new(
        2646  +
            Operation::StatusResponse => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2612   2647   
                "aws.protocoltests.restjson#StatusResponse",
 2613   2648   
                "aws.protocoltests.restjson",
 2614   2649   
                "StatusResponse",
 2615   2650   
            ),
 2616         -
            Operation::StringPayload => ::aws_smithy_http_server::shape_id::ShapeId::new(
        2651  +
            Operation::StringPayload => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2617   2652   
                "aws.protocoltests.restjson#StringPayload",
 2618   2653   
                "aws.protocoltests.restjson",
 2619   2654   
                "StringPayload",
 2620   2655   
            ),
 2621   2656   
        }
 2622   2657   
    }
 2623   2658   
}
 2624   2659   
impl<L>
 2625         -
    ::aws_smithy_http_server::service::ContainsOperation<
        2660  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 2626   2661   
        crate::operation_shape::CaseInsensitiveErrorOperation,
 2627   2662   
    > for RestJsonExtras<L>
 2628   2663   
{
 2629   2664   
    const VALUE: Operation = Operation::CaseInsensitiveErrorOperation;
 2630   2665   
}
 2631   2666   
impl<L>
 2632         -
    ::aws_smithy_http_server::service::ContainsOperation<
        2667  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 2633   2668   
        crate::operation_shape::EmptyStructWithContentOnWireOp,
 2634   2669   
    > for RestJsonExtras<L>
 2635   2670   
{
 2636   2671   
    const VALUE: Operation = Operation::EmptyStructWithContentOnWireOp;
 2637   2672   
}
 2638         -
impl<L> ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::EnumQuery>
        2673  +
impl<L>
        2674  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<crate::operation_shape::EnumQuery>
 2639   2675   
    for RestJsonExtras<L>
 2640   2676   
{
 2641   2677   
    const VALUE: Operation = Operation::EnumQuery;
 2642   2678   
}
 2643   2679   
impl<L>
 2644         -
    ::aws_smithy_http_server::service::ContainsOperation<
        2680  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 2645   2681   
        crate::operation_shape::EscapedStringValues,
 2646   2682   
    > for RestJsonExtras<L>
 2647   2683   
{
 2648   2684   
    const VALUE: Operation = Operation::EscapedStringValues;
 2649   2685   
}
 2650   2686   
impl<L>
 2651         -
    ::aws_smithy_http_server::service::ContainsOperation<
        2687  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 2652   2688   
        crate::operation_shape::HttpQueryParamsOnlyOperation,
 2653   2689   
    > for RestJsonExtras<L>
 2654   2690   
{
 2655   2691   
    const VALUE: Operation = Operation::HttpQueryParamsOnlyOperation;
 2656   2692   
}
 2657   2693   
impl<L>
 2658         -
    ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::MapWithEnumKeyOp>
 2659         -
    for RestJsonExtras<L>
        2694  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        2695  +
        crate::operation_shape::MapWithEnumKeyOp,
        2696  +
    > for RestJsonExtras<L>
 2660   2697   
{
 2661   2698   
    const VALUE: Operation = Operation::MapWithEnumKeyOp;
 2662   2699   
}
 2663   2700   
impl<L>
 2664         -
    ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::NullInNonSparse>
 2665         -
    for RestJsonExtras<L>
        2701  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        2702  +
        crate::operation_shape::NullInNonSparse,
        2703  +
    > for RestJsonExtras<L>
 2666   2704   
{
 2667   2705   
    const VALUE: Operation = Operation::NullInNonSparse;
 2668   2706   
}
 2669   2707   
impl<L>
 2670         -
    ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::PrimitiveIntHeader>
 2671         -
    for RestJsonExtras<L>
        2708  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        2709  +
        crate::operation_shape::PrimitiveIntHeader,
        2710  +
    > for RestJsonExtras<L>
 2672   2711   
{
 2673   2712   
    const VALUE: Operation = Operation::PrimitiveIntHeader;
 2674   2713   
}
 2675         -
impl<L> ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::PrimitiveIntOp>
 2676         -
    for RestJsonExtras<L>
        2714  +
impl<L>
        2715  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        2716  +
        crate::operation_shape::PrimitiveIntOp,
        2717  +
    > for RestJsonExtras<L>
 2677   2718   
{
 2678   2719   
    const VALUE: Operation = Operation::PrimitiveIntOp;
 2679   2720   
}
 2680   2721   
impl<L>
 2681         -
    ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::QueryPrecedence>
 2682         -
    for RestJsonExtras<L>
        2722  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        2723  +
        crate::operation_shape::QueryPrecedence,
        2724  +
    > for RestJsonExtras<L>
 2683   2725   
{
 2684   2726   
    const VALUE: Operation = Operation::QueryPrecedence;
 2685   2727   
}
 2686         -
impl<L> ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::StatusResponse>
 2687         -
    for RestJsonExtras<L>
        2728  +
impl<L>
        2729  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        2730  +
        crate::operation_shape::StatusResponse,
        2731  +
    > for RestJsonExtras<L>
 2688   2732   
{
 2689   2733   
    const VALUE: Operation = Operation::StatusResponse;
 2690   2734   
}
 2691         -
impl<L> ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::StringPayload>
 2692         -
    for RestJsonExtras<L>
        2735  +
impl<L>
        2736  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        2737  +
        crate::operation_shape::StringPayload,
        2738  +
    > for RestJsonExtras<L>
 2693   2739   
{
 2694   2740   
    const VALUE: Operation = Operation::StringPayload;
 2695   2741   
}
 2696   2742   
 2697         -
impl<S> ::aws_smithy_http_server::service::ServiceShape for RestJsonExtras<S> {
 2698         -
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 2699         -
        ::aws_smithy_http_server::shape_id::ShapeId::new(
        2743  +
impl<S> ::aws_smithy_legacy_http_server::service::ServiceShape for RestJsonExtras<S> {
        2744  +
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
        2745  +
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 2700   2746   
            "aws.protocoltests.restjson#RestJsonExtras",
 2701   2747   
            "aws.protocoltests.restjson",
 2702   2748   
            "RestJsonExtras",
 2703   2749   
        );
 2704   2750   
 2705   2751   
    const VERSION: Option<&'static str> = Some("2019-12-16");
 2706   2752   
 2707         -
    type Protocol = ::aws_smithy_http_server::protocol::rest_json_1::RestJson1;
        2753  +
    type Protocol = ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1;
 2708   2754   
 2709   2755   
    type Operations = Operation;
 2710   2756   
}
 2711   2757   
/// Configuration for the [`RestJsonExtras`]. This is the central place where to register and
 2712   2758   
/// configure [`::tower::Layer`]s, HTTP plugins, and model plugins.
 2713   2759   
///
 2714   2760   
/// ```rust,no_run
 2715   2761   
/// # use rest_json_extras::RestJsonExtrasConfig;
 2716         -
/// # use ::aws_smithy_http_server::plugin::IdentityPlugin;
        2762  +
/// # use ::aws_smithy_legacy_http_server::plugin::IdentityPlugin;
 2717   2763   
/// # use ::tower::layer::util::Identity;
 2718   2764   
/// # let authentication_plugin = IdentityPlugin;
 2719   2765   
/// # let authorization_plugin = IdentityPlugin;
 2720   2766   
/// # let server_request_id_provider_layer = Identity::new();
 2721   2767   
/// let config = RestJsonExtrasConfig::builder()
 2722   2768   
///     // Layers get executed first...
 2723   2769   
///     .layer(server_request_id_provider_layer)
 2724   2770   
///     // ...then HTTP plugins...
 2725   2771   
///     .http_plugin(authentication_plugin)
 2726   2772   
///     // ...and right after deserialization, model plugins.
 2727   2773   
///     .model_plugin(authorization_plugin)
 2728   2774   
///     .build();
 2729   2775   
/// ```
 2730   2776   
///
 2731   2777   
/// See the [`plugin`] system for details.
 2732   2778   
///
 2733         -
/// [`plugin`]: ::aws_smithy_http_server::plugin
        2779  +
/// [`plugin`]: ::aws_smithy_legacy_http_server::plugin
 2734   2780   
#[derive(::std::fmt::Debug)]
 2735   2781   
pub struct RestJsonExtrasConfig<L, H, M> {
 2736   2782   
    layers: L,
 2737   2783   
    http_plugins: H,
 2738   2784   
    model_plugins: M,
 2739   2785   
}
 2740   2786   
 2741   2787   
impl RestJsonExtrasConfig<(), (), ()> {
 2742   2788   
    /// Returns a builder to construct the configuration.
 2743   2789   
    pub fn builder() -> RestJsonExtrasConfigBuilder<
 2744   2790   
        ::tower::layer::util::Identity,
 2745         -
        ::aws_smithy_http_server::plugin::IdentityPlugin,
 2746         -
        ::aws_smithy_http_server::plugin::IdentityPlugin,
        2791  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        2792  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
 2747   2793   
    > {
 2748   2794   
        RestJsonExtrasConfigBuilder {
 2749   2795   
            layers: ::tower::layer::util::Identity::new(),
 2750         -
            http_plugins: ::aws_smithy_http_server::plugin::IdentityPlugin,
 2751         -
            model_plugins: ::aws_smithy_http_server::plugin::IdentityPlugin,
        2796  +
            http_plugins: ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        2797  +
            model_plugins: ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
 2752   2798   
        }
 2753   2799   
    }
 2754   2800   
}
 2755   2801   
 2756   2802   
/// Builder returned by [`RestJsonExtrasConfig::builder()`].
 2757   2803   
#[derive(::std::fmt::Debug)]
 2758   2804   
pub struct RestJsonExtrasConfigBuilder<L, H, M> {
 2759   2805   
    pub(crate) layers: L,
 2760   2806   
    pub(crate) http_plugins: H,
 2761   2807   
    pub(crate) model_plugins: M,
 2762   2808   
}
 2763   2809   
 2764   2810   
impl<L, H, M> RestJsonExtrasConfigBuilder<L, H, M> {
 2765   2811   
    /// Add a [`::tower::Layer`] to the service.
 2766   2812   
    pub fn layer<NewLayer>(
 2767   2813   
        self,
 2768   2814   
        layer: NewLayer,
 2769   2815   
    ) -> RestJsonExtrasConfigBuilder<::tower::layer::util::Stack<NewLayer, L>, H, M> {
 2770   2816   
        RestJsonExtrasConfigBuilder {
 2771   2817   
            layers: ::tower::layer::util::Stack::new(layer, self.layers),
 2772   2818   
            http_plugins: self.http_plugins,
 2773   2819   
            model_plugins: self.model_plugins,
 2774   2820   
        }
 2775   2821   
    }
 2776   2822   
 2777   2823   
    /// Add a HTTP [plugin] to the service.
 2778   2824   
    ///
 2779         -
    /// [plugin]: ::aws_smithy_http_server::plugin
        2825  +
    /// [plugin]: ::aws_smithy_legacy_http_server::plugin
 2780   2826   
    // We eagerly require `NewPlugin: HttpMarker`, despite not really needing it, because compiler
 2781   2827   
    // errors get _substantially_ better if the user makes a mistake.
 2782         -
    pub fn http_plugin<NewPlugin: ::aws_smithy_http_server::plugin::HttpMarker>(
        2828  +
    pub fn http_plugin<NewPlugin: ::aws_smithy_legacy_http_server::plugin::HttpMarker>(
 2783   2829   
        self,
 2784   2830   
        http_plugin: NewPlugin,
 2785   2831   
    ) -> RestJsonExtrasConfigBuilder<
 2786   2832   
        L,
 2787         -
        ::aws_smithy_http_server::plugin::PluginStack<NewPlugin, H>,
        2833  +
        ::aws_smithy_legacy_http_server::plugin::PluginStack<NewPlugin, H>,
 2788   2834   
        M,
 2789   2835   
    > {
 2790   2836   
        RestJsonExtrasConfigBuilder {
 2791   2837   
            layers: self.layers,
 2792         -
            http_plugins: ::aws_smithy_http_server::plugin::PluginStack::new(
        2838  +
            http_plugins: ::aws_smithy_legacy_http_server::plugin::PluginStack::new(
 2793   2839   
                http_plugin,
 2794   2840   
                self.http_plugins,
 2795   2841   
            ),
 2796   2842   
            model_plugins: self.model_plugins,
 2797   2843   
        }
 2798   2844   
    }
 2799   2845   
 2800   2846   
    /// Add a model [plugin] to the service.
 2801   2847   
    ///
 2802         -
    /// [plugin]: ::aws_smithy_http_server::plugin
        2848  +
    /// [plugin]: ::aws_smithy_legacy_http_server::plugin
 2803   2849   
    // We eagerly require `NewPlugin: ModelMarker`, despite not really needing it, because compiler
 2804   2850   
    // errors get _substantially_ better if the user makes a mistake.
 2805         -
    pub fn model_plugin<NewPlugin: ::aws_smithy_http_server::plugin::ModelMarker>(
        2851  +
    pub fn model_plugin<NewPlugin: ::aws_smithy_legacy_http_server::plugin::ModelMarker>(
 2806   2852   
        self,
 2807   2853   
        model_plugin: NewPlugin,
 2808   2854   
    ) -> RestJsonExtrasConfigBuilder<
 2809   2855   
        L,
 2810   2856   
        H,
 2811         -
        ::aws_smithy_http_server::plugin::PluginStack<NewPlugin, M>,
        2857  +
        ::aws_smithy_legacy_http_server::plugin::PluginStack<NewPlugin, M>,
 2812   2858   
    > {
 2813   2859   
        RestJsonExtrasConfigBuilder {
 2814   2860   
            layers: self.layers,
 2815   2861   
            http_plugins: self.http_plugins,
 2816         -
            model_plugins: ::aws_smithy_http_server::plugin::PluginStack::new(
        2862  +
            model_plugins: ::aws_smithy_legacy_http_server::plugin::PluginStack::new(
 2817   2863   
                model_plugin,
 2818   2864   
                self.model_plugins,
 2819   2865   
            ),
 2820   2866   
        }
 2821   2867   
    }
 2822   2868   
 2823   2869   
    /// Build the configuration.
 2824   2870   
    pub fn build(self) -> super::RestJsonExtrasConfig<L, H, M> {
 2825   2871   
        super::RestJsonExtrasConfig {
 2826   2872   
            layers: self.layers,