Server Test Python

Server Test Python

rev. 3c756f73b1f83a0eed4275d9d1e22df0b10b66fb (ignoring whitespace)

Files changed:

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

@@ -1,1 +125,125 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(clippy::unnecessary_wraps)]
    3      3   
pub async fn de_simple_scalar_properties_http_request<B>(
    4      4   
    #[allow(unused_variables)] request: ::http::Request<B>,
    5      5   
) -> std::result::Result<
    6      6   
    crate::input::SimpleScalarPropertiesInput,
    7         -
    ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection,
           7  +
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection,
    8      8   
>
    9      9   
where
   10         -
    B: ::aws_smithy_http_server::body::HttpBody + Send,
          10  +
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
   11     11   
    B::Data: Send,
   12         -
    ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection:
   13         -
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
          12  +
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
          13  +
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
   14     14   
{
   15     15   
    Ok({
   16     16   
        #[allow(unused_mut)]
   17     17   
        let mut input = crate::input::simple_scalar_properties_input_internal::Builder::default();
   18     18   
        #[allow(unused_variables)]
   19     19   
        let ::aws_smithy_runtime_api::http::RequestParts {
   20     20   
            uri, headers, body, ..
   21     21   
        } = ::aws_smithy_runtime_api::http::Request::try_from(request)?.into_parts();
   22     22   
        let bytes = ::hyper::body::to_bytes(body).await?;
   23     23   
        if !bytes.is_empty() {
   24         -
            ::aws_smithy_http_server::protocol::content_type_header_classifier_smithy(
          24  +
            ::aws_smithy_legacy_http_server::protocol::content_type_header_classifier_smithy(
   25     25   
                &headers,
   26     26   
                Some("application/x-amz-json-1.0"),
   27     27   
            )?;
   28     28   
            input =
   29     29   
                crate::protocol_serde::shape_simple_scalar_properties::de_simple_scalar_properties(
   30     30   
                    bytes.as_ref(),
   31     31   
                    input,
   32     32   
                )?;
   33     33   
        }
   34     34   
        input.build()
   35     35   
    })
   36     36   
}
   37     37   
   38     38   
#[allow(clippy::unnecessary_wraps)]
   39     39   
pub fn ser_simple_scalar_properties_http_response(
   40     40   
    #[allow(unused_variables)] output: crate::output::SimpleScalarPropertiesOutput,
   41     41   
) -> std::result::Result<
   42         -
    ::aws_smithy_http_server::response::Response,
   43         -
    ::aws_smithy_http_server::protocol::aws_json::rejection::ResponseRejection,
          42  +
    ::aws_smithy_legacy_http_server::response::Response,
          43  +
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::ResponseRejection,
   44     44   
> {
   45     45   
    Ok({
   46     46   
        #[allow(unused_mut)]
   47     47   
        let mut builder = ::http::Response::builder();
   48         -
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
          48  +
        builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   49     49   
            builder,
   50     50   
            ::http::header::CONTENT_TYPE,
   51     51   
            "application/x-amz-json-1.0",
   52     52   
        );
   53     53   
        let http_status: u16 = 200;
   54     54   
        builder = builder.status(http_status);
   55     55   
        let payload =
   56     56   
            crate::protocol_serde::shape_simple_scalar_properties_output::ser_simple_scalar_properties_output_output_output(&output)?
   57     57   
        ;
   58     58   
        let content_length = payload.len();
   59         -
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
          59  +
        builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   60     60   
            builder,
   61     61   
            ::http::header::CONTENT_LENGTH,
   62     62   
            content_length,
   63     63   
        );
   64         -
        let body = ::aws_smithy_http_server::body::to_boxed(payload);
          64  +
        let body = ::aws_smithy_legacy_http_server::body::to_boxed(payload);
   65     65   
        builder.body(body)?
   66     66   
    })
   67     67   
}
   68     68   
   69     69   
#[allow(clippy::unnecessary_wraps)]
   70     70   
pub fn ser_simple_scalar_properties_http_error(
   71     71   
    error: &crate::error::SimpleScalarPropertiesError,
   72     72   
) -> std::result::Result<
   73         -
    ::aws_smithy_http_server::response::Response,
   74         -
    ::aws_smithy_http_server::protocol::aws_json::rejection::ResponseRejection,
          73  +
    ::aws_smithy_legacy_http_server::response::Response,
          74  +
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::ResponseRejection,
   75     75   
> {
   76     76   
    Ok({
   77     77   
        match error {
   78     78   
            crate::error::SimpleScalarPropertiesError::InternalServerError(output) => {
   79     79   
                let payload = crate::protocol_serde::shape_internal_server_error::ser_internal_server_error_error(output)?;
   80     80   
                #[allow(unused_mut)]
   81     81   
                let mut builder = ::http::Response::builder();
   82         -
                builder = ::aws_smithy_http::header::set_response_header_if_absent(
          82  +
                builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   83     83   
                    builder,
   84     84   
                    ::http::header::CONTENT_TYPE,
   85     85   
                    "application/x-amz-json-1.0",
   86     86   
                );
   87     87   
                let content_length = payload.len();
   88         -
                builder = ::aws_smithy_http::header::set_response_header_if_absent(
          88  +
                builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   89     89   
                    builder,
   90     90   
                    ::http::header::CONTENT_LENGTH,
   91     91   
                    content_length,
   92     92   
                );
   93     93   
                builder
   94     94   
                    .status(500)
   95         -
                    .body(::aws_smithy_http_server::body::to_boxed(payload))?
          95  +
                    .body(::aws_smithy_legacy_http_server::body::to_boxed(payload))?
   96     96   
            }
   97     97   
        }
   98     98   
    })
   99     99   
}
  100    100   
  101    101   
pub(crate) fn de_simple_scalar_properties(
  102    102   
    value: &[u8],
  103    103   
    mut builder: crate::input::simple_scalar_properties_input_internal::Builder,
  104    104   
) -> ::std::result::Result<
  105    105   
    crate::input::simple_scalar_properties_input_internal::Builder,

tmp-codegen-diff/codegen-server-test-python/json_rpc10/rust-server-codegen-python/src/python_operation_adaptor.rs

@@ -1,1 +839,871 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Python handler for operation `QueryIncompatibleOperation`.
    3      3   
pub(crate) async fn query_incompatible_operation(
    4      4   
    input: crate::input::QueryIncompatibleOperationInput,
    5         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
           5  +
    state: ::aws_smithy_legacy_http_server::Extension<
           6  +
        ::aws_smithy_http_server_python::context::PyContext,
           7  +
    >,
    6      8   
    handler: ::aws_smithy_http_server_python::PyHandler,
    7      9   
) -> std::result::Result<
    8     10   
    crate::output::QueryIncompatibleOperationOutput,
    9     11   
    crate::error::QueryIncompatibleOperationError,
   10     12   
> {
   11     13   
    // Async block used to run the handler and catch any Python error.
   12     14   
    let result = if handler.is_coroutine {
   13     15   
        ::tracing::trace!(
   14     16   
            name = "query_incompatible_operation",
   15     17   
            "executing python handler coroutine"
   16     18   
        );
   17     19   
        let result = ::pyo3::Python::with_gil(|py| {
   18     20   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
   19     21   
            let coroutine = if handler.args == 1 {
   20     22   
                pyhandler.call1((input,))?
   21     23   
            } else {
   22     24   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
   23     25   
            };
   24     26   
            ::pyo3_asyncio::tokio::into_future(coroutine)
   25     27   
        })?;
   26     28   
        result.await.and_then(|r| {
   27     29   
            ::pyo3::Python::with_gil(|py| {
   28     30   
                r.extract::<crate::output::QueryIncompatibleOperationOutput>(py)
   29     31   
            })
   30     32   
        })
   31     33   
    } else {
   32     34   
        ::tracing::trace!(
   33     35   
            name = "query_incompatible_operation",
   34     36   
            "executing python handler function"
   35     37   
        );
   36     38   
        ::pyo3::Python::with_gil(|py| {
   37     39   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
   38     40   
            let output = if handler.args == 1 {
   39     41   
                pyhandler.call1((input,))?
   40     42   
            } else {
   41     43   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
   42     44   
            };
   43     45   
            output.extract::<crate::output::QueryIncompatibleOperationOutput>()
   44     46   
        })
   45     47   
    };
   46     48   
    // Catch and record a Python traceback.
   47     49   
    result.map_err(|e| {
   48     50   
        let rich_py_err =
   49     51   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
   50     52   
                e.clone_ref(py)
   51     53   
            }));
   52     54   
        ::tracing::error!(error = ?rich_py_err, "handler error");
   53     55   
        e.into()
   54     56   
    })
   55     57   
}
   56     58   
   57     59   
/// Python handler for operation `OperationWithRequiredMembersWithDefaults`.
   58     60   
pub(crate) async fn operation_with_required_members_with_defaults(
   59     61   
    input: crate::input::OperationWithRequiredMembersWithDefaultsInput,
   60         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
          62  +
    state: ::aws_smithy_legacy_http_server::Extension<
          63  +
        ::aws_smithy_http_server_python::context::PyContext,
          64  +
    >,
   61     65   
    handler: ::aws_smithy_http_server_python::PyHandler,
   62     66   
) -> std::result::Result<
   63     67   
    crate::output::OperationWithRequiredMembersWithDefaultsOutput,
   64     68   
    crate::error::OperationWithRequiredMembersWithDefaultsError,
   65     69   
> {
   66     70   
    // Async block used to run the handler and catch any Python error.
   67     71   
    let result = if handler.is_coroutine {
   68     72   
        ::tracing::trace!(
   69     73   
            name = "operation_with_required_members_with_defaults",
   70     74   
            "executing python handler coroutine"
   71     75   
        );
   72     76   
        let result = ::pyo3::Python::with_gil(|py| {
   73     77   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
   74     78   
            let coroutine = if handler.args == 1 {
   75     79   
                pyhandler.call1((input,))?
   76     80   
            } else {
   77     81   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
   78     82   
            };
   79     83   
            ::pyo3_asyncio::tokio::into_future(coroutine)
   80     84   
        })?;
   81     85   
        result.await.and_then(|r| {
   82     86   
            ::pyo3::Python::with_gil(|py| {
   83     87   
                r.extract::<crate::output::OperationWithRequiredMembersWithDefaultsOutput>(py)
   84     88   
            })
   85     89   
        })
   86     90   
    } else {
   87     91   
        ::tracing::trace!(
   88     92   
            name = "operation_with_required_members_with_defaults",
   89     93   
            "executing python handler function"
   90     94   
        );
   91     95   
        ::pyo3::Python::with_gil(|py| {
   92     96   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
   93     97   
            let output = if handler.args == 1 {
   94     98   
                pyhandler.call1((input,))?
   95     99   
            } else {
   96    100   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
   97    101   
            };
   98    102   
            output.extract::<crate::output::OperationWithRequiredMembersWithDefaultsOutput>()
   99    103   
        })
  100    104   
    };
  101    105   
    // Catch and record a Python traceback.
  102    106   
    result.map_err(|e| {
  103    107   
        let rich_py_err =
  104    108   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  105    109   
                e.clone_ref(py)
  106    110   
            }));
  107    111   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  108    112   
        e.into()
  109    113   
    })
  110    114   
}
  111    115   
  112    116   
/// Python handler for operation `OperationWithNestedStructure`.
  113    117   
pub(crate) async fn operation_with_nested_structure(
  114    118   
    input: crate::input::OperationWithNestedStructureInput,
  115         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         119  +
    state: ::aws_smithy_legacy_http_server::Extension<
         120  +
        ::aws_smithy_http_server_python::context::PyContext,
         121  +
    >,
  116    122   
    handler: ::aws_smithy_http_server_python::PyHandler,
  117    123   
) -> std::result::Result<
  118    124   
    crate::output::OperationWithNestedStructureOutput,
  119    125   
    crate::error::OperationWithNestedStructureError,
  120    126   
> {
  121    127   
    // Async block used to run the handler and catch any Python error.
  122    128   
    let result = if handler.is_coroutine {
  123    129   
        ::tracing::trace!(
  124    130   
            name = "operation_with_nested_structure",
  125    131   
            "executing python handler coroutine"
  126    132   
        );
  127    133   
        let result = ::pyo3::Python::with_gil(|py| {
  128    134   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  129    135   
            let coroutine = if handler.args == 1 {
  130    136   
                pyhandler.call1((input,))?
  131    137   
            } else {
  132    138   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  133    139   
            };
  134    140   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  135    141   
        })?;
  136    142   
        result.await.and_then(|r| {
  137    143   
            ::pyo3::Python::with_gil(|py| {
  138    144   
                r.extract::<crate::output::OperationWithNestedStructureOutput>(py)
  139    145   
            })
  140    146   
        })
  141    147   
    } else {
  142    148   
        ::tracing::trace!(
  143    149   
            name = "operation_with_nested_structure",
  144    150   
            "executing python handler function"
  145    151   
        );
  146    152   
        ::pyo3::Python::with_gil(|py| {
  147    153   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  148    154   
            let output = if handler.args == 1 {
  149    155   
                pyhandler.call1((input,))?
  150    156   
            } else {
  151    157   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  152    158   
            };
  153    159   
            output.extract::<crate::output::OperationWithNestedStructureOutput>()
  154    160   
        })
  155    161   
    };
  156    162   
    // Catch and record a Python traceback.
  157    163   
    result.map_err(|e| {
  158    164   
        let rich_py_err =
  159    165   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  160    166   
                e.clone_ref(py)
  161    167   
            }));
  162    168   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  163    169   
        e.into()
  164    170   
    })
  165    171   
}
  166    172   
  167    173   
/// Python handler for operation `OperationWithRequiredMembers`.
  168    174   
pub(crate) async fn operation_with_required_members(
  169    175   
    input: crate::input::OperationWithRequiredMembersInput,
  170         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         176  +
    state: ::aws_smithy_legacy_http_server::Extension<
         177  +
        ::aws_smithy_http_server_python::context::PyContext,
         178  +
    >,
  171    179   
    handler: ::aws_smithy_http_server_python::PyHandler,
  172    180   
) -> std::result::Result<
  173    181   
    crate::output::OperationWithRequiredMembersOutput,
  174    182   
    crate::error::OperationWithRequiredMembersError,
  175    183   
> {
  176    184   
    // Async block used to run the handler and catch any Python error.
  177    185   
    let result = if handler.is_coroutine {
  178    186   
        ::tracing::trace!(
  179    187   
            name = "operation_with_required_members",
  180    188   
            "executing python handler coroutine"
  181    189   
        );
  182    190   
        let result = ::pyo3::Python::with_gil(|py| {
  183    191   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  184    192   
            let coroutine = if handler.args == 1 {
  185    193   
                pyhandler.call1((input,))?
  186    194   
            } else {
  187    195   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  188    196   
            };
  189    197   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  190    198   
        })?;
  191    199   
        result.await.and_then(|r| {
  192    200   
            ::pyo3::Python::with_gil(|py| {
  193    201   
                r.extract::<crate::output::OperationWithRequiredMembersOutput>(py)
  194    202   
            })
  195    203   
        })
  196    204   
    } else {
  197    205   
        ::tracing::trace!(
  198    206   
            name = "operation_with_required_members",
  199    207   
            "executing python handler function"
  200    208   
        );
  201    209   
        ::pyo3::Python::with_gil(|py| {
  202    210   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  203    211   
            let output = if handler.args == 1 {
  204    212   
                pyhandler.call1((input,))?
  205    213   
            } else {
  206    214   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  207    215   
            };
  208    216   
            output.extract::<crate::output::OperationWithRequiredMembersOutput>()
  209    217   
        })
  210    218   
    };
  211    219   
    // Catch and record a Python traceback.
  212    220   
    result.map_err(|e| {
  213    221   
        let rich_py_err =
  214    222   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  215    223   
                e.clone_ref(py)
  216    224   
            }));
  217    225   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  218    226   
        e.into()
  219    227   
    })
  220    228   
}
  221    229   
  222    230   
/// Python handler for operation `OperationWithDefaults`.
  223    231   
pub(crate) async fn operation_with_defaults(
  224    232   
    input: crate::input::OperationWithDefaultsInput,
  225         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         233  +
    state: ::aws_smithy_legacy_http_server::Extension<
         234  +
        ::aws_smithy_http_server_python::context::PyContext,
         235  +
    >,
  226    236   
    handler: ::aws_smithy_http_server_python::PyHandler,
  227    237   
) -> std::result::Result<
  228    238   
    crate::output::OperationWithDefaultsOutput,
  229    239   
    crate::error::OperationWithDefaultsError,
  230    240   
> {
  231    241   
    // Async block used to run the handler and catch any Python error.
  232    242   
    let result = if handler.is_coroutine {
  233    243   
        ::tracing::trace!(
  234    244   
            name = "operation_with_defaults",
  235    245   
            "executing python handler coroutine"
  236    246   
        );
  237    247   
        let result = ::pyo3::Python::with_gil(|py| {
  238    248   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  239    249   
            let coroutine = if handler.args == 1 {
  240    250   
                pyhandler.call1((input,))?
  241    251   
            } else {
  242    252   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  243    253   
            };
  244    254   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  245    255   
        })?;
  246    256   
        result.await.and_then(|r| {
  247    257   
            ::pyo3::Python::with_gil(|py| {
  248    258   
                r.extract::<crate::output::OperationWithDefaultsOutput>(py)
  249    259   
            })
  250    260   
        })
  251    261   
    } else {
  252    262   
        ::tracing::trace!(
  253    263   
            name = "operation_with_defaults",
  254    264   
            "executing python handler function"
  255    265   
        );
  256    266   
        ::pyo3::Python::with_gil(|py| {
  257    267   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  258    268   
            let output = if handler.args == 1 {
  259    269   
                pyhandler.call1((input,))?
  260    270   
            } else {
  261    271   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  262    272   
            };
  263    273   
            output.extract::<crate::output::OperationWithDefaultsOutput>()
  264    274   
        })
  265    275   
    };
  266    276   
    // Catch and record a Python traceback.
  267    277   
    result.map_err(|e| {
  268    278   
        let rich_py_err =
  269    279   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  270    280   
                e.clone_ref(py)
  271    281   
            }));
  272    282   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  273    283   
        e.into()
  274    284   
    })
  275    285   
}
  276    286   
  277    287   
/// Python handler for operation `ContentTypeParameters`.
  278    288   
pub(crate) async fn content_type_parameters(
  279    289   
    input: crate::input::ContentTypeParametersInput,
  280         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         290  +
    state: ::aws_smithy_legacy_http_server::Extension<
         291  +
        ::aws_smithy_http_server_python::context::PyContext,
         292  +
    >,
  281    293   
    handler: ::aws_smithy_http_server_python::PyHandler,
  282    294   
) -> std::result::Result<
  283    295   
    crate::output::ContentTypeParametersOutput,
  284    296   
    crate::error::ContentTypeParametersError,
  285    297   
> {
  286    298   
    // Async block used to run the handler and catch any Python error.
  287    299   
    let result = if handler.is_coroutine {
  288    300   
        ::tracing::trace!(
  289    301   
            name = "content_type_parameters",
  290    302   
            "executing python handler coroutine"
  291    303   
        );
  292    304   
        let result = ::pyo3::Python::with_gil(|py| {
  293    305   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  294    306   
            let coroutine = if handler.args == 1 {
  295    307   
                pyhandler.call1((input,))?
  296    308   
            } else {
  297    309   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  298    310   
            };
  299    311   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  300    312   
        })?;
  301    313   
        result.await.and_then(|r| {
  302    314   
            ::pyo3::Python::with_gil(|py| {
  303    315   
                r.extract::<crate::output::ContentTypeParametersOutput>(py)
  304    316   
            })
  305    317   
        })
  306    318   
    } else {
  307    319   
        ::tracing::trace!(
  308    320   
            name = "content_type_parameters",
  309    321   
            "executing python handler function"
  310    322   
        );
  311    323   
        ::pyo3::Python::with_gil(|py| {
  312    324   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  313    325   
            let output = if handler.args == 1 {
  314    326   
                pyhandler.call1((input,))?
  315    327   
            } else {
  316    328   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  317    329   
            };
  318    330   
            output.extract::<crate::output::ContentTypeParametersOutput>()
  319    331   
        })
  320    332   
    };
  321    333   
    // Catch and record a Python traceback.
  322    334   
    result.map_err(|e| {
  323    335   
        let rich_py_err =
  324    336   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  325    337   
                e.clone_ref(py)
  326    338   
            }));
  327    339   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  328    340   
        e.into()
  329    341   
    })
  330    342   
}
  331    343   
  332    344   
/// Python handler for operation `PutWithContentEncoding`.
  333    345   
pub(crate) async fn put_with_content_encoding(
  334    346   
    input: crate::input::PutWithContentEncodingInput,
  335         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         347  +
    state: ::aws_smithy_legacy_http_server::Extension<
         348  +
        ::aws_smithy_http_server_python::context::PyContext,
         349  +
    >,
  336    350   
    handler: ::aws_smithy_http_server_python::PyHandler,
  337    351   
) -> std::result::Result<
  338    352   
    crate::output::PutWithContentEncodingOutput,
  339    353   
    crate::error::PutWithContentEncodingError,
  340    354   
> {
  341    355   
    // Async block used to run the handler and catch any Python error.
  342    356   
    let result = if handler.is_coroutine {
  343    357   
        ::tracing::trace!(
  344    358   
            name = "put_with_content_encoding",
  345    359   
            "executing python handler coroutine"
  346    360   
        );
  347    361   
        let result = ::pyo3::Python::with_gil(|py| {
  348    362   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  349    363   
            let coroutine = if handler.args == 1 {
  350    364   
                pyhandler.call1((input,))?
  351    365   
            } else {
  352    366   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  353    367   
            };
  354    368   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  355    369   
        })?;
  356    370   
        result.await.and_then(|r| {
  357    371   
            ::pyo3::Python::with_gil(|py| {
  358    372   
                r.extract::<crate::output::PutWithContentEncodingOutput>(py)
  359    373   
            })
  360    374   
        })
  361    375   
    } else {
  362    376   
        ::tracing::trace!(
  363    377   
            name = "put_with_content_encoding",
  364    378   
            "executing python handler function"
  365    379   
        );
  366    380   
        ::pyo3::Python::with_gil(|py| {
  367    381   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  368    382   
            let output = if handler.args == 1 {
  369    383   
                pyhandler.call1((input,))?
  370    384   
            } else {
  371    385   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  372    386   
            };
  373    387   
            output.extract::<crate::output::PutWithContentEncodingOutput>()
  374    388   
        })
  375    389   
    };
  376    390   
    // Catch and record a Python traceback.
  377    391   
    result.map_err(|e| {
  378    392   
        let rich_py_err =
  379    393   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  380    394   
                e.clone_ref(py)
  381    395   
            }));
  382    396   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  383    397   
        e.into()
  384    398   
    })
  385    399   
}
  386    400   
  387    401   
/// Python handler for operation `HostWithPathOperation`.
  388    402   
pub(crate) async fn host_with_path_operation(
  389    403   
    input: crate::input::HostWithPathOperationInput,
  390         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         404  +
    state: ::aws_smithy_legacy_http_server::Extension<
         405  +
        ::aws_smithy_http_server_python::context::PyContext,
         406  +
    >,
  391    407   
    handler: ::aws_smithy_http_server_python::PyHandler,
  392    408   
) -> std::result::Result<
  393    409   
    crate::output::HostWithPathOperationOutput,
  394    410   
    crate::error::HostWithPathOperationError,
  395    411   
> {
  396    412   
    // Async block used to run the handler and catch any Python error.
  397    413   
    let result = if handler.is_coroutine {
  398    414   
        ::tracing::trace!(
  399    415   
            name = "host_with_path_operation",
  400    416   
            "executing python handler coroutine"
  401    417   
        );
  402    418   
        let result = ::pyo3::Python::with_gil(|py| {
  403    419   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  404    420   
            let coroutine = if handler.args == 1 {
  405    421   
                pyhandler.call1((input,))?
  406    422   
            } else {
  407    423   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  408    424   
            };
  409    425   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  410    426   
        })?;
  411    427   
        result.await.and_then(|r| {
  412    428   
            ::pyo3::Python::with_gil(|py| {
  413    429   
                r.extract::<crate::output::HostWithPathOperationOutput>(py)
  414    430   
            })
  415    431   
        })
  416    432   
    } else {
  417    433   
        ::tracing::trace!(
  418    434   
            name = "host_with_path_operation",
  419    435   
            "executing python handler function"
  420    436   
        );
  421    437   
        ::pyo3::Python::with_gil(|py| {
  422    438   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  423    439   
            let output = if handler.args == 1 {
  424    440   
                pyhandler.call1((input,))?
  425    441   
            } else {
  426    442   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  427    443   
            };
  428    444   
            output.extract::<crate::output::HostWithPathOperationOutput>()
  429    445   
        })
  430    446   
    };
  431    447   
    // Catch and record a Python traceback.
  432    448   
    result.map_err(|e| {
  433    449   
        let rich_py_err =
  434    450   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  435    451   
                e.clone_ref(py)
  436    452   
            }));
  437    453   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  438    454   
        e.into()
  439    455   
    })
  440    456   
}
  441    457   
  442    458   
/// Python handler for operation `EndpointWithHostLabelOperation`.
  443    459   
pub(crate) async fn endpoint_with_host_label_operation(
  444    460   
    input: crate::input::EndpointWithHostLabelOperationInput,
  445         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         461  +
    state: ::aws_smithy_legacy_http_server::Extension<
         462  +
        ::aws_smithy_http_server_python::context::PyContext,
         463  +
    >,
  446    464   
    handler: ::aws_smithy_http_server_python::PyHandler,
  447    465   
) -> std::result::Result<
  448    466   
    crate::output::EndpointWithHostLabelOperationOutput,
  449    467   
    crate::error::EndpointWithHostLabelOperationError,
  450    468   
