Server Test Python

Server Test Python

rev. 3c756f73b1f83a0eed4275d9d1e22df0b10b66fb (ignoring whitespace)

Files changed:

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

@@ -1,1 +119,119 @@
    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_put_with_content_encoding_http_request<B>(
    4      4   
    #[allow(unused_variables)] request: ::http::Request<B>,
    5      5   
) -> std::result::Result<
    6      6   
    crate::input::PutWithContentEncodingInput,
    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::put_with_content_encoding_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.1"),
   27     27   
            )?;
   28     28   
            input = crate::protocol_serde::shape_put_with_content_encoding::de_put_with_content_encoding(bytes.as_ref(), input)?;
   29     29   
        }
   30     30   
        input.build()
   31     31   
    })
   32     32   
}
   33     33   
   34     34   
#[allow(clippy::unnecessary_wraps)]
   35     35   
pub fn ser_put_with_content_encoding_http_response(
   36     36   
    #[allow(unused_variables)] output: crate::output::PutWithContentEncodingOutput,
   37     37   
) -> std::result::Result<
   38         -
    ::aws_smithy_http_server::response::Response,
   39         -
    ::aws_smithy_http_server::protocol::aws_json::rejection::ResponseRejection,
          38  +
    ::aws_smithy_legacy_http_server::response::Response,
          39  +
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::ResponseRejection,
   40     40   
> {
   41     41   
    Ok({
   42     42   
        #[allow(unused_mut)]
   43     43   
        let mut builder = ::http::Response::builder();
   44         -
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
          44  +
        builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   45     45   
            builder,
   46     46   
            ::http::header::CONTENT_TYPE,
   47     47   
            "application/x-amz-json-1.1",
   48     48   
        );
   49     49   
        let http_status: u16 = 200;
   50     50   
        builder = builder.status(http_status);
   51     51   
        let payload = "";
   52     52   
        let content_length = payload.len();
   53         -
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
          53  +
        builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   54     54   
            builder,
   55     55   
            ::http::header::CONTENT_LENGTH,
   56     56   
            content_length,
   57     57   
        );
   58         -
        let body = ::aws_smithy_http_server::body::to_boxed(payload);
          58  +
        let body = ::aws_smithy_legacy_http_server::body::to_boxed(payload);
   59     59   
        builder.body(body)?
   60     60   
    })
   61     61   
}
   62     62   
   63     63   
#[allow(clippy::unnecessary_wraps)]
   64     64   
pub fn ser_put_with_content_encoding_http_error(
   65     65   
    error: &crate::error::PutWithContentEncodingError,
   66     66   
) -> std::result::Result<
   67         -
    ::aws_smithy_http_server::response::Response,
   68         -
    ::aws_smithy_http_server::protocol::aws_json::rejection::ResponseRejection,
          67  +
    ::aws_smithy_legacy_http_server::response::Response,
          68  +
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::ResponseRejection,
   69     69   
> {
   70     70   
    Ok({
   71     71   
        match error {
   72     72   
            crate::error::PutWithContentEncodingError::InternalServerError(output) => {
   73     73   
                let payload = crate::protocol_serde::shape_internal_server_error::ser_internal_server_error_error(output)?;
   74     74   
                #[allow(unused_mut)]
   75     75   
                let mut builder = ::http::Response::builder();
   76         -
                builder = ::aws_smithy_http::header::set_response_header_if_absent(
          76  +
                builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   77     77   
                    builder,
   78     78   
                    ::http::header::CONTENT_TYPE,
   79     79   
                    "application/x-amz-json-1.1",
   80     80   
                );
   81     81   
                let content_length = payload.len();
   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_LENGTH,
   85     85   
                    content_length,
   86     86   
                );
   87     87   
                builder
   88     88   
                    .status(500)
   89         -
                    .body(::aws_smithy_http_server::body::to_boxed(payload))?
          89  +
                    .body(::aws_smithy_legacy_http_server::body::to_boxed(payload))?
   90     90   
            }
   91     91   
        }
   92     92   
    })
   93     93   
}
   94     94   
   95     95   
pub(crate) fn de_put_with_content_encoding(
   96     96   
    value: &[u8],
   97     97   
    mut builder: crate::input::put_with_content_encoding_input_internal::Builder,
   98     98   
) -> ::std::result::Result<
   99     99   
    crate::input::put_with_content_encoding_input_internal::Builder,

tmp-codegen-diff/codegen-server-test-python/json_rpc11/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.1"),
   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.1",
   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.1",
   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_rpc11/rust-server-codegen-python/src/protocol_serde/shape_sparse_nulls_operation.rs

@@ -1,1 +124,124 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(clippy::unnecessary_wraps)]
    3      3   
pub async fn de_sparse_nulls_operation_http_request<B>(
    4      4   
    #[allow(unused_variables)] request: ::http::Request<B>,
    5      5   
) -> std::result::Result<
    6      6   
    crate::input::SparseNullsOperationInput,
    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::sparse_nulls_operation_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.1"),
   27     27   
            )?;
   28     28   
            input = crate::protocol_serde::shape_sparse_nulls_operation::de_sparse_nulls_operation(
   29     29   
                bytes.as_ref(),
   30     30   
                input,
   31     31   
            )?;
   32     32   
        }
   33     33   
        input.build()
   34     34   
    })
   35     35   
}
   36     36   
   37     37   
#[allow(clippy::unnecessary_wraps)]
   38     38   
pub fn ser_sparse_nulls_operation_http_response(
   39     39   
    #[allow(unused_variables)] output: crate::output::SparseNullsOperationOutput,
   40     40   
) -> std::result::Result<
   41         -
    ::aws_smithy_http_server::response::Response,
   42         -
    ::aws_smithy_http_server::protocol::aws_json::rejection::ResponseRejection,
          41  +
    ::aws_smithy_legacy_http_server::response::Response,
          42  +
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::ResponseRejection,
   43     43   
> {
   44     44   
    Ok({
   45     45   
        #[allow(unused_mut)]
   46     46   
        let mut builder = ::http::Response::builder();
   47         -
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
          47  +
        builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   48     48   
            builder,
   49     49   
            ::http::header::CONTENT_TYPE,
   50     50   
            "application/x-amz-json-1.1",
   51     51   
        );
   52     52   
        let http_status: u16 = 200;
   53     53   
        builder = builder.status(http_status);
   54     54   
        let payload =
   55     55   
            crate::protocol_serde::shape_sparse_nulls_operation_output::ser_sparse_nulls_operation_output_output_output(&output)?
   56     56   
        ;
   57     57   
        let content_length = payload.len();
   58         -
        builder = ::aws_smithy_http::header::set_response_header_if_absent(
          58  +
        builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   59     59   
            builder,
   60     60   
            ::http::header::CONTENT_LENGTH,
   61     61   
            content_length,
   62     62   
        );
   63         -
        let body = ::aws_smithy_http_server::body::to_boxed(payload);
          63  +
        let body = ::aws_smithy_legacy_http_server::body::to_boxed(payload);
   64     64   
        builder.body(body)?
   65     65   
    })
   66     66   
}
   67     67   
   68     68   
#[allow(clippy::unnecessary_wraps)]
   69     69   
pub fn ser_sparse_nulls_operation_http_error(
   70     70   
    error: &crate::error::SparseNullsOperationError,
   71     71   
) -> std::result::Result<
   72         -
    ::aws_smithy_http_server::response::Response,
   73         -
    ::aws_smithy_http_server::protocol::aws_json::rejection::ResponseRejection,
          72  +
    ::aws_smithy_legacy_http_server::response::Response,
          73  +
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::ResponseRejection,
   74     74   
> {
   75     75   
    Ok({
   76     76   
        match error {
   77     77   
            crate::error::SparseNullsOperationError::InternalServerError(output) => {
   78     78   
                let payload = crate::protocol_serde::shape_internal_server_error::ser_internal_server_error_error(output)?;
   79     79   
                #[allow(unused_mut)]
   80     80   
                let mut builder = ::http::Response::builder();
   81         -
                builder = ::aws_smithy_http::header::set_response_header_if_absent(
          81  +
                builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   82     82   
                    builder,
   83     83   
                    ::http::header::CONTENT_TYPE,
   84     84   
                    "application/x-amz-json-1.1",
   85     85   
                );
   86     86   
                let content_length = payload.len();
   87         -
                builder = ::aws_smithy_http::header::set_response_header_if_absent(
          87  +
                builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
   88     88   
                    builder,
   89     89   
                    ::http::header::CONTENT_LENGTH,
   90     90   
                    content_length,
   91     91   
                );
   92     92   
                builder
   93     93   
                    .status(500)
   94         -
                    .body(::aws_smithy_http_server::body::to_boxed(payload))?
          94  +
                    .body(::aws_smithy_legacy_http_server::body::to_boxed(payload))?
   95     95   
            }
   96     96   
        }
   97     97   
    })
   98     98   
}
   99     99   
  100    100   
pub(crate) fn de_sparse_nulls_operation(
  101    101   
    value: &[u8],
  102    102   
    mut builder: crate::input::sparse_nulls_operation_input_internal::Builder,
  103    103   
) -> ::std::result::Result<
  104    104   
    crate::input::sparse_nulls_operation_input_internal::Builder,

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

@@ -1,1 +917,953 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Python handler for operation `ContentTypeParameters`.
    3      3   
pub(crate) async fn content_type_parameters(
    4      4   
    input: crate::input::ContentTypeParametersInput,
    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::ContentTypeParametersOutput,
    9     11   
    crate::error::ContentTypeParametersError,
   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 = "content_type_parameters",
   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::ContentTypeParametersOutput>(py)
   29     31   
            })
   30     32   
        })
   31     33   
    } else {
   32     34   
        ::tracing::trace!(
   33     35   
            name = "content_type_parameters",
   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::ContentTypeParametersOutput>()
   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 `PutWithContentEncoding`.
   58     60   
pub(crate) async fn put_with_content_encoding(
   59     61   
    input: crate::input::PutWithContentEncodingInput,
   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::PutWithContentEncodingOutput,
   64     68   
    crate::error::PutWithContentEncodingError,
   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 = "put_with_content_encoding",
   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::PutWithContentEncodingOutput>(py)
   84     88   
            })
   85     89   
        })
   86     90   
    } else {
   87     91   
        ::tracing::trace!(
   88     92   
            name = "put_with_content_encoding",
   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::PutWithContentEncodingOutput>()
   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 `FractionalSeconds`.
  113    117   
pub(crate) async fn fractional_seconds(
  114    118   
    input: crate::input::FractionalSecondsInput,
  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<crate::output::FractionalSecondsOutput, crate::error::FractionalSecondsError>
  118    124   
{
  119    125   
    // Async block used to run the handler and catch any Python error.
  120    126   
    let result = if handler.is_coroutine {
  121    127   
        ::tracing::trace!(
  122    128   
            name = "fractional_seconds",
  123    129   
            "executing python handler coroutine"
  124    130   
        );
  125    131   
        let result = ::pyo3::Python::with_gil(|py| {
  126    132   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  127    133   
            let coroutine = if handler.args == 1 {
  128    134   
                pyhandler.call1((input,))?
  129    135   
            } else {
  130    136   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  131    137   
            };
  132    138   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  133    139   
        })?;
  134    140   
        result.await.and_then(|r| {
  135    141   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::FractionalSecondsOutput>(py))
  136    142   
        })
  137    143   
    } else {
  138    144   
        ::tracing::trace!(
  139    145   
            name = "fractional_seconds",
  140    146   
            "executing python handler function"
  141    147   
        );
  142    148   
        ::pyo3::Python::with_gil(|py| {
  143    149   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  144    150   
            let output = if handler.args == 1 {
  145    151   
                pyhandler.call1((input,))?
  146    152   
            } else {
  147    153   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  148    154   
            };
  149    155   
            output.extract::<crate::output::FractionalSecondsOutput>()
  150    156   
        })
  151    157   
    };
  152    158   
    // Catch and record a Python traceback.
  153    159   
    result.map_err(|e| {
  154    160   
        let rich_py_err =
  155    161   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  156    162   
                e.clone_ref(py)
  157    163   
            }));
  158    164   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  159    165   
        e.into()
  160    166   
    })
  161    167   
}
  162    168   
  163    169   