> {
  451    469   
    // Async block used to run the handler and catch any Python error.
  452    470   
    let result = if handler.is_coroutine {
  453    471   
        ::tracing::trace!(
  454    472   
            name = "endpoint_with_host_label_operation",
  455    473   
            "executing python handler coroutine"
  456    474   
        );
  457    475   
        let result = ::pyo3::Python::with_gil(|py| {
  458    476   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  459    477   
            let coroutine = if handler.args == 1 {
  460    478   
                pyhandler.call1((input,))?
  461    479   
            } else {
  462    480   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  463    481   
            };
  464    482   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  465    483   
        })?;
  466    484   
        result.await.and_then(|r| {
  467    485   
            ::pyo3::Python::with_gil(|py| {
  468    486   
                r.extract::<crate::output::EndpointWithHostLabelOperationOutput>(py)
  469    487   
            })
  470    488   
        })
  471    489   
    } else {
  472    490   
        ::tracing::trace!(
  473    491   
            name = "endpoint_with_host_label_operation",
  474    492   
            "executing python handler function"
  475    493   
        );
  476    494   
        ::pyo3::Python::with_gil(|py| {
  477    495   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  478    496   
            let output = if handler.args == 1 {
  479    497   
                pyhandler.call1((input,))?
  480    498   
            } else {
  481    499   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  482    500   
            };
  483    501   
            output.extract::<crate::output::EndpointWithHostLabelOperationOutput>()
  484    502   
        })
  485    503   
    };
  486    504   
    // Catch and record a Python traceback.
  487    505   
    result.map_err(|e| {
  488    506   
        let rich_py_err =
  489    507   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  490    508   
                e.clone_ref(py)
  491    509   
            }));
  492    510   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  493    511   
        e.into()
  494    512   
    })
  495    513   
}
  496    514   
  497    515   
/// Python handler for operation `EndpointOperation`.
  498    516   
pub(crate) async fn endpoint_operation(
  499    517   
    input: crate::input::EndpointOperationInput,
  500         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         518  +
    state: ::aws_smithy_legacy_http_server::Extension<
         519  +
        ::aws_smithy_http_server_python::context::PyContext,
         520  +
    >,
  501    521   
    handler: ::aws_smithy_http_server_python::PyHandler,
  502    522   
) -> std::result::Result<crate::output::EndpointOperationOutput, crate::error::EndpointOperationError>
  503    523   
{
  504    524   
    // Async block used to run the handler and catch any Python error.
  505    525   
    let result = if handler.is_coroutine {
  506    526   
        ::tracing::trace!(
  507    527   
            name = "endpoint_operation",
  508    528   
            "executing python handler coroutine"
  509    529   
        );
  510    530   
        let result = ::pyo3::Python::with_gil(|py| {
  511    531   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  512    532   
            let coroutine = if handler.args == 1 {
  513    533   
                pyhandler.call1((input,))?
  514    534   
            } else {
  515    535   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  516    536   
            };
  517    537   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  518    538   
        })?;
  519    539   
        result.await.and_then(|r| {
  520    540   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::EndpointOperationOutput>(py))
  521    541   
        })
  522    542   
    } else {
  523    543   
        ::tracing::trace!(
  524    544   
            name = "endpoint_operation",
  525    545   
            "executing python handler function"
  526    546   
        );
  527    547   
        ::pyo3::Python::with_gil(|py| {
  528    548   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  529    549   
            let output = if handler.args == 1 {
  530    550   
                pyhandler.call1((input,))?
  531    551   
            } else {
  532    552   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  533    553   
            };
  534    554   
            output.extract::<crate::output::EndpointOperationOutput>()
  535    555   
        })
  536    556   
    };
  537    557   
    // Catch and record a Python traceback.
  538    558   
    result.map_err(|e| {
  539    559   
        let rich_py_err =
  540    560   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  541    561   
                e.clone_ref(py)
  542    562   
            }));
  543    563   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  544    564   
        e.into()
  545    565   
    })
  546    566   
}
  547    567   
  548    568   
/// Python handler for operation `JsonUnions`.
  549    569   
pub(crate) async fn json_unions(
  550    570   
    input: crate::input::JsonUnionsInput,
  551         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         571  +
    state: ::aws_smithy_legacy_http_server::Extension<
         572  +
        ::aws_smithy_http_server_python::context::PyContext,
         573  +
    >,
  552    574   
    handler: ::aws_smithy_http_server_python::PyHandler,
  553    575   
) -> std::result::Result<crate::output::JsonUnionsOutput, crate::error::JsonUnionsError> {
  554    576   
    // Async block used to run the handler and catch any Python error.
  555    577   
    let result = if handler.is_coroutine {
  556    578   
        ::tracing::trace!(name = "json_unions", "executing python handler coroutine");
  557    579   
        let result = ::pyo3::Python::with_gil(|py| {
  558    580   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  559    581   
            let coroutine = if handler.args == 1 {
  560    582   
                pyhandler.call1((input,))?
  561    583   
            } else {
  562    584   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  563    585   
            };
  564    586   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  565    587   
        })?;
  566    588   
        result.await.and_then(|r| {
  567    589   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::JsonUnionsOutput>(py))
  568    590   
        })
  569    591   
    } else {
  570    592   
        ::tracing::trace!(name = "json_unions", "executing python handler function");
  571    593   
        ::pyo3::Python::with_gil(|py| {
  572    594   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  573    595   
            let output = if handler.args == 1 {
  574    596   
                pyhandler.call1((input,))?
  575    597   
            } else {
  576    598   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  577    599   
            };
  578    600   
            output.extract::<crate::output::JsonUnionsOutput>()
  579    601   
        })
  580    602   
    };
  581    603   
    // Catch and record a Python traceback.
  582    604   
    result.map_err(|e| {
  583    605   
        let rich_py_err =
  584    606   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  585    607   
                e.clone_ref(py)
  586    608   
            }));
  587    609   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  588    610   
        e.into()
  589    611   
    })
  590    612   
}
  591    613   
  592    614   
/// Python handler for operation `GreetingWithErrors`.
  593    615   
pub(crate) async fn greeting_with_errors(
  594    616   
    input: crate::input::GreetingWithErrorsInput,
  595         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         617  +
    state: ::aws_smithy_legacy_http_server::Extension<
         618  +
        ::aws_smithy_http_server_python::context::PyContext,
         619  +
    >,
  596    620   
    handler: ::aws_smithy_http_server_python::PyHandler,
  597    621   
) -> std::result::Result<
  598    622   
    crate::output::GreetingWithErrorsOutput,
  599    623   
    crate::error::GreetingWithErrorsError,
  600    624   
> {
  601    625   
    // Async block used to run the handler and catch any Python error.
  602    626   
    let result = if handler.is_coroutine {
  603    627   
        ::tracing::trace!(
  604    628   
            name = "greeting_with_errors",
  605    629   
            "executing python handler coroutine"
  606    630   
        );
  607    631   
        let result = ::pyo3::Python::with_gil(|py| {
  608    632   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  609    633   
            let coroutine = if handler.args == 1 {
  610    634   
                pyhandler.call1((input,))?
  611    635   
            } else {
  612    636   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  613    637   
            };
  614    638   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  615    639   
        })?;
  616    640   
        result.await.and_then(|r| {
  617    641   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::GreetingWithErrorsOutput>(py))
  618    642   
        })
  619    643   
    } else {
  620    644   
        ::tracing::trace!(
  621    645   
            name = "greeting_with_errors",
  622    646   
            "executing python handler function"
  623    647   
        );
  624    648   
        ::pyo3::Python::with_gil(|py| {
  625    649   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  626    650   
            let output = if handler.args == 1 {
  627    651   
                pyhandler.call1((input,))?
  628    652   
            } else {
  629    653   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  630    654   
            };
  631    655   
            output.extract::<crate::output::GreetingWithErrorsOutput>()
  632    656   
        })
  633    657   
    };
  634    658   
    // Catch and record a Python traceback.
  635    659   
    result.map_err(|e| {
  636    660   
        let rich_py_err =
  637    661   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  638    662   
                e.clone_ref(py)
  639    663   
            }));
  640    664   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  641    665   
        e.into()
  642    666   
    })
  643    667   
}
  644    668   
  645    669   
/// Python handler for operation `SimpleScalarProperties`.
  646    670   
pub(crate) async fn simple_scalar_properties(
  647    671   
    input: crate::input::SimpleScalarPropertiesInput,
  648         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         672  +
    state: ::aws_smithy_legacy_http_server::Extension<
         673  +
        ::aws_smithy_http_server_python::context::PyContext,
         674  +
    >,
  649    675   
    handler: ::aws_smithy_http_server_python::PyHandler,
  650    676   
) -> std::result::Result<
  651    677   
    crate::output::SimpleScalarPropertiesOutput,
  652    678   
    crate::error::SimpleScalarPropertiesError,
  653    679   
> {
  654    680   
    // Async block used to run the handler and catch any Python error.
  655    681   
    let result = if handler.is_coroutine {
  656    682   
        ::tracing::trace!(
  657    683   
            name = "simple_scalar_properties",
  658    684   
            "executing python handler coroutine"
  659    685   
        );
  660    686   
        let result = ::pyo3::Python::with_gil(|py| {
  661    687   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  662    688   
            let coroutine = if handler.args == 1 {
  663    689   
                pyhandler.call1((input,))?
  664    690   
            } else {
  665    691   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  666    692   
            };
  667    693   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  668    694   
        })?;
  669    695   
        result.await.and_then(|r| {
  670    696   
            ::pyo3::Python::with_gil(|py| {
  671    697   
                r.extract::<crate::output::SimpleScalarPropertiesOutput>(py)
  672    698   
            })
  673    699   
        })
  674    700   
    } else {
  675    701   
        ::tracing::trace!(
  676    702   
            name = "simple_scalar_properties",
  677    703   
            "executing python handler function"
  678    704   
        );
  679    705   
        ::pyo3::Python::with_gil(|py| {
  680    706   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  681    707   
            let output = if handler.args == 1 {
  682    708   
                pyhandler.call1((input,))?
  683    709   
            } else {
  684    710   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  685    711   
            };
  686    712   
            output.extract::<crate::output::SimpleScalarPropertiesOutput>()
  687    713   
        })
  688    714   
    };
  689    715   
    // Catch and record a Python traceback.
  690    716   
    result.map_err(|e| {
  691    717   
        let rich_py_err =
  692    718   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  693    719   
                e.clone_ref(py)
  694    720   
            }));
  695    721   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  696    722   
        e.into()
  697    723   
    })
  698    724   
}
  699    725   
  700    726   
/// Python handler for operation `EmptyInputAndEmptyOutput`.
  701    727   
pub(crate) async fn empty_input_and_empty_output(
  702    728   
    input: crate::input::EmptyInputAndEmptyOutputInput,
  703         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         729  +
    state: ::aws_smithy_legacy_http_server::Extension<
         730  +
        ::aws_smithy_http_server_python::context::PyContext,
         731  +
    >,
  704    732   
    handler: ::aws_smithy_http_server_python::PyHandler,
  705    733   
) -> std::result::Result<
  706    734   
    crate::output::EmptyInputAndEmptyOutputOutput,
  707    735   
    crate::error::EmptyInputAndEmptyOutputError,
  708    736   
> {
  709    737   
    // Async block used to run the handler and catch any Python error.
  710    738   
    let result = if handler.is_coroutine {
  711    739   
        ::tracing::trace!(
  712    740   
            name = "empty_input_and_empty_output",
  713    741   
            "executing python handler coroutine"
  714    742   
        );
  715    743   
        let result = ::pyo3::Python::with_gil(|py| {
  716    744   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  717    745   
            let coroutine = if handler.args == 1 {
  718    746   
                pyhandler.call1((input,))?
  719    747   
            } else {
  720    748   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  721    749   
            };
  722    750   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  723    751   
        })?;
  724    752   
        result.await.and_then(|r| {
  725    753   
            ::pyo3::Python::with_gil(|py| {
  726    754   
                r.extract::<crate::output::EmptyInputAndEmptyOutputOutput>(py)
  727    755   
            })
  728    756   
        })
  729    757   
    } else {
  730    758   
        ::tracing::trace!(
  731    759   
            name = "empty_input_and_empty_output",
  732    760   
            "executing python handler function"
  733    761   
        );
  734    762   
        ::pyo3::Python::with_gil(|py| {
  735    763   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  736    764   
            let output = if handler.args == 1 {
  737    765   
                pyhandler.call1((input,))?
  738    766   
            } else {
  739    767   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  740    768   
            };
  741    769   
            output.extract::<crate::output::EmptyInputAndEmptyOutputOutput>()
  742    770   
        })
  743    771   
    };
  744    772   
    // Catch and record a Python traceback.
  745    773   
    result.map_err(|e| {
  746    774   
        let rich_py_err =
  747    775   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  748    776   
                e.clone_ref(py)
  749    777   
            }));
  750    778   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  751    779   
        e.into()
  752    780   
    })
  753    781   
}
  754    782   
  755    783   
/// Python handler for operation `NoInputAndOutput`.
  756    784   
pub(crate) async fn no_input_and_output(
  757    785   
    input: crate::input::NoInputAndOutputInput,
  758         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         786  +
    state: ::aws_smithy_legacy_http_server::Extension<
         787  +
        ::aws_smithy_http_server_python::context::PyContext,
         788  +
    >,
  759    789   
    handler: ::aws_smithy_http_server_python::PyHandler,
  760    790   
) -> std::result::Result<crate::output::NoInputAndOutputOutput, crate::error::NoInputAndOutputError>
  761    791   
{
  762    792   
    // Async block used to run the handler and catch any Python error.
  763    793   
    let result = if handler.is_coroutine {
  764    794   
        ::tracing::trace!(
  765    795   
            name = "no_input_and_output",
  766    796   
            "executing python handler coroutine"
  767    797   
        );
  768    798   
        let result = ::pyo3::Python::with_gil(|py| {
  769    799   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  770    800   
            let coroutine = if handler.args == 1 {
  771    801   
                pyhandler.call1((input,))?
  772    802   
            } else {
  773    803   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  774    804   
            };
  775    805   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  776    806   
        })?;
  777    807   
        result.await.and_then(|r| {
  778    808   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::NoInputAndOutputOutput>(py))
  779    809   
        })
  780    810   
    } else {
  781    811   
        ::tracing::trace!(
  782    812   
            name = "no_input_and_output",
  783    813   
            "executing python handler function"
  784    814   
        );
  785    815   
        ::pyo3::Python::with_gil(|py| {
  786    816   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  787    817   
            let output = if handler.args == 1 {
  788    818   
                pyhandler.call1((input,))?
  789    819   
            } else {
  790    820   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  791    821   
            };
  792    822   
            output.extract::<crate::output::NoInputAndOutputOutput>()
  793    823   
        })
  794    824   
    };
  795    825   
    // Catch and record a Python traceback.
  796    826   
    result.map_err(|e| {
  797    827   
        let rich_py_err =
  798    828   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  799    829   
                e.clone_ref(py)
  800    830   
            }));
  801    831   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  802    832   
        e.into()
  803    833   
    })
  804    834   
}
  805    835   
  806    836   
/// Python handler for operation `NoInputAndNoOutput`.
  807    837   
pub(crate) async fn no_input_and_no_output(
  808    838   
    input: crate::input::NoInputAndNoOutputInput,
  809         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         839  +
    state: ::aws_smithy_legacy_http_server::Extension<
         840  +
        ::aws_smithy_http_server_python::context::PyContext,
         841  +
    >,
  810    842   
    handler: ::aws_smithy_http_server_python::PyHandler,
  811    843   
) -> std::result::Result<
  812    844   
    crate::output::NoInputAndNoOutputOutput,
  813    845   
    crate::error::NoInputAndNoOutputError,
  814    846   