/// Python handler for operation `DatetimeOffsets`.
  164    170   
pub(crate) async fn datetime_offsets(
  165    171   
    input: crate::input::DatetimeOffsetsInput,
  166         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         172  +
    state: ::aws_smithy_legacy_http_server::Extension<
         173  +
        ::aws_smithy_http_server_python::context::PyContext,
         174  +
    >,
  167    175   
    handler: ::aws_smithy_http_server_python::PyHandler,
  168    176   
) -> std::result::Result<crate::output::DatetimeOffsetsOutput, crate::error::DatetimeOffsetsError> {
  169    177   
    // Async block used to run the handler and catch any Python error.
  170    178   
    let result = if handler.is_coroutine {
  171    179   
        ::tracing::trace!(
  172    180   
            name = "datetime_offsets",
  173    181   
            "executing python handler coroutine"
  174    182   
        );
  175    183   
        let result = ::pyo3::Python::with_gil(|py| {
  176    184   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  177    185   
            let coroutine = if handler.args == 1 {
  178    186   
                pyhandler.call1((input,))?
  179    187   
            } else {
  180    188   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  181    189   
            };
  182    190   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  183    191   
        })?;
  184    192   
        result.await.and_then(|r| {
  185    193   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::DatetimeOffsetsOutput>(py))
  186    194   
        })
  187    195   
    } else {
  188    196   
        ::tracing::trace!(
  189    197   
            name = "datetime_offsets",
  190    198   
            "executing python handler function"
  191    199   
        );
  192    200   
        ::pyo3::Python::with_gil(|py| {
  193    201   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  194    202   
            let output = if handler.args == 1 {
  195    203   
                pyhandler.call1((input,))?
  196    204   
            } else {
  197    205   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  198    206   
            };
  199    207   
            output.extract::<crate::output::DatetimeOffsetsOutput>()
  200    208   
        })
  201    209   
    };
  202    210   
    // Catch and record a Python traceback.
  203    211   
    result.map_err(|e| {
  204    212   
        let rich_py_err =
  205    213   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  206    214   
                e.clone_ref(py)
  207    215   
            }));
  208    216   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  209    217   
        e.into()
  210    218   
    })
  211    219   
}
  212    220   
  213    221   
/// Python handler for operation `HostWithPathOperation`.
  214    222   
pub(crate) async fn host_with_path_operation(
  215    223   
    input: crate::input::HostWithPathOperationInput,
  216         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         224  +
    state: ::aws_smithy_legacy_http_server::Extension<
         225  +
        ::aws_smithy_http_server_python::context::PyContext,
         226  +
    >,
  217    227   
    handler: ::aws_smithy_http_server_python::PyHandler,
  218    228   
) -> std::result::Result<
  219    229   
    crate::output::HostWithPathOperationOutput,
  220    230   
    crate::error::HostWithPathOperationError,
  221    231   
> {
  222    232   
    // Async block used to run the handler and catch any Python error.
  223    233   
    let result = if handler.is_coroutine {
  224    234   
        ::tracing::trace!(
  225    235   
            name = "host_with_path_operation",
  226    236   
            "executing python handler coroutine"
  227    237   
        );
  228    238   
        let result = ::pyo3::Python::with_gil(|py| {
  229    239   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  230    240   
            let coroutine = if handler.args == 1 {
  231    241   
                pyhandler.call1((input,))?
  232    242   
            } else {
  233    243   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  234    244   
            };
  235    245   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  236    246   
        })?;
  237    247   
        result.await.and_then(|r| {
  238    248   
            ::pyo3::Python::with_gil(|py| {
  239    249   
                r.extract::<crate::output::HostWithPathOperationOutput>(py)
  240    250   
            })
  241    251   
        })
  242    252   
    } else {
  243    253   
        ::tracing::trace!(
  244    254   
            name = "host_with_path_operation",
  245    255   
            "executing python handler function"
  246    256   
        );
  247    257   
        ::pyo3::Python::with_gil(|py| {
  248    258   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  249    259   
            let output = if handler.args == 1 {
  250    260   
                pyhandler.call1((input,))?
  251    261   
            } else {
  252    262   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  253    263   
            };
  254    264   
            output.extract::<crate::output::HostWithPathOperationOutput>()
  255    265   
        })
  256    266   
    };
  257    267   
    // Catch and record a Python traceback.
  258    268   
    result.map_err(|e| {
  259    269   
        let rich_py_err =
  260    270   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  261    271   
                e.clone_ref(py)
  262    272   
            }));
  263    273   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  264    274   
        e.into()
  265    275   
    })
  266    276   
}
  267    277   
  268    278   
/// Python handler for operation `EndpointWithHostLabelOperation`.
  269    279   
pub(crate) async fn endpoint_with_host_label_operation(
  270    280   
    input: crate::input::EndpointWithHostLabelOperationInput,
  271         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         281  +
    state: ::aws_smithy_legacy_http_server::Extension<
         282  +
        ::aws_smithy_http_server_python::context::PyContext,
         283  +
    >,
  272    284   
    handler: ::aws_smithy_http_server_python::PyHandler,
  273    285   
) -> std::result::Result<
  274    286   
    crate::output::EndpointWithHostLabelOperationOutput,
  275    287   
    crate::error::EndpointWithHostLabelOperationError,
  276    288   
> {
  277    289   
    // Async block used to run the handler and catch any Python error.
  278    290   
    let result = if handler.is_coroutine {
  279    291   
        ::tracing::trace!(
  280    292   
            name = "endpoint_with_host_label_operation",
  281    293   
            "executing python handler coroutine"
  282    294   
        );
  283    295   
        let result = ::pyo3::Python::with_gil(|py| {
  284    296   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  285    297   
            let coroutine = if handler.args == 1 {
  286    298   
                pyhandler.call1((input,))?
  287    299   
            } else {
  288    300   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  289    301   
            };
  290    302   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  291    303   
        })?;
  292    304   
        result.await.and_then(|r| {
  293    305   
            ::pyo3::Python::with_gil(|py| {
  294    306   
                r.extract::<crate::output::EndpointWithHostLabelOperationOutput>(py)
  295    307   
            })
  296    308   
        })
  297    309   
    } else {
  298    310   
        ::tracing::trace!(
  299    311   
            name = "endpoint_with_host_label_operation",
  300    312   
            "executing python handler function"
  301    313   
        );
  302    314   
        ::pyo3::Python::with_gil(|py| {
  303    315   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  304    316   
            let output = if handler.args == 1 {
  305    317   
                pyhandler.call1((input,))?
  306    318   
            } else {
  307    319   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  308    320   
            };
  309    321   
            output.extract::<crate::output::EndpointWithHostLabelOperationOutput>()
  310    322   
        })
  311    323   
    };
  312    324   
    // Catch and record a Python traceback.
  313    325   
    result.map_err(|e| {
  314    326   
        let rich_py_err =
  315    327   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  316    328   
                e.clone_ref(py)
  317    329   
            }));
  318    330   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  319    331   
        e.into()
  320    332   
    })
  321    333   
}
  322    334   
  323    335   
/// Python handler for operation `EndpointOperation`.
  324    336   
pub(crate) async fn endpoint_operation(
  325    337   
    input: crate::input::EndpointOperationInput,
  326         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         338  +
    state: ::aws_smithy_legacy_http_server::Extension<
         339  +
        ::aws_smithy_http_server_python::context::PyContext,
         340  +
    >,
  327    341   
    handler: ::aws_smithy_http_server_python::PyHandler,
  328    342   
) -> std::result::Result<crate::output::EndpointOperationOutput, crate::error::EndpointOperationError>
  329    343   
{
  330    344   
    // Async block used to run the handler and catch any Python error.
  331    345   
    let result = if handler.is_coroutine {
  332    346   
        ::tracing::trace!(
  333    347   
            name = "endpoint_operation",
  334    348   
            "executing python handler coroutine"
  335    349   
        );
  336    350   
        let result = ::pyo3::Python::with_gil(|py| {
  337    351   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  338    352   
            let coroutine = if handler.args == 1 {
  339    353   
                pyhandler.call1((input,))?
  340    354   
            } else {
  341    355   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  342    356   
            };
  343    357   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  344    358   
        })?;
  345    359   
        result.await.and_then(|r| {
  346    360   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::EndpointOperationOutput>(py))
  347    361   
        })
  348    362   
    } else {
  349    363   
        ::tracing::trace!(
  350    364   
            name = "endpoint_operation",
  351    365   
            "executing python handler function"
  352    366   
        );
  353    367   
        ::pyo3::Python::with_gil(|py| {
  354    368   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  355    369   
            let output = if handler.args == 1 {
  356    370   
                pyhandler.call1((input,))?
  357    371   
            } else {
  358    372   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  359    373   
            };
  360    374   
            output.extract::<crate::output::EndpointOperationOutput>()
  361    375   
        })
  362    376   
    };
  363    377   
    // Catch and record a Python traceback.
  364    378   
    result.map_err(|e| {
  365    379   
        let rich_py_err =
  366    380   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  367    381   
                e.clone_ref(py)
  368    382   
            }));
  369    383   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  370    384   
        e.into()
  371    385   
    })
  372    386   
}
  373    387   
  374    388   
/// Python handler for operation `JsonUnions`.
  375    389   
pub(crate) async fn json_unions(
  376    390   
    input: crate::input::JsonUnionsInput,
  377         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         391  +
    state: ::aws_smithy_legacy_http_server::Extension<
         392  +
        ::aws_smithy_http_server_python::context::PyContext,
         393  +
    >,
  378    394   
    handler: ::aws_smithy_http_server_python::PyHandler,
  379    395   
) -> std::result::Result<crate::output::JsonUnionsOutput, crate::error::JsonUnionsError> {
  380    396   
    // Async block used to run the handler and catch any Python error.
  381    397   
    let result = if handler.is_coroutine {
  382    398   
        ::tracing::trace!(name = "json_unions", "executing python handler coroutine");
  383    399   
        let result = ::pyo3::Python::with_gil(|py| {
  384    400   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  385    401   
            let coroutine = if handler.args == 1 {
  386    402   
                pyhandler.call1((input,))?
  387    403   
            } else {
  388    404   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  389    405   
            };
  390    406   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  391    407   
        })?;
  392    408   
        result.await.and_then(|r| {
  393    409   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::JsonUnionsOutput>(py))
  394    410   
        })
  395    411   
    } else {
  396    412   
        ::tracing::trace!(name = "json_unions", "executing python handler function");
  397    413   
        ::pyo3::Python::with_gil(|py| {
  398    414   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  399    415   
            let output = if handler.args == 1 {
  400    416   
                pyhandler.call1((input,))?
  401    417   
            } else {
  402    418   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  403    419   
            };
  404    420   
            output.extract::<crate::output::JsonUnionsOutput>()
  405    421   
        })
  406    422   
    };
  407    423   
    // Catch and record a Python traceback.
  408    424   
    result.map_err(|e| {
  409    425   
        let rich_py_err =
  410    426   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  411    427   
                e.clone_ref(py)
  412    428   
            }));
  413    429   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  414    430   
        e.into()
  415    431   
    })
  416    432   
}
  417    433   
  418    434   