> {
  815    847   
    // Async block used to run the handler and catch any Python error.
  816    848   
    let result = if handler.is_coroutine {
  817    849   
        ::tracing::trace!(
  818    850   
            name = "no_input_and_no_output",
  819    851   
            "executing python handler coroutine"

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

@@ -138,138 +199,199 @@
  158    158   
    fn handlers(
  159    159   
        &mut self,
  160    160   
    ) -> &mut ::std::collections::HashMap<String, ::aws_smithy_http_server_python::PyHandler> {
  161    161   
        &mut self.handlers
  162    162   
    }
  163    163   
    fn build_service(
  164    164   
        &mut self,
  165    165   
        event_loop: &::pyo3::PyAny,
  166    166   
    ) -> ::pyo3::PyResult<
  167    167   
        ::tower::util::BoxCloneService<
  168         -
            ::http::Request<::aws_smithy_http_server::body::Body>,
  169         -
            ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         168  +
            ::http::Request<::aws_smithy_legacy_http_server::body::Body>,
         169  +
            ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  170    170   
            std::convert::Infallible,
  171    171   
        >,
  172    172   
    > {
  173    173   
        let builder = crate::service::JsonRpc10::builder_without_plugins();
  174    174   
        let content_type_parameters_locals = ::pyo3_asyncio::TaskLocals::new(event_loop);
  175    175   
        let handler = self
  176    176   
            .handlers
  177    177   
            .get("content_type_parameters")
  178    178   
            .expect("Python handler for operation `content_type_parameters` not found")
  179    179   
            .clone();
@@ -397,397 +457,457 @@
  417    417   
        {
  418    418   
            use ::tower::Layer;
  419    419   
            ::tracing::trace!("adding middlewares to rust python router");
  420    420   
            let mut middlewares = self.middlewares.clone();
  421    421   
            // Reverse the middlewares, so they run with same order as they defined
  422    422   
            middlewares.reverse();
  423    423   
            for handler in middlewares {
  424    424   
                ::tracing::trace!(name = &handler.name, "adding python middleware");
  425    425   
                let locals = ::pyo3_asyncio::TaskLocals::new(event_loop);
  426    426   
                let layer = ::aws_smithy_http_server_python::PyMiddlewareLayer::<
  427         -
                    ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
         427  +
                    ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  428    428   
                >::new(handler, locals);
  429    429   
                service = ::tower::util::BoxCloneService::new(layer.layer(service));
  430    430   
            }
  431    431   
        }
  432    432   
        Ok(service)
  433    433   
    }
  434    434   
}
  435    435   
#[::pyo3::pymethods]
  436    436   
impl App {
  437    437   
    /// Create a new [App].

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

@@ -1,1 +2490,2531 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// The service builder for [`JsonRpc10`].
    3      3   
///
    4      4   
/// Constructed via [`JsonRpc10::builder`].
    5      5   
pub struct JsonRpc10Builder<Body, L, HttpPl, ModelPl> {
    6         -
    content_type_parameters: Option<::aws_smithy_http_server::routing::Route<Body>>,
    7         -
    empty_input_and_empty_output: Option<::aws_smithy_http_server::routing::Route<Body>>,
    8         -
    endpoint_operation: Option<::aws_smithy_http_server::routing::Route<Body>>,
    9         -
    endpoint_with_host_label_operation: Option<::aws_smithy_http_server::routing::Route<Body>>,
   10         -
    greeting_with_errors: Option<::aws_smithy_http_server::routing::Route<Body>>,
   11         -
    host_with_path_operation: Option<::aws_smithy_http_server::routing::Route<Body>>,
   12         -
    json_unions: Option<::aws_smithy_http_server::routing::Route<Body>>,
   13         -
    no_input_and_no_output: Option<::aws_smithy_http_server::routing::Route<Body>>,
   14         -
    no_input_and_output: Option<::aws_smithy_http_server::routing::Route<Body>>,
   15         -
    operation_with_defaults: Option<::aws_smithy_http_server::routing::Route<Body>>,
   16         -
    operation_with_nested_structure: Option<::aws_smithy_http_server::routing::Route<Body>>,
   17         -
    operation_with_required_members: Option<::aws_smithy_http_server::routing::Route<Body>>,
           6  +
    content_type_parameters: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
           7  +
    empty_input_and_empty_output: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
           8  +
    endpoint_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
           9  +
    endpoint_with_host_label_operation:
          10  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          11  +
    greeting_with_errors: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          12  +
    host_with_path_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          13  +
    json_unions: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          14  +
    no_input_and_no_output: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          15  +
    no_input_and_output: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          16  +
    operation_with_defaults: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          17  +
    operation_with_nested_structure: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          18  +
    operation_with_required_members: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
   18     19   
    operation_with_required_members_with_defaults:
   19         -
        Option<::aws_smithy_http_server::routing::Route<Body>>,
   20         -
    put_with_content_encoding: Option<::aws_smithy_http_server::routing::Route<Body>>,
   21         -
    query_incompatible_operation: Option<::aws_smithy_http_server::routing::Route<Body>>,
   22         -
    simple_scalar_properties: Option<::aws_smithy_http_server::routing::Route<Body>>,
          20  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          21  +
    put_with_content_encoding: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          22  +
    query_incompatible_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          23  +
    simple_scalar_properties: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
   23     24   
    layer: L,
   24     25   
    http_plugin: HttpPl,
   25     26   
    model_plugin: ModelPl,
   26     27   
}
   27     28   
   28     29   
impl<Body, L, HttpPl, ModelPl> JsonRpc10Builder<Body, L, HttpPl, ModelPl> {
   29     30   
    /// Sets the [`ContentTypeParameters`](crate::operation_shape::ContentTypeParameters) operation.
   30     31   
    ///
   31         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
   32         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
          32  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
          33  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
   33     34   
    ///
   34     35   
    /// # Example
   35     36   
    ///
   36     37   
    /// ```no_run
   37     38   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
   38     39   
    ///
   39     40   
    /// use json_rpc10::{input, output, error};
   40     41   
    ///
   41     42   
    /// async fn handler(input: input::ContentTypeParametersInput) -> Result<output::ContentTypeParametersOutput, error::ContentTypeParametersError> {
   42     43   
    ///     todo!()
   43     44   
    /// }
   44     45   
    ///
   45     46   
    /// let config = JsonRpc10Config::builder().build();
   46     47   
    /// let app = JsonRpc10::builder(config)
   47     48   
    ///     .content_type_parameters(handler)
   48     49   
    ///     /* Set other handlers */
   49     50   
    ///     .build()
   50     51   
    ///     .unwrap();
   51         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
          52  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
   52     53   
    /// ```
   53     54   
    ///
   54     55   
                    pub fn content_type_parameters<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
   55     56   
                    where
   56         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::ContentTypeParameters, HandlerExtractors>,
          57  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ContentTypeParameters, HandlerExtractors>,
   57     58   
   58         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
          59  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
   59     60   
                            JsonRpc10<L>,
   60     61   
                            crate::operation_shape::ContentTypeParameters,
   61         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::ContentTypeParameters, HandlerType>
          62  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ContentTypeParameters, HandlerType>
   62     63   
                        >,
   63         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
          64  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
   64     65   
                            JsonRpc10<L>,
   65     66   
                            crate::operation_shape::ContentTypeParameters,
   66     67   
                            ModelPl::Output
   67     68   
                        >,
   68         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
          69  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
   69     70   
                            JsonRpc10<L>,
   70     71   
                            crate::operation_shape::ContentTypeParameters,
   71     72   
                            <
   72         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
   73         -
                                as ::aws_smithy_http_server::plugin::Plugin<
          73  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
          74  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
   74     75   
                                    JsonRpc10<L>,
   75     76   
                                    crate::operation_shape::ContentTypeParameters,
   76     77   
                                    ModelPl::Output
   77     78   
                                >
   78     79   
                            >::Output
   79     80   
                        >,
   80     81   
   81         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
          82  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
   82     83   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
   83     84   
   84     85   
                    {
   85         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
   86         -
        use ::aws_smithy_http_server::plugin::Plugin;
          86  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
          87  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
   87     88   
        let svc = crate::operation_shape::ContentTypeParameters::from_handler(handler);
   88     89   
        let svc = self.model_plugin.apply(svc);
   89         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
          90  +
        let svc =
          91  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
   90     92   
                .apply(svc);
   91     93   
        let svc = self.http_plugin.apply(svc);
   92     94   
        self.content_type_parameters_custom(svc)
   93     95   
    }
   94     96   
   95     97   
    /// Sets the [`ContentTypeParameters`](crate::operation_shape::ContentTypeParameters) operation.
   96     98   
    ///
   97         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
   98         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
          99  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         100  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
   99    101   
    ///
  100    102   
    /// # Example
  101    103   
    ///
  102    104   
    /// ```no_run
  103    105   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  104    106   
    ///
  105    107   
    /// use json_rpc10::{input, output, error};
  106    108   
    ///
  107    109   
    /// async fn handler(input: input::ContentTypeParametersInput) -> Result<output::ContentTypeParametersOutput, error::ContentTypeParametersError> {
  108    110   
    ///     todo!()
  109    111   
    /// }
  110    112   
    ///
  111    113   
    /// let config = JsonRpc10Config::builder().build();
  112    114   
    /// let svc = ::tower::util::service_fn(handler);
  113    115   
    /// let app = JsonRpc10::builder(config)
  114    116   
    ///     .content_type_parameters_service(svc)
  115    117   
    ///     /* Set other handlers */
  116    118   
    ///     .build()
  117    119   
    ///     .unwrap();
  118         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         120  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  119    121   
    /// ```
  120    122   
    ///
  121    123   
                    pub fn content_type_parameters_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  122    124   
                    where
  123         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::ContentTypeParameters, ServiceExtractors>,
         125  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ContentTypeParameters, ServiceExtractors>,
  124    126   
  125         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         127  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  126    128   
                            JsonRpc10<L>,
  127    129   
                            crate::operation_shape::ContentTypeParameters,
  128         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::ContentTypeParameters, S>
         130  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ContentTypeParameters, S>
  129    131   
                        >,
  130         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         132  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  131    133   
                            JsonRpc10<L>,
  132    134   
                            crate::operation_shape::ContentTypeParameters,
  133    135   
                            ModelPl::Output
  134    136   
                        >,
  135         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         137  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  136    138   
                            JsonRpc10<L>,
  137    139   
                            crate::operation_shape::ContentTypeParameters,
  138    140   
                            <
  139         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  140         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         141  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         142  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  141    143   
                                    JsonRpc10<L>,
  142    144   
                                    crate::operation_shape::ContentTypeParameters,
  143    145   
                                    ModelPl::Output
  144    146   
                                >
  145    147   
                            >::Output
  146    148   
                        >,
  147    149   
  148         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         150  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  149    151   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  150    152   
  151    153   
                    {
  152         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  153         -
        use ::aws_smithy_http_server::plugin::Plugin;
         154  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         155  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  154    156   
        let svc = crate::operation_shape::ContentTypeParameters::from_service(service);
  155    157   
        let svc = self.model_plugin.apply(svc);
  156         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         158  +
        let svc =
         159  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  157    160   
                .apply(svc);
  158    161   
        let svc = self.http_plugin.apply(svc);
  159    162   
        self.content_type_parameters_custom(svc)
  160    163   
    }
  161    164   
  162    165   
    /// Sets the [`ContentTypeParameters`](crate::operation_shape::ContentTypeParameters) to a custom [`Service`](tower::Service).
  163    166   
    /// not constrained by the Smithy contract.
  164    167   
    fn content_type_parameters_custom<S>(mut self, svc: S) -> Self
  165    168   
    where
  166    169   
        S: ::tower::Service<
  167    170   
                ::http::Request<Body>,
  168         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         171  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  169    172   
                Error = ::std::convert::Infallible,
  170    173   
            > + Clone
  171    174   
            + Send
  172    175   
            + 'static,
  173    176   
        S::Future: Send + 'static,
  174    177   
    {
  175         -
        self.content_type_parameters = Some(::aws_smithy_http_server::routing::Route::new(svc));
         178  +
        self.content_type_parameters =
         179  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  176    180   
        self
  177    181   
    }
  178    182   
  179    183   
    /// Sets the [`EmptyInputAndEmptyOutput`](crate::operation_shape::EmptyInputAndEmptyOutput) operation.
  180    184   
    ///
  181         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  182         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         185  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         186  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  183    187   
    ///
  184    188   
    /// # Example
  185    189   
    ///
  186    190   
    /// ```no_run
  187    191   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  188    192   
    ///
  189    193   
    /// use json_rpc10::{input, output, error};
  190    194   
    ///
  191    195   
    /// async fn handler(input: input::EmptyInputAndEmptyOutputInput) -> Result<output::EmptyInputAndEmptyOutputOutput, error::EmptyInputAndEmptyOutputError> {
  192    196   
    ///     todo!()
  193    197   
    /// }
  194    198   
    ///
  195    199   
    /// let config = JsonRpc10Config::builder().build();
  196    200   
    /// let app = JsonRpc10::builder(config)
  197    201   
    ///     .empty_input_and_empty_output(handler)
  198    202   
    ///     /* Set other handlers */
  199    203   
    ///     .build()
  200    204   
    ///     .unwrap();
  201         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         205  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  202    206   
    /// ```
  203    207   
    ///
  204    208   
                    pub fn empty_input_and_empty_output<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  205    209   
                    where
  206         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::EmptyInputAndEmptyOutput, HandlerExtractors>,
         210  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EmptyInputAndEmptyOutput, HandlerExtractors>,
  207    211   
  208         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         212  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  209    213   
                            JsonRpc10<L>,
  210    214   
                            crate::operation_shape::EmptyInputAndEmptyOutput,
  211         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::EmptyInputAndEmptyOutput, HandlerType>
         215  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EmptyInputAndEmptyOutput, HandlerType>
  212    216   
                        >,
  213         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         217  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  214    218   
                            JsonRpc10<L>,
  215    219   
                            crate::operation_shape::EmptyInputAndEmptyOutput,
  216    220   
                            ModelPl::Output
  217    221   
                        >,
  218         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         222  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  219    223   
                            JsonRpc10<L>,
  220    224   
                            crate::operation_shape::EmptyInputAndEmptyOutput,
  221    225   
                            <
  222         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  223         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         226  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         227  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  224    228   
                                    JsonRpc10<L>,
  225    229   
                                    crate::operation_shape::EmptyInputAndEmptyOutput,
  226    230   
                                    ModelPl::Output
  227    231   
                                >
  228    232   
                            >::Output
  229    233   
                        >,
  230    234   
  231         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         235  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  232    236   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  233    237   
  234    238   
                    {
  235         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  236         -
        use ::aws_smithy_http_server::plugin::Plugin;
         239  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         240  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  237    241   
        let svc = crate::operation_shape::EmptyInputAndEmptyOutput::from_handler(handler);
  238    242   
        let svc = self.model_plugin.apply(svc);
  239         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         243  +
        let svc =
         244  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  240    245   
                .apply(svc);
  241    246   
        let svc = self.http_plugin.apply(svc);
  242    247   
        self.empty_input_and_empty_output_custom(svc)
  243    248   
    }
  244    249   
  245    250   
    /// Sets the [`EmptyInputAndEmptyOutput`](crate::operation_shape::EmptyInputAndEmptyOutput) operation.
  246    251   
    ///
  247         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  248         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         252  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         253  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  249    254   
    ///
  250    255   
    /// # Example
  251    256   
    ///
  252    257   
    /// ```no_run
  253    258   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  254    259   
    ///
  255    260   
    /// use json_rpc10::{input, output, error};
  256    261   
    ///
  257    262   
    /// async fn handler(input: input::EmptyInputAndEmptyOutputInput) -> Result<output::EmptyInputAndEmptyOutputOutput, error::EmptyInputAndEmptyOutputError> {
  258    263   
    ///     todo!()
  259    264   
    /// }
  260    265   
    ///
  261    266   
    /// let config = JsonRpc10Config::builder().build();
  262    267   
    /// let svc = ::tower::util::service_fn(handler);
  263    268   
    /// let app = JsonRpc10::builder(config)
  264    269   
    ///     .empty_input_and_empty_output_service(svc)
  265    270   
    ///     /* Set other handlers */
  266    271   
    ///     .build()
  267    272   
    ///     .unwrap();
  268         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         273  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  269    274   
    /// ```
  270    275   
    ///
  271    276   
                    pub fn empty_input_and_empty_output_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  272    277   
                    where
  273         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::EmptyInputAndEmptyOutput, ServiceExtractors>,
         278  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EmptyInputAndEmptyOutput, ServiceExtractors>,
  274    279   
  275         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         280  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  276    281   
                            JsonRpc10<L>,
  277    282   
                            crate::operation_shape::EmptyInputAndEmptyOutput,
  278         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::EmptyInputAndEmptyOutput, S>
         283  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EmptyInputAndEmptyOutput, S>
  279    284   
                        >,
  280         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         285  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  281    286   
                            JsonRpc10<L>,
  282    287   
                            crate::operation_shape::EmptyInputAndEmptyOutput,
  283    288   
                            ModelPl::Output
  284    289   
                        >,
  285         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         290  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  286    291   
                            JsonRpc10<L>,
  287    292   
                            crate::operation_shape::EmptyInputAndEmptyOutput,
  288    293   
                            <
  289         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  290         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         294  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         295  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  291    296   
                                    JsonRpc10<L>,
  292    297   
                                    crate::operation_shape::EmptyInputAndEmptyOutput,
  293    298   
                                    ModelPl::Output
  294    299   
                                >
  295    300   
                            >::Output
  296    301   
                        >,
  297    302   
  298         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         303  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  299    304   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  300    305   
  301    306   
                    {
  302         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  303         -
        use ::aws_smithy_http_server::plugin::Plugin;
         307  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         308  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  304    309   
        let svc = crate::operation_shape::EmptyInputAndEmptyOutput::from_service(service);
  305    310   
        let svc = self.model_plugin.apply(svc);
  306         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         311  +
        let svc =
         312  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  307    313   
                .apply(svc);
  308    314   
        let svc = self.http_plugin.apply(svc);
  309    315   
        self.empty_input_and_empty_output_custom(svc)
  310    316   
    }
  311    317   
  312    318   
    /// Sets the [`EmptyInputAndEmptyOutput`](crate::operation_shape::EmptyInputAndEmptyOutput) to a custom [`Service`](tower::Service).
  313    319   
    /// not constrained by the Smithy contract.
  314    320   
    fn empty_input_and_empty_output_custom<S>(mut self, svc: S) -> Self
  315    321   
    where
  316    322   
        S: ::tower::Service<
  317    323   
                ::http::Request<Body>,
  318         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         324  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  319    325   
                Error = ::std::convert::Infallible,
  320    326   
            > + Clone
  321    327   
            + Send
  322    328   
            + 'static,
  323    329   
        S::Future: Send + 'static,
  324    330   
    {
  325    331   
        self.empty_input_and_empty_output =
  326         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
         332  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  327    333   
        self
  328    334   
    }
  329    335   
  330    336   
    /// Sets the [`EndpointOperation`](crate::operation_shape::EndpointOperation) operation.
  331    337   
    ///
  332         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  333         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         338  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         339  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  334    340   
    ///
  335    341   
    /// # Example
  336    342   
    ///
  337    343   
    /// ```no_run
  338    344   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  339    345   
    ///
  340    346   
    /// use json_rpc10::{input, output, error};
  341    347   
    ///
  342    348   
    /// async fn handler(input: input::EndpointOperationInput) -> Result<output::EndpointOperationOutput, error::EndpointOperationError> {
  343    349   
    ///     todo!()
  344    350   
    /// }
  345    351   
    ///
  346    352   
    /// let config = JsonRpc10Config::builder().build();
  347    353   
    /// let app = JsonRpc10::builder(config)
  348    354   
    ///     .endpoint_operation(handler)
  349    355   
    ///     /* Set other handlers */
  350    356   
    ///     .build()
  351    357   
    ///     .unwrap();
  352         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         358  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  353    359   
    /// ```
  354    360   
    ///
  355    361   
                    pub fn endpoint_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  356    362   
                    where
  357         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::EndpointOperation, HandlerExtractors>,
         363  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EndpointOperation, HandlerExtractors>,
  358    364   
  359         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         365  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  360    366   
                            JsonRpc10<L>,
  361    367   
                            crate::operation_shape::EndpointOperation,
  362         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::EndpointOperation, HandlerType>
         368  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EndpointOperation, HandlerType>
  363    369   
                        >,
  364         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         370  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  365    371   
                            JsonRpc10<L>,
  366    372   
                            crate::operation_shape::EndpointOperation,
  367    373   
                            ModelPl::Output
  368    374   
                        >,
  369         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         375  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  370    376   
                            JsonRpc10<L>,
  371    377   
                            crate::operation_shape::EndpointOperation,
  372    378   
                            <
  373         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  374         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         379  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         380  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  375    381   
                                    JsonRpc10<L>,
  376    382   
                                    crate::operation_shape::EndpointOperation,
  377    383   
                                    ModelPl::Output
  378    384   
                                >
  379    385   
                            >::Output
  380    386   
                        >,
  381    387   
  382         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         388  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  383    389   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  384    390   
  385    391   
                    {
  386         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  387         -
        use ::aws_smithy_http_server::plugin::Plugin;
         392  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         393  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  388    394   
        let svc = crate::operation_shape::EndpointOperation::from_handler(handler);
  389    395   
        let svc = self.model_plugin.apply(svc);
  390         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         396  +
        let svc =
         397  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  391    398   
                .apply(svc);
  392    399   
        let svc = self.http_plugin.apply(svc);
  393    400   
        self.endpoint_operation_custom(svc)
  394    401   
    }
  395    402   
  396    403   
    /// Sets the [`EndpointOperation`](crate::operation_shape::EndpointOperation) operation.
  397    404   
    ///
  398         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  399         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         405  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         406  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  400    407   
    ///
  401    408   
    /// # Example
  402    409   
    ///
  403    410   
    /// ```no_run
  404    411   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  405    412   
    ///
  406    413   
    /// use json_rpc10::{input, output, error};
  407    414   
    ///
  408    415   
    /// async fn handler(input: input::EndpointOperationInput) -> Result<output::EndpointOperationOutput, error::EndpointOperationError> {
  409    416   
    ///     todo!()
  410    417   
    /// }
  411    418   
    ///
  412    419   
    /// let config = JsonRpc10Config::builder().build();
  413    420   
    /// let svc = ::tower::util::service_fn(handler);
  414    421   
    /// let app = JsonRpc10::builder(config)
  415    422   
    ///     .endpoint_operation_service(svc)
  416    423   
    ///     /* Set other handlers */
  417    424   
    ///     .build()
  418    425   
    ///     .unwrap();
  419         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         426  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  420    427   
    /// ```
  421    428   
    ///
  422    429   
                    pub fn endpoint_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  423    430   
                    where
  424         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::EndpointOperation, ServiceExtractors>,
         431  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EndpointOperation, ServiceExtractors>,
  425    432   
  426         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         433  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  427    434   
                            JsonRpc10<L>,
  428    435   
                            crate::operation_shape::EndpointOperation,
  429         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::EndpointOperation, S>
         436  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EndpointOperation, S>
  430    437   
                        >,
  431         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         438  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  432    439   
                            JsonRpc10<L>,
  433    440   
                            crate::operation_shape::EndpointOperation,
  434    441   
                            ModelPl::Output
  435    442   
                        >,
  436         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         443  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  437    444   
                            JsonRpc10<L>,
  438    445   
                            crate::operation_shape::EndpointOperation,
  439    446   
                            <
  440         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  441         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         447  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         448  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  442    449   
                                    JsonRpc10<L>,
  443    450   
                                    crate::operation_shape::EndpointOperation,
  444    451   
                                    ModelPl::Output
  445    452   
                                >
  446    453   
                            >::Output
  447    454   
                        >,
  448    455   
  449         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         456  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  450    457   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  451    458   
  452    459   
                    {
  453         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  454         -
        use ::aws_smithy_http_server::plugin::Plugin;
         460  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         461  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  455    462   
        let svc = crate::operation_shape::EndpointOperation::from_service(service);
  456    463   
        let svc = self.model_plugin.apply(svc);
  457         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         464  +
        let svc =
         465  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  458    466   
                .apply(svc);
  459    467   
        let svc = self.http_plugin.apply(svc);
  460    468   
        self.endpoint_operation_custom(svc)
  461    469   
    }
  462    470   
  463    471   
    /// Sets the [`EndpointOperation`](crate::operation_shape::EndpointOperation) to a custom [`Service`](tower::Service).
  464    472   
    /// not constrained by the Smithy contract.
  465    473   
    fn endpoint_operation_custom<S>(mut self, svc: S) -> Self
  466    474   
    where
  467    475   
        S: ::tower::Service<
  468    476   
                ::http::Request<Body>,
  469         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         477  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  470    478   
                Error = ::std::convert::Infallible,
  471    479   
            > + Clone
  472    480   
            + Send
  473    481   
            + 'static,
  474    482   
        S::Future: Send + 'static,
  475    483   
    {
  476         -
        self.endpoint_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
         484  +
        self.endpoint_operation = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  477    485   
        self
  478    486   
    }
  479    487   
  480    488   
    /// Sets the [`EndpointWithHostLabelOperation`](crate::operation_shape::EndpointWithHostLabelOperation) operation.
  481    489   
    ///
  482         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  483         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         490  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         491  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  484    492   
    ///
  485    493   
    /// # Example
  486    494   
    ///
  487    495   
    /// ```no_run
  488    496   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  489    497   
    ///
  490    498   
    /// use json_rpc10::{input, output, error};
  491    499   
    ///
  492    500   
    /// async fn handler(input: input::EndpointWithHostLabelOperationInput) -> Result<output::EndpointWithHostLabelOperationOutput, error::EndpointWithHostLabelOperationError> {
  493    501   
    ///     todo!()
  494    502   
    /// }
  495    503   
    ///
  496    504   
    /// let config = JsonRpc10Config::builder().build();
  497    505   
    /// let app = JsonRpc10::builder(config)
  498    506   
    ///     .endpoint_with_host_label_operation(handler)
  499    507   
    ///     /* Set other handlers */
  500    508   
    ///     .build()
  501    509   
    ///     .unwrap();
  502         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         510  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  503    511   
    /// ```
  504    512   
    ///
  505    513   
                    pub fn endpoint_with_host_label_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  506    514   
                    where
  507         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::EndpointWithHostLabelOperation, HandlerExtractors>,
         515  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EndpointWithHostLabelOperation, HandlerExtractors>,
  508    516   
  509         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         517  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  510    518   
                            JsonRpc10<L>,
  511    519   
                            crate::operation_shape::EndpointWithHostLabelOperation,
  512         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::EndpointWithHostLabelOperation, HandlerType>
         520  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EndpointWithHostLabelOperation, HandlerType>
  513    521   
                        >,
  514         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         522  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  515    523   
                            JsonRpc10<L>,
  516    524   
                            crate::operation_shape::EndpointWithHostLabelOperation,
  517    525   
                            ModelPl::Output
  518    526   
                        >,
  519         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         527  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  520    528   
                            JsonRpc10<L>,
  521    529   
                            crate::operation_shape::EndpointWithHostLabelOperation,
  522    530   
                            <
  523         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  524         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         531  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         532  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  525    533   
                                    JsonRpc10<L>,
  526    534   
                                    crate::operation_shape::EndpointWithHostLabelOperation,
  527    535   
                                    ModelPl::Output
  528    536   
                                >
  529    537   
                            >::Output
  530    538   
                        >,
  531    539   
  532         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         540  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  533    541   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  534    542   
  535    543   
                    {
  536         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  537         -
        use ::aws_smithy_http_server::plugin::Plugin;
         544  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         545  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  538    546   
        let svc = crate::operation_shape::EndpointWithHostLabelOperation::from_handler(handler);
  539    547   
        let svc = self.model_plugin.apply(svc);
  540         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         548  +
        let svc =
         549  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  541    550   
                .apply(svc);
  542    551   
        let svc = self.http_plugin.apply(svc);
  543    552   
        self.endpoint_with_host_label_operation_custom(svc)
  544    553   
    }
  545    554   
  546    555   
    /// Sets the [`EndpointWithHostLabelOperation`](crate::operation_shape::EndpointWithHostLabelOperation) operation.
  547    556   
    ///
  548         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  549         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         557  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         558  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  550    559   
    ///
  551    560   
    /// # Example
  552    561   
    ///
  553    562   
    /// ```no_run
  554    563   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  555    564   
    ///
  556    565   
    /// use json_rpc10::{input, output, error};
  557    566   
    ///
  558    567   
    /// async fn handler(input: input::EndpointWithHostLabelOperationInput) -> Result<output::EndpointWithHostLabelOperationOutput, error::EndpointWithHostLabelOperationError> {
  559    568   
    ///     todo!()
  560    569   
    /// }
  561    570   
    ///
  562    571   
    /// let config = JsonRpc10Config::builder().build();
  563    572   
    /// let svc = ::tower::util::service_fn(handler);
  564    573   
    /// let app = JsonRpc10::builder(config)
  565    574   
    ///     .endpoint_with_host_label_operation_service(svc)
  566    575   
    ///     /* Set other handlers */
  567    576   
    ///     .build()
  568    577   
    ///     .unwrap();
  569         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         578  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  570    579   
    /// ```
  571    580   
    ///
  572    581   
                    pub fn endpoint_with_host_label_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  573    582   
                    where
  574         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::EndpointWithHostLabelOperation, ServiceExtractors>,
         583  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EndpointWithHostLabelOperation, ServiceExtractors>,
  575    584   
  576         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         585  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  577    586   
                            JsonRpc10<L>,
  578    587   
                            crate::operation_shape::EndpointWithHostLabelOperation,
  579         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::EndpointWithHostLabelOperation, S>
         588  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EndpointWithHostLabelOperation, S>
  580    589   
                        >,
  581         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         590  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  582    591   
                            JsonRpc10<L>,
  583    592   
                            crate::operation_shape::EndpointWithHostLabelOperation,
  584    593   
                            ModelPl::Output
  585    594   
                        >,
  586         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         595  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  587    596   
                            JsonRpc10<L>,
  588    597   
                            crate::operation_shape::EndpointWithHostLabelOperation,
  589    598   
                            <
  590         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  591         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         599  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         600  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  592    601   
                                    JsonRpc10<L>,
  593    602   
                                    crate::operation_shape::EndpointWithHostLabelOperation,
  594    603   
                                    ModelPl::Output
  595    604   
                                >
  596    605   
                            >::Output
  597    606   
                        >,
  598    607   
  599         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         608  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  600    609   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  601    610   
  602    611   
                    {
  603         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  604         -
        use ::aws_smithy_http_server::plugin::Plugin;
         612  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         613  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  605    614   
        let svc = crate::operation_shape::EndpointWithHostLabelOperation::from_service(service);
  606    615   
        let svc = self.model_plugin.apply(svc);
  607         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         616  +
        let svc =
         617  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  608    618   
                .apply(svc);
  609    619   
        let svc = self.http_plugin.apply(svc);
  610    620   
        self.endpoint_with_host_label_operation_custom(svc)
  611    621   
    }
  612    622   
  613    623   
    /// Sets the [`EndpointWithHostLabelOperation`](crate::operation_shape::EndpointWithHostLabelOperation) to a custom [`Service`](tower::Service).
  614    624   
    /// not constrained by the Smithy contract.
  615    625   
    fn endpoint_with_host_label_operation_custom<S>(mut self, svc: S) -> Self
  616    626   
    where
  617    627   
        S: ::tower::Service<
  618    628   
                ::http::Request<Body>,
  619         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         629  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  620    630   
                Error = ::std::convert::Infallible,
  621    631   
            > + Clone
  622    632   
            + Send
  623    633   
            + 'static,
  624    634   
        S::Future: Send + 'static,
  625    635   
    {
  626    636   
        self.endpoint_with_host_label_operation =
  627         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
         637  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  628    638   
        self
  629    639   
    }
  630    640   
  631    641   
    /// Sets the [`GreetingWithErrors`](crate::operation_shape::GreetingWithErrors) operation.
  632    642   
    ///
  633         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  634         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         643  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         644  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  635    645   
    ///
  636    646   
    /// # Example
  637    647   
    ///
  638    648   
    /// ```no_run
  639    649   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  640    650   
    ///
  641    651   
    /// use json_rpc10::{input, output, error};
  642    652   
    ///
  643    653   
    /// async fn handler(input: input::GreetingWithErrorsInput) -> Result<output::GreetingWithErrorsOutput, error::GreetingWithErrorsError> {
  644    654   
    ///     todo!()
  645    655   
    /// }
  646    656   
    ///
  647    657   
    /// let config = JsonRpc10Config::builder().build();
  648    658   
    /// let app = JsonRpc10::builder(config)
  649    659   
    ///     .greeting_with_errors(handler)
  650    660   
    ///     /* Set other handlers */
  651    661   
    ///     .build()
  652    662   
    ///     .unwrap();
  653         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         663  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  654    664   
    /// ```
  655    665   
    ///
  656    666   
                    pub fn greeting_with_errors<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  657    667   
                    where
  658         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::GreetingWithErrors, HandlerExtractors>,
         668  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::GreetingWithErrors, HandlerExtractors>,
  659    669   
  660         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         670  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  661    671   
                            JsonRpc10<L>,
  662    672   
                            crate::operation_shape::GreetingWithErrors,
  663         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::GreetingWithErrors, HandlerType>
         673  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::GreetingWithErrors, HandlerType>
  664    674   
                        >,
  665         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         675  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  666    676   
                            JsonRpc10<L>,
  667    677   
                            crate::operation_shape::GreetingWithErrors,
  668    678   
                            ModelPl::Output
  669    679   
                        >,
  670         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         680  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  671    681   
                            JsonRpc10<L>,
  672    682   
                            crate::operation_shape::GreetingWithErrors,
  673    683   
                            <
  674         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  675         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         684  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         685  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  676    686   
                                    JsonRpc10<L>,
  677    687   
                                    crate::operation_shape::GreetingWithErrors,
  678    688   
                                    ModelPl::Output
  679    689   
                                >
  680    690   
                            >::Output
  681    691   
                        >,
  682    692   
  683         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         693  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  684    694   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  685    695   
  686    696   
                    {
  687         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  688         -
        use ::aws_smithy_http_server::plugin::Plugin;
         697  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         698  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  689    699   
        let svc = crate::operation_shape::GreetingWithErrors::from_handler(handler);
  690    700   
        let svc = self.model_plugin.apply(svc);
  691         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         701  +
        let svc =
         702  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  692    703   
                .apply(svc);
  693    704   
        let svc = self.http_plugin.apply(svc);
  694    705   
        self.greeting_with_errors_custom(svc)
  695    706   
    }
  696    707   
  697    708   
    /// Sets the [`GreetingWithErrors`](crate::operation_shape::GreetingWithErrors) operation.
  698    709   
    ///
  699         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  700         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         710  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         711  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  701    712   
    ///
  702    713   
    /// # Example
  703    714   
    ///
  704    715   
    /// ```no_run
  705    716   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  706    717   
    ///
  707    718   
    /// use json_rpc10::{input, output, error};
  708    719   
    ///
  709    720   
    /// async fn handler(input: input::GreetingWithErrorsInput) -> Result<output::GreetingWithErrorsOutput, error::GreetingWithErrorsError> {
  710    721   
    ///     todo!()
  711    722   
    /// }
  712    723   
    ///
  713    724   
    /// let config = JsonRpc10Config::builder().build();
  714    725   
    /// let svc = ::tower::util::service_fn(handler);
  715    726   
    /// let app = JsonRpc10::builder(config)
  716    727   
    ///     .greeting_with_errors_service(svc)
  717    728   
    ///     /* Set other handlers */
  718    729   
    ///     .build()
  719    730   
    ///     .unwrap();
  720         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         731  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  721    732   
    /// ```
  722    733   
    ///
  723    734   
                    pub fn greeting_with_errors_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  724    735   
                    where
  725         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::GreetingWithErrors, ServiceExtractors>,
         736  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::GreetingWithErrors, ServiceExtractors>,
  726    737   
  727         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         738  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  728    739   
                            JsonRpc10<L>,
  729    740   
                            crate::operation_shape::GreetingWithErrors,
  730         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::GreetingWithErrors, S>
         741  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::GreetingWithErrors, S>
  731    742   
                        >,
  732         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         743  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  733    744   
                            JsonRpc10<L>,
  734    745   
                            crate::operation_shape::GreetingWithErrors,
  735    746   
                            ModelPl::Output
  736    747   
                        >,
  737         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         748  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  738    749   
                            JsonRpc10<L>,
  739    750   
                            crate::operation_shape::GreetingWithErrors,
  740    751   
                            <
  741         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  742         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         752  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         753  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  743    754   
                                    JsonRpc10<L>,
  744    755   
                                    crate::operation_shape::GreetingWithErrors,
  745    756   
                                    ModelPl::Output
  746    757   
                                >
  747    758   
                            >::Output
  748    759   
                        >,
  749    760   
  750         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         761  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  751    762   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  752    763   
  753    764   
                    {
  754         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  755         -
        use ::aws_smithy_http_server::plugin::Plugin;
         765  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         766  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  756    767   
        let svc = crate::operation_shape::GreetingWithErrors::from_service(service);
  757    768   
        let svc = self.model_plugin.apply(svc);
  758         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         769  +
        let svc =
         770  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  759    771   
                .apply(svc);
  760    772   
        let svc = self.http_plugin.apply(svc);
  761    773   
        self.greeting_with_errors_custom(svc)
  762    774   
    }
  763    775   
  764    776   
    /// Sets the [`GreetingWithErrors`](crate::operation_shape::GreetingWithErrors) to a custom [`Service`](tower::Service).
  765    777   
    /// not constrained by the Smithy contract.
  766    778   
    fn greeting_with_errors_custom<S>(mut self, svc: S) -> Self
  767    779   
    where
  768    780   
        S: ::tower::Service<
  769    781   
                ::http::Request<Body>,
  770         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         782  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  771    783   
                Error = ::std::convert::Infallible,
  772    784   
            > + Clone
  773    785   
            + Send
  774    786   
            + 'static,
  775    787   
        S::Future: Send + 'static,
  776    788   
    {
  777         -
        self.greeting_with_errors = Some(::aws_smithy_http_server::routing::Route::new(svc));
         789  +
        self.greeting_with_errors = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  778    790   
        self
  779    791   
    }
  780    792   
  781    793   
    /// Sets the [`HostWithPathOperation`](crate::operation_shape::HostWithPathOperation) operation.
  782    794   
    ///
  783         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  784         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         795  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         796  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  785    797   
    ///
  786    798   
    /// # Example
  787    799   
    ///
  788    800   
    /// ```no_run
  789    801   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  790    802   
    ///
  791    803   
    /// use json_rpc10::{input, output, error};
  792    804   
    ///
  793    805   
    /// async fn handler(input: input::HostWithPathOperationInput) -> Result<output::HostWithPathOperationOutput, error::HostWithPathOperationError> {
  794    806   
    ///     todo!()
  795    807   
    /// }
  796    808   
    ///
  797    809   
    /// let config = JsonRpc10Config::builder().build();
  798    810   
    /// let app = JsonRpc10::builder(config)
  799    811   
    ///     .host_with_path_operation(handler)
  800    812   
    ///     /* Set other handlers */
  801    813   
    ///     .build()
  802    814   
    ///     .unwrap();
  803         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         815  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  804    816   
    /// ```
  805    817   
    ///
  806    818   
                    pub fn host_with_path_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  807    819   
                    where
  808         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::HostWithPathOperation, HandlerExtractors>,
         820  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HostWithPathOperation, HandlerExtractors>,
  809    821   
  810         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         822  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  811    823   
                            JsonRpc10<L>,
  812    824   
                            crate::operation_shape::HostWithPathOperation,
  813         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::HostWithPathOperation, HandlerType>
         825  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HostWithPathOperation, HandlerType>
  814    826   
                        >,
  815         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         827  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  816    828   
                            JsonRpc10<L>,
  817    829   
                            crate::operation_shape::HostWithPathOperation,
  818    830   
                            ModelPl::Output
  819    831   
                        >,
  820         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         832  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  821    833   
                            JsonRpc10<L>,
  822    834   
                            crate::operation_shape::HostWithPathOperation,
  823    835   
                            <
  824         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  825         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         836  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         837  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  826    838   
                                    JsonRpc10<L>,
  827    839   
                                    crate::operation_shape::HostWithPathOperation,
  828    840   
                                    ModelPl::Output
  829    841   
                                >
  830    842   
                            >::Output
  831    843   
                        >,
  832    844   
  833         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         845  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  834    846   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  835    847   
  836    848   
                    {
  837         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  838         -
        use ::aws_smithy_http_server::plugin::Plugin;
         849  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         850  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  839    851   
        let svc = crate::operation_shape::HostWithPathOperation::from_handler(handler);
  840    852   
        let svc = self.model_plugin.apply(svc);
  841         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         853  +
        let svc =
         854  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  842    855   
                .apply(svc);
  843    856   
        let svc = self.http_plugin.apply(svc);
  844    857   
        self.host_with_path_operation_custom(svc)
  845    858   
    }
  846    859   
  847    860   
    /// Sets the [`HostWithPathOperation`](crate::operation_shape::HostWithPathOperation) operation.
  848    861   
    ///
  849         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  850         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         862  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         863  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  851    864   
    ///
  852    865   
    /// # Example
  853    866   
    ///
  854    867   
    /// ```no_run
  855    868   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  856    869   
    ///
  857    870   
    /// use json_rpc10::{input, output, error};
  858    871   
    ///
  859    872   
    /// async fn handler(input: input::HostWithPathOperationInput) -> Result<output::HostWithPathOperationOutput, error::HostWithPathOperationError> {
  860    873   
    ///     todo!()
  861    874   
    /// }
  862    875   
    ///
  863    876   
    /// let config = JsonRpc10Config::builder().build();
  864    877   
    /// let svc = ::tower::util::service_fn(handler);
  865    878   
    /// let app = JsonRpc10::builder(config)
  866    879   
    ///     .host_with_path_operation_service(svc)
  867    880   
    ///     /* Set other handlers */
  868    881   
    ///     .build()
  869    882   
    ///     .unwrap();
  870         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         883  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  871    884   
    /// ```
  872    885   
    ///
  873    886   
                    pub fn host_with_path_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
  874    887   
                    where
  875         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::HostWithPathOperation, ServiceExtractors>,
         888  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HostWithPathOperation, ServiceExtractors>,
  876    889   
  877         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         890  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  878    891   
                            JsonRpc10<L>,
  879    892   
                            crate::operation_shape::HostWithPathOperation,
  880         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::HostWithPathOperation, S>
         893  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HostWithPathOperation, S>
  881    894   
                        >,
  882         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         895  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  883    896   
                            JsonRpc10<L>,
  884    897   
                            crate::operation_shape::HostWithPathOperation,
  885    898   
                            ModelPl::Output
  886    899   
                        >,
  887         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         900  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  888    901   
                            JsonRpc10<L>,
  889    902   
                            crate::operation_shape::HostWithPathOperation,
  890    903   
                            <
  891         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  892         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         904  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         905  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  893    906   
                                    JsonRpc10<L>,
  894    907   
                                    crate::operation_shape::HostWithPathOperation,
  895    908   
                                    ModelPl::Output
  896    909   
                                >
  897    910   
                            >::Output
  898    911   
                        >,
  899    912   
  900         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         913  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  901    914   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  902    915   
  903    916   
                    {
  904         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  905         -
        use ::aws_smithy_http_server::plugin::Plugin;
         917  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         918  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  906    919   
        let svc = crate::operation_shape::HostWithPathOperation::from_service(service);
  907    920   
        let svc = self.model_plugin.apply(svc);
  908         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         921  +
        let svc =
         922  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  909    923   
                .apply(svc);
  910    924   
        let svc = self.http_plugin.apply(svc);
  911    925   
        self.host_with_path_operation_custom(svc)
  912    926   
    }
  913    927   
  914    928   
    /// Sets the [`HostWithPathOperation`](crate::operation_shape::HostWithPathOperation) to a custom [`Service`](tower::Service).
  915    929   
    /// not constrained by the Smithy contract.
  916    930   
    fn host_with_path_operation_custom<S>(mut self, svc: S) -> Self
  917    931   
    where
  918    932   
        S: ::tower::Service<
  919    933   
                ::http::Request<Body>,
  920         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         934  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
  921    935   
                Error = ::std::convert::Infallible,
  922    936   
            > + Clone
  923    937   
            + Send
  924    938   
            + 'static,
  925    939   
        S::Future: Send + 'static,
  926    940   
    {
  927         -
        self.host_with_path_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
         941  +
        self.host_with_path_operation =
         942  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
  928    943   
        self
  929    944   
    }
  930    945   
  931    946   
    /// Sets the [`JsonUnions`](crate::operation_shape::JsonUnions) operation.
  932    947   
    ///
  933         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
  934         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
         948  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         949  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
  935    950   
    ///
  936    951   
    /// # Example
  937    952   
    ///
  938    953   
    /// ```no_run
  939    954   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
  940    955   
    ///
  941    956   
    /// use json_rpc10::{input, output, error};
  942    957   
    ///
  943    958   
    /// async fn handler(input: input::JsonUnionsInput) -> Result<output::JsonUnionsOutput, error::JsonUnionsError> {
  944    959   
    ///     todo!()
  945    960   
    /// }
  946    961   
    ///
  947    962   
    /// let config = JsonRpc10Config::builder().build();
  948    963   
    /// let app = JsonRpc10::builder(config)
  949    964   
    ///     .json_unions(handler)
  950    965   
    ///     /* Set other handlers */
  951    966   
    ///     .build()
  952    967   
    ///     .unwrap();
  953         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
         968  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
  954    969   
    /// ```
  955    970   
    ///
  956    971   
                    pub fn json_unions<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
  957    972   
                    where
  958         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::JsonUnions, HandlerExtractors>,
         973  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::JsonUnions, HandlerExtractors>,
  959    974   
  960         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
         975  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  961    976   
                            JsonRpc10<L>,
  962    977   
                            crate::operation_shape::JsonUnions,
  963         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::JsonUnions, HandlerType>
         978  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::JsonUnions, HandlerType>
  964    979   
                        >,
  965         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
         980  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
  966    981   
                            JsonRpc10<L>,
  967    982   
                            crate::operation_shape::JsonUnions,
  968    983   
                            ModelPl::Output
  969    984   
                        >,
  970         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
         985  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
  971    986   
                            JsonRpc10<L>,
  972    987   
                            crate::operation_shape::JsonUnions,
  973    988   
                            <
  974         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  975         -
                                as ::aws_smithy_http_server::plugin::Plugin<
         989  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         990  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
  976    991   
                                    JsonRpc10<L>,
  977    992   
                                    crate::operation_shape::JsonUnions,
  978    993   
                                    ModelPl::Output
  979    994   
                                >
  980    995   
                            >::Output
  981    996   
                        >,
  982    997   
  983         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         998  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  984    999   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
  985   1000   
  986   1001   
                    {
  987         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  988         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1002  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1003  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
  989   1004   
        let svc = crate::operation_shape::JsonUnions::from_handler(handler);
  990   1005   
        let svc = self.model_plugin.apply(svc);
  991         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1006  +
        let svc =
        1007  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  992   1008   
                .apply(svc);
  993   1009   
        let svc = self.http_plugin.apply(svc);
  994   1010   
        self.json_unions_custom(svc)
  995   1011   
    }
  996   1012   
  997   1013   
    /// Sets the [`JsonUnions`](crate::operation_shape::JsonUnions) operation.
  998   1014   
    ///
  999         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1000         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1015  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1016  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1001   1017   
    ///
 1002   1018   
    /// # Example
 1003   1019   
    ///
 1004   1020   
    /// ```no_run
 1005   1021   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1006   1022   
    ///
 1007   1023   
    /// use json_rpc10::{input, output, error};
 1008   1024   
    ///
 1009   1025   
    /// async fn handler(input: input::JsonUnionsInput) -> Result<output::JsonUnionsOutput, error::JsonUnionsError> {
 1010   1026   
    ///     todo!()
 1011   1027   
    /// }
 1012   1028   
    ///
 1013   1029   
    /// let config = JsonRpc10Config::builder().build();
 1014   1030   
    /// let svc = ::tower::util::service_fn(handler);
 1015   1031   
    /// let app = JsonRpc10::builder(config)
 1016   1032   
    ///     .json_unions_service(svc)
 1017   1033   
    ///     /* Set other handlers */
 1018   1034   
    ///     .build()
 1019   1035   
    ///     .unwrap();
 1020         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1036  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1021   1037   
    /// ```
 1022   1038   
    ///
 1023   1039   
                    pub fn json_unions_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1024   1040   
                    where
 1025         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::JsonUnions, ServiceExtractors>,
        1041  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::JsonUnions, ServiceExtractors>,
 1026   1042   
 1027         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1043  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1028   1044   
                            JsonRpc10<L>,
 1029   1045   
                            crate::operation_shape::JsonUnions,
 1030         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::JsonUnions, S>
        1046  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::JsonUnions, S>
 1031   1047   
                        >,
 1032         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1048  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1033   1049   
                            JsonRpc10<L>,
 1034   1050   
                            crate::operation_shape::JsonUnions,
 1035   1051   
                            ModelPl::Output
 1036   1052   
                        >,
 1037         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1053  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1038   1054   
                            JsonRpc10<L>,
 1039   1055   
                            crate::operation_shape::JsonUnions,
 1040   1056   
                            <
 1041         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1042         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1057  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1058  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1043   1059   
                                    JsonRpc10<L>,
 1044   1060   
                                    crate::operation_shape::JsonUnions,
 1045   1061   
                                    ModelPl::Output
 1046   1062   
                                >
 1047   1063   
                            >::Output
 1048   1064   
                        >,
 1049   1065   
 1050         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1066  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1051   1067   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1052   1068   
 1053   1069   
                    {
 1054         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1055         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1070  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1071  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1056   1072   
        let svc = crate::operation_shape::JsonUnions::from_service(service);
 1057   1073   
        let svc = self.model_plugin.apply(svc);
 1058         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1074  +
        let svc =
        1075  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1059   1076   
                .apply(svc);
 1060   1077   
        let svc = self.http_plugin.apply(svc);
 1061   1078   
        self.json_unions_custom(svc)
 1062   1079   
    }
 1063   1080   
 1064   1081   
    /// Sets the [`JsonUnions`](crate::operation_shape::JsonUnions) to a custom [`Service`](tower::Service).
 1065   1082   
    /// not constrained by the Smithy contract.
 1066   1083   
    fn json_unions_custom<S>(mut self, svc: S) -> Self
 1067   1084   
    where
 1068   1085   
        S: ::tower::Service<
 1069   1086   
                ::http::Request<Body>,
 1070         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1087  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1071   1088   
                Error = ::std::convert::Infallible,
 1072   1089   
            > + Clone
 1073   1090   
            + Send
 1074   1091   
            + 'static,
 1075   1092   
        S::Future: Send + 'static,
 1076   1093   
    {
 1077         -
        self.json_unions = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1094  +
        self.json_unions = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1078   1095   
        self
 1079   1096   
    }
 1080   1097   
 1081   1098   
    /// Sets the [`NoInputAndNoOutput`](crate::operation_shape::NoInputAndNoOutput) operation.
 1082   1099   
    ///
 1083         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1084         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1100  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1101  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1085   1102   
    ///
 1086   1103   
    /// # Example
 1087   1104   
    ///
 1088   1105   
    /// ```no_run
 1089   1106   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1090   1107   
    ///
 1091   1108   
    /// use json_rpc10::{input, output, error};
 1092   1109   
    ///
 1093   1110   
    /// async fn handler(input: input::NoInputAndNoOutputInput) -> Result<output::NoInputAndNoOutputOutput, error::NoInputAndNoOutputError> {
 1094   1111   
    ///     todo!()
 1095   1112   
    /// }
 1096   1113   
    ///
 1097   1114   
    /// let config = JsonRpc10Config::builder().build();
 1098   1115   
    /// let app = JsonRpc10::builder(config)
 1099   1116   
    ///     .no_input_and_no_output(handler)
 1100   1117   
    ///     /* Set other handlers */
 1101   1118   
    ///     .build()
 1102   1119   
    ///     .unwrap();
 1103         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1120  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1104   1121   
    /// ```
 1105   1122   
    ///
 1106   1123   
                    pub fn no_input_and_no_output<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1107   1124   
                    where
 1108         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::NoInputAndNoOutput, HandlerExtractors>,
        1125  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::NoInputAndNoOutput, HandlerExtractors>,
 1109   1126   
 1110         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1127  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1111   1128   
                            JsonRpc10<L>,
 1112   1129   
                            crate::operation_shape::NoInputAndNoOutput,
 1113         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::NoInputAndNoOutput, HandlerType>
        1130  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::NoInputAndNoOutput, HandlerType>
 1114   1131   
                        >,
 1115         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1132  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1116   1133   
                            JsonRpc10<L>,
 1117   1134   
                            crate::operation_shape::NoInputAndNoOutput,
 1118   1135   
                            ModelPl::Output
 1119   1136   
                        >,
 1120         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1137  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1121   1138   
                            JsonRpc10<L>,
 1122   1139   
                            crate::operation_shape::NoInputAndNoOutput,
 1123   1140   
                            <
 1124         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1125         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1141  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1142  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1126   1143   
                                    JsonRpc10<L>,
 1127   1144   
                                    crate::operation_shape::NoInputAndNoOutput,
 1128   1145   
                                    ModelPl::Output
 1129   1146   
                                >
 1130   1147   
                            >::Output
 1131   1148   
                        >,
 1132   1149   
 1133         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1150  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1134   1151   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1135   1152   
 1136   1153   
                    {
 1137         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1138         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1154  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1155  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1139   1156   
        let svc = crate::operation_shape::NoInputAndNoOutput::from_handler(handler);
 1140   1157   
        let svc = self.model_plugin.apply(svc);
 1141         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1158  +
        let svc =
        1159  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1142   1160   
                .apply(svc);
 1143   1161   
        let svc = self.http_plugin.apply(svc);
 1144   1162   
        self.no_input_and_no_output_custom(svc)
 1145   1163   
    }
 1146   1164   
 1147   1165   
    /// Sets the [`NoInputAndNoOutput`](crate::operation_shape::NoInputAndNoOutput) operation.
 1148   1166   
    ///
 1149         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1150         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1167  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1168  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1151   1169   
    ///
 1152   1170   
    /// # Example
 1153   1171   
    ///
 1154   1172   
    /// ```no_run
 1155   1173   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1156   1174   
    ///
 1157   1175   
    /// use json_rpc10::{input, output, error};
 1158   1176   
    ///
 1159   1177   
    /// async fn handler(input: input::NoInputAndNoOutputInput) -> Result<output::NoInputAndNoOutputOutput, error::NoInputAndNoOutputError> {
 1160   1178   
    ///     todo!()
 1161   1179   
    /// }
 1162   1180   
    ///
 1163   1181   
    /// let config = JsonRpc10Config::builder().build();
 1164   1182   
    /// let svc = ::tower::util::service_fn(handler);
 1165   1183   
    /// let app = JsonRpc10::builder(config)
 1166   1184   
    ///     .no_input_and_no_output_service(svc)
 1167   1185   
    ///     /* Set other handlers */
 1168   1186   
    ///     .build()
 1169   1187   
    ///     .unwrap();
 1170         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1188  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1171   1189   
    /// ```
 1172   1190   
    ///
 1173   1191   
                    pub fn no_input_and_no_output_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1174   1192   
                    where
 1175         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::NoInputAndNoOutput, ServiceExtractors>,
        1193  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::NoInputAndNoOutput, ServiceExtractors>,
 1176   1194   
 1177         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1195  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1178   1196   
                            JsonRpc10<L>,
 1179   1197   
                            crate::operation_shape::NoInputAndNoOutput,
 1180         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::NoInputAndNoOutput, S>
        1198  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::NoInputAndNoOutput, S>
 1181   1199   
                        >,
 1182         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1200  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1183   1201   
                            JsonRpc10<L>,
 1184   1202   
                            crate::operation_shape::NoInputAndNoOutput,
 1185   1203   
                            ModelPl::Output
 1186   1204   
                        >,
 1187         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1205  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1188   1206   
                            JsonRpc10<L>,
 1189   1207   
                            crate::operation_shape::NoInputAndNoOutput,
 1190   1208   
                            <
 1191         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1192         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1209  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1210  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1193   1211   
                                    JsonRpc10<L>,
 1194   1212   
                                    crate::operation_shape::NoInputAndNoOutput,
 1195   1213   
                                    ModelPl::Output
 1196   1214   
                                >
 1197   1215   
                            >::Output
 1198   1216   
                        >,
 1199   1217   
 1200         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1218  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1201   1219   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1202   1220   
 1203   1221   
                    {
 1204         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1205         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1222  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1223  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1206   1224   
        let svc = crate::operation_shape::NoInputAndNoOutput::from_service(service);
 1207   1225   
        let svc = self.model_plugin.apply(svc);
 1208         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1226  +
        let svc =
        1227  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1209   1228   
                .apply(svc);
 1210   1229   
        let svc = self.http_plugin.apply(svc);
 1211   1230   
        self.no_input_and_no_output_custom(svc)
 1212   1231   
    }
 1213   1232   
 1214   1233   
    /// Sets the [`NoInputAndNoOutput`](crate::operation_shape::NoInputAndNoOutput) to a custom [`Service`](tower::Service).
 1215   1234   
    /// not constrained by the Smithy contract.
 1216   1235   
    fn no_input_and_no_output_custom<S>(mut self, svc: S) -> Self
 1217   1236   
    where
 1218   1237   
        S: ::tower::Service<
 1219   1238   
                ::http::Request<Body>,
 1220         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1239  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1221   1240   
                Error = ::std::convert::Infallible,
 1222   1241   
            > + Clone
 1223   1242   
            + Send
 1224   1243   
            + 'static,
 1225   1244   
        S::Future: Send + 'static,
 1226   1245   
    {
 1227         -
        self.no_input_and_no_output = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1246  +
        self.no_input_and_no_output =
        1247  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1228   1248   
        self
 1229   1249   
    }
 1230   1250   
 1231   1251   
    /// Sets the [`NoInputAndOutput`](crate::operation_shape::NoInputAndOutput) operation.
 1232   1252   
    ///
 1233         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1234         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1253  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1254  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1235   1255   
    ///
 1236   1256   
    /// # Example
 1237   1257   
    ///
 1238   1258   
    /// ```no_run
 1239   1259   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1240   1260   
    ///
 1241   1261   
    /// use json_rpc10::{input, output, error};
 1242   1262   
    ///
 1243   1263   
    /// async fn handler(input: input::NoInputAndOutputInput) -> Result<output::NoInputAndOutputOutput, error::NoInputAndOutputError> {
 1244   1264   
    ///     todo!()
 1245   1265   
    /// }
 1246   1266   
    ///
 1247   1267   
    /// let config = JsonRpc10Config::builder().build();
 1248   1268   
    /// let app = JsonRpc10::builder(config)
 1249   1269   
    ///     .no_input_and_output(handler)
 1250   1270   
    ///     /* Set other handlers */
 1251   1271   
    ///     .build()
 1252   1272   
    ///     .unwrap();
 1253         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1273  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1254   1274   
    /// ```
 1255   1275   
    ///
 1256   1276   
                    pub fn no_input_and_output<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1257   1277   
                    where
 1258         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::NoInputAndOutput, HandlerExtractors>,
        1278  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::NoInputAndOutput, HandlerExtractors>,
 1259   1279   
 1260         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1280  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1261   1281   
                            JsonRpc10<L>,
 1262   1282   
                            crate::operation_shape::NoInputAndOutput,
 1263         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::NoInputAndOutput, HandlerType>
        1283  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::NoInputAndOutput, HandlerType>
 1264   1284   
                        >,
 1265         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1285  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1266   1286   
                            JsonRpc10<L>,
 1267   1287   
                            crate::operation_shape::NoInputAndOutput,
 1268   1288   
                            ModelPl::Output
 1269   1289   
                        >,
 1270         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1290  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1271   1291   
                            JsonRpc10<L>,
 1272   1292   
                            crate::operation_shape::NoInputAndOutput,
 1273   1293   
                            <
 1274         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1275         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1294  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1295  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1276   1296   
                                    JsonRpc10<L>,
 1277   1297   
                                    crate::operation_shape::NoInputAndOutput,
 1278   1298   
                                    ModelPl::Output
 1279   1299   
                                >
 1280   1300   
                            >::Output
 1281   1301   
                        >,
 1282   1302   
 1283         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1303  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1284   1304   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1285   1305   
 1286   1306   
                    {
 1287         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1288         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1307  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1308  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1289   1309   
        let svc = crate::operation_shape::NoInputAndOutput::from_handler(handler);
 1290   1310   
        let svc = self.model_plugin.apply(svc);
 1291         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1311  +
        let svc =
        1312  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1292   1313   
                .apply(svc);
 1293   1314   
        let svc = self.http_plugin.apply(svc);
 1294   1315   
        self.no_input_and_output_custom(svc)
 1295   1316   
    }
 1296   1317   
 1297   1318   
    /// Sets the [`NoInputAndOutput`](crate::operation_shape::NoInputAndOutput) operation.
 1298   1319   
    ///
 1299         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1300         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1320  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1321  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1301   1322   
    ///
 1302   1323   
    /// # Example
 1303   1324   
    ///
 1304   1325   
    /// ```no_run
 1305   1326   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1306   1327   
    ///
 1307   1328   
    /// use json_rpc10::{input, output, error};
 1308   1329   
    ///
 1309   1330   
    /// async fn handler(input: input::NoInputAndOutputInput) -> Result<output::NoInputAndOutputOutput, error::NoInputAndOutputError> {
 1310   1331   
    ///     todo!()
 1311   1332   
    /// }
 1312   1333   
    ///
 1313   1334   
    /// let config = JsonRpc10Config::builder().build();
 1314   1335   
    /// let svc = ::tower::util::service_fn(handler);
 1315   1336   
    /// let app = JsonRpc10::builder(config)
 1316   1337   
    ///     .no_input_and_output_service(svc)
 1317   1338   
    ///     /* Set other handlers */
 1318   1339   
    ///     .build()
 1319   1340   
    ///     .unwrap();
 1320         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1341  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1321   1342   
    /// ```
 1322   1343   
    ///
 1323   1344   
                    pub fn no_input_and_output_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1324   1345   
                    where
 1325         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::NoInputAndOutput, ServiceExtractors>,
        1346  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::NoInputAndOutput, ServiceExtractors>,
 1326   1347   
 1327         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1348  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1328   1349   
                            JsonRpc10<L>,
 1329   1350   
                            crate::operation_shape::NoInputAndOutput,
 1330         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::NoInputAndOutput, S>
        1351  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::NoInputAndOutput, S>
 1331   1352   
                        >,
 1332         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1353  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1333   1354   
                            JsonRpc10<L>,
 1334   1355   
                            crate::operation_shape::NoInputAndOutput,
 1335   1356   
                            ModelPl::Output
 1336   1357   
                        >,
 1337         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1358  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1338   1359   
                            JsonRpc10<L>,
 1339   1360   
                            crate::operation_shape::NoInputAndOutput,
 1340   1361   
                            <
 1341         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1342         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1362  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1363  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1343   1364   
                                    JsonRpc10<L>,
 1344   1365   
                                    crate::operation_shape::NoInputAndOutput,
 1345   1366   
                                    ModelPl::Output
 1346   1367   
                                >
 1347   1368   
                            >::Output
 1348   1369   
                        >,
 1349   1370   
 1350         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1371  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1351   1372   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1352   1373   
 1353   1374   
                    {
 1354         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1355         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1375  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1376  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1356   1377   
        let svc = crate::operation_shape::NoInputAndOutput::from_service(service);
 1357   1378   
        let svc = self.model_plugin.apply(svc);
 1358         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1379  +
        let svc =
        1380  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1359   1381   
                .apply(svc);
 1360   1382   
        let svc = self.http_plugin.apply(svc);
 1361   1383   
        self.no_input_and_output_custom(svc)
 1362   1384   
    }
 1363   1385   
 1364   1386   
    /// Sets the [`NoInputAndOutput`](crate::operation_shape::NoInputAndOutput) to a custom [`Service`](tower::Service).
 1365   1387   
    /// not constrained by the Smithy contract.
 1366   1388   
    fn no_input_and_output_custom<S>(mut self, svc: S) -> Self
 1367   1389   
    where
 1368   1390   
        S: ::tower::Service<
 1369   1391   
                ::http::Request<Body>,
 1370         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1392  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1371   1393   
                Error = ::std::convert::Infallible,
 1372   1394   
            > + Clone
 1373   1395   
            + Send
 1374   1396   
            + 'static,
 1375   1397   
        S::Future: Send + 'static,
 1376   1398   
    {
 1377         -
        self.no_input_and_output = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1399  +
        self.no_input_and_output = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1378   1400   
        self
 1379   1401   
    }
 1380   1402   
 1381   1403   
    /// Sets the [`OperationWithDefaults`](crate::operation_shape::OperationWithDefaults) operation.
 1382   1404   
    ///
 1383         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1384         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1405  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1406  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1385   1407   
    ///
 1386   1408   
    /// # Example
 1387   1409   
    ///
 1388   1410   
    /// ```no_run
 1389   1411   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1390   1412   
    ///
 1391   1413   
    /// use json_rpc10::{input, output, error};
 1392   1414   
    ///
 1393   1415   
    /// async fn handler(input: input::OperationWithDefaultsInput) -> Result<output::OperationWithDefaultsOutput, error::OperationWithDefaultsError> {
 1394   1416   
    ///     todo!()
 1395   1417   
    /// }
 1396   1418   
    ///
 1397   1419   
    /// let config = JsonRpc10Config::builder().build();
 1398   1420   
    /// let app = JsonRpc10::builder(config)
 1399   1421   
    ///     .operation_with_defaults(handler)
 1400   1422   
    ///     /* Set other handlers */
 1401   1423   
    ///     .build()
 1402   1424   
    ///     .unwrap();
 1403         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1425  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1404   1426   
    /// ```
 1405   1427   
    ///
 1406   1428   
                    pub fn operation_with_defaults<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1407   1429   
                    where
 1408         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::OperationWithDefaults, HandlerExtractors>,
        1430  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::OperationWithDefaults, HandlerExtractors>,
 1409   1431   
 1410         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1432  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1411   1433   
                            JsonRpc10<L>,
 1412   1434   
                            crate::operation_shape::OperationWithDefaults,
 1413         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::OperationWithDefaults, HandlerType>
        1435  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::OperationWithDefaults, HandlerType>
 1414   1436   
                        >,
 1415         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1437  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1416   1438   
                            JsonRpc10<L>,
 1417   1439   
                            crate::operation_shape::OperationWithDefaults,
 1418   1440   
                            ModelPl::Output
 1419   1441   
                        >,
 1420         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1442  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1421   1443   
                            JsonRpc10<L>,
 1422   1444   
                            crate::operation_shape::OperationWithDefaults,
 1423   1445   
                            <
 1424         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1425         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1446  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1447  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1426   1448   
                                    JsonRpc10<L>,
 1427   1449   
                                    crate::operation_shape::OperationWithDefaults,
 1428   1450   
                                    ModelPl::Output
 1429   1451   
                                >
 1430   1452   
                            >::Output
 1431   1453   
                        >,
 1432   1454   
 1433         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1455  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1434   1456   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1435   1457   
 1436   1458   
                    {
 1437         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1438         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1459  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1460  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1439   1461   
        let svc = crate::operation_shape::OperationWithDefaults::from_handler(handler);
 1440   1462   
        let svc = self.model_plugin.apply(svc);
 1441         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1463  +
        let svc =
        1464  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1442   1465   
                .apply(svc);
 1443   1466   
        let svc = self.http_plugin.apply(svc);
 1444   1467   
        self.operation_with_defaults_custom(svc)
 1445   1468   
    }
 1446   1469   
 1447   1470   
    /// Sets the [`OperationWithDefaults`](crate::operation_shape::OperationWithDefaults) operation.
 1448   1471   
    ///
 1449         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1450         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1472  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1473  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1451   1474   
    ///
 1452   1475   
    /// # Example
 1453   1476   
    ///
 1454   1477   
    /// ```no_run
 1455   1478   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1456   1479   
    ///
 1457   1480   
    /// use json_rpc10::{input, output, error};
 1458   1481   
    ///
 1459   1482   
    /// async fn handler(input: input::OperationWithDefaultsInput) -> Result<output::OperationWithDefaultsOutput, error::OperationWithDefaultsError> {
 1460   1483   
    ///     todo!()
 1461   1484   
    /// }
 1462   1485   
    ///
 1463   1486   
    /// let config = JsonRpc10Config::builder().build();
 1464   1487   
    /// let svc = ::tower::util::service_fn(handler);
 1465   1488   
    /// let app = JsonRpc10::builder(config)
 1466   1489   
    ///     .operation_with_defaults_service(svc)
 1467   1490   
    ///     /* Set other handlers */
 1468   1491   
    ///     .build()
 1469   1492   
    ///     .unwrap();
 1470         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1493  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1471   1494   
    /// ```
 1472   1495   
    ///
 1473   1496   
                    pub fn operation_with_defaults_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1474   1497   
                    where
 1475         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::OperationWithDefaults, ServiceExtractors>,
        1498  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::OperationWithDefaults, ServiceExtractors>,
 1476   1499   
 1477         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1500  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1478   1501   
                            JsonRpc10<L>,
 1479   1502   
                            crate::operation_shape::OperationWithDefaults,
 1480         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::OperationWithDefaults, S>
        1503  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::OperationWithDefaults, S>
 1481   1504   
                        >,
 1482         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1505  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1483   1506   
                            JsonRpc10<L>,
 1484   1507   
                            crate::operation_shape::OperationWithDefaults,
 1485   1508   
                            ModelPl::Output
 1486   1509   
                        >,
 1487         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1510  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1488   1511   
                            JsonRpc10<L>,
 1489   1512   
                            crate::operation_shape::OperationWithDefaults,
 1490   1513   
                            <
 1491         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1492         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1514  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1515  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1493   1516   
                                    JsonRpc10<L>,
 1494   1517   
                                    crate::operation_shape::OperationWithDefaults,
 1495   1518   
                                    ModelPl::Output
 1496   1519   
                                >
 1497   1520   
                            >::Output
 1498   1521   
                        >,
 1499   1522   
 1500         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1523  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1501   1524   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1502   1525   
 1503   1526   
                    {
 1504         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1505         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1527  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1528  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1506   1529   
        let svc = crate::operation_shape::OperationWithDefaults::from_service(service);
 1507   1530   
        let svc = self.model_plugin.apply(svc);
 1508         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1531  +
        let svc =
        1532  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1509   1533   
                .apply(svc);
 1510   1534   
        let svc = self.http_plugin.apply(svc);
 1511   1535   
        self.operation_with_defaults_custom(svc)
 1512   1536   
    }
 1513   1537   
 1514   1538   
    /// Sets the [`OperationWithDefaults`](crate::operation_shape::OperationWithDefaults) to a custom [`Service`](tower::Service).
 1515   1539   
    /// not constrained by the Smithy contract.
 1516   1540   
    fn operation_with_defaults_custom<S>(mut self, svc: S) -> Self
 1517   1541   
    where
 1518   1542   
        S: ::tower::Service<
 1519   1543   
                ::http::Request<Body>,
 1520         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1544  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1521   1545   
                Error = ::std::convert::Infallible,
 1522   1546   
            > + Clone
 1523   1547   
            + Send
 1524   1548   
            + 'static,
 1525   1549   
        S::Future: Send + 'static,
 1526   1550   
    {
 1527         -
        self.operation_with_defaults = Some(::aws_smithy_http_server::routing::Route::new(svc));
        1551  +
        self.operation_with_defaults =
        1552  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1528   1553   
        self
 1529   1554   
    }
 1530   1555   
 1531   1556   
    /// Sets the [`OperationWithNestedStructure`](crate::operation_shape::OperationWithNestedStructure) operation.
 1532   1557   
    ///
 1533         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1534         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1558  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1559  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1535   1560   
    ///
 1536   1561   
    /// # Example
 1537   1562   
    ///
 1538   1563   
    /// ```no_run
 1539   1564   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1540   1565   
    ///
 1541   1566   
    /// use json_rpc10::{input, output, error};
 1542   1567   
    ///
 1543   1568   
    /// async fn handler(input: input::OperationWithNestedStructureInput) -> Result<output::OperationWithNestedStructureOutput, error::OperationWithNestedStructureError> {
 1544   1569   
    ///     todo!()
 1545   1570   
    /// }
 1546   1571   
    ///
 1547   1572   
    /// let config = JsonRpc10Config::builder().build();
 1548   1573   
    /// let app = JsonRpc10::builder(config)
 1549   1574   
    ///     .operation_with_nested_structure(handler)
 1550   1575   
    ///     /* Set other handlers */
 1551   1576   
    ///     .build()
 1552   1577   
    ///     .unwrap();
 1553         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1578  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1554   1579   
    /// ```
 1555   1580   
    ///
 1556   1581   
                    pub fn operation_with_nested_structure<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1557   1582   
                    where
 1558         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::OperationWithNestedStructure, HandlerExtractors>,
        1583  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::OperationWithNestedStructure, HandlerExtractors>,
 1559   1584   
 1560         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1585  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1561   1586   
                            JsonRpc10<L>,
 1562   1587   
                            crate::operation_shape::OperationWithNestedStructure,
 1563         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::OperationWithNestedStructure, HandlerType>
        1588  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::OperationWithNestedStructure, HandlerType>
 1564   1589   
                        >,
 1565         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1590  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1566   1591   
                            JsonRpc10<L>,
 1567   1592   
                            crate::operation_shape::OperationWithNestedStructure,
 1568   1593   
                            ModelPl::Output
 1569   1594   
                        >,
 1570         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1595  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1571   1596   
                            JsonRpc10<L>,
 1572   1597   
                            crate::operation_shape::OperationWithNestedStructure,
 1573   1598   
                            <
 1574         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1575         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1599  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1600  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1576   1601   
                                    JsonRpc10<L>,
 1577   1602   
                                    crate::operation_shape::OperationWithNestedStructure,
 1578   1603   
                                    ModelPl::Output
 1579   1604   
                                >
 1580   1605   
                            >::Output
 1581   1606   
                        >,
 1582   1607   
 1583         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1608  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1584   1609   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1585   1610   
 1586   1611   
                    {
 1587         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1588         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1612  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1613  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1589   1614   
        let svc = crate::operation_shape::OperationWithNestedStructure::from_handler(handler);
 1590   1615   
        let svc = self.model_plugin.apply(svc);
 1591         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1616  +
        let svc =
        1617  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1592   1618   
                .apply(svc);
 1593   1619   
        let svc = self.http_plugin.apply(svc);
 1594   1620   
        self.operation_with_nested_structure_custom(svc)
 1595   1621   
    }
 1596   1622   
 1597   1623   
    /// Sets the [`OperationWithNestedStructure`](crate::operation_shape::OperationWithNestedStructure) operation.
 1598   1624   
    ///
 1599         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1600         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1625  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1626  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1601   1627   
    ///
 1602   1628   
    /// # Example
 1603   1629   
    ///
 1604   1630   
    /// ```no_run
 1605   1631   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1606   1632   
    ///
 1607   1633   
    /// use json_rpc10::{input, output, error};
 1608   1634   
    ///
 1609   1635   
    /// async fn handler(input: input::OperationWithNestedStructureInput) -> Result<output::OperationWithNestedStructureOutput, error::OperationWithNestedStructureError> {
 1610   1636   
    ///     todo!()
 1611   1637   
    /// }
 1612   1638   
    ///
 1613   1639   
    /// let config = JsonRpc10Config::builder().build();
 1614   1640   
    /// let svc = ::tower::util::service_fn(handler);
 1615   1641   
    /// let app = JsonRpc10::builder(config)
 1616   1642   
    ///     .operation_with_nested_structure_service(svc)
 1617   1643   
    ///     /* Set other handlers */
 1618   1644   
    ///     .build()
 1619   1645   
    ///     .unwrap();
 1620         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1646  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1621   1647   
    /// ```
 1622   1648   
    ///
 1623   1649   
                    pub fn operation_with_nested_structure_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1624   1650   
                    where
 1625         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::OperationWithNestedStructure, ServiceExtractors>,
        1651  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::OperationWithNestedStructure, ServiceExtractors>,
 1626   1652   
 1627         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1653  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1628   1654   
                            JsonRpc10<L>,
 1629   1655   
                            crate::operation_shape::OperationWithNestedStructure,
 1630         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::OperationWithNestedStructure, S>
        1656  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::OperationWithNestedStructure, S>
 1631   1657   
                        >,
 1632         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1658  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1633   1659   
                            JsonRpc10<L>,
 1634   1660   
                            crate::operation_shape::OperationWithNestedStructure,
 1635   1661   
                            ModelPl::Output
 1636   1662   
                        >,
 1637         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1663  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1638   1664   
                            JsonRpc10<L>,
 1639   1665   
                            crate::operation_shape::OperationWithNestedStructure,
 1640   1666   
                            <
 1641         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1642         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1667  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1668  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1643   1669   
                                    JsonRpc10<L>,
 1644   1670   
                                    crate::operation_shape::OperationWithNestedStructure,
 1645   1671   
                                    ModelPl::Output
 1646   1672   
                                >
 1647   1673   
                            >::Output
 1648   1674   
                        >,
 1649   1675   
 1650         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1676  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1651   1677   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1652   1678   
 1653   1679   
                    {
 1654         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1655         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1680  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1681  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1656   1682   
        let svc = crate::operation_shape::OperationWithNestedStructure::from_service(service);
 1657   1683   
        let svc = self.model_plugin.apply(svc);
 1658         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1684  +
        let svc =
        1685  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1659   1686   
                .apply(svc);
 1660   1687   
        let svc = self.http_plugin.apply(svc);
 1661   1688   
        self.operation_with_nested_structure_custom(svc)
 1662   1689   
    }
 1663   1690   
 1664   1691   
    /// Sets the [`OperationWithNestedStructure`](crate::operation_shape::OperationWithNestedStructure) to a custom [`Service`](tower::Service).
 1665   1692   
    /// not constrained by the Smithy contract.
 1666   1693   
    fn operation_with_nested_structure_custom<S>(mut self, svc: S) -> Self
 1667   1694   
    where
 1668   1695   
        S: ::tower::Service<
 1669   1696   
                ::http::Request<Body>,
 1670         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1697  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1671   1698   
                Error = ::std::convert::Infallible,
 1672   1699   
            > + Clone
 1673   1700   
            + Send
 1674   1701   
            + 'static,
 1675   1702   
        S::Future: Send + 'static,
 1676   1703   
    {
 1677   1704   
        self.operation_with_nested_structure =
 1678         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
        1705  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1679   1706   
        self
 1680   1707   
    }
 1681   1708   
 1682   1709   
    /// Sets the [`OperationWithRequiredMembers`](crate::operation_shape::OperationWithRequiredMembers) operation.
 1683   1710   
    ///
 1684         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1685         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1711  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1712  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1686   1713   
    ///
 1687   1714   
    /// # Example
 1688   1715   
    ///
 1689   1716   
    /// ```no_run
 1690   1717   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1691   1718   
    ///
 1692   1719   
    /// use json_rpc10::{input, output, error};
 1693   1720   
    ///
 1694   1721   
    /// async fn handler(input: input::OperationWithRequiredMembersInput) -> Result<output::OperationWithRequiredMembersOutput, error::OperationWithRequiredMembersError> {
 1695   1722   
    ///     todo!()
 1696   1723   
    /// }
 1697   1724   
    ///
 1698   1725   
    /// let config = JsonRpc10Config::builder().build();
 1699   1726   
    /// let app = JsonRpc10::builder(config)
 1700   1727   
    ///     .operation_with_required_members(handler)
 1701   1728   
    ///     /* Set other handlers */
 1702   1729   
    ///     .build()
 1703   1730   
    ///     .unwrap();
 1704         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1731  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1705   1732   
    /// ```
 1706   1733   
    ///
 1707   1734   
                    pub fn operation_with_required_members<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1708   1735   
                    where
 1709         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::OperationWithRequiredMembers, HandlerExtractors>,
        1736  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::OperationWithRequiredMembers, HandlerExtractors>,
 1710   1737   
 1711         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1738  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1712   1739   
                            JsonRpc10<L>,
 1713   1740   
                            crate::operation_shape::OperationWithRequiredMembers,
 1714         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::OperationWithRequiredMembers, HandlerType>
        1741  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::OperationWithRequiredMembers, HandlerType>
 1715   1742   
                        >,
 1716         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1743  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1717   1744   
                            JsonRpc10<L>,
 1718   1745   
                            crate::operation_shape::OperationWithRequiredMembers,
 1719   1746   
                            ModelPl::Output
 1720   1747   
                        >,
 1721         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1748  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1722   1749   
                            JsonRpc10<L>,
 1723   1750   
                            crate::operation_shape::OperationWithRequiredMembers,
 1724   1751   
                            <
 1725         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1726         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1752  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1753  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1727   1754   
                                    JsonRpc10<L>,
 1728   1755   
                                    crate::operation_shape::OperationWithRequiredMembers,
 1729   1756   
                                    ModelPl::Output
 1730   1757   
                                >
 1731   1758   
                            >::Output
 1732   1759   
                        >,
 1733   1760   
 1734         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1761  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1735   1762   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1736   1763   
 1737   1764   
                    {
 1738         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1739         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1765  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1766  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1740   1767   
        let svc = crate::operation_shape::OperationWithRequiredMembers::from_handler(handler);
 1741   1768   
        let svc = self.model_plugin.apply(svc);
 1742         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1769  +
        let svc =
        1770  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1743   1771   
                .apply(svc);
 1744   1772   
        let svc = self.http_plugin.apply(svc);
 1745   1773   
        self.operation_with_required_members_custom(svc)
 1746   1774   
    }
 1747   1775   
 1748   1776   
    /// Sets the [`OperationWithRequiredMembers`](crate::operation_shape::OperationWithRequiredMembers) operation.
 1749   1777   
    ///
 1750         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1751         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1778  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1779  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1752   1780   
    ///
 1753   1781   
    /// # Example
 1754   1782   
    ///
 1755   1783   
    /// ```no_run
 1756   1784   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1757   1785   
    ///
 1758   1786   
    /// use json_rpc10::{input, output, error};
 1759   1787   
    ///
 1760   1788   
    /// async fn handler(input: input::OperationWithRequiredMembersInput) -> Result<output::OperationWithRequiredMembersOutput, error::OperationWithRequiredMembersError> {
 1761   1789   
    ///     todo!()
 1762   1790   
    /// }
 1763   1791   
    ///
 1764   1792   
    /// let config = JsonRpc10Config::builder().build();
 1765   1793   
    /// let svc = ::tower::util::service_fn(handler);
 1766   1794   
    /// let app = JsonRpc10::builder(config)
 1767   1795   
    ///     .operation_with_required_members_service(svc)
 1768   1796   
    ///     /* Set other handlers */
 1769   1797   
    ///     .build()
 1770   1798   
    ///     .unwrap();
 1771         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1799  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1772   1800   
    /// ```
 1773   1801   
    ///
 1774   1802   
                    pub fn operation_with_required_members_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1775   1803   
                    where
 1776         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::OperationWithRequiredMembers, ServiceExtractors>,
        1804  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::OperationWithRequiredMembers, ServiceExtractors>,
 1777   1805   
 1778         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1806  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1779   1807   
                            JsonRpc10<L>,
 1780   1808   
                            crate::operation_shape::OperationWithRequiredMembers,
 1781         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::OperationWithRequiredMembers, S>
        1809  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::OperationWithRequiredMembers, S>
 1782   1810   
                        >,
 1783         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1811  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1784   1812   
                            JsonRpc10<L>,
 1785   1813   
                            crate::operation_shape::OperationWithRequiredMembers,
 1786   1814   
                            ModelPl::Output
 1787   1815   
                        >,
 1788         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1816  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1789   1817   
                            JsonRpc10<L>,
 1790   1818   
                            crate::operation_shape::OperationWithRequiredMembers,
 1791   1819   
                            <
 1792         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1793         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1820  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1821  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1794   1822   
                                    JsonRpc10<L>,
 1795   1823   
                                    crate::operation_shape::OperationWithRequiredMembers,
 1796   1824   
                                    ModelPl::Output
 1797   1825   
                                >
 1798   1826   
                            >::Output
 1799   1827   
                        >,
 1800   1828   
 1801         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1829  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1802   1830   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1803   1831   
 1804   1832   
                    {
 1805         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1806         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1833  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1834  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1807   1835   
        let svc = crate::operation_shape::OperationWithRequiredMembers::from_service(service);
 1808   1836   
        let svc = self.model_plugin.apply(svc);
 1809         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1837  +
        let svc =
        1838  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1810   1839   
                .apply(svc);
 1811   1840   
        let svc = self.http_plugin.apply(svc);
 1812   1841   
        self.operation_with_required_members_custom(svc)
 1813   1842   
    }
 1814   1843   
 1815   1844   
    /// Sets the [`OperationWithRequiredMembers`](crate::operation_shape::OperationWithRequiredMembers) to a custom [`Service`](tower::Service).
 1816   1845   
    /// not constrained by the Smithy contract.
 1817   1846   
    fn operation_with_required_members_custom<S>(mut self, svc: S) -> Self
 1818   1847   
    where
 1819   1848   
        S: ::tower::Service<
 1820   1849   
                ::http::Request<Body>,
 1821         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1850  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1822   1851   
                Error = ::std::convert::Infallible,
 1823   1852   
            > + Clone
 1824   1853   
            + Send
 1825   1854   
            + 'static,
 1826   1855   
        S::Future: Send + 'static,
 1827   1856   
    {
 1828   1857   
        self.operation_with_required_members =
 1829         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
        1858  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1830   1859   
        self
 1831   1860   
    }
 1832   1861   
 1833   1862   
    /// Sets the [`OperationWithRequiredMembersWithDefaults`](crate::operation_shape::OperationWithRequiredMembersWithDefaults) operation.
 1834   1863   
    ///
 1835         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1836         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1864  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1865  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1837   1866   
    ///
 1838   1867   
    /// # Example
 1839   1868   
    ///
 1840   1869   
    /// ```no_run
 1841   1870   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1842   1871   
    ///
 1843   1872   
    /// use json_rpc10::{input, output, error};
 1844   1873   
    ///
 1845   1874   
    /// async fn handler(input: input::OperationWithRequiredMembersWithDefaultsInput) -> Result<output::OperationWithRequiredMembersWithDefaultsOutput, error::OperationWithRequiredMembersWithDefaultsError> {
 1846   1875   
    ///     todo!()
 1847   1876   
    /// }
 1848   1877   
    ///
 1849   1878   
    /// let config = JsonRpc10Config::builder().build();
 1850   1879   
    /// let app = JsonRpc10::builder(config)
 1851   1880   
    ///     .operation_with_required_members_with_defaults(handler)
 1852   1881   
    ///     /* Set other handlers */
 1853   1882   
    ///     .build()
 1854   1883   
    ///     .unwrap();
 1855         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1884  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1856   1885   
    /// ```
 1857   1886   
    ///
 1858   1887   
                    pub fn operation_with_required_members_with_defaults<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 1859   1888   
                    where
 1860         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::OperationWithRequiredMembersWithDefaults, HandlerExtractors>,
        1889  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::OperationWithRequiredMembersWithDefaults, HandlerExtractors>,
 1861   1890   
 1862         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1891  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1863   1892   
                            JsonRpc10<L>,
 1864   1893   
                            crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1865         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::OperationWithRequiredMembersWithDefaults, HandlerType>
        1894  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::OperationWithRequiredMembersWithDefaults, HandlerType>
 1866   1895   
                        >,
 1867         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1896  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1868   1897   
                            JsonRpc10<L>,
 1869   1898   
                            crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1870   1899   
                            ModelPl::Output
 1871   1900   
                        >,
 1872         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1901  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1873   1902   
                            JsonRpc10<L>,
 1874   1903   
                            crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1875   1904   
                            <
 1876         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1877         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1905  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1906  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1878   1907   
                                    JsonRpc10<L>,
 1879   1908   
                                    crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1880   1909   
                                    ModelPl::Output
 1881   1910   
                                >
 1882   1911   
                            >::Output
 1883   1912   
                        >,
 1884   1913   
 1885         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1914  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1886   1915   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1887   1916   
 1888   1917   
                    {
 1889         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1890         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1918  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1919  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1891   1920   
        let svc =
 1892   1921   
            crate::operation_shape::OperationWithRequiredMembersWithDefaults::from_handler(handler);
 1893   1922   
        let svc = self.model_plugin.apply(svc);
 1894         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1923  +
        let svc =
        1924  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1895   1925   
                .apply(svc);
 1896   1926   
        let svc = self.http_plugin.apply(svc);
 1897   1927   
        self.operation_with_required_members_with_defaults_custom(svc)
 1898   1928   
    }
 1899   1929   
 1900   1930   
    /// Sets the [`OperationWithRequiredMembersWithDefaults`](crate::operation_shape::OperationWithRequiredMembersWithDefaults) operation.
 1901   1931   
    ///
 1902         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1903         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        1932  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1933  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1904   1934   
    ///
 1905   1935   
    /// # Example
 1906   1936   
    ///
 1907   1937   
    /// ```no_run
 1908   1938   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1909   1939   
    ///
 1910   1940   
    /// use json_rpc10::{input, output, error};
 1911   1941   
    ///
 1912   1942   
    /// async fn handler(input: input::OperationWithRequiredMembersWithDefaultsInput) -> Result<output::OperationWithRequiredMembersWithDefaultsOutput, error::OperationWithRequiredMembersWithDefaultsError> {
 1913   1943   
    ///     todo!()
 1914   1944   
    /// }
 1915   1945   
    ///
 1916   1946   
    /// let config = JsonRpc10Config::builder().build();
 1917   1947   
    /// let svc = ::tower::util::service_fn(handler);
 1918   1948   
    /// let app = JsonRpc10::builder(config)
 1919   1949   
    ///     .operation_with_required_members_with_defaults_service(svc)
 1920   1950   
    ///     /* Set other handlers */
 1921   1951   
    ///     .build()
 1922   1952   
    ///     .unwrap();
 1923         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        1953  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 1924   1954   
    /// ```
 1925   1955   
    ///
 1926   1956   
                    pub fn operation_with_required_members_with_defaults_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 1927   1957   
                    where
 1928         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::OperationWithRequiredMembersWithDefaults, ServiceExtractors>,
        1958  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::OperationWithRequiredMembersWithDefaults, ServiceExtractors>,
 1929   1959   
 1930         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        1960  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1931   1961   
                            JsonRpc10<L>,
 1932   1962   
                            crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1933         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::OperationWithRequiredMembersWithDefaults, S>
        1963  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::OperationWithRequiredMembersWithDefaults, S>
 1934   1964   
                        >,
 1935         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        1965  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1936   1966   
                            JsonRpc10<L>,
 1937   1967   
                            crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1938   1968   
                            ModelPl::Output
 1939   1969   
                        >,
 1940         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        1970  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 1941   1971   
                            JsonRpc10<L>,
 1942   1972   
                            crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1943   1973   
                            <
 1944         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1945         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        1974  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1975  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 1946   1976   
                                    JsonRpc10<L>,
 1947   1977   
                                    crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1948   1978   
                                    ModelPl::Output
 1949   1979   
                                >
 1950   1980   
                            >::Output
 1951   1981   
                        >,
 1952   1982   
 1953         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1983  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1954   1984   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 1955   1985   
 1956   1986   
                    {
 1957         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1958         -
        use ::aws_smithy_http_server::plugin::Plugin;
        1987  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1988  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 1959   1989   
        let svc =
 1960   1990   
            crate::operation_shape::OperationWithRequiredMembersWithDefaults::from_service(service);
 1961   1991   
        let svc = self.model_plugin.apply(svc);
 1962         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1992  +
        let svc =
        1993  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1963   1994   
                .apply(svc);
 1964   1995   
        let svc = self.http_plugin.apply(svc);
 1965   1996   
        self.operation_with_required_members_with_defaults_custom(svc)
 1966   1997   
    }
 1967   1998   
 1968   1999   
    /// Sets the [`OperationWithRequiredMembersWithDefaults`](crate::operation_shape::OperationWithRequiredMembersWithDefaults) to a custom [`Service`](tower::Service).
 1969   2000   
    /// not constrained by the Smithy contract.
 1970   2001   
    fn operation_with_required_members_with_defaults_custom<S>(mut self, svc: S) -> Self
 1971   2002   
    where
 1972   2003   
        S: ::tower::Service<
 1973   2004   
                ::http::Request<Body>,
 1974         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2005  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 1975   2006   
                Error = ::std::convert::Infallible,
 1976   2007   
            > + Clone
 1977   2008   
            + Send
 1978   2009   
            + 'static,
 1979   2010   
        S::Future: Send + 'static,
 1980   2011   
    {
 1981   2012   
        self.operation_with_required_members_with_defaults =
 1982         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
        2013  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 1983   2014   
        self
 1984   2015   
    }
 1985   2016   
 1986   2017   
    /// Sets the [`PutWithContentEncoding`](crate::operation_shape::PutWithContentEncoding) operation.
 1987   2018   
    ///
 1988         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 1989         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        2019  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2020  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 1990   2021   
    ///
 1991   2022   
    /// # Example
 1992   2023   
    ///
 1993   2024   
    /// ```no_run
 1994   2025   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 1995   2026   
    ///
 1996   2027   
    /// use json_rpc10::{input, output, error};
 1997   2028   
    ///
 1998   2029   
    /// async fn handler(input: input::PutWithContentEncodingInput) -> Result<output::PutWithContentEncodingOutput, error::PutWithContentEncodingError> {
 1999   2030   
    ///     todo!()
 2000   2031   
    /// }
 2001   2032   
    ///
 2002   2033   
    /// let config = JsonRpc10Config::builder().build();
 2003   2034   
    /// let app = JsonRpc10::builder(config)
 2004   2035   
    ///     .put_with_content_encoding(handler)
 2005   2036   
    ///     /* Set other handlers */
 2006   2037   
    ///     .build()
 2007   2038   
    ///     .unwrap();
 2008         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        2039  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 2009   2040   
    /// ```
 2010   2041   
    ///
 2011   2042   
                    pub fn put_with_content_encoding<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 2012   2043   
                    where
 2013         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::PutWithContentEncoding, HandlerExtractors>,
        2044  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::PutWithContentEncoding, HandlerExtractors>,
 2014   2045   
 2015         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        2046  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2016   2047   
                            JsonRpc10<L>,
 2017   2048   
                            crate::operation_shape::PutWithContentEncoding,
 2018         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::PutWithContentEncoding, HandlerType>
        2049  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::PutWithContentEncoding, HandlerType>
 2019   2050   
                        >,
 2020         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        2051  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2021   2052   
                            JsonRpc10<L>,
 2022   2053   
                            crate::operation_shape::PutWithContentEncoding,
 2023   2054   
                            ModelPl::Output
 2024   2055   
                        >,
 2025         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        2056  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2026   2057   
                            JsonRpc10<L>,
 2027   2058   
                            crate::operation_shape::PutWithContentEncoding,
 2028   2059   
                            <
 2029         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2030         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        2060  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2061  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 2031   2062   
                                    JsonRpc10<L>,
 2032   2063   
                                    crate::operation_shape::PutWithContentEncoding,
 2033   2064   
                                    ModelPl::Output
 2034   2065   
                                >
 2035   2066   
                            >::Output
 2036   2067   
                        >,
 2037   2068   
 2038         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2069  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2039   2070   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 2040   2071   
 2041   2072   
                    {
 2042         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2043         -
        use ::aws_smithy_http_server::plugin::Plugin;
        2073  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2074  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 2044   2075   
        let svc = crate::operation_shape::PutWithContentEncoding::from_handler(handler);
 2045   2076   
        let svc = self.model_plugin.apply(svc);
 2046         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2077  +
        let svc =
        2078  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2047   2079   
                .apply(svc);
 2048   2080   
        let svc = self.http_plugin.apply(svc);
 2049   2081   
        self.put_with_content_encoding_custom(svc)
 2050   2082   
    }
 2051   2083   
 2052   2084   
    /// Sets the [`PutWithContentEncoding`](crate::operation_shape::PutWithContentEncoding) operation.
 2053   2085   
    ///
 2054         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 2055         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        2086  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2087  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 2056   2088   
    ///
 2057   2089   
    /// # Example
 2058   2090   
    ///
 2059   2091   
    /// ```no_run
 2060   2092   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 2061   2093   
    ///
 2062   2094   
    /// use json_rpc10::{input, output, error};
 2063   2095   
    ///
 2064   2096   
    /// async fn handler(input: input::PutWithContentEncodingInput) -> Result<output::PutWithContentEncodingOutput, error::PutWithContentEncodingError> {
 2065   2097   
    ///     todo!()
 2066   2098   
    /// }
 2067   2099   
    ///
 2068   2100   
    /// let config = JsonRpc10Config::builder().build();
 2069   2101   
    /// let svc = ::tower::util::service_fn(handler);
 2070   2102   
    /// let app = JsonRpc10::builder(config)
 2071   2103   
    ///     .put_with_content_encoding_service(svc)
 2072   2104   
    ///     /* Set other handlers */
 2073   2105   
    ///     .build()
 2074   2106   
    ///     .unwrap();
 2075         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        2107  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 2076   2108   
    /// ```
 2077   2109   
    ///
 2078   2110   
                    pub fn put_with_content_encoding_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 2079   2111   
                    where
 2080         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::PutWithContentEncoding, ServiceExtractors>,
        2112  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::PutWithContentEncoding, ServiceExtractors>,
 2081   2113   
 2082         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        2114  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2083   2115   
                            JsonRpc10<L>,
 2084   2116   
                            crate::operation_shape::PutWithContentEncoding,
 2085         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::PutWithContentEncoding, S>
        2117  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::PutWithContentEncoding, S>
 2086   2118   
                        >,
 2087         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        2119  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2088   2120   
                            JsonRpc10<L>,
 2089   2121   
                            crate::operation_shape::PutWithContentEncoding,
 2090   2122   
                            ModelPl::Output
 2091   2123   
                        >,
 2092         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        2124  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2093   2125   
                            JsonRpc10<L>,
 2094   2126   
                            crate::operation_shape::PutWithContentEncoding,
 2095   2127   
                            <
 2096         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2097         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        2128  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2129  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 2098   2130   
                                    JsonRpc10<L>,
 2099   2131   
                                    crate::operation_shape::PutWithContentEncoding,
 2100   2132   
                                    ModelPl::Output
 2101   2133   
                                >
 2102   2134   
                            >::Output
 2103   2135   
                        >,
 2104   2136   
 2105         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2137  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2106   2138   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 2107   2139   
 2108   2140   
                    {
 2109         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2110         -
        use ::aws_smithy_http_server::plugin::Plugin;
        2141  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2142  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 2111   2143   
        let svc = crate::operation_shape::PutWithContentEncoding::from_service(service);
 2112   2144   
        let svc = self.model_plugin.apply(svc);
 2113         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2145  +
        let svc =
        2146  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2114   2147   
                .apply(svc);
 2115   2148   
        let svc = self.http_plugin.apply(svc);
 2116   2149   
        self.put_with_content_encoding_custom(svc)
 2117   2150   
    }
 2118   2151   
 2119   2152   
    /// Sets the [`PutWithContentEncoding`](crate::operation_shape::PutWithContentEncoding) to a custom [`Service`](tower::Service).
 2120   2153   
    /// not constrained by the Smithy contract.
 2121   2154   
    fn put_with_content_encoding_custom<S>(mut self, svc: S) -> Self
 2122   2155   
    where
 2123   2156   
        S: ::tower::Service<
 2124   2157   
                ::http::Request<Body>,
 2125         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2158  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 2126   2159   
                Error = ::std::convert::Infallible,
 2127   2160   
            > + Clone
 2128   2161   
            + Send
 2129   2162   
            + 'static,
 2130   2163   
        S::Future: Send + 'static,
 2131   2164   
    {
 2132         -
        self.put_with_content_encoding = Some(::aws_smithy_http_server::routing::Route::new(svc));
        2165  +
        self.put_with_content_encoding =
        2166  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 2133   2167   
        self
 2134   2168   
    }
 2135   2169   
 2136   2170   
    /// Sets the [`QueryIncompatibleOperation`](crate::operation_shape::QueryIncompatibleOperation) operation.
 2137   2171   
    ///
 2138         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 2139         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        2172  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2173  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 2140   2174   
    ///
 2141   2175   
    /// # Example
 2142   2176   
    ///
 2143   2177   
    /// ```no_run
 2144   2178   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 2145   2179   
    ///
 2146   2180   
    /// use json_rpc10::{input, output, error};
 2147   2181   
    ///
 2148   2182   
    /// async fn handler(input: input::QueryIncompatibleOperationInput) -> Result<output::QueryIncompatibleOperationOutput, error::QueryIncompatibleOperationError> {
 2149   2183   
    ///     todo!()
 2150   2184   
    /// }
 2151   2185   
    ///
 2152   2186   
    /// let config = JsonRpc10Config::builder().build();
 2153   2187   
    /// let app = JsonRpc10::builder(config)
 2154   2188   
    ///     .query_incompatible_operation(handler)
 2155   2189   
    ///     /* Set other handlers */
 2156   2190   
    ///     .build()
 2157   2191   
    ///     .unwrap();
 2158         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        2192  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 2159   2193   
    /// ```
 2160   2194   
    ///
 2161   2195   
                    pub fn query_incompatible_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 2162   2196   
                    where
 2163         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::QueryIncompatibleOperation, HandlerExtractors>,
        2197  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryIncompatibleOperation, HandlerExtractors>,
 2164   2198   
 2165         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        2199  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2166   2200   
                            JsonRpc10<L>,
 2167   2201   
                            crate::operation_shape::QueryIncompatibleOperation,
 2168         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::QueryIncompatibleOperation, HandlerType>
        2202  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryIncompatibleOperation, HandlerType>
 2169   2203   
                        >,
 2170         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        2204  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2171   2205   
                            JsonRpc10<L>,
 2172   2206   
                            crate::operation_shape::QueryIncompatibleOperation,
 2173   2207   
                            ModelPl::Output
 2174   2208   
                        >,
 2175         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        2209  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2176   2210   
                            JsonRpc10<L>,
 2177   2211   
                            crate::operation_shape::QueryIncompatibleOperation,
 2178   2212   
                            <
 2179         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2180         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        2213  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2214  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 2181   2215   
                                    JsonRpc10<L>,
 2182   2216   
                                    crate::operation_shape::QueryIncompatibleOperation,
 2183   2217   
                                    ModelPl::Output
 2184   2218   
                                >
 2185   2219   
                            >::Output
 2186   2220   
                        >,
 2187   2221   
 2188         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2222  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2189   2223   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 2190   2224   
 2191   2225   
                    {
 2192         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2193         -
        use ::aws_smithy_http_server::plugin::Plugin;
        2226  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2227  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 2194   2228   
        let svc = crate::operation_shape::QueryIncompatibleOperation::from_handler(handler);
 2195   2229   
        let svc = self.model_plugin.apply(svc);
 2196         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2230  +
        let svc =
        2231  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2197   2232   
                .apply(svc);
 2198   2233   
        let svc = self.http_plugin.apply(svc);
 2199   2234   
        self.query_incompatible_operation_custom(svc)
 2200   2235   
    }
 2201   2236   
 2202   2237   
    /// Sets the [`QueryIncompatibleOperation`](crate::operation_shape::QueryIncompatibleOperation) operation.
 2203   2238   
    ///
 2204         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 2205         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        2239  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2240  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 2206   2241   
    ///
 2207   2242   
    /// # Example
 2208   2243   
    ///
 2209   2244   
    /// ```no_run
 2210   2245   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 2211   2246   
    ///
 2212   2247   
    /// use json_rpc10::{input, output, error};
 2213   2248   
    ///
 2214   2249   
    /// async fn handler(input: input::QueryIncompatibleOperationInput) -> Result<output::QueryIncompatibleOperationOutput, error::QueryIncompatibleOperationError> {
 2215   2250   
    ///     todo!()
 2216   2251   
    /// }
 2217   2252   
    ///
 2218   2253   
    /// let config = JsonRpc10Config::builder().build();
 2219   2254   
    /// let svc = ::tower::util::service_fn(handler);
 2220   2255   
    /// let app = JsonRpc10::builder(config)
 2221   2256   
    ///     .query_incompatible_operation_service(svc)
 2222   2257   
    ///     /* Set other handlers */
 2223   2258   
    ///     .build()
 2224   2259   
    ///     .unwrap();
 2225         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        2260  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 2226   2261   
    /// ```
 2227   2262   
    ///
 2228   2263   
                    pub fn query_incompatible_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 2229   2264   
                    where
 2230         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::QueryIncompatibleOperation, ServiceExtractors>,
        2265  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryIncompatibleOperation, ServiceExtractors>,
 2231   2266   
 2232         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        2267  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2233   2268   
                            JsonRpc10<L>,
 2234   2269   
                            crate::operation_shape::QueryIncompatibleOperation,
 2235         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::QueryIncompatibleOperation, S>
        2270  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryIncompatibleOperation, S>
 2236   2271   
                        >,
 2237         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        2272  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2238   2273   
                            JsonRpc10<L>,
 2239   2274   
                            crate::operation_shape::QueryIncompatibleOperation,
 2240   2275   
                            ModelPl::Output
 2241   2276   
                        >,
 2242         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        2277  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2243   2278   
                            JsonRpc10<L>,
 2244   2279   
                            crate::operation_shape::QueryIncompatibleOperation,
 2245   2280   
                            <
 2246         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2247         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        2281  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2282  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 2248   2283   
                                    JsonRpc10<L>,
 2249   2284   
                                    crate::operation_shape::QueryIncompatibleOperation,
 2250   2285   
                                    ModelPl::Output
 2251   2286   
                                >
 2252   2287   
                            >::Output
 2253   2288   
                        >,
 2254   2289   
 2255         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2290  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2256   2291   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 2257   2292   
 2258   2293   
                    {
 2259         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2260         -
        use ::aws_smithy_http_server::plugin::Plugin;
        2294  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2295  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 2261   2296   
        let svc = crate::operation_shape::QueryIncompatibleOperation::from_service(service);
 2262   2297   
        let svc = self.model_plugin.apply(svc);
 2263         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2298  +
        let svc =
        2299  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2264   2300   
                .apply(svc);
 2265   2301   
        let svc = self.http_plugin.apply(svc);
 2266   2302   
        self.query_incompatible_operation_custom(svc)
 2267   2303   
    }
 2268   2304   
 2269   2305   
    /// Sets the [`QueryIncompatibleOperation`](crate::operation_shape::QueryIncompatibleOperation) to a custom [`Service`](tower::Service).
 2270   2306   
    /// not constrained by the Smithy contract.
 2271   2307   
    fn query_incompatible_operation_custom<S>(mut self, svc: S) -> Self
 2272   2308   
    where
 2273   2309   
        S: ::tower::Service<
 2274   2310   
                ::http::Request<Body>,
 2275         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2311  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 2276   2312   
                Error = ::std::convert::Infallible,
 2277   2313   
            > + Clone
 2278   2314   
            + Send
 2279   2315   
            + 'static,
 2280   2316   
        S::Future: Send + 'static,
 2281   2317   
    {
 2282   2318   
        self.query_incompatible_operation =
 2283         -
            Some(::aws_smithy_http_server::routing::Route::new(svc));
        2319  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 2284   2320   
        self
 2285   2321   
    }
 2286   2322   
 2287   2323   
    /// Sets the [`SimpleScalarProperties`](crate::operation_shape::SimpleScalarProperties) operation.
 2288   2324   
    ///
 2289         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 2290         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        2325  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2326  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 2291   2327   
    ///
 2292   2328   
    /// # Example
 2293   2329   
    ///
 2294   2330   
    /// ```no_run
 2295   2331   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 2296   2332   
    ///
 2297   2333   
    /// use json_rpc10::{input, output, error};
 2298   2334   
    ///
 2299   2335   
    /// async fn handler(input: input::SimpleScalarPropertiesInput) -> Result<output::SimpleScalarPropertiesOutput, error::SimpleScalarPropertiesError> {
 2300   2336   
    ///     todo!()
 2301   2337   
    /// }
 2302   2338   
    ///
 2303   2339   
    /// let config = JsonRpc10Config::builder().build();
 2304   2340   
    /// let app = JsonRpc10::builder(config)
 2305   2341   
    ///     .simple_scalar_properties(handler)
 2306   2342   
    ///     /* Set other handlers */
 2307   2343   
    ///     .build()
 2308   2344   
    ///     .unwrap();
 2309         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        2345  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 2310   2346   
    /// ```
 2311   2347   
    ///
 2312   2348   
                    pub fn simple_scalar_properties<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
 2313   2349   
                    where
 2314         -
                        HandlerType: ::aws_smithy_http_server::operation::Handler<crate::operation_shape::SimpleScalarProperties, HandlerExtractors>,
        2350  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::SimpleScalarProperties, HandlerExtractors>,
 2315   2351   
 2316         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        2352  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2317   2353   
                            JsonRpc10<L>,
 2318   2354   
                            crate::operation_shape::SimpleScalarProperties,
 2319         -
                            ::aws_smithy_http_server::operation::IntoService<crate::operation_shape::SimpleScalarProperties, HandlerType>
        2355  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::SimpleScalarProperties, HandlerType>
 2320   2356   
                        >,
 2321         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        2357  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2322   2358   
                            JsonRpc10<L>,
 2323   2359   
                            crate::operation_shape::SimpleScalarProperties,
 2324   2360   
                            ModelPl::Output
 2325   2361   
                        >,
 2326         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        2362  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2327   2363   
                            JsonRpc10<L>,
 2328   2364   
                            crate::operation_shape::SimpleScalarProperties,
 2329   2365   
                            <
 2330         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2331         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        2366  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2367  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 2332   2368   
                                    JsonRpc10<L>,
 2333   2369   
                                    crate::operation_shape::SimpleScalarProperties,
 2334   2370   
                                    ModelPl::Output
 2335   2371   
                                >
 2336   2372   
                            >::Output
 2337   2373   
                        >,
 2338   2374   
 2339         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2375  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2340   2376   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 2341   2377   
 2342   2378   
                    {
 2343         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2344         -
        use ::aws_smithy_http_server::plugin::Plugin;
        2379  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2380  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 2345   2381   
        let svc = crate::operation_shape::SimpleScalarProperties::from_handler(handler);
 2346   2382   
        let svc = self.model_plugin.apply(svc);
 2347         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2383  +
        let svc =
        2384  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2348   2385   
                .apply(svc);
 2349   2386   
        let svc = self.http_plugin.apply(svc);
 2350   2387   
        self.simple_scalar_properties_custom(svc)
 2351   2388   
    }
 2352   2389   
 2353   2390   
    /// Sets the [`SimpleScalarProperties`](crate::operation_shape::SimpleScalarProperties) operation.
 2354   2391   
    ///
 2355         -
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_http_server::operation::Handler) trait.
 2356         -
    /// See the [operation module documentation](::aws_smithy_http_server::operation) for more information.
        2392  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2393  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
 2357   2394   
    ///
 2358   2395   
    /// # Example
 2359   2396   
    ///
 2360   2397   
    /// ```no_run
 2361   2398   
    /// use json_rpc10::{JsonRpc10, JsonRpc10Config};
 2362   2399   
    ///
 2363   2400   
    /// use json_rpc10::{input, output, error};
 2364   2401   
    ///
 2365   2402   
    /// async fn handler(input: input::SimpleScalarPropertiesInput) -> Result<output::SimpleScalarPropertiesOutput, error::SimpleScalarPropertiesError> {
 2366   2403   
    ///     todo!()
 2367   2404   
    /// }
 2368   2405   
    ///
 2369   2406   
    /// let config = JsonRpc10Config::builder().build();
 2370   2407   
    /// let svc = ::tower::util::service_fn(handler);
 2371   2408   
    /// let app = JsonRpc10::builder(config)
 2372   2409   
    ///     .simple_scalar_properties_service(svc)
 2373   2410   
    ///     /* Set other handlers */
 2374   2411   
    ///     .build()
 2375   2412   
    ///     .unwrap();
 2376         -
    /// # let app: JsonRpc10<::aws_smithy_http_server::routing::RoutingService<::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_http_server::routing::Route>, ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
        2413  +
    /// # let app: JsonRpc10<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>> = app;
 2377   2414   
    /// ```
 2378   2415   
    ///
 2379   2416   
                    pub fn simple_scalar_properties_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
 2380   2417   
                    where
 2381         -
                        S: ::aws_smithy_http_server::operation::OperationService<crate::operation_shape::SimpleScalarProperties, ServiceExtractors>,
        2418  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::SimpleScalarProperties, ServiceExtractors>,
 2382   2419   
 2383         -
                        ModelPl: ::aws_smithy_http_server::plugin::Plugin<
        2420  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2384   2421   
                            JsonRpc10<L>,
 2385   2422   
                            crate::operation_shape::SimpleScalarProperties,
 2386         -
                            ::aws_smithy_http_server::operation::Normalize<crate::operation_shape::SimpleScalarProperties, S>
        2423  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::SimpleScalarProperties, S>
 2387   2424   
                        >,
 2388         -
                        ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_http_server::plugin::Plugin<
        2425  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2389   2426   
                            JsonRpc10<L>,
 2390   2427   
                            crate::operation_shape::SimpleScalarProperties,
 2391   2428   
                            ModelPl::Output
 2392   2429   
                        >,
 2393         -
                        HttpPl: ::aws_smithy_http_server::plugin::Plugin<
        2430  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
 2394   2431   
                            JsonRpc10<L>,
 2395   2432   
                            crate::operation_shape::SimpleScalarProperties,
 2396   2433   
                            <
 2397         -
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2398         -
                                as ::aws_smithy_http_server::plugin::Plugin<
        2434  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2435  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
 2399   2436   
                                    JsonRpc10<L>,
 2400   2437   
                                    crate::operation_shape::SimpleScalarProperties,
 2401   2438   
                                    ModelPl::Output
 2402   2439   
                                >
 2403   2440   
                            >::Output
 2404   2441   
                        >,
 2405   2442   
 2406         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2443  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2407   2444   
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
 2408   2445   
 2409   2446   
                    {
 2410         -
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2411         -
        use ::aws_smithy_http_server::plugin::Plugin;
        2447  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2448  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
 2412   2449   
        let svc = crate::operation_shape::SimpleScalarProperties::from_service(service);
 2413   2450   
        let svc = self.model_plugin.apply(svc);
 2414         -
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2451  +
        let svc =
        2452  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2415   2453   
                .apply(svc);
 2416   2454   
        let svc = self.http_plugin.apply(svc);
 2417   2455   
        self.simple_scalar_properties_custom(svc)
 2418   2456   
    }
 2419   2457   
 2420   2458   
    /// Sets the [`SimpleScalarProperties`](crate::operation_shape::SimpleScalarProperties) to a custom [`Service`](tower::Service).
 2421   2459   
    /// not constrained by the Smithy contract.
 2422   2460   
    fn simple_scalar_properties_custom<S>(mut self, svc: S) -> Self
 2423   2461   
    where
 2424   2462   
        S: ::tower::Service<
 2425   2463   
                ::http::Request<Body>,
 2426         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2464  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 2427   2465   
                Error = ::std::convert::Infallible,
 2428   2466   
            > + Clone
 2429   2467   
            + Send
 2430   2468   
            + 'static,
 2431   2469   
        S::Future: Send + 'static,
 2432   2470   
    {
 2433         -
        self.simple_scalar_properties = Some(::aws_smithy_http_server::routing::Route::new(svc));
        2471  +
        self.simple_scalar_properties =
        2472  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
 2434   2473   
        self
 2435   2474   
    }
 2436   2475   
}
 2437   2476   
 2438   2477   
impl<Body, L, HttpPl, ModelPl> JsonRpc10Builder<Body, L, HttpPl, ModelPl> {
 2439   2478   
    /// Constructs a [`JsonRpc10`] from the arguments provided to the builder.
 2440   2479   
    ///
 2441   2480   
    /// Forgetting to register a handler for one or more operations will result in an error.
 2442   2481   
    ///
 2443   2482   
    /// Check out [`JsonRpc10Builder::build_unchecked`] if you'd prefer the service to return status code 500 when an
 2444   2483   
    /// unspecified route is requested.
 2445   2484   
    pub fn build(
 2446   2485   
        self,
 2447   2486   
    ) -> ::std::result::Result<
 2448   2487   
        JsonRpc10<
 2449         -
            ::aws_smithy_http_server::routing::RoutingService<
 2450         -
                ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<L::Service>,
 2451         -
                ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
        2488  +
            ::aws_smithy_legacy_http_server::routing::RoutingService<
        2489  +
                ::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<
        2490  +
                    L::Service,
        2491  +
                >,
        2492  +
                ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 2452   2493   
            >,
 2453   2494   
        >,
 2454   2495   
        MissingOperationsError,
 2455   2496   
    >
 2456   2497   
    where
 2457         -
        L: ::tower::Layer<::aws_smithy_http_server::routing::Route<Body>>,
        2498  +
        L: ::tower::Layer<::aws_smithy_legacy_http_server::routing::Route<Body>>,
 2458   2499   
    {
 2459   2500   
        let router = {
 2460         -
            use ::aws_smithy_http_server::operation::OperationShape;
        2501  +
            use ::aws_smithy_legacy_http_server::operation::OperationShape;
 2461   2502   
            let mut missing_operation_names = std::collections::HashMap::new();
 2462   2503   
            if self.content_type_parameters.is_none() {
 2463   2504   
                missing_operation_names.insert(
 2464   2505   
                    crate::operation_shape::ContentTypeParameters::ID,
 2465   2506   
                    ".content_type_parameters()",
 2466   2507   
                );
 2467   2508   
            }
 2468   2509   
            if self.empty_input_and_empty_output.is_none() {
 2469   2510   
                missing_operation_names.insert(
 2470   2511   
                    crate::operation_shape::EmptyInputAndEmptyOutput::ID,
@@ -2533,2574 +2593,2634 @@
 2553   2594   
                    ".simple_scalar_properties()",
 2554   2595   
                );
 2555   2596   
            }
 2556   2597   
            if !missing_operation_names.is_empty() {
 2557   2598   
                return Err(MissingOperationsError {
 2558   2599   
                    operation_names2setter_methods: missing_operation_names,
 2559   2600   
                });
 2560   2601   
            }
 2561   2602   
            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";
 2562   2603   
 2563         -
            ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter::from_iter([
        2604  +
            ::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter::from_iter([
 2564   2605   
                (
 2565   2606   
                    request_specs::content_type_parameters(),
 2566   2607   
                    self.content_type_parameters.expect(unexpected_error_msg),
 2567   2608   
                ),
 2568   2609   
                (
 2569   2610   
                    request_specs::empty_input_and_empty_output(),
 2570   2611   
                    self.empty_input_and_empty_output
 2571   2612   
                        .expect(unexpected_error_msg),
 2572   2613   
                ),
 2573   2614   
                (
@@ -2606,2647 +2850,2853 @@
 2626   2667   
                    request_specs::query_incompatible_operation(),
 2627   2668   
                    self.query_incompatible_operation
 2628   2669   
                        .expect(unexpected_error_msg),
 2629   2670   
                ),
 2630   2671   
                (
 2631   2672   
                    request_specs::simple_scalar_properties(),
 2632   2673   
                    self.simple_scalar_properties.expect(unexpected_error_msg),
 2633   2674   
                ),
 2634   2675   
            ])
 2635   2676   
        };
 2636         -
        let svc = ::aws_smithy_http_server::routing::RoutingService::new(router);
        2677  +
        let svc = ::aws_smithy_legacy_http_server::routing::RoutingService::new(router);
 2637   2678   
        let svc = svc.map(|s| s.layer(self.layer));
 2638   2679   
        Ok(JsonRpc10 { svc })
 2639   2680   
    }
 2640   2681   
 2641   2682   
    /// Constructs a [`JsonRpc10`] from the arguments provided to the builder.
 2642   2683   
    /// Operations without a handler default to returning 500 Internal Server Error to the caller.
 2643   2684   
    ///
 2644   2685   
    /// Check out [`JsonRpc10Builder::build`] if you'd prefer the builder to fail if one or more operations do
 2645   2686   
    /// not have a registered handler.
 2646   2687   
    pub fn build_unchecked(self) -> JsonRpc10<L::Service>
 2647   2688   
    where
 2648   2689   
        Body: Send + 'static,
 2649   2690   
        L: ::tower::Layer<
 2650         -
            ::aws_smithy_http_server::routing::RoutingService<
 2651         -
                ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<
 2652         -
                    ::aws_smithy_http_server::routing::Route<Body>,
        2691  +
            ::aws_smithy_legacy_http_server::routing::RoutingService<
        2692  +
                ::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<
        2693  +
                    ::aws_smithy_legacy_http_server::routing::Route<Body>,
 2653   2694   
                >,
 2654         -
                ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
        2695  +
                ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 2655   2696   
            >,
 2656   2697   
        >,
 2657   2698   
    {
 2658         -
        let router =
 2659         -
            ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter::from_iter([
 2660         -
                (
        2699  +
        let router = ::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter::from_iter([(
 2661   2700   
                                request_specs::content_type_parameters(),
 2662   2701   
                                self.content_type_parameters.unwrap_or_else(|| {
 2663         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2664         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2665         -
                        >::default();
 2666         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2667         -
                    }),
        2702  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2703  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2704  +
                                })
 2668   2705   
                            ),
 2669         -
                (
        2706  +
(
 2670   2707   
                                request_specs::empty_input_and_empty_output(),
 2671   2708   
                                self.empty_input_and_empty_output.unwrap_or_else(|| {
 2672         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2673         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2674         -
                        >::default();
 2675         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2676         -
                    }),
        2709  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2710  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2711  +
                                })
 2677   2712   
                            ),
 2678         -
                (
        2713  +
(
 2679   2714   
                                request_specs::endpoint_operation(),
 2680   2715   
                                self.endpoint_operation.unwrap_or_else(|| {
 2681         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2682         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2683         -
                        >::default();
 2684         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2685         -
                    }),
        2716  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2717  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2718  +
                                })
 2686   2719   
                            ),
 2687         -
                (
        2720  +
(
 2688   2721   
                                request_specs::endpoint_with_host_label_operation(),
 2689   2722   
                                self.endpoint_with_host_label_operation.unwrap_or_else(|| {
 2690         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2691         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2692         -
                        >::default();
 2693         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2694         -
                    }),
        2723  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2724  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2725  +
                                })
 2695   2726   
                            ),
 2696         -
                (
        2727  +
(
 2697   2728   
                                request_specs::greeting_with_errors(),
 2698   2729   
                                self.greeting_with_errors.unwrap_or_else(|| {
 2699         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2700         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2701         -
                        >::default();
 2702         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2703         -
                    }),
        2730  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2731  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2732  +
                                })
 2704   2733   
                            ),
 2705         -
                (
        2734  +
(
 2706   2735   
                                request_specs::host_with_path_operation(),
 2707   2736   
                                self.host_with_path_operation.unwrap_or_else(|| {
 2708         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2709         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2710         -
                        >::default();
 2711         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2712         -
                    }),
        2737  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2738  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2739  +
                                })
 2713   2740   
                            ),
 2714         -
                (
        2741  +
(
 2715   2742   
                                request_specs::json_unions(),
 2716   2743   
                                self.json_unions.unwrap_or_else(|| {
 2717         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2718         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2719         -
                        >::default();
 2720         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2721         -
                    }),
        2744  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2745  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2746  +
                                })
 2722   2747   
                            ),
 2723         -
                (
        2748  +
(
 2724   2749   
                                request_specs::no_input_and_no_output(),
 2725   2750   
                                self.no_input_and_no_output.unwrap_or_else(|| {
 2726         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2727         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2728         -
                        >::default();
 2729         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2730         -
                    }),
        2751  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2752  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2753  +
                                })
 2731   2754   
                            ),
 2732         -
                (
        2755  +
(
 2733   2756   
                                request_specs::no_input_and_output(),
 2734   2757   
                                self.no_input_and_output.unwrap_or_else(|| {
 2735         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2736         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2737         -
                        >::default();
 2738         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2739         -
                    }),
        2758  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2759  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2760  +
                                })
 2740   2761   
                            ),
 2741         -
                (
        2762  +
(
 2742   2763   
                                request_specs::operation_with_defaults(),
 2743   2764   
                                self.operation_with_defaults.unwrap_or_else(|| {
 2744         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2745         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2746         -
                        >::default();
 2747         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2748         -
                    }),
        2765  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2766  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2767  +
                                })
 2749   2768   
                            ),
 2750         -
                (
        2769  +
(
 2751   2770   
                                request_specs::operation_with_nested_structure(),
 2752   2771   
                                self.operation_with_nested_structure.unwrap_or_else(|| {
 2753         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2754         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2755         -
                        >::default();
 2756         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2757         -
                    }),
        2772  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2773  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2774  +
                                })
 2758   2775   
                            ),
 2759         -
                (
        2776  +
(
 2760   2777   
                                request_specs::operation_with_required_members(),
 2761   2778   
                                self.operation_with_required_members.unwrap_or_else(|| {
 2762         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2763         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2764         -
                        >::default();
 2765         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2766         -
                    }),
        2779  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2780  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2781  +
                                })
 2767   2782   
                            ),
 2768         -
                (
        2783  +
(
 2769   2784   
                                request_specs::operation_with_required_members_with_defaults(),
 2770         -
                    self.operation_with_required_members_with_defaults
 2771         -
                        .unwrap_or_else(|| {
 2772         -
                            let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2773         -
                                ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2774         -
                            >::default();
 2775         -
                            ::aws_smithy_http_server::routing::Route::new(svc)
 2776         -
                        }),
        2785  +
                                self.operation_with_required_members_with_defaults.unwrap_or_else(|| {
        2786  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2787  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2788  +
                                })
 2777   2789   
                            ),
 2778         -
                (
        2790  +
(
 2779   2791   
                                request_specs::put_with_content_encoding(),
 2780   2792   
                                self.put_with_content_encoding.unwrap_or_else(|| {
 2781         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2782         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2783         -
                        >::default();
 2784         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2785         -
                    }),
        2793  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2794  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2795  +
                                })
 2786   2796   
                            ),
 2787         -
                (
        2797  +
(
 2788   2798   
                                request_specs::query_incompatible_operation(),
 2789   2799   
                                self.query_incompatible_operation.unwrap_or_else(|| {
 2790         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2791         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2792         -
                        >::default();
 2793         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2794         -
                    }),
        2800  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2801  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2802  +
                                })
 2795   2803   
                            ),
 2796         -
                (
        2804  +
(
 2797   2805   
                                request_specs::simple_scalar_properties(),
 2798   2806   
                                self.simple_scalar_properties.unwrap_or_else(|| {
 2799         -
                        let svc = ::aws_smithy_http_server::operation::MissingFailure::<
 2800         -
                            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 2801         -
                        >::default();
 2802         -
                        ::aws_smithy_http_server::routing::Route::new(svc)
 2803         -
                    }),
 2804         -
                ),
 2805         -
            ]);
        2807  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::default();
        2808  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        2809  +
                                })
        2810  +
                            ),]);
 2806   2811   
        let svc = self
 2807   2812   
            .layer
 2808         -
            .layer(::aws_smithy_http_server::routing::RoutingService::new(
 2809         -
                router,
 2810         -
            ));
        2813  +
            .layer(::aws_smithy_legacy_http_server::routing::RoutingService::new(router));
 2811   2814   
        JsonRpc10 { svc }
 2812   2815   
    }
 2813   2816   
}
 2814   2817   
 2815   2818   