/// Python handler for operation `GreetingWithErrors`.
  419    435   
pub(crate) async fn greeting_with_errors(
  420    436   
    input: crate::input::GreetingWithErrorsInput,
  421         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         437  +
    state: ::aws_smithy_legacy_http_server::Extension<
         438  +
        ::aws_smithy_http_server_python::context::PyContext,
         439  +
    >,
  422    440   
    handler: ::aws_smithy_http_server_python::PyHandler,
  423    441   
) -> std::result::Result<
  424    442   
    crate::output::GreetingWithErrorsOutput,
  425    443   
    crate::error::GreetingWithErrorsError,
  426    444   
> {
  427    445   
    // Async block used to run the handler and catch any Python error.
  428    446   
    let result = if handler.is_coroutine {
  429    447   
        ::tracing::trace!(
  430    448   
            name = "greeting_with_errors",
  431    449   
            "executing python handler coroutine"
  432    450   
        );
  433    451   
        let result = ::pyo3::Python::with_gil(|py| {
  434    452   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  435    453   
            let coroutine = if handler.args == 1 {
  436    454   
                pyhandler.call1((input,))?
  437    455   
            } else {
  438    456   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  439    457   
            };
  440    458   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  441    459   
        })?;
  442    460   
        result.await.and_then(|r| {
  443    461   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::GreetingWithErrorsOutput>(py))
  444    462   
        })
  445    463   
    } else {
  446    464   
        ::tracing::trace!(
  447    465   
            name = "greeting_with_errors",
  448    466   
            "executing python handler function"
  449    467   
        );
  450    468   
        ::pyo3::Python::with_gil(|py| {
  451    469   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  452    470   
            let output = if handler.args == 1 {
  453    471   
                pyhandler.call1((input,))?
  454    472   
            } else {
  455    473   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  456    474   
            };
  457    475   
            output.extract::<crate::output::GreetingWithErrorsOutput>()
  458    476   
        })
  459    477   
    };
  460    478   
    // Catch and record a Python traceback.
  461    479   
    result.map_err(|e| {
  462    480   
        let rich_py_err =
  463    481   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  464    482   
                e.clone_ref(py)
  465    483   
            }));
  466    484   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  467    485   
        e.into()
  468    486   
    })
  469    487   
}
  470    488   
  471    489   
/// Python handler for operation `SparseNullsOperation`.
  472    490   
pub(crate) async fn sparse_nulls_operation(
  473    491   
    input: crate::input::SparseNullsOperationInput,
  474         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         492  +
    state: ::aws_smithy_legacy_http_server::Extension<
         493  +
        ::aws_smithy_http_server_python::context::PyContext,
         494  +
    >,
  475    495   
    handler: ::aws_smithy_http_server_python::PyHandler,
  476    496   
) -> std::result::Result<
  477    497   
    crate::output::SparseNullsOperationOutput,
  478    498   
    crate::error::SparseNullsOperationError,
  479    499   
> {
  480    500   
    // Async block used to run the handler and catch any Python error.
  481    501   
    let result = if handler.is_coroutine {
  482    502   
        ::tracing::trace!(
  483    503   
            name = "sparse_nulls_operation",
  484    504   
            "executing python handler coroutine"
  485    505   
        );
  486    506   
        let result = ::pyo3::Python::with_gil(|py| {
  487    507   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  488    508   
            let coroutine = if handler.args == 1 {
  489    509   
                pyhandler.call1((input,))?
  490    510   
            } else {
  491    511   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  492    512   
            };
  493    513   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  494    514   
        })?;
  495    515   
        result.await.and_then(|r| {
  496    516   
            ::pyo3::Python::with_gil(|py| {
  497    517   
                r.extract::<crate::output::SparseNullsOperationOutput>(py)
  498    518   
            })
  499    519   
        })
  500    520   
    } else {
  501    521   
        ::tracing::trace!(
  502    522   
            name = "sparse_nulls_operation",
  503    523   
            "executing python handler function"
  504    524   
        );
  505    525   
        ::pyo3::Python::with_gil(|py| {
  506    526   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  507    527   
            let output = if handler.args == 1 {
  508    528   
                pyhandler.call1((input,))?
  509    529   
            } else {
  510    530   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  511    531   
            };
  512    532   
            output.extract::<crate::output::SparseNullsOperationOutput>()
  513    533   
        })
  514    534   
    };
  515    535   
    // Catch and record a Python traceback.
  516    536   
    result.map_err(|e| {
  517    537   
        let rich_py_err =
  518    538   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  519    539   
                e.clone_ref(py)
  520    540   
            }));
  521    541   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  522    542   
        e.into()
  523    543   
    })
  524    544   
}
  525    545   
  526    546   
/// Python handler for operation `NullOperation`.
  527    547   
pub(crate) async fn null_operation(
  528    548   
    input: crate::input::NullOperationInput,
  529         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         549  +
    state: ::aws_smithy_legacy_http_server::Extension<
         550  +
        ::aws_smithy_http_server_python::context::PyContext,
         551  +
    >,
  530    552   
    handler: ::aws_smithy_http_server_python::PyHandler,
  531    553   
) -> std::result::Result<crate::output::NullOperationOutput, crate::error::NullOperationError> {
  532    554   
    // Async block used to run the handler and catch any Python error.
  533    555   
    let result = if handler.is_coroutine {
  534    556   
        ::tracing::trace!(
  535    557   
            name = "null_operation",
  536    558   
            "executing python handler coroutine"
  537    559   
        );
  538    560   
        let result = ::pyo3::Python::with_gil(|py| {
  539    561   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  540    562   
            let coroutine = if handler.args == 1 {
  541    563   
                pyhandler.call1((input,))?
  542    564   
            } else {
  543    565   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  544    566   
            };
  545    567   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  546    568   
        })?;
  547    569   
        result.await.and_then(|r| {
  548    570   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::NullOperationOutput>(py))
  549    571   
        })
  550    572   
    } else {
  551    573   
        ::tracing::trace!(name = "null_operation", "executing python handler function");
  552    574   
        ::pyo3::Python::with_gil(|py| {
  553    575   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  554    576   
            let output = if handler.args == 1 {
  555    577   
                pyhandler.call1((input,))?
  556    578   
            } else {
  557    579   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  558    580   
            };
  559    581   
            output.extract::<crate::output::NullOperationOutput>()
  560    582   
        })
  561    583   
    };
  562    584   
    // Catch and record a Python traceback.
  563    585   
    result.map_err(|e| {
  564    586   
        let rich_py_err =
  565    587   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  566    588   
                e.clone_ref(py)
  567    589   
            }));
  568    590   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  569    591   
        e.into()
  570    592   
    })
  571    593   
}
  572    594   
  573    595   