/// The error encountered when calling the [`JsonRpc10Builder::build`] method if one or more operation handlers are not
 2816   2819   
/// specified.
 2817   2820   
#[derive(Debug)]
 2818   2821   
pub struct MissingOperationsError {
 2819   2822   
    operation_names2setter_methods:
 2820         -
        std::collections::HashMap<::aws_smithy_http_server::shape_id::ShapeId, &'static str>,
        2823  +
        std::collections::HashMap<::aws_smithy_legacy_http_server::shape_id::ShapeId, &'static str>,
 2821   2824   
}
 2822   2825   
 2823   2826   
impl std::fmt::Display for MissingOperationsError {
 2824   2827   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2825   2828   
        write!(
 2826   2829   
            f,
 2827   2830   
            "You must specify a handler for all operations attached to `JsonRpc10`.\n\
 2828   2831   
                            We are missing handlers for the following operations:\n",
 2829   2832   
        )?;
 2830   2833   
        for operation_name in self.operation_names2setter_methods.keys() {
@@ -2873,2876 +3475,3509 @@
 2893   2896   
    pub(super) fn simple_scalar_properties() -> &'static str {
 2894   2897   
        "JsonRpc10.SimpleScalarProperties"
 2895   2898   
    }
 2896   2899   
}
 2897   2900   
 2898   2901   