/// Python handler for operation `JsonIntEnums`.
  574    596   
pub(crate) async fn json_int_enums(
  575    597   
    input: crate::input::JsonIntEnumsInput,
  576         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         598  +
    state: ::aws_smithy_legacy_http_server::Extension<
         599  +
        ::aws_smithy_http_server_python::context::PyContext,
         600  +
    >,
  577    601   
    handler: ::aws_smithy_http_server_python::PyHandler,
  578    602   
) -> std::result::Result<crate::output::JsonIntEnumsOutput, crate::error::JsonIntEnumsError> {
  579    603   
    // Async block used to run the handler and catch any Python error.
  580    604   
    let result = if handler.is_coroutine {
  581    605   
        ::tracing::trace!(
  582    606   
            name = "json_int_enums",
  583    607   
            "executing python handler coroutine"
  584    608   
        );
  585    609   
        let result = ::pyo3::Python::with_gil(|py| {
  586    610   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  587    611   
            let coroutine = if handler.args == 1 {
  588    612   
                pyhandler.call1((input,))?
  589    613   
            } else {
  590    614   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  591    615   
            };
  592    616   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  593    617   
        })?;
  594    618   
        result.await.and_then(|r| {
  595    619   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::JsonIntEnumsOutput>(py))
  596    620   
        })
  597    621   
    } else {
  598    622   
        ::tracing::trace!(name = "json_int_enums", "executing python handler function");
  599    623   
        ::pyo3::Python::with_gil(|py| {
  600    624   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  601    625   
            let output = if handler.args == 1 {
  602    626   
                pyhandler.call1((input,))?
  603    627   
            } else {
  604    628   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  605    629   
            };
  606    630   
            output.extract::<crate::output::JsonIntEnumsOutput>()
  607    631   
        })
  608    632   
    };
  609    633   
    // Catch and record a Python traceback.
  610    634   
    result.map_err(|e| {
  611    635   
        let rich_py_err =
  612    636   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  613    637   
                e.clone_ref(py)
  614    638   
            }));
  615    639   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  616    640   
        e.into()
  617    641   
    })
  618    642   
}
  619    643   
  620    644   
/// Python handler for operation `JsonEnums`.
  621    645   
pub(crate) async fn json_enums(
  622    646   
    input: crate::input::JsonEnumsInput,
  623         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         647  +
    state: ::aws_smithy_legacy_http_server::Extension<
         648  +
        ::aws_smithy_http_server_python::context::PyContext,
         649  +
    >,
  624    650   
    handler: ::aws_smithy_http_server_python::PyHandler,
  625    651   
) -> std::result::Result<crate::output::JsonEnumsOutput, crate::error::JsonEnumsError> {
  626    652   
    // Async block used to run the handler and catch any Python error.
  627    653   
    let result = if handler.is_coroutine {
  628    654   
        ::tracing::trace!(name = "json_enums", "executing python handler coroutine");
  629    655   
        let result = ::pyo3::Python::with_gil(|py| {
  630    656   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  631    657   
            let coroutine = if handler.args == 1 {
  632    658   
                pyhandler.call1((input,))?
  633    659   
            } else {
  634    660   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  635    661   
            };
  636    662   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  637    663   
        })?;
  638    664   
        result.await.and_then(|r| {
  639    665   
            ::pyo3::Python::with_gil(|py| r.extract::<crate::output::JsonEnumsOutput>(py))
  640    666   
        })
  641    667   
    } else {
  642    668   
        ::tracing::trace!(name = "json_enums", "executing python handler function");
  643    669   
        ::pyo3::Python::with_gil(|py| {
  644    670   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  645    671   
            let output = if handler.args == 1 {
  646    672   
                pyhandler.call1((input,))?
  647    673   
            } else {
  648    674   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  649    675   
            };
  650    676   
            output.extract::<crate::output::JsonEnumsOutput>()
  651    677   
        })
  652    678   
    };
  653    679   
    // Catch and record a Python traceback.
  654    680   
    result.map_err(|e| {
  655    681   
        let rich_py_err =
  656    682   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  657    683   
                e.clone_ref(py)
  658    684   
            }));
  659    685   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  660    686   
        e.into()
  661    687   
    })
  662    688   
}
  663    689   
  664    690   
/// Python handler for operation `PutAndGetInlineDocuments`.
  665    691   
pub(crate) async fn put_and_get_inline_documents(
  666    692   
    input: crate::input::PutAndGetInlineDocumentsInput,
  667         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         693  +
    state: ::aws_smithy_legacy_http_server::Extension<
         694  +
        ::aws_smithy_http_server_python::context::PyContext,
         695  +
    >,
  668    696   
    handler: ::aws_smithy_http_server_python::PyHandler,
  669    697   
) -> std::result::Result<
  670    698   
    crate::output::PutAndGetInlineDocumentsOutput,
  671    699   
    crate::error::PutAndGetInlineDocumentsError,
  672    700   