#[allow(missing_docs)] // documentation missing in model
 2899   2902   
///
 2900   2903   
/// See the [root](crate) documentation for more information.
 2901   2904   
#[derive(Clone)]
 2902   2905   
pub struct JsonRpc10<
 2903         -
    S = ::aws_smithy_http_server::routing::RoutingService<
 2904         -
        ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<
 2905         -
            ::aws_smithy_http_server::routing::Route<::aws_smithy_http_server::body::BoxBody>,
        2906  +
    S = ::aws_smithy_legacy_http_server::routing::RoutingService<
        2907  +
        ::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<
        2908  +
            ::aws_smithy_legacy_http_server::routing::Route<
        2909  +
                ::aws_smithy_legacy_http_server::body::BoxBody,
 2906   2910   
            >,
 2907         -
        ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
        2911  +
        >,
        2912  +
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 2908   2913   
    >,
 2909   2914   
> {
 2910   2915   
    // This is the router wrapped by layers.
 2911   2916   
    svc: S,
 2912   2917   
}
 2913   2918   
 2914   2919   
impl JsonRpc10<()> {
 2915   2920   
    /// Constructs a builder for [`JsonRpc10`].
 2916   2921   
    /// You must specify a configuration object holding any plugins and layers that should be applied
 2917   2922   
    /// to the operations in this service.
 2918   2923   
    pub fn builder<
 2919   2924   
        Body,
 2920   2925   
        L,
 2921         -
        HttpPl: ::aws_smithy_http_server::plugin::HttpMarker,
 2922         -
        ModelPl: ::aws_smithy_http_server::plugin::ModelMarker,
        2926  +
        HttpPl: ::aws_smithy_legacy_http_server::plugin::HttpMarker,
        2927  +
        ModelPl: ::aws_smithy_legacy_http_server::plugin::ModelMarker,
 2923   2928   
    >(
 2924   2929   
        config: JsonRpc10Config<L, HttpPl, ModelPl>,
 2925   2930   
    ) -> JsonRpc10Builder<Body, L, HttpPl, ModelPl> {
 2926   2931   
        JsonRpc10Builder {
 2927   2932   
            content_type_parameters: None,
 2928   2933   
            empty_input_and_empty_output: None,
 2929   2934   
            endpoint_operation: None,
 2930   2935   
            endpoint_with_host_label_operation: None,
 2931   2936   
            greeting_with_errors: None,
 2932   2937   
            host_with_path_operation: None,
 2933   2938   
            json_unions: None,
 2934   2939   
            no_input_and_no_output: None,
 2935   2940   
            no_input_and_output: None,
 2936   2941   
            operation_with_defaults: None,
 2937   2942   
            operation_with_nested_structure: None,
 2938   2943   
            operation_with_required_members: None,
 2939   2944   
            operation_with_required_members_with_defaults: None,
 2940   2945   
            put_with_content_encoding: None,
 2941   2946   
            query_incompatible_operation: None,
 2942   2947   
            simple_scalar_properties: None,
 2943   2948   
            layer: config.layers,
 2944   2949   
            http_plugin: config.http_plugins,
 2945   2950   
            model_plugin: config.model_plugins,
 2946   2951   
        }
 2947   2952   
    }
 2948   2953   
 2949   2954   
    /// Constructs a builder for [`JsonRpc10`].
 2950   2955   
    /// You must specify what plugins should be applied to the operations in this service.
 2951   2956   
    ///
 2952   2957   
    /// Use [`JsonRpc10::builder_without_plugins`] if you don't need to apply plugins.
 2953   2958   
    ///
 2954         -
    /// Check out [`HttpPlugins`](::aws_smithy_http_server::plugin::HttpPlugins) and
 2955         -
    /// [`ModelPlugins`](::aws_smithy_http_server::plugin::ModelPlugins) if you need to apply
        2959  +
    /// Check out [`HttpPlugins`](::aws_smithy_legacy_http_server::plugin::HttpPlugins) and
        2960  +
    /// [`ModelPlugins`](::aws_smithy_legacy_http_server::plugin::ModelPlugins) if you need to apply
 2956   2961   
    /// multiple plugins.
 2957   2962   
    #[deprecated(
 2958   2963   
        since = "0.57.0",
 2959   2964   
        note = "please use the `builder` constructor and register plugins on the `JsonRpc10Config` object instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
 2960   2965   
    )]
 2961   2966   
    pub fn builder_with_plugins<
 2962   2967   
        Body,
 2963         -
        HttpPl: ::aws_smithy_http_server::plugin::HttpMarker,
 2964         -
        ModelPl: ::aws_smithy_http_server::plugin::ModelMarker,
        2968  +
        HttpPl: ::aws_smithy_legacy_http_server::plugin::HttpMarker,
        2969  +
        ModelPl: ::aws_smithy_legacy_http_server::plugin::ModelMarker,
 2965   2970   
    >(
 2966   2971   
        http_plugin: HttpPl,
 2967   2972   
        model_plugin: ModelPl,
 2968   2973   
    ) -> JsonRpc10Builder<Body, ::tower::layer::util::Identity, HttpPl, ModelPl> {
 2969   2974   
        JsonRpc10Builder {
 2970   2975   
            content_type_parameters: None,
 2971   2976   
            empty_input_and_empty_output: None,
 2972   2977   
            endpoint_operation: None,
 2973   2978   
            endpoint_with_host_label_operation: None,
 2974   2979   
            greeting_with_errors: None,
 2975   2980   
            host_with_path_operation: None,
 2976   2981   
            json_unions: None,
 2977   2982   
            no_input_and_no_output: None,
 2978   2983   
            no_input_and_output: None,
 2979   2984   
            operation_with_defaults: None,
 2980   2985   
            operation_with_nested_structure: None,
 2981   2986   
            operation_with_required_members: None,
 2982   2987   
            operation_with_required_members_with_defaults: None,
 2983   2988   
            put_with_content_encoding: None,
 2984   2989   
            query_incompatible_operation: None,
 2985   2990   
            simple_scalar_properties: None,
 2986   2991   
            layer: ::tower::layer::util::Identity::new(),
 2987   2992   
            http_plugin,
 2988   2993   
            model_plugin,
 2989   2994   
        }
 2990   2995   
    }
 2991   2996   
 2992   2997   
    /// Constructs a builder for [`JsonRpc10`].
 2993   2998   
    ///
 2994   2999   
    /// Use [`JsonRpc10::builder_with_plugins`] if you need to specify plugins.
 2995   3000   
    #[deprecated(
 2996   3001   
        since = "0.57.0",
 2997   3002   
        note = "please use the `builder` constructor instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
 2998   3003   
    )]
 2999   3004   
    pub fn builder_without_plugins<Body>() -> JsonRpc10Builder<
 3000   3005   
        Body,
 3001   3006   
        ::tower::layer::util::Identity,
 3002         -
        ::aws_smithy_http_server::plugin::IdentityPlugin,
 3003         -
        ::aws_smithy_http_server::plugin::IdentityPlugin,
        3007  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        3008  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
 3004   3009   
    > {
 3005   3010   
        Self::builder_with_plugins(
 3006         -
            ::aws_smithy_http_server::plugin::IdentityPlugin,
 3007         -
            ::aws_smithy_http_server::plugin::IdentityPlugin,
        3011  +
            ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        3012  +
            ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
 3008   3013   
        )
 3009   3014   
    }
 3010   3015   
}
 3011   3016   
 3012   3017   
impl<S> JsonRpc10<S> {
 3013   3018   
    /// Converts [`JsonRpc10`] into a [`MakeService`](tower::make::MakeService).
 3014         -
    pub fn into_make_service(self) -> ::aws_smithy_http_server::routing::IntoMakeService<Self> {
 3015         -
        ::aws_smithy_http_server::routing::IntoMakeService::new(self)
        3019  +
    pub fn into_make_service(
        3020  +
        self,
        3021  +
    ) -> ::aws_smithy_legacy_http_server::routing::IntoMakeService<Self> {
        3022  +
        ::aws_smithy_legacy_http_server::routing::IntoMakeService::new(self)
 3016   3023   
    }
 3017   3024   
 3018         -
    /// Converts [`JsonRpc10`] into a [`MakeService`](tower::make::MakeService) with [`ConnectInfo`](::aws_smithy_http_server::request::connect_info::ConnectInfo).
        3025  +
    /// Converts [`JsonRpc10`] into a [`MakeService`](tower::make::MakeService) with [`ConnectInfo`](::aws_smithy_legacy_http_server::request::connect_info::ConnectInfo).
 3019   3026   
    pub fn into_make_service_with_connect_info<C>(
 3020   3027   
        self,
 3021         -
    ) -> ::aws_smithy_http_server::routing::IntoMakeServiceWithConnectInfo<Self, C> {
 3022         -
        ::aws_smithy_http_server::routing::IntoMakeServiceWithConnectInfo::new(self)
        3028  +
    ) -> ::aws_smithy_legacy_http_server::routing::IntoMakeServiceWithConnectInfo<Self, C> {
        3029  +
        ::aws_smithy_legacy_http_server::routing::IntoMakeServiceWithConnectInfo::new(self)
 3023   3030   
    }
 3024   3031   
}
 3025   3032   
 3026   3033   
impl<S>
 3027   3034   
    JsonRpc10<
 3028         -
        ::aws_smithy_http_server::routing::RoutingService<
 3029         -
            ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<S>,
 3030         -
            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
        3035  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        3036  +
            ::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<S>,
        3037  +
            ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 3031   3038   
        >,
 3032   3039   
    >
 3033   3040   
{
 3034   3041   
    /// Applies a [`Layer`](::tower::Layer) uniformly to all routes.
 3035   3042   
    #[deprecated(
 3036   3043   
        since = "0.57.0",
 3037   3044   
        note = "please add layers to the `JsonRpc10Config` object instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
 3038   3045   
    )]
 3039   3046   
    pub fn layer<L>(
 3040   3047   
        self,
 3041   3048   
        layer: &L,
 3042   3049   
    ) -> JsonRpc10<
 3043         -
        ::aws_smithy_http_server::routing::RoutingService<
 3044         -
            ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<L::Service>,
 3045         -
            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
        3050  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        3051  +
            ::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<L::Service>,
        3052  +
            ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 3046   3053   
        >,
 3047   3054   
    >
 3048   3055   
    where
 3049   3056   
        L: ::tower::Layer<S>,
 3050   3057   
    {
 3051   3058   
        JsonRpc10 {
 3052   3059   
            svc: self.svc.map(|s| s.layer(layer)),
 3053   3060   
        }
 3054   3061   
    }
 3055   3062   
 3056         -
    /// Applies [`Route::new`](::aws_smithy_http_server::routing::Route::new) to all routes.
        3063  +
    /// Applies [`Route::new`](::aws_smithy_legacy_http_server::routing::Route::new) to all routes.
 3057   3064   
    ///
 3058   3065   
    /// This has the effect of erasing all types accumulated via layers.
 3059   3066   
    pub fn boxed<B>(
 3060   3067   
        self,
 3061   3068   
    ) -> JsonRpc10<
 3062         -
        ::aws_smithy_http_server::routing::RoutingService<
 3063         -
            ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<
 3064         -
                ::aws_smithy_http_server::routing::Route<B>,
        3069  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        3070  +
            ::aws_smithy_legacy_http_server::protocol::aws_json::router::AwsJsonRouter<
        3071  +
                ::aws_smithy_legacy_http_server::routing::Route<B>,
 3065   3072   
            >,
 3066         -
            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
        3073  +
            ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 3067   3074   
        >,
 3068   3075   
    >
 3069   3076   
    where
 3070   3077   
        S: ::tower::Service<
 3071   3078   
            ::http::Request<B>,
 3072         -
            Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        3079  +
            Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
 3073   3080   
            Error = std::convert::Infallible,
 3074   3081   
        >,
 3075   3082   
        S: Clone + Send + 'static,
 3076   3083   
        S::Future: Send + 'static,
 3077   3084   
    {
 3078   3085   
        self.layer(&::tower::layer::layer_fn(
 3079         -
            ::aws_smithy_http_server::routing::Route::new,
        3086  +
            ::aws_smithy_legacy_http_server::routing::Route::new,
 3080   3087   
        ))
 3081   3088   
    }
 3082   3089   
}
 3083   3090   
 3084   3091   