> {
  673    701   
    // Async block used to run the handler and catch any Python error.
  674    702   
    let result = if handler.is_coroutine {
  675    703   
        ::tracing::trace!(
  676    704   
            name = "put_and_get_inline_documents",
  677    705   
            "executing python handler coroutine"
  678    706   
        );
  679    707   
        let result = ::pyo3::Python::with_gil(|py| {
  680    708   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  681    709   
            let coroutine = if handler.args == 1 {
  682    710   
                pyhandler.call1((input,))?
  683    711   
            } else {
  684    712   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  685    713   
            };
  686    714   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  687    715   
        })?;
  688    716   
        result.await.and_then(|r| {
  689    717   
            ::pyo3::Python::with_gil(|py| {
  690    718   
                r.extract::<crate::output::PutAndGetInlineDocumentsOutput>(py)
  691    719   
            })
  692    720   
        })
  693    721   
    } else {
  694    722   
        ::tracing::trace!(
  695    723   
            name = "put_and_get_inline_documents",
  696    724   
            "executing python handler function"
  697    725   
        );
  698    726   
        ::pyo3::Python::with_gil(|py| {
  699    727   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  700    728   
            let output = if handler.args == 1 {
  701    729   
                pyhandler.call1((input,))?
  702    730   
            } else {
  703    731   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  704    732   
            };
  705    733   
            output.extract::<crate::output::PutAndGetInlineDocumentsOutput>()
  706    734   
        })
  707    735   
    };
  708    736   
    // Catch and record a Python traceback.
  709    737   
    result.map_err(|e| {
  710    738   
        let rich_py_err =
  711    739   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  712    740   
                e.clone_ref(py)
  713    741   
            }));
  714    742   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  715    743   
        e.into()
  716    744   
    })
  717    745   
}
  718    746   
  719    747   
/// Python handler for operation `OperationWithOptionalInputOutput`.
  720    748   
pub(crate) async fn operation_with_optional_input_output(
  721    749   
    input: crate::input::OperationWithOptionalInputOutputInput,
  722         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         750  +
    state: ::aws_smithy_legacy_http_server::Extension<
         751  +
        ::aws_smithy_http_server_python::context::PyContext,
         752  +
    >,
  723    753   
    handler: ::aws_smithy_http_server_python::PyHandler,
  724    754   
) -> std::result::Result<
  725    755   
    crate::output::OperationWithOptionalInputOutputOutput,
  726    756   
    crate::error::OperationWithOptionalInputOutputError,
  727    757   
> {
  728    758   
    // Async block used to run the handler and catch any Python error.
  729    759   
    let result = if handler.is_coroutine {
  730    760   
        ::tracing::trace!(
  731    761   
            name = "operation_with_optional_input_output",
  732    762   
            "executing python handler coroutine"
  733    763   
        );
  734    764   
        let result = ::pyo3::Python::with_gil(|py| {
  735    765   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  736    766   
            let coroutine = if handler.args == 1 {
  737    767   
                pyhandler.call1((input,))?
  738    768   
            } else {
  739    769   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  740    770   
            };
  741    771   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  742    772   
        })?;
  743    773   
        result.await.and_then(|r| {
  744    774   
            ::pyo3::Python::with_gil(|py| {
  745    775   
                r.extract::<crate::output::OperationWithOptionalInputOutputOutput>(py)
  746    776   
            })
  747    777   
        })
  748    778   
    } else {
  749    779   
        ::tracing::trace!(
  750    780   
            name = "operation_with_optional_input_output",
  751    781   
            "executing python handler function"
  752    782   
        );
  753    783   
        ::pyo3::Python::with_gil(|py| {
  754    784   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  755    785   
            let output = if handler.args == 1 {
  756    786   
                pyhandler.call1((input,))?
  757    787   
            } else {
  758    788   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  759    789   
            };
  760    790   
            output.extract::<crate::output::OperationWithOptionalInputOutputOutput>()
  761    791   
        })
  762    792   
    };
  763    793   
    // Catch and record a Python traceback.
  764    794   
    result.map_err(|e| {
  765    795   
        let rich_py_err =
  766    796   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  767    797   
                e.clone_ref(py)
  768    798   
            }));
  769    799   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  770    800   
        e.into()
  771    801   
    })
  772    802   
}
  773    803   
  774    804   
/// Python handler for operation `SimpleScalarProperties`.
  775    805   
pub(crate) async fn simple_scalar_properties(
  776    806   
    input: crate::input::SimpleScalarPropertiesInput,
  777         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         807  +
    state: ::aws_smithy_legacy_http_server::Extension<
         808  +
        ::aws_smithy_http_server_python::context::PyContext,
         809  +
    >,
  778    810   
    handler: ::aws_smithy_http_server_python::PyHandler,
  779    811   
) -> std::result::Result<
  780    812   
    crate::output::SimpleScalarPropertiesOutput,
  781    813   
    crate::error::SimpleScalarPropertiesError,
  782    814   
> {
  783    815   
    // Async block used to run the handler and catch any Python error.
  784    816   
    let result = if handler.is_coroutine {
  785    817   
        ::tracing::trace!(
  786    818   
            name = "simple_scalar_properties",
  787    819   
            "executing python handler coroutine"
  788    820   
        );
  789    821   
        let result = ::pyo3::Python::with_gil(|py| {
  790    822   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  791    823   
            let coroutine = if handler.args == 1 {
  792    824   
                pyhandler.call1((input,))?
  793    825   
            } else {
  794    826   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  795    827   
            };
  796    828   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  797    829   
        })?;
  798    830   
        result.await.and_then(|r| {
  799    831   
            ::pyo3::Python::with_gil(|py| {
  800    832   
                r.extract::<crate::output::SimpleScalarPropertiesOutput>(py)
  801    833   
            })
  802    834   
        })
  803    835   
    } else {
  804    836   
        ::tracing::trace!(
  805    837   
            name = "simple_scalar_properties",
  806    838   
            "executing python handler function"
  807    839   
        );
  808    840   
        ::pyo3::Python::with_gil(|py| {
  809    841   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  810    842   
            let output = if handler.args == 1 {
  811    843   
                pyhandler.call1((input,))?
  812    844   
            } else {
  813    845   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  814    846   
            };
  815    847   
            output.extract::<crate::output::SimpleScalarPropertiesOutput>()
  816    848   
        })
  817    849   
    };
  818    850   
    // Catch and record a Python traceback.
  819    851   
    result.map_err(|e| {
  820    852   
        let rich_py_err =
  821    853   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  822    854   
                e.clone_ref(py)
  823    855   
            }));
  824    856   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  825    857   
        e.into()
  826    858   
    })
  827    859   
}
  828    860   
  829    861   