impl<S, R> ::tower::Service<R> for JsonRpc10<S>
 3085   3092   
where
 3086   3093   
    S: ::tower::Service<R>,
 3087   3094   
{
 3088   3095   
    type Response = S::Response;
 3089   3096   
    type Error = S::Error;
 3090   3097   
    type Future = S::Future;
 3091   3098   
 3092   3099   
    fn poll_ready(
 3093   3100   
        &mut self,
 3094   3101   
        cx: &mut std::task::Context,
 3095   3102   
    ) -> std::task::Poll<::std::result::Result<(), Self::Error>> {
 3096   3103   
        self.svc.poll_ready(cx)
 3097   3104   
    }
 3098   3105   
 3099   3106   
    fn call(&mut self, request: R) -> Self::Future {
 3100   3107   
        self.svc.call(request)
 3101   3108   
    }
 3102   3109   
}
 3103   3110   
 3104   3111   
/// An enumeration of all [operations](https://smithy.io/2.0/spec/service-types.html#operation) in JsonRpc10.
 3105   3112   
#[allow(clippy::enum_variant_names)]
 3106   3113   
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
 3107   3114   
pub enum Operation {
 3108   3115   
    ContentTypeParameters,
 3109   3116   
    EmptyInputAndEmptyOutput,
 3110   3117   
    EndpointOperation,
 3111   3118   
    EndpointWithHostLabelOperation,
 3112   3119   
    GreetingWithErrors,
 3113   3120   
    HostWithPathOperation,
 3114   3121   
    JsonUnions,
 3115   3122   
    NoInputAndNoOutput,
 3116   3123   
    NoInputAndOutput,
 3117   3124   
    OperationWithDefaults,
 3118   3125   
    OperationWithNestedStructure,
 3119   3126   
    OperationWithRequiredMembers,
 3120   3127   
    OperationWithRequiredMembersWithDefaults,
 3121   3128   
    PutWithContentEncoding,
 3122   3129   
    QueryIncompatibleOperation,
 3123   3130   
    SimpleScalarProperties,
 3124   3131   
}
 3125   3132   
 3126   3133   
impl Operation {
 3127         -
    /// Returns the [operations](https://smithy.io/2.0/spec/service-types.html#operation) [`ShapeId`](::aws_smithy_http_server::shape_id::ShapeId).
 3128         -
    pub fn shape_id(&self) -> ::aws_smithy_http_server::shape_id::ShapeId {
        3134  +
    /// Returns the [operations](https://smithy.io/2.0/spec/service-types.html#operation) [`ShapeId`](::aws_smithy_legacy_http_server::shape_id::ShapeId).
        3135  +
    pub fn shape_id(&self) -> ::aws_smithy_legacy_http_server::shape_id::ShapeId {
 3129   3136   
        match self {
 3130         -
            Operation::ContentTypeParameters => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3137  +
            Operation::ContentTypeParameters => {
        3138  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3131   3139   
                    "aws.protocoltests.json10#ContentTypeParameters",
 3132   3140   
                    "aws.protocoltests.json10",
 3133   3141   
                    "ContentTypeParameters",
 3134         -
            ),
        3142  +
                )
        3143  +
            }
 3135   3144   
            Operation::EmptyInputAndEmptyOutput => {
 3136         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        3145  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3137   3146   
                    "aws.protocoltests.json10#EmptyInputAndEmptyOutput",
 3138   3147   
                    "aws.protocoltests.json10",
 3139   3148   
                    "EmptyInputAndEmptyOutput",
 3140   3149   
                )
 3141   3150   
            }
 3142         -
            Operation::EndpointOperation => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3151  +
            Operation::EndpointOperation => {
        3152  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3143   3153   
                    "aws.protocoltests.json10#EndpointOperation",
 3144   3154   
                    "aws.protocoltests.json10",
 3145   3155   
                    "EndpointOperation",
 3146         -
            ),
        3156  +
                )
        3157  +
            }
 3147   3158   
            Operation::EndpointWithHostLabelOperation => {
 3148         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        3159  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3149   3160   
                    "aws.protocoltests.json10#EndpointWithHostLabelOperation",
 3150   3161   
                    "aws.protocoltests.json10",
 3151   3162   
                    "EndpointWithHostLabelOperation",
 3152   3163   
                )
 3153   3164   
            }
 3154         -
            Operation::GreetingWithErrors => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3165  +
            Operation::GreetingWithErrors => {
        3166  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3155   3167   
                    "aws.protocoltests.json10#GreetingWithErrors",
 3156   3168   
                    "aws.protocoltests.json10",
 3157   3169   
                    "GreetingWithErrors",
 3158         -
            ),
 3159         -
            Operation::HostWithPathOperation => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3170  +
                )
        3171  +
            }
        3172  +
            Operation::HostWithPathOperation => {
        3173  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3160   3174   
                    "aws.protocoltests.json10#HostWithPathOperation",
 3161   3175   
                    "aws.protocoltests.json10",
 3162   3176   
                    "HostWithPathOperation",
 3163         -
            ),
 3164         -
            Operation::JsonUnions => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3177  +
                )
        3178  +
            }
        3179  +
            Operation::JsonUnions => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3165   3180   
                "aws.protocoltests.json10#JsonUnions",
 3166   3181   
                "aws.protocoltests.json10",
 3167   3182   
                "JsonUnions",
 3168   3183   
            ),
 3169         -
            Operation::NoInputAndNoOutput => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3184  +
            Operation::NoInputAndNoOutput => {
        3185  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3170   3186   
                    "aws.protocoltests.json10#NoInputAndNoOutput",
 3171   3187   
                    "aws.protocoltests.json10",
 3172   3188   
                    "NoInputAndNoOutput",
 3173         -
            ),
 3174         -
            Operation::NoInputAndOutput => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3189  +
                )
        3190  +
            }
        3191  +
            Operation::NoInputAndOutput => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3175   3192   
                "aws.protocoltests.json10#NoInputAndOutput",
 3176   3193   
                "aws.protocoltests.json10",
 3177   3194   
                "NoInputAndOutput",
 3178   3195   
            ),
 3179         -
            Operation::OperationWithDefaults => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3196  +
            Operation::OperationWithDefaults => {
        3197  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3180   3198   
                    "aws.protocoltests.json10#OperationWithDefaults",
 3181   3199   
                    "aws.protocoltests.json10",
 3182   3200   
                    "OperationWithDefaults",
 3183         -
            ),
        3201  +
                )
        3202  +
            }
 3184   3203   
            Operation::OperationWithNestedStructure => {
 3185         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        3204  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3186   3205   
                    "aws.protocoltests.json10#OperationWithNestedStructure",
 3187   3206   
                    "aws.protocoltests.json10",
 3188   3207   
                    "OperationWithNestedStructure",
 3189   3208   
                )
 3190   3209   
            }
 3191   3210   
            Operation::OperationWithRequiredMembers => {
 3192         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        3211  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3193   3212   
                    "aws.protocoltests.json10#OperationWithRequiredMembers",
 3194   3213   
                    "aws.protocoltests.json10",
 3195   3214   
                    "OperationWithRequiredMembers",
 3196   3215   
                )
 3197   3216   
            }
 3198   3217   
            Operation::OperationWithRequiredMembersWithDefaults => {
 3199         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        3218  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3200   3219   
                    "aws.protocoltests.json10#OperationWithRequiredMembersWithDefaults",
 3201   3220   
                    "aws.protocoltests.json10",
 3202   3221   
                    "OperationWithRequiredMembersWithDefaults",
 3203   3222   
                )
 3204   3223   
            }
 3205         -
            Operation::PutWithContentEncoding => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3224  +
            Operation::PutWithContentEncoding => {
        3225  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3206   3226   
                    "aws.protocoltests.json10#PutWithContentEncoding",
 3207   3227   
                    "aws.protocoltests.json10",
 3208   3228   
                    "PutWithContentEncoding",
 3209         -
            ),
        3229  +
                )
        3230  +
            }
 3210   3231   
            Operation::QueryIncompatibleOperation => {
 3211         -
                ::aws_smithy_http_server::shape_id::ShapeId::new(
        3232  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3212   3233   
                    "aws.protocoltests.json10#QueryIncompatibleOperation",
 3213   3234   
                    "aws.protocoltests.json10",
 3214   3235   
                    "QueryIncompatibleOperation",
 3215   3236   
                )
 3216   3237   
            }
 3217         -
            Operation::SimpleScalarProperties => ::aws_smithy_http_server::shape_id::ShapeId::new(
        3238  +
            Operation::SimpleScalarProperties => {
        3239  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3218   3240   
                    "aws.protocoltests.json10#SimpleScalarProperties",
 3219   3241   
                    "aws.protocoltests.json10",
 3220   3242   
                    "SimpleScalarProperties",
 3221         -
            ),
        3243  +
                )
        3244  +
            }
 3222   3245   
        }
 3223   3246   
    }
 3224   3247   
}
 3225   3248   
impl<L>
 3226         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3249  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3227   3250   
        crate::operation_shape::ContentTypeParameters,
 3228   3251   
    > for JsonRpc10<L>
 3229   3252   
{
 3230   3253   
    const VALUE: Operation = Operation::ContentTypeParameters;
 3231   3254   
}
 3232   3255   
impl<L>
 3233         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3256  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3234   3257   
        crate::operation_shape::EmptyInputAndEmptyOutput,
 3235   3258   
    > for JsonRpc10<L>
 3236   3259   
{
 3237   3260   
    const VALUE: Operation = Operation::EmptyInputAndEmptyOutput;
 3238   3261   
}
 3239   3262   
impl<L>
 3240         -
    ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::EndpointOperation>
 3241         -
    for JsonRpc10<L>
        3263  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        3264  +
        crate::operation_shape::EndpointOperation,
        3265  +
    > for JsonRpc10<L>
 3242   3266   
{
 3243   3267   
    const VALUE: Operation = Operation::EndpointOperation;
 3244   3268   
}
 3245   3269   
impl<L>
 3246         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3270  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3247   3271   
        crate::operation_shape::EndpointWithHostLabelOperation,
 3248   3272   
    > for JsonRpc10<L>
 3249   3273   
{
 3250   3274   
    const VALUE: Operation = Operation::EndpointWithHostLabelOperation;
 3251   3275   
}
 3252   3276   
impl<L>
 3253         -
    ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::GreetingWithErrors>
 3254         -
    for JsonRpc10<L>
        3277  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        3278  +
        crate::operation_shape::GreetingWithErrors,
        3279  +
    > for JsonRpc10<L>
 3255   3280   
{
 3256   3281   
    const VALUE: Operation = Operation::GreetingWithErrors;
 3257   3282   
}
 3258   3283   
impl<L>
 3259         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3284  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3260   3285   
        crate::operation_shape::HostWithPathOperation,
 3261   3286   
    > for JsonRpc10<L>
 3262   3287   
{
 3263   3288   
    const VALUE: Operation = Operation::HostWithPathOperation;
 3264   3289   
}
 3265         -
impl<L> ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::JsonUnions>
        3290  +
impl<L>
        3291  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<crate::operation_shape::JsonUnions>
 3266   3292   
    for JsonRpc10<L>
 3267   3293   
{
 3268   3294   
    const VALUE: Operation = Operation::JsonUnions;
 3269   3295   
}
 3270   3296   
impl<L>
 3271         -
    ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::NoInputAndNoOutput>
 3272         -
    for JsonRpc10<L>
        3297  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        3298  +
        crate::operation_shape::NoInputAndNoOutput,
        3299  +
    > for JsonRpc10<L>
 3273   3300   
{
 3274   3301   
    const VALUE: Operation = Operation::NoInputAndNoOutput;
 3275   3302   
}
 3276   3303   
impl<L>
 3277         -
    ::aws_smithy_http_server::service::ContainsOperation<crate::operation_shape::NoInputAndOutput>
 3278         -
    for JsonRpc10<L>
        3304  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        3305  +
        crate::operation_shape::NoInputAndOutput,
        3306  +
    > for JsonRpc10<L>
 3279   3307   
{
 3280   3308   
    const VALUE: Operation = Operation::NoInputAndOutput;
 3281   3309   
}
 3282   3310   
impl<L>
 3283         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3311  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3284   3312   
        crate::operation_shape::OperationWithDefaults,
 3285   3313   
    > for JsonRpc10<L>
 3286   3314   
{
 3287   3315   
    const VALUE: Operation = Operation::OperationWithDefaults;
 3288   3316   
}
 3289   3317   
impl<L>
 3290         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3318  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3291   3319   
        crate::operation_shape::OperationWithNestedStructure,
 3292   3320   
    > for JsonRpc10<L>
 3293   3321   
{
 3294   3322   
    const VALUE: Operation = Operation::OperationWithNestedStructure;
 3295   3323   
}
 3296   3324   
impl<L>
 3297         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3325  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3298   3326   
        crate::operation_shape::OperationWithRequiredMembers,
 3299   3327   
    > for JsonRpc10<L>
 3300   3328   
{
 3301   3329   
    const VALUE: Operation = Operation::OperationWithRequiredMembers;
 3302   3330   
}
 3303   3331   
impl<L>
 3304         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3332  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3305   3333   
        crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 3306   3334   
    > for JsonRpc10<L>
 3307   3335   
{
 3308   3336   
    const VALUE: Operation = Operation::OperationWithRequiredMembersWithDefaults;
 3309   3337   
}
 3310   3338   
impl<L>
 3311         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3339  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3312   3340   
        crate::operation_shape::PutWithContentEncoding,
 3313   3341   
    > for JsonRpc10<L>
 3314   3342   
{
 3315   3343   
    const VALUE: Operation = Operation::PutWithContentEncoding;
 3316   3344   
}
 3317   3345   
impl<L>
 3318         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3346  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3319   3347   
        crate::operation_shape::QueryIncompatibleOperation,
 3320   3348   
    > for JsonRpc10<L>
 3321   3349   
{
 3322   3350   
    const VALUE: Operation = Operation::QueryIncompatibleOperation;
 3323   3351   
}
 3324   3352   
impl<L>
 3325         -
    ::aws_smithy_http_server::service::ContainsOperation<
        3353  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
 3326   3354   
        crate::operation_shape::SimpleScalarProperties,
 3327   3355   
    > for JsonRpc10<L>
 3328   3356   
{
 3329   3357   
    const VALUE: Operation = Operation::SimpleScalarProperties;
 3330   3358   
}
 3331   3359   
 3332         -
impl<S> ::aws_smithy_http_server::service::ServiceShape for JsonRpc10<S> {
 3333         -
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
 3334         -
        ::aws_smithy_http_server::shape_id::ShapeId::new(
        3360  +
impl<S> ::aws_smithy_legacy_http_server::service::ServiceShape for JsonRpc10<S> {
        3361  +
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
        3362  +
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
 3335   3363   
            "aws.protocoltests.json10#JsonRpc10",
 3336   3364   
            "aws.protocoltests.json10",
 3337   3365   
            "JsonRpc10",
 3338   3366   
        );
 3339   3367   
 3340   3368   
    const VERSION: Option<&'static str> = Some("2020-07-14");
 3341   3369   
 3342         -
    type Protocol = ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0;
        3370  +
    type Protocol = ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0;
 3343   3371   
 3344   3372   
    type Operations = Operation;
 3345   3373   
}
 3346   3374   
/// Configuration for the [`JsonRpc10`]. This is the central place where to register and
 3347   3375   
/// configure [`::tower::Layer`]s, HTTP plugins, and model plugins.
 3348   3376   
///
 3349   3377   
/// ```rust,no_run
 3350   3378   
/// # use json_rpc10::JsonRpc10Config;
 3351         -
/// # use ::aws_smithy_http_server::plugin::IdentityPlugin;
        3379  +
/// # use ::aws_smithy_legacy_http_server::plugin::IdentityPlugin;
 3352   3380   
/// # use ::tower::layer::util::Identity;
 3353   3381   
/// # let authentication_plugin = IdentityPlugin;
 3354   3382   
/// # let authorization_plugin = IdentityPlugin;
 3355   3383   
/// # let server_request_id_provider_layer = Identity::new();
 3356   3384   
/// let config = JsonRpc10Config::builder()
 3357   3385   
///     // Layers get executed first...
 3358   3386   
///     .layer(server_request_id_provider_layer)
 3359   3387   
///     // ...then HTTP plugins...
 3360   3388   
///     .http_plugin(authentication_plugin)
 3361   3389   
///     // ...and right after deserialization, model plugins.
 3362   3390   
///     .model_plugin(authorization_plugin)
 3363   3391   
///     .build();
 3364   3392   
/// ```
 3365   3393   
///
 3366   3394   
/// See the [`plugin`] system for details.
 3367   3395   
///
 3368         -
/// [`plugin`]: ::aws_smithy_http_server::plugin
        3396  +
/// [`plugin`]: ::aws_smithy_legacy_http_server::plugin
 3369   3397   
#[derive(::std::fmt::Debug)]
 3370   3398   
pub struct JsonRpc10Config<L, H, M> {
 3371   3399   
    layers: L,
 3372   3400   
    http_plugins: H,
 3373   3401   
    model_plugins: M,
 3374   3402   
}
 3375   3403   
 3376   3404   
impl JsonRpc10Config<(), (), ()> {
 3377   3405   
    /// Returns a builder to construct the configuration.
 3378   3406   
    pub fn builder() -> JsonRpc10ConfigBuilder<
 3379   3407   
        ::tower::layer::util::Identity,
 3380         -
        ::aws_smithy_http_server::plugin::IdentityPlugin,
 3381         -
        ::aws_smithy_http_server::plugin::IdentityPlugin,
        3408  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        3409  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
 3382   3410   
    > {
 3383   3411   
        JsonRpc10ConfigBuilder {
 3384   3412   
            layers: ::tower::layer::util::Identity::new(),
 3385         -
            http_plugins: ::aws_smithy_http_server::plugin::IdentityPlugin,
 3386         -
            model_plugins: ::aws_smithy_http_server::plugin::IdentityPlugin,
        3413  +
            http_plugins: ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        3414  +
            model_plugins: ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
 3387   3415   
        }
 3388   3416   
    }
 3389   3417   
}
 3390   3418   
 3391   3419   
/// Builder returned by [`JsonRpc10Config::builder()`].
 3392   3420   
#[derive(::std::fmt::Debug)]
 3393   3421   
pub struct JsonRpc10ConfigBuilder<L, H, M> {
 3394   3422   
    pub(crate) layers: L,
 3395   3423   
    pub(crate) http_plugins: H,
 3396   3424   
    pub(crate) model_plugins: M,
 3397   3425   
}
 3398   3426   
 3399   3427   
impl<L, H, M> JsonRpc10ConfigBuilder<L, H, M> {
 3400   3428   
    /// Add a [`::tower::Layer`] to the service.
 3401   3429   
    pub fn layer<NewLayer>(
 3402   3430   
        self,
 3403   3431   
        layer: NewLayer,
 3404   3432   
    ) -> JsonRpc10ConfigBuilder<::tower::layer::util::Stack<NewLayer, L>, H, M> {
 3405   3433   
        JsonRpc10ConfigBuilder {
 3406   3434   
            layers: ::tower::layer::util::Stack::new(layer, self.layers),
 3407   3435   
            http_plugins: self.http_plugins,
 3408   3436   
            model_plugins: self.model_plugins,
 3409   3437   
        }
 3410   3438   
    }
 3411   3439   
 3412   3440   
    /// Add a HTTP [plugin] to the service.
 3413   3441   
    ///
 3414         -
    /// [plugin]: ::aws_smithy_http_server::plugin
        3442  +
    /// [plugin]: ::aws_smithy_legacy_http_server::plugin
 3415   3443   
    // We eagerly require `NewPlugin: HttpMarker`, despite not really needing it, because compiler
 3416   3444   
    // errors get _substantially_ better if the user makes a mistake.
 3417         -
    pub fn http_plugin<NewPlugin: ::aws_smithy_http_server::plugin::HttpMarker>(
        3445  +
    pub fn http_plugin<NewPlugin: ::aws_smithy_legacy_http_server::plugin::HttpMarker>(
 3418   3446   
        self,
 3419   3447   
        http_plugin: NewPlugin,
 3420         -
    ) -> JsonRpc10ConfigBuilder<L, ::aws_smithy_http_server::plugin::PluginStack<NewPlugin, H>, M>
 3421         -
    {
        3448  +
    ) -> JsonRpc10ConfigBuilder<
        3449  +
        L,
        3450  +
        ::aws_smithy_legacy_http_server::plugin::PluginStack<NewPlugin, H>,
        3451  +
        M,
        3452  +
    > {
 3422   3453   
        JsonRpc10ConfigBuilder {
 3423   3454   
            layers: self.layers,
 3424         -
            http_plugins: ::aws_smithy_http_server::plugin::PluginStack::new(
        3455  +
            http_plugins: ::aws_smithy_legacy_http_server::plugin::PluginStack::new(
 3425   3456   
                http_plugin,
 3426   3457   
                self.http_plugins,
 3427   3458   
            ),
 3428   3459   
            model_plugins: self.model_plugins,
 3429   3460   
        }
 3430   3461   
    }
 3431   3462   
 3432   3463   
    /// Add a model [plugin] to the service.
 3433   3464   
    ///
 3434         -
    /// [plugin]: ::aws_smithy_http_server::plugin
        3465  +
    /// [plugin]: ::aws_smithy_legacy_http_server::plugin
 3435   3466   
    // We eagerly require `NewPlugin: ModelMarker`, despite not really needing it, because compiler
 3436   3467   
    // errors get _substantially_ better if the user makes a mistake.
 3437         -
    pub fn model_plugin<NewPlugin: ::aws_smithy_http_server::plugin::ModelMarker>(
        3468  +
    pub fn model_plugin<NewPlugin: ::aws_smithy_legacy_http_server::plugin::ModelMarker>(
 3438   3469   
        self,
 3439   3470   
        model_plugin: NewPlugin,
 3440         -
    ) -> JsonRpc10ConfigBuilder<L, H, ::aws_smithy_http_server::plugin::PluginStack<NewPlugin, M>>
 3441         -
    {
        3471  +
    ) -> JsonRpc10ConfigBuilder<
        3472  +
        L,
        3473  +
        H,
        3474  +
        ::aws_smithy_legacy_http_server::plugin::PluginStack<NewPlugin, M>,
        3475  +
    > {
 3442   3476   
        JsonRpc10ConfigBuilder {
 3443   3477   
            layers: self.layers,
 3444   3478   
            http_plugins: self.http_plugins,
 3445         -
            model_plugins: ::aws_smithy_http_server::plugin::PluginStack::new(
        3479  +
            model_plugins: ::aws_smithy_legacy_http_server::plugin::PluginStack::new(
 3446   3480   
                model_plugin,
 3447   3481   
                self.model_plugins,
 3448   3482   
            ),
 3449   3483   
        }
 3450   3484   
    }
 3451   3485   
 3452   3486   
    /// Build the configuration.
 3453   3487   
    pub fn build(self) -> super::JsonRpc10Config<L, H, M> {
 3454   3488   
        super::JsonRpc10Config {
 3455   3489   
            layers: self.layers,