/// Python handler for operation `KitchenSinkOperation`.
  830    862   
pub(crate) async fn kitchen_sink_operation(
  831    863   
    input: crate::input::KitchenSinkOperationInput,
  832         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         864  +
    state: ::aws_smithy_legacy_http_server::Extension<
         865  +
        ::aws_smithy_http_server_python::context::PyContext,
         866  +
    >,
  833    867   
    handler: ::aws_smithy_http_server_python::PyHandler,
  834    868   
) -> std::result::Result<
  835    869   
    crate::output::KitchenSinkOperationOutput,
  836    870   
    crate::error::KitchenSinkOperationError,
  837    871   
> {
  838    872   
    // Async block used to run the handler and catch any Python error.
  839    873   
    let result = if handler.is_coroutine {
  840    874   
        ::tracing::trace!(
  841    875   
            name = "kitchen_sink_operation",
  842    876   
            "executing python handler coroutine"
  843    877   
        );
  844    878   
        let result = ::pyo3::Python::with_gil(|py| {
  845    879   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  846    880   
            let coroutine = if handler.args == 1 {
  847    881   
                pyhandler.call1((input,))?
  848    882   
            } else {
  849    883   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  850    884   
            };
  851    885   
            ::pyo3_asyncio::tokio::into_future(coroutine)
  852    886   
        })?;
  853    887   
        result.await.and_then(|r| {
  854    888   
            ::pyo3::Python::with_gil(|py| {
  855    889   
                r.extract::<crate::output::KitchenSinkOperationOutput>(py)
  856    890   
            })
  857    891   
        })
  858    892   
    } else {
  859    893   
        ::tracing::trace!(
  860    894   
            name = "kitchen_sink_operation",
  861    895   
            "executing python handler function"
  862    896   
        );
  863    897   
        ::pyo3::Python::with_gil(|py| {
  864    898   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;
  865    899   
            let output = if handler.args == 1 {
  866    900   
                pyhandler.call1((input,))?
  867    901   
            } else {
  868    902   
                pyhandler.call1((input, ::pyo3::ToPyObject::to_object(&state.0, py)))?
  869    903   
            };
  870    904   
            output.extract::<crate::output::KitchenSinkOperationOutput>()
  871    905   
        })
  872    906   
    };
  873    907   
    // Catch and record a Python traceback.
  874    908   
    result.map_err(|e| {
  875    909   
        let rich_py_err =
  876    910   
            ::aws_smithy_http_server_python::rich_py_err(::pyo3::Python::with_gil(|py| {
  877    911   
                e.clone_ref(py)
  878    912   
            }));
  879    913   
        ::tracing::error!(error = ?rich_py_err, "handler error");
  880    914   
        e.into()
  881    915   
    })
  882    916   
}
  883    917   
  884    918   
/// Python handler for operation `EmptyOperation`.
  885    919   
pub(crate) async fn empty_operation(
  886    920   
    input: crate::input::EmptyOperationInput,
  887         -
    state: ::aws_smithy_http_server::Extension<::aws_smithy_http_server_python::context::PyContext>,
         921  +
    state: ::aws_smithy_legacy_http_server::Extension<
         922  +
        ::aws_smithy_http_server_python::context::PyContext,
         923  +
    >,
  888    924   
    handler: ::aws_smithy_http_server_python::PyHandler,
  889    925   
) -> std::result::Result<crate::output::EmptyOperationOutput, crate::error::EmptyOperationError> {
  890    926   
    // Async block used to run the handler and catch any Python error.
  891    927   
    let result = if handler.is_coroutine {
  892    928   
        ::tracing::trace!(
  893    929   
            name = "empty_operation",
  894    930   
            "executing python handler coroutine"
  895    931   
        );
  896    932   
        let result = ::pyo3::Python::with_gil(|py| {
  897    933   
            let pyhandler: &::pyo3::types::PyFunction = handler.extract(py)?;

tmp-codegen-diff/codegen-server-test-python/json_rpc11/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::JsonProtocol::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();
@@ -413,413 +473,473 @@
  433    433   
        {
  434    434   
            use ::tower::Layer;
  435    435   
            ::tracing::trace!("adding middlewares to rust python router");
  436    436   
            let mut middlewares = self.middlewares.clone();
  437    437   
            // Reverse the middlewares, so they run with same order as they defined
  438    438   
            middlewares.reverse();
  439    439   
            for handler in middlewares {
  440    440   
                ::tracing::trace!(name = &handler.name, "adding python middleware");
  441    441   
                let locals = ::pyo3_asyncio::TaskLocals::new(event_loop);
  442    442   
                let layer = ::aws_smithy_http_server_python::PyMiddlewareLayer::<
  443         -
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
         443  +
                    ::aws_smithy_legacy_http_server::protocol::aws_json_11::AwsJson1_1,
  444    444   
                >::new(handler, locals);
  445    445   
                service = ::tower::util::BoxCloneService::new(layer.layer(service));
  446    446   
            }
  447    447   
        }
  448    448   
        Ok(service)
  449    449   
    }
  450    450   
}
  451    451   
#[::pyo3::pymethods]
  452    452   
impl App {
  453    453   
    /// Create a new [App].

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

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