Server Test

Server Test

rev. 3c756f73b1f83a0eed4275d9d1e22df0b10b66fb

Files changed:

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_timestamp_format_headers_output.rs

@@ -0,1 +0,25 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:213 */
           3  +
pub fn ser_timestamp_format_headers_output_output_output(
           4  +
    value: &crate::output::TimestampFormatHeadersOutput,
           5  +
) -> ::std::result::Result<String, ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    /* JsonSerializerGenerator.kt:218 */
           7  +
    let mut out = ::std::string::String::new();
           8  +
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
           9  +
    /* JsonSerializerGenerator.kt:375 */
          10  +
    crate::protocol_serde::shape_timestamp_format_headers_output::ser_timestamp_format_headers_output_output(&mut object, value)?;
          11  +
    /* JsonSerializerGenerator.kt:227 */
          12  +
    object.finish();
          13  +
    Ok(out)
          14  +
    /* JsonSerializerGenerator.kt:213 */
          15  +
}
          16  +
          17  +
/* JsonSerializerGenerator.kt:358 */
          18  +
pub fn ser_timestamp_format_headers_output_output(
          19  +
    #[allow(unused_variables)] object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
          20  +
    #[allow(unused_variables)] input: &crate::output::TimestampFormatHeadersOutput,
          21  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
          22  +
    /* JsonSerializerGenerator.kt:372 */
          23  +
    Ok(())
          24  +
    /* JsonSerializerGenerator.kt:358 */
          25  +
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_timestamp_list.rs

@@ -0,1 +0,74 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:398 */
           3  +
pub(crate) fn de_timestamp_list<'a, I>(
           4  +
    tokens: &mut ::std::iter::Peekable<I>,
           5  +
) -> ::std::result::Result<
           6  +
    Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
           7  +
    ::aws_smithy_json::deserialize::error::DeserializeError,
           8  +
>
           9  +
where
          10  +
    I: Iterator<
          11  +
        Item = Result<
          12  +
            ::aws_smithy_json::deserialize::Token<'a>,
          13  +
            ::aws_smithy_json::deserialize::error::DeserializeError,
          14  +
        >,
          15  +
    >,
          16  +
{
          17  +
    /* JsonParserGenerator.kt:712 */
          18  +
    match tokens.next().transpose()? {
          19  +
        /* JsonParserGenerator.kt:713 */
          20  +
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          21  +
        Some(::aws_smithy_json::deserialize::Token::StartArray { .. }) => {
          22  +
            /* JsonParserGenerator.kt:407 */
          23  +
            let mut items = Vec::new();
          24  +
            /* JsonParserGenerator.kt:408 */
          25  +
            loop {
          26  +
                /* JsonParserGenerator.kt:409 */
          27  +
                match tokens.peek() {
          28  +
                    /* JsonParserGenerator.kt:410 */
          29  +
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
          30  +
                        /* JsonParserGenerator.kt:411 */
          31  +
                        tokens.next().transpose().unwrap();
          32  +
                        break;
          33  +
                        /* JsonParserGenerator.kt:410 */
          34  +
                    }
          35  +
                    /* JsonParserGenerator.kt:413 */
          36  +
                    _ => {
          37  +
                        /* JsonParserGenerator.kt:419 */
          38  +
                        let value =
          39  +
                            /* JsonParserGenerator.kt:384 */::aws_smithy_json::deserialize::token::expect_timestamp_or_null(tokens.next(), ::aws_smithy_types::date_time::Format::EpochSeconds)?
          40  +
                        /* JsonParserGenerator.kt:419 */;
          41  +
                        /* JsonParserGenerator.kt:422 */
          42  +
                        if let Some(value) = value {
          43  +
                            items.push(value);
          44  +
                        }
          45  +
                        /* JsonParserGenerator.kt:430 */
          46  +
                        else {
          47  +
                            return Err(
          48  +
                                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
          49  +
                                    "dense list cannot contain null values",
          50  +
                                ),
          51  +
                            );
          52  +
                        }
          53  +
                        /* JsonParserGenerator.kt:413 */
          54  +
                    } /* JsonParserGenerator.kt:409 */
          55  +
                }
          56  +
                /* JsonParserGenerator.kt:408 */
          57  +
            }
          58  +
            /* JsonParserGenerator.kt:446 */
          59  +
            Ok(Some(items))
          60  +
            /* JsonParserGenerator.kt:713 */
          61  +
        }
          62  +
        /* JsonParserGenerator.kt:722 */
          63  +
        _ => {
          64  +
            /* JsonParserGenerator.kt:723 */
          65  +
            Err(
          66  +
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
          67  +
                    "expected start array or null",
          68  +
                ),
          69  +
            )
          70  +
            /* JsonParserGenerator.kt:722 */
          71  +
        } /* JsonParserGenerator.kt:712 */
          72  +
    }
          73  +
    /* JsonParserGenerator.kt:398 */
          74  +
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_top_level.rs

@@ -0,1 +0,107 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:516 */
           3  +
pub(crate) fn de_top_level<'a, I>(
           4  +
    tokens: &mut ::std::iter::Peekable<I>,
           5  +
) -> ::std::result::Result<
           6  +
    Option<crate::model::top_level::Builder>,
           7  +
    ::aws_smithy_json::deserialize::error::DeserializeError,
           8  +
>
           9  +
where
          10  +
    I: Iterator<
          11  +
        Item = Result<
          12  +
            ::aws_smithy_json::deserialize::Token<'a>,
          13  +
            ::aws_smithy_json::deserialize::error::DeserializeError,
          14  +
        >,
          15  +
    >,
          16  +
{
          17  +
    /* JsonParserGenerator.kt:712 */
          18  +
    match tokens.next().transpose()? {
          19  +
        /* JsonParserGenerator.kt:713 */
          20  +
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          21  +
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          22  +
            /* RustType.kt:534 */
          23  +
            #[allow(unused_mut)]
          24  +
            /* JsonParserGenerator.kt:526 */
          25  +
            let mut builder = crate::model::top_level::Builder::default();
          26  +
            /* JsonParserGenerator.kt:684 */
          27  +
            loop {
          28  +
                /* JsonParserGenerator.kt:685 */
          29  +
                match tokens.next().transpose()? {
          30  +
                    /* JsonParserGenerator.kt:686 */
          31  +
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          32  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          33  +
                        /* JsonParserGenerator.kt:260 */
          34  +
                        match key.to_unescaped()?.as_ref() {
          35  +
                            /* JsonParserGenerator.kt:262 */
          36  +
                            "dialog" => {
          37  +
                                /* JsonParserGenerator.kt:276 */
          38  +
                                if let Some(v) =
          39  +
                                    /* JsonParserGenerator.kt:544 */
          40  +
                                    crate::protocol_serde::shape_dialog::de_dialog(tokens)?
          41  +
                                /* JsonParserGenerator.kt:278 */
          42  +
                                {
          43  +
                                    builder = builder.set_dialog(v);
          44  +
                                }
          45  +
                                /* JsonParserGenerator.kt:262 */
          46  +
                            }
          47  +
                            /* JsonParserGenerator.kt:262 */
          48  +
                            "dialogList" => {
          49  +
                                /* JsonParserGenerator.kt:276 */
          50  +
                                if let Some(v) =
          51  +
                                    /* JsonParserGenerator.kt:451 */
          52  +
                                    crate::protocol_serde::shape_dialog_list::de_dialog_list(
          53  +
                                            tokens,
          54  +
                                        )?
          55  +
                                /* JsonParserGenerator.kt:278 */
          56  +
                                {
          57  +
                                    builder = builder.set_dialog_list(v);
          58  +
                                }
          59  +
                                /* JsonParserGenerator.kt:262 */
          60  +
                            }
          61  +
                            /* JsonParserGenerator.kt:262 */
          62  +
                            "dialogMap" => {
          63  +
                                /* JsonParserGenerator.kt:276 */
          64  +
                                if let Some(v) =
          65  +
                                    /* JsonParserGenerator.kt:509 */
          66  +
                                    crate::protocol_serde::shape_dialog_map::de_dialog_map(
          67  +
                                            tokens,
          68  +
                                        )?
          69  +
                                /* JsonParserGenerator.kt:278 */
          70  +
                                {
          71  +
                                    builder = builder.set_dialog_map(v);
          72  +
                                }
          73  +
                                /* JsonParserGenerator.kt:262 */
          74  +
                            }
          75  +
                            /* JsonParserGenerator.kt:290 */
          76  +
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
          77  +
                        }
          78  +
                        /* JsonParserGenerator.kt:686 */
          79  +
                    }
          80  +
                    /* JsonParserGenerator.kt:695 */
          81  +
                    other => {
          82  +
                        return Err(
          83  +
                            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
          84  +
                                format!("expected object key or end object, found: {other:?}"),
          85  +
                            ),
          86  +
                        )
          87  +
                    } /* JsonParserGenerator.kt:685 */
          88  +
                }
          89  +
                /* JsonParserGenerator.kt:684 */
          90  +
            }
          91  +
            /* JsonParserGenerator.kt:540 */
          92  +
            Ok(Some(builder))
          93  +
            /* JsonParserGenerator.kt:713 */
          94  +
        }
          95  +
        /* JsonParserGenerator.kt:722 */
          96  +
        _ => {
          97  +
            /* JsonParserGenerator.kt:723 */
          98  +
            Err(
          99  +
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         100  +
                    "expected start object or null",
         101  +
                ),
         102  +
            )
         103  +
            /* JsonParserGenerator.kt:722 */
         104  +
        } /* JsonParserGenerator.kt:712 */
         105  +
    }
         106  +
    /* JsonParserGenerator.kt:516 */
         107  +
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_union_payload.rs

@@ -0,1 +0,166 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:175 */
           3  +
pub(crate) fn de_union_payload_payload(
           4  +
    input: &[u8],
           5  +
) -> ::std::result::Result<
           6  +
    crate::model::UnionPayload,
           7  +
    ::aws_smithy_json::deserialize::error::DeserializeError,
           8  +
> {
           9  +
    /* JsonParserGenerator.kt:187 */
          10  +
    let mut tokens_owned =
          11  +
        ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(input))
          12  +
            .peekable();
          13  +
    let tokens = &mut tokens_owned;
          14  +
    /* JsonParserGenerator.kt:194 */
          15  +
    let result =
          16  +
    /* JsonParserGenerator.kt:660 */crate::protocol_serde::shape_union_payload::de_union_payload(tokens)?
          17  +
    /* JsonParserGenerator.kt:196 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("expected payload member value"));
          18  +
    /* JsonParserGenerator.kt:250 */
          19  +
    if tokens.next().is_some() {
          20  +
        /* JsonParserGenerator.kt:251 */
          21  +
        return Err(
          22  +
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
          23  +
                "found more JSON tokens after completing parsing",
          24  +
            ),
          25  +
        );
          26  +
        /* JsonParserGenerator.kt:250 */
          27  +
    }
          28  +
    /* JsonParserGenerator.kt:198 */
          29  +
    result
          30  +
    /* JsonParserGenerator.kt:175 */
          31  +
}
          32  +
          33  +
/* JsonSerializerGenerator.kt:547 */
          34  +
pub fn ser_union_payload(
          35  +
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
          36  +
    input: &crate::model::UnionPayload,
          37  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
          38  +
    /* JsonSerializerGenerator.kt:556 */
          39  +
    match input {
          40  +
        /* JsonSerializerGenerator.kt:564 */
          41  +
        crate::model::UnionPayload::Greeting(inner) => {
          42  +
            /* SerializerUtil.kt:42 */
          43  +
            {
          44  +
                /* JsonSerializerGenerator.kt:423 */
          45  +
                object.key("greeting").string(inner.as_str());
          46  +
                /* SerializerUtil.kt:42 */
          47  +
            }
          48  +
            /* JsonSerializerGenerator.kt:564 */
          49  +
        }
          50  +
        /* JsonSerializerGenerator.kt:556 */
          51  +
    }
          52  +
    /* JsonSerializerGenerator.kt:576 */
          53  +
    Ok(())
          54  +
    /* JsonSerializerGenerator.kt:547 */
          55  +
}
          56  +
          57  +
/* JsonParserGenerator.kt:551 */
          58  +
pub(crate) fn de_union_payload<'a, I>(
          59  +
    tokens: &mut ::std::iter::Peekable<I>,
          60  +
) -> ::std::result::Result<
          61  +
    Option<crate::model::UnionPayload>,
          62  +
    ::aws_smithy_json::deserialize::error::DeserializeError,
          63  +
>
          64  +
where
          65  +
    I: Iterator<
          66  +
        Item = Result<
          67  +
            ::aws_smithy_json::deserialize::Token<'a>,
          68  +
            ::aws_smithy_json::deserialize::error::DeserializeError,
          69  +
        >,
          70  +
    >,
          71  +
{
          72  +
    /* JsonParserGenerator.kt:565 */
          73  +
    let mut variant = None;
          74  +
    /* JsonParserGenerator.kt:567 */
          75  +
    match tokens.next().transpose()? {
          76  +
        /* JsonParserGenerator.kt:568 */
          77  +
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
          78  +
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          79  +
            /* JsonParserGenerator.kt:684 */
          80  +
            loop {
          81  +
                /* JsonParserGenerator.kt:685 */
          82  +
                match tokens.next().transpose()? {
          83  +
                    /* JsonParserGenerator.kt:686 */
          84  +
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          85  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          86  +
                        /* JsonParserGenerator.kt:576 */
          87  +
                        if let ::std::option::Option::Some(::std::result::Result::Ok(
          88  +
                            ::aws_smithy_json::deserialize::Token::ValueNull { .. },
          89  +
                        )) = tokens.peek()
          90  +
                        {
          91  +
                            let _ = tokens.next().expect("peek returned a token")?;
          92  +
                            continue;
          93  +
                        }
          94  +
                        /* JsonParserGenerator.kt:585 */
          95  +
                        let key = key.to_unescaped()?;
          96  +
                        if key == "__type" {
          97  +
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
          98  +
                            continue;
          99  +
                        }
         100  +
                        if variant.is_some() {
         101  +
                            return Err(
         102  +
                                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         103  +
                                    "encountered mixed variants in union",
         104  +
                                ),
         105  +
                            );
         106  +
                        }
         107  +
                        /* JsonParserGenerator.kt:598 */
         108  +
                        variant = match key.as_ref() {
         109  +
                            /* JsonParserGenerator.kt:601 */
         110  +
                            "greeting" => {
         111  +
                                /* JsonParserGenerator.kt:611 */
         112  +
                                Some(crate::model::UnionPayload::Greeting(
         113  +
                                    /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
         114  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         115  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
         116  +
                                        /* JsonParserGenerator.kt:339 */)
         117  +
                                    /* JsonParserGenerator.kt:354 */).transpose()?
         118  +
                                    /* JsonParserGenerator.kt:670 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'greeting' cannot be null"))?
         119  +
                                /* JsonParserGenerator.kt:611 */))
         120  +
                                /* JsonParserGenerator.kt:601 */
         121  +
                            }
         122  +
                            /* JsonParserGenerator.kt:634 */
         123  +
                            variant => {
         124  +
                                return Err(
         125  +
                                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         126  +
                                        format!("unexpected union variant: {variant}"),
         127  +
                                    ),
         128  +
                                )
         129  +
                            } /* JsonParserGenerator.kt:598 */
         130  +
                        };
         131  +
                        /* JsonParserGenerator.kt:686 */
         132  +
                    }
         133  +
                    /* JsonParserGenerator.kt:695 */
         134  +
                    other => {
         135  +
                        return Err(
         136  +
                            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         137  +
                                format!("expected object key or end object, found: {other:?}"),
         138  +
                            ),
         139  +
                        )
         140  +
                    } /* JsonParserGenerator.kt:685 */
         141  +
                }
         142  +
                /* JsonParserGenerator.kt:684 */
         143  +
            }
         144  +
            /* JsonParserGenerator.kt:568 */
         145  +
        }
         146  +
        /* JsonParserGenerator.kt:642 */
         147  +
        _ => {
         148  +
            return Err(
         149  +
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         150  +
                    "expected start object or null",
         151  +
                ),
         152  +
            )
         153  +
        } /* JsonParserGenerator.kt:567 */
         154  +
    }
         155  +
    /* JsonParserGenerator.kt:649 */
         156  +
    if variant.is_none() {
         157  +
        return Err(
         158  +
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         159  +
                "Union did not contain a valid variant.",
         160  +
            ),
         161  +
        );
         162  +
    }
         163  +
    /* JsonParserGenerator.kt:657 */
         164  +
    Ok(variant)
         165  +
    /* JsonParserGenerator.kt:551 */
         166  +
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_union_with_json_name.rs

@@ -0,1 +0,181 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:551 */
           3  +
pub(crate) fn de_union_with_json_name<'a, I>(
           4  +
    tokens: &mut ::std::iter::Peekable<I>,
           5  +
) -> ::std::result::Result<
           6  +
    Option<crate::model::UnionWithJsonName>,
           7  +
    ::aws_smithy_json::deserialize::error::DeserializeError,
           8  +
>
           9  +
where
          10  +
    I: Iterator<
          11  +
        Item = Result<
          12  +
            ::aws_smithy_json::deserialize::Token<'a>,
          13  +
            ::aws_smithy_json::deserialize::error::DeserializeError,
          14  +
        >,
          15  +
    >,
          16  +
{
          17  +
    /* JsonParserGenerator.kt:565 */
          18  +
    let mut variant = None;
          19  +
    /* JsonParserGenerator.kt:567 */
          20  +
    match tokens.next().transpose()? {
          21  +
        /* JsonParserGenerator.kt:568 */
          22  +
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
          23  +
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          24  +
            /* JsonParserGenerator.kt:684 */
          25  +
            loop {
          26  +
                /* JsonParserGenerator.kt:685 */
          27  +
                match tokens.next().transpose()? {
          28  +
                    /* JsonParserGenerator.kt:686 */
          29  +
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          30  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          31  +
                        /* JsonParserGenerator.kt:576 */
          32  +
                        if let ::std::option::Option::Some(::std::result::Result::Ok(
          33  +
                            ::aws_smithy_json::deserialize::Token::ValueNull { .. },
          34  +
                        )) = tokens.peek()
          35  +
                        {
          36  +
                            let _ = tokens.next().expect("peek returned a token")?;
          37  +
                            continue;
          38  +
                        }
          39  +
                        /* JsonParserGenerator.kt:585 */
          40  +
                        let key = key.to_unescaped()?;
          41  +
                        if key == "__type" {
          42  +
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
          43  +
                            continue;
          44  +
                        }
          45  +
                        if variant.is_some() {
          46  +
                            return Err(
          47  +
                                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
          48  +
                                    "encountered mixed variants in union",
          49  +
                                ),
          50  +
                            );
          51  +
                        }
          52  +
                        /* JsonParserGenerator.kt:598 */
          53  +
                        variant = match key.as_ref() {
          54  +
                            /* JsonParserGenerator.kt:601 */
          55  +
                            "FOO" => {
          56  +
                                /* JsonParserGenerator.kt:611 */
          57  +
                                Some(crate::model::UnionWithJsonName::Foo(
          58  +
                                    /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          59  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          60  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          61  +
                                        /* JsonParserGenerator.kt:339 */)
          62  +
                                    /* JsonParserGenerator.kt:354 */).transpose()?
          63  +
                                    /* JsonParserGenerator.kt:670 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'foo' cannot be null"))?
          64  +
                                /* JsonParserGenerator.kt:611 */))
          65  +
                                /* JsonParserGenerator.kt:601 */
          66  +
                            }
          67  +
                            /* JsonParserGenerator.kt:601 */
          68  +
                            "bar" => {
          69  +
                                /* JsonParserGenerator.kt:611 */
          70  +
                                Some(crate::model::UnionWithJsonName::Bar(
          71  +
                                    /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          72  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          73  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          74  +
                                        /* JsonParserGenerator.kt:339 */)
          75  +
                                    /* JsonParserGenerator.kt:354 */).transpose()?
          76  +
                                    /* JsonParserGenerator.kt:670 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'bar' cannot be null"))?
          77  +
                                /* JsonParserGenerator.kt:611 */))
          78  +
                                /* JsonParserGenerator.kt:601 */
          79  +
                            }
          80  +
                            /* JsonParserGenerator.kt:601 */
          81  +
                            "_baz" => {
          82  +
                                /* JsonParserGenerator.kt:611 */
          83  +
                                Some(crate::model::UnionWithJsonName::Baz(
          84  +
                                    /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          85  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          86  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          87  +
                                        /* JsonParserGenerator.kt:339 */)
          88  +
                                    /* JsonParserGenerator.kt:354 */).transpose()?
          89  +
                                    /* JsonParserGenerator.kt:670 */.ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'baz' cannot be null"))?
          90  +
                                /* JsonParserGenerator.kt:611 */))
          91  +
                                /* JsonParserGenerator.kt:601 */
          92  +
                            }
          93  +
                            /* JsonParserGenerator.kt:634 */
          94  +
                            variant => {
          95  +
                                return Err(
          96  +
                                    ::aws_smithy_json::deserialize::error::DeserializeError::custom(
          97  +
                                        format!("unexpected union variant: {variant}"),
          98  +
                                    ),
          99  +
                                )
         100  +
                            } /* JsonParserGenerator.kt:598 */
         101  +
                        };
         102  +
                        /* JsonParserGenerator.kt:686 */
         103  +
                    }
         104  +
                    /* JsonParserGenerator.kt:695 */
         105  +
                    other => {
         106  +
                        return Err(
         107  +
                            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         108  +
                                format!("expected object key or end object, found: {other:?}"),
         109  +
                            ),
         110  +
                        )
         111  +
                    } /* JsonParserGenerator.kt:685 */
         112  +
                }
         113  +
                /* JsonParserGenerator.kt:684 */
         114  +
            }
         115  +
            /* JsonParserGenerator.kt:568 */
         116  +
        }
         117  +
        /* JsonParserGenerator.kt:642 */
         118  +
        _ => {
         119  +
            return Err(
         120  +
                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         121  +
                    "expected start object or null",
         122  +
                ),
         123  +
            )
         124  +
        } /* JsonParserGenerator.kt:567 */
         125  +
    }
         126  +
    /* JsonParserGenerator.kt:649 */
         127  +
    if variant.is_none() {
         128  +
        return Err(
         129  +
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
         130  +
                "Union did not contain a valid variant.",
         131  +
            ),
         132  +
        );
         133  +
    }
         134  +
    /* JsonParserGenerator.kt:657 */
         135  +
    Ok(variant)
         136  +
    /* JsonParserGenerator.kt:551 */
         137  +
}
         138  +
         139  +
/* JsonSerializerGenerator.kt:547 */
         140  +
pub fn ser_union_with_json_name(
         141  +
    object_1: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
         142  +
    input: &crate::model::UnionWithJsonName,
         143  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
         144  +
    /* JsonSerializerGenerator.kt:556 */
         145  +
    match input {
         146  +
        /* JsonSerializerGenerator.kt:564 */
         147  +
        crate::model::UnionWithJsonName::Foo(inner) => {
         148  +
            /* SerializerUtil.kt:42 */
         149  +
            {
         150  +
                /* JsonSerializerGenerator.kt:423 */
         151  +
                object_1.key("FOO").string(inner.as_str());
         152  +
                /* SerializerUtil.kt:42 */
         153  +
            }
         154  +
            /* JsonSerializerGenerator.kt:564 */
         155  +
        }
         156  +
        /* JsonSerializerGenerator.kt:564 */
         157  +
        crate::model::UnionWithJsonName::Bar(inner) => {
         158  +
            /* SerializerUtil.kt:42 */
         159  +
            {
         160  +
                /* JsonSerializerGenerator.kt:423 */
         161  +
                object_1.key("bar").string(inner.as_str());
         162  +
                /* SerializerUtil.kt:42 */
         163  +
            }
         164  +
            /* JsonSerializerGenerator.kt:564 */
         165  +
        }
         166  +
        /* JsonSerializerGenerator.kt:564 */
         167  +
        crate::model::UnionWithJsonName::Baz(inner) => {
         168  +
            /* SerializerUtil.kt:42 */
         169  +
            {
         170  +
                /* JsonSerializerGenerator.kt:423 */
         171  +
                object_1.key("_baz").string(inner.as_str());
         172  +
                /* SerializerUtil.kt:42 */
         173  +
            }
         174  +
            /* JsonSerializerGenerator.kt:564 */
         175  +
        }
         176  +
        /* JsonSerializerGenerator.kt:556 */
         177  +
    }
         178  +
    /* JsonSerializerGenerator.kt:576 */
         179  +
    Ok(())
         180  +
    /* JsonSerializerGenerator.kt:547 */
         181  +
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_unit_input_and_output.rs

@@ -0,1 +0,82 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:534 */
           3  +
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ServerHttpBoundProtocolGenerator.kt:408 */
           5  +
pub async fn de_unit_input_and_output_http_request<B>(
           6  +
    #[allow(unused_variables)] request: ::http::Request<B>,
           7  +
) -> std::result::Result<
           8  +
    crate::input::UnitInputAndOutputInput,
           9  +
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection,
          10  +
>
          11  +
where
          12  +
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
          13  +
    B::Data: Send,
          14  +
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection:
          15  +
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
          16  +
{
          17  +
    /* ServerHttpBoundProtocolGenerator.kt:424 */
          18  +
    Ok({
          19  +
        /* RustType.kt:534 */
          20  +
        #[allow(unused_mut)]
          21  +
        /* ServerHttpBoundProtocolGenerator.kt:759 */
          22  +
        let mut input = crate::input::unit_input_and_output_input::Builder::default();
          23  +
        /* RustType.kt:534 */
          24  +
        #[allow(unused_variables)]
          25  +
        /* ServerHttpBoundProtocolGenerator.kt:764 */
          26  +
        let ::aws_smithy_runtime_api::http::RequestParts {
          27  +
            uri, headers, body, ..
          28  +
        } = ::aws_smithy_runtime_api::http::Request::try_from(request)?.into_parts();
          29  +
        /* ServerHttpBoundProtocolGenerator.kt:873 */
          30  +
        ::aws_smithy_legacy_http_server::protocol::content_type_header_classifier_smithy(
          31  +
            &headers, None,
          32  +
        )?;
          33  +
        /* ServerHttpBoundProtocolGenerator.kt:896 */
          34  +
        input.build()
          35  +
        /* ServerHttpBoundProtocolGenerator.kt:424 */
          36  +
    })
          37  +
    /* ServerHttpBoundProtocolGenerator.kt:408 */
          38  +
}
          39  +
          40  +
/* RustType.kt:534 */
          41  +
#[allow(clippy::unnecessary_wraps)]
          42  +
/* ServerHttpBoundProtocolGenerator.kt:445 */
          43  +
pub fn ser_unit_input_and_output_http_response(
          44  +
    #[allow(unused_variables)] output: crate::output::UnitInputAndOutputOutput,
          45  +
) -> std::result::Result<
          46  +
    ::aws_smithy_legacy_http_server::response::Response,
          47  +
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::ResponseRejection,
          48  +
> {
          49  +
    /* ServerHttpBoundProtocolGenerator.kt:457 */
          50  +
    Ok({
          51  +
        /* RustType.kt:534 */
          52  +
        #[allow(unused_mut)]
          53  +
        /* ServerHttpBoundProtocolGenerator.kt:547 */
          54  +
        let mut builder = ::http::Response::builder();
          55  +
        /* ServerHttpBoundProtocolGenerator.kt:633 */
          56  +
        builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
          57  +
            builder,
          58  +
            ::http::header::CONTENT_TYPE,
          59  +
            "application/json",
          60  +
        );
          61  +
        /* ServerHttpBoundProtocolGenerator.kt:718 */
          62  +
        let http_status: u16 = 200;
          63  +
        builder = builder.status(http_status);
          64  +
        /* ServerHttpBoundProtocolGenerator.kt:597 */
          65  +
        let payload =
          66  +
            /* HttpBoundProtocolPayloadGenerator.kt:233 */""
          67  +
        /* ServerHttpBoundProtocolGenerator.kt:597 */;
          68  +
        /* ServerHttpBoundProtocolGenerator.kt:699 */
          69  +
        let content_length = payload.len();
          70  +
        builder = ::aws_smithy_legacy_http::header::set_response_header_if_absent(
          71  +
            builder,
          72  +
            ::http::header::CONTENT_LENGTH,
          73  +
            content_length,
          74  +
        );
          75  +
        /* ServerHttpBoundProtocolGenerator.kt:603 */
          76  +
        let body = ::aws_smithy_legacy_http_server::body::to_boxed(payload);
          77  +
        /* ServerHttpBoundProtocolGenerator.kt:611 */
          78  +
        builder.body(body)?
          79  +
        /* ServerHttpBoundProtocolGenerator.kt:457 */
          80  +
    })
          81  +
    /* ServerHttpBoundProtocolGenerator.kt:445 */
          82  +
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_validation_exception.rs

@@ -0,1 +0,58 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:213 */
           3  +
pub fn ser_validation_exception_error(
           4  +
    value: &crate::error::ValidationException,
           5  +
) -> ::std::result::Result<String, ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    /* JsonSerializerGenerator.kt:218 */
           7  +
    let mut out = ::std::string::String::new();
           8  +
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
           9  +
    /* JsonSerializerGenerator.kt:375 */
          10  +
    crate::protocol_serde::shape_validation_exception::ser_validation_exception(
          11  +
        &mut object,
          12  +
        value,
          13  +
    )?;
          14  +
    /* JsonSerializerGenerator.kt:227 */
          15  +
    object.finish();
          16  +
    Ok(out)
          17  +
    /* JsonSerializerGenerator.kt:213 */
          18  +
}
          19  +
          20  +
/* JsonSerializerGenerator.kt:358 */
          21  +
pub fn ser_validation_exception(
          22  +
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
          23  +
    input: &crate::error::ValidationException,
          24  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
          25  +
    /* JsonSerializerGenerator.kt:382 */
          26  +
    if let Some(var_1) = &input.field_list {
          27  +
        /* JsonSerializerGenerator.kt:484 */
          28  +
        let mut array_2 = object.key("fieldList").start_array();
          29  +
        /* JsonSerializerGenerator.kt:524 */
          30  +
        for item_3 in var_1 {
          31  +
            /* SerializerUtil.kt:42 */
          32  +
            {
          33  +
                /* JsonSerializerGenerator.kt:495 */
          34  +
                #[allow(unused_mut)]
          35  +
                /* JsonSerializerGenerator.kt:496 */
          36  +
                let mut object_4 = array_2.value().start_object();
          37  +
                /* JsonSerializerGenerator.kt:375 */
          38  +
                crate::protocol_serde::shape_validation_exception_field::ser_validation_exception_field(&mut object_4, item_3)?;
          39  +
                /* JsonSerializerGenerator.kt:515 */
          40  +
                object_4.finish();
          41  +
                /* SerializerUtil.kt:42 */
          42  +
            }
          43  +
            /* JsonSerializerGenerator.kt:524 */
          44  +
        }
          45  +
        /* JsonSerializerGenerator.kt:486 */
          46  +
        array_2.finish();
          47  +
        /* JsonSerializerGenerator.kt:382 */
          48  +
    }
          49  +
    /* SerializerUtil.kt:42 */
          50  +
    {
          51  +
        /* JsonSerializerGenerator.kt:423 */
          52  +
        object.key("message").string(input.message.as_str());
          53  +
        /* SerializerUtil.kt:42 */
          54  +
    }
          55  +
    /* JsonSerializerGenerator.kt:372 */
          56  +
    Ok(())
          57  +
    /* JsonSerializerGenerator.kt:358 */
          58  +
}

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/protocol_serde/shape_validation_exception_field.rs

@@ -0,1 +0,22 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
           3  +
pub fn ser_validation_exception_field(
           4  +
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
           5  +
    input: &crate::model::ValidationExceptionField,
           6  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* SerializerUtil.kt:42 */
           8  +
    {
           9  +
        /* JsonSerializerGenerator.kt:423 */
          10  +
        object.key("path").string(input.path.as_str());
          11  +
        /* SerializerUtil.kt:42 */
          12  +
    }
          13  +
    /* SerializerUtil.kt:42 */
          14  +
    {
          15  +
        /* JsonSerializerGenerator.kt:423 */
          16  +
        object.key("message").string(input.message.as_str());
          17  +
        /* SerializerUtil.kt:42 */
          18  +
    }
          19  +
    /* JsonSerializerGenerator.kt:372 */
          20  +
    Ok(())
          21  +
    /* JsonSerializerGenerator.kt:358 */
          22  +
}

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

@@ -0,1 +0,22991 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ServerServiceGenerator.kt:795 */
           3  +
/// The service builder for [`RestJson`].
           4  +
///
           5  +
/// Constructed via [`RestJson::builder`].
           6  +
pub struct RestJsonBuilder<Body, L, HttpPl, ModelPl> {
           7  +
    all_query_string_types: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
           8  +
    constant_and_variable_query_string:
           9  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          10  +
    constant_query_string: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          11  +
    content_type_parameters: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          12  +
    datetime_offsets: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          13  +
    document_type: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          14  +
    document_type_as_map_value: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          15  +
    document_type_as_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          16  +
    empty_input_and_empty_output: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          17  +
    endpoint_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          18  +
    endpoint_with_host_label_operation:
          19  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          20  +
    fractional_seconds: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          21  +
    greeting_with_errors: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          22  +
    host_with_path_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          23  +
    http_checksum_required: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          24  +
    http_empty_prefix_headers: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          25  +
    http_enum_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          26  +
    http_payload_traits: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          27  +
    http_payload_traits_with_media_type:
          28  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          29  +
    http_payload_with_structure: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          30  +
    http_payload_with_union: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          31  +
    http_prefix_headers: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          32  +
    http_prefix_headers_in_response: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          33  +
    http_request_with_float_labels: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          34  +
    http_request_with_greedy_label_in_path:
          35  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          36  +
    http_request_with_labels: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          37  +
    http_request_with_labels_and_timestamp_format:
          38  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          39  +
    http_request_with_regex_literal: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          40  +
    http_response_code: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          41  +
    http_string_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          42  +
    ignore_query_params_in_response: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          43  +
    input_and_output_with_headers: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          44  +
    json_blobs: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          45  +
    json_enums: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          46  +
    json_int_enums: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          47  +
    json_lists: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          48  +
    json_maps: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          49  +
    json_timestamps: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          50  +
    json_unions: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          51  +
    malformed_accept_with_body: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          52  +
    malformed_accept_with_generic_string:
          53  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          54  +
    malformed_accept_with_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          55  +
    malformed_blob: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          56  +
    malformed_boolean: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          57  +
    malformed_byte: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          58  +
    malformed_content_type_with_body: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          59  +
    malformed_content_type_with_generic_string:
          60  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          61  +
    malformed_content_type_without_body:
          62  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          63  +
    malformed_content_type_without_body_empty_input:
          64  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          65  +
    malformed_content_type_with_payload:
          66  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          67  +
    malformed_double: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          68  +
    malformed_float: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          69  +
    malformed_integer: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          70  +
    malformed_list: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          71  +
    malformed_long: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          72  +
    malformed_map: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          73  +
    malformed_request_body: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          74  +
    malformed_short: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          75  +
    malformed_string: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          76  +
    malformed_timestamp_body_date_time:
          77  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          78  +
    malformed_timestamp_body_default: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          79  +
    malformed_timestamp_body_http_date:
          80  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          81  +
    malformed_timestamp_header_date_time:
          82  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          83  +
    malformed_timestamp_header_default:
          84  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          85  +
    malformed_timestamp_header_epoch: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          86  +
    malformed_timestamp_path_default: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          87  +
    malformed_timestamp_path_epoch: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          88  +
    malformed_timestamp_path_http_date:
          89  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          90  +
    malformed_timestamp_query_default:
          91  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          92  +
    malformed_timestamp_query_epoch: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          93  +
    malformed_timestamp_query_http_date:
          94  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          95  +
    malformed_union: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          96  +
    media_type_header: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          97  +
    no_input_and_no_output: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          98  +
    no_input_and_output: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          99  +
    null_and_empty_headers_client: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         100  +
    null_and_empty_headers_server: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         101  +
    omits_null_serializes_empty_string:
         102  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         103  +
    omits_serializing_empty_lists: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         104  +
    operation_with_defaults: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         105  +
    operation_with_nested_structure: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         106  +
    post_player_action: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         107  +
    post_union_with_json_name: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         108  +
    put_with_content_encoding: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         109  +
    query_idempotency_token_auto_fill:
         110  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         111  +
    query_params_as_string_list_map: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         112  +
    query_precedence: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         113  +
    recursive_shapes: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         114  +
    response_code_http_fallback: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         115  +
    response_code_required: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         116  +
    simple_scalar_properties: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         117  +
    sparse_json_lists: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         118  +
    sparse_json_maps: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         119  +
    streaming_traits: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         120  +
    streaming_traits_require_length: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         121  +
    streaming_traits_with_media_type: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         122  +
    test_body_structure: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         123  +
    test_get_no_input_no_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         124  +
    test_get_no_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         125  +
    test_payload_blob: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         126  +
    test_payload_structure: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         127  +
    test_post_no_input_no_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         128  +
    test_post_no_payload: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         129  +
    timestamp_format_headers: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         130  +
    unit_input_and_output: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
         131  +
    layer: L,
         132  +
    http_plugin: HttpPl,
         133  +
    model_plugin: ModelPl,
         134  +
}
         135  +
         136  +
impl<Body, L, HttpPl, ModelPl> RestJsonBuilder<Body, L, HttpPl, ModelPl> {
         137  +
    /// Sets the [`AllQueryStringTypes`](crate::operation_shape::AllQueryStringTypes) operation.
         138  +
    ///
         139  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         140  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         141  +
    ///
         142  +
    /// # Example
         143  +
    ///
         144  +
    /// ```no_run
         145  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         146  +
    ///
         147  +
    /// use rest_json_http0x::{input, output, error};
         148  +
    ///
         149  +
    /// async fn handler(input: input::AllQueryStringTypesInput) -> Result<output::AllQueryStringTypesOutput, error::AllQueryStringTypesError> {
         150  +
    ///     todo!()
         151  +
    /// }
         152  +
    ///
         153  +
    /// let config = RestJsonConfig::builder().build();
         154  +
    /// let app = RestJson::builder(config)
         155  +
    ///     .all_query_string_types(handler)
         156  +
    ///     /* Set other handlers */
         157  +
    ///     .build()
         158  +
    ///     .unwrap();
         159  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         160  +
    /// ```
         161  +
    ///
         162  +
                    pub fn all_query_string_types<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         163  +
                    where
         164  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::AllQueryStringTypes, HandlerExtractors>,
         165  +
         166  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         167  +
                            RestJson<L>,
         168  +
                            crate::operation_shape::AllQueryStringTypes,
         169  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::AllQueryStringTypes, HandlerType>
         170  +
                        >,
         171  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         172  +
                            RestJson<L>,
         173  +
                            crate::operation_shape::AllQueryStringTypes,
         174  +
                            ModelPl::Output
         175  +
                        >,
         176  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         177  +
                            RestJson<L>,
         178  +
                            crate::operation_shape::AllQueryStringTypes,
         179  +
                            <
         180  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         181  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         182  +
                                    RestJson<L>,
         183  +
                                    crate::operation_shape::AllQueryStringTypes,
         184  +
                                    ModelPl::Output
         185  +
                                >
         186  +
                            >::Output
         187  +
                        >,
         188  +
         189  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         190  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         191  +
         192  +
                    {
         193  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         194  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         195  +
        let svc = crate::operation_shape::AllQueryStringTypes::from_handler(handler);
         196  +
        let svc = self.model_plugin.apply(svc);
         197  +
        let svc =
         198  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         199  +
                .apply(svc);
         200  +
        let svc = self.http_plugin.apply(svc);
         201  +
        self.all_query_string_types_custom(svc)
         202  +
    }
         203  +
         204  +
    /// Sets the [`AllQueryStringTypes`](crate::operation_shape::AllQueryStringTypes) operation.
         205  +
    ///
         206  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         207  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         208  +
    ///
         209  +
    /// # Example
         210  +
    ///
         211  +
    /// ```no_run
         212  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         213  +
    ///
         214  +
    /// use rest_json_http0x::{input, output, error};
         215  +
    ///
         216  +
    /// async fn handler(input: input::AllQueryStringTypesInput) -> Result<output::AllQueryStringTypesOutput, error::AllQueryStringTypesError> {
         217  +
    ///     todo!()
         218  +
    /// }
         219  +
    ///
         220  +
    /// let config = RestJsonConfig::builder().build();
         221  +
    /// let svc = ::tower::util::service_fn(handler);
         222  +
    /// let app = RestJson::builder(config)
         223  +
    ///     .all_query_string_types_service(svc)
         224  +
    ///     /* Set other handlers */
         225  +
    ///     .build()
         226  +
    ///     .unwrap();
         227  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         228  +
    /// ```
         229  +
    ///
         230  +
                    pub fn all_query_string_types_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         231  +
                    where
         232  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::AllQueryStringTypes, ServiceExtractors>,
         233  +
         234  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         235  +
                            RestJson<L>,
         236  +
                            crate::operation_shape::AllQueryStringTypes,
         237  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::AllQueryStringTypes, S>
         238  +
                        >,
         239  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         240  +
                            RestJson<L>,
         241  +
                            crate::operation_shape::AllQueryStringTypes,
         242  +
                            ModelPl::Output
         243  +
                        >,
         244  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         245  +
                            RestJson<L>,
         246  +
                            crate::operation_shape::AllQueryStringTypes,
         247  +
                            <
         248  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         249  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         250  +
                                    RestJson<L>,
         251  +
                                    crate::operation_shape::AllQueryStringTypes,
         252  +
                                    ModelPl::Output
         253  +
                                >
         254  +
                            >::Output
         255  +
                        >,
         256  +
         257  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         258  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         259  +
         260  +
                    {
         261  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         262  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         263  +
        let svc = crate::operation_shape::AllQueryStringTypes::from_service(service);
         264  +
        let svc = self.model_plugin.apply(svc);
         265  +
        let svc =
         266  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         267  +
                .apply(svc);
         268  +
        let svc = self.http_plugin.apply(svc);
         269  +
        self.all_query_string_types_custom(svc)
         270  +
    }
         271  +
         272  +
    /// Sets the [`AllQueryStringTypes`](crate::operation_shape::AllQueryStringTypes) to a custom [`Service`](tower::Service).
         273  +
    /// not constrained by the Smithy contract.
         274  +
    fn all_query_string_types_custom<S>(mut self, svc: S) -> Self
         275  +
    where
         276  +
        S: ::tower::Service<
         277  +
                ::http::Request<Body>,
         278  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         279  +
                Error = ::std::convert::Infallible,
         280  +
            > + Clone
         281  +
            + Send
         282  +
            + 'static,
         283  +
        S::Future: Send + 'static,
         284  +
    {
         285  +
        self.all_query_string_types =
         286  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         287  +
        self
         288  +
    }
         289  +
         290  +
    /// Sets the [`ConstantAndVariableQueryString`](crate::operation_shape::ConstantAndVariableQueryString) operation.
         291  +
    ///
         292  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         293  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         294  +
    ///
         295  +
    /// # Example
         296  +
    ///
         297  +
    /// ```no_run
         298  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         299  +
    ///
         300  +
    /// use rest_json_http0x::{input, output, error};
         301  +
    ///
         302  +
    /// async fn handler(input: input::ConstantAndVariableQueryStringInput) -> output::ConstantAndVariableQueryStringOutput {
         303  +
    ///     todo!()
         304  +
    /// }
         305  +
    ///
         306  +
    /// let config = RestJsonConfig::builder().build();
         307  +
    /// let app = RestJson::builder(config)
         308  +
    ///     .constant_and_variable_query_string(handler)
         309  +
    ///     /* Set other handlers */
         310  +
    ///     .build()
         311  +
    ///     .unwrap();
         312  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         313  +
    /// ```
         314  +
    ///
         315  +
                    pub fn constant_and_variable_query_string<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         316  +
                    where
         317  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ConstantAndVariableQueryString, HandlerExtractors>,
         318  +
         319  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         320  +
                            RestJson<L>,
         321  +
                            crate::operation_shape::ConstantAndVariableQueryString,
         322  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ConstantAndVariableQueryString, HandlerType>
         323  +
                        >,
         324  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         325  +
                            RestJson<L>,
         326  +
                            crate::operation_shape::ConstantAndVariableQueryString,
         327  +
                            ModelPl::Output
         328  +
                        >,
         329  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         330  +
                            RestJson<L>,
         331  +
                            crate::operation_shape::ConstantAndVariableQueryString,
         332  +
                            <
         333  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         334  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         335  +
                                    RestJson<L>,
         336  +
                                    crate::operation_shape::ConstantAndVariableQueryString,
         337  +
                                    ModelPl::Output
         338  +
                                >
         339  +
                            >::Output
         340  +
                        >,
         341  +
         342  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         343  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         344  +
         345  +
                    {
         346  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         347  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         348  +
        let svc = crate::operation_shape::ConstantAndVariableQueryString::from_handler(handler);
         349  +
        let svc = self.model_plugin.apply(svc);
         350  +
        let svc =
         351  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         352  +
                .apply(svc);
         353  +
        let svc = self.http_plugin.apply(svc);
         354  +
        self.constant_and_variable_query_string_custom(svc)
         355  +
    }
         356  +
         357  +
    /// Sets the [`ConstantAndVariableQueryString`](crate::operation_shape::ConstantAndVariableQueryString) operation.
         358  +
    ///
         359  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         360  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         361  +
    ///
         362  +
    /// # Example
         363  +
    ///
         364  +
    /// ```no_run
         365  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         366  +
    ///
         367  +
    /// use rest_json_http0x::{input, output, error};
         368  +
    ///
         369  +
    /// async fn handler(input: input::ConstantAndVariableQueryStringInput) -> Result<output::ConstantAndVariableQueryStringOutput, std::convert::Infallible> {
         370  +
    ///     todo!()
         371  +
    /// }
         372  +
    ///
         373  +
    /// let config = RestJsonConfig::builder().build();
         374  +
    /// let svc = ::tower::util::service_fn(handler);
         375  +
    /// let app = RestJson::builder(config)
         376  +
    ///     .constant_and_variable_query_string_service(svc)
         377  +
    ///     /* Set other handlers */
         378  +
    ///     .build()
         379  +
    ///     .unwrap();
         380  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         381  +
    /// ```
         382  +
    ///
         383  +
                    pub fn constant_and_variable_query_string_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         384  +
                    where
         385  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ConstantAndVariableQueryString, ServiceExtractors>,
         386  +
         387  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         388  +
                            RestJson<L>,
         389  +
                            crate::operation_shape::ConstantAndVariableQueryString,
         390  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ConstantAndVariableQueryString, S>
         391  +
                        >,
         392  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         393  +
                            RestJson<L>,
         394  +
                            crate::operation_shape::ConstantAndVariableQueryString,
         395  +
                            ModelPl::Output
         396  +
                        >,
         397  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         398  +
                            RestJson<L>,
         399  +
                            crate::operation_shape::ConstantAndVariableQueryString,
         400  +
                            <
         401  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         402  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         403  +
                                    RestJson<L>,
         404  +
                                    crate::operation_shape::ConstantAndVariableQueryString,
         405  +
                                    ModelPl::Output
         406  +
                                >
         407  +
                            >::Output
         408  +
                        >,
         409  +
         410  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         411  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         412  +
         413  +
                    {
         414  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         415  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         416  +
        let svc = crate::operation_shape::ConstantAndVariableQueryString::from_service(service);
         417  +
        let svc = self.model_plugin.apply(svc);
         418  +
        let svc =
         419  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         420  +
                .apply(svc);
         421  +
        let svc = self.http_plugin.apply(svc);
         422  +
        self.constant_and_variable_query_string_custom(svc)
         423  +
    }
         424  +
         425  +
    /// Sets the [`ConstantAndVariableQueryString`](crate::operation_shape::ConstantAndVariableQueryString) to a custom [`Service`](tower::Service).
         426  +
    /// not constrained by the Smithy contract.
         427  +
    fn constant_and_variable_query_string_custom<S>(mut self, svc: S) -> Self
         428  +
    where
         429  +
        S: ::tower::Service<
         430  +
                ::http::Request<Body>,
         431  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         432  +
                Error = ::std::convert::Infallible,
         433  +
            > + Clone
         434  +
            + Send
         435  +
            + 'static,
         436  +
        S::Future: Send + 'static,
         437  +
    {
         438  +
        self.constant_and_variable_query_string =
         439  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         440  +
        self
         441  +
    }
         442  +
         443  +
    /// Sets the [`ConstantQueryString`](crate::operation_shape::ConstantQueryString) operation.
         444  +
    ///
         445  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         446  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         447  +
    ///
         448  +
    /// # Example
         449  +
    ///
         450  +
    /// ```no_run
         451  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         452  +
    ///
         453  +
    /// use rest_json_http0x::{input, output, error};
         454  +
    ///
         455  +
    /// async fn handler(input: input::ConstantQueryStringInput) -> Result<output::ConstantQueryStringOutput, error::ConstantQueryStringError> {
         456  +
    ///     todo!()
         457  +
    /// }
         458  +
    ///
         459  +
    /// let config = RestJsonConfig::builder().build();
         460  +
    /// let app = RestJson::builder(config)
         461  +
    ///     .constant_query_string(handler)
         462  +
    ///     /* Set other handlers */
         463  +
    ///     .build()
         464  +
    ///     .unwrap();
         465  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         466  +
    /// ```
         467  +
    ///
         468  +
                    pub fn constant_query_string<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         469  +
                    where
         470  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ConstantQueryString, HandlerExtractors>,
         471  +
         472  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         473  +
                            RestJson<L>,
         474  +
                            crate::operation_shape::ConstantQueryString,
         475  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ConstantQueryString, HandlerType>
         476  +
                        >,
         477  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         478  +
                            RestJson<L>,
         479  +
                            crate::operation_shape::ConstantQueryString,
         480  +
                            ModelPl::Output
         481  +
                        >,
         482  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         483  +
                            RestJson<L>,
         484  +
                            crate::operation_shape::ConstantQueryString,
         485  +
                            <
         486  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         487  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         488  +
                                    RestJson<L>,
         489  +
                                    crate::operation_shape::ConstantQueryString,
         490  +
                                    ModelPl::Output
         491  +
                                >
         492  +
                            >::Output
         493  +
                        >,
         494  +
         495  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         496  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         497  +
         498  +
                    {
         499  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         500  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         501  +
        let svc = crate::operation_shape::ConstantQueryString::from_handler(handler);
         502  +
        let svc = self.model_plugin.apply(svc);
         503  +
        let svc =
         504  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         505  +
                .apply(svc);
         506  +
        let svc = self.http_plugin.apply(svc);
         507  +
        self.constant_query_string_custom(svc)
         508  +
    }
         509  +
         510  +
    /// Sets the [`ConstantQueryString`](crate::operation_shape::ConstantQueryString) operation.
         511  +
    ///
         512  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         513  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         514  +
    ///
         515  +
    /// # Example
         516  +
    ///
         517  +
    /// ```no_run
         518  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         519  +
    ///
         520  +
    /// use rest_json_http0x::{input, output, error};
         521  +
    ///
         522  +
    /// async fn handler(input: input::ConstantQueryStringInput) -> Result<output::ConstantQueryStringOutput, error::ConstantQueryStringError> {
         523  +
    ///     todo!()
         524  +
    /// }
         525  +
    ///
         526  +
    /// let config = RestJsonConfig::builder().build();
         527  +
    /// let svc = ::tower::util::service_fn(handler);
         528  +
    /// let app = RestJson::builder(config)
         529  +
    ///     .constant_query_string_service(svc)
         530  +
    ///     /* Set other handlers */
         531  +
    ///     .build()
         532  +
    ///     .unwrap();
         533  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         534  +
    /// ```
         535  +
    ///
         536  +
                    pub fn constant_query_string_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         537  +
                    where
         538  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ConstantQueryString, ServiceExtractors>,
         539  +
         540  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         541  +
                            RestJson<L>,
         542  +
                            crate::operation_shape::ConstantQueryString,
         543  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ConstantQueryString, S>
         544  +
                        >,
         545  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         546  +
                            RestJson<L>,
         547  +
                            crate::operation_shape::ConstantQueryString,
         548  +
                            ModelPl::Output
         549  +
                        >,
         550  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         551  +
                            RestJson<L>,
         552  +
                            crate::operation_shape::ConstantQueryString,
         553  +
                            <
         554  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         555  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         556  +
                                    RestJson<L>,
         557  +
                                    crate::operation_shape::ConstantQueryString,
         558  +
                                    ModelPl::Output
         559  +
                                >
         560  +
                            >::Output
         561  +
                        >,
         562  +
         563  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         564  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         565  +
         566  +
                    {
         567  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         568  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         569  +
        let svc = crate::operation_shape::ConstantQueryString::from_service(service);
         570  +
        let svc = self.model_plugin.apply(svc);
         571  +
        let svc =
         572  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         573  +
                .apply(svc);
         574  +
        let svc = self.http_plugin.apply(svc);
         575  +
        self.constant_query_string_custom(svc)
         576  +
    }
         577  +
         578  +
    /// Sets the [`ConstantQueryString`](crate::operation_shape::ConstantQueryString) to a custom [`Service`](tower::Service).
         579  +
    /// not constrained by the Smithy contract.
         580  +
    fn constant_query_string_custom<S>(mut self, svc: S) -> Self
         581  +
    where
         582  +
        S: ::tower::Service<
         583  +
                ::http::Request<Body>,
         584  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         585  +
                Error = ::std::convert::Infallible,
         586  +
            > + Clone
         587  +
            + Send
         588  +
            + 'static,
         589  +
        S::Future: Send + 'static,
         590  +
    {
         591  +
        self.constant_query_string =
         592  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         593  +
        self
         594  +
    }
         595  +
         596  +
    /// Sets the [`ContentTypeParameters`](crate::operation_shape::ContentTypeParameters) operation.
         597  +
    ///
         598  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         599  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         600  +
    ///
         601  +
    /// # Example
         602  +
    ///
         603  +
    /// ```no_run
         604  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         605  +
    ///
         606  +
    /// use rest_json_http0x::{input, output, error};
         607  +
    ///
         608  +
    /// async fn handler(input: input::ContentTypeParametersInput) -> output::ContentTypeParametersOutput {
         609  +
    ///     todo!()
         610  +
    /// }
         611  +
    ///
         612  +
    /// let config = RestJsonConfig::builder().build();
         613  +
    /// let app = RestJson::builder(config)
         614  +
    ///     .content_type_parameters(handler)
         615  +
    ///     /* Set other handlers */
         616  +
    ///     .build()
         617  +
    ///     .unwrap();
         618  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         619  +
    /// ```
         620  +
    ///
         621  +
                    pub fn content_type_parameters<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         622  +
                    where
         623  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ContentTypeParameters, HandlerExtractors>,
         624  +
         625  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         626  +
                            RestJson<L>,
         627  +
                            crate::operation_shape::ContentTypeParameters,
         628  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ContentTypeParameters, HandlerType>
         629  +
                        >,
         630  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         631  +
                            RestJson<L>,
         632  +
                            crate::operation_shape::ContentTypeParameters,
         633  +
                            ModelPl::Output
         634  +
                        >,
         635  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         636  +
                            RestJson<L>,
         637  +
                            crate::operation_shape::ContentTypeParameters,
         638  +
                            <
         639  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         640  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         641  +
                                    RestJson<L>,
         642  +
                                    crate::operation_shape::ContentTypeParameters,
         643  +
                                    ModelPl::Output
         644  +
                                >
         645  +
                            >::Output
         646  +
                        >,
         647  +
         648  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         649  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         650  +
         651  +
                    {
         652  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         653  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         654  +
        let svc = crate::operation_shape::ContentTypeParameters::from_handler(handler);
         655  +
        let svc = self.model_plugin.apply(svc);
         656  +
        let svc =
         657  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         658  +
                .apply(svc);
         659  +
        let svc = self.http_plugin.apply(svc);
         660  +
        self.content_type_parameters_custom(svc)
         661  +
    }
         662  +
         663  +
    /// Sets the [`ContentTypeParameters`](crate::operation_shape::ContentTypeParameters) operation.
         664  +
    ///
         665  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         666  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         667  +
    ///
         668  +
    /// # Example
         669  +
    ///
         670  +
    /// ```no_run
         671  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         672  +
    ///
         673  +
    /// use rest_json_http0x::{input, output, error};
         674  +
    ///
         675  +
    /// async fn handler(input: input::ContentTypeParametersInput) -> Result<output::ContentTypeParametersOutput, std::convert::Infallible> {
         676  +
    ///     todo!()
         677  +
    /// }
         678  +
    ///
         679  +
    /// let config = RestJsonConfig::builder().build();
         680  +
    /// let svc = ::tower::util::service_fn(handler);
         681  +
    /// let app = RestJson::builder(config)
         682  +
    ///     .content_type_parameters_service(svc)
         683  +
    ///     /* Set other handlers */
         684  +
    ///     .build()
         685  +
    ///     .unwrap();
         686  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         687  +
    /// ```
         688  +
    ///
         689  +
                    pub fn content_type_parameters_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         690  +
                    where
         691  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ContentTypeParameters, ServiceExtractors>,
         692  +
         693  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         694  +
                            RestJson<L>,
         695  +
                            crate::operation_shape::ContentTypeParameters,
         696  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ContentTypeParameters, S>
         697  +
                        >,
         698  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         699  +
                            RestJson<L>,
         700  +
                            crate::operation_shape::ContentTypeParameters,
         701  +
                            ModelPl::Output
         702  +
                        >,
         703  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         704  +
                            RestJson<L>,
         705  +
                            crate::operation_shape::ContentTypeParameters,
         706  +
                            <
         707  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         708  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         709  +
                                    RestJson<L>,
         710  +
                                    crate::operation_shape::ContentTypeParameters,
         711  +
                                    ModelPl::Output
         712  +
                                >
         713  +
                            >::Output
         714  +
                        >,
         715  +
         716  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         717  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         718  +
         719  +
                    {
         720  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         721  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         722  +
        let svc = crate::operation_shape::ContentTypeParameters::from_service(service);
         723  +
        let svc = self.model_plugin.apply(svc);
         724  +
        let svc =
         725  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         726  +
                .apply(svc);
         727  +
        let svc = self.http_plugin.apply(svc);
         728  +
        self.content_type_parameters_custom(svc)
         729  +
    }
         730  +
         731  +
    /// Sets the [`ContentTypeParameters`](crate::operation_shape::ContentTypeParameters) to a custom [`Service`](tower::Service).
         732  +
    /// not constrained by the Smithy contract.
         733  +
    fn content_type_parameters_custom<S>(mut self, svc: S) -> Self
         734  +
    where
         735  +
        S: ::tower::Service<
         736  +
                ::http::Request<Body>,
         737  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         738  +
                Error = ::std::convert::Infallible,
         739  +
            > + Clone
         740  +
            + Send
         741  +
            + 'static,
         742  +
        S::Future: Send + 'static,
         743  +
    {
         744  +
        self.content_type_parameters =
         745  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         746  +
        self
         747  +
    }
         748  +
         749  +
    /// Sets the [`DatetimeOffsets`](crate::operation_shape::DatetimeOffsets) operation.
         750  +
    ///
         751  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         752  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         753  +
    ///
         754  +
    /// # Example
         755  +
    ///
         756  +
    /// ```no_run
         757  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         758  +
    ///
         759  +
    /// use rest_json_http0x::{input, output, error};
         760  +
    ///
         761  +
    /// async fn handler(input: input::DatetimeOffsetsInput) -> output::DatetimeOffsetsOutput {
         762  +
    ///     todo!()
         763  +
    /// }
         764  +
    ///
         765  +
    /// let config = RestJsonConfig::builder().build();
         766  +
    /// let app = RestJson::builder(config)
         767  +
    ///     .datetime_offsets(handler)
         768  +
    ///     /* Set other handlers */
         769  +
    ///     .build()
         770  +
    ///     .unwrap();
         771  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         772  +
    /// ```
         773  +
    ///
         774  +
                    pub fn datetime_offsets<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         775  +
                    where
         776  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::DatetimeOffsets, HandlerExtractors>,
         777  +
         778  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         779  +
                            RestJson<L>,
         780  +
                            crate::operation_shape::DatetimeOffsets,
         781  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::DatetimeOffsets, HandlerType>
         782  +
                        >,
         783  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         784  +
                            RestJson<L>,
         785  +
                            crate::operation_shape::DatetimeOffsets,
         786  +
                            ModelPl::Output
         787  +
                        >,
         788  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         789  +
                            RestJson<L>,
         790  +
                            crate::operation_shape::DatetimeOffsets,
         791  +
                            <
         792  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         793  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         794  +
                                    RestJson<L>,
         795  +
                                    crate::operation_shape::DatetimeOffsets,
         796  +
                                    ModelPl::Output
         797  +
                                >
         798  +
                            >::Output
         799  +
                        >,
         800  +
         801  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         802  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         803  +
         804  +
                    {
         805  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         806  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         807  +
        let svc = crate::operation_shape::DatetimeOffsets::from_handler(handler);
         808  +
        let svc = self.model_plugin.apply(svc);
         809  +
        let svc =
         810  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         811  +
                .apply(svc);
         812  +
        let svc = self.http_plugin.apply(svc);
         813  +
        self.datetime_offsets_custom(svc)
         814  +
    }
         815  +
         816  +
    /// Sets the [`DatetimeOffsets`](crate::operation_shape::DatetimeOffsets) operation.
         817  +
    ///
         818  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         819  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         820  +
    ///
         821  +
    /// # Example
         822  +
    ///
         823  +
    /// ```no_run
         824  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         825  +
    ///
         826  +
    /// use rest_json_http0x::{input, output, error};
         827  +
    ///
         828  +
    /// async fn handler(input: input::DatetimeOffsetsInput) -> Result<output::DatetimeOffsetsOutput, std::convert::Infallible> {
         829  +
    ///     todo!()
         830  +
    /// }
         831  +
    ///
         832  +
    /// let config = RestJsonConfig::builder().build();
         833  +
    /// let svc = ::tower::util::service_fn(handler);
         834  +
    /// let app = RestJson::builder(config)
         835  +
    ///     .datetime_offsets_service(svc)
         836  +
    ///     /* Set other handlers */
         837  +
    ///     .build()
         838  +
    ///     .unwrap();
         839  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         840  +
    /// ```
         841  +
    ///
         842  +
                    pub fn datetime_offsets_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         843  +
                    where
         844  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::DatetimeOffsets, ServiceExtractors>,
         845  +
         846  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         847  +
                            RestJson<L>,
         848  +
                            crate::operation_shape::DatetimeOffsets,
         849  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::DatetimeOffsets, S>
         850  +
                        >,
         851  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         852  +
                            RestJson<L>,
         853  +
                            crate::operation_shape::DatetimeOffsets,
         854  +
                            ModelPl::Output
         855  +
                        >,
         856  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         857  +
                            RestJson<L>,
         858  +
                            crate::operation_shape::DatetimeOffsets,
         859  +
                            <
         860  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         861  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         862  +
                                    RestJson<L>,
         863  +
                                    crate::operation_shape::DatetimeOffsets,
         864  +
                                    ModelPl::Output
         865  +
                                >
         866  +
                            >::Output
         867  +
                        >,
         868  +
         869  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         870  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         871  +
         872  +
                    {
         873  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         874  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         875  +
        let svc = crate::operation_shape::DatetimeOffsets::from_service(service);
         876  +
        let svc = self.model_plugin.apply(svc);
         877  +
        let svc =
         878  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         879  +
                .apply(svc);
         880  +
        let svc = self.http_plugin.apply(svc);
         881  +
        self.datetime_offsets_custom(svc)
         882  +
    }
         883  +
         884  +
    /// Sets the [`DatetimeOffsets`](crate::operation_shape::DatetimeOffsets) to a custom [`Service`](tower::Service).
         885  +
    /// not constrained by the Smithy contract.
         886  +
    fn datetime_offsets_custom<S>(mut self, svc: S) -> Self
         887  +
    where
         888  +
        S: ::tower::Service<
         889  +
                ::http::Request<Body>,
         890  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         891  +
                Error = ::std::convert::Infallible,
         892  +
            > + Clone
         893  +
            + Send
         894  +
            + 'static,
         895  +
        S::Future: Send + 'static,
         896  +
    {
         897  +
        self.datetime_offsets = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         898  +
        self
         899  +
    }
         900  +
         901  +
    /// Sets the [`DocumentType`](crate::operation_shape::DocumentType) operation.
         902  +
    ///
         903  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         904  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         905  +
    ///
         906  +
    /// # Example
         907  +
    ///
         908  +
    /// ```no_run
         909  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         910  +
    ///
         911  +
    /// use rest_json_http0x::{input, output, error};
         912  +
    ///
         913  +
    /// async fn handler(input: input::DocumentTypeInput) -> output::DocumentTypeOutput {
         914  +
    ///     todo!()
         915  +
    /// }
         916  +
    ///
         917  +
    /// let config = RestJsonConfig::builder().build();
         918  +
    /// let app = RestJson::builder(config)
         919  +
    ///     .document_type(handler)
         920  +
    ///     /* Set other handlers */
         921  +
    ///     .build()
         922  +
    ///     .unwrap();
         923  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         924  +
    /// ```
         925  +
    ///
         926  +
                    pub fn document_type<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         927  +
                    where
         928  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::DocumentType, HandlerExtractors>,
         929  +
         930  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         931  +
                            RestJson<L>,
         932  +
                            crate::operation_shape::DocumentType,
         933  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::DocumentType, HandlerType>
         934  +
                        >,
         935  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         936  +
                            RestJson<L>,
         937  +
                            crate::operation_shape::DocumentType,
         938  +
                            ModelPl::Output
         939  +
                        >,
         940  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         941  +
                            RestJson<L>,
         942  +
                            crate::operation_shape::DocumentType,
         943  +
                            <
         944  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         945  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         946  +
                                    RestJson<L>,
         947  +
                                    crate::operation_shape::DocumentType,
         948  +
                                    ModelPl::Output
         949  +
                                >
         950  +
                            >::Output
         951  +
                        >,
         952  +
         953  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         954  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         955  +
         956  +
                    {
         957  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         958  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         959  +
        let svc = crate::operation_shape::DocumentType::from_handler(handler);
         960  +
        let svc = self.model_plugin.apply(svc);
         961  +
        let svc =
         962  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         963  +
                .apply(svc);
         964  +
        let svc = self.http_plugin.apply(svc);
         965  +
        self.document_type_custom(svc)
         966  +
    }
         967  +
         968  +
    /// Sets the [`DocumentType`](crate::operation_shape::DocumentType) operation.
         969  +
    ///
         970  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         971  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         972  +
    ///
         973  +
    /// # Example
         974  +
    ///
         975  +
    /// ```no_run
         976  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
         977  +
    ///
         978  +
    /// use rest_json_http0x::{input, output, error};
         979  +
    ///
         980  +
    /// async fn handler(input: input::DocumentTypeInput) -> Result<output::DocumentTypeOutput, std::convert::Infallible> {
         981  +
    ///     todo!()
         982  +
    /// }
         983  +
    ///
         984  +
    /// let config = RestJsonConfig::builder().build();
         985  +
    /// let svc = ::tower::util::service_fn(handler);
         986  +
    /// let app = RestJson::builder(config)
         987  +
    ///     .document_type_service(svc)
         988  +
    ///     /* Set other handlers */
         989  +
    ///     .build()
         990  +
    ///     .unwrap();
         991  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
         992  +
    /// ```
         993  +
    ///
         994  +
                    pub fn document_type_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         995  +
                    where
         996  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::DocumentType, ServiceExtractors>,
         997  +
         998  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         999  +
                            RestJson<L>,
        1000  +
                            crate::operation_shape::DocumentType,
        1001  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::DocumentType, S>
        1002  +
                        >,
        1003  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1004  +
                            RestJson<L>,
        1005  +
                            crate::operation_shape::DocumentType,
        1006  +
                            ModelPl::Output
        1007  +
                        >,
        1008  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1009  +
                            RestJson<L>,
        1010  +
                            crate::operation_shape::DocumentType,
        1011  +
                            <
        1012  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1013  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1014  +
                                    RestJson<L>,
        1015  +
                                    crate::operation_shape::DocumentType,
        1016  +
                                    ModelPl::Output
        1017  +
                                >
        1018  +
                            >::Output
        1019  +
                        >,
        1020  +
        1021  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1022  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1023  +
        1024  +
                    {
        1025  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1026  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1027  +
        let svc = crate::operation_shape::DocumentType::from_service(service);
        1028  +
        let svc = self.model_plugin.apply(svc);
        1029  +
        let svc =
        1030  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1031  +
                .apply(svc);
        1032  +
        let svc = self.http_plugin.apply(svc);
        1033  +
        self.document_type_custom(svc)
        1034  +
    }
        1035  +
        1036  +
    /// Sets the [`DocumentType`](crate::operation_shape::DocumentType) to a custom [`Service`](tower::Service).
        1037  +
    /// not constrained by the Smithy contract.
        1038  +
    fn document_type_custom<S>(mut self, svc: S) -> Self
        1039  +
    where
        1040  +
        S: ::tower::Service<
        1041  +
                ::http::Request<Body>,
        1042  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1043  +
                Error = ::std::convert::Infallible,
        1044  +
            > + Clone
        1045  +
            + Send
        1046  +
            + 'static,
        1047  +
        S::Future: Send + 'static,
        1048  +
    {
        1049  +
        self.document_type = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1050  +
        self
        1051  +
    }
        1052  +
        1053  +
    /// Sets the [`DocumentTypeAsMapValue`](crate::operation_shape::DocumentTypeAsMapValue) operation.
        1054  +
    ///
        1055  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1056  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1057  +
    ///
        1058  +
    /// # Example
        1059  +
    ///
        1060  +
    /// ```no_run
        1061  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1062  +
    ///
        1063  +
    /// use rest_json_http0x::{input, output, error};
        1064  +
    ///
        1065  +
    /// async fn handler(input: input::DocumentTypeAsMapValueInput) -> output::DocumentTypeAsMapValueOutput {
        1066  +
    ///     todo!()
        1067  +
    /// }
        1068  +
    ///
        1069  +
    /// let config = RestJsonConfig::builder().build();
        1070  +
    /// let app = RestJson::builder(config)
        1071  +
    ///     .document_type_as_map_value(handler)
        1072  +
    ///     /* Set other handlers */
        1073  +
    ///     .build()
        1074  +
    ///     .unwrap();
        1075  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1076  +
    /// ```
        1077  +
    ///
        1078  +
                    pub fn document_type_as_map_value<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1079  +
                    where
        1080  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::DocumentTypeAsMapValue, HandlerExtractors>,
        1081  +
        1082  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1083  +
                            RestJson<L>,
        1084  +
                            crate::operation_shape::DocumentTypeAsMapValue,
        1085  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::DocumentTypeAsMapValue, HandlerType>
        1086  +
                        >,
        1087  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1088  +
                            RestJson<L>,
        1089  +
                            crate::operation_shape::DocumentTypeAsMapValue,
        1090  +
                            ModelPl::Output
        1091  +
                        >,
        1092  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1093  +
                            RestJson<L>,
        1094  +
                            crate::operation_shape::DocumentTypeAsMapValue,
        1095  +
                            <
        1096  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1097  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1098  +
                                    RestJson<L>,
        1099  +
                                    crate::operation_shape::DocumentTypeAsMapValue,
        1100  +
                                    ModelPl::Output
        1101  +
                                >
        1102  +
                            >::Output
        1103  +
                        >,
        1104  +
        1105  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1106  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1107  +
        1108  +
                    {
        1109  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1110  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1111  +
        let svc = crate::operation_shape::DocumentTypeAsMapValue::from_handler(handler);
        1112  +
        let svc = self.model_plugin.apply(svc);
        1113  +
        let svc =
        1114  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1115  +
                .apply(svc);
        1116  +
        let svc = self.http_plugin.apply(svc);
        1117  +
        self.document_type_as_map_value_custom(svc)
        1118  +
    }
        1119  +
        1120  +
    /// Sets the [`DocumentTypeAsMapValue`](crate::operation_shape::DocumentTypeAsMapValue) operation.
        1121  +
    ///
        1122  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1123  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1124  +
    ///
        1125  +
    /// # Example
        1126  +
    ///
        1127  +
    /// ```no_run
        1128  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1129  +
    ///
        1130  +
    /// use rest_json_http0x::{input, output, error};
        1131  +
    ///
        1132  +
    /// async fn handler(input: input::DocumentTypeAsMapValueInput) -> Result<output::DocumentTypeAsMapValueOutput, std::convert::Infallible> {
        1133  +
    ///     todo!()
        1134  +
    /// }
        1135  +
    ///
        1136  +
    /// let config = RestJsonConfig::builder().build();
        1137  +
    /// let svc = ::tower::util::service_fn(handler);
        1138  +
    /// let app = RestJson::builder(config)
        1139  +
    ///     .document_type_as_map_value_service(svc)
        1140  +
    ///     /* Set other handlers */
        1141  +
    ///     .build()
        1142  +
    ///     .unwrap();
        1143  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1144  +
    /// ```
        1145  +
    ///
        1146  +
                    pub fn document_type_as_map_value_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1147  +
                    where
        1148  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::DocumentTypeAsMapValue, ServiceExtractors>,
        1149  +
        1150  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1151  +
                            RestJson<L>,
        1152  +
                            crate::operation_shape::DocumentTypeAsMapValue,
        1153  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::DocumentTypeAsMapValue, S>
        1154  +
                        >,
        1155  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1156  +
                            RestJson<L>,
        1157  +
                            crate::operation_shape::DocumentTypeAsMapValue,
        1158  +
                            ModelPl::Output
        1159  +
                        >,
        1160  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1161  +
                            RestJson<L>,
        1162  +
                            crate::operation_shape::DocumentTypeAsMapValue,
        1163  +
                            <
        1164  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1165  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1166  +
                                    RestJson<L>,
        1167  +
                                    crate::operation_shape::DocumentTypeAsMapValue,
        1168  +
                                    ModelPl::Output
        1169  +
                                >
        1170  +
                            >::Output
        1171  +
                        >,
        1172  +
        1173  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1174  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1175  +
        1176  +
                    {
        1177  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1178  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1179  +
        let svc = crate::operation_shape::DocumentTypeAsMapValue::from_service(service);
        1180  +
        let svc = self.model_plugin.apply(svc);
        1181  +
        let svc =
        1182  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1183  +
                .apply(svc);
        1184  +
        let svc = self.http_plugin.apply(svc);
        1185  +
        self.document_type_as_map_value_custom(svc)
        1186  +
    }
        1187  +
        1188  +
    /// Sets the [`DocumentTypeAsMapValue`](crate::operation_shape::DocumentTypeAsMapValue) to a custom [`Service`](tower::Service).
        1189  +
    /// not constrained by the Smithy contract.
        1190  +
    fn document_type_as_map_value_custom<S>(mut self, svc: S) -> Self
        1191  +
    where
        1192  +
        S: ::tower::Service<
        1193  +
                ::http::Request<Body>,
        1194  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1195  +
                Error = ::std::convert::Infallible,
        1196  +
            > + Clone
        1197  +
            + Send
        1198  +
            + 'static,
        1199  +
        S::Future: Send + 'static,
        1200  +
    {
        1201  +
        self.document_type_as_map_value =
        1202  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1203  +
        self
        1204  +
    }
        1205  +
        1206  +
    /// Sets the [`DocumentTypeAsPayload`](crate::operation_shape::DocumentTypeAsPayload) operation.
        1207  +
    ///
        1208  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1209  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1210  +
    ///
        1211  +
    /// # Example
        1212  +
    ///
        1213  +
    /// ```no_run
        1214  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1215  +
    ///
        1216  +
    /// use rest_json_http0x::{input, output, error};
        1217  +
    ///
        1218  +
    /// async fn handler(input: input::DocumentTypeAsPayloadInput) -> output::DocumentTypeAsPayloadOutput {
        1219  +
    ///     todo!()
        1220  +
    /// }
        1221  +
    ///
        1222  +
    /// let config = RestJsonConfig::builder().build();
        1223  +
    /// let app = RestJson::builder(config)
        1224  +
    ///     .document_type_as_payload(handler)
        1225  +
    ///     /* Set other handlers */
        1226  +
    ///     .build()
        1227  +
    ///     .unwrap();
        1228  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1229  +
    /// ```
        1230  +
    ///
        1231  +
                    pub fn document_type_as_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1232  +
                    where
        1233  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::DocumentTypeAsPayload, HandlerExtractors>,
        1234  +
        1235  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1236  +
                            RestJson<L>,
        1237  +
                            crate::operation_shape::DocumentTypeAsPayload,
        1238  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::DocumentTypeAsPayload, HandlerType>
        1239  +
                        >,
        1240  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1241  +
                            RestJson<L>,
        1242  +
                            crate::operation_shape::DocumentTypeAsPayload,
        1243  +
                            ModelPl::Output
        1244  +
                        >,
        1245  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1246  +
                            RestJson<L>,
        1247  +
                            crate::operation_shape::DocumentTypeAsPayload,
        1248  +
                            <
        1249  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1250  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1251  +
                                    RestJson<L>,
        1252  +
                                    crate::operation_shape::DocumentTypeAsPayload,
        1253  +
                                    ModelPl::Output
        1254  +
                                >
        1255  +
                            >::Output
        1256  +
                        >,
        1257  +
        1258  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1259  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1260  +
        1261  +
                    {
        1262  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1263  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1264  +
        let svc = crate::operation_shape::DocumentTypeAsPayload::from_handler(handler);
        1265  +
        let svc = self.model_plugin.apply(svc);
        1266  +
        let svc =
        1267  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1268  +
                .apply(svc);
        1269  +
        let svc = self.http_plugin.apply(svc);
        1270  +
        self.document_type_as_payload_custom(svc)
        1271  +
    }
        1272  +
        1273  +
    /// Sets the [`DocumentTypeAsPayload`](crate::operation_shape::DocumentTypeAsPayload) operation.
        1274  +
    ///
        1275  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1276  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1277  +
    ///
        1278  +
    /// # Example
        1279  +
    ///
        1280  +
    /// ```no_run
        1281  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1282  +
    ///
        1283  +
    /// use rest_json_http0x::{input, output, error};
        1284  +
    ///
        1285  +
    /// async fn handler(input: input::DocumentTypeAsPayloadInput) -> Result<output::DocumentTypeAsPayloadOutput, std::convert::Infallible> {
        1286  +
    ///     todo!()
        1287  +
    /// }
        1288  +
    ///
        1289  +
    /// let config = RestJsonConfig::builder().build();
        1290  +
    /// let svc = ::tower::util::service_fn(handler);
        1291  +
    /// let app = RestJson::builder(config)
        1292  +
    ///     .document_type_as_payload_service(svc)
        1293  +
    ///     /* Set other handlers */
        1294  +
    ///     .build()
        1295  +
    ///     .unwrap();
        1296  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1297  +
    /// ```
        1298  +
    ///
        1299  +
                    pub fn document_type_as_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1300  +
                    where
        1301  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::DocumentTypeAsPayload, ServiceExtractors>,
        1302  +
        1303  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1304  +
                            RestJson<L>,
        1305  +
                            crate::operation_shape::DocumentTypeAsPayload,
        1306  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::DocumentTypeAsPayload, S>
        1307  +
                        >,
        1308  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1309  +
                            RestJson<L>,
        1310  +
                            crate::operation_shape::DocumentTypeAsPayload,
        1311  +
                            ModelPl::Output
        1312  +
                        >,
        1313  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1314  +
                            RestJson<L>,
        1315  +
                            crate::operation_shape::DocumentTypeAsPayload,
        1316  +
                            <
        1317  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1318  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1319  +
                                    RestJson<L>,
        1320  +
                                    crate::operation_shape::DocumentTypeAsPayload,
        1321  +
                                    ModelPl::Output
        1322  +
                                >
        1323  +
                            >::Output
        1324  +
                        >,
        1325  +
        1326  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1327  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1328  +
        1329  +
                    {
        1330  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1331  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1332  +
        let svc = crate::operation_shape::DocumentTypeAsPayload::from_service(service);
        1333  +
        let svc = self.model_plugin.apply(svc);
        1334  +
        let svc =
        1335  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1336  +
                .apply(svc);
        1337  +
        let svc = self.http_plugin.apply(svc);
        1338  +
        self.document_type_as_payload_custom(svc)
        1339  +
    }
        1340  +
        1341  +
    /// Sets the [`DocumentTypeAsPayload`](crate::operation_shape::DocumentTypeAsPayload) to a custom [`Service`](tower::Service).
        1342  +
    /// not constrained by the Smithy contract.
        1343  +
    fn document_type_as_payload_custom<S>(mut self, svc: S) -> Self
        1344  +
    where
        1345  +
        S: ::tower::Service<
        1346  +
                ::http::Request<Body>,
        1347  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1348  +
                Error = ::std::convert::Infallible,
        1349  +
            > + Clone
        1350  +
            + Send
        1351  +
            + 'static,
        1352  +
        S::Future: Send + 'static,
        1353  +
    {
        1354  +
        self.document_type_as_payload =
        1355  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1356  +
        self
        1357  +
    }
        1358  +
        1359  +
    /// Sets the [`EmptyInputAndEmptyOutput`](crate::operation_shape::EmptyInputAndEmptyOutput) operation.
        1360  +
    ///
        1361  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1362  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1363  +
    ///
        1364  +
    /// # Example
        1365  +
    ///
        1366  +
    /// ```no_run
        1367  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1368  +
    ///
        1369  +
    /// use rest_json_http0x::{input, output, error};
        1370  +
    ///
        1371  +
    /// async fn handler(input: input::EmptyInputAndEmptyOutputInput) -> output::EmptyInputAndEmptyOutputOutput {
        1372  +
    ///     todo!()
        1373  +
    /// }
        1374  +
    ///
        1375  +
    /// let config = RestJsonConfig::builder().build();
        1376  +
    /// let app = RestJson::builder(config)
        1377  +
    ///     .empty_input_and_empty_output(handler)
        1378  +
    ///     /* Set other handlers */
        1379  +
    ///     .build()
        1380  +
    ///     .unwrap();
        1381  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1382  +
    /// ```
        1383  +
    ///
        1384  +
                    pub fn empty_input_and_empty_output<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1385  +
                    where
        1386  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EmptyInputAndEmptyOutput, HandlerExtractors>,
        1387  +
        1388  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1389  +
                            RestJson<L>,
        1390  +
                            crate::operation_shape::EmptyInputAndEmptyOutput,
        1391  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EmptyInputAndEmptyOutput, HandlerType>
        1392  +
                        >,
        1393  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1394  +
                            RestJson<L>,
        1395  +
                            crate::operation_shape::EmptyInputAndEmptyOutput,
        1396  +
                            ModelPl::Output
        1397  +
                        >,
        1398  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1399  +
                            RestJson<L>,
        1400  +
                            crate::operation_shape::EmptyInputAndEmptyOutput,
        1401  +
                            <
        1402  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1403  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1404  +
                                    RestJson<L>,
        1405  +
                                    crate::operation_shape::EmptyInputAndEmptyOutput,
        1406  +
                                    ModelPl::Output
        1407  +
                                >
        1408  +
                            >::Output
        1409  +
                        >,
        1410  +
        1411  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1412  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1413  +
        1414  +
                    {
        1415  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1416  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1417  +
        let svc = crate::operation_shape::EmptyInputAndEmptyOutput::from_handler(handler);
        1418  +
        let svc = self.model_plugin.apply(svc);
        1419  +
        let svc =
        1420  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1421  +
                .apply(svc);
        1422  +
        let svc = self.http_plugin.apply(svc);
        1423  +
        self.empty_input_and_empty_output_custom(svc)
        1424  +
    }
        1425  +
        1426  +
    /// Sets the [`EmptyInputAndEmptyOutput`](crate::operation_shape::EmptyInputAndEmptyOutput) operation.
        1427  +
    ///
        1428  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1429  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1430  +
    ///
        1431  +
    /// # Example
        1432  +
    ///
        1433  +
    /// ```no_run
        1434  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1435  +
    ///
        1436  +
    /// use rest_json_http0x::{input, output, error};
        1437  +
    ///
        1438  +
    /// async fn handler(input: input::EmptyInputAndEmptyOutputInput) -> Result<output::EmptyInputAndEmptyOutputOutput, std::convert::Infallible> {
        1439  +
    ///     todo!()
        1440  +
    /// }
        1441  +
    ///
        1442  +
    /// let config = RestJsonConfig::builder().build();
        1443  +
    /// let svc = ::tower::util::service_fn(handler);
        1444  +
    /// let app = RestJson::builder(config)
        1445  +
    ///     .empty_input_and_empty_output_service(svc)
        1446  +
    ///     /* Set other handlers */
        1447  +
    ///     .build()
        1448  +
    ///     .unwrap();
        1449  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1450  +
    /// ```
        1451  +
    ///
        1452  +
                    pub fn empty_input_and_empty_output_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1453  +
                    where
        1454  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EmptyInputAndEmptyOutput, ServiceExtractors>,
        1455  +
        1456  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1457  +
                            RestJson<L>,
        1458  +
                            crate::operation_shape::EmptyInputAndEmptyOutput,
        1459  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EmptyInputAndEmptyOutput, S>
        1460  +
                        >,
        1461  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1462  +
                            RestJson<L>,
        1463  +
                            crate::operation_shape::EmptyInputAndEmptyOutput,
        1464  +
                            ModelPl::Output
        1465  +
                        >,
        1466  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1467  +
                            RestJson<L>,
        1468  +
                            crate::operation_shape::EmptyInputAndEmptyOutput,
        1469  +
                            <
        1470  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1471  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1472  +
                                    RestJson<L>,
        1473  +
                                    crate::operation_shape::EmptyInputAndEmptyOutput,
        1474  +
                                    ModelPl::Output
        1475  +
                                >
        1476  +
                            >::Output
        1477  +
                        >,
        1478  +
        1479  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1480  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1481  +
        1482  +
                    {
        1483  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1484  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1485  +
        let svc = crate::operation_shape::EmptyInputAndEmptyOutput::from_service(service);
        1486  +
        let svc = self.model_plugin.apply(svc);
        1487  +
        let svc =
        1488  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1489  +
                .apply(svc);
        1490  +
        let svc = self.http_plugin.apply(svc);
        1491  +
        self.empty_input_and_empty_output_custom(svc)
        1492  +
    }
        1493  +
        1494  +
    /// Sets the [`EmptyInputAndEmptyOutput`](crate::operation_shape::EmptyInputAndEmptyOutput) to a custom [`Service`](tower::Service).
        1495  +
    /// not constrained by the Smithy contract.
        1496  +
    fn empty_input_and_empty_output_custom<S>(mut self, svc: S) -> Self
        1497  +
    where
        1498  +
        S: ::tower::Service<
        1499  +
                ::http::Request<Body>,
        1500  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1501  +
                Error = ::std::convert::Infallible,
        1502  +
            > + Clone
        1503  +
            + Send
        1504  +
            + 'static,
        1505  +
        S::Future: Send + 'static,
        1506  +
    {
        1507  +
        self.empty_input_and_empty_output =
        1508  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1509  +
        self
        1510  +
    }
        1511  +
        1512  +
    /// Sets the [`EndpointOperation`](crate::operation_shape::EndpointOperation) operation.
        1513  +
    ///
        1514  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1515  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1516  +
    ///
        1517  +
    /// # Example
        1518  +
    ///
        1519  +
    /// ```no_run
        1520  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1521  +
    ///
        1522  +
    /// use rest_json_http0x::{input, output, error};
        1523  +
    ///
        1524  +
    /// async fn handler(input: input::EndpointOperationInput) -> output::EndpointOperationOutput {
        1525  +
    ///     todo!()
        1526  +
    /// }
        1527  +
    ///
        1528  +
    /// let config = RestJsonConfig::builder().build();
        1529  +
    /// let app = RestJson::builder(config)
        1530  +
    ///     .endpoint_operation(handler)
        1531  +
    ///     /* Set other handlers */
        1532  +
    ///     .build()
        1533  +
    ///     .unwrap();
        1534  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1535  +
    /// ```
        1536  +
    ///
        1537  +
                    pub fn endpoint_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1538  +
                    where
        1539  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EndpointOperation, HandlerExtractors>,
        1540  +
        1541  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1542  +
                            RestJson<L>,
        1543  +
                            crate::operation_shape::EndpointOperation,
        1544  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EndpointOperation, HandlerType>
        1545  +
                        >,
        1546  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1547  +
                            RestJson<L>,
        1548  +
                            crate::operation_shape::EndpointOperation,
        1549  +
                            ModelPl::Output
        1550  +
                        >,
        1551  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1552  +
                            RestJson<L>,
        1553  +
                            crate::operation_shape::EndpointOperation,
        1554  +
                            <
        1555  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1556  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1557  +
                                    RestJson<L>,
        1558  +
                                    crate::operation_shape::EndpointOperation,
        1559  +
                                    ModelPl::Output
        1560  +
                                >
        1561  +
                            >::Output
        1562  +
                        >,
        1563  +
        1564  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1565  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1566  +
        1567  +
                    {
        1568  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1569  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1570  +
        let svc = crate::operation_shape::EndpointOperation::from_handler(handler);
        1571  +
        let svc = self.model_plugin.apply(svc);
        1572  +
        let svc =
        1573  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1574  +
                .apply(svc);
        1575  +
        let svc = self.http_plugin.apply(svc);
        1576  +
        self.endpoint_operation_custom(svc)
        1577  +
    }
        1578  +
        1579  +
    /// Sets the [`EndpointOperation`](crate::operation_shape::EndpointOperation) operation.
        1580  +
    ///
        1581  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1582  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1583  +
    ///
        1584  +
    /// # Example
        1585  +
    ///
        1586  +
    /// ```no_run
        1587  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1588  +
    ///
        1589  +
    /// use rest_json_http0x::{input, output, error};
        1590  +
    ///
        1591  +
    /// async fn handler(input: input::EndpointOperationInput) -> Result<output::EndpointOperationOutput, std::convert::Infallible> {
        1592  +
    ///     todo!()
        1593  +
    /// }
        1594  +
    ///
        1595  +
    /// let config = RestJsonConfig::builder().build();
        1596  +
    /// let svc = ::tower::util::service_fn(handler);
        1597  +
    /// let app = RestJson::builder(config)
        1598  +
    ///     .endpoint_operation_service(svc)
        1599  +
    ///     /* Set other handlers */
        1600  +
    ///     .build()
        1601  +
    ///     .unwrap();
        1602  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1603  +
    /// ```
        1604  +
    ///
        1605  +
                    pub fn endpoint_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1606  +
                    where
        1607  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EndpointOperation, ServiceExtractors>,
        1608  +
        1609  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1610  +
                            RestJson<L>,
        1611  +
                            crate::operation_shape::EndpointOperation,
        1612  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EndpointOperation, S>
        1613  +
                        >,
        1614  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1615  +
                            RestJson<L>,
        1616  +
                            crate::operation_shape::EndpointOperation,
        1617  +
                            ModelPl::Output
        1618  +
                        >,
        1619  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1620  +
                            RestJson<L>,
        1621  +
                            crate::operation_shape::EndpointOperation,
        1622  +
                            <
        1623  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1624  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1625  +
                                    RestJson<L>,
        1626  +
                                    crate::operation_shape::EndpointOperation,
        1627  +
                                    ModelPl::Output
        1628  +
                                >
        1629  +
                            >::Output
        1630  +
                        >,
        1631  +
        1632  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1633  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1634  +
        1635  +
                    {
        1636  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1637  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1638  +
        let svc = crate::operation_shape::EndpointOperation::from_service(service);
        1639  +
        let svc = self.model_plugin.apply(svc);
        1640  +
        let svc =
        1641  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1642  +
                .apply(svc);
        1643  +
        let svc = self.http_plugin.apply(svc);
        1644  +
        self.endpoint_operation_custom(svc)
        1645  +
    }
        1646  +
        1647  +
    /// Sets the [`EndpointOperation`](crate::operation_shape::EndpointOperation) to a custom [`Service`](tower::Service).
        1648  +
    /// not constrained by the Smithy contract.
        1649  +
    fn endpoint_operation_custom<S>(mut self, svc: S) -> Self
        1650  +
    where
        1651  +
        S: ::tower::Service<
        1652  +
                ::http::Request<Body>,
        1653  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1654  +
                Error = ::std::convert::Infallible,
        1655  +
            > + Clone
        1656  +
            + Send
        1657  +
            + 'static,
        1658  +
        S::Future: Send + 'static,
        1659  +
    {
        1660  +
        self.endpoint_operation = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1661  +
        self
        1662  +
    }
        1663  +
        1664  +
    /// Sets the [`EndpointWithHostLabelOperation`](crate::operation_shape::EndpointWithHostLabelOperation) operation.
        1665  +
    ///
        1666  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1667  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1668  +
    ///
        1669  +
    /// # Example
        1670  +
    ///
        1671  +
    /// ```no_run
        1672  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1673  +
    ///
        1674  +
    /// use rest_json_http0x::{input, output, error};
        1675  +
    ///
        1676  +
    /// async fn handler(input: input::EndpointWithHostLabelOperationInput) -> Result<output::EndpointWithHostLabelOperationOutput, error::EndpointWithHostLabelOperationError> {
        1677  +
    ///     todo!()
        1678  +
    /// }
        1679  +
    ///
        1680  +
    /// let config = RestJsonConfig::builder().build();
        1681  +
    /// let app = RestJson::builder(config)
        1682  +
    ///     .endpoint_with_host_label_operation(handler)
        1683  +
    ///     /* Set other handlers */
        1684  +
    ///     .build()
        1685  +
    ///     .unwrap();
        1686  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1687  +
    /// ```
        1688  +
    ///
        1689  +
                    pub fn endpoint_with_host_label_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1690  +
                    where
        1691  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EndpointWithHostLabelOperation, HandlerExtractors>,
        1692  +
        1693  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1694  +
                            RestJson<L>,
        1695  +
                            crate::operation_shape::EndpointWithHostLabelOperation,
        1696  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EndpointWithHostLabelOperation, HandlerType>
        1697  +
                        >,
        1698  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1699  +
                            RestJson<L>,
        1700  +
                            crate::operation_shape::EndpointWithHostLabelOperation,
        1701  +
                            ModelPl::Output
        1702  +
                        >,
        1703  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1704  +
                            RestJson<L>,
        1705  +
                            crate::operation_shape::EndpointWithHostLabelOperation,
        1706  +
                            <
        1707  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1708  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1709  +
                                    RestJson<L>,
        1710  +
                                    crate::operation_shape::EndpointWithHostLabelOperation,
        1711  +
                                    ModelPl::Output
        1712  +
                                >
        1713  +
                            >::Output
        1714  +
                        >,
        1715  +
        1716  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1717  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1718  +
        1719  +
                    {
        1720  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1721  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1722  +
        let svc = crate::operation_shape::EndpointWithHostLabelOperation::from_handler(handler);
        1723  +
        let svc = self.model_plugin.apply(svc);
        1724  +
        let svc =
        1725  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1726  +
                .apply(svc);
        1727  +
        let svc = self.http_plugin.apply(svc);
        1728  +
        self.endpoint_with_host_label_operation_custom(svc)
        1729  +
    }
        1730  +
        1731  +
    /// Sets the [`EndpointWithHostLabelOperation`](crate::operation_shape::EndpointWithHostLabelOperation) operation.
        1732  +
    ///
        1733  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1734  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1735  +
    ///
        1736  +
    /// # Example
        1737  +
    ///
        1738  +
    /// ```no_run
        1739  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1740  +
    ///
        1741  +
    /// use rest_json_http0x::{input, output, error};
        1742  +
    ///
        1743  +
    /// async fn handler(input: input::EndpointWithHostLabelOperationInput) -> Result<output::EndpointWithHostLabelOperationOutput, error::EndpointWithHostLabelOperationError> {
        1744  +
    ///     todo!()
        1745  +
    /// }
        1746  +
    ///
        1747  +
    /// let config = RestJsonConfig::builder().build();
        1748  +
    /// let svc = ::tower::util::service_fn(handler);
        1749  +
    /// let app = RestJson::builder(config)
        1750  +
    ///     .endpoint_with_host_label_operation_service(svc)
        1751  +
    ///     /* Set other handlers */
        1752  +
    ///     .build()
        1753  +
    ///     .unwrap();
        1754  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1755  +
    /// ```
        1756  +
    ///
        1757  +
                    pub fn endpoint_with_host_label_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1758  +
                    where
        1759  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EndpointWithHostLabelOperation, ServiceExtractors>,
        1760  +
        1761  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1762  +
                            RestJson<L>,
        1763  +
                            crate::operation_shape::EndpointWithHostLabelOperation,
        1764  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EndpointWithHostLabelOperation, S>
        1765  +
                        >,
        1766  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1767  +
                            RestJson<L>,
        1768  +
                            crate::operation_shape::EndpointWithHostLabelOperation,
        1769  +
                            ModelPl::Output
        1770  +
                        >,
        1771  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1772  +
                            RestJson<L>,
        1773  +
                            crate::operation_shape::EndpointWithHostLabelOperation,
        1774  +
                            <
        1775  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1776  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1777  +
                                    RestJson<L>,
        1778  +
                                    crate::operation_shape::EndpointWithHostLabelOperation,
        1779  +
                                    ModelPl::Output
        1780  +
                                >
        1781  +
                            >::Output
        1782  +
                        >,
        1783  +
        1784  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1785  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1786  +
        1787  +
                    {
        1788  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1789  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1790  +
        let svc = crate::operation_shape::EndpointWithHostLabelOperation::from_service(service);
        1791  +
        let svc = self.model_plugin.apply(svc);
        1792  +
        let svc =
        1793  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1794  +
                .apply(svc);
        1795  +
        let svc = self.http_plugin.apply(svc);
        1796  +
        self.endpoint_with_host_label_operation_custom(svc)
        1797  +
    }
        1798  +
        1799  +
    /// Sets the [`EndpointWithHostLabelOperation`](crate::operation_shape::EndpointWithHostLabelOperation) to a custom [`Service`](tower::Service).
        1800  +
    /// not constrained by the Smithy contract.
        1801  +
    fn endpoint_with_host_label_operation_custom<S>(mut self, svc: S) -> Self
        1802  +
    where
        1803  +
        S: ::tower::Service<
        1804  +
                ::http::Request<Body>,
        1805  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1806  +
                Error = ::std::convert::Infallible,
        1807  +
            > + Clone
        1808  +
            + Send
        1809  +
            + 'static,
        1810  +
        S::Future: Send + 'static,
        1811  +
    {
        1812  +
        self.endpoint_with_host_label_operation =
        1813  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1814  +
        self
        1815  +
    }
        1816  +
        1817  +
    /// Sets the [`FractionalSeconds`](crate::operation_shape::FractionalSeconds) operation.
        1818  +
    ///
        1819  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1820  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1821  +
    ///
        1822  +
    /// # Example
        1823  +
    ///
        1824  +
    /// ```no_run
        1825  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1826  +
    ///
        1827  +
    /// use rest_json_http0x::{input, output, error};
        1828  +
    ///
        1829  +
    /// async fn handler(input: input::FractionalSecondsInput) -> output::FractionalSecondsOutput {
        1830  +
    ///     todo!()
        1831  +
    /// }
        1832  +
    ///
        1833  +
    /// let config = RestJsonConfig::builder().build();
        1834  +
    /// let app = RestJson::builder(config)
        1835  +
    ///     .fractional_seconds(handler)
        1836  +
    ///     /* Set other handlers */
        1837  +
    ///     .build()
        1838  +
    ///     .unwrap();
        1839  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1840  +
    /// ```
        1841  +
    ///
        1842  +
                    pub fn fractional_seconds<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1843  +
                    where
        1844  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::FractionalSeconds, HandlerExtractors>,
        1845  +
        1846  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1847  +
                            RestJson<L>,
        1848  +
                            crate::operation_shape::FractionalSeconds,
        1849  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::FractionalSeconds, HandlerType>
        1850  +
                        >,
        1851  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1852  +
                            RestJson<L>,
        1853  +
                            crate::operation_shape::FractionalSeconds,
        1854  +
                            ModelPl::Output
        1855  +
                        >,
        1856  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1857  +
                            RestJson<L>,
        1858  +
                            crate::operation_shape::FractionalSeconds,
        1859  +
                            <
        1860  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1861  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1862  +
                                    RestJson<L>,
        1863  +
                                    crate::operation_shape::FractionalSeconds,
        1864  +
                                    ModelPl::Output
        1865  +
                                >
        1866  +
                            >::Output
        1867  +
                        >,
        1868  +
        1869  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1870  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1871  +
        1872  +
                    {
        1873  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1874  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1875  +
        let svc = crate::operation_shape::FractionalSeconds::from_handler(handler);
        1876  +
        let svc = self.model_plugin.apply(svc);
        1877  +
        let svc =
        1878  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1879  +
                .apply(svc);
        1880  +
        let svc = self.http_plugin.apply(svc);
        1881  +
        self.fractional_seconds_custom(svc)
        1882  +
    }
        1883  +
        1884  +
    /// Sets the [`FractionalSeconds`](crate::operation_shape::FractionalSeconds) operation.
        1885  +
    ///
        1886  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1887  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1888  +
    ///
        1889  +
    /// # Example
        1890  +
    ///
        1891  +
    /// ```no_run
        1892  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1893  +
    ///
        1894  +
    /// use rest_json_http0x::{input, output, error};
        1895  +
    ///
        1896  +
    /// async fn handler(input: input::FractionalSecondsInput) -> Result<output::FractionalSecondsOutput, std::convert::Infallible> {
        1897  +
    ///     todo!()
        1898  +
    /// }
        1899  +
    ///
        1900  +
    /// let config = RestJsonConfig::builder().build();
        1901  +
    /// let svc = ::tower::util::service_fn(handler);
        1902  +
    /// let app = RestJson::builder(config)
        1903  +
    ///     .fractional_seconds_service(svc)
        1904  +
    ///     /* Set other handlers */
        1905  +
    ///     .build()
        1906  +
    ///     .unwrap();
        1907  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1908  +
    /// ```
        1909  +
    ///
        1910  +
                    pub fn fractional_seconds_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1911  +
                    where
        1912  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::FractionalSeconds, ServiceExtractors>,
        1913  +
        1914  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1915  +
                            RestJson<L>,
        1916  +
                            crate::operation_shape::FractionalSeconds,
        1917  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::FractionalSeconds, S>
        1918  +
                        >,
        1919  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1920  +
                            RestJson<L>,
        1921  +
                            crate::operation_shape::FractionalSeconds,
        1922  +
                            ModelPl::Output
        1923  +
                        >,
        1924  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1925  +
                            RestJson<L>,
        1926  +
                            crate::operation_shape::FractionalSeconds,
        1927  +
                            <
        1928  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1929  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1930  +
                                    RestJson<L>,
        1931  +
                                    crate::operation_shape::FractionalSeconds,
        1932  +
                                    ModelPl::Output
        1933  +
                                >
        1934  +
                            >::Output
        1935  +
                        >,
        1936  +
        1937  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1938  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1939  +
        1940  +
                    {
        1941  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1942  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1943  +
        let svc = crate::operation_shape::FractionalSeconds::from_service(service);
        1944  +
        let svc = self.model_plugin.apply(svc);
        1945  +
        let svc =
        1946  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1947  +
                .apply(svc);
        1948  +
        let svc = self.http_plugin.apply(svc);
        1949  +
        self.fractional_seconds_custom(svc)
        1950  +
    }
        1951  +
        1952  +
    /// Sets the [`FractionalSeconds`](crate::operation_shape::FractionalSeconds) to a custom [`Service`](tower::Service).
        1953  +
    /// not constrained by the Smithy contract.
        1954  +
    fn fractional_seconds_custom<S>(mut self, svc: S) -> Self
        1955  +
    where
        1956  +
        S: ::tower::Service<
        1957  +
                ::http::Request<Body>,
        1958  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1959  +
                Error = ::std::convert::Infallible,
        1960  +
            > + Clone
        1961  +
            + Send
        1962  +
            + 'static,
        1963  +
        S::Future: Send + 'static,
        1964  +
    {
        1965  +
        self.fractional_seconds = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1966  +
        self
        1967  +
    }
        1968  +
        1969  +
    /// Sets the [`GreetingWithErrors`](crate::operation_shape::GreetingWithErrors) operation.
        1970  +
    ///
        1971  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1972  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1973  +
    ///
        1974  +
    /// # Example
        1975  +
    ///
        1976  +
    /// ```no_run
        1977  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        1978  +
    ///
        1979  +
    /// use rest_json_http0x::{input, output, error};
        1980  +
    ///
        1981  +
    /// async fn handler(input: input::GreetingWithErrorsInput) -> Result<output::GreetingWithErrorsOutput, error::GreetingWithErrorsError> {
        1982  +
    ///     todo!()
        1983  +
    /// }
        1984  +
    ///
        1985  +
    /// let config = RestJsonConfig::builder().build();
        1986  +
    /// let app = RestJson::builder(config)
        1987  +
    ///     .greeting_with_errors(handler)
        1988  +
    ///     /* Set other handlers */
        1989  +
    ///     .build()
        1990  +
    ///     .unwrap();
        1991  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        1992  +
    /// ```
        1993  +
    ///
        1994  +
                    pub fn greeting_with_errors<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1995  +
                    where
        1996  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::GreetingWithErrors, HandlerExtractors>,
        1997  +
        1998  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1999  +
                            RestJson<L>,
        2000  +
                            crate::operation_shape::GreetingWithErrors,
        2001  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::GreetingWithErrors, HandlerType>
        2002  +
                        >,
        2003  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2004  +
                            RestJson<L>,
        2005  +
                            crate::operation_shape::GreetingWithErrors,
        2006  +
                            ModelPl::Output
        2007  +
                        >,
        2008  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2009  +
                            RestJson<L>,
        2010  +
                            crate::operation_shape::GreetingWithErrors,
        2011  +
                            <
        2012  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2013  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2014  +
                                    RestJson<L>,
        2015  +
                                    crate::operation_shape::GreetingWithErrors,
        2016  +
                                    ModelPl::Output
        2017  +
                                >
        2018  +
                            >::Output
        2019  +
                        >,
        2020  +
        2021  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2022  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2023  +
        2024  +
                    {
        2025  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2026  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2027  +
        let svc = crate::operation_shape::GreetingWithErrors::from_handler(handler);
        2028  +
        let svc = self.model_plugin.apply(svc);
        2029  +
        let svc =
        2030  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2031  +
                .apply(svc);
        2032  +
        let svc = self.http_plugin.apply(svc);
        2033  +
        self.greeting_with_errors_custom(svc)
        2034  +
    }
        2035  +
        2036  +
    /// Sets the [`GreetingWithErrors`](crate::operation_shape::GreetingWithErrors) operation.
        2037  +
    ///
        2038  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2039  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2040  +
    ///
        2041  +
    /// # Example
        2042  +
    ///
        2043  +
    /// ```no_run
        2044  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2045  +
    ///
        2046  +
    /// use rest_json_http0x::{input, output, error};
        2047  +
    ///
        2048  +
    /// async fn handler(input: input::GreetingWithErrorsInput) -> Result<output::GreetingWithErrorsOutput, error::GreetingWithErrorsError> {
        2049  +
    ///     todo!()
        2050  +
    /// }
        2051  +
    ///
        2052  +
    /// let config = RestJsonConfig::builder().build();
        2053  +
    /// let svc = ::tower::util::service_fn(handler);
        2054  +
    /// let app = RestJson::builder(config)
        2055  +
    ///     .greeting_with_errors_service(svc)
        2056  +
    ///     /* Set other handlers */
        2057  +
    ///     .build()
        2058  +
    ///     .unwrap();
        2059  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2060  +
    /// ```
        2061  +
    ///
        2062  +
                    pub fn greeting_with_errors_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2063  +
                    where
        2064  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::GreetingWithErrors, ServiceExtractors>,
        2065  +
        2066  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2067  +
                            RestJson<L>,
        2068  +
                            crate::operation_shape::GreetingWithErrors,
        2069  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::GreetingWithErrors, S>
        2070  +
                        >,
        2071  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2072  +
                            RestJson<L>,
        2073  +
                            crate::operation_shape::GreetingWithErrors,
        2074  +
                            ModelPl::Output
        2075  +
                        >,
        2076  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2077  +
                            RestJson<L>,
        2078  +
                            crate::operation_shape::GreetingWithErrors,
        2079  +
                            <
        2080  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2081  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2082  +
                                    RestJson<L>,
        2083  +
                                    crate::operation_shape::GreetingWithErrors,
        2084  +
                                    ModelPl::Output
        2085  +
                                >
        2086  +
                            >::Output
        2087  +
                        >,
        2088  +
        2089  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2090  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2091  +
        2092  +
                    {
        2093  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2094  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2095  +
        let svc = crate::operation_shape::GreetingWithErrors::from_service(service);
        2096  +
        let svc = self.model_plugin.apply(svc);
        2097  +
        let svc =
        2098  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2099  +
                .apply(svc);
        2100  +
        let svc = self.http_plugin.apply(svc);
        2101  +
        self.greeting_with_errors_custom(svc)
        2102  +
    }
        2103  +
        2104  +
    /// Sets the [`GreetingWithErrors`](crate::operation_shape::GreetingWithErrors) to a custom [`Service`](tower::Service).
        2105  +
    /// not constrained by the Smithy contract.
        2106  +
    fn greeting_with_errors_custom<S>(mut self, svc: S) -> Self
        2107  +
    where
        2108  +
        S: ::tower::Service<
        2109  +
                ::http::Request<Body>,
        2110  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2111  +
                Error = ::std::convert::Infallible,
        2112  +
            > + Clone
        2113  +
            + Send
        2114  +
            + 'static,
        2115  +
        S::Future: Send + 'static,
        2116  +
    {
        2117  +
        self.greeting_with_errors = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2118  +
        self
        2119  +
    }
        2120  +
        2121  +
    /// Sets the [`HostWithPathOperation`](crate::operation_shape::HostWithPathOperation) operation.
        2122  +
    ///
        2123  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2124  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2125  +
    ///
        2126  +
    /// # Example
        2127  +
    ///
        2128  +
    /// ```no_run
        2129  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2130  +
    ///
        2131  +
    /// use rest_json_http0x::{input, output, error};
        2132  +
    ///
        2133  +
    /// async fn handler(input: input::HostWithPathOperationInput) -> output::HostWithPathOperationOutput {
        2134  +
    ///     todo!()
        2135  +
    /// }
        2136  +
    ///
        2137  +
    /// let config = RestJsonConfig::builder().build();
        2138  +
    /// let app = RestJson::builder(config)
        2139  +
    ///     .host_with_path_operation(handler)
        2140  +
    ///     /* Set other handlers */
        2141  +
    ///     .build()
        2142  +
    ///     .unwrap();
        2143  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2144  +
    /// ```
        2145  +
    ///
        2146  +
                    pub fn host_with_path_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2147  +
                    where
        2148  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HostWithPathOperation, HandlerExtractors>,
        2149  +
        2150  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2151  +
                            RestJson<L>,
        2152  +
                            crate::operation_shape::HostWithPathOperation,
        2153  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HostWithPathOperation, HandlerType>
        2154  +
                        >,
        2155  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2156  +
                            RestJson<L>,
        2157  +
                            crate::operation_shape::HostWithPathOperation,
        2158  +
                            ModelPl::Output
        2159  +
                        >,
        2160  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2161  +
                            RestJson<L>,
        2162  +
                            crate::operation_shape::HostWithPathOperation,
        2163  +
                            <
        2164  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2165  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2166  +
                                    RestJson<L>,
        2167  +
                                    crate::operation_shape::HostWithPathOperation,
        2168  +
                                    ModelPl::Output
        2169  +
                                >
        2170  +
                            >::Output
        2171  +
                        >,
        2172  +
        2173  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2174  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2175  +
        2176  +
                    {
        2177  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2178  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2179  +
        let svc = crate::operation_shape::HostWithPathOperation::from_handler(handler);
        2180  +
        let svc = self.model_plugin.apply(svc);
        2181  +
        let svc =
        2182  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2183  +
                .apply(svc);
        2184  +
        let svc = self.http_plugin.apply(svc);
        2185  +
        self.host_with_path_operation_custom(svc)
        2186  +
    }
        2187  +
        2188  +
    /// Sets the [`HostWithPathOperation`](crate::operation_shape::HostWithPathOperation) operation.
        2189  +
    ///
        2190  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2191  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2192  +
    ///
        2193  +
    /// # Example
        2194  +
    ///
        2195  +
    /// ```no_run
        2196  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2197  +
    ///
        2198  +
    /// use rest_json_http0x::{input, output, error};
        2199  +
    ///
        2200  +
    /// async fn handler(input: input::HostWithPathOperationInput) -> Result<output::HostWithPathOperationOutput, std::convert::Infallible> {
        2201  +
    ///     todo!()
        2202  +
    /// }
        2203  +
    ///
        2204  +
    /// let config = RestJsonConfig::builder().build();
        2205  +
    /// let svc = ::tower::util::service_fn(handler);
        2206  +
    /// let app = RestJson::builder(config)
        2207  +
    ///     .host_with_path_operation_service(svc)
        2208  +
    ///     /* Set other handlers */
        2209  +
    ///     .build()
        2210  +
    ///     .unwrap();
        2211  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2212  +
    /// ```
        2213  +
    ///
        2214  +
                    pub fn host_with_path_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2215  +
                    where
        2216  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HostWithPathOperation, ServiceExtractors>,
        2217  +
        2218  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2219  +
                            RestJson<L>,
        2220  +
                            crate::operation_shape::HostWithPathOperation,
        2221  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HostWithPathOperation, S>
        2222  +
                        >,
        2223  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2224  +
                            RestJson<L>,
        2225  +
                            crate::operation_shape::HostWithPathOperation,
        2226  +
                            ModelPl::Output
        2227  +
                        >,
        2228  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2229  +
                            RestJson<L>,
        2230  +
                            crate::operation_shape::HostWithPathOperation,
        2231  +
                            <
        2232  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2233  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2234  +
                                    RestJson<L>,
        2235  +
                                    crate::operation_shape::HostWithPathOperation,
        2236  +
                                    ModelPl::Output
        2237  +
                                >
        2238  +
                            >::Output
        2239  +
                        >,
        2240  +
        2241  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2242  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2243  +
        2244  +
                    {
        2245  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2246  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2247  +
        let svc = crate::operation_shape::HostWithPathOperation::from_service(service);
        2248  +
        let svc = self.model_plugin.apply(svc);
        2249  +
        let svc =
        2250  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2251  +
                .apply(svc);
        2252  +
        let svc = self.http_plugin.apply(svc);
        2253  +
        self.host_with_path_operation_custom(svc)
        2254  +
    }
        2255  +
        2256  +
    /// Sets the [`HostWithPathOperation`](crate::operation_shape::HostWithPathOperation) to a custom [`Service`](tower::Service).
        2257  +
    /// not constrained by the Smithy contract.
        2258  +
    fn host_with_path_operation_custom<S>(mut self, svc: S) -> Self
        2259  +
    where
        2260  +
        S: ::tower::Service<
        2261  +
                ::http::Request<Body>,
        2262  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2263  +
                Error = ::std::convert::Infallible,
        2264  +
            > + Clone
        2265  +
            + Send
        2266  +
            + 'static,
        2267  +
        S::Future: Send + 'static,
        2268  +
    {
        2269  +
        self.host_with_path_operation =
        2270  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2271  +
        self
        2272  +
    }
        2273  +
        2274  +
    /// Sets the [`HttpChecksumRequired`](crate::operation_shape::HttpChecksumRequired) operation.
        2275  +
    ///
        2276  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2277  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2278  +
    ///
        2279  +
    /// # Example
        2280  +
    ///
        2281  +
    /// ```no_run
        2282  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2283  +
    ///
        2284  +
    /// use rest_json_http0x::{input, output, error};
        2285  +
    ///
        2286  +
    /// async fn handler(input: input::HttpChecksumRequiredInput) -> output::HttpChecksumRequiredOutput {
        2287  +
    ///     todo!()
        2288  +
    /// }
        2289  +
    ///
        2290  +
    /// let config = RestJsonConfig::builder().build();
        2291  +
    /// let app = RestJson::builder(config)
        2292  +
    ///     .http_checksum_required(handler)
        2293  +
    ///     /* Set other handlers */
        2294  +
    ///     .build()
        2295  +
    ///     .unwrap();
        2296  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2297  +
    /// ```
        2298  +
    ///
        2299  +
                    pub fn http_checksum_required<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2300  +
                    where
        2301  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpChecksumRequired, HandlerExtractors>,
        2302  +
        2303  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2304  +
                            RestJson<L>,
        2305  +
                            crate::operation_shape::HttpChecksumRequired,
        2306  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpChecksumRequired, HandlerType>
        2307  +
                        >,
        2308  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2309  +
                            RestJson<L>,
        2310  +
                            crate::operation_shape::HttpChecksumRequired,
        2311  +
                            ModelPl::Output
        2312  +
                        >,
        2313  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2314  +
                            RestJson<L>,
        2315  +
                            crate::operation_shape::HttpChecksumRequired,
        2316  +
                            <
        2317  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2318  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2319  +
                                    RestJson<L>,
        2320  +
                                    crate::operation_shape::HttpChecksumRequired,
        2321  +
                                    ModelPl::Output
        2322  +
                                >
        2323  +
                            >::Output
        2324  +
                        >,
        2325  +
        2326  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2327  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2328  +
        2329  +
                    {
        2330  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2331  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2332  +
        let svc = crate::operation_shape::HttpChecksumRequired::from_handler(handler);
        2333  +
        let svc = self.model_plugin.apply(svc);
        2334  +
        let svc =
        2335  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2336  +
                .apply(svc);
        2337  +
        let svc = self.http_plugin.apply(svc);
        2338  +
        self.http_checksum_required_custom(svc)
        2339  +
    }
        2340  +
        2341  +
    /// Sets the [`HttpChecksumRequired`](crate::operation_shape::HttpChecksumRequired) operation.
        2342  +
    ///
        2343  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2344  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2345  +
    ///
        2346  +
    /// # Example
        2347  +
    ///
        2348  +
    /// ```no_run
        2349  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2350  +
    ///
        2351  +
    /// use rest_json_http0x::{input, output, error};
        2352  +
    ///
        2353  +
    /// async fn handler(input: input::HttpChecksumRequiredInput) -> Result<output::HttpChecksumRequiredOutput, std::convert::Infallible> {
        2354  +
    ///     todo!()
        2355  +
    /// }
        2356  +
    ///
        2357  +
    /// let config = RestJsonConfig::builder().build();
        2358  +
    /// let svc = ::tower::util::service_fn(handler);
        2359  +
    /// let app = RestJson::builder(config)
        2360  +
    ///     .http_checksum_required_service(svc)
        2361  +
    ///     /* Set other handlers */
        2362  +
    ///     .build()
        2363  +
    ///     .unwrap();
        2364  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2365  +
    /// ```
        2366  +
    ///
        2367  +
                    pub fn http_checksum_required_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2368  +
                    where
        2369  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpChecksumRequired, ServiceExtractors>,
        2370  +
        2371  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2372  +
                            RestJson<L>,
        2373  +
                            crate::operation_shape::HttpChecksumRequired,
        2374  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpChecksumRequired, S>
        2375  +
                        >,
        2376  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2377  +
                            RestJson<L>,
        2378  +
                            crate::operation_shape::HttpChecksumRequired,
        2379  +
                            ModelPl::Output
        2380  +
                        >,
        2381  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2382  +
                            RestJson<L>,
        2383  +
                            crate::operation_shape::HttpChecksumRequired,
        2384  +
                            <
        2385  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2386  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2387  +
                                    RestJson<L>,
        2388  +
                                    crate::operation_shape::HttpChecksumRequired,
        2389  +
                                    ModelPl::Output
        2390  +
                                >
        2391  +
                            >::Output
        2392  +
                        >,
        2393  +
        2394  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2395  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2396  +
        2397  +
                    {
        2398  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2399  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2400  +
        let svc = crate::operation_shape::HttpChecksumRequired::from_service(service);
        2401  +
        let svc = self.model_plugin.apply(svc);
        2402  +
        let svc =
        2403  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2404  +
                .apply(svc);
        2405  +
        let svc = self.http_plugin.apply(svc);
        2406  +
        self.http_checksum_required_custom(svc)
        2407  +
    }
        2408  +
        2409  +
    /// Sets the [`HttpChecksumRequired`](crate::operation_shape::HttpChecksumRequired) to a custom [`Service`](tower::Service).
        2410  +
    /// not constrained by the Smithy contract.
        2411  +
    fn http_checksum_required_custom<S>(mut self, svc: S) -> Self
        2412  +
    where
        2413  +
        S: ::tower::Service<
        2414  +
                ::http::Request<Body>,
        2415  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2416  +
                Error = ::std::convert::Infallible,
        2417  +
            > + Clone
        2418  +
            + Send
        2419  +
            + 'static,
        2420  +
        S::Future: Send + 'static,
        2421  +
    {
        2422  +
        self.http_checksum_required =
        2423  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2424  +
        self
        2425  +
    }
        2426  +
        2427  +
    /// Sets the [`HttpEmptyPrefixHeaders`](crate::operation_shape::HttpEmptyPrefixHeaders) operation.
        2428  +
    ///
        2429  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2430  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2431  +
    ///
        2432  +
    /// # Example
        2433  +
    ///
        2434  +
    /// ```no_run
        2435  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2436  +
    ///
        2437  +
    /// use rest_json_http0x::{input, output, error};
        2438  +
    ///
        2439  +
    /// async fn handler(input: input::HttpEmptyPrefixHeadersInput) -> output::HttpEmptyPrefixHeadersOutput {
        2440  +
    ///     todo!()
        2441  +
    /// }
        2442  +
    ///
        2443  +
    /// let config = RestJsonConfig::builder().build();
        2444  +
    /// let app = RestJson::builder(config)
        2445  +
    ///     .http_empty_prefix_headers(handler)
        2446  +
    ///     /* Set other handlers */
        2447  +
    ///     .build()
        2448  +
    ///     .unwrap();
        2449  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2450  +
    /// ```
        2451  +
    ///
        2452  +
                    pub fn http_empty_prefix_headers<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2453  +
                    where
        2454  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpEmptyPrefixHeaders, HandlerExtractors>,
        2455  +
        2456  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2457  +
                            RestJson<L>,
        2458  +
                            crate::operation_shape::HttpEmptyPrefixHeaders,
        2459  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpEmptyPrefixHeaders, HandlerType>
        2460  +
                        >,
        2461  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2462  +
                            RestJson<L>,
        2463  +
                            crate::operation_shape::HttpEmptyPrefixHeaders,
        2464  +
                            ModelPl::Output
        2465  +
                        >,
        2466  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2467  +
                            RestJson<L>,
        2468  +
                            crate::operation_shape::HttpEmptyPrefixHeaders,
        2469  +
                            <
        2470  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2471  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2472  +
                                    RestJson<L>,
        2473  +
                                    crate::operation_shape::HttpEmptyPrefixHeaders,
        2474  +
                                    ModelPl::Output
        2475  +
                                >
        2476  +
                            >::Output
        2477  +
                        >,
        2478  +
        2479  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2480  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2481  +
        2482  +
                    {
        2483  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2484  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2485  +
        let svc = crate::operation_shape::HttpEmptyPrefixHeaders::from_handler(handler);
        2486  +
        let svc = self.model_plugin.apply(svc);
        2487  +
        let svc =
        2488  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2489  +
                .apply(svc);
        2490  +
        let svc = self.http_plugin.apply(svc);
        2491  +
        self.http_empty_prefix_headers_custom(svc)
        2492  +
    }
        2493  +
        2494  +
    /// Sets the [`HttpEmptyPrefixHeaders`](crate::operation_shape::HttpEmptyPrefixHeaders) operation.
        2495  +
    ///
        2496  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2497  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2498  +
    ///
        2499  +
    /// # Example
        2500  +
    ///
        2501  +
    /// ```no_run
        2502  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2503  +
    ///
        2504  +
    /// use rest_json_http0x::{input, output, error};
        2505  +
    ///
        2506  +
    /// async fn handler(input: input::HttpEmptyPrefixHeadersInput) -> Result<output::HttpEmptyPrefixHeadersOutput, std::convert::Infallible> {
        2507  +
    ///     todo!()
        2508  +
    /// }
        2509  +
    ///
        2510  +
    /// let config = RestJsonConfig::builder().build();
        2511  +
    /// let svc = ::tower::util::service_fn(handler);
        2512  +
    /// let app = RestJson::builder(config)
        2513  +
    ///     .http_empty_prefix_headers_service(svc)
        2514  +
    ///     /* Set other handlers */
        2515  +
    ///     .build()
        2516  +
    ///     .unwrap();
        2517  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2518  +
    /// ```
        2519  +
    ///
        2520  +
                    pub fn http_empty_prefix_headers_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2521  +
                    where
        2522  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpEmptyPrefixHeaders, ServiceExtractors>,
        2523  +
        2524  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2525  +
                            RestJson<L>,
        2526  +
                            crate::operation_shape::HttpEmptyPrefixHeaders,
        2527  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpEmptyPrefixHeaders, S>
        2528  +
                        >,
        2529  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2530  +
                            RestJson<L>,
        2531  +
                            crate::operation_shape::HttpEmptyPrefixHeaders,
        2532  +
                            ModelPl::Output
        2533  +
                        >,
        2534  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2535  +
                            RestJson<L>,
        2536  +
                            crate::operation_shape::HttpEmptyPrefixHeaders,
        2537  +
                            <
        2538  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2539  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2540  +
                                    RestJson<L>,
        2541  +
                                    crate::operation_shape::HttpEmptyPrefixHeaders,
        2542  +
                                    ModelPl::Output
        2543  +
                                >
        2544  +
                            >::Output
        2545  +
                        >,
        2546  +
        2547  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2548  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2549  +
        2550  +
                    {
        2551  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2552  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2553  +
        let svc = crate::operation_shape::HttpEmptyPrefixHeaders::from_service(service);
        2554  +
        let svc = self.model_plugin.apply(svc);
        2555  +
        let svc =
        2556  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2557  +
                .apply(svc);
        2558  +
        let svc = self.http_plugin.apply(svc);
        2559  +
        self.http_empty_prefix_headers_custom(svc)
        2560  +
    }
        2561  +
        2562  +
    /// Sets the [`HttpEmptyPrefixHeaders`](crate::operation_shape::HttpEmptyPrefixHeaders) to a custom [`Service`](tower::Service).
        2563  +
    /// not constrained by the Smithy contract.
        2564  +
    fn http_empty_prefix_headers_custom<S>(mut self, svc: S) -> Self
        2565  +
    where
        2566  +
        S: ::tower::Service<
        2567  +
                ::http::Request<Body>,
        2568  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2569  +
                Error = ::std::convert::Infallible,
        2570  +
            > + Clone
        2571  +
            + Send
        2572  +
            + 'static,
        2573  +
        S::Future: Send + 'static,
        2574  +
    {
        2575  +
        self.http_empty_prefix_headers =
        2576  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2577  +
        self
        2578  +
    }
        2579  +
        2580  +
    /// Sets the [`HttpEnumPayload`](crate::operation_shape::HttpEnumPayload) operation.
        2581  +
    ///
        2582  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2583  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2584  +
    ///
        2585  +
    /// # Example
        2586  +
    ///
        2587  +
    /// ```no_run
        2588  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2589  +
    ///
        2590  +
    /// use rest_json_http0x::{input, output, error};
        2591  +
    ///
        2592  +
    /// async fn handler(input: input::HttpEnumPayloadInput) -> Result<output::HttpEnumPayloadOutput, error::HttpEnumPayloadError> {
        2593  +
    ///     todo!()
        2594  +
    /// }
        2595  +
    ///
        2596  +
    /// let config = RestJsonConfig::builder().build();
        2597  +
    /// let app = RestJson::builder(config)
        2598  +
    ///     .http_enum_payload(handler)
        2599  +
    ///     /* Set other handlers */
        2600  +
    ///     .build()
        2601  +
    ///     .unwrap();
        2602  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2603  +
    /// ```
        2604  +
    ///
        2605  +
                    pub fn http_enum_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2606  +
                    where
        2607  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpEnumPayload, HandlerExtractors>,
        2608  +
        2609  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2610  +
                            RestJson<L>,
        2611  +
                            crate::operation_shape::HttpEnumPayload,
        2612  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpEnumPayload, HandlerType>
        2613  +
                        >,
        2614  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2615  +
                            RestJson<L>,
        2616  +
                            crate::operation_shape::HttpEnumPayload,
        2617  +
                            ModelPl::Output
        2618  +
                        >,
        2619  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2620  +
                            RestJson<L>,
        2621  +
                            crate::operation_shape::HttpEnumPayload,
        2622  +
                            <
        2623  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2624  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2625  +
                                    RestJson<L>,
        2626  +
                                    crate::operation_shape::HttpEnumPayload,
        2627  +
                                    ModelPl::Output
        2628  +
                                >
        2629  +
                            >::Output
        2630  +
                        >,
        2631  +
        2632  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2633  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2634  +
        2635  +
                    {
        2636  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2637  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2638  +
        let svc = crate::operation_shape::HttpEnumPayload::from_handler(handler);
        2639  +
        let svc = self.model_plugin.apply(svc);
        2640  +
        let svc =
        2641  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2642  +
                .apply(svc);
        2643  +
        let svc = self.http_plugin.apply(svc);
        2644  +
        self.http_enum_payload_custom(svc)
        2645  +
    }
        2646  +
        2647  +
    /// Sets the [`HttpEnumPayload`](crate::operation_shape::HttpEnumPayload) operation.
        2648  +
    ///
        2649  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2650  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2651  +
    ///
        2652  +
    /// # Example
        2653  +
    ///
        2654  +
    /// ```no_run
        2655  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2656  +
    ///
        2657  +
    /// use rest_json_http0x::{input, output, error};
        2658  +
    ///
        2659  +
    /// async fn handler(input: input::HttpEnumPayloadInput) -> Result<output::HttpEnumPayloadOutput, error::HttpEnumPayloadError> {
        2660  +
    ///     todo!()
        2661  +
    /// }
        2662  +
    ///
        2663  +
    /// let config = RestJsonConfig::builder().build();
        2664  +
    /// let svc = ::tower::util::service_fn(handler);
        2665  +
    /// let app = RestJson::builder(config)
        2666  +
    ///     .http_enum_payload_service(svc)
        2667  +
    ///     /* Set other handlers */
        2668  +
    ///     .build()
        2669  +
    ///     .unwrap();
        2670  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2671  +
    /// ```
        2672  +
    ///
        2673  +
                    pub fn http_enum_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2674  +
                    where
        2675  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpEnumPayload, ServiceExtractors>,
        2676  +
        2677  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2678  +
                            RestJson<L>,
        2679  +
                            crate::operation_shape::HttpEnumPayload,
        2680  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpEnumPayload, S>
        2681  +
                        >,
        2682  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2683  +
                            RestJson<L>,
        2684  +
                            crate::operation_shape::HttpEnumPayload,
        2685  +
                            ModelPl::Output
        2686  +
                        >,
        2687  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2688  +
                            RestJson<L>,
        2689  +
                            crate::operation_shape::HttpEnumPayload,
        2690  +
                            <
        2691  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2692  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2693  +
                                    RestJson<L>,
        2694  +
                                    crate::operation_shape::HttpEnumPayload,
        2695  +
                                    ModelPl::Output
        2696  +
                                >
        2697  +
                            >::Output
        2698  +
                        >,
        2699  +
        2700  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2701  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2702  +
        2703  +
                    {
        2704  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2705  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2706  +
        let svc = crate::operation_shape::HttpEnumPayload::from_service(service);
        2707  +
        let svc = self.model_plugin.apply(svc);
        2708  +
        let svc =
        2709  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2710  +
                .apply(svc);
        2711  +
        let svc = self.http_plugin.apply(svc);
        2712  +
        self.http_enum_payload_custom(svc)
        2713  +
    }
        2714  +
        2715  +
    /// Sets the [`HttpEnumPayload`](crate::operation_shape::HttpEnumPayload) to a custom [`Service`](tower::Service).
        2716  +
    /// not constrained by the Smithy contract.
        2717  +
    fn http_enum_payload_custom<S>(mut self, svc: S) -> Self
        2718  +
    where
        2719  +
        S: ::tower::Service<
        2720  +
                ::http::Request<Body>,
        2721  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2722  +
                Error = ::std::convert::Infallible,
        2723  +
            > + Clone
        2724  +
            + Send
        2725  +
            + 'static,
        2726  +
        S::Future: Send + 'static,
        2727  +
    {
        2728  +
        self.http_enum_payload = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2729  +
        self
        2730  +
    }
        2731  +
        2732  +
    /// Sets the [`HttpPayloadTraits`](crate::operation_shape::HttpPayloadTraits) operation.
        2733  +
    ///
        2734  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2735  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2736  +
    ///
        2737  +
    /// # Example
        2738  +
    ///
        2739  +
    /// ```no_run
        2740  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2741  +
    ///
        2742  +
    /// use rest_json_http0x::{input, output, error};
        2743  +
    ///
        2744  +
    /// async fn handler(input: input::HttpPayloadTraitsInput) -> output::HttpPayloadTraitsOutput {
        2745  +
    ///     todo!()
        2746  +
    /// }
        2747  +
    ///
        2748  +
    /// let config = RestJsonConfig::builder().build();
        2749  +
    /// let app = RestJson::builder(config)
        2750  +
    ///     .http_payload_traits(handler)
        2751  +
    ///     /* Set other handlers */
        2752  +
    ///     .build()
        2753  +
    ///     .unwrap();
        2754  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2755  +
    /// ```
        2756  +
    ///
        2757  +
                    pub fn http_payload_traits<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2758  +
                    where
        2759  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpPayloadTraits, HandlerExtractors>,
        2760  +
        2761  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2762  +
                            RestJson<L>,
        2763  +
                            crate::operation_shape::HttpPayloadTraits,
        2764  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpPayloadTraits, HandlerType>
        2765  +
                        >,
        2766  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2767  +
                            RestJson<L>,
        2768  +
                            crate::operation_shape::HttpPayloadTraits,
        2769  +
                            ModelPl::Output
        2770  +
                        >,
        2771  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2772  +
                            RestJson<L>,
        2773  +
                            crate::operation_shape::HttpPayloadTraits,
        2774  +
                            <
        2775  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2776  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2777  +
                                    RestJson<L>,
        2778  +
                                    crate::operation_shape::HttpPayloadTraits,
        2779  +
                                    ModelPl::Output
        2780  +
                                >
        2781  +
                            >::Output
        2782  +
                        >,
        2783  +
        2784  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2785  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2786  +
        2787  +
                    {
        2788  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2789  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2790  +
        let svc = crate::operation_shape::HttpPayloadTraits::from_handler(handler);
        2791  +
        let svc = self.model_plugin.apply(svc);
        2792  +
        let svc =
        2793  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2794  +
                .apply(svc);
        2795  +
        let svc = self.http_plugin.apply(svc);
        2796  +
        self.http_payload_traits_custom(svc)
        2797  +
    }
        2798  +
        2799  +
    /// Sets the [`HttpPayloadTraits`](crate::operation_shape::HttpPayloadTraits) operation.
        2800  +
    ///
        2801  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2802  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2803  +
    ///
        2804  +
    /// # Example
        2805  +
    ///
        2806  +
    /// ```no_run
        2807  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2808  +
    ///
        2809  +
    /// use rest_json_http0x::{input, output, error};
        2810  +
    ///
        2811  +
    /// async fn handler(input: input::HttpPayloadTraitsInput) -> Result<output::HttpPayloadTraitsOutput, std::convert::Infallible> {
        2812  +
    ///     todo!()
        2813  +
    /// }
        2814  +
    ///
        2815  +
    /// let config = RestJsonConfig::builder().build();
        2816  +
    /// let svc = ::tower::util::service_fn(handler);
        2817  +
    /// let app = RestJson::builder(config)
        2818  +
    ///     .http_payload_traits_service(svc)
        2819  +
    ///     /* Set other handlers */
        2820  +
    ///     .build()
        2821  +
    ///     .unwrap();
        2822  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2823  +
    /// ```
        2824  +
    ///
        2825  +
                    pub fn http_payload_traits_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2826  +
                    where
        2827  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpPayloadTraits, ServiceExtractors>,
        2828  +
        2829  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2830  +
                            RestJson<L>,
        2831  +
                            crate::operation_shape::HttpPayloadTraits,
        2832  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpPayloadTraits, S>
        2833  +
                        >,
        2834  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2835  +
                            RestJson<L>,
        2836  +
                            crate::operation_shape::HttpPayloadTraits,
        2837  +
                            ModelPl::Output
        2838  +
                        >,
        2839  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2840  +
                            RestJson<L>,
        2841  +
                            crate::operation_shape::HttpPayloadTraits,
        2842  +
                            <
        2843  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2844  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2845  +
                                    RestJson<L>,
        2846  +
                                    crate::operation_shape::HttpPayloadTraits,
        2847  +
                                    ModelPl::Output
        2848  +
                                >
        2849  +
                            >::Output
        2850  +
                        >,
        2851  +
        2852  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2853  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2854  +
        2855  +
                    {
        2856  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2857  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2858  +
        let svc = crate::operation_shape::HttpPayloadTraits::from_service(service);
        2859  +
        let svc = self.model_plugin.apply(svc);
        2860  +
        let svc =
        2861  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2862  +
                .apply(svc);
        2863  +
        let svc = self.http_plugin.apply(svc);
        2864  +
        self.http_payload_traits_custom(svc)
        2865  +
    }
        2866  +
        2867  +
    /// Sets the [`HttpPayloadTraits`](crate::operation_shape::HttpPayloadTraits) to a custom [`Service`](tower::Service).
        2868  +
    /// not constrained by the Smithy contract.
        2869  +
    fn http_payload_traits_custom<S>(mut self, svc: S) -> Self
        2870  +
    where
        2871  +
        S: ::tower::Service<
        2872  +
                ::http::Request<Body>,
        2873  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2874  +
                Error = ::std::convert::Infallible,
        2875  +
            > + Clone
        2876  +
            + Send
        2877  +
            + 'static,
        2878  +
        S::Future: Send + 'static,
        2879  +
    {
        2880  +
        self.http_payload_traits = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2881  +
        self
        2882  +
    }
        2883  +
        2884  +
    /// Sets the [`HttpPayloadTraitsWithMediaType`](crate::operation_shape::HttpPayloadTraitsWithMediaType) operation.
        2885  +
    ///
        2886  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2887  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2888  +
    ///
        2889  +
    /// # Example
        2890  +
    ///
        2891  +
    /// ```no_run
        2892  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2893  +
    ///
        2894  +
    /// use rest_json_http0x::{input, output, error};
        2895  +
    ///
        2896  +
    /// async fn handler(input: input::HttpPayloadTraitsWithMediaTypeInput) -> output::HttpPayloadTraitsWithMediaTypeOutput {
        2897  +
    ///     todo!()
        2898  +
    /// }
        2899  +
    ///
        2900  +
    /// let config = RestJsonConfig::builder().build();
        2901  +
    /// let app = RestJson::builder(config)
        2902  +
    ///     .http_payload_traits_with_media_type(handler)
        2903  +
    ///     /* Set other handlers */
        2904  +
    ///     .build()
        2905  +
    ///     .unwrap();
        2906  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2907  +
    /// ```
        2908  +
    ///
        2909  +
                    pub fn http_payload_traits_with_media_type<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2910  +
                    where
        2911  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpPayloadTraitsWithMediaType, HandlerExtractors>,
        2912  +
        2913  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2914  +
                            RestJson<L>,
        2915  +
                            crate::operation_shape::HttpPayloadTraitsWithMediaType,
        2916  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpPayloadTraitsWithMediaType, HandlerType>
        2917  +
                        >,
        2918  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2919  +
                            RestJson<L>,
        2920  +
                            crate::operation_shape::HttpPayloadTraitsWithMediaType,
        2921  +
                            ModelPl::Output
        2922  +
                        >,
        2923  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2924  +
                            RestJson<L>,
        2925  +
                            crate::operation_shape::HttpPayloadTraitsWithMediaType,
        2926  +
                            <
        2927  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2928  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2929  +
                                    RestJson<L>,
        2930  +
                                    crate::operation_shape::HttpPayloadTraitsWithMediaType,
        2931  +
                                    ModelPl::Output
        2932  +
                                >
        2933  +
                            >::Output
        2934  +
                        >,
        2935  +
        2936  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2937  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2938  +
        2939  +
                    {
        2940  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2941  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2942  +
        let svc = crate::operation_shape::HttpPayloadTraitsWithMediaType::from_handler(handler);
        2943  +
        let svc = self.model_plugin.apply(svc);
        2944  +
        let svc =
        2945  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2946  +
                .apply(svc);
        2947  +
        let svc = self.http_plugin.apply(svc);
        2948  +
        self.http_payload_traits_with_media_type_custom(svc)
        2949  +
    }
        2950  +
        2951  +
    /// Sets the [`HttpPayloadTraitsWithMediaType`](crate::operation_shape::HttpPayloadTraitsWithMediaType) operation.
        2952  +
    ///
        2953  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2954  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2955  +
    ///
        2956  +
    /// # Example
        2957  +
    ///
        2958  +
    /// ```no_run
        2959  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        2960  +
    ///
        2961  +
    /// use rest_json_http0x::{input, output, error};
        2962  +
    ///
        2963  +
    /// async fn handler(input: input::HttpPayloadTraitsWithMediaTypeInput) -> Result<output::HttpPayloadTraitsWithMediaTypeOutput, std::convert::Infallible> {
        2964  +
    ///     todo!()
        2965  +
    /// }
        2966  +
    ///
        2967  +
    /// let config = RestJsonConfig::builder().build();
        2968  +
    /// let svc = ::tower::util::service_fn(handler);
        2969  +
    /// let app = RestJson::builder(config)
        2970  +
    ///     .http_payload_traits_with_media_type_service(svc)
        2971  +
    ///     /* Set other handlers */
        2972  +
    ///     .build()
        2973  +
    ///     .unwrap();
        2974  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        2975  +
    /// ```
        2976  +
    ///
        2977  +
                    pub fn http_payload_traits_with_media_type_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2978  +
                    where
        2979  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpPayloadTraitsWithMediaType, ServiceExtractors>,
        2980  +
        2981  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2982  +
                            RestJson<L>,
        2983  +
                            crate::operation_shape::HttpPayloadTraitsWithMediaType,
        2984  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpPayloadTraitsWithMediaType, S>
        2985  +
                        >,
        2986  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2987  +
                            RestJson<L>,
        2988  +
                            crate::operation_shape::HttpPayloadTraitsWithMediaType,
        2989  +
                            ModelPl::Output
        2990  +
                        >,
        2991  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2992  +
                            RestJson<L>,
        2993  +
                            crate::operation_shape::HttpPayloadTraitsWithMediaType,
        2994  +
                            <
        2995  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2996  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2997  +
                                    RestJson<L>,
        2998  +
                                    crate::operation_shape::HttpPayloadTraitsWithMediaType,
        2999  +
                                    ModelPl::Output
        3000  +
                                >
        3001  +
                            >::Output
        3002  +
                        >,
        3003  +
        3004  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3005  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3006  +
        3007  +
                    {
        3008  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3009  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3010  +
        let svc = crate::operation_shape::HttpPayloadTraitsWithMediaType::from_service(service);
        3011  +
        let svc = self.model_plugin.apply(svc);
        3012  +
        let svc =
        3013  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3014  +
                .apply(svc);
        3015  +
        let svc = self.http_plugin.apply(svc);
        3016  +
        self.http_payload_traits_with_media_type_custom(svc)
        3017  +
    }
        3018  +
        3019  +
    /// Sets the [`HttpPayloadTraitsWithMediaType`](crate::operation_shape::HttpPayloadTraitsWithMediaType) to a custom [`Service`](tower::Service).
        3020  +
    /// not constrained by the Smithy contract.
        3021  +
    fn http_payload_traits_with_media_type_custom<S>(mut self, svc: S) -> Self
        3022  +
    where
        3023  +
        S: ::tower::Service<
        3024  +
                ::http::Request<Body>,
        3025  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3026  +
                Error = ::std::convert::Infallible,
        3027  +
            > + Clone
        3028  +
            + Send
        3029  +
            + 'static,
        3030  +
        S::Future: Send + 'static,
        3031  +
    {
        3032  +
        self.http_payload_traits_with_media_type =
        3033  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3034  +
        self
        3035  +
    }
        3036  +
        3037  +
    /// Sets the [`HttpPayloadWithStructure`](crate::operation_shape::HttpPayloadWithStructure) operation.
        3038  +
    ///
        3039  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3040  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3041  +
    ///
        3042  +
    /// # Example
        3043  +
    ///
        3044  +
    /// ```no_run
        3045  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3046  +
    ///
        3047  +
    /// use rest_json_http0x::{input, output, error};
        3048  +
    ///
        3049  +
    /// async fn handler(input: input::HttpPayloadWithStructureInput) -> output::HttpPayloadWithStructureOutput {
        3050  +
    ///     todo!()
        3051  +
    /// }
        3052  +
    ///
        3053  +
    /// let config = RestJsonConfig::builder().build();
        3054  +
    /// let app = RestJson::builder(config)
        3055  +
    ///     .http_payload_with_structure(handler)
        3056  +
    ///     /* Set other handlers */
        3057  +
    ///     .build()
        3058  +
    ///     .unwrap();
        3059  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3060  +
    /// ```
        3061  +
    ///
        3062  +
                    pub fn http_payload_with_structure<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        3063  +
                    where
        3064  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpPayloadWithStructure, HandlerExtractors>,
        3065  +
        3066  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3067  +
                            RestJson<L>,
        3068  +
                            crate::operation_shape::HttpPayloadWithStructure,
        3069  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpPayloadWithStructure, HandlerType>
        3070  +
                        >,
        3071  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3072  +
                            RestJson<L>,
        3073  +
                            crate::operation_shape::HttpPayloadWithStructure,
        3074  +
                            ModelPl::Output
        3075  +
                        >,
        3076  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3077  +
                            RestJson<L>,
        3078  +
                            crate::operation_shape::HttpPayloadWithStructure,
        3079  +
                            <
        3080  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3081  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3082  +
                                    RestJson<L>,
        3083  +
                                    crate::operation_shape::HttpPayloadWithStructure,
        3084  +
                                    ModelPl::Output
        3085  +
                                >
        3086  +
                            >::Output
        3087  +
                        >,
        3088  +
        3089  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3090  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3091  +
        3092  +
                    {
        3093  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3094  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3095  +
        let svc = crate::operation_shape::HttpPayloadWithStructure::from_handler(handler);
        3096  +
        let svc = self.model_plugin.apply(svc);
        3097  +
        let svc =
        3098  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3099  +
                .apply(svc);
        3100  +
        let svc = self.http_plugin.apply(svc);
        3101  +
        self.http_payload_with_structure_custom(svc)
        3102  +
    }
        3103  +
        3104  +
    /// Sets the [`HttpPayloadWithStructure`](crate::operation_shape::HttpPayloadWithStructure) operation.
        3105  +
    ///
        3106  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3107  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3108  +
    ///
        3109  +
    /// # Example
        3110  +
    ///
        3111  +
    /// ```no_run
        3112  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3113  +
    ///
        3114  +
    /// use rest_json_http0x::{input, output, error};
        3115  +
    ///
        3116  +
    /// async fn handler(input: input::HttpPayloadWithStructureInput) -> Result<output::HttpPayloadWithStructureOutput, std::convert::Infallible> {
        3117  +
    ///     todo!()
        3118  +
    /// }
        3119  +
    ///
        3120  +
    /// let config = RestJsonConfig::builder().build();
        3121  +
    /// let svc = ::tower::util::service_fn(handler);
        3122  +
    /// let app = RestJson::builder(config)
        3123  +
    ///     .http_payload_with_structure_service(svc)
        3124  +
    ///     /* Set other handlers */
        3125  +
    ///     .build()
        3126  +
    ///     .unwrap();
        3127  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3128  +
    /// ```
        3129  +
    ///
        3130  +
                    pub fn http_payload_with_structure_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        3131  +
                    where
        3132  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpPayloadWithStructure, ServiceExtractors>,
        3133  +
        3134  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3135  +
                            RestJson<L>,
        3136  +
                            crate::operation_shape::HttpPayloadWithStructure,
        3137  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpPayloadWithStructure, S>
        3138  +
                        >,
        3139  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3140  +
                            RestJson<L>,
        3141  +
                            crate::operation_shape::HttpPayloadWithStructure,
        3142  +
                            ModelPl::Output
        3143  +
                        >,
        3144  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3145  +
                            RestJson<L>,
        3146  +
                            crate::operation_shape::HttpPayloadWithStructure,
        3147  +
                            <
        3148  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3149  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3150  +
                                    RestJson<L>,
        3151  +
                                    crate::operation_shape::HttpPayloadWithStructure,
        3152  +
                                    ModelPl::Output
        3153  +
                                >
        3154  +
                            >::Output
        3155  +
                        >,
        3156  +
        3157  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3158  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3159  +
        3160  +
                    {
        3161  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3162  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3163  +
        let svc = crate::operation_shape::HttpPayloadWithStructure::from_service(service);
        3164  +
        let svc = self.model_plugin.apply(svc);
        3165  +
        let svc =
        3166  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3167  +
                .apply(svc);
        3168  +
        let svc = self.http_plugin.apply(svc);
        3169  +
        self.http_payload_with_structure_custom(svc)
        3170  +
    }
        3171  +
        3172  +
    /// Sets the [`HttpPayloadWithStructure`](crate::operation_shape::HttpPayloadWithStructure) to a custom [`Service`](tower::Service).
        3173  +
    /// not constrained by the Smithy contract.
        3174  +
    fn http_payload_with_structure_custom<S>(mut self, svc: S) -> Self
        3175  +
    where
        3176  +
        S: ::tower::Service<
        3177  +
                ::http::Request<Body>,
        3178  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3179  +
                Error = ::std::convert::Infallible,
        3180  +
            > + Clone
        3181  +
            + Send
        3182  +
            + 'static,
        3183  +
        S::Future: Send + 'static,
        3184  +
    {
        3185  +
        self.http_payload_with_structure =
        3186  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3187  +
        self
        3188  +
    }
        3189  +
        3190  +
    /// Sets the [`HttpPayloadWithUnion`](crate::operation_shape::HttpPayloadWithUnion) operation.
        3191  +
    ///
        3192  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3193  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3194  +
    ///
        3195  +
    /// # Example
        3196  +
    ///
        3197  +
    /// ```no_run
        3198  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3199  +
    ///
        3200  +
    /// use rest_json_http0x::{input, output, error};
        3201  +
    ///
        3202  +
    /// async fn handler(input: input::HttpPayloadWithUnionInput) -> output::HttpPayloadWithUnionOutput {
        3203  +
    ///     todo!()
        3204  +
    /// }
        3205  +
    ///
        3206  +
    /// let config = RestJsonConfig::builder().build();
        3207  +
    /// let app = RestJson::builder(config)
        3208  +
    ///     .http_payload_with_union(handler)
        3209  +
    ///     /* Set other handlers */
        3210  +
    ///     .build()
        3211  +
    ///     .unwrap();
        3212  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3213  +
    /// ```
        3214  +
    ///
        3215  +
                    pub fn http_payload_with_union<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        3216  +
                    where
        3217  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpPayloadWithUnion, HandlerExtractors>,
        3218  +
        3219  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3220  +
                            RestJson<L>,
        3221  +
                            crate::operation_shape::HttpPayloadWithUnion,
        3222  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpPayloadWithUnion, HandlerType>
        3223  +
                        >,
        3224  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3225  +
                            RestJson<L>,
        3226  +
                            crate::operation_shape::HttpPayloadWithUnion,
        3227  +
                            ModelPl::Output
        3228  +
                        >,
        3229  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3230  +
                            RestJson<L>,
        3231  +
                            crate::operation_shape::HttpPayloadWithUnion,
        3232  +
                            <
        3233  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3234  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3235  +
                                    RestJson<L>,
        3236  +
                                    crate::operation_shape::HttpPayloadWithUnion,
        3237  +
                                    ModelPl::Output
        3238  +
                                >
        3239  +
                            >::Output
        3240  +
                        >,
        3241  +
        3242  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3243  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3244  +
        3245  +
                    {
        3246  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3247  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3248  +
        let svc = crate::operation_shape::HttpPayloadWithUnion::from_handler(handler);
        3249  +
        let svc = self.model_plugin.apply(svc);
        3250  +
        let svc =
        3251  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3252  +
                .apply(svc);
        3253  +
        let svc = self.http_plugin.apply(svc);
        3254  +
        self.http_payload_with_union_custom(svc)
        3255  +
    }
        3256  +
        3257  +
    /// Sets the [`HttpPayloadWithUnion`](crate::operation_shape::HttpPayloadWithUnion) operation.
        3258  +
    ///
        3259  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3260  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3261  +
    ///
        3262  +
    /// # Example
        3263  +
    ///
        3264  +
    /// ```no_run
        3265  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3266  +
    ///
        3267  +
    /// use rest_json_http0x::{input, output, error};
        3268  +
    ///
        3269  +
    /// async fn handler(input: input::HttpPayloadWithUnionInput) -> Result<output::HttpPayloadWithUnionOutput, std::convert::Infallible> {
        3270  +
    ///     todo!()
        3271  +
    /// }
        3272  +
    ///
        3273  +
    /// let config = RestJsonConfig::builder().build();
        3274  +
    /// let svc = ::tower::util::service_fn(handler);
        3275  +
    /// let app = RestJson::builder(config)
        3276  +
    ///     .http_payload_with_union_service(svc)
        3277  +
    ///     /* Set other handlers */
        3278  +
    ///     .build()
        3279  +
    ///     .unwrap();
        3280  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3281  +
    /// ```
        3282  +
    ///
        3283  +
                    pub fn http_payload_with_union_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        3284  +
                    where
        3285  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpPayloadWithUnion, ServiceExtractors>,
        3286  +
        3287  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3288  +
                            RestJson<L>,
        3289  +
                            crate::operation_shape::HttpPayloadWithUnion,
        3290  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpPayloadWithUnion, S>
        3291  +
                        >,
        3292  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3293  +
                            RestJson<L>,
        3294  +
                            crate::operation_shape::HttpPayloadWithUnion,
        3295  +
                            ModelPl::Output
        3296  +
                        >,
        3297  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3298  +
                            RestJson<L>,
        3299  +
                            crate::operation_shape::HttpPayloadWithUnion,
        3300  +
                            <
        3301  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3302  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3303  +
                                    RestJson<L>,
        3304  +
                                    crate::operation_shape::HttpPayloadWithUnion,
        3305  +
                                    ModelPl::Output
        3306  +
                                >
        3307  +
                            >::Output
        3308  +
                        >,
        3309  +
        3310  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3311  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3312  +
        3313  +
                    {
        3314  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3315  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3316  +
        let svc = crate::operation_shape::HttpPayloadWithUnion::from_service(service);
        3317  +
        let svc = self.model_plugin.apply(svc);
        3318  +
        let svc =
        3319  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3320  +
                .apply(svc);
        3321  +
        let svc = self.http_plugin.apply(svc);
        3322  +
        self.http_payload_with_union_custom(svc)
        3323  +
    }
        3324  +
        3325  +
    /// Sets the [`HttpPayloadWithUnion`](crate::operation_shape::HttpPayloadWithUnion) to a custom [`Service`](tower::Service).
        3326  +
    /// not constrained by the Smithy contract.
        3327  +
    fn http_payload_with_union_custom<S>(mut self, svc: S) -> Self
        3328  +
    where
        3329  +
        S: ::tower::Service<
        3330  +
                ::http::Request<Body>,
        3331  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3332  +
                Error = ::std::convert::Infallible,
        3333  +
            > + Clone
        3334  +
            + Send
        3335  +
            + 'static,
        3336  +
        S::Future: Send + 'static,
        3337  +
    {
        3338  +
        self.http_payload_with_union =
        3339  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3340  +
        self
        3341  +
    }
        3342  +
        3343  +
    /// Sets the [`HttpPrefixHeaders`](crate::operation_shape::HttpPrefixHeaders) operation.
        3344  +
    ///
        3345  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3346  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3347  +
    ///
        3348  +
    /// # Example
        3349  +
    ///
        3350  +
    /// ```no_run
        3351  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3352  +
    ///
        3353  +
    /// use rest_json_http0x::{input, output, error};
        3354  +
    ///
        3355  +
    /// async fn handler(input: input::HttpPrefixHeadersInput) -> output::HttpPrefixHeadersOutput {
        3356  +
    ///     todo!()
        3357  +
    /// }
        3358  +
    ///
        3359  +
    /// let config = RestJsonConfig::builder().build();
        3360  +
    /// let app = RestJson::builder(config)
        3361  +
    ///     .http_prefix_headers(handler)
        3362  +
    ///     /* Set other handlers */
        3363  +
    ///     .build()
        3364  +
    ///     .unwrap();
        3365  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3366  +
    /// ```
        3367  +
    ///
        3368  +
                    pub fn http_prefix_headers<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        3369  +
                    where
        3370  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpPrefixHeaders, HandlerExtractors>,
        3371  +
        3372  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3373  +
                            RestJson<L>,
        3374  +
                            crate::operation_shape::HttpPrefixHeaders,
        3375  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpPrefixHeaders, HandlerType>
        3376  +
                        >,
        3377  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3378  +
                            RestJson<L>,
        3379  +
                            crate::operation_shape::HttpPrefixHeaders,
        3380  +
                            ModelPl::Output
        3381  +
                        >,
        3382  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3383  +
                            RestJson<L>,
        3384  +
                            crate::operation_shape::HttpPrefixHeaders,
        3385  +
                            <
        3386  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3387  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3388  +
                                    RestJson<L>,
        3389  +
                                    crate::operation_shape::HttpPrefixHeaders,
        3390  +
                                    ModelPl::Output
        3391  +
                                >
        3392  +
                            >::Output
        3393  +
                        >,
        3394  +
        3395  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3396  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3397  +
        3398  +
                    {
        3399  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3400  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3401  +
        let svc = crate::operation_shape::HttpPrefixHeaders::from_handler(handler);
        3402  +
        let svc = self.model_plugin.apply(svc);
        3403  +
        let svc =
        3404  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3405  +
                .apply(svc);
        3406  +
        let svc = self.http_plugin.apply(svc);
        3407  +
        self.http_prefix_headers_custom(svc)
        3408  +
    }
        3409  +
        3410  +
    /// Sets the [`HttpPrefixHeaders`](crate::operation_shape::HttpPrefixHeaders) operation.
        3411  +
    ///
        3412  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3413  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3414  +
    ///
        3415  +
    /// # Example
        3416  +
    ///
        3417  +
    /// ```no_run
        3418  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3419  +
    ///
        3420  +
    /// use rest_json_http0x::{input, output, error};
        3421  +
    ///
        3422  +
    /// async fn handler(input: input::HttpPrefixHeadersInput) -> Result<output::HttpPrefixHeadersOutput, std::convert::Infallible> {
        3423  +
    ///     todo!()
        3424  +
    /// }
        3425  +
    ///
        3426  +
    /// let config = RestJsonConfig::builder().build();
        3427  +
    /// let svc = ::tower::util::service_fn(handler);
        3428  +
    /// let app = RestJson::builder(config)
        3429  +
    ///     .http_prefix_headers_service(svc)
        3430  +
    ///     /* Set other handlers */
        3431  +
    ///     .build()
        3432  +
    ///     .unwrap();
        3433  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3434  +
    /// ```
        3435  +
    ///
        3436  +
                    pub fn http_prefix_headers_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        3437  +
                    where
        3438  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpPrefixHeaders, ServiceExtractors>,
        3439  +
        3440  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3441  +
                            RestJson<L>,
        3442  +
                            crate::operation_shape::HttpPrefixHeaders,
        3443  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpPrefixHeaders, S>
        3444  +
                        >,
        3445  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3446  +
                            RestJson<L>,
        3447  +
                            crate::operation_shape::HttpPrefixHeaders,
        3448  +
                            ModelPl::Output
        3449  +
                        >,
        3450  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3451  +
                            RestJson<L>,
        3452  +
                            crate::operation_shape::HttpPrefixHeaders,
        3453  +
                            <
        3454  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3455  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3456  +
                                    RestJson<L>,
        3457  +
                                    crate::operation_shape::HttpPrefixHeaders,
        3458  +
                                    ModelPl::Output
        3459  +
                                >
        3460  +
                            >::Output
        3461  +
                        >,
        3462  +
        3463  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3464  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3465  +
        3466  +
                    {
        3467  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3468  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3469  +
        let svc = crate::operation_shape::HttpPrefixHeaders::from_service(service);
        3470  +
        let svc = self.model_plugin.apply(svc);
        3471  +
        let svc =
        3472  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3473  +
                .apply(svc);
        3474  +
        let svc = self.http_plugin.apply(svc);
        3475  +
        self.http_prefix_headers_custom(svc)
        3476  +
    }
        3477  +
        3478  +
    /// Sets the [`HttpPrefixHeaders`](crate::operation_shape::HttpPrefixHeaders) to a custom [`Service`](tower::Service).
        3479  +
    /// not constrained by the Smithy contract.
        3480  +
    fn http_prefix_headers_custom<S>(mut self, svc: S) -> Self
        3481  +
    where
        3482  +
        S: ::tower::Service<
        3483  +
                ::http::Request<Body>,
        3484  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3485  +
                Error = ::std::convert::Infallible,
        3486  +
            > + Clone
        3487  +
            + Send
        3488  +
            + 'static,
        3489  +
        S::Future: Send + 'static,
        3490  +
    {
        3491  +
        self.http_prefix_headers = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3492  +
        self
        3493  +
    }
        3494  +
        3495  +
    /// Sets the [`HttpPrefixHeadersInResponse`](crate::operation_shape::HttpPrefixHeadersInResponse) operation.
        3496  +
    ///
        3497  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3498  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3499  +
    ///
        3500  +
    /// # Example
        3501  +
    ///
        3502  +
    /// ```no_run
        3503  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3504  +
    ///
        3505  +
    /// use rest_json_http0x::{input, output, error};
        3506  +
    ///
        3507  +
    /// async fn handler(input: input::HttpPrefixHeadersInResponseInput) -> output::HttpPrefixHeadersInResponseOutput {
        3508  +
    ///     todo!()
        3509  +
    /// }
        3510  +
    ///
        3511  +
    /// let config = RestJsonConfig::builder().build();
        3512  +
    /// let app = RestJson::builder(config)
        3513  +
    ///     .http_prefix_headers_in_response(handler)
        3514  +
    ///     /* Set other handlers */
        3515  +
    ///     .build()
        3516  +
    ///     .unwrap();
        3517  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3518  +
    /// ```
        3519  +
    ///
        3520  +
                    pub fn http_prefix_headers_in_response<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        3521  +
                    where
        3522  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpPrefixHeadersInResponse, HandlerExtractors>,
        3523  +
        3524  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3525  +
                            RestJson<L>,
        3526  +
                            crate::operation_shape::HttpPrefixHeadersInResponse,
        3527  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpPrefixHeadersInResponse, HandlerType>
        3528  +
                        >,
        3529  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3530  +
                            RestJson<L>,
        3531  +
                            crate::operation_shape::HttpPrefixHeadersInResponse,
        3532  +
                            ModelPl::Output
        3533  +
                        >,
        3534  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3535  +
                            RestJson<L>,
        3536  +
                            crate::operation_shape::HttpPrefixHeadersInResponse,
        3537  +
                            <
        3538  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3539  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3540  +
                                    RestJson<L>,
        3541  +
                                    crate::operation_shape::HttpPrefixHeadersInResponse,
        3542  +
                                    ModelPl::Output
        3543  +
                                >
        3544  +
                            >::Output
        3545  +
                        >,
        3546  +
        3547  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3548  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3549  +
        3550  +
                    {
        3551  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3552  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3553  +
        let svc = crate::operation_shape::HttpPrefixHeadersInResponse::from_handler(handler);
        3554  +
        let svc = self.model_plugin.apply(svc);
        3555  +
        let svc =
        3556  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3557  +
                .apply(svc);
        3558  +
        let svc = self.http_plugin.apply(svc);
        3559  +
        self.http_prefix_headers_in_response_custom(svc)
        3560  +
    }
        3561  +
        3562  +
    /// Sets the [`HttpPrefixHeadersInResponse`](crate::operation_shape::HttpPrefixHeadersInResponse) operation.
        3563  +
    ///
        3564  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3565  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3566  +
    ///
        3567  +
    /// # Example
        3568  +
    ///
        3569  +
    /// ```no_run
        3570  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3571  +
    ///
        3572  +
    /// use rest_json_http0x::{input, output, error};
        3573  +
    ///
        3574  +
    /// async fn handler(input: input::HttpPrefixHeadersInResponseInput) -> Result<output::HttpPrefixHeadersInResponseOutput, std::convert::Infallible> {
        3575  +
    ///     todo!()
        3576  +
    /// }
        3577  +
    ///
        3578  +
    /// let config = RestJsonConfig::builder().build();
        3579  +
    /// let svc = ::tower::util::service_fn(handler);
        3580  +
    /// let app = RestJson::builder(config)
        3581  +
    ///     .http_prefix_headers_in_response_service(svc)
        3582  +
    ///     /* Set other handlers */
        3583  +
    ///     .build()
        3584  +
    ///     .unwrap();
        3585  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3586  +
    /// ```
        3587  +
    ///
        3588  +
                    pub fn http_prefix_headers_in_response_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        3589  +
                    where
        3590  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpPrefixHeadersInResponse, ServiceExtractors>,
        3591  +
        3592  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3593  +
                            RestJson<L>,
        3594  +
                            crate::operation_shape::HttpPrefixHeadersInResponse,
        3595  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpPrefixHeadersInResponse, S>
        3596  +
                        >,
        3597  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3598  +
                            RestJson<L>,
        3599  +
                            crate::operation_shape::HttpPrefixHeadersInResponse,
        3600  +
                            ModelPl::Output
        3601  +
                        >,
        3602  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3603  +
                            RestJson<L>,
        3604  +
                            crate::operation_shape::HttpPrefixHeadersInResponse,
        3605  +
                            <
        3606  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3607  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3608  +
                                    RestJson<L>,
        3609  +
                                    crate::operation_shape::HttpPrefixHeadersInResponse,
        3610  +
                                    ModelPl::Output
        3611  +
                                >
        3612  +
                            >::Output
        3613  +
                        >,
        3614  +
        3615  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3616  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3617  +
        3618  +
                    {
        3619  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3620  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3621  +
        let svc = crate::operation_shape::HttpPrefixHeadersInResponse::from_service(service);
        3622  +
        let svc = self.model_plugin.apply(svc);
        3623  +
        let svc =
        3624  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3625  +
                .apply(svc);
        3626  +
        let svc = self.http_plugin.apply(svc);
        3627  +
        self.http_prefix_headers_in_response_custom(svc)
        3628  +
    }
        3629  +
        3630  +
    /// Sets the [`HttpPrefixHeadersInResponse`](crate::operation_shape::HttpPrefixHeadersInResponse) to a custom [`Service`](tower::Service).
        3631  +
    /// not constrained by the Smithy contract.
        3632  +
    fn http_prefix_headers_in_response_custom<S>(mut self, svc: S) -> Self
        3633  +
    where
        3634  +
        S: ::tower::Service<
        3635  +
                ::http::Request<Body>,
        3636  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3637  +
                Error = ::std::convert::Infallible,
        3638  +
            > + Clone
        3639  +
            + Send
        3640  +
            + 'static,
        3641  +
        S::Future: Send + 'static,
        3642  +
    {
        3643  +
        self.http_prefix_headers_in_response =
        3644  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3645  +
        self
        3646  +
    }
        3647  +
        3648  +
    /// Sets the [`HttpRequestWithFloatLabels`](crate::operation_shape::HttpRequestWithFloatLabels) operation.
        3649  +
    ///
        3650  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3651  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3652  +
    ///
        3653  +
    /// # Example
        3654  +
    ///
        3655  +
    /// ```no_run
        3656  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3657  +
    ///
        3658  +
    /// use rest_json_http0x::{input, output, error};
        3659  +
    ///
        3660  +
    /// async fn handler(input: input::HttpRequestWithFloatLabelsInput) -> Result<output::HttpRequestWithFloatLabelsOutput, error::HttpRequestWithFloatLabelsError> {
        3661  +
    ///     todo!()
        3662  +
    /// }
        3663  +
    ///
        3664  +
    /// let config = RestJsonConfig::builder().build();
        3665  +
    /// let app = RestJson::builder(config)
        3666  +
    ///     .http_request_with_float_labels(handler)
        3667  +
    ///     /* Set other handlers */
        3668  +
    ///     .build()
        3669  +
    ///     .unwrap();
        3670  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3671  +
    /// ```
        3672  +
    ///
        3673  +
                    pub fn http_request_with_float_labels<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        3674  +
                    where
        3675  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpRequestWithFloatLabels, HandlerExtractors>,
        3676  +
        3677  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3678  +
                            RestJson<L>,
        3679  +
                            crate::operation_shape::HttpRequestWithFloatLabels,
        3680  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpRequestWithFloatLabels, HandlerType>
        3681  +
                        >,
        3682  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3683  +
                            RestJson<L>,
        3684  +
                            crate::operation_shape::HttpRequestWithFloatLabels,
        3685  +
                            ModelPl::Output
        3686  +
                        >,
        3687  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3688  +
                            RestJson<L>,
        3689  +
                            crate::operation_shape::HttpRequestWithFloatLabels,
        3690  +
                            <
        3691  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3692  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3693  +
                                    RestJson<L>,
        3694  +
                                    crate::operation_shape::HttpRequestWithFloatLabels,
        3695  +
                                    ModelPl::Output
        3696  +
                                >
        3697  +
                            >::Output
        3698  +
                        >,
        3699  +
        3700  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3701  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3702  +
        3703  +
                    {
        3704  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3705  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3706  +
        let svc = crate::operation_shape::HttpRequestWithFloatLabels::from_handler(handler);
        3707  +
        let svc = self.model_plugin.apply(svc);
        3708  +
        let svc =
        3709  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3710  +
                .apply(svc);
        3711  +
        let svc = self.http_plugin.apply(svc);
        3712  +
        self.http_request_with_float_labels_custom(svc)
        3713  +
    }
        3714  +
        3715  +
    /// Sets the [`HttpRequestWithFloatLabels`](crate::operation_shape::HttpRequestWithFloatLabels) operation.
        3716  +
    ///
        3717  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3718  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3719  +
    ///
        3720  +
    /// # Example
        3721  +
    ///
        3722  +
    /// ```no_run
        3723  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3724  +
    ///
        3725  +
    /// use rest_json_http0x::{input, output, error};
        3726  +
    ///
        3727  +
    /// async fn handler(input: input::HttpRequestWithFloatLabelsInput) -> Result<output::HttpRequestWithFloatLabelsOutput, error::HttpRequestWithFloatLabelsError> {
        3728  +
    ///     todo!()
        3729  +
    /// }
        3730  +
    ///
        3731  +
    /// let config = RestJsonConfig::builder().build();
        3732  +
    /// let svc = ::tower::util::service_fn(handler);
        3733  +
    /// let app = RestJson::builder(config)
        3734  +
    ///     .http_request_with_float_labels_service(svc)
        3735  +
    ///     /* Set other handlers */
        3736  +
    ///     .build()
        3737  +
    ///     .unwrap();
        3738  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3739  +
    /// ```
        3740  +
    ///
        3741  +
                    pub fn http_request_with_float_labels_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        3742  +
                    where
        3743  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpRequestWithFloatLabels, ServiceExtractors>,
        3744  +
        3745  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3746  +
                            RestJson<L>,
        3747  +
                            crate::operation_shape::HttpRequestWithFloatLabels,
        3748  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpRequestWithFloatLabels, S>
        3749  +
                        >,
        3750  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3751  +
                            RestJson<L>,
        3752  +
                            crate::operation_shape::HttpRequestWithFloatLabels,
        3753  +
                            ModelPl::Output
        3754  +
                        >,
        3755  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3756  +
                            RestJson<L>,
        3757  +
                            crate::operation_shape::HttpRequestWithFloatLabels,
        3758  +
                            <
        3759  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3760  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3761  +
                                    RestJson<L>,
        3762  +
                                    crate::operation_shape::HttpRequestWithFloatLabels,
        3763  +
                                    ModelPl::Output
        3764  +
                                >
        3765  +
                            >::Output
        3766  +
                        >,
        3767  +
        3768  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3769  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3770  +
        3771  +
                    {
        3772  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3773  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3774  +
        let svc = crate::operation_shape::HttpRequestWithFloatLabels::from_service(service);
        3775  +
        let svc = self.model_plugin.apply(svc);
        3776  +
        let svc =
        3777  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3778  +
                .apply(svc);
        3779  +
        let svc = self.http_plugin.apply(svc);
        3780  +
        self.http_request_with_float_labels_custom(svc)
        3781  +
    }
        3782  +
        3783  +
    /// Sets the [`HttpRequestWithFloatLabels`](crate::operation_shape::HttpRequestWithFloatLabels) to a custom [`Service`](tower::Service).
        3784  +
    /// not constrained by the Smithy contract.
        3785  +
    fn http_request_with_float_labels_custom<S>(mut self, svc: S) -> Self
        3786  +
    where
        3787  +
        S: ::tower::Service<
        3788  +
                ::http::Request<Body>,
        3789  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3790  +
                Error = ::std::convert::Infallible,
        3791  +
            > + Clone
        3792  +
            + Send
        3793  +
            + 'static,
        3794  +
        S::Future: Send + 'static,
        3795  +
    {
        3796  +
        self.http_request_with_float_labels =
        3797  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3798  +
        self
        3799  +
    }
        3800  +
        3801  +
    /// Sets the [`HttpRequestWithGreedyLabelInPath`](crate::operation_shape::HttpRequestWithGreedyLabelInPath) operation.
        3802  +
    ///
        3803  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3804  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3805  +
    ///
        3806  +
    /// # Example
        3807  +
    ///
        3808  +
    /// ```no_run
        3809  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3810  +
    ///
        3811  +
    /// use rest_json_http0x::{input, output, error};
        3812  +
    ///
        3813  +
    /// async fn handler(input: input::HttpRequestWithGreedyLabelInPathInput) -> Result<output::HttpRequestWithGreedyLabelInPathOutput, error::HttpRequestWithGreedyLabelInPathError> {
        3814  +
    ///     todo!()
        3815  +
    /// }
        3816  +
    ///
        3817  +
    /// let config = RestJsonConfig::builder().build();
        3818  +
    /// let app = RestJson::builder(config)
        3819  +
    ///     .http_request_with_greedy_label_in_path(handler)
        3820  +
    ///     /* Set other handlers */
        3821  +
    ///     .build()
        3822  +
    ///     .unwrap();
        3823  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3824  +
    /// ```
        3825  +
    ///
        3826  +
                    pub fn http_request_with_greedy_label_in_path<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        3827  +
                    where
        3828  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpRequestWithGreedyLabelInPath, HandlerExtractors>,
        3829  +
        3830  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3831  +
                            RestJson<L>,
        3832  +
                            crate::operation_shape::HttpRequestWithGreedyLabelInPath,
        3833  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpRequestWithGreedyLabelInPath, HandlerType>
        3834  +
                        >,
        3835  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3836  +
                            RestJson<L>,
        3837  +
                            crate::operation_shape::HttpRequestWithGreedyLabelInPath,
        3838  +
                            ModelPl::Output
        3839  +
                        >,
        3840  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3841  +
                            RestJson<L>,
        3842  +
                            crate::operation_shape::HttpRequestWithGreedyLabelInPath,
        3843  +
                            <
        3844  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3845  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3846  +
                                    RestJson<L>,
        3847  +
                                    crate::operation_shape::HttpRequestWithGreedyLabelInPath,
        3848  +
                                    ModelPl::Output
        3849  +
                                >
        3850  +
                            >::Output
        3851  +
                        >,
        3852  +
        3853  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3854  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3855  +
        3856  +
                    {
        3857  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3858  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3859  +
        let svc = crate::operation_shape::HttpRequestWithGreedyLabelInPath::from_handler(handler);
        3860  +
        let svc = self.model_plugin.apply(svc);
        3861  +
        let svc =
        3862  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3863  +
                .apply(svc);
        3864  +
        let svc = self.http_plugin.apply(svc);
        3865  +
        self.http_request_with_greedy_label_in_path_custom(svc)
        3866  +
    }
        3867  +
        3868  +
    /// Sets the [`HttpRequestWithGreedyLabelInPath`](crate::operation_shape::HttpRequestWithGreedyLabelInPath) operation.
        3869  +
    ///
        3870  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3871  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3872  +
    ///
        3873  +
    /// # Example
        3874  +
    ///
        3875  +
    /// ```no_run
        3876  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3877  +
    ///
        3878  +
    /// use rest_json_http0x::{input, output, error};
        3879  +
    ///
        3880  +
    /// async fn handler(input: input::HttpRequestWithGreedyLabelInPathInput) -> Result<output::HttpRequestWithGreedyLabelInPathOutput, error::HttpRequestWithGreedyLabelInPathError> {
        3881  +
    ///     todo!()
        3882  +
    /// }
        3883  +
    ///
        3884  +
    /// let config = RestJsonConfig::builder().build();
        3885  +
    /// let svc = ::tower::util::service_fn(handler);
        3886  +
    /// let app = RestJson::builder(config)
        3887  +
    ///     .http_request_with_greedy_label_in_path_service(svc)
        3888  +
    ///     /* Set other handlers */
        3889  +
    ///     .build()
        3890  +
    ///     .unwrap();
        3891  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3892  +
    /// ```
        3893  +
    ///
        3894  +
                    pub fn http_request_with_greedy_label_in_path_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        3895  +
                    where
        3896  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpRequestWithGreedyLabelInPath, ServiceExtractors>,
        3897  +
        3898  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3899  +
                            RestJson<L>,
        3900  +
                            crate::operation_shape::HttpRequestWithGreedyLabelInPath,
        3901  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpRequestWithGreedyLabelInPath, S>
        3902  +
                        >,
        3903  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3904  +
                            RestJson<L>,
        3905  +
                            crate::operation_shape::HttpRequestWithGreedyLabelInPath,
        3906  +
                            ModelPl::Output
        3907  +
                        >,
        3908  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3909  +
                            RestJson<L>,
        3910  +
                            crate::operation_shape::HttpRequestWithGreedyLabelInPath,
        3911  +
                            <
        3912  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3913  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3914  +
                                    RestJson<L>,
        3915  +
                                    crate::operation_shape::HttpRequestWithGreedyLabelInPath,
        3916  +
                                    ModelPl::Output
        3917  +
                                >
        3918  +
                            >::Output
        3919  +
                        >,
        3920  +
        3921  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3922  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3923  +
        3924  +
                    {
        3925  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3926  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3927  +
        let svc = crate::operation_shape::HttpRequestWithGreedyLabelInPath::from_service(service);
        3928  +
        let svc = self.model_plugin.apply(svc);
        3929  +
        let svc =
        3930  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3931  +
                .apply(svc);
        3932  +
        let svc = self.http_plugin.apply(svc);
        3933  +
        self.http_request_with_greedy_label_in_path_custom(svc)
        3934  +
    }
        3935  +
        3936  +
    /// Sets the [`HttpRequestWithGreedyLabelInPath`](crate::operation_shape::HttpRequestWithGreedyLabelInPath) to a custom [`Service`](tower::Service).
        3937  +
    /// not constrained by the Smithy contract.
        3938  +
    fn http_request_with_greedy_label_in_path_custom<S>(mut self, svc: S) -> Self
        3939  +
    where
        3940  +
        S: ::tower::Service<
        3941  +
                ::http::Request<Body>,
        3942  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3943  +
                Error = ::std::convert::Infallible,
        3944  +
            > + Clone
        3945  +
            + Send
        3946  +
            + 'static,
        3947  +
        S::Future: Send + 'static,
        3948  +
    {
        3949  +
        self.http_request_with_greedy_label_in_path =
        3950  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3951  +
        self
        3952  +
    }
        3953  +
        3954  +
    /// Sets the [`HttpRequestWithLabels`](crate::operation_shape::HttpRequestWithLabels) operation.
        3955  +
    ///
        3956  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3957  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3958  +
    ///
        3959  +
    /// # Example
        3960  +
    ///
        3961  +
    /// ```no_run
        3962  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        3963  +
    ///
        3964  +
    /// use rest_json_http0x::{input, output, error};
        3965  +
    ///
        3966  +
    /// async fn handler(input: input::HttpRequestWithLabelsInput) -> Result<output::HttpRequestWithLabelsOutput, error::HttpRequestWithLabelsError> {
        3967  +
    ///     todo!()
        3968  +
    /// }
        3969  +
    ///
        3970  +
    /// let config = RestJsonConfig::builder().build();
        3971  +
    /// let app = RestJson::builder(config)
        3972  +
    ///     .http_request_with_labels(handler)
        3973  +
    ///     /* Set other handlers */
        3974  +
    ///     .build()
        3975  +
    ///     .unwrap();
        3976  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        3977  +
    /// ```
        3978  +
    ///
        3979  +
                    pub fn http_request_with_labels<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        3980  +
                    where
        3981  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpRequestWithLabels, HandlerExtractors>,
        3982  +
        3983  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3984  +
                            RestJson<L>,
        3985  +
                            crate::operation_shape::HttpRequestWithLabels,
        3986  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpRequestWithLabels, HandlerType>
        3987  +
                        >,
        3988  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3989  +
                            RestJson<L>,
        3990  +
                            crate::operation_shape::HttpRequestWithLabels,
        3991  +
                            ModelPl::Output
        3992  +
                        >,
        3993  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3994  +
                            RestJson<L>,
        3995  +
                            crate::operation_shape::HttpRequestWithLabels,
        3996  +
                            <
        3997  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3998  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3999  +
                                    RestJson<L>,
        4000  +
                                    crate::operation_shape::HttpRequestWithLabels,
        4001  +
                                    ModelPl::Output
        4002  +
                                >
        4003  +
                            >::Output
        4004  +
                        >,
        4005  +
        4006  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4007  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4008  +
        4009  +
                    {
        4010  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4011  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4012  +
        let svc = crate::operation_shape::HttpRequestWithLabels::from_handler(handler);
        4013  +
        let svc = self.model_plugin.apply(svc);
        4014  +
        let svc =
        4015  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4016  +
                .apply(svc);
        4017  +
        let svc = self.http_plugin.apply(svc);
        4018  +
        self.http_request_with_labels_custom(svc)
        4019  +
    }
        4020  +
        4021  +
    /// Sets the [`HttpRequestWithLabels`](crate::operation_shape::HttpRequestWithLabels) operation.
        4022  +
    ///
        4023  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4024  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4025  +
    ///
        4026  +
    /// # Example
        4027  +
    ///
        4028  +
    /// ```no_run
        4029  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4030  +
    ///
        4031  +
    /// use rest_json_http0x::{input, output, error};
        4032  +
    ///
        4033  +
    /// async fn handler(input: input::HttpRequestWithLabelsInput) -> Result<output::HttpRequestWithLabelsOutput, error::HttpRequestWithLabelsError> {
        4034  +
    ///     todo!()
        4035  +
    /// }
        4036  +
    ///
        4037  +
    /// let config = RestJsonConfig::builder().build();
        4038  +
    /// let svc = ::tower::util::service_fn(handler);
        4039  +
    /// let app = RestJson::builder(config)
        4040  +
    ///     .http_request_with_labels_service(svc)
        4041  +
    ///     /* Set other handlers */
        4042  +
    ///     .build()
        4043  +
    ///     .unwrap();
        4044  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4045  +
    /// ```
        4046  +
    ///
        4047  +
                    pub fn http_request_with_labels_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        4048  +
                    where
        4049  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpRequestWithLabels, ServiceExtractors>,
        4050  +
        4051  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4052  +
                            RestJson<L>,
        4053  +
                            crate::operation_shape::HttpRequestWithLabels,
        4054  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpRequestWithLabels, S>
        4055  +
                        >,
        4056  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4057  +
                            RestJson<L>,
        4058  +
                            crate::operation_shape::HttpRequestWithLabels,
        4059  +
                            ModelPl::Output
        4060  +
                        >,
        4061  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4062  +
                            RestJson<L>,
        4063  +
                            crate::operation_shape::HttpRequestWithLabels,
        4064  +
                            <
        4065  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4066  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4067  +
                                    RestJson<L>,
        4068  +
                                    crate::operation_shape::HttpRequestWithLabels,
        4069  +
                                    ModelPl::Output
        4070  +
                                >
        4071  +
                            >::Output
        4072  +
                        >,
        4073  +
        4074  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4075  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4076  +
        4077  +
                    {
        4078  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4079  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4080  +
        let svc = crate::operation_shape::HttpRequestWithLabels::from_service(service);
        4081  +
        let svc = self.model_plugin.apply(svc);
        4082  +
        let svc =
        4083  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4084  +
                .apply(svc);
        4085  +
        let svc = self.http_plugin.apply(svc);
        4086  +
        self.http_request_with_labels_custom(svc)
        4087  +
    }
        4088  +
        4089  +
    /// Sets the [`HttpRequestWithLabels`](crate::operation_shape::HttpRequestWithLabels) to a custom [`Service`](tower::Service).
        4090  +
    /// not constrained by the Smithy contract.
        4091  +
    fn http_request_with_labels_custom<S>(mut self, svc: S) -> Self
        4092  +
    where
        4093  +
        S: ::tower::Service<
        4094  +
                ::http::Request<Body>,
        4095  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        4096  +
                Error = ::std::convert::Infallible,
        4097  +
            > + Clone
        4098  +
            + Send
        4099  +
            + 'static,
        4100  +
        S::Future: Send + 'static,
        4101  +
    {
        4102  +
        self.http_request_with_labels =
        4103  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        4104  +
        self
        4105  +
    }
        4106  +
        4107  +
    /// Sets the [`HttpRequestWithLabelsAndTimestampFormat`](crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat) operation.
        4108  +
    ///
        4109  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4110  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4111  +
    ///
        4112  +
    /// # Example
        4113  +
    ///
        4114  +
    /// ```no_run
        4115  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4116  +
    ///
        4117  +
    /// use rest_json_http0x::{input, output, error};
        4118  +
    ///
        4119  +
    /// async fn handler(input: input::HttpRequestWithLabelsAndTimestampFormatInput) -> Result<output::HttpRequestWithLabelsAndTimestampFormatOutput, error::HttpRequestWithLabelsAndTimestampFormatError> {
        4120  +
    ///     todo!()
        4121  +
    /// }
        4122  +
    ///
        4123  +
    /// let config = RestJsonConfig::builder().build();
        4124  +
    /// let app = RestJson::builder(config)
        4125  +
    ///     .http_request_with_labels_and_timestamp_format(handler)
        4126  +
    ///     /* Set other handlers */
        4127  +
    ///     .build()
        4128  +
    ///     .unwrap();
        4129  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4130  +
    /// ```
        4131  +
    ///
        4132  +
                    pub fn http_request_with_labels_and_timestamp_format<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        4133  +
                    where
        4134  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat, HandlerExtractors>,
        4135  +
        4136  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4137  +
                            RestJson<L>,
        4138  +
                            crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
        4139  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat, HandlerType>
        4140  +
                        >,
        4141  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4142  +
                            RestJson<L>,
        4143  +
                            crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
        4144  +
                            ModelPl::Output
        4145  +
                        >,
        4146  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4147  +
                            RestJson<L>,
        4148  +
                            crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
        4149  +
                            <
        4150  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4151  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4152  +
                                    RestJson<L>,
        4153  +
                                    crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
        4154  +
                                    ModelPl::Output
        4155  +
                                >
        4156  +
                            >::Output
        4157  +
                        >,
        4158  +
        4159  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4160  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4161  +
        4162  +
                    {
        4163  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4164  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4165  +
        let svc =
        4166  +
            crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat::from_handler(handler);
        4167  +
        let svc = self.model_plugin.apply(svc);
        4168  +
        let svc =
        4169  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4170  +
                .apply(svc);
        4171  +
        let svc = self.http_plugin.apply(svc);
        4172  +
        self.http_request_with_labels_and_timestamp_format_custom(svc)
        4173  +
    }
        4174  +
        4175  +
    /// Sets the [`HttpRequestWithLabelsAndTimestampFormat`](crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat) operation.
        4176  +
    ///
        4177  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4178  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4179  +
    ///
        4180  +
    /// # Example
        4181  +
    ///
        4182  +
    /// ```no_run
        4183  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4184  +
    ///
        4185  +
    /// use rest_json_http0x::{input, output, error};
        4186  +
    ///
        4187  +
    /// async fn handler(input: input::HttpRequestWithLabelsAndTimestampFormatInput) -> Result<output::HttpRequestWithLabelsAndTimestampFormatOutput, error::HttpRequestWithLabelsAndTimestampFormatError> {
        4188  +
    ///     todo!()
        4189  +
    /// }
        4190  +
    ///
        4191  +
    /// let config = RestJsonConfig::builder().build();
        4192  +
    /// let svc = ::tower::util::service_fn(handler);
        4193  +
    /// let app = RestJson::builder(config)
        4194  +
    ///     .http_request_with_labels_and_timestamp_format_service(svc)
        4195  +
    ///     /* Set other handlers */
        4196  +
    ///     .build()
        4197  +
    ///     .unwrap();
        4198  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4199  +
    /// ```
        4200  +
    ///
        4201  +
                    pub fn http_request_with_labels_and_timestamp_format_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        4202  +
                    where
        4203  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat, ServiceExtractors>,
        4204  +
        4205  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4206  +
                            RestJson<L>,
        4207  +
                            crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
        4208  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat, S>
        4209  +
                        >,
        4210  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4211  +
                            RestJson<L>,
        4212  +
                            crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
        4213  +
                            ModelPl::Output
        4214  +
                        >,
        4215  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4216  +
                            RestJson<L>,
        4217  +
                            crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
        4218  +
                            <
        4219  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4220  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4221  +
                                    RestJson<L>,
        4222  +
                                    crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
        4223  +
                                    ModelPl::Output
        4224  +
                                >
        4225  +
                            >::Output
        4226  +
                        >,
        4227  +
        4228  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4229  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4230  +
        4231  +
                    {
        4232  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4233  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4234  +
        let svc =
        4235  +
            crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat::from_service(service);
        4236  +
        let svc = self.model_plugin.apply(svc);
        4237  +
        let svc =
        4238  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4239  +
                .apply(svc);
        4240  +
        let svc = self.http_plugin.apply(svc);
        4241  +
        self.http_request_with_labels_and_timestamp_format_custom(svc)
        4242  +
    }
        4243  +
        4244  +
    /// Sets the [`HttpRequestWithLabelsAndTimestampFormat`](crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat) to a custom [`Service`](tower::Service).
        4245  +
    /// not constrained by the Smithy contract.
        4246  +
    fn http_request_with_labels_and_timestamp_format_custom<S>(mut self, svc: S) -> Self
        4247  +
    where
        4248  +
        S: ::tower::Service<
        4249  +
                ::http::Request<Body>,
        4250  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        4251  +
                Error = ::std::convert::Infallible,
        4252  +
            > + Clone
        4253  +
            + Send
        4254  +
            + 'static,
        4255  +
        S::Future: Send + 'static,
        4256  +
    {
        4257  +
        self.http_request_with_labels_and_timestamp_format =
        4258  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        4259  +
        self
        4260  +
    }
        4261  +
        4262  +
    /// Sets the [`HttpRequestWithRegexLiteral`](crate::operation_shape::HttpRequestWithRegexLiteral) operation.
        4263  +
    ///
        4264  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4265  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4266  +
    ///
        4267  +
    /// # Example
        4268  +
    ///
        4269  +
    /// ```no_run
        4270  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4271  +
    ///
        4272  +
    /// use rest_json_http0x::{input, output, error};
        4273  +
    ///
        4274  +
    /// async fn handler(input: input::HttpRequestWithRegexLiteralInput) -> Result<output::HttpRequestWithRegexLiteralOutput, error::HttpRequestWithRegexLiteralError> {
        4275  +
    ///     todo!()
        4276  +
    /// }
        4277  +
    ///
        4278  +
    /// let config = RestJsonConfig::builder().build();
        4279  +
    /// let app = RestJson::builder(config)
        4280  +
    ///     .http_request_with_regex_literal(handler)
        4281  +
    ///     /* Set other handlers */
        4282  +
    ///     .build()
        4283  +
    ///     .unwrap();
        4284  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4285  +
    /// ```
        4286  +
    ///
        4287  +
                    pub fn http_request_with_regex_literal<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        4288  +
                    where
        4289  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpRequestWithRegexLiteral, HandlerExtractors>,
        4290  +
        4291  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4292  +
                            RestJson<L>,
        4293  +
                            crate::operation_shape::HttpRequestWithRegexLiteral,
        4294  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpRequestWithRegexLiteral, HandlerType>
        4295  +
                        >,
        4296  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4297  +
                            RestJson<L>,
        4298  +
                            crate::operation_shape::HttpRequestWithRegexLiteral,
        4299  +
                            ModelPl::Output
        4300  +
                        >,
        4301  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4302  +
                            RestJson<L>,
        4303  +
                            crate::operation_shape::HttpRequestWithRegexLiteral,
        4304  +
                            <
        4305  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4306  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4307  +
                                    RestJson<L>,
        4308  +
                                    crate::operation_shape::HttpRequestWithRegexLiteral,
        4309  +
                                    ModelPl::Output
        4310  +
                                >
        4311  +
                            >::Output
        4312  +
                        >,
        4313  +
        4314  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4315  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4316  +
        4317  +
                    {
        4318  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4319  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4320  +
        let svc = crate::operation_shape::HttpRequestWithRegexLiteral::from_handler(handler);
        4321  +
        let svc = self.model_plugin.apply(svc);
        4322  +
        let svc =
        4323  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4324  +
                .apply(svc);
        4325  +
        let svc = self.http_plugin.apply(svc);
        4326  +
        self.http_request_with_regex_literal_custom(svc)
        4327  +
    }
        4328  +
        4329  +
    /// Sets the [`HttpRequestWithRegexLiteral`](crate::operation_shape::HttpRequestWithRegexLiteral) operation.
        4330  +
    ///
        4331  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4332  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4333  +
    ///
        4334  +
    /// # Example
        4335  +
    ///
        4336  +
    /// ```no_run
        4337  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4338  +
    ///
        4339  +
    /// use rest_json_http0x::{input, output, error};
        4340  +
    ///
        4341  +
    /// async fn handler(input: input::HttpRequestWithRegexLiteralInput) -> Result<output::HttpRequestWithRegexLiteralOutput, error::HttpRequestWithRegexLiteralError> {
        4342  +
    ///     todo!()
        4343  +
    /// }
        4344  +
    ///
        4345  +
    /// let config = RestJsonConfig::builder().build();
        4346  +
    /// let svc = ::tower::util::service_fn(handler);
        4347  +
    /// let app = RestJson::builder(config)
        4348  +
    ///     .http_request_with_regex_literal_service(svc)
        4349  +
    ///     /* Set other handlers */
        4350  +
    ///     .build()
        4351  +
    ///     .unwrap();
        4352  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4353  +
    /// ```
        4354  +
    ///
        4355  +
                    pub fn http_request_with_regex_literal_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        4356  +
                    where
        4357  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpRequestWithRegexLiteral, ServiceExtractors>,
        4358  +
        4359  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4360  +
                            RestJson<L>,
        4361  +
                            crate::operation_shape::HttpRequestWithRegexLiteral,
        4362  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpRequestWithRegexLiteral, S>
        4363  +
                        >,
        4364  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4365  +
                            RestJson<L>,
        4366  +
                            crate::operation_shape::HttpRequestWithRegexLiteral,
        4367  +
                            ModelPl::Output
        4368  +
                        >,
        4369  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4370  +
                            RestJson<L>,
        4371  +
                            crate::operation_shape::HttpRequestWithRegexLiteral,
        4372  +
                            <
        4373  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4374  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4375  +
                                    RestJson<L>,
        4376  +
                                    crate::operation_shape::HttpRequestWithRegexLiteral,
        4377  +
                                    ModelPl::Output
        4378  +
                                >
        4379  +
                            >::Output
        4380  +
                        >,
        4381  +
        4382  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4383  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4384  +
        4385  +
                    {
        4386  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4387  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4388  +
        let svc = crate::operation_shape::HttpRequestWithRegexLiteral::from_service(service);
        4389  +
        let svc = self.model_plugin.apply(svc);
        4390  +
        let svc =
        4391  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4392  +
                .apply(svc);
        4393  +
        let svc = self.http_plugin.apply(svc);
        4394  +
        self.http_request_with_regex_literal_custom(svc)
        4395  +
    }
        4396  +
        4397  +
    /// Sets the [`HttpRequestWithRegexLiteral`](crate::operation_shape::HttpRequestWithRegexLiteral) to a custom [`Service`](tower::Service).
        4398  +
    /// not constrained by the Smithy contract.
        4399  +
    fn http_request_with_regex_literal_custom<S>(mut self, svc: S) -> Self
        4400  +
    where
        4401  +
        S: ::tower::Service<
        4402  +
                ::http::Request<Body>,
        4403  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        4404  +
                Error = ::std::convert::Infallible,
        4405  +
            > + Clone
        4406  +
            + Send
        4407  +
            + 'static,
        4408  +
        S::Future: Send + 'static,
        4409  +
    {
        4410  +
        self.http_request_with_regex_literal =
        4411  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        4412  +
        self
        4413  +
    }
        4414  +
        4415  +
    /// Sets the [`HttpResponseCode`](crate::operation_shape::HttpResponseCode) operation.
        4416  +
    ///
        4417  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4418  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4419  +
    ///
        4420  +
    /// # Example
        4421  +
    ///
        4422  +
    /// ```no_run
        4423  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4424  +
    ///
        4425  +
    /// use rest_json_http0x::{input, output, error};
        4426  +
    ///
        4427  +
    /// async fn handler(input: input::HttpResponseCodeInput) -> output::HttpResponseCodeOutput {
        4428  +
    ///     todo!()
        4429  +
    /// }
        4430  +
    ///
        4431  +
    /// let config = RestJsonConfig::builder().build();
        4432  +
    /// let app = RestJson::builder(config)
        4433  +
    ///     .http_response_code(handler)
        4434  +
    ///     /* Set other handlers */
        4435  +
    ///     .build()
        4436  +
    ///     .unwrap();
        4437  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4438  +
    /// ```
        4439  +
    ///
        4440  +
                    pub fn http_response_code<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        4441  +
                    where
        4442  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpResponseCode, HandlerExtractors>,
        4443  +
        4444  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4445  +
                            RestJson<L>,
        4446  +
                            crate::operation_shape::HttpResponseCode,
        4447  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpResponseCode, HandlerType>
        4448  +
                        >,
        4449  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4450  +
                            RestJson<L>,
        4451  +
                            crate::operation_shape::HttpResponseCode,
        4452  +
                            ModelPl::Output
        4453  +
                        >,
        4454  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4455  +
                            RestJson<L>,
        4456  +
                            crate::operation_shape::HttpResponseCode,
        4457  +
                            <
        4458  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4459  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4460  +
                                    RestJson<L>,
        4461  +
                                    crate::operation_shape::HttpResponseCode,
        4462  +
                                    ModelPl::Output
        4463  +
                                >
        4464  +
                            >::Output
        4465  +
                        >,
        4466  +
        4467  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4468  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4469  +
        4470  +
                    {
        4471  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4472  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4473  +
        let svc = crate::operation_shape::HttpResponseCode::from_handler(handler);
        4474  +
        let svc = self.model_plugin.apply(svc);
        4475  +
        let svc =
        4476  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4477  +
                .apply(svc);
        4478  +
        let svc = self.http_plugin.apply(svc);
        4479  +
        self.http_response_code_custom(svc)
        4480  +
    }
        4481  +
        4482  +
    /// Sets the [`HttpResponseCode`](crate::operation_shape::HttpResponseCode) operation.
        4483  +
    ///
        4484  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4485  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4486  +
    ///
        4487  +
    /// # Example
        4488  +
    ///
        4489  +
    /// ```no_run
        4490  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4491  +
    ///
        4492  +
    /// use rest_json_http0x::{input, output, error};
        4493  +
    ///
        4494  +
    /// async fn handler(input: input::HttpResponseCodeInput) -> Result<output::HttpResponseCodeOutput, std::convert::Infallible> {
        4495  +
    ///     todo!()
        4496  +
    /// }
        4497  +
    ///
        4498  +
    /// let config = RestJsonConfig::builder().build();
        4499  +
    /// let svc = ::tower::util::service_fn(handler);
        4500  +
    /// let app = RestJson::builder(config)
        4501  +
    ///     .http_response_code_service(svc)
        4502  +
    ///     /* Set other handlers */
        4503  +
    ///     .build()
        4504  +
    ///     .unwrap();
        4505  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4506  +
    /// ```
        4507  +
    ///
        4508  +
                    pub fn http_response_code_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        4509  +
                    where
        4510  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpResponseCode, ServiceExtractors>,
        4511  +
        4512  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4513  +
                            RestJson<L>,
        4514  +
                            crate::operation_shape::HttpResponseCode,
        4515  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpResponseCode, S>
        4516  +
                        >,
        4517  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4518  +
                            RestJson<L>,
        4519  +
                            crate::operation_shape::HttpResponseCode,
        4520  +
                            ModelPl::Output
        4521  +
                        >,
        4522  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4523  +
                            RestJson<L>,
        4524  +
                            crate::operation_shape::HttpResponseCode,
        4525  +
                            <
        4526  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4527  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4528  +
                                    RestJson<L>,
        4529  +
                                    crate::operation_shape::HttpResponseCode,
        4530  +
                                    ModelPl::Output
        4531  +
                                >
        4532  +
                            >::Output
        4533  +
                        >,
        4534  +
        4535  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4536  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4537  +
        4538  +
                    {
        4539  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4540  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4541  +
        let svc = crate::operation_shape::HttpResponseCode::from_service(service);
        4542  +
        let svc = self.model_plugin.apply(svc);
        4543  +
        let svc =
        4544  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4545  +
                .apply(svc);
        4546  +
        let svc = self.http_plugin.apply(svc);
        4547  +
        self.http_response_code_custom(svc)
        4548  +
    }
        4549  +
        4550  +
    /// Sets the [`HttpResponseCode`](crate::operation_shape::HttpResponseCode) to a custom [`Service`](tower::Service).
        4551  +
    /// not constrained by the Smithy contract.
        4552  +
    fn http_response_code_custom<S>(mut self, svc: S) -> Self
        4553  +
    where
        4554  +
        S: ::tower::Service<
        4555  +
                ::http::Request<Body>,
        4556  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        4557  +
                Error = ::std::convert::Infallible,
        4558  +
            > + Clone
        4559  +
            + Send
        4560  +
            + 'static,
        4561  +
        S::Future: Send + 'static,
        4562  +
    {
        4563  +
        self.http_response_code = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        4564  +
        self
        4565  +
    }
        4566  +
        4567  +
    /// Sets the [`HttpStringPayload`](crate::operation_shape::HttpStringPayload) operation.
        4568  +
    ///
        4569  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4570  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4571  +
    ///
        4572  +
    /// # Example
        4573  +
    ///
        4574  +
    /// ```no_run
        4575  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4576  +
    ///
        4577  +
    /// use rest_json_http0x::{input, output, error};
        4578  +
    ///
        4579  +
    /// async fn handler(input: input::HttpStringPayloadInput) -> output::HttpStringPayloadOutput {
        4580  +
    ///     todo!()
        4581  +
    /// }
        4582  +
    ///
        4583  +
    /// let config = RestJsonConfig::builder().build();
        4584  +
    /// let app = RestJson::builder(config)
        4585  +
    ///     .http_string_payload(handler)
        4586  +
    ///     /* Set other handlers */
        4587  +
    ///     .build()
        4588  +
    ///     .unwrap();
        4589  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4590  +
    /// ```
        4591  +
    ///
        4592  +
                    pub fn http_string_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        4593  +
                    where
        4594  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpStringPayload, HandlerExtractors>,
        4595  +
        4596  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4597  +
                            RestJson<L>,
        4598  +
                            crate::operation_shape::HttpStringPayload,
        4599  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpStringPayload, HandlerType>
        4600  +
                        >,
        4601  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4602  +
                            RestJson<L>,
        4603  +
                            crate::operation_shape::HttpStringPayload,
        4604  +
                            ModelPl::Output
        4605  +
                        >,
        4606  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4607  +
                            RestJson<L>,
        4608  +
                            crate::operation_shape::HttpStringPayload,
        4609  +
                            <
        4610  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4611  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4612  +
                                    RestJson<L>,
        4613  +
                                    crate::operation_shape::HttpStringPayload,
        4614  +
                                    ModelPl::Output
        4615  +
                                >
        4616  +
                            >::Output
        4617  +
                        >,
        4618  +
        4619  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4620  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4621  +
        4622  +
                    {
        4623  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4624  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4625  +
        let svc = crate::operation_shape::HttpStringPayload::from_handler(handler);
        4626  +
        let svc = self.model_plugin.apply(svc);
        4627  +
        let svc =
        4628  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4629  +
                .apply(svc);
        4630  +
        let svc = self.http_plugin.apply(svc);
        4631  +
        self.http_string_payload_custom(svc)
        4632  +
    }
        4633  +
        4634  +
    /// Sets the [`HttpStringPayload`](crate::operation_shape::HttpStringPayload) operation.
        4635  +
    ///
        4636  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4637  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4638  +
    ///
        4639  +
    /// # Example
        4640  +
    ///
        4641  +
    /// ```no_run
        4642  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4643  +
    ///
        4644  +
    /// use rest_json_http0x::{input, output, error};
        4645  +
    ///
        4646  +
    /// async fn handler(input: input::HttpStringPayloadInput) -> Result<output::HttpStringPayloadOutput, std::convert::Infallible> {
        4647  +
    ///     todo!()
        4648  +
    /// }
        4649  +
    ///
        4650  +
    /// let config = RestJsonConfig::builder().build();
        4651  +
    /// let svc = ::tower::util::service_fn(handler);
        4652  +
    /// let app = RestJson::builder(config)
        4653  +
    ///     .http_string_payload_service(svc)
        4654  +
    ///     /* Set other handlers */
        4655  +
    ///     .build()
        4656  +
    ///     .unwrap();
        4657  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4658  +
    /// ```
        4659  +
    ///
        4660  +
                    pub fn http_string_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        4661  +
                    where
        4662  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpStringPayload, ServiceExtractors>,
        4663  +
        4664  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4665  +
                            RestJson<L>,
        4666  +
                            crate::operation_shape::HttpStringPayload,
        4667  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpStringPayload, S>
        4668  +
                        >,
        4669  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4670  +
                            RestJson<L>,
        4671  +
                            crate::operation_shape::HttpStringPayload,
        4672  +
                            ModelPl::Output
        4673  +
                        >,
        4674  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4675  +
                            RestJson<L>,
        4676  +
                            crate::operation_shape::HttpStringPayload,
        4677  +
                            <
        4678  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4679  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4680  +
                                    RestJson<L>,
        4681  +
                                    crate::operation_shape::HttpStringPayload,
        4682  +
                                    ModelPl::Output
        4683  +
                                >
        4684  +
                            >::Output
        4685  +
                        >,
        4686  +
        4687  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4688  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4689  +
        4690  +
                    {
        4691  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4692  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4693  +
        let svc = crate::operation_shape::HttpStringPayload::from_service(service);
        4694  +
        let svc = self.model_plugin.apply(svc);
        4695  +
        let svc =
        4696  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4697  +
                .apply(svc);
        4698  +
        let svc = self.http_plugin.apply(svc);
        4699  +
        self.http_string_payload_custom(svc)
        4700  +
    }
        4701  +
        4702  +
    /// Sets the [`HttpStringPayload`](crate::operation_shape::HttpStringPayload) to a custom [`Service`](tower::Service).
        4703  +
    /// not constrained by the Smithy contract.
        4704  +
    fn http_string_payload_custom<S>(mut self, svc: S) -> Self
        4705  +
    where
        4706  +
        S: ::tower::Service<
        4707  +
                ::http::Request<Body>,
        4708  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        4709  +
                Error = ::std::convert::Infallible,
        4710  +
            > + Clone
        4711  +
            + Send
        4712  +
            + 'static,
        4713  +
        S::Future: Send + 'static,
        4714  +
    {
        4715  +
        self.http_string_payload = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        4716  +
        self
        4717  +
    }
        4718  +
        4719  +
    /// Sets the [`IgnoreQueryParamsInResponse`](crate::operation_shape::IgnoreQueryParamsInResponse) operation.
        4720  +
    ///
        4721  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4722  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4723  +
    ///
        4724  +
    /// # Example
        4725  +
    ///
        4726  +
    /// ```no_run
        4727  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4728  +
    ///
        4729  +
    /// use rest_json_http0x::{input, output, error};
        4730  +
    ///
        4731  +
    /// async fn handler(input: input::IgnoreQueryParamsInResponseInput) -> output::IgnoreQueryParamsInResponseOutput {
        4732  +
    ///     todo!()
        4733  +
    /// }
        4734  +
    ///
        4735  +
    /// let config = RestJsonConfig::builder().build();
        4736  +
    /// let app = RestJson::builder(config)
        4737  +
    ///     .ignore_query_params_in_response(handler)
        4738  +
    ///     /* Set other handlers */
        4739  +
    ///     .build()
        4740  +
    ///     .unwrap();
        4741  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4742  +
    /// ```
        4743  +
    ///
        4744  +
                    pub fn ignore_query_params_in_response<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        4745  +
                    where
        4746  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::IgnoreQueryParamsInResponse, HandlerExtractors>,
        4747  +
        4748  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4749  +
                            RestJson<L>,
        4750  +
                            crate::operation_shape::IgnoreQueryParamsInResponse,
        4751  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::IgnoreQueryParamsInResponse, HandlerType>
        4752  +
                        >,
        4753  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4754  +
                            RestJson<L>,
        4755  +
                            crate::operation_shape::IgnoreQueryParamsInResponse,
        4756  +
                            ModelPl::Output
        4757  +
                        >,
        4758  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4759  +
                            RestJson<L>,
        4760  +
                            crate::operation_shape::IgnoreQueryParamsInResponse,
        4761  +
                            <
        4762  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4763  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4764  +
                                    RestJson<L>,
        4765  +
                                    crate::operation_shape::IgnoreQueryParamsInResponse,
        4766  +
                                    ModelPl::Output
        4767  +
                                >
        4768  +
                            >::Output
        4769  +
                        >,
        4770  +
        4771  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4772  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4773  +
        4774  +
                    {
        4775  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4776  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4777  +
        let svc = crate::operation_shape::IgnoreQueryParamsInResponse::from_handler(handler);
        4778  +
        let svc = self.model_plugin.apply(svc);
        4779  +
        let svc =
        4780  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4781  +
                .apply(svc);
        4782  +
        let svc = self.http_plugin.apply(svc);
        4783  +
        self.ignore_query_params_in_response_custom(svc)
        4784  +
    }
        4785  +
        4786  +
    /// Sets the [`IgnoreQueryParamsInResponse`](crate::operation_shape::IgnoreQueryParamsInResponse) operation.
        4787  +
    ///
        4788  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4789  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4790  +
    ///
        4791  +
    /// # Example
        4792  +
    ///
        4793  +
    /// ```no_run
        4794  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4795  +
    ///
        4796  +
    /// use rest_json_http0x::{input, output, error};
        4797  +
    ///
        4798  +
    /// async fn handler(input: input::IgnoreQueryParamsInResponseInput) -> Result<output::IgnoreQueryParamsInResponseOutput, std::convert::Infallible> {
        4799  +
    ///     todo!()
        4800  +
    /// }
        4801  +
    ///
        4802  +
    /// let config = RestJsonConfig::builder().build();
        4803  +
    /// let svc = ::tower::util::service_fn(handler);
        4804  +
    /// let app = RestJson::builder(config)
        4805  +
    ///     .ignore_query_params_in_response_service(svc)
        4806  +
    ///     /* Set other handlers */
        4807  +
    ///     .build()
        4808  +
    ///     .unwrap();
        4809  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4810  +
    /// ```
        4811  +
    ///
        4812  +
                    pub fn ignore_query_params_in_response_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        4813  +
                    where
        4814  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::IgnoreQueryParamsInResponse, ServiceExtractors>,
        4815  +
        4816  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4817  +
                            RestJson<L>,
        4818  +
                            crate::operation_shape::IgnoreQueryParamsInResponse,
        4819  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::IgnoreQueryParamsInResponse, S>
        4820  +
                        >,
        4821  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4822  +
                            RestJson<L>,
        4823  +
                            crate::operation_shape::IgnoreQueryParamsInResponse,
        4824  +
                            ModelPl::Output
        4825  +
                        >,
        4826  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4827  +
                            RestJson<L>,
        4828  +
                            crate::operation_shape::IgnoreQueryParamsInResponse,
        4829  +
                            <
        4830  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4831  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4832  +
                                    RestJson<L>,
        4833  +
                                    crate::operation_shape::IgnoreQueryParamsInResponse,
        4834  +
                                    ModelPl::Output
        4835  +
                                >
        4836  +
                            >::Output
        4837  +
                        >,
        4838  +
        4839  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4840  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4841  +
        4842  +
                    {
        4843  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4844  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4845  +
        let svc = crate::operation_shape::IgnoreQueryParamsInResponse::from_service(service);
        4846  +
        let svc = self.model_plugin.apply(svc);
        4847  +
        let svc =
        4848  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4849  +
                .apply(svc);
        4850  +
        let svc = self.http_plugin.apply(svc);
        4851  +
        self.ignore_query_params_in_response_custom(svc)
        4852  +
    }
        4853  +
        4854  +
    /// Sets the [`IgnoreQueryParamsInResponse`](crate::operation_shape::IgnoreQueryParamsInResponse) to a custom [`Service`](tower::Service).
        4855  +
    /// not constrained by the Smithy contract.
        4856  +
    fn ignore_query_params_in_response_custom<S>(mut self, svc: S) -> Self
        4857  +
    where
        4858  +
        S: ::tower::Service<
        4859  +
                ::http::Request<Body>,
        4860  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        4861  +
                Error = ::std::convert::Infallible,
        4862  +
            > + Clone
        4863  +
            + Send
        4864  +
            + 'static,
        4865  +
        S::Future: Send + 'static,
        4866  +
    {
        4867  +
        self.ignore_query_params_in_response =
        4868  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        4869  +
        self
        4870  +
    }
        4871  +
        4872  +
    /// Sets the [`InputAndOutputWithHeaders`](crate::operation_shape::InputAndOutputWithHeaders) operation.
        4873  +
    ///
        4874  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4875  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4876  +
    ///
        4877  +
    /// # Example
        4878  +
    ///
        4879  +
    /// ```no_run
        4880  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4881  +
    ///
        4882  +
    /// use rest_json_http0x::{input, output, error};
        4883  +
    ///
        4884  +
    /// async fn handler(input: input::InputAndOutputWithHeadersInput) -> Result<output::InputAndOutputWithHeadersOutput, error::InputAndOutputWithHeadersError> {
        4885  +
    ///     todo!()
        4886  +
    /// }
        4887  +
    ///
        4888  +
    /// let config = RestJsonConfig::builder().build();
        4889  +
    /// let app = RestJson::builder(config)
        4890  +
    ///     .input_and_output_with_headers(handler)
        4891  +
    ///     /* Set other handlers */
        4892  +
    ///     .build()
        4893  +
    ///     .unwrap();
        4894  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4895  +
    /// ```
        4896  +
    ///
        4897  +
                    pub fn input_and_output_with_headers<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        4898  +
                    where
        4899  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::InputAndOutputWithHeaders, HandlerExtractors>,
        4900  +
        4901  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4902  +
                            RestJson<L>,
        4903  +
                            crate::operation_shape::InputAndOutputWithHeaders,
        4904  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::InputAndOutputWithHeaders, HandlerType>
        4905  +
                        >,
        4906  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4907  +
                            RestJson<L>,
        4908  +
                            crate::operation_shape::InputAndOutputWithHeaders,
        4909  +
                            ModelPl::Output
        4910  +
                        >,
        4911  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4912  +
                            RestJson<L>,
        4913  +
                            crate::operation_shape::InputAndOutputWithHeaders,
        4914  +
                            <
        4915  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4916  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4917  +
                                    RestJson<L>,
        4918  +
                                    crate::operation_shape::InputAndOutputWithHeaders,
        4919  +
                                    ModelPl::Output
        4920  +
                                >
        4921  +
                            >::Output
        4922  +
                        >,
        4923  +
        4924  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4925  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4926  +
        4927  +
                    {
        4928  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4929  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4930  +
        let svc = crate::operation_shape::InputAndOutputWithHeaders::from_handler(handler);
        4931  +
        let svc = self.model_plugin.apply(svc);
        4932  +
        let svc =
        4933  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        4934  +
                .apply(svc);
        4935  +
        let svc = self.http_plugin.apply(svc);
        4936  +
        self.input_and_output_with_headers_custom(svc)
        4937  +
    }
        4938  +
        4939  +
    /// Sets the [`InputAndOutputWithHeaders`](crate::operation_shape::InputAndOutputWithHeaders) operation.
        4940  +
    ///
        4941  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        4942  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        4943  +
    ///
        4944  +
    /// # Example
        4945  +
    ///
        4946  +
    /// ```no_run
        4947  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        4948  +
    ///
        4949  +
    /// use rest_json_http0x::{input, output, error};
        4950  +
    ///
        4951  +
    /// async fn handler(input: input::InputAndOutputWithHeadersInput) -> Result<output::InputAndOutputWithHeadersOutput, error::InputAndOutputWithHeadersError> {
        4952  +
    ///     todo!()
        4953  +
    /// }
        4954  +
    ///
        4955  +
    /// let config = RestJsonConfig::builder().build();
        4956  +
    /// let svc = ::tower::util::service_fn(handler);
        4957  +
    /// let app = RestJson::builder(config)
        4958  +
    ///     .input_and_output_with_headers_service(svc)
        4959  +
    ///     /* Set other handlers */
        4960  +
    ///     .build()
        4961  +
    ///     .unwrap();
        4962  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        4963  +
    /// ```
        4964  +
    ///
        4965  +
                    pub fn input_and_output_with_headers_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        4966  +
                    where
        4967  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::InputAndOutputWithHeaders, ServiceExtractors>,
        4968  +
        4969  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4970  +
                            RestJson<L>,
        4971  +
                            crate::operation_shape::InputAndOutputWithHeaders,
        4972  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::InputAndOutputWithHeaders, S>
        4973  +
                        >,
        4974  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4975  +
                            RestJson<L>,
        4976  +
                            crate::operation_shape::InputAndOutputWithHeaders,
        4977  +
                            ModelPl::Output
        4978  +
                        >,
        4979  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        4980  +
                            RestJson<L>,
        4981  +
                            crate::operation_shape::InputAndOutputWithHeaders,
        4982  +
                            <
        4983  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        4984  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        4985  +
                                    RestJson<L>,
        4986  +
                                    crate::operation_shape::InputAndOutputWithHeaders,
        4987  +
                                    ModelPl::Output
        4988  +
                                >
        4989  +
                            >::Output
        4990  +
                        >,
        4991  +
        4992  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        4993  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        4994  +
        4995  +
                    {
        4996  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        4997  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        4998  +
        let svc = crate::operation_shape::InputAndOutputWithHeaders::from_service(service);
        4999  +
        let svc = self.model_plugin.apply(svc);
        5000  +
        let svc =
        5001  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5002  +
                .apply(svc);
        5003  +
        let svc = self.http_plugin.apply(svc);
        5004  +
        self.input_and_output_with_headers_custom(svc)
        5005  +
    }
        5006  +
        5007  +
    /// Sets the [`InputAndOutputWithHeaders`](crate::operation_shape::InputAndOutputWithHeaders) to a custom [`Service`](tower::Service).
        5008  +
    /// not constrained by the Smithy contract.
        5009  +
    fn input_and_output_with_headers_custom<S>(mut self, svc: S) -> Self
        5010  +
    where
        5011  +
        S: ::tower::Service<
        5012  +
                ::http::Request<Body>,
        5013  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        5014  +
                Error = ::std::convert::Infallible,
        5015  +
            > + Clone
        5016  +
            + Send
        5017  +
            + 'static,
        5018  +
        S::Future: Send + 'static,
        5019  +
    {
        5020  +
        self.input_and_output_with_headers =
        5021  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        5022  +
        self
        5023  +
    }
        5024  +
        5025  +
    /// Sets the [`JsonBlobs`](crate::operation_shape::JsonBlobs) operation.
        5026  +
    ///
        5027  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5028  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5029  +
    ///
        5030  +
    /// # Example
        5031  +
    ///
        5032  +
    /// ```no_run
        5033  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5034  +
    ///
        5035  +
    /// use rest_json_http0x::{input, output, error};
        5036  +
    ///
        5037  +
    /// async fn handler(input: input::JsonBlobsInput) -> output::JsonBlobsOutput {
        5038  +
    ///     todo!()
        5039  +
    /// }
        5040  +
    ///
        5041  +
    /// let config = RestJsonConfig::builder().build();
        5042  +
    /// let app = RestJson::builder(config)
        5043  +
    ///     .json_blobs(handler)
        5044  +
    ///     /* Set other handlers */
        5045  +
    ///     .build()
        5046  +
    ///     .unwrap();
        5047  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5048  +
    /// ```
        5049  +
    ///
        5050  +
                    pub fn json_blobs<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        5051  +
                    where
        5052  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::JsonBlobs, HandlerExtractors>,
        5053  +
        5054  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5055  +
                            RestJson<L>,
        5056  +
                            crate::operation_shape::JsonBlobs,
        5057  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::JsonBlobs, HandlerType>
        5058  +
                        >,
        5059  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5060  +
                            RestJson<L>,
        5061  +
                            crate::operation_shape::JsonBlobs,
        5062  +
                            ModelPl::Output
        5063  +
                        >,
        5064  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5065  +
                            RestJson<L>,
        5066  +
                            crate::operation_shape::JsonBlobs,
        5067  +
                            <
        5068  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5069  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5070  +
                                    RestJson<L>,
        5071  +
                                    crate::operation_shape::JsonBlobs,
        5072  +
                                    ModelPl::Output
        5073  +
                                >
        5074  +
                            >::Output
        5075  +
                        >,
        5076  +
        5077  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5078  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5079  +
        5080  +
                    {
        5081  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5082  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5083  +
        let svc = crate::operation_shape::JsonBlobs::from_handler(handler);
        5084  +
        let svc = self.model_plugin.apply(svc);
        5085  +
        let svc =
        5086  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5087  +
                .apply(svc);
        5088  +
        let svc = self.http_plugin.apply(svc);
        5089  +
        self.json_blobs_custom(svc)
        5090  +
    }
        5091  +
        5092  +
    /// Sets the [`JsonBlobs`](crate::operation_shape::JsonBlobs) operation.
        5093  +
    ///
        5094  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5095  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5096  +
    ///
        5097  +
    /// # Example
        5098  +
    ///
        5099  +
    /// ```no_run
        5100  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5101  +
    ///
        5102  +
    /// use rest_json_http0x::{input, output, error};
        5103  +
    ///
        5104  +
    /// async fn handler(input: input::JsonBlobsInput) -> Result<output::JsonBlobsOutput, std::convert::Infallible> {
        5105  +
    ///     todo!()
        5106  +
    /// }
        5107  +
    ///
        5108  +
    /// let config = RestJsonConfig::builder().build();
        5109  +
    /// let svc = ::tower::util::service_fn(handler);
        5110  +
    /// let app = RestJson::builder(config)
        5111  +
    ///     .json_blobs_service(svc)
        5112  +
    ///     /* Set other handlers */
        5113  +
    ///     .build()
        5114  +
    ///     .unwrap();
        5115  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5116  +
    /// ```
        5117  +
    ///
        5118  +
                    pub fn json_blobs_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        5119  +
                    where
        5120  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::JsonBlobs, ServiceExtractors>,
        5121  +
        5122  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5123  +
                            RestJson<L>,
        5124  +
                            crate::operation_shape::JsonBlobs,
        5125  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::JsonBlobs, S>
        5126  +
                        >,
        5127  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5128  +
                            RestJson<L>,
        5129  +
                            crate::operation_shape::JsonBlobs,
        5130  +
                            ModelPl::Output
        5131  +
                        >,
        5132  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5133  +
                            RestJson<L>,
        5134  +
                            crate::operation_shape::JsonBlobs,
        5135  +
                            <
        5136  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5137  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5138  +
                                    RestJson<L>,
        5139  +
                                    crate::operation_shape::JsonBlobs,
        5140  +
                                    ModelPl::Output
        5141  +
                                >
        5142  +
                            >::Output
        5143  +
                        >,
        5144  +
        5145  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5146  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5147  +
        5148  +
                    {
        5149  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5150  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5151  +
        let svc = crate::operation_shape::JsonBlobs::from_service(service);
        5152  +
        let svc = self.model_plugin.apply(svc);
        5153  +
        let svc =
        5154  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5155  +
                .apply(svc);
        5156  +
        let svc = self.http_plugin.apply(svc);
        5157  +
        self.json_blobs_custom(svc)
        5158  +
    }
        5159  +
        5160  +
    /// Sets the [`JsonBlobs`](crate::operation_shape::JsonBlobs) to a custom [`Service`](tower::Service).
        5161  +
    /// not constrained by the Smithy contract.
        5162  +
    fn json_blobs_custom<S>(mut self, svc: S) -> Self
        5163  +
    where
        5164  +
        S: ::tower::Service<
        5165  +
                ::http::Request<Body>,
        5166  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        5167  +
                Error = ::std::convert::Infallible,
        5168  +
            > + Clone
        5169  +
            + Send
        5170  +
            + 'static,
        5171  +
        S::Future: Send + 'static,
        5172  +
    {
        5173  +
        self.json_blobs = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        5174  +
        self
        5175  +
    }
        5176  +
        5177  +
    /// Sets the [`JsonEnums`](crate::operation_shape::JsonEnums) operation.
        5178  +
    ///
        5179  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5180  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5181  +
    ///
        5182  +
    /// # Example
        5183  +
    ///
        5184  +
    /// ```no_run
        5185  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5186  +
    ///
        5187  +
    /// use rest_json_http0x::{input, output, error};
        5188  +
    ///
        5189  +
    /// async fn handler(input: input::JsonEnumsInput) -> Result<output::JsonEnumsOutput, error::JsonEnumsError> {
        5190  +
    ///     todo!()
        5191  +
    /// }
        5192  +
    ///
        5193  +
    /// let config = RestJsonConfig::builder().build();
        5194  +
    /// let app = RestJson::builder(config)
        5195  +
    ///     .json_enums(handler)
        5196  +
    ///     /* Set other handlers */
        5197  +
    ///     .build()
        5198  +
    ///     .unwrap();
        5199  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5200  +
    /// ```
        5201  +
    ///
        5202  +
                    pub fn json_enums<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        5203  +
                    where
        5204  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::JsonEnums, HandlerExtractors>,
        5205  +
        5206  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5207  +
                            RestJson<L>,
        5208  +
                            crate::operation_shape::JsonEnums,
        5209  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::JsonEnums, HandlerType>
        5210  +
                        >,
        5211  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5212  +
                            RestJson<L>,
        5213  +
                            crate::operation_shape::JsonEnums,
        5214  +
                            ModelPl::Output
        5215  +
                        >,
        5216  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5217  +
                            RestJson<L>,
        5218  +
                            crate::operation_shape::JsonEnums,
        5219  +
                            <
        5220  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5221  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5222  +
                                    RestJson<L>,
        5223  +
                                    crate::operation_shape::JsonEnums,
        5224  +
                                    ModelPl::Output
        5225  +
                                >
        5226  +
                            >::Output
        5227  +
                        >,
        5228  +
        5229  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5230  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5231  +
        5232  +
                    {
        5233  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5234  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5235  +
        let svc = crate::operation_shape::JsonEnums::from_handler(handler);
        5236  +
        let svc = self.model_plugin.apply(svc);
        5237  +
        let svc =
        5238  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5239  +
                .apply(svc);
        5240  +
        let svc = self.http_plugin.apply(svc);
        5241  +
        self.json_enums_custom(svc)
        5242  +
    }
        5243  +
        5244  +
    /// Sets the [`JsonEnums`](crate::operation_shape::JsonEnums) operation.
        5245  +
    ///
        5246  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5247  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5248  +
    ///
        5249  +
    /// # Example
        5250  +
    ///
        5251  +
    /// ```no_run
        5252  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5253  +
    ///
        5254  +
    /// use rest_json_http0x::{input, output, error};
        5255  +
    ///
        5256  +
    /// async fn handler(input: input::JsonEnumsInput) -> Result<output::JsonEnumsOutput, error::JsonEnumsError> {
        5257  +
    ///     todo!()
        5258  +
    /// }
        5259  +
    ///
        5260  +
    /// let config = RestJsonConfig::builder().build();
        5261  +
    /// let svc = ::tower::util::service_fn(handler);
        5262  +
    /// let app = RestJson::builder(config)
        5263  +
    ///     .json_enums_service(svc)
        5264  +
    ///     /* Set other handlers */
        5265  +
    ///     .build()
        5266  +
    ///     .unwrap();
        5267  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5268  +
    /// ```
        5269  +
    ///
        5270  +
                    pub fn json_enums_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        5271  +
                    where
        5272  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::JsonEnums, ServiceExtractors>,
        5273  +
        5274  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5275  +
                            RestJson<L>,
        5276  +
                            crate::operation_shape::JsonEnums,
        5277  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::JsonEnums, S>
        5278  +
                        >,
        5279  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5280  +
                            RestJson<L>,
        5281  +
                            crate::operation_shape::JsonEnums,
        5282  +
                            ModelPl::Output
        5283  +
                        >,
        5284  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5285  +
                            RestJson<L>,
        5286  +
                            crate::operation_shape::JsonEnums,
        5287  +
                            <
        5288  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5289  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5290  +
                                    RestJson<L>,
        5291  +
                                    crate::operation_shape::JsonEnums,
        5292  +
                                    ModelPl::Output
        5293  +
                                >
        5294  +
                            >::Output
        5295  +
                        >,
        5296  +
        5297  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5298  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5299  +
        5300  +
                    {
        5301  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5302  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5303  +
        let svc = crate::operation_shape::JsonEnums::from_service(service);
        5304  +
        let svc = self.model_plugin.apply(svc);
        5305  +
        let svc =
        5306  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5307  +
                .apply(svc);
        5308  +
        let svc = self.http_plugin.apply(svc);
        5309  +
        self.json_enums_custom(svc)
        5310  +
    }
        5311  +
        5312  +
    /// Sets the [`JsonEnums`](crate::operation_shape::JsonEnums) to a custom [`Service`](tower::Service).
        5313  +
    /// not constrained by the Smithy contract.
        5314  +
    fn json_enums_custom<S>(mut self, svc: S) -> Self
        5315  +
    where
        5316  +
        S: ::tower::Service<
        5317  +
                ::http::Request<Body>,
        5318  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        5319  +
                Error = ::std::convert::Infallible,
        5320  +
            > + Clone
        5321  +
            + Send
        5322  +
            + 'static,
        5323  +
        S::Future: Send + 'static,
        5324  +
    {
        5325  +
        self.json_enums = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        5326  +
        self
        5327  +
    }
        5328  +
        5329  +
    /// Sets the [`JsonIntEnums`](crate::operation_shape::JsonIntEnums) operation.
        5330  +
    ///
        5331  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5332  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5333  +
    ///
        5334  +
    /// # Example
        5335  +
    ///
        5336  +
    /// ```no_run
        5337  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5338  +
    ///
        5339  +
    /// use rest_json_http0x::{input, output, error};
        5340  +
    ///
        5341  +
    /// async fn handler(input: input::JsonIntEnumsInput) -> Result<output::JsonIntEnumsOutput, error::JsonIntEnumsError> {
        5342  +
    ///     todo!()
        5343  +
    /// }
        5344  +
    ///
        5345  +
    /// let config = RestJsonConfig::builder().build();
        5346  +
    /// let app = RestJson::builder(config)
        5347  +
    ///     .json_int_enums(handler)
        5348  +
    ///     /* Set other handlers */
        5349  +
    ///     .build()
        5350  +
    ///     .unwrap();
        5351  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5352  +
    /// ```
        5353  +
    ///
        5354  +
                    pub fn json_int_enums<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        5355  +
                    where
        5356  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::JsonIntEnums, HandlerExtractors>,
        5357  +
        5358  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5359  +
                            RestJson<L>,
        5360  +
                            crate::operation_shape::JsonIntEnums,
        5361  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::JsonIntEnums, HandlerType>
        5362  +
                        >,
        5363  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5364  +
                            RestJson<L>,
        5365  +
                            crate::operation_shape::JsonIntEnums,
        5366  +
                            ModelPl::Output
        5367  +
                        >,
        5368  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5369  +
                            RestJson<L>,
        5370  +
                            crate::operation_shape::JsonIntEnums,
        5371  +
                            <
        5372  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5373  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5374  +
                                    RestJson<L>,
        5375  +
                                    crate::operation_shape::JsonIntEnums,
        5376  +
                                    ModelPl::Output
        5377  +
                                >
        5378  +
                            >::Output
        5379  +
                        >,
        5380  +
        5381  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5382  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5383  +
        5384  +
                    {
        5385  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5386  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5387  +
        let svc = crate::operation_shape::JsonIntEnums::from_handler(handler);
        5388  +
        let svc = self.model_plugin.apply(svc);
        5389  +
        let svc =
        5390  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5391  +
                .apply(svc);
        5392  +
        let svc = self.http_plugin.apply(svc);
        5393  +
        self.json_int_enums_custom(svc)
        5394  +
    }
        5395  +
        5396  +
    /// Sets the [`JsonIntEnums`](crate::operation_shape::JsonIntEnums) operation.
        5397  +
    ///
        5398  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5399  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5400  +
    ///
        5401  +
    /// # Example
        5402  +
    ///
        5403  +
    /// ```no_run
        5404  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5405  +
    ///
        5406  +
    /// use rest_json_http0x::{input, output, error};
        5407  +
    ///
        5408  +
    /// async fn handler(input: input::JsonIntEnumsInput) -> Result<output::JsonIntEnumsOutput, error::JsonIntEnumsError> {
        5409  +
    ///     todo!()
        5410  +
    /// }
        5411  +
    ///
        5412  +
    /// let config = RestJsonConfig::builder().build();
        5413  +
    /// let svc = ::tower::util::service_fn(handler);
        5414  +
    /// let app = RestJson::builder(config)
        5415  +
    ///     .json_int_enums_service(svc)
        5416  +
    ///     /* Set other handlers */
        5417  +
    ///     .build()
        5418  +
    ///     .unwrap();
        5419  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5420  +
    /// ```
        5421  +
    ///
        5422  +
                    pub fn json_int_enums_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        5423  +
                    where
        5424  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::JsonIntEnums, ServiceExtractors>,
        5425  +
        5426  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5427  +
                            RestJson<L>,
        5428  +
                            crate::operation_shape::JsonIntEnums,
        5429  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::JsonIntEnums, S>
        5430  +
                        >,
        5431  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5432  +
                            RestJson<L>,
        5433  +
                            crate::operation_shape::JsonIntEnums,
        5434  +
                            ModelPl::Output
        5435  +
                        >,
        5436  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5437  +
                            RestJson<L>,
        5438  +
                            crate::operation_shape::JsonIntEnums,
        5439  +
                            <
        5440  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5441  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5442  +
                                    RestJson<L>,
        5443  +
                                    crate::operation_shape::JsonIntEnums,
        5444  +
                                    ModelPl::Output
        5445  +
                                >
        5446  +
                            >::Output
        5447  +
                        >,
        5448  +
        5449  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5450  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5451  +
        5452  +
                    {
        5453  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5454  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5455  +
        let svc = crate::operation_shape::JsonIntEnums::from_service(service);
        5456  +
        let svc = self.model_plugin.apply(svc);
        5457  +
        let svc =
        5458  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5459  +
                .apply(svc);
        5460  +
        let svc = self.http_plugin.apply(svc);
        5461  +
        self.json_int_enums_custom(svc)
        5462  +
    }
        5463  +
        5464  +
    /// Sets the [`JsonIntEnums`](crate::operation_shape::JsonIntEnums) to a custom [`Service`](tower::Service).
        5465  +
    /// not constrained by the Smithy contract.
        5466  +
    fn json_int_enums_custom<S>(mut self, svc: S) -> Self
        5467  +
    where
        5468  +
        S: ::tower::Service<
        5469  +
                ::http::Request<Body>,
        5470  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        5471  +
                Error = ::std::convert::Infallible,
        5472  +
            > + Clone
        5473  +
            + Send
        5474  +
            + 'static,
        5475  +
        S::Future: Send + 'static,
        5476  +
    {
        5477  +
        self.json_int_enums = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        5478  +
        self
        5479  +
    }
        5480  +
        5481  +
    /// Sets the [`JsonLists`](crate::operation_shape::JsonLists) operation.
        5482  +
    ///
        5483  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5484  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5485  +
    ///
        5486  +
    /// # Example
        5487  +
    ///
        5488  +
    /// ```no_run
        5489  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5490  +
    ///
        5491  +
    /// use rest_json_http0x::{input, output, error};
        5492  +
    ///
        5493  +
    /// async fn handler(input: input::JsonListsInput) -> Result<output::JsonListsOutput, error::JsonListsError> {
        5494  +
    ///     todo!()
        5495  +
    /// }
        5496  +
    ///
        5497  +
    /// let config = RestJsonConfig::builder().build();
        5498  +
    /// let app = RestJson::builder(config)
        5499  +
    ///     .json_lists(handler)
        5500  +
    ///     /* Set other handlers */
        5501  +
    ///     .build()
        5502  +
    ///     .unwrap();
        5503  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5504  +
    /// ```
        5505  +
    ///
        5506  +
                    pub fn json_lists<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        5507  +
                    where
        5508  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::JsonLists, HandlerExtractors>,
        5509  +
        5510  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5511  +
                            RestJson<L>,
        5512  +
                            crate::operation_shape::JsonLists,
        5513  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::JsonLists, HandlerType>
        5514  +
                        >,
        5515  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5516  +
                            RestJson<L>,
        5517  +
                            crate::operation_shape::JsonLists,
        5518  +
                            ModelPl::Output
        5519  +
                        >,
        5520  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5521  +
                            RestJson<L>,
        5522  +
                            crate::operation_shape::JsonLists,
        5523  +
                            <
        5524  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5525  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5526  +
                                    RestJson<L>,
        5527  +
                                    crate::operation_shape::JsonLists,
        5528  +
                                    ModelPl::Output
        5529  +
                                >
        5530  +
                            >::Output
        5531  +
                        >,
        5532  +
        5533  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5534  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5535  +
        5536  +
                    {
        5537  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5538  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5539  +
        let svc = crate::operation_shape::JsonLists::from_handler(handler);
        5540  +
        let svc = self.model_plugin.apply(svc);
        5541  +
        let svc =
        5542  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5543  +
                .apply(svc);
        5544  +
        let svc = self.http_plugin.apply(svc);
        5545  +
        self.json_lists_custom(svc)
        5546  +
    }
        5547  +
        5548  +
    /// Sets the [`JsonLists`](crate::operation_shape::JsonLists) operation.
        5549  +
    ///
        5550  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5551  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5552  +
    ///
        5553  +
    /// # Example
        5554  +
    ///
        5555  +
    /// ```no_run
        5556  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5557  +
    ///
        5558  +
    /// use rest_json_http0x::{input, output, error};
        5559  +
    ///
        5560  +
    /// async fn handler(input: input::JsonListsInput) -> Result<output::JsonListsOutput, error::JsonListsError> {
        5561  +
    ///     todo!()
        5562  +
    /// }
        5563  +
    ///
        5564  +
    /// let config = RestJsonConfig::builder().build();
        5565  +
    /// let svc = ::tower::util::service_fn(handler);
        5566  +
    /// let app = RestJson::builder(config)
        5567  +
    ///     .json_lists_service(svc)
        5568  +
    ///     /* Set other handlers */
        5569  +
    ///     .build()
        5570  +
    ///     .unwrap();
        5571  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5572  +
    /// ```
        5573  +
    ///
        5574  +
                    pub fn json_lists_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        5575  +
                    where
        5576  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::JsonLists, ServiceExtractors>,
        5577  +
        5578  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5579  +
                            RestJson<L>,
        5580  +
                            crate::operation_shape::JsonLists,
        5581  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::JsonLists, S>
        5582  +
                        >,
        5583  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5584  +
                            RestJson<L>,
        5585  +
                            crate::operation_shape::JsonLists,
        5586  +
                            ModelPl::Output
        5587  +
                        >,
        5588  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5589  +
                            RestJson<L>,
        5590  +
                            crate::operation_shape::JsonLists,
        5591  +
                            <
        5592  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5593  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5594  +
                                    RestJson<L>,
        5595  +
                                    crate::operation_shape::JsonLists,
        5596  +
                                    ModelPl::Output
        5597  +
                                >
        5598  +
                            >::Output
        5599  +
                        >,
        5600  +
        5601  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5602  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5603  +
        5604  +
                    {
        5605  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5606  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5607  +
        let svc = crate::operation_shape::JsonLists::from_service(service);
        5608  +
        let svc = self.model_plugin.apply(svc);
        5609  +
        let svc =
        5610  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5611  +
                .apply(svc);
        5612  +
        let svc = self.http_plugin.apply(svc);
        5613  +
        self.json_lists_custom(svc)
        5614  +
    }
        5615  +
        5616  +
    /// Sets the [`JsonLists`](crate::operation_shape::JsonLists) to a custom [`Service`](tower::Service).
        5617  +
    /// not constrained by the Smithy contract.
        5618  +
    fn json_lists_custom<S>(mut self, svc: S) -> Self
        5619  +
    where
        5620  +
        S: ::tower::Service<
        5621  +
                ::http::Request<Body>,
        5622  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        5623  +
                Error = ::std::convert::Infallible,
        5624  +
            > + Clone
        5625  +
            + Send
        5626  +
            + 'static,
        5627  +
        S::Future: Send + 'static,
        5628  +
    {
        5629  +
        self.json_lists = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        5630  +
        self
        5631  +
    }
        5632  +
        5633  +
    /// Sets the [`JsonMaps`](crate::operation_shape::JsonMaps) operation.
        5634  +
    ///
        5635  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5636  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5637  +
    ///
        5638  +
    /// # Example
        5639  +
    ///
        5640  +
    /// ```no_run
        5641  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5642  +
    ///
        5643  +
    /// use rest_json_http0x::{input, output, error};
        5644  +
    ///
        5645  +
    /// async fn handler(input: input::JsonMapsInput) -> Result<output::JsonMapsOutput, error::JsonMapsError> {
        5646  +
    ///     todo!()
        5647  +
    /// }
        5648  +
    ///
        5649  +
    /// let config = RestJsonConfig::builder().build();
        5650  +
    /// let app = RestJson::builder(config)
        5651  +
    ///     .json_maps(handler)
        5652  +
    ///     /* Set other handlers */
        5653  +
    ///     .build()
        5654  +
    ///     .unwrap();
        5655  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5656  +
    /// ```
        5657  +
    ///
        5658  +
                    pub fn json_maps<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        5659  +
                    where
        5660  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::JsonMaps, HandlerExtractors>,
        5661  +
        5662  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5663  +
                            RestJson<L>,
        5664  +
                            crate::operation_shape::JsonMaps,
        5665  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::JsonMaps, HandlerType>
        5666  +
                        >,
        5667  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5668  +
                            RestJson<L>,
        5669  +
                            crate::operation_shape::JsonMaps,
        5670  +
                            ModelPl::Output
        5671  +
                        >,
        5672  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5673  +
                            RestJson<L>,
        5674  +
                            crate::operation_shape::JsonMaps,
        5675  +
                            <
        5676  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5677  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5678  +
                                    RestJson<L>,
        5679  +
                                    crate::operation_shape::JsonMaps,
        5680  +
                                    ModelPl::Output
        5681  +
                                >
        5682  +
                            >::Output
        5683  +
                        >,
        5684  +
        5685  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5686  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5687  +
        5688  +
                    {
        5689  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5690  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5691  +
        let svc = crate::operation_shape::JsonMaps::from_handler(handler);
        5692  +
        let svc = self.model_plugin.apply(svc);
        5693  +
        let svc =
        5694  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5695  +
                .apply(svc);
        5696  +
        let svc = self.http_plugin.apply(svc);
        5697  +
        self.json_maps_custom(svc)
        5698  +
    }
        5699  +
        5700  +
    /// Sets the [`JsonMaps`](crate::operation_shape::JsonMaps) operation.
        5701  +
    ///
        5702  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5703  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5704  +
    ///
        5705  +
    /// # Example
        5706  +
    ///
        5707  +
    /// ```no_run
        5708  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5709  +
    ///
        5710  +
    /// use rest_json_http0x::{input, output, error};
        5711  +
    ///
        5712  +
    /// async fn handler(input: input::JsonMapsInput) -> Result<output::JsonMapsOutput, error::JsonMapsError> {
        5713  +
    ///     todo!()
        5714  +
    /// }
        5715  +
    ///
        5716  +
    /// let config = RestJsonConfig::builder().build();
        5717  +
    /// let svc = ::tower::util::service_fn(handler);
        5718  +
    /// let app = RestJson::builder(config)
        5719  +
    ///     .json_maps_service(svc)
        5720  +
    ///     /* Set other handlers */
        5721  +
    ///     .build()
        5722  +
    ///     .unwrap();
        5723  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5724  +
    /// ```
        5725  +
    ///
        5726  +
                    pub fn json_maps_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        5727  +
                    where
        5728  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::JsonMaps, ServiceExtractors>,
        5729  +
        5730  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5731  +
                            RestJson<L>,
        5732  +
                            crate::operation_shape::JsonMaps,
        5733  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::JsonMaps, S>
        5734  +
                        >,
        5735  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5736  +
                            RestJson<L>,
        5737  +
                            crate::operation_shape::JsonMaps,
        5738  +
                            ModelPl::Output
        5739  +
                        >,
        5740  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5741  +
                            RestJson<L>,
        5742  +
                            crate::operation_shape::JsonMaps,
        5743  +
                            <
        5744  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5745  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5746  +
                                    RestJson<L>,
        5747  +
                                    crate::operation_shape::JsonMaps,
        5748  +
                                    ModelPl::Output
        5749  +
                                >
        5750  +
                            >::Output
        5751  +
                        >,
        5752  +
        5753  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5754  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5755  +
        5756  +
                    {
        5757  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5758  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5759  +
        let svc = crate::operation_shape::JsonMaps::from_service(service);
        5760  +
        let svc = self.model_plugin.apply(svc);
        5761  +
        let svc =
        5762  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5763  +
                .apply(svc);
        5764  +
        let svc = self.http_plugin.apply(svc);
        5765  +
        self.json_maps_custom(svc)
        5766  +
    }
        5767  +
        5768  +
    /// Sets the [`JsonMaps`](crate::operation_shape::JsonMaps) to a custom [`Service`](tower::Service).
        5769  +
    /// not constrained by the Smithy contract.
        5770  +
    fn json_maps_custom<S>(mut self, svc: S) -> Self
        5771  +
    where
        5772  +
        S: ::tower::Service<
        5773  +
                ::http::Request<Body>,
        5774  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        5775  +
                Error = ::std::convert::Infallible,
        5776  +
            > + Clone
        5777  +
            + Send
        5778  +
            + 'static,
        5779  +
        S::Future: Send + 'static,
        5780  +
    {
        5781  +
        self.json_maps = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        5782  +
        self
        5783  +
    }
        5784  +
        5785  +
    /// Sets the [`JsonTimestamps`](crate::operation_shape::JsonTimestamps) operation.
        5786  +
    ///
        5787  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5788  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5789  +
    ///
        5790  +
    /// # Example
        5791  +
    ///
        5792  +
    /// ```no_run
        5793  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5794  +
    ///
        5795  +
    /// use rest_json_http0x::{input, output, error};
        5796  +
    ///
        5797  +
    /// async fn handler(input: input::JsonTimestampsInput) -> output::JsonTimestampsOutput {
        5798  +
    ///     todo!()
        5799  +
    /// }
        5800  +
    ///
        5801  +
    /// let config = RestJsonConfig::builder().build();
        5802  +
    /// let app = RestJson::builder(config)
        5803  +
    ///     .json_timestamps(handler)
        5804  +
    ///     /* Set other handlers */
        5805  +
    ///     .build()
        5806  +
    ///     .unwrap();
        5807  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5808  +
    /// ```
        5809  +
    ///
        5810  +
                    pub fn json_timestamps<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        5811  +
                    where
        5812  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::JsonTimestamps, HandlerExtractors>,
        5813  +
        5814  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5815  +
                            RestJson<L>,
        5816  +
                            crate::operation_shape::JsonTimestamps,
        5817  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::JsonTimestamps, HandlerType>
        5818  +
                        >,
        5819  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5820  +
                            RestJson<L>,
        5821  +
                            crate::operation_shape::JsonTimestamps,
        5822  +
                            ModelPl::Output
        5823  +
                        >,
        5824  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5825  +
                            RestJson<L>,
        5826  +
                            crate::operation_shape::JsonTimestamps,
        5827  +
                            <
        5828  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5829  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5830  +
                                    RestJson<L>,
        5831  +
                                    crate::operation_shape::JsonTimestamps,
        5832  +
                                    ModelPl::Output
        5833  +
                                >
        5834  +
                            >::Output
        5835  +
                        >,
        5836  +
        5837  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5838  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5839  +
        5840  +
                    {
        5841  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5842  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5843  +
        let svc = crate::operation_shape::JsonTimestamps::from_handler(handler);
        5844  +
        let svc = self.model_plugin.apply(svc);
        5845  +
        let svc =
        5846  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5847  +
                .apply(svc);
        5848  +
        let svc = self.http_plugin.apply(svc);
        5849  +
        self.json_timestamps_custom(svc)
        5850  +
    }
        5851  +
        5852  +
    /// Sets the [`JsonTimestamps`](crate::operation_shape::JsonTimestamps) operation.
        5853  +
    ///
        5854  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5855  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5856  +
    ///
        5857  +
    /// # Example
        5858  +
    ///
        5859  +
    /// ```no_run
        5860  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5861  +
    ///
        5862  +
    /// use rest_json_http0x::{input, output, error};
        5863  +
    ///
        5864  +
    /// async fn handler(input: input::JsonTimestampsInput) -> Result<output::JsonTimestampsOutput, std::convert::Infallible> {
        5865  +
    ///     todo!()
        5866  +
    /// }
        5867  +
    ///
        5868  +
    /// let config = RestJsonConfig::builder().build();
        5869  +
    /// let svc = ::tower::util::service_fn(handler);
        5870  +
    /// let app = RestJson::builder(config)
        5871  +
    ///     .json_timestamps_service(svc)
        5872  +
    ///     /* Set other handlers */
        5873  +
    ///     .build()
        5874  +
    ///     .unwrap();
        5875  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5876  +
    /// ```
        5877  +
    ///
        5878  +
                    pub fn json_timestamps_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        5879  +
                    where
        5880  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::JsonTimestamps, ServiceExtractors>,
        5881  +
        5882  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5883  +
                            RestJson<L>,
        5884  +
                            crate::operation_shape::JsonTimestamps,
        5885  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::JsonTimestamps, S>
        5886  +
                        >,
        5887  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5888  +
                            RestJson<L>,
        5889  +
                            crate::operation_shape::JsonTimestamps,
        5890  +
                            ModelPl::Output
        5891  +
                        >,
        5892  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5893  +
                            RestJson<L>,
        5894  +
                            crate::operation_shape::JsonTimestamps,
        5895  +
                            <
        5896  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5897  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5898  +
                                    RestJson<L>,
        5899  +
                                    crate::operation_shape::JsonTimestamps,
        5900  +
                                    ModelPl::Output
        5901  +
                                >
        5902  +
                            >::Output
        5903  +
                        >,
        5904  +
        5905  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5906  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5907  +
        5908  +
                    {
        5909  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5910  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5911  +
        let svc = crate::operation_shape::JsonTimestamps::from_service(service);
        5912  +
        let svc = self.model_plugin.apply(svc);
        5913  +
        let svc =
        5914  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5915  +
                .apply(svc);
        5916  +
        let svc = self.http_plugin.apply(svc);
        5917  +
        self.json_timestamps_custom(svc)
        5918  +
    }
        5919  +
        5920  +
    /// Sets the [`JsonTimestamps`](crate::operation_shape::JsonTimestamps) to a custom [`Service`](tower::Service).
        5921  +
    /// not constrained by the Smithy contract.
        5922  +
    fn json_timestamps_custom<S>(mut self, svc: S) -> Self
        5923  +
    where
        5924  +
        S: ::tower::Service<
        5925  +
                ::http::Request<Body>,
        5926  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        5927  +
                Error = ::std::convert::Infallible,
        5928  +
            > + Clone
        5929  +
            + Send
        5930  +
            + 'static,
        5931  +
        S::Future: Send + 'static,
        5932  +
    {
        5933  +
        self.json_timestamps = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        5934  +
        self
        5935  +
    }
        5936  +
        5937  +
    /// Sets the [`JsonUnions`](crate::operation_shape::JsonUnions) operation.
        5938  +
    ///
        5939  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        5940  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        5941  +
    ///
        5942  +
    /// # Example
        5943  +
    ///
        5944  +
    /// ```no_run
        5945  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        5946  +
    ///
        5947  +
    /// use rest_json_http0x::{input, output, error};
        5948  +
    ///
        5949  +
    /// async fn handler(input: input::JsonUnionsInput) -> Result<output::JsonUnionsOutput, error::JsonUnionsError> {
        5950  +
    ///     todo!()
        5951  +
    /// }
        5952  +
    ///
        5953  +
    /// let config = RestJsonConfig::builder().build();
        5954  +
    /// let app = RestJson::builder(config)
        5955  +
    ///     .json_unions(handler)
        5956  +
    ///     /* Set other handlers */
        5957  +
    ///     .build()
        5958  +
    ///     .unwrap();
        5959  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        5960  +
    /// ```
        5961  +
    ///
        5962  +
                    pub fn json_unions<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        5963  +
                    where
        5964  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::JsonUnions, HandlerExtractors>,
        5965  +
        5966  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5967  +
                            RestJson<L>,
        5968  +
                            crate::operation_shape::JsonUnions,
        5969  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::JsonUnions, HandlerType>
        5970  +
                        >,
        5971  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5972  +
                            RestJson<L>,
        5973  +
                            crate::operation_shape::JsonUnions,
        5974  +
                            ModelPl::Output
        5975  +
                        >,
        5976  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        5977  +
                            RestJson<L>,
        5978  +
                            crate::operation_shape::JsonUnions,
        5979  +
                            <
        5980  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        5981  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        5982  +
                                    RestJson<L>,
        5983  +
                                    crate::operation_shape::JsonUnions,
        5984  +
                                    ModelPl::Output
        5985  +
                                >
        5986  +
                            >::Output
        5987  +
                        >,
        5988  +
        5989  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        5990  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        5991  +
        5992  +
                    {
        5993  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        5994  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        5995  +
        let svc = crate::operation_shape::JsonUnions::from_handler(handler);
        5996  +
        let svc = self.model_plugin.apply(svc);
        5997  +
        let svc =
        5998  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        5999  +
                .apply(svc);
        6000  +
        let svc = self.http_plugin.apply(svc);
        6001  +
        self.json_unions_custom(svc)
        6002  +
    }
        6003  +
        6004  +
    /// Sets the [`JsonUnions`](crate::operation_shape::JsonUnions) operation.
        6005  +
    ///
        6006  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6007  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6008  +
    ///
        6009  +
    /// # Example
        6010  +
    ///
        6011  +
    /// ```no_run
        6012  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6013  +
    ///
        6014  +
    /// use rest_json_http0x::{input, output, error};
        6015  +
    ///
        6016  +
    /// async fn handler(input: input::JsonUnionsInput) -> Result<output::JsonUnionsOutput, error::JsonUnionsError> {
        6017  +
    ///     todo!()
        6018  +
    /// }
        6019  +
    ///
        6020  +
    /// let config = RestJsonConfig::builder().build();
        6021  +
    /// let svc = ::tower::util::service_fn(handler);
        6022  +
    /// let app = RestJson::builder(config)
        6023  +
    ///     .json_unions_service(svc)
        6024  +
    ///     /* Set other handlers */
        6025  +
    ///     .build()
        6026  +
    ///     .unwrap();
        6027  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6028  +
    /// ```
        6029  +
    ///
        6030  +
                    pub fn json_unions_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        6031  +
                    where
        6032  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::JsonUnions, ServiceExtractors>,
        6033  +
        6034  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6035  +
                            RestJson<L>,
        6036  +
                            crate::operation_shape::JsonUnions,
        6037  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::JsonUnions, S>
        6038  +
                        >,
        6039  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6040  +
                            RestJson<L>,
        6041  +
                            crate::operation_shape::JsonUnions,
        6042  +
                            ModelPl::Output
        6043  +
                        >,
        6044  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6045  +
                            RestJson<L>,
        6046  +
                            crate::operation_shape::JsonUnions,
        6047  +
                            <
        6048  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6049  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6050  +
                                    RestJson<L>,
        6051  +
                                    crate::operation_shape::JsonUnions,
        6052  +
                                    ModelPl::Output
        6053  +
                                >
        6054  +
                            >::Output
        6055  +
                        >,
        6056  +
        6057  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6058  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6059  +
        6060  +
                    {
        6061  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6062  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6063  +
        let svc = crate::operation_shape::JsonUnions::from_service(service);
        6064  +
        let svc = self.model_plugin.apply(svc);
        6065  +
        let svc =
        6066  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6067  +
                .apply(svc);
        6068  +
        let svc = self.http_plugin.apply(svc);
        6069  +
        self.json_unions_custom(svc)
        6070  +
    }
        6071  +
        6072  +
    /// Sets the [`JsonUnions`](crate::operation_shape::JsonUnions) to a custom [`Service`](tower::Service).
        6073  +
    /// not constrained by the Smithy contract.
        6074  +
    fn json_unions_custom<S>(mut self, svc: S) -> Self
        6075  +
    where
        6076  +
        S: ::tower::Service<
        6077  +
                ::http::Request<Body>,
        6078  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        6079  +
                Error = ::std::convert::Infallible,
        6080  +
            > + Clone
        6081  +
            + Send
        6082  +
            + 'static,
        6083  +
        S::Future: Send + 'static,
        6084  +
    {
        6085  +
        self.json_unions = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        6086  +
        self
        6087  +
    }
        6088  +
        6089  +
    /// Sets the [`MalformedAcceptWithBody`](crate::operation_shape::MalformedAcceptWithBody) operation.
        6090  +
    ///
        6091  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6092  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6093  +
    ///
        6094  +
    /// # Example
        6095  +
    ///
        6096  +
    /// ```no_run
        6097  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6098  +
    ///
        6099  +
    /// use rest_json_http0x::{input, output, error};
        6100  +
    ///
        6101  +
    /// async fn handler(input: input::MalformedAcceptWithBodyInput) -> output::MalformedAcceptWithBodyOutput {
        6102  +
    ///     todo!()
        6103  +
    /// }
        6104  +
    ///
        6105  +
    /// let config = RestJsonConfig::builder().build();
        6106  +
    /// let app = RestJson::builder(config)
        6107  +
    ///     .malformed_accept_with_body(handler)
        6108  +
    ///     /* Set other handlers */
        6109  +
    ///     .build()
        6110  +
    ///     .unwrap();
        6111  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6112  +
    /// ```
        6113  +
    ///
        6114  +
                    pub fn malformed_accept_with_body<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        6115  +
                    where
        6116  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedAcceptWithBody, HandlerExtractors>,
        6117  +
        6118  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6119  +
                            RestJson<L>,
        6120  +
                            crate::operation_shape::MalformedAcceptWithBody,
        6121  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedAcceptWithBody, HandlerType>
        6122  +
                        >,
        6123  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6124  +
                            RestJson<L>,
        6125  +
                            crate::operation_shape::MalformedAcceptWithBody,
        6126  +
                            ModelPl::Output
        6127  +
                        >,
        6128  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6129  +
                            RestJson<L>,
        6130  +
                            crate::operation_shape::MalformedAcceptWithBody,
        6131  +
                            <
        6132  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6133  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6134  +
                                    RestJson<L>,
        6135  +
                                    crate::operation_shape::MalformedAcceptWithBody,
        6136  +
                                    ModelPl::Output
        6137  +
                                >
        6138  +
                            >::Output
        6139  +
                        >,
        6140  +
        6141  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6142  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6143  +
        6144  +
                    {
        6145  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6146  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6147  +
        let svc = crate::operation_shape::MalformedAcceptWithBody::from_handler(handler);
        6148  +
        let svc = self.model_plugin.apply(svc);
        6149  +
        let svc =
        6150  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6151  +
                .apply(svc);
        6152  +
        let svc = self.http_plugin.apply(svc);
        6153  +
        self.malformed_accept_with_body_custom(svc)
        6154  +
    }
        6155  +
        6156  +
    /// Sets the [`MalformedAcceptWithBody`](crate::operation_shape::MalformedAcceptWithBody) operation.
        6157  +
    ///
        6158  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6159  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6160  +
    ///
        6161  +
    /// # Example
        6162  +
    ///
        6163  +
    /// ```no_run
        6164  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6165  +
    ///
        6166  +
    /// use rest_json_http0x::{input, output, error};
        6167  +
    ///
        6168  +
    /// async fn handler(input: input::MalformedAcceptWithBodyInput) -> Result<output::MalformedAcceptWithBodyOutput, std::convert::Infallible> {
        6169  +
    ///     todo!()
        6170  +
    /// }
        6171  +
    ///
        6172  +
    /// let config = RestJsonConfig::builder().build();
        6173  +
    /// let svc = ::tower::util::service_fn(handler);
        6174  +
    /// let app = RestJson::builder(config)
        6175  +
    ///     .malformed_accept_with_body_service(svc)
        6176  +
    ///     /* Set other handlers */
        6177  +
    ///     .build()
        6178  +
    ///     .unwrap();
        6179  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6180  +
    /// ```
        6181  +
    ///
        6182  +
                    pub fn malformed_accept_with_body_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        6183  +
                    where
        6184  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedAcceptWithBody, ServiceExtractors>,
        6185  +
        6186  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6187  +
                            RestJson<L>,
        6188  +
                            crate::operation_shape::MalformedAcceptWithBody,
        6189  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedAcceptWithBody, S>
        6190  +
                        >,
        6191  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6192  +
                            RestJson<L>,
        6193  +
                            crate::operation_shape::MalformedAcceptWithBody,
        6194  +
                            ModelPl::Output
        6195  +
                        >,
        6196  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6197  +
                            RestJson<L>,
        6198  +
                            crate::operation_shape::MalformedAcceptWithBody,
        6199  +
                            <
        6200  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6201  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6202  +
                                    RestJson<L>,
        6203  +
                                    crate::operation_shape::MalformedAcceptWithBody,
        6204  +
                                    ModelPl::Output
        6205  +
                                >
        6206  +
                            >::Output
        6207  +
                        >,
        6208  +
        6209  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6210  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6211  +
        6212  +
                    {
        6213  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6214  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6215  +
        let svc = crate::operation_shape::MalformedAcceptWithBody::from_service(service);
        6216  +
        let svc = self.model_plugin.apply(svc);
        6217  +
        let svc =
        6218  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6219  +
                .apply(svc);
        6220  +
        let svc = self.http_plugin.apply(svc);
        6221  +
        self.malformed_accept_with_body_custom(svc)
        6222  +
    }
        6223  +
        6224  +
    /// Sets the [`MalformedAcceptWithBody`](crate::operation_shape::MalformedAcceptWithBody) to a custom [`Service`](tower::Service).
        6225  +
    /// not constrained by the Smithy contract.
        6226  +
    fn malformed_accept_with_body_custom<S>(mut self, svc: S) -> Self
        6227  +
    where
        6228  +
        S: ::tower::Service<
        6229  +
                ::http::Request<Body>,
        6230  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        6231  +
                Error = ::std::convert::Infallible,
        6232  +
            > + Clone
        6233  +
            + Send
        6234  +
            + 'static,
        6235  +
        S::Future: Send + 'static,
        6236  +
    {
        6237  +
        self.malformed_accept_with_body =
        6238  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        6239  +
        self
        6240  +
    }
        6241  +
        6242  +
    /// Sets the [`MalformedAcceptWithGenericString`](crate::operation_shape::MalformedAcceptWithGenericString) operation.
        6243  +
    ///
        6244  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6245  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6246  +
    ///
        6247  +
    /// # Example
        6248  +
    ///
        6249  +
    /// ```no_run
        6250  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6251  +
    ///
        6252  +
    /// use rest_json_http0x::{input, output, error};
        6253  +
    ///
        6254  +
    /// async fn handler(input: input::MalformedAcceptWithGenericStringInput) -> output::MalformedAcceptWithGenericStringOutput {
        6255  +
    ///     todo!()
        6256  +
    /// }
        6257  +
    ///
        6258  +
    /// let config = RestJsonConfig::builder().build();
        6259  +
    /// let app = RestJson::builder(config)
        6260  +
    ///     .malformed_accept_with_generic_string(handler)
        6261  +
    ///     /* Set other handlers */
        6262  +
    ///     .build()
        6263  +
    ///     .unwrap();
        6264  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6265  +
    /// ```
        6266  +
    ///
        6267  +
                    pub fn malformed_accept_with_generic_string<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        6268  +
                    where
        6269  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedAcceptWithGenericString, HandlerExtractors>,
        6270  +
        6271  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6272  +
                            RestJson<L>,
        6273  +
                            crate::operation_shape::MalformedAcceptWithGenericString,
        6274  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedAcceptWithGenericString, HandlerType>
        6275  +
                        >,
        6276  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6277  +
                            RestJson<L>,
        6278  +
                            crate::operation_shape::MalformedAcceptWithGenericString,
        6279  +
                            ModelPl::Output
        6280  +
                        >,
        6281  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6282  +
                            RestJson<L>,
        6283  +
                            crate::operation_shape::MalformedAcceptWithGenericString,
        6284  +
                            <
        6285  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6286  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6287  +
                                    RestJson<L>,
        6288  +
                                    crate::operation_shape::MalformedAcceptWithGenericString,
        6289  +
                                    ModelPl::Output
        6290  +
                                >
        6291  +
                            >::Output
        6292  +
                        >,
        6293  +
        6294  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6295  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6296  +
        6297  +
                    {
        6298  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6299  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6300  +
        let svc = crate::operation_shape::MalformedAcceptWithGenericString::from_handler(handler);
        6301  +
        let svc = self.model_plugin.apply(svc);
        6302  +
        let svc =
        6303  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6304  +
                .apply(svc);
        6305  +
        let svc = self.http_plugin.apply(svc);
        6306  +
        self.malformed_accept_with_generic_string_custom(svc)
        6307  +
    }
        6308  +
        6309  +
    /// Sets the [`MalformedAcceptWithGenericString`](crate::operation_shape::MalformedAcceptWithGenericString) operation.
        6310  +
    ///
        6311  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6312  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6313  +
    ///
        6314  +
    /// # Example
        6315  +
    ///
        6316  +
    /// ```no_run
        6317  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6318  +
    ///
        6319  +
    /// use rest_json_http0x::{input, output, error};
        6320  +
    ///
        6321  +
    /// async fn handler(input: input::MalformedAcceptWithGenericStringInput) -> Result<output::MalformedAcceptWithGenericStringOutput, std::convert::Infallible> {
        6322  +
    ///     todo!()
        6323  +
    /// }
        6324  +
    ///
        6325  +
    /// let config = RestJsonConfig::builder().build();
        6326  +
    /// let svc = ::tower::util::service_fn(handler);
        6327  +
    /// let app = RestJson::builder(config)
        6328  +
    ///     .malformed_accept_with_generic_string_service(svc)
        6329  +
    ///     /* Set other handlers */
        6330  +
    ///     .build()
        6331  +
    ///     .unwrap();
        6332  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6333  +
    /// ```
        6334  +
    ///
        6335  +
                    pub fn malformed_accept_with_generic_string_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        6336  +
                    where
        6337  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedAcceptWithGenericString, ServiceExtractors>,
        6338  +
        6339  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6340  +
                            RestJson<L>,
        6341  +
                            crate::operation_shape::MalformedAcceptWithGenericString,
        6342  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedAcceptWithGenericString, S>
        6343  +
                        >,
        6344  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6345  +
                            RestJson<L>,
        6346  +
                            crate::operation_shape::MalformedAcceptWithGenericString,
        6347  +
                            ModelPl::Output
        6348  +
                        >,
        6349  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6350  +
                            RestJson<L>,
        6351  +
                            crate::operation_shape::MalformedAcceptWithGenericString,
        6352  +
                            <
        6353  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6354  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6355  +
                                    RestJson<L>,
        6356  +
                                    crate::operation_shape::MalformedAcceptWithGenericString,
        6357  +
                                    ModelPl::Output
        6358  +
                                >
        6359  +
                            >::Output
        6360  +
                        >,
        6361  +
        6362  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6363  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6364  +
        6365  +
                    {
        6366  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6367  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6368  +
        let svc = crate::operation_shape::MalformedAcceptWithGenericString::from_service(service);
        6369  +
        let svc = self.model_plugin.apply(svc);
        6370  +
        let svc =
        6371  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6372  +
                .apply(svc);
        6373  +
        let svc = self.http_plugin.apply(svc);
        6374  +
        self.malformed_accept_with_generic_string_custom(svc)
        6375  +
    }
        6376  +
        6377  +
    /// Sets the [`MalformedAcceptWithGenericString`](crate::operation_shape::MalformedAcceptWithGenericString) to a custom [`Service`](tower::Service).
        6378  +
    /// not constrained by the Smithy contract.
        6379  +
    fn malformed_accept_with_generic_string_custom<S>(mut self, svc: S) -> Self
        6380  +
    where
        6381  +
        S: ::tower::Service<
        6382  +
                ::http::Request<Body>,
        6383  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        6384  +
                Error = ::std::convert::Infallible,
        6385  +
            > + Clone
        6386  +
            + Send
        6387  +
            + 'static,
        6388  +
        S::Future: Send + 'static,
        6389  +
    {
        6390  +
        self.malformed_accept_with_generic_string =
        6391  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        6392  +
        self
        6393  +
    }
        6394  +
        6395  +
    /// Sets the [`MalformedAcceptWithPayload`](crate::operation_shape::MalformedAcceptWithPayload) operation.
        6396  +
    ///
        6397  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6398  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6399  +
    ///
        6400  +
    /// # Example
        6401  +
    ///
        6402  +
    /// ```no_run
        6403  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6404  +
    ///
        6405  +
    /// use rest_json_http0x::{input, output, error};
        6406  +
    ///
        6407  +
    /// async fn handler(input: input::MalformedAcceptWithPayloadInput) -> output::MalformedAcceptWithPayloadOutput {
        6408  +
    ///     todo!()
        6409  +
    /// }
        6410  +
    ///
        6411  +
    /// let config = RestJsonConfig::builder().build();
        6412  +
    /// let app = RestJson::builder(config)
        6413  +
    ///     .malformed_accept_with_payload(handler)
        6414  +
    ///     /* Set other handlers */
        6415  +
    ///     .build()
        6416  +
    ///     .unwrap();
        6417  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6418  +
    /// ```
        6419  +
    ///
        6420  +
                    pub fn malformed_accept_with_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        6421  +
                    where
        6422  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedAcceptWithPayload, HandlerExtractors>,
        6423  +
        6424  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6425  +
                            RestJson<L>,
        6426  +
                            crate::operation_shape::MalformedAcceptWithPayload,
        6427  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedAcceptWithPayload, HandlerType>
        6428  +
                        >,
        6429  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6430  +
                            RestJson<L>,
        6431  +
                            crate::operation_shape::MalformedAcceptWithPayload,
        6432  +
                            ModelPl::Output
        6433  +
                        >,
        6434  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6435  +
                            RestJson<L>,
        6436  +
                            crate::operation_shape::MalformedAcceptWithPayload,
        6437  +
                            <
        6438  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6439  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6440  +
                                    RestJson<L>,
        6441  +
                                    crate::operation_shape::MalformedAcceptWithPayload,
        6442  +
                                    ModelPl::Output
        6443  +
                                >
        6444  +
                            >::Output
        6445  +
                        >,
        6446  +
        6447  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6448  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6449  +
        6450  +
                    {
        6451  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6452  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6453  +
        let svc = crate::operation_shape::MalformedAcceptWithPayload::from_handler(handler);
        6454  +
        let svc = self.model_plugin.apply(svc);
        6455  +
        let svc =
        6456  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6457  +
                .apply(svc);
        6458  +
        let svc = self.http_plugin.apply(svc);
        6459  +
        self.malformed_accept_with_payload_custom(svc)
        6460  +
    }
        6461  +
        6462  +
    /// Sets the [`MalformedAcceptWithPayload`](crate::operation_shape::MalformedAcceptWithPayload) operation.
        6463  +
    ///
        6464  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6465  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6466  +
    ///
        6467  +
    /// # Example
        6468  +
    ///
        6469  +
    /// ```no_run
        6470  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6471  +
    ///
        6472  +
    /// use rest_json_http0x::{input, output, error};
        6473  +
    ///
        6474  +
    /// async fn handler(input: input::MalformedAcceptWithPayloadInput) -> Result<output::MalformedAcceptWithPayloadOutput, std::convert::Infallible> {
        6475  +
    ///     todo!()
        6476  +
    /// }
        6477  +
    ///
        6478  +
    /// let config = RestJsonConfig::builder().build();
        6479  +
    /// let svc = ::tower::util::service_fn(handler);
        6480  +
    /// let app = RestJson::builder(config)
        6481  +
    ///     .malformed_accept_with_payload_service(svc)
        6482  +
    ///     /* Set other handlers */
        6483  +
    ///     .build()
        6484  +
    ///     .unwrap();
        6485  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6486  +
    /// ```
        6487  +
    ///
        6488  +
                    pub fn malformed_accept_with_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        6489  +
                    where
        6490  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedAcceptWithPayload, ServiceExtractors>,
        6491  +
        6492  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6493  +
                            RestJson<L>,
        6494  +
                            crate::operation_shape::MalformedAcceptWithPayload,
        6495  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedAcceptWithPayload, S>
        6496  +
                        >,
        6497  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6498  +
                            RestJson<L>,
        6499  +
                            crate::operation_shape::MalformedAcceptWithPayload,
        6500  +
                            ModelPl::Output
        6501  +
                        >,
        6502  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6503  +
                            RestJson<L>,
        6504  +
                            crate::operation_shape::MalformedAcceptWithPayload,
        6505  +
                            <
        6506  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6507  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6508  +
                                    RestJson<L>,
        6509  +
                                    crate::operation_shape::MalformedAcceptWithPayload,
        6510  +
                                    ModelPl::Output
        6511  +
                                >
        6512  +
                            >::Output
        6513  +
                        >,
        6514  +
        6515  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6516  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6517  +
        6518  +
                    {
        6519  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6520  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6521  +
        let svc = crate::operation_shape::MalformedAcceptWithPayload::from_service(service);
        6522  +
        let svc = self.model_plugin.apply(svc);
        6523  +
        let svc =
        6524  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6525  +
                .apply(svc);
        6526  +
        let svc = self.http_plugin.apply(svc);
        6527  +
        self.malformed_accept_with_payload_custom(svc)
        6528  +
    }
        6529  +
        6530  +
    /// Sets the [`MalformedAcceptWithPayload`](crate::operation_shape::MalformedAcceptWithPayload) to a custom [`Service`](tower::Service).
        6531  +
    /// not constrained by the Smithy contract.
        6532  +
    fn malformed_accept_with_payload_custom<S>(mut self, svc: S) -> Self
        6533  +
    where
        6534  +
        S: ::tower::Service<
        6535  +
                ::http::Request<Body>,
        6536  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        6537  +
                Error = ::std::convert::Infallible,
        6538  +
            > + Clone
        6539  +
            + Send
        6540  +
            + 'static,
        6541  +
        S::Future: Send + 'static,
        6542  +
    {
        6543  +
        self.malformed_accept_with_payload =
        6544  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        6545  +
        self
        6546  +
    }
        6547  +
        6548  +
    /// Sets the [`MalformedBlob`](crate::operation_shape::MalformedBlob) operation.
        6549  +
    ///
        6550  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6551  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6552  +
    ///
        6553  +
    /// # Example
        6554  +
    ///
        6555  +
    /// ```no_run
        6556  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6557  +
    ///
        6558  +
    /// use rest_json_http0x::{input, output, error};
        6559  +
    ///
        6560  +
    /// async fn handler(input: input::MalformedBlobInput) -> output::MalformedBlobOutput {
        6561  +
    ///     todo!()
        6562  +
    /// }
        6563  +
    ///
        6564  +
    /// let config = RestJsonConfig::builder().build();
        6565  +
    /// let app = RestJson::builder(config)
        6566  +
    ///     .malformed_blob(handler)
        6567  +
    ///     /* Set other handlers */
        6568  +
    ///     .build()
        6569  +
    ///     .unwrap();
        6570  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6571  +
    /// ```
        6572  +
    ///
        6573  +
                    pub fn malformed_blob<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        6574  +
                    where
        6575  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedBlob, HandlerExtractors>,
        6576  +
        6577  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6578  +
                            RestJson<L>,
        6579  +
                            crate::operation_shape::MalformedBlob,
        6580  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedBlob, HandlerType>
        6581  +
                        >,
        6582  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6583  +
                            RestJson<L>,
        6584  +
                            crate::operation_shape::MalformedBlob,
        6585  +
                            ModelPl::Output
        6586  +
                        >,
        6587  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6588  +
                            RestJson<L>,
        6589  +
                            crate::operation_shape::MalformedBlob,
        6590  +
                            <
        6591  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6592  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6593  +
                                    RestJson<L>,
        6594  +
                                    crate::operation_shape::MalformedBlob,
        6595  +
                                    ModelPl::Output
        6596  +
                                >
        6597  +
                            >::Output
        6598  +
                        >,
        6599  +
        6600  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6601  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6602  +
        6603  +
                    {
        6604  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6605  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6606  +
        let svc = crate::operation_shape::MalformedBlob::from_handler(handler);
        6607  +
        let svc = self.model_plugin.apply(svc);
        6608  +
        let svc =
        6609  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6610  +
                .apply(svc);
        6611  +
        let svc = self.http_plugin.apply(svc);
        6612  +
        self.malformed_blob_custom(svc)
        6613  +
    }
        6614  +
        6615  +
    /// Sets the [`MalformedBlob`](crate::operation_shape::MalformedBlob) operation.
        6616  +
    ///
        6617  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6618  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6619  +
    ///
        6620  +
    /// # Example
        6621  +
    ///
        6622  +
    /// ```no_run
        6623  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6624  +
    ///
        6625  +
    /// use rest_json_http0x::{input, output, error};
        6626  +
    ///
        6627  +
    /// async fn handler(input: input::MalformedBlobInput) -> Result<output::MalformedBlobOutput, std::convert::Infallible> {
        6628  +
    ///     todo!()
        6629  +
    /// }
        6630  +
    ///
        6631  +
    /// let config = RestJsonConfig::builder().build();
        6632  +
    /// let svc = ::tower::util::service_fn(handler);
        6633  +
    /// let app = RestJson::builder(config)
        6634  +
    ///     .malformed_blob_service(svc)
        6635  +
    ///     /* Set other handlers */
        6636  +
    ///     .build()
        6637  +
    ///     .unwrap();
        6638  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6639  +
    /// ```
        6640  +
    ///
        6641  +
                    pub fn malformed_blob_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        6642  +
                    where
        6643  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedBlob, ServiceExtractors>,
        6644  +
        6645  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6646  +
                            RestJson<L>,
        6647  +
                            crate::operation_shape::MalformedBlob,
        6648  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedBlob, S>
        6649  +
                        >,
        6650  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6651  +
                            RestJson<L>,
        6652  +
                            crate::operation_shape::MalformedBlob,
        6653  +
                            ModelPl::Output
        6654  +
                        >,
        6655  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6656  +
                            RestJson<L>,
        6657  +
                            crate::operation_shape::MalformedBlob,
        6658  +
                            <
        6659  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6660  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6661  +
                                    RestJson<L>,
        6662  +
                                    crate::operation_shape::MalformedBlob,
        6663  +
                                    ModelPl::Output
        6664  +
                                >
        6665  +
                            >::Output
        6666  +
                        >,
        6667  +
        6668  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6669  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6670  +
        6671  +
                    {
        6672  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6673  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6674  +
        let svc = crate::operation_shape::MalformedBlob::from_service(service);
        6675  +
        let svc = self.model_plugin.apply(svc);
        6676  +
        let svc =
        6677  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6678  +
                .apply(svc);
        6679  +
        let svc = self.http_plugin.apply(svc);
        6680  +
        self.malformed_blob_custom(svc)
        6681  +
    }
        6682  +
        6683  +
    /// Sets the [`MalformedBlob`](crate::operation_shape::MalformedBlob) to a custom [`Service`](tower::Service).
        6684  +
    /// not constrained by the Smithy contract.
        6685  +
    fn malformed_blob_custom<S>(mut self, svc: S) -> Self
        6686  +
    where
        6687  +
        S: ::tower::Service<
        6688  +
                ::http::Request<Body>,
        6689  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        6690  +
                Error = ::std::convert::Infallible,
        6691  +
            > + Clone
        6692  +
            + Send
        6693  +
            + 'static,
        6694  +
        S::Future: Send + 'static,
        6695  +
    {
        6696  +
        self.malformed_blob = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        6697  +
        self
        6698  +
    }
        6699  +
        6700  +
    /// Sets the [`MalformedBoolean`](crate::operation_shape::MalformedBoolean) operation.
        6701  +
    ///
        6702  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6703  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6704  +
    ///
        6705  +
    /// # Example
        6706  +
    ///
        6707  +
    /// ```no_run
        6708  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6709  +
    ///
        6710  +
    /// use rest_json_http0x::{input, output, error};
        6711  +
    ///
        6712  +
    /// async fn handler(input: input::MalformedBooleanInput) -> Result<output::MalformedBooleanOutput, error::MalformedBooleanError> {
        6713  +
    ///     todo!()
        6714  +
    /// }
        6715  +
    ///
        6716  +
    /// let config = RestJsonConfig::builder().build();
        6717  +
    /// let app = RestJson::builder(config)
        6718  +
    ///     .malformed_boolean(handler)
        6719  +
    ///     /* Set other handlers */
        6720  +
    ///     .build()
        6721  +
    ///     .unwrap();
        6722  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6723  +
    /// ```
        6724  +
    ///
        6725  +
                    pub fn malformed_boolean<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        6726  +
                    where
        6727  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedBoolean, HandlerExtractors>,
        6728  +
        6729  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6730  +
                            RestJson<L>,
        6731  +
                            crate::operation_shape::MalformedBoolean,
        6732  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedBoolean, HandlerType>
        6733  +
                        >,
        6734  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6735  +
                            RestJson<L>,
        6736  +
                            crate::operation_shape::MalformedBoolean,
        6737  +
                            ModelPl::Output
        6738  +
                        >,
        6739  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6740  +
                            RestJson<L>,
        6741  +
                            crate::operation_shape::MalformedBoolean,
        6742  +
                            <
        6743  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6744  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6745  +
                                    RestJson<L>,
        6746  +
                                    crate::operation_shape::MalformedBoolean,
        6747  +
                                    ModelPl::Output
        6748  +
                                >
        6749  +
                            >::Output
        6750  +
                        >,
        6751  +
        6752  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6753  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6754  +
        6755  +
                    {
        6756  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6757  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6758  +
        let svc = crate::operation_shape::MalformedBoolean::from_handler(handler);
        6759  +
        let svc = self.model_plugin.apply(svc);
        6760  +
        let svc =
        6761  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6762  +
                .apply(svc);
        6763  +
        let svc = self.http_plugin.apply(svc);
        6764  +
        self.malformed_boolean_custom(svc)
        6765  +
    }
        6766  +
        6767  +
    /// Sets the [`MalformedBoolean`](crate::operation_shape::MalformedBoolean) operation.
        6768  +
    ///
        6769  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6770  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6771  +
    ///
        6772  +
    /// # Example
        6773  +
    ///
        6774  +
    /// ```no_run
        6775  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6776  +
    ///
        6777  +
    /// use rest_json_http0x::{input, output, error};
        6778  +
    ///
        6779  +
    /// async fn handler(input: input::MalformedBooleanInput) -> Result<output::MalformedBooleanOutput, error::MalformedBooleanError> {
        6780  +
    ///     todo!()
        6781  +
    /// }
        6782  +
    ///
        6783  +
    /// let config = RestJsonConfig::builder().build();
        6784  +
    /// let svc = ::tower::util::service_fn(handler);
        6785  +
    /// let app = RestJson::builder(config)
        6786  +
    ///     .malformed_boolean_service(svc)
        6787  +
    ///     /* Set other handlers */
        6788  +
    ///     .build()
        6789  +
    ///     .unwrap();
        6790  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6791  +
    /// ```
        6792  +
    ///
        6793  +
                    pub fn malformed_boolean_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        6794  +
                    where
        6795  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedBoolean, ServiceExtractors>,
        6796  +
        6797  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6798  +
                            RestJson<L>,
        6799  +
                            crate::operation_shape::MalformedBoolean,
        6800  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedBoolean, S>
        6801  +
                        >,
        6802  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6803  +
                            RestJson<L>,
        6804  +
                            crate::operation_shape::MalformedBoolean,
        6805  +
                            ModelPl::Output
        6806  +
                        >,
        6807  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6808  +
                            RestJson<L>,
        6809  +
                            crate::operation_shape::MalformedBoolean,
        6810  +
                            <
        6811  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6812  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6813  +
                                    RestJson<L>,
        6814  +
                                    crate::operation_shape::MalformedBoolean,
        6815  +
                                    ModelPl::Output
        6816  +
                                >
        6817  +
                            >::Output
        6818  +
                        >,
        6819  +
        6820  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6821  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6822  +
        6823  +
                    {
        6824  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6825  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6826  +
        let svc = crate::operation_shape::MalformedBoolean::from_service(service);
        6827  +
        let svc = self.model_plugin.apply(svc);
        6828  +
        let svc =
        6829  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6830  +
                .apply(svc);
        6831  +
        let svc = self.http_plugin.apply(svc);
        6832  +
        self.malformed_boolean_custom(svc)
        6833  +
    }
        6834  +
        6835  +
    /// Sets the [`MalformedBoolean`](crate::operation_shape::MalformedBoolean) to a custom [`Service`](tower::Service).
        6836  +
    /// not constrained by the Smithy contract.
        6837  +
    fn malformed_boolean_custom<S>(mut self, svc: S) -> Self
        6838  +
    where
        6839  +
        S: ::tower::Service<
        6840  +
                ::http::Request<Body>,
        6841  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        6842  +
                Error = ::std::convert::Infallible,
        6843  +
            > + Clone
        6844  +
            + Send
        6845  +
            + 'static,
        6846  +
        S::Future: Send + 'static,
        6847  +
    {
        6848  +
        self.malformed_boolean = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        6849  +
        self
        6850  +
    }
        6851  +
        6852  +
    /// Sets the [`MalformedByte`](crate::operation_shape::MalformedByte) operation.
        6853  +
    ///
        6854  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6855  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6856  +
    ///
        6857  +
    /// # Example
        6858  +
    ///
        6859  +
    /// ```no_run
        6860  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6861  +
    ///
        6862  +
    /// use rest_json_http0x::{input, output, error};
        6863  +
    ///
        6864  +
    /// async fn handler(input: input::MalformedByteInput) -> Result<output::MalformedByteOutput, error::MalformedByteError> {
        6865  +
    ///     todo!()
        6866  +
    /// }
        6867  +
    ///
        6868  +
    /// let config = RestJsonConfig::builder().build();
        6869  +
    /// let app = RestJson::builder(config)
        6870  +
    ///     .malformed_byte(handler)
        6871  +
    ///     /* Set other handlers */
        6872  +
    ///     .build()
        6873  +
    ///     .unwrap();
        6874  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6875  +
    /// ```
        6876  +
    ///
        6877  +
                    pub fn malformed_byte<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        6878  +
                    where
        6879  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedByte, HandlerExtractors>,
        6880  +
        6881  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6882  +
                            RestJson<L>,
        6883  +
                            crate::operation_shape::MalformedByte,
        6884  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedByte, HandlerType>
        6885  +
                        >,
        6886  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6887  +
                            RestJson<L>,
        6888  +
                            crate::operation_shape::MalformedByte,
        6889  +
                            ModelPl::Output
        6890  +
                        >,
        6891  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6892  +
                            RestJson<L>,
        6893  +
                            crate::operation_shape::MalformedByte,
        6894  +
                            <
        6895  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6896  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6897  +
                                    RestJson<L>,
        6898  +
                                    crate::operation_shape::MalformedByte,
        6899  +
                                    ModelPl::Output
        6900  +
                                >
        6901  +
                            >::Output
        6902  +
                        >,
        6903  +
        6904  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6905  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6906  +
        6907  +
                    {
        6908  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6909  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6910  +
        let svc = crate::operation_shape::MalformedByte::from_handler(handler);
        6911  +
        let svc = self.model_plugin.apply(svc);
        6912  +
        let svc =
        6913  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6914  +
                .apply(svc);
        6915  +
        let svc = self.http_plugin.apply(svc);
        6916  +
        self.malformed_byte_custom(svc)
        6917  +
    }
        6918  +
        6919  +
    /// Sets the [`MalformedByte`](crate::operation_shape::MalformedByte) operation.
        6920  +
    ///
        6921  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        6922  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        6923  +
    ///
        6924  +
    /// # Example
        6925  +
    ///
        6926  +
    /// ```no_run
        6927  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        6928  +
    ///
        6929  +
    /// use rest_json_http0x::{input, output, error};
        6930  +
    ///
        6931  +
    /// async fn handler(input: input::MalformedByteInput) -> Result<output::MalformedByteOutput, error::MalformedByteError> {
        6932  +
    ///     todo!()
        6933  +
    /// }
        6934  +
    ///
        6935  +
    /// let config = RestJsonConfig::builder().build();
        6936  +
    /// let svc = ::tower::util::service_fn(handler);
        6937  +
    /// let app = RestJson::builder(config)
        6938  +
    ///     .malformed_byte_service(svc)
        6939  +
    ///     /* Set other handlers */
        6940  +
    ///     .build()
        6941  +
    ///     .unwrap();
        6942  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        6943  +
    /// ```
        6944  +
    ///
        6945  +
                    pub fn malformed_byte_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        6946  +
                    where
        6947  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedByte, ServiceExtractors>,
        6948  +
        6949  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6950  +
                            RestJson<L>,
        6951  +
                            crate::operation_shape::MalformedByte,
        6952  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedByte, S>
        6953  +
                        >,
        6954  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6955  +
                            RestJson<L>,
        6956  +
                            crate::operation_shape::MalformedByte,
        6957  +
                            ModelPl::Output
        6958  +
                        >,
        6959  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        6960  +
                            RestJson<L>,
        6961  +
                            crate::operation_shape::MalformedByte,
        6962  +
                            <
        6963  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        6964  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        6965  +
                                    RestJson<L>,
        6966  +
                                    crate::operation_shape::MalformedByte,
        6967  +
                                    ModelPl::Output
        6968  +
                                >
        6969  +
                            >::Output
        6970  +
                        >,
        6971  +
        6972  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        6973  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        6974  +
        6975  +
                    {
        6976  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        6977  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        6978  +
        let svc = crate::operation_shape::MalformedByte::from_service(service);
        6979  +
        let svc = self.model_plugin.apply(svc);
        6980  +
        let svc =
        6981  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        6982  +
                .apply(svc);
        6983  +
        let svc = self.http_plugin.apply(svc);
        6984  +
        self.malformed_byte_custom(svc)
        6985  +
    }
        6986  +
        6987  +
    /// Sets the [`MalformedByte`](crate::operation_shape::MalformedByte) to a custom [`Service`](tower::Service).
        6988  +
    /// not constrained by the Smithy contract.
        6989  +
    fn malformed_byte_custom<S>(mut self, svc: S) -> Self
        6990  +
    where
        6991  +
        S: ::tower::Service<
        6992  +
                ::http::Request<Body>,
        6993  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        6994  +
                Error = ::std::convert::Infallible,
        6995  +
            > + Clone
        6996  +
            + Send
        6997  +
            + 'static,
        6998  +
        S::Future: Send + 'static,
        6999  +
    {
        7000  +
        self.malformed_byte = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        7001  +
        self
        7002  +
    }
        7003  +
        7004  +
    /// Sets the [`MalformedContentTypeWithBody`](crate::operation_shape::MalformedContentTypeWithBody) operation.
        7005  +
    ///
        7006  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7007  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7008  +
    ///
        7009  +
    /// # Example
        7010  +
    ///
        7011  +
    /// ```no_run
        7012  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7013  +
    ///
        7014  +
    /// use rest_json_http0x::{input, output, error};
        7015  +
    ///
        7016  +
    /// async fn handler(input: input::MalformedContentTypeWithBodyInput) -> output::MalformedContentTypeWithBodyOutput {
        7017  +
    ///     todo!()
        7018  +
    /// }
        7019  +
    ///
        7020  +
    /// let config = RestJsonConfig::builder().build();
        7021  +
    /// let app = RestJson::builder(config)
        7022  +
    ///     .malformed_content_type_with_body(handler)
        7023  +
    ///     /* Set other handlers */
        7024  +
    ///     .build()
        7025  +
    ///     .unwrap();
        7026  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7027  +
    /// ```
        7028  +
    ///
        7029  +
                    pub fn malformed_content_type_with_body<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        7030  +
                    where
        7031  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedContentTypeWithBody, HandlerExtractors>,
        7032  +
        7033  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7034  +
                            RestJson<L>,
        7035  +
                            crate::operation_shape::MalformedContentTypeWithBody,
        7036  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedContentTypeWithBody, HandlerType>
        7037  +
                        >,
        7038  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7039  +
                            RestJson<L>,
        7040  +
                            crate::operation_shape::MalformedContentTypeWithBody,
        7041  +
                            ModelPl::Output
        7042  +
                        >,
        7043  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7044  +
                            RestJson<L>,
        7045  +
                            crate::operation_shape::MalformedContentTypeWithBody,
        7046  +
                            <
        7047  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7048  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7049  +
                                    RestJson<L>,
        7050  +
                                    crate::operation_shape::MalformedContentTypeWithBody,
        7051  +
                                    ModelPl::Output
        7052  +
                                >
        7053  +
                            >::Output
        7054  +
                        >,
        7055  +
        7056  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7057  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7058  +
        7059  +
                    {
        7060  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7061  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7062  +
        let svc = crate::operation_shape::MalformedContentTypeWithBody::from_handler(handler);
        7063  +
        let svc = self.model_plugin.apply(svc);
        7064  +
        let svc =
        7065  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7066  +
                .apply(svc);
        7067  +
        let svc = self.http_plugin.apply(svc);
        7068  +
        self.malformed_content_type_with_body_custom(svc)
        7069  +
    }
        7070  +
        7071  +
    /// Sets the [`MalformedContentTypeWithBody`](crate::operation_shape::MalformedContentTypeWithBody) operation.
        7072  +
    ///
        7073  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7074  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7075  +
    ///
        7076  +
    /// # Example
        7077  +
    ///
        7078  +
    /// ```no_run
        7079  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7080  +
    ///
        7081  +
    /// use rest_json_http0x::{input, output, error};
        7082  +
    ///
        7083  +
    /// async fn handler(input: input::MalformedContentTypeWithBodyInput) -> Result<output::MalformedContentTypeWithBodyOutput, std::convert::Infallible> {
        7084  +
    ///     todo!()
        7085  +
    /// }
        7086  +
    ///
        7087  +
    /// let config = RestJsonConfig::builder().build();
        7088  +
    /// let svc = ::tower::util::service_fn(handler);
        7089  +
    /// let app = RestJson::builder(config)
        7090  +
    ///     .malformed_content_type_with_body_service(svc)
        7091  +
    ///     /* Set other handlers */
        7092  +
    ///     .build()
        7093  +
    ///     .unwrap();
        7094  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7095  +
    /// ```
        7096  +
    ///
        7097  +
                    pub fn malformed_content_type_with_body_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        7098  +
                    where
        7099  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedContentTypeWithBody, ServiceExtractors>,
        7100  +
        7101  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7102  +
                            RestJson<L>,
        7103  +
                            crate::operation_shape::MalformedContentTypeWithBody,
        7104  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedContentTypeWithBody, S>
        7105  +
                        >,
        7106  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7107  +
                            RestJson<L>,
        7108  +
                            crate::operation_shape::MalformedContentTypeWithBody,
        7109  +
                            ModelPl::Output
        7110  +
                        >,
        7111  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7112  +
                            RestJson<L>,
        7113  +
                            crate::operation_shape::MalformedContentTypeWithBody,
        7114  +
                            <
        7115  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7116  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7117  +
                                    RestJson<L>,
        7118  +
                                    crate::operation_shape::MalformedContentTypeWithBody,
        7119  +
                                    ModelPl::Output
        7120  +
                                >
        7121  +
                            >::Output
        7122  +
                        >,
        7123  +
        7124  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7125  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7126  +
        7127  +
                    {
        7128  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7129  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7130  +
        let svc = crate::operation_shape::MalformedContentTypeWithBody::from_service(service);
        7131  +
        let svc = self.model_plugin.apply(svc);
        7132  +
        let svc =
        7133  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7134  +
                .apply(svc);
        7135  +
        let svc = self.http_plugin.apply(svc);
        7136  +
        self.malformed_content_type_with_body_custom(svc)
        7137  +
    }
        7138  +
        7139  +
    /// Sets the [`MalformedContentTypeWithBody`](crate::operation_shape::MalformedContentTypeWithBody) to a custom [`Service`](tower::Service).
        7140  +
    /// not constrained by the Smithy contract.
        7141  +
    fn malformed_content_type_with_body_custom<S>(mut self, svc: S) -> Self
        7142  +
    where
        7143  +
        S: ::tower::Service<
        7144  +
                ::http::Request<Body>,
        7145  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        7146  +
                Error = ::std::convert::Infallible,
        7147  +
            > + Clone
        7148  +
            + Send
        7149  +
            + 'static,
        7150  +
        S::Future: Send + 'static,
        7151  +
    {
        7152  +
        self.malformed_content_type_with_body =
        7153  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        7154  +
        self
        7155  +
    }
        7156  +
        7157  +
    /// Sets the [`MalformedContentTypeWithGenericString`](crate::operation_shape::MalformedContentTypeWithGenericString) operation.
        7158  +
    ///
        7159  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7160  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7161  +
    ///
        7162  +
    /// # Example
        7163  +
    ///
        7164  +
    /// ```no_run
        7165  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7166  +
    ///
        7167  +
    /// use rest_json_http0x::{input, output, error};
        7168  +
    ///
        7169  +
    /// async fn handler(input: input::MalformedContentTypeWithGenericStringInput) -> output::MalformedContentTypeWithGenericStringOutput {
        7170  +
    ///     todo!()
        7171  +
    /// }
        7172  +
    ///
        7173  +
    /// let config = RestJsonConfig::builder().build();
        7174  +
    /// let app = RestJson::builder(config)
        7175  +
    ///     .malformed_content_type_with_generic_string(handler)
        7176  +
    ///     /* Set other handlers */
        7177  +
    ///     .build()
        7178  +
    ///     .unwrap();
        7179  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7180  +
    /// ```
        7181  +
    ///
        7182  +
                    pub fn malformed_content_type_with_generic_string<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        7183  +
                    where
        7184  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedContentTypeWithGenericString, HandlerExtractors>,
        7185  +
        7186  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7187  +
                            RestJson<L>,
        7188  +
                            crate::operation_shape::MalformedContentTypeWithGenericString,
        7189  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedContentTypeWithGenericString, HandlerType>
        7190  +
                        >,
        7191  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7192  +
                            RestJson<L>,
        7193  +
                            crate::operation_shape::MalformedContentTypeWithGenericString,
        7194  +
                            ModelPl::Output
        7195  +
                        >,
        7196  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7197  +
                            RestJson<L>,
        7198  +
                            crate::operation_shape::MalformedContentTypeWithGenericString,
        7199  +
                            <
        7200  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7201  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7202  +
                                    RestJson<L>,
        7203  +
                                    crate::operation_shape::MalformedContentTypeWithGenericString,
        7204  +
                                    ModelPl::Output
        7205  +
                                >
        7206  +
                            >::Output
        7207  +
                        >,
        7208  +
        7209  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7210  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7211  +
        7212  +
                    {
        7213  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7214  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7215  +
        let svc =
        7216  +
            crate::operation_shape::MalformedContentTypeWithGenericString::from_handler(handler);
        7217  +
        let svc = self.model_plugin.apply(svc);
        7218  +
        let svc =
        7219  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7220  +
                .apply(svc);
        7221  +
        let svc = self.http_plugin.apply(svc);
        7222  +
        self.malformed_content_type_with_generic_string_custom(svc)
        7223  +
    }
        7224  +
        7225  +
    /// Sets the [`MalformedContentTypeWithGenericString`](crate::operation_shape::MalformedContentTypeWithGenericString) operation.
        7226  +
    ///
        7227  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7228  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7229  +
    ///
        7230  +
    /// # Example
        7231  +
    ///
        7232  +
    /// ```no_run
        7233  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7234  +
    ///
        7235  +
    /// use rest_json_http0x::{input, output, error};
        7236  +
    ///
        7237  +
    /// async fn handler(input: input::MalformedContentTypeWithGenericStringInput) -> Result<output::MalformedContentTypeWithGenericStringOutput, std::convert::Infallible> {
        7238  +
    ///     todo!()
        7239  +
    /// }
        7240  +
    ///
        7241  +
    /// let config = RestJsonConfig::builder().build();
        7242  +
    /// let svc = ::tower::util::service_fn(handler);
        7243  +
    /// let app = RestJson::builder(config)
        7244  +
    ///     .malformed_content_type_with_generic_string_service(svc)
        7245  +
    ///     /* Set other handlers */
        7246  +
    ///     .build()
        7247  +
    ///     .unwrap();
        7248  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7249  +
    /// ```
        7250  +
    ///
        7251  +
                    pub fn malformed_content_type_with_generic_string_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        7252  +
                    where
        7253  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedContentTypeWithGenericString, ServiceExtractors>,
        7254  +
        7255  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7256  +
                            RestJson<L>,
        7257  +
                            crate::operation_shape::MalformedContentTypeWithGenericString,
        7258  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedContentTypeWithGenericString, S>
        7259  +
                        >,
        7260  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7261  +
                            RestJson<L>,
        7262  +
                            crate::operation_shape::MalformedContentTypeWithGenericString,
        7263  +
                            ModelPl::Output
        7264  +
                        >,
        7265  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7266  +
                            RestJson<L>,
        7267  +
                            crate::operation_shape::MalformedContentTypeWithGenericString,
        7268  +
                            <
        7269  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7270  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7271  +
                                    RestJson<L>,
        7272  +
                                    crate::operation_shape::MalformedContentTypeWithGenericString,
        7273  +
                                    ModelPl::Output
        7274  +
                                >
        7275  +
                            >::Output
        7276  +
                        >,
        7277  +
        7278  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7279  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7280  +
        7281  +
                    {
        7282  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7283  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7284  +
        let svc =
        7285  +
            crate::operation_shape::MalformedContentTypeWithGenericString::from_service(service);
        7286  +
        let svc = self.model_plugin.apply(svc);
        7287  +
        let svc =
        7288  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7289  +
                .apply(svc);
        7290  +
        let svc = self.http_plugin.apply(svc);
        7291  +
        self.malformed_content_type_with_generic_string_custom(svc)
        7292  +
    }
        7293  +
        7294  +
    /// Sets the [`MalformedContentTypeWithGenericString`](crate::operation_shape::MalformedContentTypeWithGenericString) to a custom [`Service`](tower::Service).
        7295  +
    /// not constrained by the Smithy contract.
        7296  +
    fn malformed_content_type_with_generic_string_custom<S>(mut self, svc: S) -> Self
        7297  +
    where
        7298  +
        S: ::tower::Service<
        7299  +
                ::http::Request<Body>,
        7300  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        7301  +
                Error = ::std::convert::Infallible,
        7302  +
            > + Clone
        7303  +
            + Send
        7304  +
            + 'static,
        7305  +
        S::Future: Send + 'static,
        7306  +
    {
        7307  +
        self.malformed_content_type_with_generic_string =
        7308  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        7309  +
        self
        7310  +
    }
        7311  +
        7312  +
    /// Sets the [`MalformedContentTypeWithoutBody`](crate::operation_shape::MalformedContentTypeWithoutBody) operation.
        7313  +
    ///
        7314  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7315  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7316  +
    ///
        7317  +
    /// # Example
        7318  +
    ///
        7319  +
    /// ```no_run
        7320  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7321  +
    ///
        7322  +
    /// use rest_json_http0x::{input, output, error};
        7323  +
    ///
        7324  +
    /// async fn handler(input: input::MalformedContentTypeWithoutBodyInput) -> output::MalformedContentTypeWithoutBodyOutput {
        7325  +
    ///     todo!()
        7326  +
    /// }
        7327  +
    ///
        7328  +
    /// let config = RestJsonConfig::builder().build();
        7329  +
    /// let app = RestJson::builder(config)
        7330  +
    ///     .malformed_content_type_without_body(handler)
        7331  +
    ///     /* Set other handlers */
        7332  +
    ///     .build()
        7333  +
    ///     .unwrap();
        7334  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7335  +
    /// ```
        7336  +
    ///
        7337  +
                    pub fn malformed_content_type_without_body<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        7338  +
                    where
        7339  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedContentTypeWithoutBody, HandlerExtractors>,
        7340  +
        7341  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7342  +
                            RestJson<L>,
        7343  +
                            crate::operation_shape::MalformedContentTypeWithoutBody,
        7344  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedContentTypeWithoutBody, HandlerType>
        7345  +
                        >,
        7346  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7347  +
                            RestJson<L>,
        7348  +
                            crate::operation_shape::MalformedContentTypeWithoutBody,
        7349  +
                            ModelPl::Output
        7350  +
                        >,
        7351  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7352  +
                            RestJson<L>,
        7353  +
                            crate::operation_shape::MalformedContentTypeWithoutBody,
        7354  +
                            <
        7355  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7356  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7357  +
                                    RestJson<L>,
        7358  +
                                    crate::operation_shape::MalformedContentTypeWithoutBody,
        7359  +
                                    ModelPl::Output
        7360  +
                                >
        7361  +
                            >::Output
        7362  +
                        >,
        7363  +
        7364  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7365  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7366  +
        7367  +
                    {
        7368  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7369  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7370  +
        let svc = crate::operation_shape::MalformedContentTypeWithoutBody::from_handler(handler);
        7371  +
        let svc = self.model_plugin.apply(svc);
        7372  +
        let svc =
        7373  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7374  +
                .apply(svc);
        7375  +
        let svc = self.http_plugin.apply(svc);
        7376  +
        self.malformed_content_type_without_body_custom(svc)
        7377  +
    }
        7378  +
        7379  +
    /// Sets the [`MalformedContentTypeWithoutBody`](crate::operation_shape::MalformedContentTypeWithoutBody) operation.
        7380  +
    ///
        7381  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7382  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7383  +
    ///
        7384  +
    /// # Example
        7385  +
    ///
        7386  +
    /// ```no_run
        7387  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7388  +
    ///
        7389  +
    /// use rest_json_http0x::{input, output, error};
        7390  +
    ///
        7391  +
    /// async fn handler(input: input::MalformedContentTypeWithoutBodyInput) -> Result<output::MalformedContentTypeWithoutBodyOutput, std::convert::Infallible> {
        7392  +
    ///     todo!()
        7393  +
    /// }
        7394  +
    ///
        7395  +
    /// let config = RestJsonConfig::builder().build();
        7396  +
    /// let svc = ::tower::util::service_fn(handler);
        7397  +
    /// let app = RestJson::builder(config)
        7398  +
    ///     .malformed_content_type_without_body_service(svc)
        7399  +
    ///     /* Set other handlers */
        7400  +
    ///     .build()
        7401  +
    ///     .unwrap();
        7402  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7403  +
    /// ```
        7404  +
    ///
        7405  +
                    pub fn malformed_content_type_without_body_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        7406  +
                    where
        7407  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedContentTypeWithoutBody, ServiceExtractors>,
        7408  +
        7409  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7410  +
                            RestJson<L>,
        7411  +
                            crate::operation_shape::MalformedContentTypeWithoutBody,
        7412  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedContentTypeWithoutBody, S>
        7413  +
                        >,
        7414  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7415  +
                            RestJson<L>,
        7416  +
                            crate::operation_shape::MalformedContentTypeWithoutBody,
        7417  +
                            ModelPl::Output
        7418  +
                        >,
        7419  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7420  +
                            RestJson<L>,
        7421  +
                            crate::operation_shape::MalformedContentTypeWithoutBody,
        7422  +
                            <
        7423  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7424  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7425  +
                                    RestJson<L>,
        7426  +
                                    crate::operation_shape::MalformedContentTypeWithoutBody,
        7427  +
                                    ModelPl::Output
        7428  +
                                >
        7429  +
                            >::Output
        7430  +
                        >,
        7431  +
        7432  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7433  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7434  +
        7435  +
                    {
        7436  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7437  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7438  +
        let svc = crate::operation_shape::MalformedContentTypeWithoutBody::from_service(service);
        7439  +
        let svc = self.model_plugin.apply(svc);
        7440  +
        let svc =
        7441  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7442  +
                .apply(svc);
        7443  +
        let svc = self.http_plugin.apply(svc);
        7444  +
        self.malformed_content_type_without_body_custom(svc)
        7445  +
    }
        7446  +
        7447  +
    /// Sets the [`MalformedContentTypeWithoutBody`](crate::operation_shape::MalformedContentTypeWithoutBody) to a custom [`Service`](tower::Service).
        7448  +
    /// not constrained by the Smithy contract.
        7449  +
    fn malformed_content_type_without_body_custom<S>(mut self, svc: S) -> Self
        7450  +
    where
        7451  +
        S: ::tower::Service<
        7452  +
                ::http::Request<Body>,
        7453  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        7454  +
                Error = ::std::convert::Infallible,
        7455  +
            > + Clone
        7456  +
            + Send
        7457  +
            + 'static,
        7458  +
        S::Future: Send + 'static,
        7459  +
    {
        7460  +
        self.malformed_content_type_without_body =
        7461  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        7462  +
        self
        7463  +
    }
        7464  +
        7465  +
    /// Sets the [`MalformedContentTypeWithoutBodyEmptyInput`](crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput) operation.
        7466  +
    ///
        7467  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7468  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7469  +
    ///
        7470  +
    /// # Example
        7471  +
    ///
        7472  +
    /// ```no_run
        7473  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7474  +
    ///
        7475  +
    /// use rest_json_http0x::{input, output, error};
        7476  +
    ///
        7477  +
    /// async fn handler(input: input::MalformedContentTypeWithoutBodyEmptyInputInput) -> output::MalformedContentTypeWithoutBodyEmptyInputOutput {
        7478  +
    ///     todo!()
        7479  +
    /// }
        7480  +
    ///
        7481  +
    /// let config = RestJsonConfig::builder().build();
        7482  +
    /// let app = RestJson::builder(config)
        7483  +
    ///     .malformed_content_type_without_body_empty_input(handler)
        7484  +
    ///     /* Set other handlers */
        7485  +
    ///     .build()
        7486  +
    ///     .unwrap();
        7487  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7488  +
    /// ```
        7489  +
    ///
        7490  +
                    pub fn malformed_content_type_without_body_empty_input<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        7491  +
                    where
        7492  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput, HandlerExtractors>,
        7493  +
        7494  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7495  +
                            RestJson<L>,
        7496  +
                            crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
        7497  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput, HandlerType>
        7498  +
                        >,
        7499  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7500  +
                            RestJson<L>,
        7501  +
                            crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
        7502  +
                            ModelPl::Output
        7503  +
                        >,
        7504  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7505  +
                            RestJson<L>,
        7506  +
                            crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
        7507  +
                            <
        7508  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7509  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7510  +
                                    RestJson<L>,
        7511  +
                                    crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
        7512  +
                                    ModelPl::Output
        7513  +
                                >
        7514  +
                            >::Output
        7515  +
                        >,
        7516  +
        7517  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7518  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7519  +
        7520  +
                    {
        7521  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7522  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7523  +
        let svc = crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput::from_handler(
        7524  +
            handler,
        7525  +
        );
        7526  +
        let svc = self.model_plugin.apply(svc);
        7527  +
        let svc =
        7528  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7529  +
                .apply(svc);
        7530  +
        let svc = self.http_plugin.apply(svc);
        7531  +
        self.malformed_content_type_without_body_empty_input_custom(svc)
        7532  +
    }
        7533  +
        7534  +
    /// Sets the [`MalformedContentTypeWithoutBodyEmptyInput`](crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput) operation.
        7535  +
    ///
        7536  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7537  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7538  +
    ///
        7539  +
    /// # Example
        7540  +
    ///
        7541  +
    /// ```no_run
        7542  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7543  +
    ///
        7544  +
    /// use rest_json_http0x::{input, output, error};
        7545  +
    ///
        7546  +
    /// async fn handler(input: input::MalformedContentTypeWithoutBodyEmptyInputInput) -> Result<output::MalformedContentTypeWithoutBodyEmptyInputOutput, std::convert::Infallible> {
        7547  +
    ///     todo!()
        7548  +
    /// }
        7549  +
    ///
        7550  +
    /// let config = RestJsonConfig::builder().build();
        7551  +
    /// let svc = ::tower::util::service_fn(handler);
        7552  +
    /// let app = RestJson::builder(config)
        7553  +
    ///     .malformed_content_type_without_body_empty_input_service(svc)
        7554  +
    ///     /* Set other handlers */
        7555  +
    ///     .build()
        7556  +
    ///     .unwrap();
        7557  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7558  +
    /// ```
        7559  +
    ///
        7560  +
                    pub fn malformed_content_type_without_body_empty_input_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        7561  +
                    where
        7562  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput, ServiceExtractors>,
        7563  +
        7564  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7565  +
                            RestJson<L>,
        7566  +
                            crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
        7567  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput, S>
        7568  +
                        >,
        7569  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7570  +
                            RestJson<L>,
        7571  +
                            crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
        7572  +
                            ModelPl::Output
        7573  +
                        >,
        7574  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7575  +
                            RestJson<L>,
        7576  +
                            crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
        7577  +
                            <
        7578  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7579  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7580  +
                                    RestJson<L>,
        7581  +
                                    crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
        7582  +
                                    ModelPl::Output
        7583  +
                                >
        7584  +
                            >::Output
        7585  +
                        >,
        7586  +
        7587  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7588  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7589  +
        7590  +
                    {
        7591  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7592  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7593  +
        let svc = crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput::from_service(
        7594  +
            service,
        7595  +
        );
        7596  +
        let svc = self.model_plugin.apply(svc);
        7597  +
        let svc =
        7598  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7599  +
                .apply(svc);
        7600  +
        let svc = self.http_plugin.apply(svc);
        7601  +
        self.malformed_content_type_without_body_empty_input_custom(svc)
        7602  +
    }
        7603  +
        7604  +
    /// Sets the [`MalformedContentTypeWithoutBodyEmptyInput`](crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput) to a custom [`Service`](tower::Service).
        7605  +
    /// not constrained by the Smithy contract.
        7606  +
    fn malformed_content_type_without_body_empty_input_custom<S>(mut self, svc: S) -> Self
        7607  +
    where
        7608  +
        S: ::tower::Service<
        7609  +
                ::http::Request<Body>,
        7610  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        7611  +
                Error = ::std::convert::Infallible,
        7612  +
            > + Clone
        7613  +
            + Send
        7614  +
            + 'static,
        7615  +
        S::Future: Send + 'static,
        7616  +
    {
        7617  +
        self.malformed_content_type_without_body_empty_input =
        7618  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        7619  +
        self
        7620  +
    }
        7621  +
        7622  +
    /// Sets the [`MalformedContentTypeWithPayload`](crate::operation_shape::MalformedContentTypeWithPayload) operation.
        7623  +
    ///
        7624  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7625  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7626  +
    ///
        7627  +
    /// # Example
        7628  +
    ///
        7629  +
    /// ```no_run
        7630  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7631  +
    ///
        7632  +
    /// use rest_json_http0x::{input, output, error};
        7633  +
    ///
        7634  +
    /// async fn handler(input: input::MalformedContentTypeWithPayloadInput) -> output::MalformedContentTypeWithPayloadOutput {
        7635  +
    ///     todo!()
        7636  +
    /// }
        7637  +
    ///
        7638  +
    /// let config = RestJsonConfig::builder().build();
        7639  +
    /// let app = RestJson::builder(config)
        7640  +
    ///     .malformed_content_type_with_payload(handler)
        7641  +
    ///     /* Set other handlers */
        7642  +
    ///     .build()
        7643  +
    ///     .unwrap();
        7644  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7645  +
    /// ```
        7646  +
    ///
        7647  +
                    pub fn malformed_content_type_with_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        7648  +
                    where
        7649  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedContentTypeWithPayload, HandlerExtractors>,
        7650  +
        7651  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7652  +
                            RestJson<L>,
        7653  +
                            crate::operation_shape::MalformedContentTypeWithPayload,
        7654  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedContentTypeWithPayload, HandlerType>
        7655  +
                        >,
        7656  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7657  +
                            RestJson<L>,
        7658  +
                            crate::operation_shape::MalformedContentTypeWithPayload,
        7659  +
                            ModelPl::Output
        7660  +
                        >,
        7661  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7662  +
                            RestJson<L>,
        7663  +
                            crate::operation_shape::MalformedContentTypeWithPayload,
        7664  +
                            <
        7665  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7666  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7667  +
                                    RestJson<L>,
        7668  +
                                    crate::operation_shape::MalformedContentTypeWithPayload,
        7669  +
                                    ModelPl::Output
        7670  +
                                >
        7671  +
                            >::Output
        7672  +
                        >,
        7673  +
        7674  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7675  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7676  +
        7677  +
                    {
        7678  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7679  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7680  +
        let svc = crate::operation_shape::MalformedContentTypeWithPayload::from_handler(handler);
        7681  +
        let svc = self.model_plugin.apply(svc);
        7682  +
        let svc =
        7683  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7684  +
                .apply(svc);
        7685  +
        let svc = self.http_plugin.apply(svc);
        7686  +
        self.malformed_content_type_with_payload_custom(svc)
        7687  +
    }
        7688  +
        7689  +
    /// Sets the [`MalformedContentTypeWithPayload`](crate::operation_shape::MalformedContentTypeWithPayload) operation.
        7690  +
    ///
        7691  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7692  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7693  +
    ///
        7694  +
    /// # Example
        7695  +
    ///
        7696  +
    /// ```no_run
        7697  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7698  +
    ///
        7699  +
    /// use rest_json_http0x::{input, output, error};
        7700  +
    ///
        7701  +
    /// async fn handler(input: input::MalformedContentTypeWithPayloadInput) -> Result<output::MalformedContentTypeWithPayloadOutput, std::convert::Infallible> {
        7702  +
    ///     todo!()
        7703  +
    /// }
        7704  +
    ///
        7705  +
    /// let config = RestJsonConfig::builder().build();
        7706  +
    /// let svc = ::tower::util::service_fn(handler);
        7707  +
    /// let app = RestJson::builder(config)
        7708  +
    ///     .malformed_content_type_with_payload_service(svc)
        7709  +
    ///     /* Set other handlers */
        7710  +
    ///     .build()
        7711  +
    ///     .unwrap();
        7712  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7713  +
    /// ```
        7714  +
    ///
        7715  +
                    pub fn malformed_content_type_with_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        7716  +
                    where
        7717  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedContentTypeWithPayload, ServiceExtractors>,
        7718  +
        7719  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7720  +
                            RestJson<L>,
        7721  +
                            crate::operation_shape::MalformedContentTypeWithPayload,
        7722  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedContentTypeWithPayload, S>
        7723  +
                        >,
        7724  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7725  +
                            RestJson<L>,
        7726  +
                            crate::operation_shape::MalformedContentTypeWithPayload,
        7727  +
                            ModelPl::Output
        7728  +
                        >,
        7729  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7730  +
                            RestJson<L>,
        7731  +
                            crate::operation_shape::MalformedContentTypeWithPayload,
        7732  +
                            <
        7733  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7734  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7735  +
                                    RestJson<L>,
        7736  +
                                    crate::operation_shape::MalformedContentTypeWithPayload,
        7737  +
                                    ModelPl::Output
        7738  +
                                >
        7739  +
                            >::Output
        7740  +
                        >,
        7741  +
        7742  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7743  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7744  +
        7745  +
                    {
        7746  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7747  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7748  +
        let svc = crate::operation_shape::MalformedContentTypeWithPayload::from_service(service);
        7749  +
        let svc = self.model_plugin.apply(svc);
        7750  +
        let svc =
        7751  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7752  +
                .apply(svc);
        7753  +
        let svc = self.http_plugin.apply(svc);
        7754  +
        self.malformed_content_type_with_payload_custom(svc)
        7755  +
    }
        7756  +
        7757  +
    /// Sets the [`MalformedContentTypeWithPayload`](crate::operation_shape::MalformedContentTypeWithPayload) to a custom [`Service`](tower::Service).
        7758  +
    /// not constrained by the Smithy contract.
        7759  +
    fn malformed_content_type_with_payload_custom<S>(mut self, svc: S) -> Self
        7760  +
    where
        7761  +
        S: ::tower::Service<
        7762  +
                ::http::Request<Body>,
        7763  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        7764  +
                Error = ::std::convert::Infallible,
        7765  +
            > + Clone
        7766  +
            + Send
        7767  +
            + 'static,
        7768  +
        S::Future: Send + 'static,
        7769  +
    {
        7770  +
        self.malformed_content_type_with_payload =
        7771  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        7772  +
        self
        7773  +
    }
        7774  +
        7775  +
    /// Sets the [`MalformedDouble`](crate::operation_shape::MalformedDouble) operation.
        7776  +
    ///
        7777  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7778  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7779  +
    ///
        7780  +
    /// # Example
        7781  +
    ///
        7782  +
    /// ```no_run
        7783  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7784  +
    ///
        7785  +
    /// use rest_json_http0x::{input, output, error};
        7786  +
    ///
        7787  +
    /// async fn handler(input: input::MalformedDoubleInput) -> Result<output::MalformedDoubleOutput, error::MalformedDoubleError> {
        7788  +
    ///     todo!()
        7789  +
    /// }
        7790  +
    ///
        7791  +
    /// let config = RestJsonConfig::builder().build();
        7792  +
    /// let app = RestJson::builder(config)
        7793  +
    ///     .malformed_double(handler)
        7794  +
    ///     /* Set other handlers */
        7795  +
    ///     .build()
        7796  +
    ///     .unwrap();
        7797  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7798  +
    /// ```
        7799  +
    ///
        7800  +
                    pub fn malformed_double<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        7801  +
                    where
        7802  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedDouble, HandlerExtractors>,
        7803  +
        7804  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7805  +
                            RestJson<L>,
        7806  +
                            crate::operation_shape::MalformedDouble,
        7807  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedDouble, HandlerType>
        7808  +
                        >,
        7809  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7810  +
                            RestJson<L>,
        7811  +
                            crate::operation_shape::MalformedDouble,
        7812  +
                            ModelPl::Output
        7813  +
                        >,
        7814  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7815  +
                            RestJson<L>,
        7816  +
                            crate::operation_shape::MalformedDouble,
        7817  +
                            <
        7818  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7819  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7820  +
                                    RestJson<L>,
        7821  +
                                    crate::operation_shape::MalformedDouble,
        7822  +
                                    ModelPl::Output
        7823  +
                                >
        7824  +
                            >::Output
        7825  +
                        >,
        7826  +
        7827  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7828  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7829  +
        7830  +
                    {
        7831  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7832  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7833  +
        let svc = crate::operation_shape::MalformedDouble::from_handler(handler);
        7834  +
        let svc = self.model_plugin.apply(svc);
        7835  +
        let svc =
        7836  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7837  +
                .apply(svc);
        7838  +
        let svc = self.http_plugin.apply(svc);
        7839  +
        self.malformed_double_custom(svc)
        7840  +
    }
        7841  +
        7842  +
    /// Sets the [`MalformedDouble`](crate::operation_shape::MalformedDouble) operation.
        7843  +
    ///
        7844  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7845  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7846  +
    ///
        7847  +
    /// # Example
        7848  +
    ///
        7849  +
    /// ```no_run
        7850  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7851  +
    ///
        7852  +
    /// use rest_json_http0x::{input, output, error};
        7853  +
    ///
        7854  +
    /// async fn handler(input: input::MalformedDoubleInput) -> Result<output::MalformedDoubleOutput, error::MalformedDoubleError> {
        7855  +
    ///     todo!()
        7856  +
    /// }
        7857  +
    ///
        7858  +
    /// let config = RestJsonConfig::builder().build();
        7859  +
    /// let svc = ::tower::util::service_fn(handler);
        7860  +
    /// let app = RestJson::builder(config)
        7861  +
    ///     .malformed_double_service(svc)
        7862  +
    ///     /* Set other handlers */
        7863  +
    ///     .build()
        7864  +
    ///     .unwrap();
        7865  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7866  +
    /// ```
        7867  +
    ///
        7868  +
                    pub fn malformed_double_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        7869  +
                    where
        7870  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedDouble, ServiceExtractors>,
        7871  +
        7872  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7873  +
                            RestJson<L>,
        7874  +
                            crate::operation_shape::MalformedDouble,
        7875  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedDouble, S>
        7876  +
                        >,
        7877  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7878  +
                            RestJson<L>,
        7879  +
                            crate::operation_shape::MalformedDouble,
        7880  +
                            ModelPl::Output
        7881  +
                        >,
        7882  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7883  +
                            RestJson<L>,
        7884  +
                            crate::operation_shape::MalformedDouble,
        7885  +
                            <
        7886  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7887  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7888  +
                                    RestJson<L>,
        7889  +
                                    crate::operation_shape::MalformedDouble,
        7890  +
                                    ModelPl::Output
        7891  +
                                >
        7892  +
                            >::Output
        7893  +
                        >,
        7894  +
        7895  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7896  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7897  +
        7898  +
                    {
        7899  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7900  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7901  +
        let svc = crate::operation_shape::MalformedDouble::from_service(service);
        7902  +
        let svc = self.model_plugin.apply(svc);
        7903  +
        let svc =
        7904  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7905  +
                .apply(svc);
        7906  +
        let svc = self.http_plugin.apply(svc);
        7907  +
        self.malformed_double_custom(svc)
        7908  +
    }
        7909  +
        7910  +
    /// Sets the [`MalformedDouble`](crate::operation_shape::MalformedDouble) to a custom [`Service`](tower::Service).
        7911  +
    /// not constrained by the Smithy contract.
        7912  +
    fn malformed_double_custom<S>(mut self, svc: S) -> Self
        7913  +
    where
        7914  +
        S: ::tower::Service<
        7915  +
                ::http::Request<Body>,
        7916  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        7917  +
                Error = ::std::convert::Infallible,
        7918  +
            > + Clone
        7919  +
            + Send
        7920  +
            + 'static,
        7921  +
        S::Future: Send + 'static,
        7922  +
    {
        7923  +
        self.malformed_double = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        7924  +
        self
        7925  +
    }
        7926  +
        7927  +
    /// Sets the [`MalformedFloat`](crate::operation_shape::MalformedFloat) operation.
        7928  +
    ///
        7929  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7930  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7931  +
    ///
        7932  +
    /// # Example
        7933  +
    ///
        7934  +
    /// ```no_run
        7935  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        7936  +
    ///
        7937  +
    /// use rest_json_http0x::{input, output, error};
        7938  +
    ///
        7939  +
    /// async fn handler(input: input::MalformedFloatInput) -> Result<output::MalformedFloatOutput, error::MalformedFloatError> {
        7940  +
    ///     todo!()
        7941  +
    /// }
        7942  +
    ///
        7943  +
    /// let config = RestJsonConfig::builder().build();
        7944  +
    /// let app = RestJson::builder(config)
        7945  +
    ///     .malformed_float(handler)
        7946  +
    ///     /* Set other handlers */
        7947  +
    ///     .build()
        7948  +
    ///     .unwrap();
        7949  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        7950  +
    /// ```
        7951  +
    ///
        7952  +
                    pub fn malformed_float<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        7953  +
                    where
        7954  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedFloat, HandlerExtractors>,
        7955  +
        7956  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7957  +
                            RestJson<L>,
        7958  +
                            crate::operation_shape::MalformedFloat,
        7959  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedFloat, HandlerType>
        7960  +
                        >,
        7961  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7962  +
                            RestJson<L>,
        7963  +
                            crate::operation_shape::MalformedFloat,
        7964  +
                            ModelPl::Output
        7965  +
                        >,
        7966  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        7967  +
                            RestJson<L>,
        7968  +
                            crate::operation_shape::MalformedFloat,
        7969  +
                            <
        7970  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        7971  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        7972  +
                                    RestJson<L>,
        7973  +
                                    crate::operation_shape::MalformedFloat,
        7974  +
                                    ModelPl::Output
        7975  +
                                >
        7976  +
                            >::Output
        7977  +
                        >,
        7978  +
        7979  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        7980  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        7981  +
        7982  +
                    {
        7983  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        7984  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        7985  +
        let svc = crate::operation_shape::MalformedFloat::from_handler(handler);
        7986  +
        let svc = self.model_plugin.apply(svc);
        7987  +
        let svc =
        7988  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        7989  +
                .apply(svc);
        7990  +
        let svc = self.http_plugin.apply(svc);
        7991  +
        self.malformed_float_custom(svc)
        7992  +
    }
        7993  +
        7994  +
    /// Sets the [`MalformedFloat`](crate::operation_shape::MalformedFloat) operation.
        7995  +
    ///
        7996  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        7997  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        7998  +
    ///
        7999  +
    /// # Example
        8000  +
    ///
        8001  +
    /// ```no_run
        8002  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8003  +
    ///
        8004  +
    /// use rest_json_http0x::{input, output, error};
        8005  +
    ///
        8006  +
    /// async fn handler(input: input::MalformedFloatInput) -> Result<output::MalformedFloatOutput, error::MalformedFloatError> {
        8007  +
    ///     todo!()
        8008  +
    /// }
        8009  +
    ///
        8010  +
    /// let config = RestJsonConfig::builder().build();
        8011  +
    /// let svc = ::tower::util::service_fn(handler);
        8012  +
    /// let app = RestJson::builder(config)
        8013  +
    ///     .malformed_float_service(svc)
        8014  +
    ///     /* Set other handlers */
        8015  +
    ///     .build()
        8016  +
    ///     .unwrap();
        8017  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8018  +
    /// ```
        8019  +
    ///
        8020  +
                    pub fn malformed_float_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        8021  +
                    where
        8022  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedFloat, ServiceExtractors>,
        8023  +
        8024  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8025  +
                            RestJson<L>,
        8026  +
                            crate::operation_shape::MalformedFloat,
        8027  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedFloat, S>
        8028  +
                        >,
        8029  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8030  +
                            RestJson<L>,
        8031  +
                            crate::operation_shape::MalformedFloat,
        8032  +
                            ModelPl::Output
        8033  +
                        >,
        8034  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8035  +
                            RestJson<L>,
        8036  +
                            crate::operation_shape::MalformedFloat,
        8037  +
                            <
        8038  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8039  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8040  +
                                    RestJson<L>,
        8041  +
                                    crate::operation_shape::MalformedFloat,
        8042  +
                                    ModelPl::Output
        8043  +
                                >
        8044  +
                            >::Output
        8045  +
                        >,
        8046  +
        8047  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8048  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8049  +
        8050  +
                    {
        8051  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8052  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8053  +
        let svc = crate::operation_shape::MalformedFloat::from_service(service);
        8054  +
        let svc = self.model_plugin.apply(svc);
        8055  +
        let svc =
        8056  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8057  +
                .apply(svc);
        8058  +
        let svc = self.http_plugin.apply(svc);
        8059  +
        self.malformed_float_custom(svc)
        8060  +
    }
        8061  +
        8062  +
    /// Sets the [`MalformedFloat`](crate::operation_shape::MalformedFloat) to a custom [`Service`](tower::Service).
        8063  +
    /// not constrained by the Smithy contract.
        8064  +
    fn malformed_float_custom<S>(mut self, svc: S) -> Self
        8065  +
    where
        8066  +
        S: ::tower::Service<
        8067  +
                ::http::Request<Body>,
        8068  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        8069  +
                Error = ::std::convert::Infallible,
        8070  +
            > + Clone
        8071  +
            + Send
        8072  +
            + 'static,
        8073  +
        S::Future: Send + 'static,
        8074  +
    {
        8075  +
        self.malformed_float = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        8076  +
        self
        8077  +
    }
        8078  +
        8079  +
    /// Sets the [`MalformedInteger`](crate::operation_shape::MalformedInteger) operation.
        8080  +
    ///
        8081  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8082  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8083  +
    ///
        8084  +
    /// # Example
        8085  +
    ///
        8086  +
    /// ```no_run
        8087  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8088  +
    ///
        8089  +
    /// use rest_json_http0x::{input, output, error};
        8090  +
    ///
        8091  +
    /// async fn handler(input: input::MalformedIntegerInput) -> Result<output::MalformedIntegerOutput, error::MalformedIntegerError> {
        8092  +
    ///     todo!()
        8093  +
    /// }
        8094  +
    ///
        8095  +
    /// let config = RestJsonConfig::builder().build();
        8096  +
    /// let app = RestJson::builder(config)
        8097  +
    ///     .malformed_integer(handler)
        8098  +
    ///     /* Set other handlers */
        8099  +
    ///     .build()
        8100  +
    ///     .unwrap();
        8101  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8102  +
    /// ```
        8103  +
    ///
        8104  +
                    pub fn malformed_integer<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        8105  +
                    where
        8106  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedInteger, HandlerExtractors>,
        8107  +
        8108  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8109  +
                            RestJson<L>,
        8110  +
                            crate::operation_shape::MalformedInteger,
        8111  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedInteger, HandlerType>
        8112  +
                        >,
        8113  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8114  +
                            RestJson<L>,
        8115  +
                            crate::operation_shape::MalformedInteger,
        8116  +
                            ModelPl::Output
        8117  +
                        >,
        8118  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8119  +
                            RestJson<L>,
        8120  +
                            crate::operation_shape::MalformedInteger,
        8121  +
                            <
        8122  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8123  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8124  +
                                    RestJson<L>,
        8125  +
                                    crate::operation_shape::MalformedInteger,
        8126  +
                                    ModelPl::Output
        8127  +
                                >
        8128  +
                            >::Output
        8129  +
                        >,
        8130  +
        8131  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8132  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8133  +
        8134  +
                    {
        8135  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8136  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8137  +
        let svc = crate::operation_shape::MalformedInteger::from_handler(handler);
        8138  +
        let svc = self.model_plugin.apply(svc);
        8139  +
        let svc =
        8140  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8141  +
                .apply(svc);
        8142  +
        let svc = self.http_plugin.apply(svc);
        8143  +
        self.malformed_integer_custom(svc)
        8144  +
    }
        8145  +
        8146  +
    /// Sets the [`MalformedInteger`](crate::operation_shape::MalformedInteger) operation.
        8147  +
    ///
        8148  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8149  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8150  +
    ///
        8151  +
    /// # Example
        8152  +
    ///
        8153  +
    /// ```no_run
        8154  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8155  +
    ///
        8156  +
    /// use rest_json_http0x::{input, output, error};
        8157  +
    ///
        8158  +
    /// async fn handler(input: input::MalformedIntegerInput) -> Result<output::MalformedIntegerOutput, error::MalformedIntegerError> {
        8159  +
    ///     todo!()
        8160  +
    /// }
        8161  +
    ///
        8162  +
    /// let config = RestJsonConfig::builder().build();
        8163  +
    /// let svc = ::tower::util::service_fn(handler);
        8164  +
    /// let app = RestJson::builder(config)
        8165  +
    ///     .malformed_integer_service(svc)
        8166  +
    ///     /* Set other handlers */
        8167  +
    ///     .build()
        8168  +
    ///     .unwrap();
        8169  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8170  +
    /// ```
        8171  +
    ///
        8172  +
                    pub fn malformed_integer_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        8173  +
                    where
        8174  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedInteger, ServiceExtractors>,
        8175  +
        8176  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8177  +
                            RestJson<L>,
        8178  +
                            crate::operation_shape::MalformedInteger,
        8179  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedInteger, S>
        8180  +
                        >,
        8181  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8182  +
                            RestJson<L>,
        8183  +
                            crate::operation_shape::MalformedInteger,
        8184  +
                            ModelPl::Output
        8185  +
                        >,
        8186  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8187  +
                            RestJson<L>,
        8188  +
                            crate::operation_shape::MalformedInteger,
        8189  +
                            <
        8190  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8191  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8192  +
                                    RestJson<L>,
        8193  +
                                    crate::operation_shape::MalformedInteger,
        8194  +
                                    ModelPl::Output
        8195  +
                                >
        8196  +
                            >::Output
        8197  +
                        >,
        8198  +
        8199  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8200  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8201  +
        8202  +
                    {
        8203  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8204  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8205  +
        let svc = crate::operation_shape::MalformedInteger::from_service(service);
        8206  +
        let svc = self.model_plugin.apply(svc);
        8207  +
        let svc =
        8208  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8209  +
                .apply(svc);
        8210  +
        let svc = self.http_plugin.apply(svc);
        8211  +
        self.malformed_integer_custom(svc)
        8212  +
    }
        8213  +
        8214  +
    /// Sets the [`MalformedInteger`](crate::operation_shape::MalformedInteger) to a custom [`Service`](tower::Service).
        8215  +
    /// not constrained by the Smithy contract.
        8216  +
    fn malformed_integer_custom<S>(mut self, svc: S) -> Self
        8217  +
    where
        8218  +
        S: ::tower::Service<
        8219  +
                ::http::Request<Body>,
        8220  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        8221  +
                Error = ::std::convert::Infallible,
        8222  +
            > + Clone
        8223  +
            + Send
        8224  +
            + 'static,
        8225  +
        S::Future: Send + 'static,
        8226  +
    {
        8227  +
        self.malformed_integer = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        8228  +
        self
        8229  +
    }
        8230  +
        8231  +
    /// Sets the [`MalformedList`](crate::operation_shape::MalformedList) operation.
        8232  +
    ///
        8233  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8234  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8235  +
    ///
        8236  +
    /// # Example
        8237  +
    ///
        8238  +
    /// ```no_run
        8239  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8240  +
    ///
        8241  +
    /// use rest_json_http0x::{input, output, error};
        8242  +
    ///
        8243  +
    /// async fn handler(input: input::MalformedListInput) -> output::MalformedListOutput {
        8244  +
    ///     todo!()
        8245  +
    /// }
        8246  +
    ///
        8247  +
    /// let config = RestJsonConfig::builder().build();
        8248  +
    /// let app = RestJson::builder(config)
        8249  +
    ///     .malformed_list(handler)
        8250  +
    ///     /* Set other handlers */
        8251  +
    ///     .build()
        8252  +
    ///     .unwrap();
        8253  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8254  +
    /// ```
        8255  +
    ///
        8256  +
                    pub fn malformed_list<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        8257  +
                    where
        8258  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedList, HandlerExtractors>,
        8259  +
        8260  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8261  +
                            RestJson<L>,
        8262  +
                            crate::operation_shape::MalformedList,
        8263  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedList, HandlerType>
        8264  +
                        >,
        8265  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8266  +
                            RestJson<L>,
        8267  +
                            crate::operation_shape::MalformedList,
        8268  +
                            ModelPl::Output
        8269  +
                        >,
        8270  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8271  +
                            RestJson<L>,
        8272  +
                            crate::operation_shape::MalformedList,
        8273  +
                            <
        8274  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8275  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8276  +
                                    RestJson<L>,
        8277  +
                                    crate::operation_shape::MalformedList,
        8278  +
                                    ModelPl::Output
        8279  +
                                >
        8280  +
                            >::Output
        8281  +
                        >,
        8282  +
        8283  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8284  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8285  +
        8286  +
                    {
        8287  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8288  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8289  +
        let svc = crate::operation_shape::MalformedList::from_handler(handler);
        8290  +
        let svc = self.model_plugin.apply(svc);
        8291  +
        let svc =
        8292  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8293  +
                .apply(svc);
        8294  +
        let svc = self.http_plugin.apply(svc);
        8295  +
        self.malformed_list_custom(svc)
        8296  +
    }
        8297  +
        8298  +
    /// Sets the [`MalformedList`](crate::operation_shape::MalformedList) operation.
        8299  +
    ///
        8300  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8301  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8302  +
    ///
        8303  +
    /// # Example
        8304  +
    ///
        8305  +
    /// ```no_run
        8306  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8307  +
    ///
        8308  +
    /// use rest_json_http0x::{input, output, error};
        8309  +
    ///
        8310  +
    /// async fn handler(input: input::MalformedListInput) -> Result<output::MalformedListOutput, std::convert::Infallible> {
        8311  +
    ///     todo!()
        8312  +
    /// }
        8313  +
    ///
        8314  +
    /// let config = RestJsonConfig::builder().build();
        8315  +
    /// let svc = ::tower::util::service_fn(handler);
        8316  +
    /// let app = RestJson::builder(config)
        8317  +
    ///     .malformed_list_service(svc)
        8318  +
    ///     /* Set other handlers */
        8319  +
    ///     .build()
        8320  +
    ///     .unwrap();
        8321  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8322  +
    /// ```
        8323  +
    ///
        8324  +
                    pub fn malformed_list_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        8325  +
                    where
        8326  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedList, ServiceExtractors>,
        8327  +
        8328  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8329  +
                            RestJson<L>,
        8330  +
                            crate::operation_shape::MalformedList,
        8331  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedList, S>
        8332  +
                        >,
        8333  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8334  +
                            RestJson<L>,
        8335  +
                            crate::operation_shape::MalformedList,
        8336  +
                            ModelPl::Output
        8337  +
                        >,
        8338  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8339  +
                            RestJson<L>,
        8340  +
                            crate::operation_shape::MalformedList,
        8341  +
                            <
        8342  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8343  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8344  +
                                    RestJson<L>,
        8345  +
                                    crate::operation_shape::MalformedList,
        8346  +
                                    ModelPl::Output
        8347  +
                                >
        8348  +
                            >::Output
        8349  +
                        >,
        8350  +
        8351  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8352  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8353  +
        8354  +
                    {
        8355  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8356  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8357  +
        let svc = crate::operation_shape::MalformedList::from_service(service);
        8358  +
        let svc = self.model_plugin.apply(svc);
        8359  +
        let svc =
        8360  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8361  +
                .apply(svc);
        8362  +
        let svc = self.http_plugin.apply(svc);
        8363  +
        self.malformed_list_custom(svc)
        8364  +
    }
        8365  +
        8366  +
    /// Sets the [`MalformedList`](crate::operation_shape::MalformedList) to a custom [`Service`](tower::Service).
        8367  +
    /// not constrained by the Smithy contract.
        8368  +
    fn malformed_list_custom<S>(mut self, svc: S) -> Self
        8369  +
    where
        8370  +
        S: ::tower::Service<
        8371  +
                ::http::Request<Body>,
        8372  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        8373  +
                Error = ::std::convert::Infallible,
        8374  +
            > + Clone
        8375  +
            + Send
        8376  +
            + 'static,
        8377  +
        S::Future: Send + 'static,
        8378  +
    {
        8379  +
        self.malformed_list = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        8380  +
        self
        8381  +
    }
        8382  +
        8383  +
    /// Sets the [`MalformedLong`](crate::operation_shape::MalformedLong) operation.
        8384  +
    ///
        8385  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8386  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8387  +
    ///
        8388  +
    /// # Example
        8389  +
    ///
        8390  +
    /// ```no_run
        8391  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8392  +
    ///
        8393  +
    /// use rest_json_http0x::{input, output, error};
        8394  +
    ///
        8395  +
    /// async fn handler(input: input::MalformedLongInput) -> Result<output::MalformedLongOutput, error::MalformedLongError> {
        8396  +
    ///     todo!()
        8397  +
    /// }
        8398  +
    ///
        8399  +
    /// let config = RestJsonConfig::builder().build();
        8400  +
    /// let app = RestJson::builder(config)
        8401  +
    ///     .malformed_long(handler)
        8402  +
    ///     /* Set other handlers */
        8403  +
    ///     .build()
        8404  +
    ///     .unwrap();
        8405  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8406  +
    /// ```
        8407  +
    ///
        8408  +
                    pub fn malformed_long<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        8409  +
                    where
        8410  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedLong, HandlerExtractors>,
        8411  +
        8412  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8413  +
                            RestJson<L>,
        8414  +
                            crate::operation_shape::MalformedLong,
        8415  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedLong, HandlerType>
        8416  +
                        >,
        8417  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8418  +
                            RestJson<L>,
        8419  +
                            crate::operation_shape::MalformedLong,
        8420  +
                            ModelPl::Output
        8421  +
                        >,
        8422  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8423  +
                            RestJson<L>,
        8424  +
                            crate::operation_shape::MalformedLong,
        8425  +
                            <
        8426  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8427  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8428  +
                                    RestJson<L>,
        8429  +
                                    crate::operation_shape::MalformedLong,
        8430  +
                                    ModelPl::Output
        8431  +
                                >
        8432  +
                            >::Output
        8433  +
                        >,
        8434  +
        8435  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8436  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8437  +
        8438  +
                    {
        8439  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8440  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8441  +
        let svc = crate::operation_shape::MalformedLong::from_handler(handler);
        8442  +
        let svc = self.model_plugin.apply(svc);
        8443  +
        let svc =
        8444  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8445  +
                .apply(svc);
        8446  +
        let svc = self.http_plugin.apply(svc);
        8447  +
        self.malformed_long_custom(svc)
        8448  +
    }
        8449  +
        8450  +
    /// Sets the [`MalformedLong`](crate::operation_shape::MalformedLong) operation.
        8451  +
    ///
        8452  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8453  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8454  +
    ///
        8455  +
    /// # Example
        8456  +
    ///
        8457  +
    /// ```no_run
        8458  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8459  +
    ///
        8460  +
    /// use rest_json_http0x::{input, output, error};
        8461  +
    ///
        8462  +
    /// async fn handler(input: input::MalformedLongInput) -> Result<output::MalformedLongOutput, error::MalformedLongError> {
        8463  +
    ///     todo!()
        8464  +
    /// }
        8465  +
    ///
        8466  +
    /// let config = RestJsonConfig::builder().build();
        8467  +
    /// let svc = ::tower::util::service_fn(handler);
        8468  +
    /// let app = RestJson::builder(config)
        8469  +
    ///     .malformed_long_service(svc)
        8470  +
    ///     /* Set other handlers */
        8471  +
    ///     .build()
        8472  +
    ///     .unwrap();
        8473  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8474  +
    /// ```
        8475  +
    ///
        8476  +
                    pub fn malformed_long_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        8477  +
                    where
        8478  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedLong, ServiceExtractors>,
        8479  +
        8480  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8481  +
                            RestJson<L>,
        8482  +
                            crate::operation_shape::MalformedLong,
        8483  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedLong, S>
        8484  +
                        >,
        8485  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8486  +
                            RestJson<L>,
        8487  +
                            crate::operation_shape::MalformedLong,
        8488  +
                            ModelPl::Output
        8489  +
                        >,
        8490  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8491  +
                            RestJson<L>,
        8492  +
                            crate::operation_shape::MalformedLong,
        8493  +
                            <
        8494  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8495  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8496  +
                                    RestJson<L>,
        8497  +
                                    crate::operation_shape::MalformedLong,
        8498  +
                                    ModelPl::Output
        8499  +
                                >
        8500  +
                            >::Output
        8501  +
                        >,
        8502  +
        8503  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8504  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8505  +
        8506  +
                    {
        8507  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8508  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8509  +
        let svc = crate::operation_shape::MalformedLong::from_service(service);
        8510  +
        let svc = self.model_plugin.apply(svc);
        8511  +
        let svc =
        8512  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8513  +
                .apply(svc);
        8514  +
        let svc = self.http_plugin.apply(svc);
        8515  +
        self.malformed_long_custom(svc)
        8516  +
    }
        8517  +
        8518  +
    /// Sets the [`MalformedLong`](crate::operation_shape::MalformedLong) to a custom [`Service`](tower::Service).
        8519  +
    /// not constrained by the Smithy contract.
        8520  +
    fn malformed_long_custom<S>(mut self, svc: S) -> Self
        8521  +
    where
        8522  +
        S: ::tower::Service<
        8523  +
                ::http::Request<Body>,
        8524  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        8525  +
                Error = ::std::convert::Infallible,
        8526  +
            > + Clone
        8527  +
            + Send
        8528  +
            + 'static,
        8529  +
        S::Future: Send + 'static,
        8530  +
    {
        8531  +
        self.malformed_long = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        8532  +
        self
        8533  +
    }
        8534  +
        8535  +
    /// Sets the [`MalformedMap`](crate::operation_shape::MalformedMap) operation.
        8536  +
    ///
        8537  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8538  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8539  +
    ///
        8540  +
    /// # Example
        8541  +
    ///
        8542  +
    /// ```no_run
        8543  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8544  +
    ///
        8545  +
    /// use rest_json_http0x::{input, output, error};
        8546  +
    ///
        8547  +
    /// async fn handler(input: input::MalformedMapInput) -> output::MalformedMapOutput {
        8548  +
    ///     todo!()
        8549  +
    /// }
        8550  +
    ///
        8551  +
    /// let config = RestJsonConfig::builder().build();
        8552  +
    /// let app = RestJson::builder(config)
        8553  +
    ///     .malformed_map(handler)
        8554  +
    ///     /* Set other handlers */
        8555  +
    ///     .build()
        8556  +
    ///     .unwrap();
        8557  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8558  +
    /// ```
        8559  +
    ///
        8560  +
                    pub fn malformed_map<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        8561  +
                    where
        8562  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedMap, HandlerExtractors>,
        8563  +
        8564  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8565  +
                            RestJson<L>,
        8566  +
                            crate::operation_shape::MalformedMap,
        8567  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedMap, HandlerType>
        8568  +
                        >,
        8569  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8570  +
                            RestJson<L>,
        8571  +
                            crate::operation_shape::MalformedMap,
        8572  +
                            ModelPl::Output
        8573  +
                        >,
        8574  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8575  +
                            RestJson<L>,
        8576  +
                            crate::operation_shape::MalformedMap,
        8577  +
                            <
        8578  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8579  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8580  +
                                    RestJson<L>,
        8581  +
                                    crate::operation_shape::MalformedMap,
        8582  +
                                    ModelPl::Output
        8583  +
                                >
        8584  +
                            >::Output
        8585  +
                        >,
        8586  +
        8587  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8588  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8589  +
        8590  +
                    {
        8591  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8592  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8593  +
        let svc = crate::operation_shape::MalformedMap::from_handler(handler);
        8594  +
        let svc = self.model_plugin.apply(svc);
        8595  +
        let svc =
        8596  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8597  +
                .apply(svc);
        8598  +
        let svc = self.http_plugin.apply(svc);
        8599  +
        self.malformed_map_custom(svc)
        8600  +
    }
        8601  +
        8602  +
    /// Sets the [`MalformedMap`](crate::operation_shape::MalformedMap) operation.
        8603  +
    ///
        8604  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8605  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8606  +
    ///
        8607  +
    /// # Example
        8608  +
    ///
        8609  +
    /// ```no_run
        8610  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8611  +
    ///
        8612  +
    /// use rest_json_http0x::{input, output, error};
        8613  +
    ///
        8614  +
    /// async fn handler(input: input::MalformedMapInput) -> Result<output::MalformedMapOutput, std::convert::Infallible> {
        8615  +
    ///     todo!()
        8616  +
    /// }
        8617  +
    ///
        8618  +
    /// let config = RestJsonConfig::builder().build();
        8619  +
    /// let svc = ::tower::util::service_fn(handler);
        8620  +
    /// let app = RestJson::builder(config)
        8621  +
    ///     .malformed_map_service(svc)
        8622  +
    ///     /* Set other handlers */
        8623  +
    ///     .build()
        8624  +
    ///     .unwrap();
        8625  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8626  +
    /// ```
        8627  +
    ///
        8628  +
                    pub fn malformed_map_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        8629  +
                    where
        8630  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedMap, ServiceExtractors>,
        8631  +
        8632  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8633  +
                            RestJson<L>,
        8634  +
                            crate::operation_shape::MalformedMap,
        8635  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedMap, S>
        8636  +
                        >,
        8637  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8638  +
                            RestJson<L>,
        8639  +
                            crate::operation_shape::MalformedMap,
        8640  +
                            ModelPl::Output
        8641  +
                        >,
        8642  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8643  +
                            RestJson<L>,
        8644  +
                            crate::operation_shape::MalformedMap,
        8645  +
                            <
        8646  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8647  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8648  +
                                    RestJson<L>,
        8649  +
                                    crate::operation_shape::MalformedMap,
        8650  +
                                    ModelPl::Output
        8651  +
                                >
        8652  +
                            >::Output
        8653  +
                        >,
        8654  +
        8655  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8656  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8657  +
        8658  +
                    {
        8659  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8660  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8661  +
        let svc = crate::operation_shape::MalformedMap::from_service(service);
        8662  +
        let svc = self.model_plugin.apply(svc);
        8663  +
        let svc =
        8664  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8665  +
                .apply(svc);
        8666  +
        let svc = self.http_plugin.apply(svc);
        8667  +
        self.malformed_map_custom(svc)
        8668  +
    }
        8669  +
        8670  +
    /// Sets the [`MalformedMap`](crate::operation_shape::MalformedMap) to a custom [`Service`](tower::Service).
        8671  +
    /// not constrained by the Smithy contract.
        8672  +
    fn malformed_map_custom<S>(mut self, svc: S) -> Self
        8673  +
    where
        8674  +
        S: ::tower::Service<
        8675  +
                ::http::Request<Body>,
        8676  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        8677  +
                Error = ::std::convert::Infallible,
        8678  +
            > + Clone
        8679  +
            + Send
        8680  +
            + 'static,
        8681  +
        S::Future: Send + 'static,
        8682  +
    {
        8683  +
        self.malformed_map = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        8684  +
        self
        8685  +
    }
        8686  +
        8687  +
    /// Sets the [`MalformedRequestBody`](crate::operation_shape::MalformedRequestBody) operation.
        8688  +
    ///
        8689  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8690  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8691  +
    ///
        8692  +
    /// # Example
        8693  +
    ///
        8694  +
    /// ```no_run
        8695  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8696  +
    ///
        8697  +
    /// use rest_json_http0x::{input, output, error};
        8698  +
    ///
        8699  +
    /// async fn handler(input: input::MalformedRequestBodyInput) -> output::MalformedRequestBodyOutput {
        8700  +
    ///     todo!()
        8701  +
    /// }
        8702  +
    ///
        8703  +
    /// let config = RestJsonConfig::builder().build();
        8704  +
    /// let app = RestJson::builder(config)
        8705  +
    ///     .malformed_request_body(handler)
        8706  +
    ///     /* Set other handlers */
        8707  +
    ///     .build()
        8708  +
    ///     .unwrap();
        8709  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8710  +
    /// ```
        8711  +
    ///
        8712  +
                    pub fn malformed_request_body<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        8713  +
                    where
        8714  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedRequestBody, HandlerExtractors>,
        8715  +
        8716  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8717  +
                            RestJson<L>,
        8718  +
                            crate::operation_shape::MalformedRequestBody,
        8719  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedRequestBody, HandlerType>
        8720  +
                        >,
        8721  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8722  +
                            RestJson<L>,
        8723  +
                            crate::operation_shape::MalformedRequestBody,
        8724  +
                            ModelPl::Output
        8725  +
                        >,
        8726  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8727  +
                            RestJson<L>,
        8728  +
                            crate::operation_shape::MalformedRequestBody,
        8729  +
                            <
        8730  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8731  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8732  +
                                    RestJson<L>,
        8733  +
                                    crate::operation_shape::MalformedRequestBody,
        8734  +
                                    ModelPl::Output
        8735  +
                                >
        8736  +
                            >::Output
        8737  +
                        >,
        8738  +
        8739  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8740  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8741  +
        8742  +
                    {
        8743  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8744  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8745  +
        let svc = crate::operation_shape::MalformedRequestBody::from_handler(handler);
        8746  +
        let svc = self.model_plugin.apply(svc);
        8747  +
        let svc =
        8748  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8749  +
                .apply(svc);
        8750  +
        let svc = self.http_plugin.apply(svc);
        8751  +
        self.malformed_request_body_custom(svc)
        8752  +
    }
        8753  +
        8754  +
    /// Sets the [`MalformedRequestBody`](crate::operation_shape::MalformedRequestBody) operation.
        8755  +
    ///
        8756  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8757  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8758  +
    ///
        8759  +
    /// # Example
        8760  +
    ///
        8761  +
    /// ```no_run
        8762  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8763  +
    ///
        8764  +
    /// use rest_json_http0x::{input, output, error};
        8765  +
    ///
        8766  +
    /// async fn handler(input: input::MalformedRequestBodyInput) -> Result<output::MalformedRequestBodyOutput, std::convert::Infallible> {
        8767  +
    ///     todo!()
        8768  +
    /// }
        8769  +
    ///
        8770  +
    /// let config = RestJsonConfig::builder().build();
        8771  +
    /// let svc = ::tower::util::service_fn(handler);
        8772  +
    /// let app = RestJson::builder(config)
        8773  +
    ///     .malformed_request_body_service(svc)
        8774  +
    ///     /* Set other handlers */
        8775  +
    ///     .build()
        8776  +
    ///     .unwrap();
        8777  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8778  +
    /// ```
        8779  +
    ///
        8780  +
                    pub fn malformed_request_body_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        8781  +
                    where
        8782  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedRequestBody, ServiceExtractors>,
        8783  +
        8784  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8785  +
                            RestJson<L>,
        8786  +
                            crate::operation_shape::MalformedRequestBody,
        8787  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedRequestBody, S>
        8788  +
                        >,
        8789  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8790  +
                            RestJson<L>,
        8791  +
                            crate::operation_shape::MalformedRequestBody,
        8792  +
                            ModelPl::Output
        8793  +
                        >,
        8794  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8795  +
                            RestJson<L>,
        8796  +
                            crate::operation_shape::MalformedRequestBody,
        8797  +
                            <
        8798  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8799  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8800  +
                                    RestJson<L>,
        8801  +
                                    crate::operation_shape::MalformedRequestBody,
        8802  +
                                    ModelPl::Output
        8803  +
                                >
        8804  +
                            >::Output
        8805  +
                        >,
        8806  +
        8807  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8808  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8809  +
        8810  +
                    {
        8811  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8812  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8813  +
        let svc = crate::operation_shape::MalformedRequestBody::from_service(service);
        8814  +
        let svc = self.model_plugin.apply(svc);
        8815  +
        let svc =
        8816  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8817  +
                .apply(svc);
        8818  +
        let svc = self.http_plugin.apply(svc);
        8819  +
        self.malformed_request_body_custom(svc)
        8820  +
    }
        8821  +
        8822  +
    /// Sets the [`MalformedRequestBody`](crate::operation_shape::MalformedRequestBody) to a custom [`Service`](tower::Service).
        8823  +
    /// not constrained by the Smithy contract.
        8824  +
    fn malformed_request_body_custom<S>(mut self, svc: S) -> Self
        8825  +
    where
        8826  +
        S: ::tower::Service<
        8827  +
                ::http::Request<Body>,
        8828  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        8829  +
                Error = ::std::convert::Infallible,
        8830  +
            > + Clone
        8831  +
            + Send
        8832  +
            + 'static,
        8833  +
        S::Future: Send + 'static,
        8834  +
    {
        8835  +
        self.malformed_request_body =
        8836  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        8837  +
        self
        8838  +
    }
        8839  +
        8840  +
    /// Sets the [`MalformedShort`](crate::operation_shape::MalformedShort) operation.
        8841  +
    ///
        8842  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8843  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8844  +
    ///
        8845  +
    /// # Example
        8846  +
    ///
        8847  +
    /// ```no_run
        8848  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8849  +
    ///
        8850  +
    /// use rest_json_http0x::{input, output, error};
        8851  +
    ///
        8852  +
    /// async fn handler(input: input::MalformedShortInput) -> Result<output::MalformedShortOutput, error::MalformedShortError> {
        8853  +
    ///     todo!()
        8854  +
    /// }
        8855  +
    ///
        8856  +
    /// let config = RestJsonConfig::builder().build();
        8857  +
    /// let app = RestJson::builder(config)
        8858  +
    ///     .malformed_short(handler)
        8859  +
    ///     /* Set other handlers */
        8860  +
    ///     .build()
        8861  +
    ///     .unwrap();
        8862  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8863  +
    /// ```
        8864  +
    ///
        8865  +
                    pub fn malformed_short<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        8866  +
                    where
        8867  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedShort, HandlerExtractors>,
        8868  +
        8869  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8870  +
                            RestJson<L>,
        8871  +
                            crate::operation_shape::MalformedShort,
        8872  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedShort, HandlerType>
        8873  +
                        >,
        8874  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8875  +
                            RestJson<L>,
        8876  +
                            crate::operation_shape::MalformedShort,
        8877  +
                            ModelPl::Output
        8878  +
                        >,
        8879  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8880  +
                            RestJson<L>,
        8881  +
                            crate::operation_shape::MalformedShort,
        8882  +
                            <
        8883  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8884  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8885  +
                                    RestJson<L>,
        8886  +
                                    crate::operation_shape::MalformedShort,
        8887  +
                                    ModelPl::Output
        8888  +
                                >
        8889  +
                            >::Output
        8890  +
                        >,
        8891  +
        8892  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8893  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8894  +
        8895  +
                    {
        8896  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8897  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8898  +
        let svc = crate::operation_shape::MalformedShort::from_handler(handler);
        8899  +
        let svc = self.model_plugin.apply(svc);
        8900  +
        let svc =
        8901  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8902  +
                .apply(svc);
        8903  +
        let svc = self.http_plugin.apply(svc);
        8904  +
        self.malformed_short_custom(svc)
        8905  +
    }
        8906  +
        8907  +
    /// Sets the [`MalformedShort`](crate::operation_shape::MalformedShort) operation.
        8908  +
    ///
        8909  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8910  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8911  +
    ///
        8912  +
    /// # Example
        8913  +
    ///
        8914  +
    /// ```no_run
        8915  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        8916  +
    ///
        8917  +
    /// use rest_json_http0x::{input, output, error};
        8918  +
    ///
        8919  +
    /// async fn handler(input: input::MalformedShortInput) -> Result<output::MalformedShortOutput, error::MalformedShortError> {
        8920  +
    ///     todo!()
        8921  +
    /// }
        8922  +
    ///
        8923  +
    /// let config = RestJsonConfig::builder().build();
        8924  +
    /// let svc = ::tower::util::service_fn(handler);
        8925  +
    /// let app = RestJson::builder(config)
        8926  +
    ///     .malformed_short_service(svc)
        8927  +
    ///     /* Set other handlers */
        8928  +
    ///     .build()
        8929  +
    ///     .unwrap();
        8930  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        8931  +
    /// ```
        8932  +
    ///
        8933  +
                    pub fn malformed_short_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        8934  +
                    where
        8935  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedShort, ServiceExtractors>,
        8936  +
        8937  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8938  +
                            RestJson<L>,
        8939  +
                            crate::operation_shape::MalformedShort,
        8940  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedShort, S>
        8941  +
                        >,
        8942  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8943  +
                            RestJson<L>,
        8944  +
                            crate::operation_shape::MalformedShort,
        8945  +
                            ModelPl::Output
        8946  +
                        >,
        8947  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        8948  +
                            RestJson<L>,
        8949  +
                            crate::operation_shape::MalformedShort,
        8950  +
                            <
        8951  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        8952  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        8953  +
                                    RestJson<L>,
        8954  +
                                    crate::operation_shape::MalformedShort,
        8955  +
                                    ModelPl::Output
        8956  +
                                >
        8957  +
                            >::Output
        8958  +
                        >,
        8959  +
        8960  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        8961  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        8962  +
        8963  +
                    {
        8964  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        8965  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        8966  +
        let svc = crate::operation_shape::MalformedShort::from_service(service);
        8967  +
        let svc = self.model_plugin.apply(svc);
        8968  +
        let svc =
        8969  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        8970  +
                .apply(svc);
        8971  +
        let svc = self.http_plugin.apply(svc);
        8972  +
        self.malformed_short_custom(svc)
        8973  +
    }
        8974  +
        8975  +
    /// Sets the [`MalformedShort`](crate::operation_shape::MalformedShort) to a custom [`Service`](tower::Service).
        8976  +
    /// not constrained by the Smithy contract.
        8977  +
    fn malformed_short_custom<S>(mut self, svc: S) -> Self
        8978  +
    where
        8979  +
        S: ::tower::Service<
        8980  +
                ::http::Request<Body>,
        8981  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        8982  +
                Error = ::std::convert::Infallible,
        8983  +
            > + Clone
        8984  +
            + Send
        8985  +
            + 'static,
        8986  +
        S::Future: Send + 'static,
        8987  +
    {
        8988  +
        self.malformed_short = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        8989  +
        self
        8990  +
    }
        8991  +
        8992  +
    /// Sets the [`MalformedString`](crate::operation_shape::MalformedString) operation.
        8993  +
    ///
        8994  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        8995  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        8996  +
    ///
        8997  +
    /// # Example
        8998  +
    ///
        8999  +
    /// ```no_run
        9000  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9001  +
    ///
        9002  +
    /// use rest_json_http0x::{input, output, error};
        9003  +
    ///
        9004  +
    /// async fn handler(input: input::MalformedStringInput) -> output::MalformedStringOutput {
        9005  +
    ///     todo!()
        9006  +
    /// }
        9007  +
    ///
        9008  +
    /// let config = RestJsonConfig::builder().build();
        9009  +
    /// let app = RestJson::builder(config)
        9010  +
    ///     .malformed_string(handler)
        9011  +
    ///     /* Set other handlers */
        9012  +
    ///     .build()
        9013  +
    ///     .unwrap();
        9014  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9015  +
    /// ```
        9016  +
    ///
        9017  +
                    pub fn malformed_string<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        9018  +
                    where
        9019  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedString, HandlerExtractors>,
        9020  +
        9021  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9022  +
                            RestJson<L>,
        9023  +
                            crate::operation_shape::MalformedString,
        9024  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedString, HandlerType>
        9025  +
                        >,
        9026  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9027  +
                            RestJson<L>,
        9028  +
                            crate::operation_shape::MalformedString,
        9029  +
                            ModelPl::Output
        9030  +
                        >,
        9031  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9032  +
                            RestJson<L>,
        9033  +
                            crate::operation_shape::MalformedString,
        9034  +
                            <
        9035  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9036  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9037  +
                                    RestJson<L>,
        9038  +
                                    crate::operation_shape::MalformedString,
        9039  +
                                    ModelPl::Output
        9040  +
                                >
        9041  +
                            >::Output
        9042  +
                        >,
        9043  +
        9044  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9045  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9046  +
        9047  +
                    {
        9048  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9049  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9050  +
        let svc = crate::operation_shape::MalformedString::from_handler(handler);
        9051  +
        let svc = self.model_plugin.apply(svc);
        9052  +
        let svc =
        9053  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9054  +
                .apply(svc);
        9055  +
        let svc = self.http_plugin.apply(svc);
        9056  +
        self.malformed_string_custom(svc)
        9057  +
    }
        9058  +
        9059  +
    /// Sets the [`MalformedString`](crate::operation_shape::MalformedString) operation.
        9060  +
    ///
        9061  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9062  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9063  +
    ///
        9064  +
    /// # Example
        9065  +
    ///
        9066  +
    /// ```no_run
        9067  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9068  +
    ///
        9069  +
    /// use rest_json_http0x::{input, output, error};
        9070  +
    ///
        9071  +
    /// async fn handler(input: input::MalformedStringInput) -> Result<output::MalformedStringOutput, std::convert::Infallible> {
        9072  +
    ///     todo!()
        9073  +
    /// }
        9074  +
    ///
        9075  +
    /// let config = RestJsonConfig::builder().build();
        9076  +
    /// let svc = ::tower::util::service_fn(handler);
        9077  +
    /// let app = RestJson::builder(config)
        9078  +
    ///     .malformed_string_service(svc)
        9079  +
    ///     /* Set other handlers */
        9080  +
    ///     .build()
        9081  +
    ///     .unwrap();
        9082  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9083  +
    /// ```
        9084  +
    ///
        9085  +
                    pub fn malformed_string_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        9086  +
                    where
        9087  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedString, ServiceExtractors>,
        9088  +
        9089  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9090  +
                            RestJson<L>,
        9091  +
                            crate::operation_shape::MalformedString,
        9092  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedString, S>
        9093  +
                        >,
        9094  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9095  +
                            RestJson<L>,
        9096  +
                            crate::operation_shape::MalformedString,
        9097  +
                            ModelPl::Output
        9098  +
                        >,
        9099  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9100  +
                            RestJson<L>,
        9101  +
                            crate::operation_shape::MalformedString,
        9102  +
                            <
        9103  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9104  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9105  +
                                    RestJson<L>,
        9106  +
                                    crate::operation_shape::MalformedString,
        9107  +
                                    ModelPl::Output
        9108  +
                                >
        9109  +
                            >::Output
        9110  +
                        >,
        9111  +
        9112  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9113  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9114  +
        9115  +
                    {
        9116  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9117  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9118  +
        let svc = crate::operation_shape::MalformedString::from_service(service);
        9119  +
        let svc = self.model_plugin.apply(svc);
        9120  +
        let svc =
        9121  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9122  +
                .apply(svc);
        9123  +
        let svc = self.http_plugin.apply(svc);
        9124  +
        self.malformed_string_custom(svc)
        9125  +
    }
        9126  +
        9127  +
    /// Sets the [`MalformedString`](crate::operation_shape::MalformedString) to a custom [`Service`](tower::Service).
        9128  +
    /// not constrained by the Smithy contract.
        9129  +
    fn malformed_string_custom<S>(mut self, svc: S) -> Self
        9130  +
    where
        9131  +
        S: ::tower::Service<
        9132  +
                ::http::Request<Body>,
        9133  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        9134  +
                Error = ::std::convert::Infallible,
        9135  +
            > + Clone
        9136  +
            + Send
        9137  +
            + 'static,
        9138  +
        S::Future: Send + 'static,
        9139  +
    {
        9140  +
        self.malformed_string = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        9141  +
        self
        9142  +
    }
        9143  +
        9144  +
    /// Sets the [`MalformedTimestampBodyDateTime`](crate::operation_shape::MalformedTimestampBodyDateTime) operation.
        9145  +
    ///
        9146  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9147  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9148  +
    ///
        9149  +
    /// # Example
        9150  +
    ///
        9151  +
    /// ```no_run
        9152  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9153  +
    ///
        9154  +
    /// use rest_json_http0x::{input, output, error};
        9155  +
    ///
        9156  +
    /// async fn handler(input: input::MalformedTimestampBodyDateTimeInput) -> Result<output::MalformedTimestampBodyDateTimeOutput, error::MalformedTimestampBodyDateTimeError> {
        9157  +
    ///     todo!()
        9158  +
    /// }
        9159  +
    ///
        9160  +
    /// let config = RestJsonConfig::builder().build();
        9161  +
    /// let app = RestJson::builder(config)
        9162  +
    ///     .malformed_timestamp_body_date_time(handler)
        9163  +
    ///     /* Set other handlers */
        9164  +
    ///     .build()
        9165  +
    ///     .unwrap();
        9166  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9167  +
    /// ```
        9168  +
    ///
        9169  +
                    pub fn malformed_timestamp_body_date_time<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        9170  +
                    where
        9171  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampBodyDateTime, HandlerExtractors>,
        9172  +
        9173  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9174  +
                            RestJson<L>,
        9175  +
                            crate::operation_shape::MalformedTimestampBodyDateTime,
        9176  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampBodyDateTime, HandlerType>
        9177  +
                        >,
        9178  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9179  +
                            RestJson<L>,
        9180  +
                            crate::operation_shape::MalformedTimestampBodyDateTime,
        9181  +
                            ModelPl::Output
        9182  +
                        >,
        9183  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9184  +
                            RestJson<L>,
        9185  +
                            crate::operation_shape::MalformedTimestampBodyDateTime,
        9186  +
                            <
        9187  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9188  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9189  +
                                    RestJson<L>,
        9190  +
                                    crate::operation_shape::MalformedTimestampBodyDateTime,
        9191  +
                                    ModelPl::Output
        9192  +
                                >
        9193  +
                            >::Output
        9194  +
                        >,
        9195  +
        9196  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9197  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9198  +
        9199  +
                    {
        9200  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9201  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9202  +
        let svc = crate::operation_shape::MalformedTimestampBodyDateTime::from_handler(handler);
        9203  +
        let svc = self.model_plugin.apply(svc);
        9204  +
        let svc =
        9205  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9206  +
                .apply(svc);
        9207  +
        let svc = self.http_plugin.apply(svc);
        9208  +
        self.malformed_timestamp_body_date_time_custom(svc)
        9209  +
    }
        9210  +
        9211  +
    /// Sets the [`MalformedTimestampBodyDateTime`](crate::operation_shape::MalformedTimestampBodyDateTime) operation.
        9212  +
    ///
        9213  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9214  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9215  +
    ///
        9216  +
    /// # Example
        9217  +
    ///
        9218  +
    /// ```no_run
        9219  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9220  +
    ///
        9221  +
    /// use rest_json_http0x::{input, output, error};
        9222  +
    ///
        9223  +
    /// async fn handler(input: input::MalformedTimestampBodyDateTimeInput) -> Result<output::MalformedTimestampBodyDateTimeOutput, error::MalformedTimestampBodyDateTimeError> {
        9224  +
    ///     todo!()
        9225  +
    /// }
        9226  +
    ///
        9227  +
    /// let config = RestJsonConfig::builder().build();
        9228  +
    /// let svc = ::tower::util::service_fn(handler);
        9229  +
    /// let app = RestJson::builder(config)
        9230  +
    ///     .malformed_timestamp_body_date_time_service(svc)
        9231  +
    ///     /* Set other handlers */
        9232  +
    ///     .build()
        9233  +
    ///     .unwrap();
        9234  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9235  +
    /// ```
        9236  +
    ///
        9237  +
                    pub fn malformed_timestamp_body_date_time_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        9238  +
                    where
        9239  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampBodyDateTime, ServiceExtractors>,
        9240  +
        9241  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9242  +
                            RestJson<L>,
        9243  +
                            crate::operation_shape::MalformedTimestampBodyDateTime,
        9244  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampBodyDateTime, S>
        9245  +
                        >,
        9246  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9247  +
                            RestJson<L>,
        9248  +
                            crate::operation_shape::MalformedTimestampBodyDateTime,
        9249  +
                            ModelPl::Output
        9250  +
                        >,
        9251  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9252  +
                            RestJson<L>,
        9253  +
                            crate::operation_shape::MalformedTimestampBodyDateTime,
        9254  +
                            <
        9255  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9256  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9257  +
                                    RestJson<L>,
        9258  +
                                    crate::operation_shape::MalformedTimestampBodyDateTime,
        9259  +
                                    ModelPl::Output
        9260  +
                                >
        9261  +
                            >::Output
        9262  +
                        >,
        9263  +
        9264  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9265  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9266  +
        9267  +
                    {
        9268  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9269  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9270  +
        let svc = crate::operation_shape::MalformedTimestampBodyDateTime::from_service(service);
        9271  +
        let svc = self.model_plugin.apply(svc);
        9272  +
        let svc =
        9273  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9274  +
                .apply(svc);
        9275  +
        let svc = self.http_plugin.apply(svc);
        9276  +
        self.malformed_timestamp_body_date_time_custom(svc)
        9277  +
    }
        9278  +
        9279  +
    /// Sets the [`MalformedTimestampBodyDateTime`](crate::operation_shape::MalformedTimestampBodyDateTime) to a custom [`Service`](tower::Service).
        9280  +
    /// not constrained by the Smithy contract.
        9281  +
    fn malformed_timestamp_body_date_time_custom<S>(mut self, svc: S) -> Self
        9282  +
    where
        9283  +
        S: ::tower::Service<
        9284  +
                ::http::Request<Body>,
        9285  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        9286  +
                Error = ::std::convert::Infallible,
        9287  +
            > + Clone
        9288  +
            + Send
        9289  +
            + 'static,
        9290  +
        S::Future: Send + 'static,
        9291  +
    {
        9292  +
        self.malformed_timestamp_body_date_time =
        9293  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        9294  +
        self
        9295  +
    }
        9296  +
        9297  +
    /// Sets the [`MalformedTimestampBodyDefault`](crate::operation_shape::MalformedTimestampBodyDefault) operation.
        9298  +
    ///
        9299  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9300  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9301  +
    ///
        9302  +
    /// # Example
        9303  +
    ///
        9304  +
    /// ```no_run
        9305  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9306  +
    ///
        9307  +
    /// use rest_json_http0x::{input, output, error};
        9308  +
    ///
        9309  +
    /// async fn handler(input: input::MalformedTimestampBodyDefaultInput) -> Result<output::MalformedTimestampBodyDefaultOutput, error::MalformedTimestampBodyDefaultError> {
        9310  +
    ///     todo!()
        9311  +
    /// }
        9312  +
    ///
        9313  +
    /// let config = RestJsonConfig::builder().build();
        9314  +
    /// let app = RestJson::builder(config)
        9315  +
    ///     .malformed_timestamp_body_default(handler)
        9316  +
    ///     /* Set other handlers */
        9317  +
    ///     .build()
        9318  +
    ///     .unwrap();
        9319  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9320  +
    /// ```
        9321  +
    ///
        9322  +
                    pub fn malformed_timestamp_body_default<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        9323  +
                    where
        9324  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampBodyDefault, HandlerExtractors>,
        9325  +
        9326  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9327  +
                            RestJson<L>,
        9328  +
                            crate::operation_shape::MalformedTimestampBodyDefault,
        9329  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampBodyDefault, HandlerType>
        9330  +
                        >,
        9331  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9332  +
                            RestJson<L>,
        9333  +
                            crate::operation_shape::MalformedTimestampBodyDefault,
        9334  +
                            ModelPl::Output
        9335  +
                        >,
        9336  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9337  +
                            RestJson<L>,
        9338  +
                            crate::operation_shape::MalformedTimestampBodyDefault,
        9339  +
                            <
        9340  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9341  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9342  +
                                    RestJson<L>,
        9343  +
                                    crate::operation_shape::MalformedTimestampBodyDefault,
        9344  +
                                    ModelPl::Output
        9345  +
                                >
        9346  +
                            >::Output
        9347  +
                        >,
        9348  +
        9349  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9350  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9351  +
        9352  +
                    {
        9353  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9354  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9355  +
        let svc = crate::operation_shape::MalformedTimestampBodyDefault::from_handler(handler);
        9356  +
        let svc = self.model_plugin.apply(svc);
        9357  +
        let svc =
        9358  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9359  +
                .apply(svc);
        9360  +
        let svc = self.http_plugin.apply(svc);
        9361  +
        self.malformed_timestamp_body_default_custom(svc)
        9362  +
    }
        9363  +
        9364  +
    /// Sets the [`MalformedTimestampBodyDefault`](crate::operation_shape::MalformedTimestampBodyDefault) operation.
        9365  +
    ///
        9366  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9367  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9368  +
    ///
        9369  +
    /// # Example
        9370  +
    ///
        9371  +
    /// ```no_run
        9372  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9373  +
    ///
        9374  +
    /// use rest_json_http0x::{input, output, error};
        9375  +
    ///
        9376  +
    /// async fn handler(input: input::MalformedTimestampBodyDefaultInput) -> Result<output::MalformedTimestampBodyDefaultOutput, error::MalformedTimestampBodyDefaultError> {
        9377  +
    ///     todo!()
        9378  +
    /// }
        9379  +
    ///
        9380  +
    /// let config = RestJsonConfig::builder().build();
        9381  +
    /// let svc = ::tower::util::service_fn(handler);
        9382  +
    /// let app = RestJson::builder(config)
        9383  +
    ///     .malformed_timestamp_body_default_service(svc)
        9384  +
    ///     /* Set other handlers */
        9385  +
    ///     .build()
        9386  +
    ///     .unwrap();
        9387  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9388  +
    /// ```
        9389  +
    ///
        9390  +
                    pub fn malformed_timestamp_body_default_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        9391  +
                    where
        9392  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampBodyDefault, ServiceExtractors>,
        9393  +
        9394  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9395  +
                            RestJson<L>,
        9396  +
                            crate::operation_shape::MalformedTimestampBodyDefault,
        9397  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampBodyDefault, S>
        9398  +
                        >,
        9399  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9400  +
                            RestJson<L>,
        9401  +
                            crate::operation_shape::MalformedTimestampBodyDefault,
        9402  +
                            ModelPl::Output
        9403  +
                        >,
        9404  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9405  +
                            RestJson<L>,
        9406  +
                            crate::operation_shape::MalformedTimestampBodyDefault,
        9407  +
                            <
        9408  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9409  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9410  +
                                    RestJson<L>,
        9411  +
                                    crate::operation_shape::MalformedTimestampBodyDefault,
        9412  +
                                    ModelPl::Output
        9413  +
                                >
        9414  +
                            >::Output
        9415  +
                        >,
        9416  +
        9417  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9418  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9419  +
        9420  +
                    {
        9421  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9422  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9423  +
        let svc = crate::operation_shape::MalformedTimestampBodyDefault::from_service(service);
        9424  +
        let svc = self.model_plugin.apply(svc);
        9425  +
        let svc =
        9426  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9427  +
                .apply(svc);
        9428  +
        let svc = self.http_plugin.apply(svc);
        9429  +
        self.malformed_timestamp_body_default_custom(svc)
        9430  +
    }
        9431  +
        9432  +
    /// Sets the [`MalformedTimestampBodyDefault`](crate::operation_shape::MalformedTimestampBodyDefault) to a custom [`Service`](tower::Service).
        9433  +
    /// not constrained by the Smithy contract.
        9434  +
    fn malformed_timestamp_body_default_custom<S>(mut self, svc: S) -> Self
        9435  +
    where
        9436  +
        S: ::tower::Service<
        9437  +
                ::http::Request<Body>,
        9438  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        9439  +
                Error = ::std::convert::Infallible,
        9440  +
            > + Clone
        9441  +
            + Send
        9442  +
            + 'static,
        9443  +
        S::Future: Send + 'static,
        9444  +
    {
        9445  +
        self.malformed_timestamp_body_default =
        9446  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        9447  +
        self
        9448  +
    }
        9449  +
        9450  +
    /// Sets the [`MalformedTimestampBodyHttpDate`](crate::operation_shape::MalformedTimestampBodyHttpDate) operation.
        9451  +
    ///
        9452  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9453  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9454  +
    ///
        9455  +
    /// # Example
        9456  +
    ///
        9457  +
    /// ```no_run
        9458  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9459  +
    ///
        9460  +
    /// use rest_json_http0x::{input, output, error};
        9461  +
    ///
        9462  +
    /// async fn handler(input: input::MalformedTimestampBodyHttpDateInput) -> Result<output::MalformedTimestampBodyHttpDateOutput, error::MalformedTimestampBodyHttpDateError> {
        9463  +
    ///     todo!()
        9464  +
    /// }
        9465  +
    ///
        9466  +
    /// let config = RestJsonConfig::builder().build();
        9467  +
    /// let app = RestJson::builder(config)
        9468  +
    ///     .malformed_timestamp_body_http_date(handler)
        9469  +
    ///     /* Set other handlers */
        9470  +
    ///     .build()
        9471  +
    ///     .unwrap();
        9472  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9473  +
    /// ```
        9474  +
    ///
        9475  +
                    pub fn malformed_timestamp_body_http_date<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        9476  +
                    where
        9477  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampBodyHttpDate, HandlerExtractors>,
        9478  +
        9479  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9480  +
                            RestJson<L>,
        9481  +
                            crate::operation_shape::MalformedTimestampBodyHttpDate,
        9482  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampBodyHttpDate, HandlerType>
        9483  +
                        >,
        9484  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9485  +
                            RestJson<L>,
        9486  +
                            crate::operation_shape::MalformedTimestampBodyHttpDate,
        9487  +
                            ModelPl::Output
        9488  +
                        >,
        9489  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9490  +
                            RestJson<L>,
        9491  +
                            crate::operation_shape::MalformedTimestampBodyHttpDate,
        9492  +
                            <
        9493  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9494  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9495  +
                                    RestJson<L>,
        9496  +
                                    crate::operation_shape::MalformedTimestampBodyHttpDate,
        9497  +
                                    ModelPl::Output
        9498  +
                                >
        9499  +
                            >::Output
        9500  +
                        >,
        9501  +
        9502  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9503  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9504  +
        9505  +
                    {
        9506  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9507  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9508  +
        let svc = crate::operation_shape::MalformedTimestampBodyHttpDate::from_handler(handler);
        9509  +
        let svc = self.model_plugin.apply(svc);
        9510  +
        let svc =
        9511  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9512  +
                .apply(svc);
        9513  +
        let svc = self.http_plugin.apply(svc);
        9514  +
        self.malformed_timestamp_body_http_date_custom(svc)
        9515  +
    }
        9516  +
        9517  +
    /// Sets the [`MalformedTimestampBodyHttpDate`](crate::operation_shape::MalformedTimestampBodyHttpDate) operation.
        9518  +
    ///
        9519  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9520  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9521  +
    ///
        9522  +
    /// # Example
        9523  +
    ///
        9524  +
    /// ```no_run
        9525  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9526  +
    ///
        9527  +
    /// use rest_json_http0x::{input, output, error};
        9528  +
    ///
        9529  +
    /// async fn handler(input: input::MalformedTimestampBodyHttpDateInput) -> Result<output::MalformedTimestampBodyHttpDateOutput, error::MalformedTimestampBodyHttpDateError> {
        9530  +
    ///     todo!()
        9531  +
    /// }
        9532  +
    ///
        9533  +
    /// let config = RestJsonConfig::builder().build();
        9534  +
    /// let svc = ::tower::util::service_fn(handler);
        9535  +
    /// let app = RestJson::builder(config)
        9536  +
    ///     .malformed_timestamp_body_http_date_service(svc)
        9537  +
    ///     /* Set other handlers */
        9538  +
    ///     .build()
        9539  +
    ///     .unwrap();
        9540  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9541  +
    /// ```
        9542  +
    ///
        9543  +
                    pub fn malformed_timestamp_body_http_date_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        9544  +
                    where
        9545  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampBodyHttpDate, ServiceExtractors>,
        9546  +
        9547  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9548  +
                            RestJson<L>,
        9549  +
                            crate::operation_shape::MalformedTimestampBodyHttpDate,
        9550  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampBodyHttpDate, S>
        9551  +
                        >,
        9552  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9553  +
                            RestJson<L>,
        9554  +
                            crate::operation_shape::MalformedTimestampBodyHttpDate,
        9555  +
                            ModelPl::Output
        9556  +
                        >,
        9557  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9558  +
                            RestJson<L>,
        9559  +
                            crate::operation_shape::MalformedTimestampBodyHttpDate,
        9560  +
                            <
        9561  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9562  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9563  +
                                    RestJson<L>,
        9564  +
                                    crate::operation_shape::MalformedTimestampBodyHttpDate,
        9565  +
                                    ModelPl::Output
        9566  +
                                >
        9567  +
                            >::Output
        9568  +
                        >,
        9569  +
        9570  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9571  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9572  +
        9573  +
                    {
        9574  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9575  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9576  +
        let svc = crate::operation_shape::MalformedTimestampBodyHttpDate::from_service(service);
        9577  +
        let svc = self.model_plugin.apply(svc);
        9578  +
        let svc =
        9579  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9580  +
                .apply(svc);
        9581  +
        let svc = self.http_plugin.apply(svc);
        9582  +
        self.malformed_timestamp_body_http_date_custom(svc)
        9583  +
    }
        9584  +
        9585  +
    /// Sets the [`MalformedTimestampBodyHttpDate`](crate::operation_shape::MalformedTimestampBodyHttpDate) to a custom [`Service`](tower::Service).
        9586  +
    /// not constrained by the Smithy contract.
        9587  +
    fn malformed_timestamp_body_http_date_custom<S>(mut self, svc: S) -> Self
        9588  +
    where
        9589  +
        S: ::tower::Service<
        9590  +
                ::http::Request<Body>,
        9591  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        9592  +
                Error = ::std::convert::Infallible,
        9593  +
            > + Clone
        9594  +
            + Send
        9595  +
            + 'static,
        9596  +
        S::Future: Send + 'static,
        9597  +
    {
        9598  +
        self.malformed_timestamp_body_http_date =
        9599  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        9600  +
        self
        9601  +
    }
        9602  +
        9603  +
    /// Sets the [`MalformedTimestampHeaderDateTime`](crate::operation_shape::MalformedTimestampHeaderDateTime) operation.
        9604  +
    ///
        9605  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9606  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9607  +
    ///
        9608  +
    /// # Example
        9609  +
    ///
        9610  +
    /// ```no_run
        9611  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9612  +
    ///
        9613  +
    /// use rest_json_http0x::{input, output, error};
        9614  +
    ///
        9615  +
    /// async fn handler(input: input::MalformedTimestampHeaderDateTimeInput) -> Result<output::MalformedTimestampHeaderDateTimeOutput, error::MalformedTimestampHeaderDateTimeError> {
        9616  +
    ///     todo!()
        9617  +
    /// }
        9618  +
    ///
        9619  +
    /// let config = RestJsonConfig::builder().build();
        9620  +
    /// let app = RestJson::builder(config)
        9621  +
    ///     .malformed_timestamp_header_date_time(handler)
        9622  +
    ///     /* Set other handlers */
        9623  +
    ///     .build()
        9624  +
    ///     .unwrap();
        9625  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9626  +
    /// ```
        9627  +
    ///
        9628  +
                    pub fn malformed_timestamp_header_date_time<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        9629  +
                    where
        9630  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampHeaderDateTime, HandlerExtractors>,
        9631  +
        9632  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9633  +
                            RestJson<L>,
        9634  +
                            crate::operation_shape::MalformedTimestampHeaderDateTime,
        9635  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampHeaderDateTime, HandlerType>
        9636  +
                        >,
        9637  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9638  +
                            RestJson<L>,
        9639  +
                            crate::operation_shape::MalformedTimestampHeaderDateTime,
        9640  +
                            ModelPl::Output
        9641  +
                        >,
        9642  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9643  +
                            RestJson<L>,
        9644  +
                            crate::operation_shape::MalformedTimestampHeaderDateTime,
        9645  +
                            <
        9646  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9647  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9648  +
                                    RestJson<L>,
        9649  +
                                    crate::operation_shape::MalformedTimestampHeaderDateTime,
        9650  +
                                    ModelPl::Output
        9651  +
                                >
        9652  +
                            >::Output
        9653  +
                        >,
        9654  +
        9655  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9656  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9657  +
        9658  +
                    {
        9659  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9660  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9661  +
        let svc = crate::operation_shape::MalformedTimestampHeaderDateTime::from_handler(handler);
        9662  +
        let svc = self.model_plugin.apply(svc);
        9663  +
        let svc =
        9664  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9665  +
                .apply(svc);
        9666  +
        let svc = self.http_plugin.apply(svc);
        9667  +
        self.malformed_timestamp_header_date_time_custom(svc)
        9668  +
    }
        9669  +
        9670  +
    /// Sets the [`MalformedTimestampHeaderDateTime`](crate::operation_shape::MalformedTimestampHeaderDateTime) operation.
        9671  +
    ///
        9672  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9673  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9674  +
    ///
        9675  +
    /// # Example
        9676  +
    ///
        9677  +
    /// ```no_run
        9678  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9679  +
    ///
        9680  +
    /// use rest_json_http0x::{input, output, error};
        9681  +
    ///
        9682  +
    /// async fn handler(input: input::MalformedTimestampHeaderDateTimeInput) -> Result<output::MalformedTimestampHeaderDateTimeOutput, error::MalformedTimestampHeaderDateTimeError> {
        9683  +
    ///     todo!()
        9684  +
    /// }
        9685  +
    ///
        9686  +
    /// let config = RestJsonConfig::builder().build();
        9687  +
    /// let svc = ::tower::util::service_fn(handler);
        9688  +
    /// let app = RestJson::builder(config)
        9689  +
    ///     .malformed_timestamp_header_date_time_service(svc)
        9690  +
    ///     /* Set other handlers */
        9691  +
    ///     .build()
        9692  +
    ///     .unwrap();
        9693  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9694  +
    /// ```
        9695  +
    ///
        9696  +
                    pub fn malformed_timestamp_header_date_time_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        9697  +
                    where
        9698  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampHeaderDateTime, ServiceExtractors>,
        9699  +
        9700  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9701  +
                            RestJson<L>,
        9702  +
                            crate::operation_shape::MalformedTimestampHeaderDateTime,
        9703  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampHeaderDateTime, S>
        9704  +
                        >,
        9705  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9706  +
                            RestJson<L>,
        9707  +
                            crate::operation_shape::MalformedTimestampHeaderDateTime,
        9708  +
                            ModelPl::Output
        9709  +
                        >,
        9710  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9711  +
                            RestJson<L>,
        9712  +
                            crate::operation_shape::MalformedTimestampHeaderDateTime,
        9713  +
                            <
        9714  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9715  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9716  +
                                    RestJson<L>,
        9717  +
                                    crate::operation_shape::MalformedTimestampHeaderDateTime,
        9718  +
                                    ModelPl::Output
        9719  +
                                >
        9720  +
                            >::Output
        9721  +
                        >,
        9722  +
        9723  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9724  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9725  +
        9726  +
                    {
        9727  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9728  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9729  +
        let svc = crate::operation_shape::MalformedTimestampHeaderDateTime::from_service(service);
        9730  +
        let svc = self.model_plugin.apply(svc);
        9731  +
        let svc =
        9732  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9733  +
                .apply(svc);
        9734  +
        let svc = self.http_plugin.apply(svc);
        9735  +
        self.malformed_timestamp_header_date_time_custom(svc)
        9736  +
    }
        9737  +
        9738  +
    /// Sets the [`MalformedTimestampHeaderDateTime`](crate::operation_shape::MalformedTimestampHeaderDateTime) to a custom [`Service`](tower::Service).
        9739  +
    /// not constrained by the Smithy contract.
        9740  +
    fn malformed_timestamp_header_date_time_custom<S>(mut self, svc: S) -> Self
        9741  +
    where
        9742  +
        S: ::tower::Service<
        9743  +
                ::http::Request<Body>,
        9744  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        9745  +
                Error = ::std::convert::Infallible,
        9746  +
            > + Clone
        9747  +
            + Send
        9748  +
            + 'static,
        9749  +
        S::Future: Send + 'static,
        9750  +
    {
        9751  +
        self.malformed_timestamp_header_date_time =
        9752  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        9753  +
        self
        9754  +
    }
        9755  +
        9756  +
    /// Sets the [`MalformedTimestampHeaderDefault`](crate::operation_shape::MalformedTimestampHeaderDefault) operation.
        9757  +
    ///
        9758  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9759  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9760  +
    ///
        9761  +
    /// # Example
        9762  +
    ///
        9763  +
    /// ```no_run
        9764  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9765  +
    ///
        9766  +
    /// use rest_json_http0x::{input, output, error};
        9767  +
    ///
        9768  +
    /// async fn handler(input: input::MalformedTimestampHeaderDefaultInput) -> Result<output::MalformedTimestampHeaderDefaultOutput, error::MalformedTimestampHeaderDefaultError> {
        9769  +
    ///     todo!()
        9770  +
    /// }
        9771  +
    ///
        9772  +
    /// let config = RestJsonConfig::builder().build();
        9773  +
    /// let app = RestJson::builder(config)
        9774  +
    ///     .malformed_timestamp_header_default(handler)
        9775  +
    ///     /* Set other handlers */
        9776  +
    ///     .build()
        9777  +
    ///     .unwrap();
        9778  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9779  +
    /// ```
        9780  +
    ///
        9781  +
                    pub fn malformed_timestamp_header_default<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        9782  +
                    where
        9783  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampHeaderDefault, HandlerExtractors>,
        9784  +
        9785  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9786  +
                            RestJson<L>,
        9787  +
                            crate::operation_shape::MalformedTimestampHeaderDefault,
        9788  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampHeaderDefault, HandlerType>
        9789  +
                        >,
        9790  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9791  +
                            RestJson<L>,
        9792  +
                            crate::operation_shape::MalformedTimestampHeaderDefault,
        9793  +
                            ModelPl::Output
        9794  +
                        >,
        9795  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9796  +
                            RestJson<L>,
        9797  +
                            crate::operation_shape::MalformedTimestampHeaderDefault,
        9798  +
                            <
        9799  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9800  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9801  +
                                    RestJson<L>,
        9802  +
                                    crate::operation_shape::MalformedTimestampHeaderDefault,
        9803  +
                                    ModelPl::Output
        9804  +
                                >
        9805  +
                            >::Output
        9806  +
                        >,
        9807  +
        9808  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9809  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9810  +
        9811  +
                    {
        9812  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9813  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9814  +
        let svc = crate::operation_shape::MalformedTimestampHeaderDefault::from_handler(handler);
        9815  +
        let svc = self.model_plugin.apply(svc);
        9816  +
        let svc =
        9817  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9818  +
                .apply(svc);
        9819  +
        let svc = self.http_plugin.apply(svc);
        9820  +
        self.malformed_timestamp_header_default_custom(svc)
        9821  +
    }
        9822  +
        9823  +
    /// Sets the [`MalformedTimestampHeaderDefault`](crate::operation_shape::MalformedTimestampHeaderDefault) operation.
        9824  +
    ///
        9825  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9826  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9827  +
    ///
        9828  +
    /// # Example
        9829  +
    ///
        9830  +
    /// ```no_run
        9831  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9832  +
    ///
        9833  +
    /// use rest_json_http0x::{input, output, error};
        9834  +
    ///
        9835  +
    /// async fn handler(input: input::MalformedTimestampHeaderDefaultInput) -> Result<output::MalformedTimestampHeaderDefaultOutput, error::MalformedTimestampHeaderDefaultError> {
        9836  +
    ///     todo!()
        9837  +
    /// }
        9838  +
    ///
        9839  +
    /// let config = RestJsonConfig::builder().build();
        9840  +
    /// let svc = ::tower::util::service_fn(handler);
        9841  +
    /// let app = RestJson::builder(config)
        9842  +
    ///     .malformed_timestamp_header_default_service(svc)
        9843  +
    ///     /* Set other handlers */
        9844  +
    ///     .build()
        9845  +
    ///     .unwrap();
        9846  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9847  +
    /// ```
        9848  +
    ///
        9849  +
                    pub fn malformed_timestamp_header_default_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        9850  +
                    where
        9851  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampHeaderDefault, ServiceExtractors>,
        9852  +
        9853  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9854  +
                            RestJson<L>,
        9855  +
                            crate::operation_shape::MalformedTimestampHeaderDefault,
        9856  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampHeaderDefault, S>
        9857  +
                        >,
        9858  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9859  +
                            RestJson<L>,
        9860  +
                            crate::operation_shape::MalformedTimestampHeaderDefault,
        9861  +
                            ModelPl::Output
        9862  +
                        >,
        9863  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9864  +
                            RestJson<L>,
        9865  +
                            crate::operation_shape::MalformedTimestampHeaderDefault,
        9866  +
                            <
        9867  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9868  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9869  +
                                    RestJson<L>,
        9870  +
                                    crate::operation_shape::MalformedTimestampHeaderDefault,
        9871  +
                                    ModelPl::Output
        9872  +
                                >
        9873  +
                            >::Output
        9874  +
                        >,
        9875  +
        9876  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9877  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9878  +
        9879  +
                    {
        9880  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9881  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9882  +
        let svc = crate::operation_shape::MalformedTimestampHeaderDefault::from_service(service);
        9883  +
        let svc = self.model_plugin.apply(svc);
        9884  +
        let svc =
        9885  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9886  +
                .apply(svc);
        9887  +
        let svc = self.http_plugin.apply(svc);
        9888  +
        self.malformed_timestamp_header_default_custom(svc)
        9889  +
    }
        9890  +
        9891  +
    /// Sets the [`MalformedTimestampHeaderDefault`](crate::operation_shape::MalformedTimestampHeaderDefault) to a custom [`Service`](tower::Service).
        9892  +
    /// not constrained by the Smithy contract.
        9893  +
    fn malformed_timestamp_header_default_custom<S>(mut self, svc: S) -> Self
        9894  +
    where
        9895  +
        S: ::tower::Service<
        9896  +
                ::http::Request<Body>,
        9897  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        9898  +
                Error = ::std::convert::Infallible,
        9899  +
            > + Clone
        9900  +
            + Send
        9901  +
            + 'static,
        9902  +
        S::Future: Send + 'static,
        9903  +
    {
        9904  +
        self.malformed_timestamp_header_default =
        9905  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        9906  +
        self
        9907  +
    }
        9908  +
        9909  +
    /// Sets the [`MalformedTimestampHeaderEpoch`](crate::operation_shape::MalformedTimestampHeaderEpoch) operation.
        9910  +
    ///
        9911  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9912  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9913  +
    ///
        9914  +
    /// # Example
        9915  +
    ///
        9916  +
    /// ```no_run
        9917  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9918  +
    ///
        9919  +
    /// use rest_json_http0x::{input, output, error};
        9920  +
    ///
        9921  +
    /// async fn handler(input: input::MalformedTimestampHeaderEpochInput) -> Result<output::MalformedTimestampHeaderEpochOutput, error::MalformedTimestampHeaderEpochError> {
        9922  +
    ///     todo!()
        9923  +
    /// }
        9924  +
    ///
        9925  +
    /// let config = RestJsonConfig::builder().build();
        9926  +
    /// let app = RestJson::builder(config)
        9927  +
    ///     .malformed_timestamp_header_epoch(handler)
        9928  +
    ///     /* Set other handlers */
        9929  +
    ///     .build()
        9930  +
    ///     .unwrap();
        9931  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
        9932  +
    /// ```
        9933  +
    ///
        9934  +
                    pub fn malformed_timestamp_header_epoch<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        9935  +
                    where
        9936  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampHeaderEpoch, HandlerExtractors>,
        9937  +
        9938  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9939  +
                            RestJson<L>,
        9940  +
                            crate::operation_shape::MalformedTimestampHeaderEpoch,
        9941  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampHeaderEpoch, HandlerType>
        9942  +
                        >,
        9943  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9944  +
                            RestJson<L>,
        9945  +
                            crate::operation_shape::MalformedTimestampHeaderEpoch,
        9946  +
                            ModelPl::Output
        9947  +
                        >,
        9948  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        9949  +
                            RestJson<L>,
        9950  +
                            crate::operation_shape::MalformedTimestampHeaderEpoch,
        9951  +
                            <
        9952  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        9953  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        9954  +
                                    RestJson<L>,
        9955  +
                                    crate::operation_shape::MalformedTimestampHeaderEpoch,
        9956  +
                                    ModelPl::Output
        9957  +
                                >
        9958  +
                            >::Output
        9959  +
                        >,
        9960  +
        9961  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        9962  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        9963  +
        9964  +
                    {
        9965  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        9966  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        9967  +
        let svc = crate::operation_shape::MalformedTimestampHeaderEpoch::from_handler(handler);
        9968  +
        let svc = self.model_plugin.apply(svc);
        9969  +
        let svc =
        9970  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        9971  +
                .apply(svc);
        9972  +
        let svc = self.http_plugin.apply(svc);
        9973  +
        self.malformed_timestamp_header_epoch_custom(svc)
        9974  +
    }
        9975  +
        9976  +
    /// Sets the [`MalformedTimestampHeaderEpoch`](crate::operation_shape::MalformedTimestampHeaderEpoch) operation.
        9977  +
    ///
        9978  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        9979  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        9980  +
    ///
        9981  +
    /// # Example
        9982  +
    ///
        9983  +
    /// ```no_run
        9984  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
        9985  +
    ///
        9986  +
    /// use rest_json_http0x::{input, output, error};
        9987  +
    ///
        9988  +
    /// async fn handler(input: input::MalformedTimestampHeaderEpochInput) -> Result<output::MalformedTimestampHeaderEpochOutput, error::MalformedTimestampHeaderEpochError> {
        9989  +
    ///     todo!()
        9990  +
    /// }
        9991  +
    ///
        9992  +
    /// let config = RestJsonConfig::builder().build();
        9993  +
    /// let svc = ::tower::util::service_fn(handler);
        9994  +
    /// let app = RestJson::builder(config)
        9995  +
    ///     .malformed_timestamp_header_epoch_service(svc)
        9996  +
    ///     /* Set other handlers */
        9997  +
    ///     .build()
        9998  +
    ///     .unwrap();
        9999  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10000  +
    /// ```
       10001  +
    ///
       10002  +
                    pub fn malformed_timestamp_header_epoch_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       10003  +
                    where
       10004  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampHeaderEpoch, ServiceExtractors>,
       10005  +
       10006  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10007  +
                            RestJson<L>,
       10008  +
                            crate::operation_shape::MalformedTimestampHeaderEpoch,
       10009  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampHeaderEpoch, S>
       10010  +
                        >,
       10011  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10012  +
                            RestJson<L>,
       10013  +
                            crate::operation_shape::MalformedTimestampHeaderEpoch,
       10014  +
                            ModelPl::Output
       10015  +
                        >,
       10016  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10017  +
                            RestJson<L>,
       10018  +
                            crate::operation_shape::MalformedTimestampHeaderEpoch,
       10019  +
                            <
       10020  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10021  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10022  +
                                    RestJson<L>,
       10023  +
                                    crate::operation_shape::MalformedTimestampHeaderEpoch,
       10024  +
                                    ModelPl::Output
       10025  +
                                >
       10026  +
                            >::Output
       10027  +
                        >,
       10028  +
       10029  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10030  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10031  +
       10032  +
                    {
       10033  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10034  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10035  +
        let svc = crate::operation_shape::MalformedTimestampHeaderEpoch::from_service(service);
       10036  +
        let svc = self.model_plugin.apply(svc);
       10037  +
        let svc =
       10038  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10039  +
                .apply(svc);
       10040  +
        let svc = self.http_plugin.apply(svc);
       10041  +
        self.malformed_timestamp_header_epoch_custom(svc)
       10042  +
    }
       10043  +
       10044  +
    /// Sets the [`MalformedTimestampHeaderEpoch`](crate::operation_shape::MalformedTimestampHeaderEpoch) to a custom [`Service`](tower::Service).
       10045  +
    /// not constrained by the Smithy contract.
       10046  +
    fn malformed_timestamp_header_epoch_custom<S>(mut self, svc: S) -> Self
       10047  +
    where
       10048  +
        S: ::tower::Service<
       10049  +
                ::http::Request<Body>,
       10050  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       10051  +
                Error = ::std::convert::Infallible,
       10052  +
            > + Clone
       10053  +
            + Send
       10054  +
            + 'static,
       10055  +
        S::Future: Send + 'static,
       10056  +
    {
       10057  +
        self.malformed_timestamp_header_epoch =
       10058  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       10059  +
        self
       10060  +
    }
       10061  +
       10062  +
    /// Sets the [`MalformedTimestampPathDefault`](crate::operation_shape::MalformedTimestampPathDefault) operation.
       10063  +
    ///
       10064  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10065  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10066  +
    ///
       10067  +
    /// # Example
       10068  +
    ///
       10069  +
    /// ```no_run
       10070  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10071  +
    ///
       10072  +
    /// use rest_json_http0x::{input, output, error};
       10073  +
    ///
       10074  +
    /// async fn handler(input: input::MalformedTimestampPathDefaultInput) -> Result<output::MalformedTimestampPathDefaultOutput, error::MalformedTimestampPathDefaultError> {
       10075  +
    ///     todo!()
       10076  +
    /// }
       10077  +
    ///
       10078  +
    /// let config = RestJsonConfig::builder().build();
       10079  +
    /// let app = RestJson::builder(config)
       10080  +
    ///     .malformed_timestamp_path_default(handler)
       10081  +
    ///     /* Set other handlers */
       10082  +
    ///     .build()
       10083  +
    ///     .unwrap();
       10084  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10085  +
    /// ```
       10086  +
    ///
       10087  +
                    pub fn malformed_timestamp_path_default<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       10088  +
                    where
       10089  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampPathDefault, HandlerExtractors>,
       10090  +
       10091  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10092  +
                            RestJson<L>,
       10093  +
                            crate::operation_shape::MalformedTimestampPathDefault,
       10094  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampPathDefault, HandlerType>
       10095  +
                        >,
       10096  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10097  +
                            RestJson<L>,
       10098  +
                            crate::operation_shape::MalformedTimestampPathDefault,
       10099  +
                            ModelPl::Output
       10100  +
                        >,
       10101  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10102  +
                            RestJson<L>,
       10103  +
                            crate::operation_shape::MalformedTimestampPathDefault,
       10104  +
                            <
       10105  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10106  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10107  +
                                    RestJson<L>,
       10108  +
                                    crate::operation_shape::MalformedTimestampPathDefault,
       10109  +
                                    ModelPl::Output
       10110  +
                                >
       10111  +
                            >::Output
       10112  +
                        >,
       10113  +
       10114  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10115  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10116  +
       10117  +
                    {
       10118  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10119  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10120  +
        let svc = crate::operation_shape::MalformedTimestampPathDefault::from_handler(handler);
       10121  +
        let svc = self.model_plugin.apply(svc);
       10122  +
        let svc =
       10123  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10124  +
                .apply(svc);
       10125  +
        let svc = self.http_plugin.apply(svc);
       10126  +
        self.malformed_timestamp_path_default_custom(svc)
       10127  +
    }
       10128  +
       10129  +
    /// Sets the [`MalformedTimestampPathDefault`](crate::operation_shape::MalformedTimestampPathDefault) operation.
       10130  +
    ///
       10131  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10132  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10133  +
    ///
       10134  +
    /// # Example
       10135  +
    ///
       10136  +
    /// ```no_run
       10137  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10138  +
    ///
       10139  +
    /// use rest_json_http0x::{input, output, error};
       10140  +
    ///
       10141  +
    /// async fn handler(input: input::MalformedTimestampPathDefaultInput) -> Result<output::MalformedTimestampPathDefaultOutput, error::MalformedTimestampPathDefaultError> {
       10142  +
    ///     todo!()
       10143  +
    /// }
       10144  +
    ///
       10145  +
    /// let config = RestJsonConfig::builder().build();
       10146  +
    /// let svc = ::tower::util::service_fn(handler);
       10147  +
    /// let app = RestJson::builder(config)
       10148  +
    ///     .malformed_timestamp_path_default_service(svc)
       10149  +
    ///     /* Set other handlers */
       10150  +
    ///     .build()
       10151  +
    ///     .unwrap();
       10152  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10153  +
    /// ```
       10154  +
    ///
       10155  +
                    pub fn malformed_timestamp_path_default_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       10156  +
                    where
       10157  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampPathDefault, ServiceExtractors>,
       10158  +
       10159  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10160  +
                            RestJson<L>,
       10161  +
                            crate::operation_shape::MalformedTimestampPathDefault,
       10162  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampPathDefault, S>
       10163  +
                        >,
       10164  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10165  +
                            RestJson<L>,
       10166  +
                            crate::operation_shape::MalformedTimestampPathDefault,
       10167  +
                            ModelPl::Output
       10168  +
                        >,
       10169  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10170  +
                            RestJson<L>,
       10171  +
                            crate::operation_shape::MalformedTimestampPathDefault,
       10172  +
                            <
       10173  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10174  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10175  +
                                    RestJson<L>,
       10176  +
                                    crate::operation_shape::MalformedTimestampPathDefault,
       10177  +
                                    ModelPl::Output
       10178  +
                                >
       10179  +
                            >::Output
       10180  +
                        >,
       10181  +
       10182  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10183  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10184  +
       10185  +
                    {
       10186  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10187  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10188  +
        let svc = crate::operation_shape::MalformedTimestampPathDefault::from_service(service);
       10189  +
        let svc = self.model_plugin.apply(svc);
       10190  +
        let svc =
       10191  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10192  +
                .apply(svc);
       10193  +
        let svc = self.http_plugin.apply(svc);
       10194  +
        self.malformed_timestamp_path_default_custom(svc)
       10195  +
    }
       10196  +
       10197  +
    /// Sets the [`MalformedTimestampPathDefault`](crate::operation_shape::MalformedTimestampPathDefault) to a custom [`Service`](tower::Service).
       10198  +
    /// not constrained by the Smithy contract.
       10199  +
    fn malformed_timestamp_path_default_custom<S>(mut self, svc: S) -> Self
       10200  +
    where
       10201  +
        S: ::tower::Service<
       10202  +
                ::http::Request<Body>,
       10203  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       10204  +
                Error = ::std::convert::Infallible,
       10205  +
            > + Clone
       10206  +
            + Send
       10207  +
            + 'static,
       10208  +
        S::Future: Send + 'static,
       10209  +
    {
       10210  +
        self.malformed_timestamp_path_default =
       10211  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       10212  +
        self
       10213  +
    }
       10214  +
       10215  +
    /// Sets the [`MalformedTimestampPathEpoch`](crate::operation_shape::MalformedTimestampPathEpoch) operation.
       10216  +
    ///
       10217  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10218  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10219  +
    ///
       10220  +
    /// # Example
       10221  +
    ///
       10222  +
    /// ```no_run
       10223  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10224  +
    ///
       10225  +
    /// use rest_json_http0x::{input, output, error};
       10226  +
    ///
       10227  +
    /// async fn handler(input: input::MalformedTimestampPathEpochInput) -> Result<output::MalformedTimestampPathEpochOutput, error::MalformedTimestampPathEpochError> {
       10228  +
    ///     todo!()
       10229  +
    /// }
       10230  +
    ///
       10231  +
    /// let config = RestJsonConfig::builder().build();
       10232  +
    /// let app = RestJson::builder(config)
       10233  +
    ///     .malformed_timestamp_path_epoch(handler)
       10234  +
    ///     /* Set other handlers */
       10235  +
    ///     .build()
       10236  +
    ///     .unwrap();
       10237  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10238  +
    /// ```
       10239  +
    ///
       10240  +
                    pub fn malformed_timestamp_path_epoch<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       10241  +
                    where
       10242  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampPathEpoch, HandlerExtractors>,
       10243  +
       10244  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10245  +
                            RestJson<L>,
       10246  +
                            crate::operation_shape::MalformedTimestampPathEpoch,
       10247  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampPathEpoch, HandlerType>
       10248  +
                        >,
       10249  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10250  +
                            RestJson<L>,
       10251  +
                            crate::operation_shape::MalformedTimestampPathEpoch,
       10252  +
                            ModelPl::Output
       10253  +
                        >,
       10254  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10255  +
                            RestJson<L>,
       10256  +
                            crate::operation_shape::MalformedTimestampPathEpoch,
       10257  +
                            <
       10258  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10259  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10260  +
                                    RestJson<L>,
       10261  +
                                    crate::operation_shape::MalformedTimestampPathEpoch,
       10262  +
                                    ModelPl::Output
       10263  +
                                >
       10264  +
                            >::Output
       10265  +
                        >,
       10266  +
       10267  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10268  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10269  +
       10270  +
                    {
       10271  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10272  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10273  +
        let svc = crate::operation_shape::MalformedTimestampPathEpoch::from_handler(handler);
       10274  +
        let svc = self.model_plugin.apply(svc);
       10275  +
        let svc =
       10276  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10277  +
                .apply(svc);
       10278  +
        let svc = self.http_plugin.apply(svc);
       10279  +
        self.malformed_timestamp_path_epoch_custom(svc)
       10280  +
    }
       10281  +
       10282  +
    /// Sets the [`MalformedTimestampPathEpoch`](crate::operation_shape::MalformedTimestampPathEpoch) operation.
       10283  +
    ///
       10284  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10285  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10286  +
    ///
       10287  +
    /// # Example
       10288  +
    ///
       10289  +
    /// ```no_run
       10290  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10291  +
    ///
       10292  +
    /// use rest_json_http0x::{input, output, error};
       10293  +
    ///
       10294  +
    /// async fn handler(input: input::MalformedTimestampPathEpochInput) -> Result<output::MalformedTimestampPathEpochOutput, error::MalformedTimestampPathEpochError> {
       10295  +
    ///     todo!()
       10296  +
    /// }
       10297  +
    ///
       10298  +
    /// let config = RestJsonConfig::builder().build();
       10299  +
    /// let svc = ::tower::util::service_fn(handler);
       10300  +
    /// let app = RestJson::builder(config)
       10301  +
    ///     .malformed_timestamp_path_epoch_service(svc)
       10302  +
    ///     /* Set other handlers */
       10303  +
    ///     .build()
       10304  +
    ///     .unwrap();
       10305  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10306  +
    /// ```
       10307  +
    ///
       10308  +
                    pub fn malformed_timestamp_path_epoch_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       10309  +
                    where
       10310  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampPathEpoch, ServiceExtractors>,
       10311  +
       10312  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10313  +
                            RestJson<L>,
       10314  +
                            crate::operation_shape::MalformedTimestampPathEpoch,
       10315  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampPathEpoch, S>
       10316  +
                        >,
       10317  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10318  +
                            RestJson<L>,
       10319  +
                            crate::operation_shape::MalformedTimestampPathEpoch,
       10320  +
                            ModelPl::Output
       10321  +
                        >,
       10322  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10323  +
                            RestJson<L>,
       10324  +
                            crate::operation_shape::MalformedTimestampPathEpoch,
       10325  +
                            <
       10326  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10327  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10328  +
                                    RestJson<L>,
       10329  +
                                    crate::operation_shape::MalformedTimestampPathEpoch,
       10330  +
                                    ModelPl::Output
       10331  +
                                >
       10332  +
                            >::Output
       10333  +
                        >,
       10334  +
       10335  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10336  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10337  +
       10338  +
                    {
       10339  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10340  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10341  +
        let svc = crate::operation_shape::MalformedTimestampPathEpoch::from_service(service);
       10342  +
        let svc = self.model_plugin.apply(svc);
       10343  +
        let svc =
       10344  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10345  +
                .apply(svc);
       10346  +
        let svc = self.http_plugin.apply(svc);
       10347  +
        self.malformed_timestamp_path_epoch_custom(svc)
       10348  +
    }
       10349  +
       10350  +
    /// Sets the [`MalformedTimestampPathEpoch`](crate::operation_shape::MalformedTimestampPathEpoch) to a custom [`Service`](tower::Service).
       10351  +
    /// not constrained by the Smithy contract.
       10352  +
    fn malformed_timestamp_path_epoch_custom<S>(mut self, svc: S) -> Self
       10353  +
    where
       10354  +
        S: ::tower::Service<
       10355  +
                ::http::Request<Body>,
       10356  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       10357  +
                Error = ::std::convert::Infallible,
       10358  +
            > + Clone
       10359  +
            + Send
       10360  +
            + 'static,
       10361  +
        S::Future: Send + 'static,
       10362  +
    {
       10363  +
        self.malformed_timestamp_path_epoch =
       10364  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       10365  +
        self
       10366  +
    }
       10367  +
       10368  +
    /// Sets the [`MalformedTimestampPathHttpDate`](crate::operation_shape::MalformedTimestampPathHttpDate) operation.
       10369  +
    ///
       10370  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10371  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10372  +
    ///
       10373  +
    /// # Example
       10374  +
    ///
       10375  +
    /// ```no_run
       10376  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10377  +
    ///
       10378  +
    /// use rest_json_http0x::{input, output, error};
       10379  +
    ///
       10380  +
    /// async fn handler(input: input::MalformedTimestampPathHttpDateInput) -> Result<output::MalformedTimestampPathHttpDateOutput, error::MalformedTimestampPathHttpDateError> {
       10381  +
    ///     todo!()
       10382  +
    /// }
       10383  +
    ///
       10384  +
    /// let config = RestJsonConfig::builder().build();
       10385  +
    /// let app = RestJson::builder(config)
       10386  +
    ///     .malformed_timestamp_path_http_date(handler)
       10387  +
    ///     /* Set other handlers */
       10388  +
    ///     .build()
       10389  +
    ///     .unwrap();
       10390  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10391  +
    /// ```
       10392  +
    ///
       10393  +
                    pub fn malformed_timestamp_path_http_date<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       10394  +
                    where
       10395  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampPathHttpDate, HandlerExtractors>,
       10396  +
       10397  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10398  +
                            RestJson<L>,
       10399  +
                            crate::operation_shape::MalformedTimestampPathHttpDate,
       10400  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampPathHttpDate, HandlerType>
       10401  +
                        >,
       10402  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10403  +
                            RestJson<L>,
       10404  +
                            crate::operation_shape::MalformedTimestampPathHttpDate,
       10405  +
                            ModelPl::Output
       10406  +
                        >,
       10407  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10408  +
                            RestJson<L>,
       10409  +
                            crate::operation_shape::MalformedTimestampPathHttpDate,
       10410  +
                            <
       10411  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10412  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10413  +
                                    RestJson<L>,
       10414  +
                                    crate::operation_shape::MalformedTimestampPathHttpDate,
       10415  +
                                    ModelPl::Output
       10416  +
                                >
       10417  +
                            >::Output
       10418  +
                        >,
       10419  +
       10420  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10421  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10422  +
       10423  +
                    {
       10424  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10425  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10426  +
        let svc = crate::operation_shape::MalformedTimestampPathHttpDate::from_handler(handler);
       10427  +
        let svc = self.model_plugin.apply(svc);
       10428  +
        let svc =
       10429  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10430  +
                .apply(svc);
       10431  +
        let svc = self.http_plugin.apply(svc);
       10432  +
        self.malformed_timestamp_path_http_date_custom(svc)
       10433  +
    }
       10434  +
       10435  +
    /// Sets the [`MalformedTimestampPathHttpDate`](crate::operation_shape::MalformedTimestampPathHttpDate) operation.
       10436  +
    ///
       10437  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10438  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10439  +
    ///
       10440  +
    /// # Example
       10441  +
    ///
       10442  +
    /// ```no_run
       10443  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10444  +
    ///
       10445  +
    /// use rest_json_http0x::{input, output, error};
       10446  +
    ///
       10447  +
    /// async fn handler(input: input::MalformedTimestampPathHttpDateInput) -> Result<output::MalformedTimestampPathHttpDateOutput, error::MalformedTimestampPathHttpDateError> {
       10448  +
    ///     todo!()
       10449  +
    /// }
       10450  +
    ///
       10451  +
    /// let config = RestJsonConfig::builder().build();
       10452  +
    /// let svc = ::tower::util::service_fn(handler);
       10453  +
    /// let app = RestJson::builder(config)
       10454  +
    ///     .malformed_timestamp_path_http_date_service(svc)
       10455  +
    ///     /* Set other handlers */
       10456  +
    ///     .build()
       10457  +
    ///     .unwrap();
       10458  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10459  +
    /// ```
       10460  +
    ///
       10461  +
                    pub fn malformed_timestamp_path_http_date_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       10462  +
                    where
       10463  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampPathHttpDate, ServiceExtractors>,
       10464  +
       10465  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10466  +
                            RestJson<L>,
       10467  +
                            crate::operation_shape::MalformedTimestampPathHttpDate,
       10468  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampPathHttpDate, S>
       10469  +
                        >,
       10470  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10471  +
                            RestJson<L>,
       10472  +
                            crate::operation_shape::MalformedTimestampPathHttpDate,
       10473  +
                            ModelPl::Output
       10474  +
                        >,
       10475  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10476  +
                            RestJson<L>,
       10477  +
                            crate::operation_shape::MalformedTimestampPathHttpDate,
       10478  +
                            <
       10479  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10480  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10481  +
                                    RestJson<L>,
       10482  +
                                    crate::operation_shape::MalformedTimestampPathHttpDate,
       10483  +
                                    ModelPl::Output
       10484  +
                                >
       10485  +
                            >::Output
       10486  +
                        >,
       10487  +
       10488  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10489  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10490  +
       10491  +
                    {
       10492  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10493  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10494  +
        let svc = crate::operation_shape::MalformedTimestampPathHttpDate::from_service(service);
       10495  +
        let svc = self.model_plugin.apply(svc);
       10496  +
        let svc =
       10497  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10498  +
                .apply(svc);
       10499  +
        let svc = self.http_plugin.apply(svc);
       10500  +
        self.malformed_timestamp_path_http_date_custom(svc)
       10501  +
    }
       10502  +
       10503  +
    /// Sets the [`MalformedTimestampPathHttpDate`](crate::operation_shape::MalformedTimestampPathHttpDate) to a custom [`Service`](tower::Service).
       10504  +
    /// not constrained by the Smithy contract.
       10505  +
    fn malformed_timestamp_path_http_date_custom<S>(mut self, svc: S) -> Self
       10506  +
    where
       10507  +
        S: ::tower::Service<
       10508  +
                ::http::Request<Body>,
       10509  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       10510  +
                Error = ::std::convert::Infallible,
       10511  +
            > + Clone
       10512  +
            + Send
       10513  +
            + 'static,
       10514  +
        S::Future: Send + 'static,
       10515  +
    {
       10516  +
        self.malformed_timestamp_path_http_date =
       10517  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       10518  +
        self
       10519  +
    }
       10520  +
       10521  +
    /// Sets the [`MalformedTimestampQueryDefault`](crate::operation_shape::MalformedTimestampQueryDefault) operation.
       10522  +
    ///
       10523  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10524  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10525  +
    ///
       10526  +
    /// # Example
       10527  +
    ///
       10528  +
    /// ```no_run
       10529  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10530  +
    ///
       10531  +
    /// use rest_json_http0x::{input, output, error};
       10532  +
    ///
       10533  +
    /// async fn handler(input: input::MalformedTimestampQueryDefaultInput) -> Result<output::MalformedTimestampQueryDefaultOutput, error::MalformedTimestampQueryDefaultError> {
       10534  +
    ///     todo!()
       10535  +
    /// }
       10536  +
    ///
       10537  +
    /// let config = RestJsonConfig::builder().build();
       10538  +
    /// let app = RestJson::builder(config)
       10539  +
    ///     .malformed_timestamp_query_default(handler)
       10540  +
    ///     /* Set other handlers */
       10541  +
    ///     .build()
       10542  +
    ///     .unwrap();
       10543  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10544  +
    /// ```
       10545  +
    ///
       10546  +
                    pub fn malformed_timestamp_query_default<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       10547  +
                    where
       10548  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampQueryDefault, HandlerExtractors>,
       10549  +
       10550  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10551  +
                            RestJson<L>,
       10552  +
                            crate::operation_shape::MalformedTimestampQueryDefault,
       10553  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampQueryDefault, HandlerType>
       10554  +
                        >,
       10555  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10556  +
                            RestJson<L>,
       10557  +
                            crate::operation_shape::MalformedTimestampQueryDefault,
       10558  +
                            ModelPl::Output
       10559  +
                        >,
       10560  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10561  +
                            RestJson<L>,
       10562  +
                            crate::operation_shape::MalformedTimestampQueryDefault,
       10563  +
                            <
       10564  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10565  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10566  +
                                    RestJson<L>,
       10567  +
                                    crate::operation_shape::MalformedTimestampQueryDefault,
       10568  +
                                    ModelPl::Output
       10569  +
                                >
       10570  +
                            >::Output
       10571  +
                        >,
       10572  +
       10573  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10574  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10575  +
       10576  +
                    {
       10577  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10578  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10579  +
        let svc = crate::operation_shape::MalformedTimestampQueryDefault::from_handler(handler);
       10580  +
        let svc = self.model_plugin.apply(svc);
       10581  +
        let svc =
       10582  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10583  +
                .apply(svc);
       10584  +
        let svc = self.http_plugin.apply(svc);
       10585  +
        self.malformed_timestamp_query_default_custom(svc)
       10586  +
    }
       10587  +
       10588  +
    /// Sets the [`MalformedTimestampQueryDefault`](crate::operation_shape::MalformedTimestampQueryDefault) operation.
       10589  +
    ///
       10590  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10591  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10592  +
    ///
       10593  +
    /// # Example
       10594  +
    ///
       10595  +
    /// ```no_run
       10596  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10597  +
    ///
       10598  +
    /// use rest_json_http0x::{input, output, error};
       10599  +
    ///
       10600  +
    /// async fn handler(input: input::MalformedTimestampQueryDefaultInput) -> Result<output::MalformedTimestampQueryDefaultOutput, error::MalformedTimestampQueryDefaultError> {
       10601  +
    ///     todo!()
       10602  +
    /// }
       10603  +
    ///
       10604  +
    /// let config = RestJsonConfig::builder().build();
       10605  +
    /// let svc = ::tower::util::service_fn(handler);
       10606  +
    /// let app = RestJson::builder(config)
       10607  +
    ///     .malformed_timestamp_query_default_service(svc)
       10608  +
    ///     /* Set other handlers */
       10609  +
    ///     .build()
       10610  +
    ///     .unwrap();
       10611  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10612  +
    /// ```
       10613  +
    ///
       10614  +
                    pub fn malformed_timestamp_query_default_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       10615  +
                    where
       10616  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampQueryDefault, ServiceExtractors>,
       10617  +
       10618  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10619  +
                            RestJson<L>,
       10620  +
                            crate::operation_shape::MalformedTimestampQueryDefault,
       10621  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampQueryDefault, S>
       10622  +
                        >,
       10623  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10624  +
                            RestJson<L>,
       10625  +
                            crate::operation_shape::MalformedTimestampQueryDefault,
       10626  +
                            ModelPl::Output
       10627  +
                        >,
       10628  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10629  +
                            RestJson<L>,
       10630  +
                            crate::operation_shape::MalformedTimestampQueryDefault,
       10631  +
                            <
       10632  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10633  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10634  +
                                    RestJson<L>,
       10635  +
                                    crate::operation_shape::MalformedTimestampQueryDefault,
       10636  +
                                    ModelPl::Output
       10637  +
                                >
       10638  +
                            >::Output
       10639  +
                        >,
       10640  +
       10641  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10642  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10643  +
       10644  +
                    {
       10645  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10646  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10647  +
        let svc = crate::operation_shape::MalformedTimestampQueryDefault::from_service(service);
       10648  +
        let svc = self.model_plugin.apply(svc);
       10649  +
        let svc =
       10650  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10651  +
                .apply(svc);
       10652  +
        let svc = self.http_plugin.apply(svc);
       10653  +
        self.malformed_timestamp_query_default_custom(svc)
       10654  +
    }
       10655  +
       10656  +
    /// Sets the [`MalformedTimestampQueryDefault`](crate::operation_shape::MalformedTimestampQueryDefault) to a custom [`Service`](tower::Service).
       10657  +
    /// not constrained by the Smithy contract.
       10658  +
    fn malformed_timestamp_query_default_custom<S>(mut self, svc: S) -> Self
       10659  +
    where
       10660  +
        S: ::tower::Service<
       10661  +
                ::http::Request<Body>,
       10662  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       10663  +
                Error = ::std::convert::Infallible,
       10664  +
            > + Clone
       10665  +
            + Send
       10666  +
            + 'static,
       10667  +
        S::Future: Send + 'static,
       10668  +
    {
       10669  +
        self.malformed_timestamp_query_default =
       10670  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       10671  +
        self
       10672  +
    }
       10673  +
       10674  +
    /// Sets the [`MalformedTimestampQueryEpoch`](crate::operation_shape::MalformedTimestampQueryEpoch) operation.
       10675  +
    ///
       10676  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10677  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10678  +
    ///
       10679  +
    /// # Example
       10680  +
    ///
       10681  +
    /// ```no_run
       10682  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10683  +
    ///
       10684  +
    /// use rest_json_http0x::{input, output, error};
       10685  +
    ///
       10686  +
    /// async fn handler(input: input::MalformedTimestampQueryEpochInput) -> Result<output::MalformedTimestampQueryEpochOutput, error::MalformedTimestampQueryEpochError> {
       10687  +
    ///     todo!()
       10688  +
    /// }
       10689  +
    ///
       10690  +
    /// let config = RestJsonConfig::builder().build();
       10691  +
    /// let app = RestJson::builder(config)
       10692  +
    ///     .malformed_timestamp_query_epoch(handler)
       10693  +
    ///     /* Set other handlers */
       10694  +
    ///     .build()
       10695  +
    ///     .unwrap();
       10696  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10697  +
    /// ```
       10698  +
    ///
       10699  +
                    pub fn malformed_timestamp_query_epoch<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       10700  +
                    where
       10701  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampQueryEpoch, HandlerExtractors>,
       10702  +
       10703  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10704  +
                            RestJson<L>,
       10705  +
                            crate::operation_shape::MalformedTimestampQueryEpoch,
       10706  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampQueryEpoch, HandlerType>
       10707  +
                        >,
       10708  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10709  +
                            RestJson<L>,
       10710  +
                            crate::operation_shape::MalformedTimestampQueryEpoch,
       10711  +
                            ModelPl::Output
       10712  +
                        >,
       10713  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10714  +
                            RestJson<L>,
       10715  +
                            crate::operation_shape::MalformedTimestampQueryEpoch,
       10716  +
                            <
       10717  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10718  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10719  +
                                    RestJson<L>,
       10720  +
                                    crate::operation_shape::MalformedTimestampQueryEpoch,
       10721  +
                                    ModelPl::Output
       10722  +
                                >
       10723  +
                            >::Output
       10724  +
                        >,
       10725  +
       10726  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10727  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10728  +
       10729  +
                    {
       10730  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10731  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10732  +
        let svc = crate::operation_shape::MalformedTimestampQueryEpoch::from_handler(handler);
       10733  +
        let svc = self.model_plugin.apply(svc);
       10734  +
        let svc =
       10735  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10736  +
                .apply(svc);
       10737  +
        let svc = self.http_plugin.apply(svc);
       10738  +
        self.malformed_timestamp_query_epoch_custom(svc)
       10739  +
    }
       10740  +
       10741  +
    /// Sets the [`MalformedTimestampQueryEpoch`](crate::operation_shape::MalformedTimestampQueryEpoch) operation.
       10742  +
    ///
       10743  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10744  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10745  +
    ///
       10746  +
    /// # Example
       10747  +
    ///
       10748  +
    /// ```no_run
       10749  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10750  +
    ///
       10751  +
    /// use rest_json_http0x::{input, output, error};
       10752  +
    ///
       10753  +
    /// async fn handler(input: input::MalformedTimestampQueryEpochInput) -> Result<output::MalformedTimestampQueryEpochOutput, error::MalformedTimestampQueryEpochError> {
       10754  +
    ///     todo!()
       10755  +
    /// }
       10756  +
    ///
       10757  +
    /// let config = RestJsonConfig::builder().build();
       10758  +
    /// let svc = ::tower::util::service_fn(handler);
       10759  +
    /// let app = RestJson::builder(config)
       10760  +
    ///     .malformed_timestamp_query_epoch_service(svc)
       10761  +
    ///     /* Set other handlers */
       10762  +
    ///     .build()
       10763  +
    ///     .unwrap();
       10764  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10765  +
    /// ```
       10766  +
    ///
       10767  +
                    pub fn malformed_timestamp_query_epoch_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       10768  +
                    where
       10769  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampQueryEpoch, ServiceExtractors>,
       10770  +
       10771  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10772  +
                            RestJson<L>,
       10773  +
                            crate::operation_shape::MalformedTimestampQueryEpoch,
       10774  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampQueryEpoch, S>
       10775  +
                        >,
       10776  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10777  +
                            RestJson<L>,
       10778  +
                            crate::operation_shape::MalformedTimestampQueryEpoch,
       10779  +
                            ModelPl::Output
       10780  +
                        >,
       10781  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10782  +
                            RestJson<L>,
       10783  +
                            crate::operation_shape::MalformedTimestampQueryEpoch,
       10784  +
                            <
       10785  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10786  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10787  +
                                    RestJson<L>,
       10788  +
                                    crate::operation_shape::MalformedTimestampQueryEpoch,
       10789  +
                                    ModelPl::Output
       10790  +
                                >
       10791  +
                            >::Output
       10792  +
                        >,
       10793  +
       10794  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10795  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10796  +
       10797  +
                    {
       10798  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10799  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10800  +
        let svc = crate::operation_shape::MalformedTimestampQueryEpoch::from_service(service);
       10801  +
        let svc = self.model_plugin.apply(svc);
       10802  +
        let svc =
       10803  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10804  +
                .apply(svc);
       10805  +
        let svc = self.http_plugin.apply(svc);
       10806  +
        self.malformed_timestamp_query_epoch_custom(svc)
       10807  +
    }
       10808  +
       10809  +
    /// Sets the [`MalformedTimestampQueryEpoch`](crate::operation_shape::MalformedTimestampQueryEpoch) to a custom [`Service`](tower::Service).
       10810  +
    /// not constrained by the Smithy contract.
       10811  +
    fn malformed_timestamp_query_epoch_custom<S>(mut self, svc: S) -> Self
       10812  +
    where
       10813  +
        S: ::tower::Service<
       10814  +
                ::http::Request<Body>,
       10815  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       10816  +
                Error = ::std::convert::Infallible,
       10817  +
            > + Clone
       10818  +
            + Send
       10819  +
            + 'static,
       10820  +
        S::Future: Send + 'static,
       10821  +
    {
       10822  +
        self.malformed_timestamp_query_epoch =
       10823  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       10824  +
        self
       10825  +
    }
       10826  +
       10827  +
    /// Sets the [`MalformedTimestampQueryHttpDate`](crate::operation_shape::MalformedTimestampQueryHttpDate) operation.
       10828  +
    ///
       10829  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10830  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10831  +
    ///
       10832  +
    /// # Example
       10833  +
    ///
       10834  +
    /// ```no_run
       10835  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10836  +
    ///
       10837  +
    /// use rest_json_http0x::{input, output, error};
       10838  +
    ///
       10839  +
    /// async fn handler(input: input::MalformedTimestampQueryHttpDateInput) -> Result<output::MalformedTimestampQueryHttpDateOutput, error::MalformedTimestampQueryHttpDateError> {
       10840  +
    ///     todo!()
       10841  +
    /// }
       10842  +
    ///
       10843  +
    /// let config = RestJsonConfig::builder().build();
       10844  +
    /// let app = RestJson::builder(config)
       10845  +
    ///     .malformed_timestamp_query_http_date(handler)
       10846  +
    ///     /* Set other handlers */
       10847  +
    ///     .build()
       10848  +
    ///     .unwrap();
       10849  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10850  +
    /// ```
       10851  +
    ///
       10852  +
                    pub fn malformed_timestamp_query_http_date<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       10853  +
                    where
       10854  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedTimestampQueryHttpDate, HandlerExtractors>,
       10855  +
       10856  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10857  +
                            RestJson<L>,
       10858  +
                            crate::operation_shape::MalformedTimestampQueryHttpDate,
       10859  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedTimestampQueryHttpDate, HandlerType>
       10860  +
                        >,
       10861  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10862  +
                            RestJson<L>,
       10863  +
                            crate::operation_shape::MalformedTimestampQueryHttpDate,
       10864  +
                            ModelPl::Output
       10865  +
                        >,
       10866  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10867  +
                            RestJson<L>,
       10868  +
                            crate::operation_shape::MalformedTimestampQueryHttpDate,
       10869  +
                            <
       10870  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10871  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10872  +
                                    RestJson<L>,
       10873  +
                                    crate::operation_shape::MalformedTimestampQueryHttpDate,
       10874  +
                                    ModelPl::Output
       10875  +
                                >
       10876  +
                            >::Output
       10877  +
                        >,
       10878  +
       10879  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10880  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10881  +
       10882  +
                    {
       10883  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10884  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10885  +
        let svc = crate::operation_shape::MalformedTimestampQueryHttpDate::from_handler(handler);
       10886  +
        let svc = self.model_plugin.apply(svc);
       10887  +
        let svc =
       10888  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10889  +
                .apply(svc);
       10890  +
        let svc = self.http_plugin.apply(svc);
       10891  +
        self.malformed_timestamp_query_http_date_custom(svc)
       10892  +
    }
       10893  +
       10894  +
    /// Sets the [`MalformedTimestampQueryHttpDate`](crate::operation_shape::MalformedTimestampQueryHttpDate) operation.
       10895  +
    ///
       10896  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10897  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10898  +
    ///
       10899  +
    /// # Example
       10900  +
    ///
       10901  +
    /// ```no_run
       10902  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10903  +
    ///
       10904  +
    /// use rest_json_http0x::{input, output, error};
       10905  +
    ///
       10906  +
    /// async fn handler(input: input::MalformedTimestampQueryHttpDateInput) -> Result<output::MalformedTimestampQueryHttpDateOutput, error::MalformedTimestampQueryHttpDateError> {
       10907  +
    ///     todo!()
       10908  +
    /// }
       10909  +
    ///
       10910  +
    /// let config = RestJsonConfig::builder().build();
       10911  +
    /// let svc = ::tower::util::service_fn(handler);
       10912  +
    /// let app = RestJson::builder(config)
       10913  +
    ///     .malformed_timestamp_query_http_date_service(svc)
       10914  +
    ///     /* Set other handlers */
       10915  +
    ///     .build()
       10916  +
    ///     .unwrap();
       10917  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       10918  +
    /// ```
       10919  +
    ///
       10920  +
                    pub fn malformed_timestamp_query_http_date_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       10921  +
                    where
       10922  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedTimestampQueryHttpDate, ServiceExtractors>,
       10923  +
       10924  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10925  +
                            RestJson<L>,
       10926  +
                            crate::operation_shape::MalformedTimestampQueryHttpDate,
       10927  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedTimestampQueryHttpDate, S>
       10928  +
                        >,
       10929  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10930  +
                            RestJson<L>,
       10931  +
                            crate::operation_shape::MalformedTimestampQueryHttpDate,
       10932  +
                            ModelPl::Output
       10933  +
                        >,
       10934  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       10935  +
                            RestJson<L>,
       10936  +
                            crate::operation_shape::MalformedTimestampQueryHttpDate,
       10937  +
                            <
       10938  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       10939  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       10940  +
                                    RestJson<L>,
       10941  +
                                    crate::operation_shape::MalformedTimestampQueryHttpDate,
       10942  +
                                    ModelPl::Output
       10943  +
                                >
       10944  +
                            >::Output
       10945  +
                        >,
       10946  +
       10947  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       10948  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       10949  +
       10950  +
                    {
       10951  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       10952  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       10953  +
        let svc = crate::operation_shape::MalformedTimestampQueryHttpDate::from_service(service);
       10954  +
        let svc = self.model_plugin.apply(svc);
       10955  +
        let svc =
       10956  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       10957  +
                .apply(svc);
       10958  +
        let svc = self.http_plugin.apply(svc);
       10959  +
        self.malformed_timestamp_query_http_date_custom(svc)
       10960  +
    }
       10961  +
       10962  +
    /// Sets the [`MalformedTimestampQueryHttpDate`](crate::operation_shape::MalformedTimestampQueryHttpDate) to a custom [`Service`](tower::Service).
       10963  +
    /// not constrained by the Smithy contract.
       10964  +
    fn malformed_timestamp_query_http_date_custom<S>(mut self, svc: S) -> Self
       10965  +
    where
       10966  +
        S: ::tower::Service<
       10967  +
                ::http::Request<Body>,
       10968  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       10969  +
                Error = ::std::convert::Infallible,
       10970  +
            > + Clone
       10971  +
            + Send
       10972  +
            + 'static,
       10973  +
        S::Future: Send + 'static,
       10974  +
    {
       10975  +
        self.malformed_timestamp_query_http_date =
       10976  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       10977  +
        self
       10978  +
    }
       10979  +
       10980  +
    /// Sets the [`MalformedUnion`](crate::operation_shape::MalformedUnion) operation.
       10981  +
    ///
       10982  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       10983  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       10984  +
    ///
       10985  +
    /// # Example
       10986  +
    ///
       10987  +
    /// ```no_run
       10988  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       10989  +
    ///
       10990  +
    /// use rest_json_http0x::{input, output, error};
       10991  +
    ///
       10992  +
    /// async fn handler(input: input::MalformedUnionInput) -> output::MalformedUnionOutput {
       10993  +
    ///     todo!()
       10994  +
    /// }
       10995  +
    ///
       10996  +
    /// let config = RestJsonConfig::builder().build();
       10997  +
    /// let app = RestJson::builder(config)
       10998  +
    ///     .malformed_union(handler)
       10999  +
    ///     /* Set other handlers */
       11000  +
    ///     .build()
       11001  +
    ///     .unwrap();
       11002  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11003  +
    /// ```
       11004  +
    ///
       11005  +
                    pub fn malformed_union<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       11006  +
                    where
       11007  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MalformedUnion, HandlerExtractors>,
       11008  +
       11009  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11010  +
                            RestJson<L>,
       11011  +
                            crate::operation_shape::MalformedUnion,
       11012  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MalformedUnion, HandlerType>
       11013  +
                        >,
       11014  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11015  +
                            RestJson<L>,
       11016  +
                            crate::operation_shape::MalformedUnion,
       11017  +
                            ModelPl::Output
       11018  +
                        >,
       11019  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11020  +
                            RestJson<L>,
       11021  +
                            crate::operation_shape::MalformedUnion,
       11022  +
                            <
       11023  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11024  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11025  +
                                    RestJson<L>,
       11026  +
                                    crate::operation_shape::MalformedUnion,
       11027  +
                                    ModelPl::Output
       11028  +
                                >
       11029  +
                            >::Output
       11030  +
                        >,
       11031  +
       11032  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11033  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11034  +
       11035  +
                    {
       11036  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11037  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11038  +
        let svc = crate::operation_shape::MalformedUnion::from_handler(handler);
       11039  +
        let svc = self.model_plugin.apply(svc);
       11040  +
        let svc =
       11041  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11042  +
                .apply(svc);
       11043  +
        let svc = self.http_plugin.apply(svc);
       11044  +
        self.malformed_union_custom(svc)
       11045  +
    }
       11046  +
       11047  +
    /// Sets the [`MalformedUnion`](crate::operation_shape::MalformedUnion) operation.
       11048  +
    ///
       11049  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11050  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11051  +
    ///
       11052  +
    /// # Example
       11053  +
    ///
       11054  +
    /// ```no_run
       11055  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11056  +
    ///
       11057  +
    /// use rest_json_http0x::{input, output, error};
       11058  +
    ///
       11059  +
    /// async fn handler(input: input::MalformedUnionInput) -> Result<output::MalformedUnionOutput, std::convert::Infallible> {
       11060  +
    ///     todo!()
       11061  +
    /// }
       11062  +
    ///
       11063  +
    /// let config = RestJsonConfig::builder().build();
       11064  +
    /// let svc = ::tower::util::service_fn(handler);
       11065  +
    /// let app = RestJson::builder(config)
       11066  +
    ///     .malformed_union_service(svc)
       11067  +
    ///     /* Set other handlers */
       11068  +
    ///     .build()
       11069  +
    ///     .unwrap();
       11070  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11071  +
    /// ```
       11072  +
    ///
       11073  +
                    pub fn malformed_union_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       11074  +
                    where
       11075  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MalformedUnion, ServiceExtractors>,
       11076  +
       11077  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11078  +
                            RestJson<L>,
       11079  +
                            crate::operation_shape::MalformedUnion,
       11080  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MalformedUnion, S>
       11081  +
                        >,
       11082  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11083  +
                            RestJson<L>,
       11084  +
                            crate::operation_shape::MalformedUnion,
       11085  +
                            ModelPl::Output
       11086  +
                        >,
       11087  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11088  +
                            RestJson<L>,
       11089  +
                            crate::operation_shape::MalformedUnion,
       11090  +
                            <
       11091  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11092  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11093  +
                                    RestJson<L>,
       11094  +
                                    crate::operation_shape::MalformedUnion,
       11095  +
                                    ModelPl::Output
       11096  +
                                >
       11097  +
                            >::Output
       11098  +
                        >,
       11099  +
       11100  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11101  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11102  +
       11103  +
                    {
       11104  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11105  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11106  +
        let svc = crate::operation_shape::MalformedUnion::from_service(service);
       11107  +
        let svc = self.model_plugin.apply(svc);
       11108  +
        let svc =
       11109  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11110  +
                .apply(svc);
       11111  +
        let svc = self.http_plugin.apply(svc);
       11112  +
        self.malformed_union_custom(svc)
       11113  +
    }
       11114  +
       11115  +
    /// Sets the [`MalformedUnion`](crate::operation_shape::MalformedUnion) to a custom [`Service`](tower::Service).
       11116  +
    /// not constrained by the Smithy contract.
       11117  +
    fn malformed_union_custom<S>(mut self, svc: S) -> Self
       11118  +
    where
       11119  +
        S: ::tower::Service<
       11120  +
                ::http::Request<Body>,
       11121  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       11122  +
                Error = ::std::convert::Infallible,
       11123  +
            > + Clone
       11124  +
            + Send
       11125  +
            + 'static,
       11126  +
        S::Future: Send + 'static,
       11127  +
    {
       11128  +
        self.malformed_union = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       11129  +
        self
       11130  +
    }
       11131  +
       11132  +
    /// Sets the [`MediaTypeHeader`](crate::operation_shape::MediaTypeHeader) operation.
       11133  +
    ///
       11134  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11135  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11136  +
    ///
       11137  +
    /// # Example
       11138  +
    ///
       11139  +
    /// ```no_run
       11140  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11141  +
    ///
       11142  +
    /// use rest_json_http0x::{input, output, error};
       11143  +
    ///
       11144  +
    /// async fn handler(input: input::MediaTypeHeaderInput) -> output::MediaTypeHeaderOutput {
       11145  +
    ///     todo!()
       11146  +
    /// }
       11147  +
    ///
       11148  +
    /// let config = RestJsonConfig::builder().build();
       11149  +
    /// let app = RestJson::builder(config)
       11150  +
    ///     .media_type_header(handler)
       11151  +
    ///     /* Set other handlers */
       11152  +
    ///     .build()
       11153  +
    ///     .unwrap();
       11154  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11155  +
    /// ```
       11156  +
    ///
       11157  +
                    pub fn media_type_header<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       11158  +
                    where
       11159  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::MediaTypeHeader, HandlerExtractors>,
       11160  +
       11161  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11162  +
                            RestJson<L>,
       11163  +
                            crate::operation_shape::MediaTypeHeader,
       11164  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::MediaTypeHeader, HandlerType>
       11165  +
                        >,
       11166  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11167  +
                            RestJson<L>,
       11168  +
                            crate::operation_shape::MediaTypeHeader,
       11169  +
                            ModelPl::Output
       11170  +
                        >,
       11171  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11172  +
                            RestJson<L>,
       11173  +
                            crate::operation_shape::MediaTypeHeader,
       11174  +
                            <
       11175  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11176  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11177  +
                                    RestJson<L>,
       11178  +
                                    crate::operation_shape::MediaTypeHeader,
       11179  +
                                    ModelPl::Output
       11180  +
                                >
       11181  +
                            >::Output
       11182  +
                        >,
       11183  +
       11184  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11185  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11186  +
       11187  +
                    {
       11188  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11189  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11190  +
        let svc = crate::operation_shape::MediaTypeHeader::from_handler(handler);
       11191  +
        let svc = self.model_plugin.apply(svc);
       11192  +
        let svc =
       11193  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11194  +
                .apply(svc);
       11195  +
        let svc = self.http_plugin.apply(svc);
       11196  +
        self.media_type_header_custom(svc)
       11197  +
    }
       11198  +
       11199  +
    /// Sets the [`MediaTypeHeader`](crate::operation_shape::MediaTypeHeader) operation.
       11200  +
    ///
       11201  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11202  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11203  +
    ///
       11204  +
    /// # Example
       11205  +
    ///
       11206  +
    /// ```no_run
       11207  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11208  +
    ///
       11209  +
    /// use rest_json_http0x::{input, output, error};
       11210  +
    ///
       11211  +
    /// async fn handler(input: input::MediaTypeHeaderInput) -> Result<output::MediaTypeHeaderOutput, std::convert::Infallible> {
       11212  +
    ///     todo!()
       11213  +
    /// }
       11214  +
    ///
       11215  +
    /// let config = RestJsonConfig::builder().build();
       11216  +
    /// let svc = ::tower::util::service_fn(handler);
       11217  +
    /// let app = RestJson::builder(config)
       11218  +
    ///     .media_type_header_service(svc)
       11219  +
    ///     /* Set other handlers */
       11220  +
    ///     .build()
       11221  +
    ///     .unwrap();
       11222  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11223  +
    /// ```
       11224  +
    ///
       11225  +
                    pub fn media_type_header_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       11226  +
                    where
       11227  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::MediaTypeHeader, ServiceExtractors>,
       11228  +
       11229  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11230  +
                            RestJson<L>,
       11231  +
                            crate::operation_shape::MediaTypeHeader,
       11232  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::MediaTypeHeader, S>
       11233  +
                        >,
       11234  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11235  +
                            RestJson<L>,
       11236  +
                            crate::operation_shape::MediaTypeHeader,
       11237  +
                            ModelPl::Output
       11238  +
                        >,
       11239  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11240  +
                            RestJson<L>,
       11241  +
                            crate::operation_shape::MediaTypeHeader,
       11242  +
                            <
       11243  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11244  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11245  +
                                    RestJson<L>,
       11246  +
                                    crate::operation_shape::MediaTypeHeader,
       11247  +
                                    ModelPl::Output
       11248  +
                                >
       11249  +
                            >::Output
       11250  +
                        >,
       11251  +
       11252  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11253  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11254  +
       11255  +
                    {
       11256  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11257  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11258  +
        let svc = crate::operation_shape::MediaTypeHeader::from_service(service);
       11259  +
        let svc = self.model_plugin.apply(svc);
       11260  +
        let svc =
       11261  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11262  +
                .apply(svc);
       11263  +
        let svc = self.http_plugin.apply(svc);
       11264  +
        self.media_type_header_custom(svc)
       11265  +
    }
       11266  +
       11267  +
    /// Sets the [`MediaTypeHeader`](crate::operation_shape::MediaTypeHeader) to a custom [`Service`](tower::Service).
       11268  +
    /// not constrained by the Smithy contract.
       11269  +
    fn media_type_header_custom<S>(mut self, svc: S) -> Self
       11270  +
    where
       11271  +
        S: ::tower::Service<
       11272  +
                ::http::Request<Body>,
       11273  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       11274  +
                Error = ::std::convert::Infallible,
       11275  +
            > + Clone
       11276  +
            + Send
       11277  +
            + 'static,
       11278  +
        S::Future: Send + 'static,
       11279  +
    {
       11280  +
        self.media_type_header = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       11281  +
        self
       11282  +
    }
       11283  +
       11284  +
    /// Sets the [`NoInputAndNoOutput`](crate::operation_shape::NoInputAndNoOutput) operation.
       11285  +
    ///
       11286  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11287  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11288  +
    ///
       11289  +
    /// # Example
       11290  +
    ///
       11291  +
    /// ```no_run
       11292  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11293  +
    ///
       11294  +
    /// use rest_json_http0x::{input, output, error};
       11295  +
    ///
       11296  +
    /// async fn handler(input: input::NoInputAndNoOutputInput) -> output::NoInputAndNoOutputOutput {
       11297  +
    ///     todo!()
       11298  +
    /// }
       11299  +
    ///
       11300  +
    /// let config = RestJsonConfig::builder().build();
       11301  +
    /// let app = RestJson::builder(config)
       11302  +
    ///     .no_input_and_no_output(handler)
       11303  +
    ///     /* Set other handlers */
       11304  +
    ///     .build()
       11305  +
    ///     .unwrap();
       11306  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11307  +
    /// ```
       11308  +
    ///
       11309  +
                    pub fn no_input_and_no_output<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       11310  +
                    where
       11311  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::NoInputAndNoOutput, HandlerExtractors>,
       11312  +
       11313  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11314  +
                            RestJson<L>,
       11315  +
                            crate::operation_shape::NoInputAndNoOutput,
       11316  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::NoInputAndNoOutput, HandlerType>
       11317  +
                        >,
       11318  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11319  +
                            RestJson<L>,
       11320  +
                            crate::operation_shape::NoInputAndNoOutput,
       11321  +
                            ModelPl::Output
       11322  +
                        >,
       11323  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11324  +
                            RestJson<L>,
       11325  +
                            crate::operation_shape::NoInputAndNoOutput,
       11326  +
                            <
       11327  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11328  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11329  +
                                    RestJson<L>,
       11330  +
                                    crate::operation_shape::NoInputAndNoOutput,
       11331  +
                                    ModelPl::Output
       11332  +
                                >
       11333  +
                            >::Output
       11334  +
                        >,
       11335  +
       11336  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11337  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11338  +
       11339  +
                    {
       11340  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11341  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11342  +
        let svc = crate::operation_shape::NoInputAndNoOutput::from_handler(handler);
       11343  +
        let svc = self.model_plugin.apply(svc);
       11344  +
        let svc =
       11345  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11346  +
                .apply(svc);
       11347  +
        let svc = self.http_plugin.apply(svc);
       11348  +
        self.no_input_and_no_output_custom(svc)
       11349  +
    }
       11350  +
       11351  +
    /// Sets the [`NoInputAndNoOutput`](crate::operation_shape::NoInputAndNoOutput) operation.
       11352  +
    ///
       11353  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11354  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11355  +
    ///
       11356  +
    /// # Example
       11357  +
    ///
       11358  +
    /// ```no_run
       11359  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11360  +
    ///
       11361  +
    /// use rest_json_http0x::{input, output, error};
       11362  +
    ///
       11363  +
    /// async fn handler(input: input::NoInputAndNoOutputInput) -> Result<output::NoInputAndNoOutputOutput, std::convert::Infallible> {
       11364  +
    ///     todo!()
       11365  +
    /// }
       11366  +
    ///
       11367  +
    /// let config = RestJsonConfig::builder().build();
       11368  +
    /// let svc = ::tower::util::service_fn(handler);
       11369  +
    /// let app = RestJson::builder(config)
       11370  +
    ///     .no_input_and_no_output_service(svc)
       11371  +
    ///     /* Set other handlers */
       11372  +
    ///     .build()
       11373  +
    ///     .unwrap();
       11374  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11375  +
    /// ```
       11376  +
    ///
       11377  +
                    pub fn no_input_and_no_output_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       11378  +
                    where
       11379  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::NoInputAndNoOutput, ServiceExtractors>,
       11380  +
       11381  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11382  +
                            RestJson<L>,
       11383  +
                            crate::operation_shape::NoInputAndNoOutput,
       11384  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::NoInputAndNoOutput, S>
       11385  +
                        >,
       11386  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11387  +
                            RestJson<L>,
       11388  +
                            crate::operation_shape::NoInputAndNoOutput,
       11389  +
                            ModelPl::Output
       11390  +
                        >,
       11391  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11392  +
                            RestJson<L>,
       11393  +
                            crate::operation_shape::NoInputAndNoOutput,
       11394  +
                            <
       11395  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11396  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11397  +
                                    RestJson<L>,
       11398  +
                                    crate::operation_shape::NoInputAndNoOutput,
       11399  +
                                    ModelPl::Output
       11400  +
                                >
       11401  +
                            >::Output
       11402  +
                        >,
       11403  +
       11404  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11405  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11406  +
       11407  +
                    {
       11408  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11409  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11410  +
        let svc = crate::operation_shape::NoInputAndNoOutput::from_service(service);
       11411  +
        let svc = self.model_plugin.apply(svc);
       11412  +
        let svc =
       11413  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11414  +
                .apply(svc);
       11415  +
        let svc = self.http_plugin.apply(svc);
       11416  +
        self.no_input_and_no_output_custom(svc)
       11417  +
    }
       11418  +
       11419  +
    /// Sets the [`NoInputAndNoOutput`](crate::operation_shape::NoInputAndNoOutput) to a custom [`Service`](tower::Service).
       11420  +
    /// not constrained by the Smithy contract.
       11421  +
    fn no_input_and_no_output_custom<S>(mut self, svc: S) -> Self
       11422  +
    where
       11423  +
        S: ::tower::Service<
       11424  +
                ::http::Request<Body>,
       11425  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       11426  +
                Error = ::std::convert::Infallible,
       11427  +
            > + Clone
       11428  +
            + Send
       11429  +
            + 'static,
       11430  +
        S::Future: Send + 'static,
       11431  +
    {
       11432  +
        self.no_input_and_no_output =
       11433  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       11434  +
        self
       11435  +
    }
       11436  +
       11437  +
    /// Sets the [`NoInputAndOutput`](crate::operation_shape::NoInputAndOutput) operation.
       11438  +
    ///
       11439  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11440  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11441  +
    ///
       11442  +
    /// # Example
       11443  +
    ///
       11444  +
    /// ```no_run
       11445  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11446  +
    ///
       11447  +
    /// use rest_json_http0x::{input, output, error};
       11448  +
    ///
       11449  +
    /// async fn handler(input: input::NoInputAndOutputInput) -> output::NoInputAndOutputOutput {
       11450  +
    ///     todo!()
       11451  +
    /// }
       11452  +
    ///
       11453  +
    /// let config = RestJsonConfig::builder().build();
       11454  +
    /// let app = RestJson::builder(config)
       11455  +
    ///     .no_input_and_output(handler)
       11456  +
    ///     /* Set other handlers */
       11457  +
    ///     .build()
       11458  +
    ///     .unwrap();
       11459  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11460  +
    /// ```
       11461  +
    ///
       11462  +
                    pub fn no_input_and_output<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       11463  +
                    where
       11464  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::NoInputAndOutput, HandlerExtractors>,
       11465  +
       11466  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11467  +
                            RestJson<L>,
       11468  +
                            crate::operation_shape::NoInputAndOutput,
       11469  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::NoInputAndOutput, HandlerType>
       11470  +
                        >,
       11471  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11472  +
                            RestJson<L>,
       11473  +
                            crate::operation_shape::NoInputAndOutput,
       11474  +
                            ModelPl::Output
       11475  +
                        >,
       11476  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11477  +
                            RestJson<L>,
       11478  +
                            crate::operation_shape::NoInputAndOutput,
       11479  +
                            <
       11480  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11481  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11482  +
                                    RestJson<L>,
       11483  +
                                    crate::operation_shape::NoInputAndOutput,
       11484  +
                                    ModelPl::Output
       11485  +
                                >
       11486  +
                            >::Output
       11487  +
                        >,
       11488  +
       11489  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11490  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11491  +
       11492  +
                    {
       11493  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11494  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11495  +
        let svc = crate::operation_shape::NoInputAndOutput::from_handler(handler);
       11496  +
        let svc = self.model_plugin.apply(svc);
       11497  +
        let svc =
       11498  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11499  +
                .apply(svc);
       11500  +
        let svc = self.http_plugin.apply(svc);
       11501  +
        self.no_input_and_output_custom(svc)
       11502  +
    }
       11503  +
       11504  +
    /// Sets the [`NoInputAndOutput`](crate::operation_shape::NoInputAndOutput) operation.
       11505  +
    ///
       11506  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11507  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11508  +
    ///
       11509  +
    /// # Example
       11510  +
    ///
       11511  +
    /// ```no_run
       11512  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11513  +
    ///
       11514  +
    /// use rest_json_http0x::{input, output, error};
       11515  +
    ///
       11516  +
    /// async fn handler(input: input::NoInputAndOutputInput) -> Result<output::NoInputAndOutputOutput, std::convert::Infallible> {
       11517  +
    ///     todo!()
       11518  +
    /// }
       11519  +
    ///
       11520  +
    /// let config = RestJsonConfig::builder().build();
       11521  +
    /// let svc = ::tower::util::service_fn(handler);
       11522  +
    /// let app = RestJson::builder(config)
       11523  +
    ///     .no_input_and_output_service(svc)
       11524  +
    ///     /* Set other handlers */
       11525  +
    ///     .build()
       11526  +
    ///     .unwrap();
       11527  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11528  +
    /// ```
       11529  +
    ///
       11530  +
                    pub fn no_input_and_output_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       11531  +
                    where
       11532  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::NoInputAndOutput, ServiceExtractors>,
       11533  +
       11534  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11535  +
                            RestJson<L>,
       11536  +
                            crate::operation_shape::NoInputAndOutput,
       11537  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::NoInputAndOutput, S>
       11538  +
                        >,
       11539  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11540  +
                            RestJson<L>,
       11541  +
                            crate::operation_shape::NoInputAndOutput,
       11542  +
                            ModelPl::Output
       11543  +
                        >,
       11544  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11545  +
                            RestJson<L>,
       11546  +
                            crate::operation_shape::NoInputAndOutput,
       11547  +
                            <
       11548  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11549  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11550  +
                                    RestJson<L>,
       11551  +
                                    crate::operation_shape::NoInputAndOutput,
       11552  +
                                    ModelPl::Output
       11553  +
                                >
       11554  +
                            >::Output
       11555  +
                        >,
       11556  +
       11557  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11558  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11559  +
       11560  +
                    {
       11561  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11562  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11563  +
        let svc = crate::operation_shape::NoInputAndOutput::from_service(service);
       11564  +
        let svc = self.model_plugin.apply(svc);
       11565  +
        let svc =
       11566  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11567  +
                .apply(svc);
       11568  +
        let svc = self.http_plugin.apply(svc);
       11569  +
        self.no_input_and_output_custom(svc)
       11570  +
    }
       11571  +
       11572  +
    /// Sets the [`NoInputAndOutput`](crate::operation_shape::NoInputAndOutput) to a custom [`Service`](tower::Service).
       11573  +
    /// not constrained by the Smithy contract.
       11574  +
    fn no_input_and_output_custom<S>(mut self, svc: S) -> Self
       11575  +
    where
       11576  +
        S: ::tower::Service<
       11577  +
                ::http::Request<Body>,
       11578  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       11579  +
                Error = ::std::convert::Infallible,
       11580  +
            > + Clone
       11581  +
            + Send
       11582  +
            + 'static,
       11583  +
        S::Future: Send + 'static,
       11584  +
    {
       11585  +
        self.no_input_and_output = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       11586  +
        self
       11587  +
    }
       11588  +
       11589  +
    /// Sets the [`NullAndEmptyHeadersClient`](crate::operation_shape::NullAndEmptyHeadersClient) operation.
       11590  +
    ///
       11591  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11592  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11593  +
    ///
       11594  +
    /// # Example
       11595  +
    ///
       11596  +
    /// ```no_run
       11597  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11598  +
    ///
       11599  +
    /// use rest_json_http0x::{input, output, error};
       11600  +
    ///
       11601  +
    /// async fn handler(input: input::NullAndEmptyHeadersClientInput) -> output::NullAndEmptyHeadersClientOutput {
       11602  +
    ///     todo!()
       11603  +
    /// }
       11604  +
    ///
       11605  +
    /// let config = RestJsonConfig::builder().build();
       11606  +
    /// let app = RestJson::builder(config)
       11607  +
    ///     .null_and_empty_headers_client(handler)
       11608  +
    ///     /* Set other handlers */
       11609  +
    ///     .build()
       11610  +
    ///     .unwrap();
       11611  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11612  +
    /// ```
       11613  +
    ///
       11614  +
                    pub fn null_and_empty_headers_client<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       11615  +
                    where
       11616  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::NullAndEmptyHeadersClient, HandlerExtractors>,
       11617  +
       11618  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11619  +
                            RestJson<L>,
       11620  +
                            crate::operation_shape::NullAndEmptyHeadersClient,
       11621  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::NullAndEmptyHeadersClient, HandlerType>
       11622  +
                        >,
       11623  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11624  +
                            RestJson<L>,
       11625  +
                            crate::operation_shape::NullAndEmptyHeadersClient,
       11626  +
                            ModelPl::Output
       11627  +
                        >,
       11628  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11629  +
                            RestJson<L>,
       11630  +
                            crate::operation_shape::NullAndEmptyHeadersClient,
       11631  +
                            <
       11632  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11633  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11634  +
                                    RestJson<L>,
       11635  +
                                    crate::operation_shape::NullAndEmptyHeadersClient,
       11636  +
                                    ModelPl::Output
       11637  +
                                >
       11638  +
                            >::Output
       11639  +
                        >,
       11640  +
       11641  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11642  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11643  +
       11644  +
                    {
       11645  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11646  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11647  +
        let svc = crate::operation_shape::NullAndEmptyHeadersClient::from_handler(handler);
       11648  +
        let svc = self.model_plugin.apply(svc);
       11649  +
        let svc =
       11650  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11651  +
                .apply(svc);
       11652  +
        let svc = self.http_plugin.apply(svc);
       11653  +
        self.null_and_empty_headers_client_custom(svc)
       11654  +
    }
       11655  +
       11656  +
    /// Sets the [`NullAndEmptyHeadersClient`](crate::operation_shape::NullAndEmptyHeadersClient) operation.
       11657  +
    ///
       11658  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11659  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11660  +
    ///
       11661  +
    /// # Example
       11662  +
    ///
       11663  +
    /// ```no_run
       11664  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11665  +
    ///
       11666  +
    /// use rest_json_http0x::{input, output, error};
       11667  +
    ///
       11668  +
    /// async fn handler(input: input::NullAndEmptyHeadersClientInput) -> Result<output::NullAndEmptyHeadersClientOutput, std::convert::Infallible> {
       11669  +
    ///     todo!()
       11670  +
    /// }
       11671  +
    ///
       11672  +
    /// let config = RestJsonConfig::builder().build();
       11673  +
    /// let svc = ::tower::util::service_fn(handler);
       11674  +
    /// let app = RestJson::builder(config)
       11675  +
    ///     .null_and_empty_headers_client_service(svc)
       11676  +
    ///     /* Set other handlers */
       11677  +
    ///     .build()
       11678  +
    ///     .unwrap();
       11679  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11680  +
    /// ```
       11681  +
    ///
       11682  +
                    pub fn null_and_empty_headers_client_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       11683  +
                    where
       11684  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::NullAndEmptyHeadersClient, ServiceExtractors>,
       11685  +
       11686  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11687  +
                            RestJson<L>,
       11688  +
                            crate::operation_shape::NullAndEmptyHeadersClient,
       11689  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::NullAndEmptyHeadersClient, S>
       11690  +
                        >,
       11691  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11692  +
                            RestJson<L>,
       11693  +
                            crate::operation_shape::NullAndEmptyHeadersClient,
       11694  +
                            ModelPl::Output
       11695  +
                        >,
       11696  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11697  +
                            RestJson<L>,
       11698  +
                            crate::operation_shape::NullAndEmptyHeadersClient,
       11699  +
                            <
       11700  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11701  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11702  +
                                    RestJson<L>,
       11703  +
                                    crate::operation_shape::NullAndEmptyHeadersClient,
       11704  +
                                    ModelPl::Output
       11705  +
                                >
       11706  +
                            >::Output
       11707  +
                        >,
       11708  +
       11709  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11710  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11711  +
       11712  +
                    {
       11713  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11714  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11715  +
        let svc = crate::operation_shape::NullAndEmptyHeadersClient::from_service(service);
       11716  +
        let svc = self.model_plugin.apply(svc);
       11717  +
        let svc =
       11718  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11719  +
                .apply(svc);
       11720  +
        let svc = self.http_plugin.apply(svc);
       11721  +
        self.null_and_empty_headers_client_custom(svc)
       11722  +
    }
       11723  +
       11724  +
    /// Sets the [`NullAndEmptyHeadersClient`](crate::operation_shape::NullAndEmptyHeadersClient) to a custom [`Service`](tower::Service).
       11725  +
    /// not constrained by the Smithy contract.
       11726  +
    fn null_and_empty_headers_client_custom<S>(mut self, svc: S) -> Self
       11727  +
    where
       11728  +
        S: ::tower::Service<
       11729  +
                ::http::Request<Body>,
       11730  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       11731  +
                Error = ::std::convert::Infallible,
       11732  +
            > + Clone
       11733  +
            + Send
       11734  +
            + 'static,
       11735  +
        S::Future: Send + 'static,
       11736  +
    {
       11737  +
        self.null_and_empty_headers_client =
       11738  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       11739  +
        self
       11740  +
    }
       11741  +
       11742  +
    /// Sets the [`NullAndEmptyHeadersServer`](crate::operation_shape::NullAndEmptyHeadersServer) operation.
       11743  +
    ///
       11744  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11745  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11746  +
    ///
       11747  +
    /// # Example
       11748  +
    ///
       11749  +
    /// ```no_run
       11750  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11751  +
    ///
       11752  +
    /// use rest_json_http0x::{input, output, error};
       11753  +
    ///
       11754  +
    /// async fn handler(input: input::NullAndEmptyHeadersServerInput) -> output::NullAndEmptyHeadersServerOutput {
       11755  +
    ///     todo!()
       11756  +
    /// }
       11757  +
    ///
       11758  +
    /// let config = RestJsonConfig::builder().build();
       11759  +
    /// let app = RestJson::builder(config)
       11760  +
    ///     .null_and_empty_headers_server(handler)
       11761  +
    ///     /* Set other handlers */
       11762  +
    ///     .build()
       11763  +
    ///     .unwrap();
       11764  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11765  +
    /// ```
       11766  +
    ///
       11767  +
                    pub fn null_and_empty_headers_server<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       11768  +
                    where
       11769  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::NullAndEmptyHeadersServer, HandlerExtractors>,
       11770  +
       11771  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11772  +
                            RestJson<L>,
       11773  +
                            crate::operation_shape::NullAndEmptyHeadersServer,
       11774  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::NullAndEmptyHeadersServer, HandlerType>
       11775  +
                        >,
       11776  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11777  +
                            RestJson<L>,
       11778  +
                            crate::operation_shape::NullAndEmptyHeadersServer,
       11779  +
                            ModelPl::Output
       11780  +
                        >,
       11781  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11782  +
                            RestJson<L>,
       11783  +
                            crate::operation_shape::NullAndEmptyHeadersServer,
       11784  +
                            <
       11785  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11786  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11787  +
                                    RestJson<L>,
       11788  +
                                    crate::operation_shape::NullAndEmptyHeadersServer,
       11789  +
                                    ModelPl::Output
       11790  +
                                >
       11791  +
                            >::Output
       11792  +
                        >,
       11793  +
       11794  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11795  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11796  +
       11797  +
                    {
       11798  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11799  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11800  +
        let svc = crate::operation_shape::NullAndEmptyHeadersServer::from_handler(handler);
       11801  +
        let svc = self.model_plugin.apply(svc);
       11802  +
        let svc =
       11803  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11804  +
                .apply(svc);
       11805  +
        let svc = self.http_plugin.apply(svc);
       11806  +
        self.null_and_empty_headers_server_custom(svc)
       11807  +
    }
       11808  +
       11809  +
    /// Sets the [`NullAndEmptyHeadersServer`](crate::operation_shape::NullAndEmptyHeadersServer) operation.
       11810  +
    ///
       11811  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11812  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11813  +
    ///
       11814  +
    /// # Example
       11815  +
    ///
       11816  +
    /// ```no_run
       11817  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11818  +
    ///
       11819  +
    /// use rest_json_http0x::{input, output, error};
       11820  +
    ///
       11821  +
    /// async fn handler(input: input::NullAndEmptyHeadersServerInput) -> Result<output::NullAndEmptyHeadersServerOutput, std::convert::Infallible> {
       11822  +
    ///     todo!()
       11823  +
    /// }
       11824  +
    ///
       11825  +
    /// let config = RestJsonConfig::builder().build();
       11826  +
    /// let svc = ::tower::util::service_fn(handler);
       11827  +
    /// let app = RestJson::builder(config)
       11828  +
    ///     .null_and_empty_headers_server_service(svc)
       11829  +
    ///     /* Set other handlers */
       11830  +
    ///     .build()
       11831  +
    ///     .unwrap();
       11832  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11833  +
    /// ```
       11834  +
    ///
       11835  +
                    pub fn null_and_empty_headers_server_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       11836  +
                    where
       11837  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::NullAndEmptyHeadersServer, ServiceExtractors>,
       11838  +
       11839  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11840  +
                            RestJson<L>,
       11841  +
                            crate::operation_shape::NullAndEmptyHeadersServer,
       11842  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::NullAndEmptyHeadersServer, S>
       11843  +
                        >,
       11844  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11845  +
                            RestJson<L>,
       11846  +
                            crate::operation_shape::NullAndEmptyHeadersServer,
       11847  +
                            ModelPl::Output
       11848  +
                        >,
       11849  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11850  +
                            RestJson<L>,
       11851  +
                            crate::operation_shape::NullAndEmptyHeadersServer,
       11852  +
                            <
       11853  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11854  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11855  +
                                    RestJson<L>,
       11856  +
                                    crate::operation_shape::NullAndEmptyHeadersServer,
       11857  +
                                    ModelPl::Output
       11858  +
                                >
       11859  +
                            >::Output
       11860  +
                        >,
       11861  +
       11862  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11863  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11864  +
       11865  +
                    {
       11866  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11867  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11868  +
        let svc = crate::operation_shape::NullAndEmptyHeadersServer::from_service(service);
       11869  +
        let svc = self.model_plugin.apply(svc);
       11870  +
        let svc =
       11871  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11872  +
                .apply(svc);
       11873  +
        let svc = self.http_plugin.apply(svc);
       11874  +
        self.null_and_empty_headers_server_custom(svc)
       11875  +
    }
       11876  +
       11877  +
    /// Sets the [`NullAndEmptyHeadersServer`](crate::operation_shape::NullAndEmptyHeadersServer) to a custom [`Service`](tower::Service).
       11878  +
    /// not constrained by the Smithy contract.
       11879  +
    fn null_and_empty_headers_server_custom<S>(mut self, svc: S) -> Self
       11880  +
    where
       11881  +
        S: ::tower::Service<
       11882  +
                ::http::Request<Body>,
       11883  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       11884  +
                Error = ::std::convert::Infallible,
       11885  +
            > + Clone
       11886  +
            + Send
       11887  +
            + 'static,
       11888  +
        S::Future: Send + 'static,
       11889  +
    {
       11890  +
        self.null_and_empty_headers_server =
       11891  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       11892  +
        self
       11893  +
    }
       11894  +
       11895  +
    /// Sets the [`OmitsNullSerializesEmptyString`](crate::operation_shape::OmitsNullSerializesEmptyString) operation.
       11896  +
    ///
       11897  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11898  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11899  +
    ///
       11900  +
    /// # Example
       11901  +
    ///
       11902  +
    /// ```no_run
       11903  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11904  +
    ///
       11905  +
    /// use rest_json_http0x::{input, output, error};
       11906  +
    ///
       11907  +
    /// async fn handler(input: input::OmitsNullSerializesEmptyStringInput) -> output::OmitsNullSerializesEmptyStringOutput {
       11908  +
    ///     todo!()
       11909  +
    /// }
       11910  +
    ///
       11911  +
    /// let config = RestJsonConfig::builder().build();
       11912  +
    /// let app = RestJson::builder(config)
       11913  +
    ///     .omits_null_serializes_empty_string(handler)
       11914  +
    ///     /* Set other handlers */
       11915  +
    ///     .build()
       11916  +
    ///     .unwrap();
       11917  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11918  +
    /// ```
       11919  +
    ///
       11920  +
                    pub fn omits_null_serializes_empty_string<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       11921  +
                    where
       11922  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::OmitsNullSerializesEmptyString, HandlerExtractors>,
       11923  +
       11924  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11925  +
                            RestJson<L>,
       11926  +
                            crate::operation_shape::OmitsNullSerializesEmptyString,
       11927  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::OmitsNullSerializesEmptyString, HandlerType>
       11928  +
                        >,
       11929  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11930  +
                            RestJson<L>,
       11931  +
                            crate::operation_shape::OmitsNullSerializesEmptyString,
       11932  +
                            ModelPl::Output
       11933  +
                        >,
       11934  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11935  +
                            RestJson<L>,
       11936  +
                            crate::operation_shape::OmitsNullSerializesEmptyString,
       11937  +
                            <
       11938  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       11939  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       11940  +
                                    RestJson<L>,
       11941  +
                                    crate::operation_shape::OmitsNullSerializesEmptyString,
       11942  +
                                    ModelPl::Output
       11943  +
                                >
       11944  +
                            >::Output
       11945  +
                        >,
       11946  +
       11947  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       11948  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       11949  +
       11950  +
                    {
       11951  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       11952  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       11953  +
        let svc = crate::operation_shape::OmitsNullSerializesEmptyString::from_handler(handler);
       11954  +
        let svc = self.model_plugin.apply(svc);
       11955  +
        let svc =
       11956  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       11957  +
                .apply(svc);
       11958  +
        let svc = self.http_plugin.apply(svc);
       11959  +
        self.omits_null_serializes_empty_string_custom(svc)
       11960  +
    }
       11961  +
       11962  +
    /// Sets the [`OmitsNullSerializesEmptyString`](crate::operation_shape::OmitsNullSerializesEmptyString) operation.
       11963  +
    ///
       11964  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       11965  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       11966  +
    ///
       11967  +
    /// # Example
       11968  +
    ///
       11969  +
    /// ```no_run
       11970  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       11971  +
    ///
       11972  +
    /// use rest_json_http0x::{input, output, error};
       11973  +
    ///
       11974  +
    /// async fn handler(input: input::OmitsNullSerializesEmptyStringInput) -> Result<output::OmitsNullSerializesEmptyStringOutput, std::convert::Infallible> {
       11975  +
    ///     todo!()
       11976  +
    /// }
       11977  +
    ///
       11978  +
    /// let config = RestJsonConfig::builder().build();
       11979  +
    /// let svc = ::tower::util::service_fn(handler);
       11980  +
    /// let app = RestJson::builder(config)
       11981  +
    ///     .omits_null_serializes_empty_string_service(svc)
       11982  +
    ///     /* Set other handlers */
       11983  +
    ///     .build()
       11984  +
    ///     .unwrap();
       11985  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       11986  +
    /// ```
       11987  +
    ///
       11988  +
                    pub fn omits_null_serializes_empty_string_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       11989  +
                    where
       11990  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::OmitsNullSerializesEmptyString, ServiceExtractors>,
       11991  +
       11992  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11993  +
                            RestJson<L>,
       11994  +
                            crate::operation_shape::OmitsNullSerializesEmptyString,
       11995  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::OmitsNullSerializesEmptyString, S>
       11996  +
                        >,
       11997  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       11998  +
                            RestJson<L>,
       11999  +
                            crate::operation_shape::OmitsNullSerializesEmptyString,
       12000  +
                            ModelPl::Output
       12001  +
                        >,
       12002  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12003  +
                            RestJson<L>,
       12004  +
                            crate::operation_shape::OmitsNullSerializesEmptyString,
       12005  +
                            <
       12006  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12007  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12008  +
                                    RestJson<L>,
       12009  +
                                    crate::operation_shape::OmitsNullSerializesEmptyString,
       12010  +
                                    ModelPl::Output
       12011  +
                                >
       12012  +
                            >::Output
       12013  +
                        >,
       12014  +
       12015  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12016  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12017  +
       12018  +
                    {
       12019  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12020  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12021  +
        let svc = crate::operation_shape::OmitsNullSerializesEmptyString::from_service(service);
       12022  +
        let svc = self.model_plugin.apply(svc);
       12023  +
        let svc =
       12024  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12025  +
                .apply(svc);
       12026  +
        let svc = self.http_plugin.apply(svc);
       12027  +
        self.omits_null_serializes_empty_string_custom(svc)
       12028  +
    }
       12029  +
       12030  +
    /// Sets the [`OmitsNullSerializesEmptyString`](crate::operation_shape::OmitsNullSerializesEmptyString) to a custom [`Service`](tower::Service).
       12031  +
    /// not constrained by the Smithy contract.
       12032  +
    fn omits_null_serializes_empty_string_custom<S>(mut self, svc: S) -> Self
       12033  +
    where
       12034  +
        S: ::tower::Service<
       12035  +
                ::http::Request<Body>,
       12036  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       12037  +
                Error = ::std::convert::Infallible,
       12038  +
            > + Clone
       12039  +
            + Send
       12040  +
            + 'static,
       12041  +
        S::Future: Send + 'static,
       12042  +
    {
       12043  +
        self.omits_null_serializes_empty_string =
       12044  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       12045  +
        self
       12046  +
    }
       12047  +
       12048  +
    /// Sets the [`OmitsSerializingEmptyLists`](crate::operation_shape::OmitsSerializingEmptyLists) operation.
       12049  +
    ///
       12050  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12051  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12052  +
    ///
       12053  +
    /// # Example
       12054  +
    ///
       12055  +
    /// ```no_run
       12056  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12057  +
    ///
       12058  +
    /// use rest_json_http0x::{input, output, error};
       12059  +
    ///
       12060  +
    /// async fn handler(input: input::OmitsSerializingEmptyListsInput) -> Result<output::OmitsSerializingEmptyListsOutput, error::OmitsSerializingEmptyListsError> {
       12061  +
    ///     todo!()
       12062  +
    /// }
       12063  +
    ///
       12064  +
    /// let config = RestJsonConfig::builder().build();
       12065  +
    /// let app = RestJson::builder(config)
       12066  +
    ///     .omits_serializing_empty_lists(handler)
       12067  +
    ///     /* Set other handlers */
       12068  +
    ///     .build()
       12069  +
    ///     .unwrap();
       12070  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12071  +
    /// ```
       12072  +
    ///
       12073  +
                    pub fn omits_serializing_empty_lists<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       12074  +
                    where
       12075  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::OmitsSerializingEmptyLists, HandlerExtractors>,
       12076  +
       12077  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12078  +
                            RestJson<L>,
       12079  +
                            crate::operation_shape::OmitsSerializingEmptyLists,
       12080  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::OmitsSerializingEmptyLists, HandlerType>
       12081  +
                        >,
       12082  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12083  +
                            RestJson<L>,
       12084  +
                            crate::operation_shape::OmitsSerializingEmptyLists,
       12085  +
                            ModelPl::Output
       12086  +
                        >,
       12087  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12088  +
                            RestJson<L>,
       12089  +
                            crate::operation_shape::OmitsSerializingEmptyLists,
       12090  +
                            <
       12091  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12092  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12093  +
                                    RestJson<L>,
       12094  +
                                    crate::operation_shape::OmitsSerializingEmptyLists,
       12095  +
                                    ModelPl::Output
       12096  +
                                >
       12097  +
                            >::Output
       12098  +
                        >,
       12099  +
       12100  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12101  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12102  +
       12103  +
                    {
       12104  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12105  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12106  +
        let svc = crate::operation_shape::OmitsSerializingEmptyLists::from_handler(handler);
       12107  +
        let svc = self.model_plugin.apply(svc);
       12108  +
        let svc =
       12109  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12110  +
                .apply(svc);
       12111  +
        let svc = self.http_plugin.apply(svc);
       12112  +
        self.omits_serializing_empty_lists_custom(svc)
       12113  +
    }
       12114  +
       12115  +
    /// Sets the [`OmitsSerializingEmptyLists`](crate::operation_shape::OmitsSerializingEmptyLists) operation.
       12116  +
    ///
       12117  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12118  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12119  +
    ///
       12120  +
    /// # Example
       12121  +
    ///
       12122  +
    /// ```no_run
       12123  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12124  +
    ///
       12125  +
    /// use rest_json_http0x::{input, output, error};
       12126  +
    ///
       12127  +
    /// async fn handler(input: input::OmitsSerializingEmptyListsInput) -> Result<output::OmitsSerializingEmptyListsOutput, error::OmitsSerializingEmptyListsError> {
       12128  +
    ///     todo!()
       12129  +
    /// }
       12130  +
    ///
       12131  +
    /// let config = RestJsonConfig::builder().build();
       12132  +
    /// let svc = ::tower::util::service_fn(handler);
       12133  +
    /// let app = RestJson::builder(config)
       12134  +
    ///     .omits_serializing_empty_lists_service(svc)
       12135  +
    ///     /* Set other handlers */
       12136  +
    ///     .build()
       12137  +
    ///     .unwrap();
       12138  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12139  +
    /// ```
       12140  +
    ///
       12141  +
                    pub fn omits_serializing_empty_lists_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       12142  +
                    where
       12143  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::OmitsSerializingEmptyLists, ServiceExtractors>,
       12144  +
       12145  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12146  +
                            RestJson<L>,
       12147  +
                            crate::operation_shape::OmitsSerializingEmptyLists,
       12148  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::OmitsSerializingEmptyLists, S>
       12149  +
                        >,
       12150  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12151  +
                            RestJson<L>,
       12152  +
                            crate::operation_shape::OmitsSerializingEmptyLists,
       12153  +
                            ModelPl::Output
       12154  +
                        >,
       12155  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12156  +
                            RestJson<L>,
       12157  +
                            crate::operation_shape::OmitsSerializingEmptyLists,
       12158  +
                            <
       12159  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12160  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12161  +
                                    RestJson<L>,
       12162  +
                                    crate::operation_shape::OmitsSerializingEmptyLists,
       12163  +
                                    ModelPl::Output
       12164  +
                                >
       12165  +
                            >::Output
       12166  +
                        >,
       12167  +
       12168  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12169  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12170  +
       12171  +
                    {
       12172  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12173  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12174  +
        let svc = crate::operation_shape::OmitsSerializingEmptyLists::from_service(service);
       12175  +
        let svc = self.model_plugin.apply(svc);
       12176  +
        let svc =
       12177  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12178  +
                .apply(svc);
       12179  +
        let svc = self.http_plugin.apply(svc);
       12180  +
        self.omits_serializing_empty_lists_custom(svc)
       12181  +
    }
       12182  +
       12183  +
    /// Sets the [`OmitsSerializingEmptyLists`](crate::operation_shape::OmitsSerializingEmptyLists) to a custom [`Service`](tower::Service).
       12184  +
    /// not constrained by the Smithy contract.
       12185  +
    fn omits_serializing_empty_lists_custom<S>(mut self, svc: S) -> Self
       12186  +
    where
       12187  +
        S: ::tower::Service<
       12188  +
                ::http::Request<Body>,
       12189  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       12190  +
                Error = ::std::convert::Infallible,
       12191  +
            > + Clone
       12192  +
            + Send
       12193  +
            + 'static,
       12194  +
        S::Future: Send + 'static,
       12195  +
    {
       12196  +
        self.omits_serializing_empty_lists =
       12197  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       12198  +
        self
       12199  +
    }
       12200  +
       12201  +
    /// Sets the [`OperationWithDefaults`](crate::operation_shape::OperationWithDefaults) operation.
       12202  +
    ///
       12203  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12204  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12205  +
    ///
       12206  +
    /// # Example
       12207  +
    ///
       12208  +
    /// ```no_run
       12209  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12210  +
    ///
       12211  +
    /// use rest_json_http0x::{input, output, error};
       12212  +
    ///
       12213  +
    /// async fn handler(input: input::OperationWithDefaultsInput) -> Result<output::OperationWithDefaultsOutput, error::OperationWithDefaultsError> {
       12214  +
    ///     todo!()
       12215  +
    /// }
       12216  +
    ///
       12217  +
    /// let config = RestJsonConfig::builder().build();
       12218  +
    /// let app = RestJson::builder(config)
       12219  +
    ///     .operation_with_defaults(handler)
       12220  +
    ///     /* Set other handlers */
       12221  +
    ///     .build()
       12222  +
    ///     .unwrap();
       12223  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12224  +
    /// ```
       12225  +
    ///
       12226  +
                    pub fn operation_with_defaults<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       12227  +
                    where
       12228  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::OperationWithDefaults, HandlerExtractors>,
       12229  +
       12230  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12231  +
                            RestJson<L>,
       12232  +
                            crate::operation_shape::OperationWithDefaults,
       12233  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::OperationWithDefaults, HandlerType>
       12234  +
                        >,
       12235  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12236  +
                            RestJson<L>,
       12237  +
                            crate::operation_shape::OperationWithDefaults,
       12238  +
                            ModelPl::Output
       12239  +
                        >,
       12240  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12241  +
                            RestJson<L>,
       12242  +
                            crate::operation_shape::OperationWithDefaults,
       12243  +
                            <
       12244  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12245  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12246  +
                                    RestJson<L>,
       12247  +
                                    crate::operation_shape::OperationWithDefaults,
       12248  +
                                    ModelPl::Output
       12249  +
                                >
       12250  +
                            >::Output
       12251  +
                        >,
       12252  +
       12253  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12254  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12255  +
       12256  +
                    {
       12257  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12258  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12259  +
        let svc = crate::operation_shape::OperationWithDefaults::from_handler(handler);
       12260  +
        let svc = self.model_plugin.apply(svc);
       12261  +
        let svc =
       12262  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12263  +
                .apply(svc);
       12264  +
        let svc = self.http_plugin.apply(svc);
       12265  +
        self.operation_with_defaults_custom(svc)
       12266  +
    }
       12267  +
       12268  +
    /// Sets the [`OperationWithDefaults`](crate::operation_shape::OperationWithDefaults) operation.
       12269  +
    ///
       12270  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12271  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12272  +
    ///
       12273  +
    /// # Example
       12274  +
    ///
       12275  +
    /// ```no_run
       12276  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12277  +
    ///
       12278  +
    /// use rest_json_http0x::{input, output, error};
       12279  +
    ///
       12280  +
    /// async fn handler(input: input::OperationWithDefaultsInput) -> Result<output::OperationWithDefaultsOutput, error::OperationWithDefaultsError> {
       12281  +
    ///     todo!()
       12282  +
    /// }
       12283  +
    ///
       12284  +
    /// let config = RestJsonConfig::builder().build();
       12285  +
    /// let svc = ::tower::util::service_fn(handler);
       12286  +
    /// let app = RestJson::builder(config)
       12287  +
    ///     .operation_with_defaults_service(svc)
       12288  +
    ///     /* Set other handlers */
       12289  +
    ///     .build()
       12290  +
    ///     .unwrap();
       12291  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12292  +
    /// ```
       12293  +
    ///
       12294  +
                    pub fn operation_with_defaults_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       12295  +
                    where
       12296  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::OperationWithDefaults, ServiceExtractors>,
       12297  +
       12298  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12299  +
                            RestJson<L>,
       12300  +
                            crate::operation_shape::OperationWithDefaults,
       12301  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::OperationWithDefaults, S>
       12302  +
                        >,
       12303  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12304  +
                            RestJson<L>,
       12305  +
                            crate::operation_shape::OperationWithDefaults,
       12306  +
                            ModelPl::Output
       12307  +
                        >,
       12308  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12309  +
                            RestJson<L>,
       12310  +
                            crate::operation_shape::OperationWithDefaults,
       12311  +
                            <
       12312  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12313  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12314  +
                                    RestJson<L>,
       12315  +
                                    crate::operation_shape::OperationWithDefaults,
       12316  +
                                    ModelPl::Output
       12317  +
                                >
       12318  +
                            >::Output
       12319  +
                        >,
       12320  +
       12321  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12322  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12323  +
       12324  +
                    {
       12325  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12326  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12327  +
        let svc = crate::operation_shape::OperationWithDefaults::from_service(service);
       12328  +
        let svc = self.model_plugin.apply(svc);
       12329  +
        let svc =
       12330  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12331  +
                .apply(svc);
       12332  +
        let svc = self.http_plugin.apply(svc);
       12333  +
        self.operation_with_defaults_custom(svc)
       12334  +
    }
       12335  +
       12336  +
    /// Sets the [`OperationWithDefaults`](crate::operation_shape::OperationWithDefaults) to a custom [`Service`](tower::Service).
       12337  +
    /// not constrained by the Smithy contract.
       12338  +
    fn operation_with_defaults_custom<S>(mut self, svc: S) -> Self
       12339  +
    where
       12340  +
        S: ::tower::Service<
       12341  +
                ::http::Request<Body>,
       12342  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       12343  +
                Error = ::std::convert::Infallible,
       12344  +
            > + Clone
       12345  +
            + Send
       12346  +
            + 'static,
       12347  +
        S::Future: Send + 'static,
       12348  +
    {
       12349  +
        self.operation_with_defaults =
       12350  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       12351  +
        self
       12352  +
    }
       12353  +
       12354  +
    /// Sets the [`OperationWithNestedStructure`](crate::operation_shape::OperationWithNestedStructure) operation.
       12355  +
    ///
       12356  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12357  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12358  +
    ///
       12359  +
    /// # Example
       12360  +
    ///
       12361  +
    /// ```no_run
       12362  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12363  +
    ///
       12364  +
    /// use rest_json_http0x::{input, output, error};
       12365  +
    ///
       12366  +
    /// async fn handler(input: input::OperationWithNestedStructureInput) -> Result<output::OperationWithNestedStructureOutput, error::OperationWithNestedStructureError> {
       12367  +
    ///     todo!()
       12368  +
    /// }
       12369  +
    ///
       12370  +
    /// let config = RestJsonConfig::builder().build();
       12371  +
    /// let app = RestJson::builder(config)
       12372  +
    ///     .operation_with_nested_structure(handler)
       12373  +
    ///     /* Set other handlers */
       12374  +
    ///     .build()
       12375  +
    ///     .unwrap();
       12376  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12377  +
    /// ```
       12378  +
    ///
       12379  +
                    pub fn operation_with_nested_structure<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       12380  +
                    where
       12381  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::OperationWithNestedStructure, HandlerExtractors>,
       12382  +
       12383  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12384  +
                            RestJson<L>,
       12385  +
                            crate::operation_shape::OperationWithNestedStructure,
       12386  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::OperationWithNestedStructure, HandlerType>
       12387  +
                        >,
       12388  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12389  +
                            RestJson<L>,
       12390  +
                            crate::operation_shape::OperationWithNestedStructure,
       12391  +
                            ModelPl::Output
       12392  +
                        >,
       12393  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12394  +
                            RestJson<L>,
       12395  +
                            crate::operation_shape::OperationWithNestedStructure,
       12396  +
                            <
       12397  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12398  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12399  +
                                    RestJson<L>,
       12400  +
                                    crate::operation_shape::OperationWithNestedStructure,
       12401  +
                                    ModelPl::Output
       12402  +
                                >
       12403  +
                            >::Output
       12404  +
                        >,
       12405  +
       12406  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12407  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12408  +
       12409  +
                    {
       12410  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12411  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12412  +
        let svc = crate::operation_shape::OperationWithNestedStructure::from_handler(handler);
       12413  +
        let svc = self.model_plugin.apply(svc);
       12414  +
        let svc =
       12415  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12416  +
                .apply(svc);
       12417  +
        let svc = self.http_plugin.apply(svc);
       12418  +
        self.operation_with_nested_structure_custom(svc)
       12419  +
    }
       12420  +
       12421  +
    /// Sets the [`OperationWithNestedStructure`](crate::operation_shape::OperationWithNestedStructure) operation.
       12422  +
    ///
       12423  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12424  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12425  +
    ///
       12426  +
    /// # Example
       12427  +
    ///
       12428  +
    /// ```no_run
       12429  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12430  +
    ///
       12431  +
    /// use rest_json_http0x::{input, output, error};
       12432  +
    ///
       12433  +
    /// async fn handler(input: input::OperationWithNestedStructureInput) -> Result<output::OperationWithNestedStructureOutput, error::OperationWithNestedStructureError> {
       12434  +
    ///     todo!()
       12435  +
    /// }
       12436  +
    ///
       12437  +
    /// let config = RestJsonConfig::builder().build();
       12438  +
    /// let svc = ::tower::util::service_fn(handler);
       12439  +
    /// let app = RestJson::builder(config)
       12440  +
    ///     .operation_with_nested_structure_service(svc)
       12441  +
    ///     /* Set other handlers */
       12442  +
    ///     .build()
       12443  +
    ///     .unwrap();
       12444  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12445  +
    /// ```
       12446  +
    ///
       12447  +
                    pub fn operation_with_nested_structure_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       12448  +
                    where
       12449  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::OperationWithNestedStructure, ServiceExtractors>,
       12450  +
       12451  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12452  +
                            RestJson<L>,
       12453  +
                            crate::operation_shape::OperationWithNestedStructure,
       12454  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::OperationWithNestedStructure, S>
       12455  +
                        >,
       12456  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12457  +
                            RestJson<L>,
       12458  +
                            crate::operation_shape::OperationWithNestedStructure,
       12459  +
                            ModelPl::Output
       12460  +
                        >,
       12461  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12462  +
                            RestJson<L>,
       12463  +
                            crate::operation_shape::OperationWithNestedStructure,
       12464  +
                            <
       12465  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12466  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12467  +
                                    RestJson<L>,
       12468  +
                                    crate::operation_shape::OperationWithNestedStructure,
       12469  +
                                    ModelPl::Output
       12470  +
                                >
       12471  +
                            >::Output
       12472  +
                        >,
       12473  +
       12474  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12475  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12476  +
       12477  +
                    {
       12478  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12479  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12480  +
        let svc = crate::operation_shape::OperationWithNestedStructure::from_service(service);
       12481  +
        let svc = self.model_plugin.apply(svc);
       12482  +
        let svc =
       12483  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12484  +
                .apply(svc);
       12485  +
        let svc = self.http_plugin.apply(svc);
       12486  +
        self.operation_with_nested_structure_custom(svc)
       12487  +
    }
       12488  +
       12489  +
    /// Sets the [`OperationWithNestedStructure`](crate::operation_shape::OperationWithNestedStructure) to a custom [`Service`](tower::Service).
       12490  +
    /// not constrained by the Smithy contract.
       12491  +
    fn operation_with_nested_structure_custom<S>(mut self, svc: S) -> Self
       12492  +
    where
       12493  +
        S: ::tower::Service<
       12494  +
                ::http::Request<Body>,
       12495  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       12496  +
                Error = ::std::convert::Infallible,
       12497  +
            > + Clone
       12498  +
            + Send
       12499  +
            + 'static,
       12500  +
        S::Future: Send + 'static,
       12501  +
    {
       12502  +
        self.operation_with_nested_structure =
       12503  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       12504  +
        self
       12505  +
    }
       12506  +
       12507  +
    /// Sets the [`PostPlayerAction`](crate::operation_shape::PostPlayerAction) operation.
       12508  +
    ///
       12509  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12510  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12511  +
    ///
       12512  +
    /// # Example
       12513  +
    ///
       12514  +
    /// ```no_run
       12515  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12516  +
    ///
       12517  +
    /// use rest_json_http0x::{input, output, error};
       12518  +
    ///
       12519  +
    /// async fn handler(input: input::PostPlayerActionInput) -> output::PostPlayerActionOutput {
       12520  +
    ///     todo!()
       12521  +
    /// }
       12522  +
    ///
       12523  +
    /// let config = RestJsonConfig::builder().build();
       12524  +
    /// let app = RestJson::builder(config)
       12525  +
    ///     .post_player_action(handler)
       12526  +
    ///     /* Set other handlers */
       12527  +
    ///     .build()
       12528  +
    ///     .unwrap();
       12529  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12530  +
    /// ```
       12531  +
    ///
       12532  +
                    pub fn post_player_action<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       12533  +
                    where
       12534  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::PostPlayerAction, HandlerExtractors>,
       12535  +
       12536  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12537  +
                            RestJson<L>,
       12538  +
                            crate::operation_shape::PostPlayerAction,
       12539  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::PostPlayerAction, HandlerType>
       12540  +
                        >,
       12541  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12542  +
                            RestJson<L>,
       12543  +
                            crate::operation_shape::PostPlayerAction,
       12544  +
                            ModelPl::Output
       12545  +
                        >,
       12546  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12547  +
                            RestJson<L>,
       12548  +
                            crate::operation_shape::PostPlayerAction,
       12549  +
                            <
       12550  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12551  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12552  +
                                    RestJson<L>,
       12553  +
                                    crate::operation_shape::PostPlayerAction,
       12554  +
                                    ModelPl::Output
       12555  +
                                >
       12556  +
                            >::Output
       12557  +
                        >,
       12558  +
       12559  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12560  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12561  +
       12562  +
                    {
       12563  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12564  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12565  +
        let svc = crate::operation_shape::PostPlayerAction::from_handler(handler);
       12566  +
        let svc = self.model_plugin.apply(svc);
       12567  +
        let svc =
       12568  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12569  +
                .apply(svc);
       12570  +
        let svc = self.http_plugin.apply(svc);
       12571  +
        self.post_player_action_custom(svc)
       12572  +
    }
       12573  +
       12574  +
    /// Sets the [`PostPlayerAction`](crate::operation_shape::PostPlayerAction) operation.
       12575  +
    ///
       12576  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12577  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12578  +
    ///
       12579  +
    /// # Example
       12580  +
    ///
       12581  +
    /// ```no_run
       12582  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12583  +
    ///
       12584  +
    /// use rest_json_http0x::{input, output, error};
       12585  +
    ///
       12586  +
    /// async fn handler(input: input::PostPlayerActionInput) -> Result<output::PostPlayerActionOutput, std::convert::Infallible> {
       12587  +
    ///     todo!()
       12588  +
    /// }
       12589  +
    ///
       12590  +
    /// let config = RestJsonConfig::builder().build();
       12591  +
    /// let svc = ::tower::util::service_fn(handler);
       12592  +
    /// let app = RestJson::builder(config)
       12593  +
    ///     .post_player_action_service(svc)
       12594  +
    ///     /* Set other handlers */
       12595  +
    ///     .build()
       12596  +
    ///     .unwrap();
       12597  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12598  +
    /// ```
       12599  +
    ///
       12600  +
                    pub fn post_player_action_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       12601  +
                    where
       12602  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::PostPlayerAction, ServiceExtractors>,
       12603  +
       12604  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12605  +
                            RestJson<L>,
       12606  +
                            crate::operation_shape::PostPlayerAction,
       12607  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::PostPlayerAction, S>
       12608  +
                        >,
       12609  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12610  +
                            RestJson<L>,
       12611  +
                            crate::operation_shape::PostPlayerAction,
       12612  +
                            ModelPl::Output
       12613  +
                        >,
       12614  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12615  +
                            RestJson<L>,
       12616  +
                            crate::operation_shape::PostPlayerAction,
       12617  +
                            <
       12618  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12619  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12620  +
                                    RestJson<L>,
       12621  +
                                    crate::operation_shape::PostPlayerAction,
       12622  +
                                    ModelPl::Output
       12623  +
                                >
       12624  +
                            >::Output
       12625  +
                        >,
       12626  +
       12627  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12628  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12629  +
       12630  +
                    {
       12631  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12632  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12633  +
        let svc = crate::operation_shape::PostPlayerAction::from_service(service);
       12634  +
        let svc = self.model_plugin.apply(svc);
       12635  +
        let svc =
       12636  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12637  +
                .apply(svc);
       12638  +
        let svc = self.http_plugin.apply(svc);
       12639  +
        self.post_player_action_custom(svc)
       12640  +
    }
       12641  +
       12642  +
    /// Sets the [`PostPlayerAction`](crate::operation_shape::PostPlayerAction) to a custom [`Service`](tower::Service).
       12643  +
    /// not constrained by the Smithy contract.
       12644  +
    fn post_player_action_custom<S>(mut self, svc: S) -> Self
       12645  +
    where
       12646  +
        S: ::tower::Service<
       12647  +
                ::http::Request<Body>,
       12648  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       12649  +
                Error = ::std::convert::Infallible,
       12650  +
            > + Clone
       12651  +
            + Send
       12652  +
            + 'static,
       12653  +
        S::Future: Send + 'static,
       12654  +
    {
       12655  +
        self.post_player_action = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       12656  +
        self
       12657  +
    }
       12658  +
       12659  +
    /// Sets the [`PostUnionWithJsonName`](crate::operation_shape::PostUnionWithJsonName) operation.
       12660  +
    ///
       12661  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12662  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12663  +
    ///
       12664  +
    /// # Example
       12665  +
    ///
       12666  +
    /// ```no_run
       12667  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12668  +
    ///
       12669  +
    /// use rest_json_http0x::{input, output, error};
       12670  +
    ///
       12671  +
    /// async fn handler(input: input::PostUnionWithJsonNameInput) -> output::PostUnionWithJsonNameOutput {
       12672  +
    ///     todo!()
       12673  +
    /// }
       12674  +
    ///
       12675  +
    /// let config = RestJsonConfig::builder().build();
       12676  +
    /// let app = RestJson::builder(config)
       12677  +
    ///     .post_union_with_json_name(handler)
       12678  +
    ///     /* Set other handlers */
       12679  +
    ///     .build()
       12680  +
    ///     .unwrap();
       12681  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12682  +
    /// ```
       12683  +
    ///
       12684  +
                    pub fn post_union_with_json_name<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       12685  +
                    where
       12686  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::PostUnionWithJsonName, HandlerExtractors>,
       12687  +
       12688  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12689  +
                            RestJson<L>,
       12690  +
                            crate::operation_shape::PostUnionWithJsonName,
       12691  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::PostUnionWithJsonName, HandlerType>
       12692  +
                        >,
       12693  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12694  +
                            RestJson<L>,
       12695  +
                            crate::operation_shape::PostUnionWithJsonName,
       12696  +
                            ModelPl::Output
       12697  +
                        >,
       12698  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12699  +
                            RestJson<L>,
       12700  +
                            crate::operation_shape::PostUnionWithJsonName,
       12701  +
                            <
       12702  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12703  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12704  +
                                    RestJson<L>,
       12705  +
                                    crate::operation_shape::PostUnionWithJsonName,
       12706  +
                                    ModelPl::Output
       12707  +
                                >
       12708  +
                            >::Output
       12709  +
                        >,
       12710  +
       12711  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12712  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12713  +
       12714  +
                    {
       12715  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12716  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12717  +
        let svc = crate::operation_shape::PostUnionWithJsonName::from_handler(handler);
       12718  +
        let svc = self.model_plugin.apply(svc);
       12719  +
        let svc =
       12720  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12721  +
                .apply(svc);
       12722  +
        let svc = self.http_plugin.apply(svc);
       12723  +
        self.post_union_with_json_name_custom(svc)
       12724  +
    }
       12725  +
       12726  +
    /// Sets the [`PostUnionWithJsonName`](crate::operation_shape::PostUnionWithJsonName) operation.
       12727  +
    ///
       12728  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12729  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12730  +
    ///
       12731  +
    /// # Example
       12732  +
    ///
       12733  +
    /// ```no_run
       12734  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12735  +
    ///
       12736  +
    /// use rest_json_http0x::{input, output, error};
       12737  +
    ///
       12738  +
    /// async fn handler(input: input::PostUnionWithJsonNameInput) -> Result<output::PostUnionWithJsonNameOutput, std::convert::Infallible> {
       12739  +
    ///     todo!()
       12740  +
    /// }
       12741  +
    ///
       12742  +
    /// let config = RestJsonConfig::builder().build();
       12743  +
    /// let svc = ::tower::util::service_fn(handler);
       12744  +
    /// let app = RestJson::builder(config)
       12745  +
    ///     .post_union_with_json_name_service(svc)
       12746  +
    ///     /* Set other handlers */
       12747  +
    ///     .build()
       12748  +
    ///     .unwrap();
       12749  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12750  +
    /// ```
       12751  +
    ///
       12752  +
                    pub fn post_union_with_json_name_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       12753  +
                    where
       12754  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::PostUnionWithJsonName, ServiceExtractors>,
       12755  +
       12756  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12757  +
                            RestJson<L>,
       12758  +
                            crate::operation_shape::PostUnionWithJsonName,
       12759  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::PostUnionWithJsonName, S>
       12760  +
                        >,
       12761  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12762  +
                            RestJson<L>,
       12763  +
                            crate::operation_shape::PostUnionWithJsonName,
       12764  +
                            ModelPl::Output
       12765  +
                        >,
       12766  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12767  +
                            RestJson<L>,
       12768  +
                            crate::operation_shape::PostUnionWithJsonName,
       12769  +
                            <
       12770  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12771  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12772  +
                                    RestJson<L>,
       12773  +
                                    crate::operation_shape::PostUnionWithJsonName,
       12774  +
                                    ModelPl::Output
       12775  +
                                >
       12776  +
                            >::Output
       12777  +
                        >,
       12778  +
       12779  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12780  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12781  +
       12782  +
                    {
       12783  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12784  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12785  +
        let svc = crate::operation_shape::PostUnionWithJsonName::from_service(service);
       12786  +
        let svc = self.model_plugin.apply(svc);
       12787  +
        let svc =
       12788  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12789  +
                .apply(svc);
       12790  +
        let svc = self.http_plugin.apply(svc);
       12791  +
        self.post_union_with_json_name_custom(svc)
       12792  +
    }
       12793  +
       12794  +
    /// Sets the [`PostUnionWithJsonName`](crate::operation_shape::PostUnionWithJsonName) to a custom [`Service`](tower::Service).
       12795  +
    /// not constrained by the Smithy contract.
       12796  +
    fn post_union_with_json_name_custom<S>(mut self, svc: S) -> Self
       12797  +
    where
       12798  +
        S: ::tower::Service<
       12799  +
                ::http::Request<Body>,
       12800  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       12801  +
                Error = ::std::convert::Infallible,
       12802  +
            > + Clone
       12803  +
            + Send
       12804  +
            + 'static,
       12805  +
        S::Future: Send + 'static,
       12806  +
    {
       12807  +
        self.post_union_with_json_name =
       12808  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       12809  +
        self
       12810  +
    }
       12811  +
       12812  +
    /// Sets the [`PutWithContentEncoding`](crate::operation_shape::PutWithContentEncoding) operation.
       12813  +
    ///
       12814  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12815  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12816  +
    ///
       12817  +
    /// # Example
       12818  +
    ///
       12819  +
    /// ```no_run
       12820  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12821  +
    ///
       12822  +
    /// use rest_json_http0x::{input, output, error};
       12823  +
    ///
       12824  +
    /// async fn handler(input: input::PutWithContentEncodingInput) -> output::PutWithContentEncodingOutput {
       12825  +
    ///     todo!()
       12826  +
    /// }
       12827  +
    ///
       12828  +
    /// let config = RestJsonConfig::builder().build();
       12829  +
    /// let app = RestJson::builder(config)
       12830  +
    ///     .put_with_content_encoding(handler)
       12831  +
    ///     /* Set other handlers */
       12832  +
    ///     .build()
       12833  +
    ///     .unwrap();
       12834  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12835  +
    /// ```
       12836  +
    ///
       12837  +
                    pub fn put_with_content_encoding<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       12838  +
                    where
       12839  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::PutWithContentEncoding, HandlerExtractors>,
       12840  +
       12841  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12842  +
                            RestJson<L>,
       12843  +
                            crate::operation_shape::PutWithContentEncoding,
       12844  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::PutWithContentEncoding, HandlerType>
       12845  +
                        >,
       12846  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12847  +
                            RestJson<L>,
       12848  +
                            crate::operation_shape::PutWithContentEncoding,
       12849  +
                            ModelPl::Output
       12850  +
                        >,
       12851  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12852  +
                            RestJson<L>,
       12853  +
                            crate::operation_shape::PutWithContentEncoding,
       12854  +
                            <
       12855  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12856  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12857  +
                                    RestJson<L>,
       12858  +
                                    crate::operation_shape::PutWithContentEncoding,
       12859  +
                                    ModelPl::Output
       12860  +
                                >
       12861  +
                            >::Output
       12862  +
                        >,
       12863  +
       12864  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12865  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12866  +
       12867  +
                    {
       12868  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12869  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12870  +
        let svc = crate::operation_shape::PutWithContentEncoding::from_handler(handler);
       12871  +
        let svc = self.model_plugin.apply(svc);
       12872  +
        let svc =
       12873  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12874  +
                .apply(svc);
       12875  +
        let svc = self.http_plugin.apply(svc);
       12876  +
        self.put_with_content_encoding_custom(svc)
       12877  +
    }
       12878  +
       12879  +
    /// Sets the [`PutWithContentEncoding`](crate::operation_shape::PutWithContentEncoding) operation.
       12880  +
    ///
       12881  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12882  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12883  +
    ///
       12884  +
    /// # Example
       12885  +
    ///
       12886  +
    /// ```no_run
       12887  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12888  +
    ///
       12889  +
    /// use rest_json_http0x::{input, output, error};
       12890  +
    ///
       12891  +
    /// async fn handler(input: input::PutWithContentEncodingInput) -> Result<output::PutWithContentEncodingOutput, std::convert::Infallible> {
       12892  +
    ///     todo!()
       12893  +
    /// }
       12894  +
    ///
       12895  +
    /// let config = RestJsonConfig::builder().build();
       12896  +
    /// let svc = ::tower::util::service_fn(handler);
       12897  +
    /// let app = RestJson::builder(config)
       12898  +
    ///     .put_with_content_encoding_service(svc)
       12899  +
    ///     /* Set other handlers */
       12900  +
    ///     .build()
       12901  +
    ///     .unwrap();
       12902  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12903  +
    /// ```
       12904  +
    ///
       12905  +
                    pub fn put_with_content_encoding_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       12906  +
                    where
       12907  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::PutWithContentEncoding, ServiceExtractors>,
       12908  +
       12909  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12910  +
                            RestJson<L>,
       12911  +
                            crate::operation_shape::PutWithContentEncoding,
       12912  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::PutWithContentEncoding, S>
       12913  +
                        >,
       12914  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12915  +
                            RestJson<L>,
       12916  +
                            crate::operation_shape::PutWithContentEncoding,
       12917  +
                            ModelPl::Output
       12918  +
                        >,
       12919  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12920  +
                            RestJson<L>,
       12921  +
                            crate::operation_shape::PutWithContentEncoding,
       12922  +
                            <
       12923  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       12924  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       12925  +
                                    RestJson<L>,
       12926  +
                                    crate::operation_shape::PutWithContentEncoding,
       12927  +
                                    ModelPl::Output
       12928  +
                                >
       12929  +
                            >::Output
       12930  +
                        >,
       12931  +
       12932  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       12933  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       12934  +
       12935  +
                    {
       12936  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       12937  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       12938  +
        let svc = crate::operation_shape::PutWithContentEncoding::from_service(service);
       12939  +
        let svc = self.model_plugin.apply(svc);
       12940  +
        let svc =
       12941  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       12942  +
                .apply(svc);
       12943  +
        let svc = self.http_plugin.apply(svc);
       12944  +
        self.put_with_content_encoding_custom(svc)
       12945  +
    }
       12946  +
       12947  +
    /// Sets the [`PutWithContentEncoding`](crate::operation_shape::PutWithContentEncoding) to a custom [`Service`](tower::Service).
       12948  +
    /// not constrained by the Smithy contract.
       12949  +
    fn put_with_content_encoding_custom<S>(mut self, svc: S) -> Self
       12950  +
    where
       12951  +
        S: ::tower::Service<
       12952  +
                ::http::Request<Body>,
       12953  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       12954  +
                Error = ::std::convert::Infallible,
       12955  +
            > + Clone
       12956  +
            + Send
       12957  +
            + 'static,
       12958  +
        S::Future: Send + 'static,
       12959  +
    {
       12960  +
        self.put_with_content_encoding =
       12961  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       12962  +
        self
       12963  +
    }
       12964  +
       12965  +
    /// Sets the [`QueryIdempotencyTokenAutoFill`](crate::operation_shape::QueryIdempotencyTokenAutoFill) operation.
       12966  +
    ///
       12967  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       12968  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       12969  +
    ///
       12970  +
    /// # Example
       12971  +
    ///
       12972  +
    /// ```no_run
       12973  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       12974  +
    ///
       12975  +
    /// use rest_json_http0x::{input, output, error};
       12976  +
    ///
       12977  +
    /// async fn handler(input: input::QueryIdempotencyTokenAutoFillInput) -> output::QueryIdempotencyTokenAutoFillOutput {
       12978  +
    ///     todo!()
       12979  +
    /// }
       12980  +
    ///
       12981  +
    /// let config = RestJsonConfig::builder().build();
       12982  +
    /// let app = RestJson::builder(config)
       12983  +
    ///     .query_idempotency_token_auto_fill(handler)
       12984  +
    ///     /* Set other handlers */
       12985  +
    ///     .build()
       12986  +
    ///     .unwrap();
       12987  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       12988  +
    /// ```
       12989  +
    ///
       12990  +
                    pub fn query_idempotency_token_auto_fill<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       12991  +
                    where
       12992  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryIdempotencyTokenAutoFill, HandlerExtractors>,
       12993  +
       12994  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       12995  +
                            RestJson<L>,
       12996  +
                            crate::operation_shape::QueryIdempotencyTokenAutoFill,
       12997  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryIdempotencyTokenAutoFill, HandlerType>
       12998  +
                        >,
       12999  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13000  +
                            RestJson<L>,
       13001  +
                            crate::operation_shape::QueryIdempotencyTokenAutoFill,
       13002  +
                            ModelPl::Output
       13003  +
                        >,
       13004  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13005  +
                            RestJson<L>,
       13006  +
                            crate::operation_shape::QueryIdempotencyTokenAutoFill,
       13007  +
                            <
       13008  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13009  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13010  +
                                    RestJson<L>,
       13011  +
                                    crate::operation_shape::QueryIdempotencyTokenAutoFill,
       13012  +
                                    ModelPl::Output
       13013  +
                                >
       13014  +
                            >::Output
       13015  +
                        >,
       13016  +
       13017  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13018  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13019  +
       13020  +
                    {
       13021  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13022  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13023  +
        let svc = crate::operation_shape::QueryIdempotencyTokenAutoFill::from_handler(handler);
       13024  +
        let svc = self.model_plugin.apply(svc);
       13025  +
        let svc =
       13026  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13027  +
                .apply(svc);
       13028  +
        let svc = self.http_plugin.apply(svc);
       13029  +
        self.query_idempotency_token_auto_fill_custom(svc)
       13030  +
    }
       13031  +
       13032  +
    /// Sets the [`QueryIdempotencyTokenAutoFill`](crate::operation_shape::QueryIdempotencyTokenAutoFill) operation.
       13033  +
    ///
       13034  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13035  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13036  +
    ///
       13037  +
    /// # Example
       13038  +
    ///
       13039  +
    /// ```no_run
       13040  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13041  +
    ///
       13042  +
    /// use rest_json_http0x::{input, output, error};
       13043  +
    ///
       13044  +
    /// async fn handler(input: input::QueryIdempotencyTokenAutoFillInput) -> Result<output::QueryIdempotencyTokenAutoFillOutput, std::convert::Infallible> {
       13045  +
    ///     todo!()
       13046  +
    /// }
       13047  +
    ///
       13048  +
    /// let config = RestJsonConfig::builder().build();
       13049  +
    /// let svc = ::tower::util::service_fn(handler);
       13050  +
    /// let app = RestJson::builder(config)
       13051  +
    ///     .query_idempotency_token_auto_fill_service(svc)
       13052  +
    ///     /* Set other handlers */
       13053  +
    ///     .build()
       13054  +
    ///     .unwrap();
       13055  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13056  +
    /// ```
       13057  +
    ///
       13058  +
                    pub fn query_idempotency_token_auto_fill_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       13059  +
                    where
       13060  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryIdempotencyTokenAutoFill, ServiceExtractors>,
       13061  +
       13062  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13063  +
                            RestJson<L>,
       13064  +
                            crate::operation_shape::QueryIdempotencyTokenAutoFill,
       13065  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryIdempotencyTokenAutoFill, S>
       13066  +
                        >,
       13067  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13068  +
                            RestJson<L>,
       13069  +
                            crate::operation_shape::QueryIdempotencyTokenAutoFill,
       13070  +
                            ModelPl::Output
       13071  +
                        >,
       13072  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13073  +
                            RestJson<L>,
       13074  +
                            crate::operation_shape::QueryIdempotencyTokenAutoFill,
       13075  +
                            <
       13076  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13077  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13078  +
                                    RestJson<L>,
       13079  +
                                    crate::operation_shape::QueryIdempotencyTokenAutoFill,
       13080  +
                                    ModelPl::Output
       13081  +
                                >
       13082  +
                            >::Output
       13083  +
                        >,
       13084  +
       13085  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13086  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13087  +
       13088  +
                    {
       13089  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13090  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13091  +
        let svc = crate::operation_shape::QueryIdempotencyTokenAutoFill::from_service(service);
       13092  +
        let svc = self.model_plugin.apply(svc);
       13093  +
        let svc =
       13094  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13095  +
                .apply(svc);
       13096  +
        let svc = self.http_plugin.apply(svc);
       13097  +
        self.query_idempotency_token_auto_fill_custom(svc)
       13098  +
    }
       13099  +
       13100  +
    /// Sets the [`QueryIdempotencyTokenAutoFill`](crate::operation_shape::QueryIdempotencyTokenAutoFill) to a custom [`Service`](tower::Service).
       13101  +
    /// not constrained by the Smithy contract.
       13102  +
    fn query_idempotency_token_auto_fill_custom<S>(mut self, svc: S) -> Self
       13103  +
    where
       13104  +
        S: ::tower::Service<
       13105  +
                ::http::Request<Body>,
       13106  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       13107  +
                Error = ::std::convert::Infallible,
       13108  +
            > + Clone
       13109  +
            + Send
       13110  +
            + 'static,
       13111  +
        S::Future: Send + 'static,
       13112  +
    {
       13113  +
        self.query_idempotency_token_auto_fill =
       13114  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       13115  +
        self
       13116  +
    }
       13117  +
       13118  +
    /// Sets the [`QueryParamsAsStringListMap`](crate::operation_shape::QueryParamsAsStringListMap) operation.
       13119  +
    ///
       13120  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13121  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13122  +
    ///
       13123  +
    /// # Example
       13124  +
    ///
       13125  +
    /// ```no_run
       13126  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13127  +
    ///
       13128  +
    /// use rest_json_http0x::{input, output, error};
       13129  +
    ///
       13130  +
    /// async fn handler(input: input::QueryParamsAsStringListMapInput) -> output::QueryParamsAsStringListMapOutput {
       13131  +
    ///     todo!()
       13132  +
    /// }
       13133  +
    ///
       13134  +
    /// let config = RestJsonConfig::builder().build();
       13135  +
    /// let app = RestJson::builder(config)
       13136  +
    ///     .query_params_as_string_list_map(handler)
       13137  +
    ///     /* Set other handlers */
       13138  +
    ///     .build()
       13139  +
    ///     .unwrap();
       13140  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13141  +
    /// ```
       13142  +
    ///
       13143  +
                    pub fn query_params_as_string_list_map<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       13144  +
                    where
       13145  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsAsStringListMap, HandlerExtractors>,
       13146  +
       13147  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13148  +
                            RestJson<L>,
       13149  +
                            crate::operation_shape::QueryParamsAsStringListMap,
       13150  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsAsStringListMap, HandlerType>
       13151  +
                        >,
       13152  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13153  +
                            RestJson<L>,
       13154  +
                            crate::operation_shape::QueryParamsAsStringListMap,
       13155  +
                            ModelPl::Output
       13156  +
                        >,
       13157  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13158  +
                            RestJson<L>,
       13159  +
                            crate::operation_shape::QueryParamsAsStringListMap,
       13160  +
                            <
       13161  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13162  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13163  +
                                    RestJson<L>,
       13164  +
                                    crate::operation_shape::QueryParamsAsStringListMap,
       13165  +
                                    ModelPl::Output
       13166  +
                                >
       13167  +
                            >::Output
       13168  +
                        >,
       13169  +
       13170  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13171  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13172  +
       13173  +
                    {
       13174  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13175  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13176  +
        let svc = crate::operation_shape::QueryParamsAsStringListMap::from_handler(handler);
       13177  +
        let svc = self.model_plugin.apply(svc);
       13178  +
        let svc =
       13179  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13180  +
                .apply(svc);
       13181  +
        let svc = self.http_plugin.apply(svc);
       13182  +
        self.query_params_as_string_list_map_custom(svc)
       13183  +
    }
       13184  +
       13185  +
    /// Sets the [`QueryParamsAsStringListMap`](crate::operation_shape::QueryParamsAsStringListMap) operation.
       13186  +
    ///
       13187  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13188  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13189  +
    ///
       13190  +
    /// # Example
       13191  +
    ///
       13192  +
    /// ```no_run
       13193  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13194  +
    ///
       13195  +
    /// use rest_json_http0x::{input, output, error};
       13196  +
    ///
       13197  +
    /// async fn handler(input: input::QueryParamsAsStringListMapInput) -> Result<output::QueryParamsAsStringListMapOutput, std::convert::Infallible> {
       13198  +
    ///     todo!()
       13199  +
    /// }
       13200  +
    ///
       13201  +
    /// let config = RestJsonConfig::builder().build();
       13202  +
    /// let svc = ::tower::util::service_fn(handler);
       13203  +
    /// let app = RestJson::builder(config)
       13204  +
    ///     .query_params_as_string_list_map_service(svc)
       13205  +
    ///     /* Set other handlers */
       13206  +
    ///     .build()
       13207  +
    ///     .unwrap();
       13208  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13209  +
    /// ```
       13210  +
    ///
       13211  +
                    pub fn query_params_as_string_list_map_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       13212  +
                    where
       13213  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsAsStringListMap, ServiceExtractors>,
       13214  +
       13215  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13216  +
                            RestJson<L>,
       13217  +
                            crate::operation_shape::QueryParamsAsStringListMap,
       13218  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsAsStringListMap, S>
       13219  +
                        >,
       13220  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13221  +
                            RestJson<L>,
       13222  +
                            crate::operation_shape::QueryParamsAsStringListMap,
       13223  +
                            ModelPl::Output
       13224  +
                        >,
       13225  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13226  +
                            RestJson<L>,
       13227  +
                            crate::operation_shape::QueryParamsAsStringListMap,
       13228  +
                            <
       13229  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13230  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13231  +
                                    RestJson<L>,
       13232  +
                                    crate::operation_shape::QueryParamsAsStringListMap,
       13233  +
                                    ModelPl::Output
       13234  +
                                >
       13235  +
                            >::Output
       13236  +
                        >,
       13237  +
       13238  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13239  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13240  +
       13241  +
                    {
       13242  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13243  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13244  +
        let svc = crate::operation_shape::QueryParamsAsStringListMap::from_service(service);
       13245  +
        let svc = self.model_plugin.apply(svc);
       13246  +
        let svc =
       13247  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13248  +
                .apply(svc);
       13249  +
        let svc = self.http_plugin.apply(svc);
       13250  +
        self.query_params_as_string_list_map_custom(svc)
       13251  +
    }
       13252  +
       13253  +
    /// Sets the [`QueryParamsAsStringListMap`](crate::operation_shape::QueryParamsAsStringListMap) to a custom [`Service`](tower::Service).
       13254  +
    /// not constrained by the Smithy contract.
       13255  +
    fn query_params_as_string_list_map_custom<S>(mut self, svc: S) -> Self
       13256  +
    where
       13257  +
        S: ::tower::Service<
       13258  +
                ::http::Request<Body>,
       13259  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       13260  +
                Error = ::std::convert::Infallible,
       13261  +
            > + Clone
       13262  +
            + Send
       13263  +
            + 'static,
       13264  +
        S::Future: Send + 'static,
       13265  +
    {
       13266  +
        self.query_params_as_string_list_map =
       13267  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       13268  +
        self
       13269  +
    }
       13270  +
       13271  +
    /// Sets the [`QueryPrecedence`](crate::operation_shape::QueryPrecedence) operation.
       13272  +
    ///
       13273  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13274  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13275  +
    ///
       13276  +
    /// # Example
       13277  +
    ///
       13278  +
    /// ```no_run
       13279  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13280  +
    ///
       13281  +
    /// use rest_json_http0x::{input, output, error};
       13282  +
    ///
       13283  +
    /// async fn handler(input: input::QueryPrecedenceInput) -> output::QueryPrecedenceOutput {
       13284  +
    ///     todo!()
       13285  +
    /// }
       13286  +
    ///
       13287  +
    /// let config = RestJsonConfig::builder().build();
       13288  +
    /// let app = RestJson::builder(config)
       13289  +
    ///     .query_precedence(handler)
       13290  +
    ///     /* Set other handlers */
       13291  +
    ///     .build()
       13292  +
    ///     .unwrap();
       13293  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13294  +
    /// ```
       13295  +
    ///
       13296  +
                    pub fn query_precedence<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       13297  +
                    where
       13298  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryPrecedence, HandlerExtractors>,
       13299  +
       13300  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13301  +
                            RestJson<L>,
       13302  +
                            crate::operation_shape::QueryPrecedence,
       13303  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryPrecedence, HandlerType>
       13304  +
                        >,
       13305  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13306  +
                            RestJson<L>,
       13307  +
                            crate::operation_shape::QueryPrecedence,
       13308  +
                            ModelPl::Output
       13309  +
                        >,
       13310  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13311  +
                            RestJson<L>,
       13312  +
                            crate::operation_shape::QueryPrecedence,
       13313  +
                            <
       13314  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13315  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13316  +
                                    RestJson<L>,
       13317  +
                                    crate::operation_shape::QueryPrecedence,
       13318  +
                                    ModelPl::Output
       13319  +
                                >
       13320  +
                            >::Output
       13321  +
                        >,
       13322  +
       13323  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13324  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13325  +
       13326  +
                    {
       13327  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13328  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13329  +
        let svc = crate::operation_shape::QueryPrecedence::from_handler(handler);
       13330  +
        let svc = self.model_plugin.apply(svc);
       13331  +
        let svc =
       13332  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13333  +
                .apply(svc);
       13334  +
        let svc = self.http_plugin.apply(svc);
       13335  +
        self.query_precedence_custom(svc)
       13336  +
    }
       13337  +
       13338  +
    /// Sets the [`QueryPrecedence`](crate::operation_shape::QueryPrecedence) operation.
       13339  +
    ///
       13340  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13341  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13342  +
    ///
       13343  +
    /// # Example
       13344  +
    ///
       13345  +
    /// ```no_run
       13346  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13347  +
    ///
       13348  +
    /// use rest_json_http0x::{input, output, error};
       13349  +
    ///
       13350  +
    /// async fn handler(input: input::QueryPrecedenceInput) -> Result<output::QueryPrecedenceOutput, std::convert::Infallible> {
       13351  +
    ///     todo!()
       13352  +
    /// }
       13353  +
    ///
       13354  +
    /// let config = RestJsonConfig::builder().build();
       13355  +
    /// let svc = ::tower::util::service_fn(handler);
       13356  +
    /// let app = RestJson::builder(config)
       13357  +
    ///     .query_precedence_service(svc)
       13358  +
    ///     /* Set other handlers */
       13359  +
    ///     .build()
       13360  +
    ///     .unwrap();
       13361  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13362  +
    /// ```
       13363  +
    ///
       13364  +
                    pub fn query_precedence_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       13365  +
                    where
       13366  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryPrecedence, ServiceExtractors>,
       13367  +
       13368  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13369  +
                            RestJson<L>,
       13370  +
                            crate::operation_shape::QueryPrecedence,
       13371  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryPrecedence, S>
       13372  +
                        >,
       13373  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13374  +
                            RestJson<L>,
       13375  +
                            crate::operation_shape::QueryPrecedence,
       13376  +
                            ModelPl::Output
       13377  +
                        >,
       13378  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13379  +
                            RestJson<L>,
       13380  +
                            crate::operation_shape::QueryPrecedence,
       13381  +
                            <
       13382  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13383  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13384  +
                                    RestJson<L>,
       13385  +
                                    crate::operation_shape::QueryPrecedence,
       13386  +
                                    ModelPl::Output
       13387  +
                                >
       13388  +
                            >::Output
       13389  +
                        >,
       13390  +
       13391  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13392  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13393  +
       13394  +
                    {
       13395  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13396  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13397  +
        let svc = crate::operation_shape::QueryPrecedence::from_service(service);
       13398  +
        let svc = self.model_plugin.apply(svc);
       13399  +
        let svc =
       13400  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13401  +
                .apply(svc);
       13402  +
        let svc = self.http_plugin.apply(svc);
       13403  +
        self.query_precedence_custom(svc)
       13404  +
    }
       13405  +
       13406  +
    /// Sets the [`QueryPrecedence`](crate::operation_shape::QueryPrecedence) to a custom [`Service`](tower::Service).
       13407  +
    /// not constrained by the Smithy contract.
       13408  +
    fn query_precedence_custom<S>(mut self, svc: S) -> Self
       13409  +
    where
       13410  +
        S: ::tower::Service<
       13411  +
                ::http::Request<Body>,
       13412  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       13413  +
                Error = ::std::convert::Infallible,
       13414  +
            > + Clone
       13415  +
            + Send
       13416  +
            + 'static,
       13417  +
        S::Future: Send + 'static,
       13418  +
    {
       13419  +
        self.query_precedence = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       13420  +
        self
       13421  +
    }
       13422  +
       13423  +
    /// Sets the [`RecursiveShapes`](crate::operation_shape::RecursiveShapes) operation.
       13424  +
    ///
       13425  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13426  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13427  +
    ///
       13428  +
    /// # Example
       13429  +
    ///
       13430  +
    /// ```no_run
       13431  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13432  +
    ///
       13433  +
    /// use rest_json_http0x::{input, output, error};
       13434  +
    ///
       13435  +
    /// async fn handler(input: input::RecursiveShapesInput) -> output::RecursiveShapesOutput {
       13436  +
    ///     todo!()
       13437  +
    /// }
       13438  +
    ///
       13439  +
    /// let config = RestJsonConfig::builder().build();
       13440  +
    /// let app = RestJson::builder(config)
       13441  +
    ///     .recursive_shapes(handler)
       13442  +
    ///     /* Set other handlers */
       13443  +
    ///     .build()
       13444  +
    ///     .unwrap();
       13445  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13446  +
    /// ```
       13447  +
    ///
       13448  +
                    pub fn recursive_shapes<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       13449  +
                    where
       13450  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::RecursiveShapes, HandlerExtractors>,
       13451  +
       13452  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13453  +
                            RestJson<L>,
       13454  +
                            crate::operation_shape::RecursiveShapes,
       13455  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::RecursiveShapes, HandlerType>
       13456  +
                        >,
       13457  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13458  +
                            RestJson<L>,
       13459  +
                            crate::operation_shape::RecursiveShapes,
       13460  +
                            ModelPl::Output
       13461  +
                        >,
       13462  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13463  +
                            RestJson<L>,
       13464  +
                            crate::operation_shape::RecursiveShapes,
       13465  +
                            <
       13466  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13467  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13468  +
                                    RestJson<L>,
       13469  +
                                    crate::operation_shape::RecursiveShapes,
       13470  +
                                    ModelPl::Output
       13471  +
                                >
       13472  +
                            >::Output
       13473  +
                        >,
       13474  +
       13475  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13476  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13477  +
       13478  +
                    {
       13479  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13480  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13481  +
        let svc = crate::operation_shape::RecursiveShapes::from_handler(handler);
       13482  +
        let svc = self.model_plugin.apply(svc);
       13483  +
        let svc =
       13484  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13485  +
                .apply(svc);
       13486  +
        let svc = self.http_plugin.apply(svc);
       13487  +
        self.recursive_shapes_custom(svc)
       13488  +
    }
       13489  +
       13490  +
    /// Sets the [`RecursiveShapes`](crate::operation_shape::RecursiveShapes) operation.
       13491  +
    ///
       13492  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13493  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13494  +
    ///
       13495  +
    /// # Example
       13496  +
    ///
       13497  +
    /// ```no_run
       13498  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13499  +
    ///
       13500  +
    /// use rest_json_http0x::{input, output, error};
       13501  +
    ///
       13502  +
    /// async fn handler(input: input::RecursiveShapesInput) -> Result<output::RecursiveShapesOutput, std::convert::Infallible> {
       13503  +
    ///     todo!()
       13504  +
    /// }
       13505  +
    ///
       13506  +
    /// let config = RestJsonConfig::builder().build();
       13507  +
    /// let svc = ::tower::util::service_fn(handler);
       13508  +
    /// let app = RestJson::builder(config)
       13509  +
    ///     .recursive_shapes_service(svc)
       13510  +
    ///     /* Set other handlers */
       13511  +
    ///     .build()
       13512  +
    ///     .unwrap();
       13513  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13514  +
    /// ```
       13515  +
    ///
       13516  +
                    pub fn recursive_shapes_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       13517  +
                    where
       13518  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::RecursiveShapes, ServiceExtractors>,
       13519  +
       13520  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13521  +
                            RestJson<L>,
       13522  +
                            crate::operation_shape::RecursiveShapes,
       13523  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::RecursiveShapes, S>
       13524  +
                        >,
       13525  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13526  +
                            RestJson<L>,
       13527  +
                            crate::operation_shape::RecursiveShapes,
       13528  +
                            ModelPl::Output
       13529  +
                        >,
       13530  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13531  +
                            RestJson<L>,
       13532  +
                            crate::operation_shape::RecursiveShapes,
       13533  +
                            <
       13534  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13535  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13536  +
                                    RestJson<L>,
       13537  +
                                    crate::operation_shape::RecursiveShapes,
       13538  +
                                    ModelPl::Output
       13539  +
                                >
       13540  +
                            >::Output
       13541  +
                        >,
       13542  +
       13543  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13544  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13545  +
       13546  +
                    {
       13547  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13548  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13549  +
        let svc = crate::operation_shape::RecursiveShapes::from_service(service);
       13550  +
        let svc = self.model_plugin.apply(svc);
       13551  +
        let svc =
       13552  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13553  +
                .apply(svc);
       13554  +
        let svc = self.http_plugin.apply(svc);
       13555  +
        self.recursive_shapes_custom(svc)
       13556  +
    }
       13557  +
       13558  +
    /// Sets the [`RecursiveShapes`](crate::operation_shape::RecursiveShapes) to a custom [`Service`](tower::Service).
       13559  +
    /// not constrained by the Smithy contract.
       13560  +
    fn recursive_shapes_custom<S>(mut self, svc: S) -> Self
       13561  +
    where
       13562  +
        S: ::tower::Service<
       13563  +
                ::http::Request<Body>,
       13564  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       13565  +
                Error = ::std::convert::Infallible,
       13566  +
            > + Clone
       13567  +
            + Send
       13568  +
            + 'static,
       13569  +
        S::Future: Send + 'static,
       13570  +
    {
       13571  +
        self.recursive_shapes = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       13572  +
        self
       13573  +
    }
       13574  +
       13575  +
    /// Sets the [`ResponseCodeHttpFallback`](crate::operation_shape::ResponseCodeHttpFallback) operation.
       13576  +
    ///
       13577  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13578  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13579  +
    ///
       13580  +
    /// # Example
       13581  +
    ///
       13582  +
    /// ```no_run
       13583  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13584  +
    ///
       13585  +
    /// use rest_json_http0x::{input, output, error};
       13586  +
    ///
       13587  +
    /// async fn handler(input: input::ResponseCodeHttpFallbackInput) -> output::ResponseCodeHttpFallbackOutput {
       13588  +
    ///     todo!()
       13589  +
    /// }
       13590  +
    ///
       13591  +
    /// let config = RestJsonConfig::builder().build();
       13592  +
    /// let app = RestJson::builder(config)
       13593  +
    ///     .response_code_http_fallback(handler)
       13594  +
    ///     /* Set other handlers */
       13595  +
    ///     .build()
       13596  +
    ///     .unwrap();
       13597  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13598  +
    /// ```
       13599  +
    ///
       13600  +
                    pub fn response_code_http_fallback<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       13601  +
                    where
       13602  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ResponseCodeHttpFallback, HandlerExtractors>,
       13603  +
       13604  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13605  +
                            RestJson<L>,
       13606  +
                            crate::operation_shape::ResponseCodeHttpFallback,
       13607  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ResponseCodeHttpFallback, HandlerType>
       13608  +
                        >,
       13609  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13610  +
                            RestJson<L>,
       13611  +
                            crate::operation_shape::ResponseCodeHttpFallback,
       13612  +
                            ModelPl::Output
       13613  +
                        >,
       13614  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13615  +
                            RestJson<L>,
       13616  +
                            crate::operation_shape::ResponseCodeHttpFallback,
       13617  +
                            <
       13618  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13619  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13620  +
                                    RestJson<L>,
       13621  +
                                    crate::operation_shape::ResponseCodeHttpFallback,
       13622  +
                                    ModelPl::Output
       13623  +
                                >
       13624  +
                            >::Output
       13625  +
                        >,
       13626  +
       13627  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13628  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13629  +
       13630  +
                    {
       13631  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13632  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13633  +
        let svc = crate::operation_shape::ResponseCodeHttpFallback::from_handler(handler);
       13634  +
        let svc = self.model_plugin.apply(svc);
       13635  +
        let svc =
       13636  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13637  +
                .apply(svc);
       13638  +
        let svc = self.http_plugin.apply(svc);
       13639  +
        self.response_code_http_fallback_custom(svc)
       13640  +
    }
       13641  +
       13642  +
    /// Sets the [`ResponseCodeHttpFallback`](crate::operation_shape::ResponseCodeHttpFallback) operation.
       13643  +
    ///
       13644  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13645  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13646  +
    ///
       13647  +
    /// # Example
       13648  +
    ///
       13649  +
    /// ```no_run
       13650  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13651  +
    ///
       13652  +
    /// use rest_json_http0x::{input, output, error};
       13653  +
    ///
       13654  +
    /// async fn handler(input: input::ResponseCodeHttpFallbackInput) -> Result<output::ResponseCodeHttpFallbackOutput, std::convert::Infallible> {
       13655  +
    ///     todo!()
       13656  +
    /// }
       13657  +
    ///
       13658  +
    /// let config = RestJsonConfig::builder().build();
       13659  +
    /// let svc = ::tower::util::service_fn(handler);
       13660  +
    /// let app = RestJson::builder(config)
       13661  +
    ///     .response_code_http_fallback_service(svc)
       13662  +
    ///     /* Set other handlers */
       13663  +
    ///     .build()
       13664  +
    ///     .unwrap();
       13665  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13666  +
    /// ```
       13667  +
    ///
       13668  +
                    pub fn response_code_http_fallback_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       13669  +
                    where
       13670  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ResponseCodeHttpFallback, ServiceExtractors>,
       13671  +
       13672  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13673  +
                            RestJson<L>,
       13674  +
                            crate::operation_shape::ResponseCodeHttpFallback,
       13675  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ResponseCodeHttpFallback, S>
       13676  +
                        >,
       13677  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13678  +
                            RestJson<L>,
       13679  +
                            crate::operation_shape::ResponseCodeHttpFallback,
       13680  +
                            ModelPl::Output
       13681  +
                        >,
       13682  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13683  +
                            RestJson<L>,
       13684  +
                            crate::operation_shape::ResponseCodeHttpFallback,
       13685  +
                            <
       13686  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13687  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13688  +
                                    RestJson<L>,
       13689  +
                                    crate::operation_shape::ResponseCodeHttpFallback,
       13690  +
                                    ModelPl::Output
       13691  +
                                >
       13692  +
                            >::Output
       13693  +
                        >,
       13694  +
       13695  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13696  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13697  +
       13698  +
                    {
       13699  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13700  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13701  +
        let svc = crate::operation_shape::ResponseCodeHttpFallback::from_service(service);
       13702  +
        let svc = self.model_plugin.apply(svc);
       13703  +
        let svc =
       13704  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13705  +
                .apply(svc);
       13706  +
        let svc = self.http_plugin.apply(svc);
       13707  +
        self.response_code_http_fallback_custom(svc)
       13708  +
    }
       13709  +
       13710  +
    /// Sets the [`ResponseCodeHttpFallback`](crate::operation_shape::ResponseCodeHttpFallback) to a custom [`Service`](tower::Service).
       13711  +
    /// not constrained by the Smithy contract.
       13712  +
    fn response_code_http_fallback_custom<S>(mut self, svc: S) -> Self
       13713  +
    where
       13714  +
        S: ::tower::Service<
       13715  +
                ::http::Request<Body>,
       13716  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       13717  +
                Error = ::std::convert::Infallible,
       13718  +
            > + Clone
       13719  +
            + Send
       13720  +
            + 'static,
       13721  +
        S::Future: Send + 'static,
       13722  +
    {
       13723  +
        self.response_code_http_fallback =
       13724  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       13725  +
        self
       13726  +
    }
       13727  +
       13728  +
    /// Sets the [`ResponseCodeRequired`](crate::operation_shape::ResponseCodeRequired) operation.
       13729  +
    ///
       13730  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13731  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13732  +
    ///
       13733  +
    /// # Example
       13734  +
    ///
       13735  +
    /// ```no_run
       13736  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13737  +
    ///
       13738  +
    /// use rest_json_http0x::{input, output, error};
       13739  +
    ///
       13740  +
    /// async fn handler(input: input::ResponseCodeRequiredInput) -> output::ResponseCodeRequiredOutput {
       13741  +
    ///     todo!()
       13742  +
    /// }
       13743  +
    ///
       13744  +
    /// let config = RestJsonConfig::builder().build();
       13745  +
    /// let app = RestJson::builder(config)
       13746  +
    ///     .response_code_required(handler)
       13747  +
    ///     /* Set other handlers */
       13748  +
    ///     .build()
       13749  +
    ///     .unwrap();
       13750  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13751  +
    /// ```
       13752  +
    ///
       13753  +
                    pub fn response_code_required<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       13754  +
                    where
       13755  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ResponseCodeRequired, HandlerExtractors>,
       13756  +
       13757  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13758  +
                            RestJson<L>,
       13759  +
                            crate::operation_shape::ResponseCodeRequired,
       13760  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ResponseCodeRequired, HandlerType>
       13761  +
                        >,
       13762  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13763  +
                            RestJson<L>,
       13764  +
                            crate::operation_shape::ResponseCodeRequired,
       13765  +
                            ModelPl::Output
       13766  +
                        >,
       13767  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13768  +
                            RestJson<L>,
       13769  +
                            crate::operation_shape::ResponseCodeRequired,
       13770  +
                            <
       13771  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13772  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13773  +
                                    RestJson<L>,
       13774  +
                                    crate::operation_shape::ResponseCodeRequired,
       13775  +
                                    ModelPl::Output
       13776  +
                                >
       13777  +
                            >::Output
       13778  +
                        >,
       13779  +
       13780  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13781  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13782  +
       13783  +
                    {
       13784  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13785  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13786  +
        let svc = crate::operation_shape::ResponseCodeRequired::from_handler(handler);
       13787  +
        let svc = self.model_plugin.apply(svc);
       13788  +
        let svc =
       13789  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13790  +
                .apply(svc);
       13791  +
        let svc = self.http_plugin.apply(svc);
       13792  +
        self.response_code_required_custom(svc)
       13793  +
    }
       13794  +
       13795  +
    /// Sets the [`ResponseCodeRequired`](crate::operation_shape::ResponseCodeRequired) operation.
       13796  +
    ///
       13797  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13798  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13799  +
    ///
       13800  +
    /// # Example
       13801  +
    ///
       13802  +
    /// ```no_run
       13803  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13804  +
    ///
       13805  +
    /// use rest_json_http0x::{input, output, error};
       13806  +
    ///
       13807  +
    /// async fn handler(input: input::ResponseCodeRequiredInput) -> Result<output::ResponseCodeRequiredOutput, std::convert::Infallible> {
       13808  +
    ///     todo!()
       13809  +
    /// }
       13810  +
    ///
       13811  +
    /// let config = RestJsonConfig::builder().build();
       13812  +
    /// let svc = ::tower::util::service_fn(handler);
       13813  +
    /// let app = RestJson::builder(config)
       13814  +
    ///     .response_code_required_service(svc)
       13815  +
    ///     /* Set other handlers */
       13816  +
    ///     .build()
       13817  +
    ///     .unwrap();
       13818  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13819  +
    /// ```
       13820  +
    ///
       13821  +
                    pub fn response_code_required_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       13822  +
                    where
       13823  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ResponseCodeRequired, ServiceExtractors>,
       13824  +
       13825  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13826  +
                            RestJson<L>,
       13827  +
                            crate::operation_shape::ResponseCodeRequired,
       13828  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ResponseCodeRequired, S>
       13829  +
                        >,
       13830  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13831  +
                            RestJson<L>,
       13832  +
                            crate::operation_shape::ResponseCodeRequired,
       13833  +
                            ModelPl::Output
       13834  +
                        >,
       13835  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13836  +
                            RestJson<L>,
       13837  +
                            crate::operation_shape::ResponseCodeRequired,
       13838  +
                            <
       13839  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13840  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13841  +
                                    RestJson<L>,
       13842  +
                                    crate::operation_shape::ResponseCodeRequired,
       13843  +
                                    ModelPl::Output
       13844  +
                                >
       13845  +
                            >::Output
       13846  +
                        >,
       13847  +
       13848  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13849  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13850  +
       13851  +
                    {
       13852  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13853  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13854  +
        let svc = crate::operation_shape::ResponseCodeRequired::from_service(service);
       13855  +
        let svc = self.model_plugin.apply(svc);
       13856  +
        let svc =
       13857  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13858  +
                .apply(svc);
       13859  +
        let svc = self.http_plugin.apply(svc);
       13860  +
        self.response_code_required_custom(svc)
       13861  +
    }
       13862  +
       13863  +
    /// Sets the [`ResponseCodeRequired`](crate::operation_shape::ResponseCodeRequired) to a custom [`Service`](tower::Service).
       13864  +
    /// not constrained by the Smithy contract.
       13865  +
    fn response_code_required_custom<S>(mut self, svc: S) -> Self
       13866  +
    where
       13867  +
        S: ::tower::Service<
       13868  +
                ::http::Request<Body>,
       13869  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       13870  +
                Error = ::std::convert::Infallible,
       13871  +
            > + Clone
       13872  +
            + Send
       13873  +
            + 'static,
       13874  +
        S::Future: Send + 'static,
       13875  +
    {
       13876  +
        self.response_code_required =
       13877  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       13878  +
        self
       13879  +
    }
       13880  +
       13881  +
    /// Sets the [`SimpleScalarProperties`](crate::operation_shape::SimpleScalarProperties) operation.
       13882  +
    ///
       13883  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13884  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13885  +
    ///
       13886  +
    /// # Example
       13887  +
    ///
       13888  +
    /// ```no_run
       13889  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13890  +
    ///
       13891  +
    /// use rest_json_http0x::{input, output, error};
       13892  +
    ///
       13893  +
    /// async fn handler(input: input::SimpleScalarPropertiesInput) -> output::SimpleScalarPropertiesOutput {
       13894  +
    ///     todo!()
       13895  +
    /// }
       13896  +
    ///
       13897  +
    /// let config = RestJsonConfig::builder().build();
       13898  +
    /// let app = RestJson::builder(config)
       13899  +
    ///     .simple_scalar_properties(handler)
       13900  +
    ///     /* Set other handlers */
       13901  +
    ///     .build()
       13902  +
    ///     .unwrap();
       13903  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13904  +
    /// ```
       13905  +
    ///
       13906  +
                    pub fn simple_scalar_properties<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       13907  +
                    where
       13908  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::SimpleScalarProperties, HandlerExtractors>,
       13909  +
       13910  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13911  +
                            RestJson<L>,
       13912  +
                            crate::operation_shape::SimpleScalarProperties,
       13913  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::SimpleScalarProperties, HandlerType>
       13914  +
                        >,
       13915  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13916  +
                            RestJson<L>,
       13917  +
                            crate::operation_shape::SimpleScalarProperties,
       13918  +
                            ModelPl::Output
       13919  +
                        >,
       13920  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13921  +
                            RestJson<L>,
       13922  +
                            crate::operation_shape::SimpleScalarProperties,
       13923  +
                            <
       13924  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13925  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13926  +
                                    RestJson<L>,
       13927  +
                                    crate::operation_shape::SimpleScalarProperties,
       13928  +
                                    ModelPl::Output
       13929  +
                                >
       13930  +
                            >::Output
       13931  +
                        >,
       13932  +
       13933  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       13934  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       13935  +
       13936  +
                    {
       13937  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       13938  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       13939  +
        let svc = crate::operation_shape::SimpleScalarProperties::from_handler(handler);
       13940  +
        let svc = self.model_plugin.apply(svc);
       13941  +
        let svc =
       13942  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       13943  +
                .apply(svc);
       13944  +
        let svc = self.http_plugin.apply(svc);
       13945  +
        self.simple_scalar_properties_custom(svc)
       13946  +
    }
       13947  +
       13948  +
    /// Sets the [`SimpleScalarProperties`](crate::operation_shape::SimpleScalarProperties) operation.
       13949  +
    ///
       13950  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       13951  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       13952  +
    ///
       13953  +
    /// # Example
       13954  +
    ///
       13955  +
    /// ```no_run
       13956  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       13957  +
    ///
       13958  +
    /// use rest_json_http0x::{input, output, error};
       13959  +
    ///
       13960  +
    /// async fn handler(input: input::SimpleScalarPropertiesInput) -> Result<output::SimpleScalarPropertiesOutput, std::convert::Infallible> {
       13961  +
    ///     todo!()
       13962  +
    /// }
       13963  +
    ///
       13964  +
    /// let config = RestJsonConfig::builder().build();
       13965  +
    /// let svc = ::tower::util::service_fn(handler);
       13966  +
    /// let app = RestJson::builder(config)
       13967  +
    ///     .simple_scalar_properties_service(svc)
       13968  +
    ///     /* Set other handlers */
       13969  +
    ///     .build()
       13970  +
    ///     .unwrap();
       13971  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       13972  +
    /// ```
       13973  +
    ///
       13974  +
                    pub fn simple_scalar_properties_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       13975  +
                    where
       13976  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::SimpleScalarProperties, ServiceExtractors>,
       13977  +
       13978  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13979  +
                            RestJson<L>,
       13980  +
                            crate::operation_shape::SimpleScalarProperties,
       13981  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::SimpleScalarProperties, S>
       13982  +
                        >,
       13983  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13984  +
                            RestJson<L>,
       13985  +
                            crate::operation_shape::SimpleScalarProperties,
       13986  +
                            ModelPl::Output
       13987  +
                        >,
       13988  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       13989  +
                            RestJson<L>,
       13990  +
                            crate::operation_shape::SimpleScalarProperties,
       13991  +
                            <
       13992  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       13993  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       13994  +
                                    RestJson<L>,
       13995  +
                                    crate::operation_shape::SimpleScalarProperties,
       13996  +
                                    ModelPl::Output
       13997  +
                                >
       13998  +
                            >::Output
       13999  +
                        >,
       14000  +
       14001  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14002  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14003  +
       14004  +
                    {
       14005  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14006  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14007  +
        let svc = crate::operation_shape::SimpleScalarProperties::from_service(service);
       14008  +
        let svc = self.model_plugin.apply(svc);
       14009  +
        let svc =
       14010  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14011  +
                .apply(svc);
       14012  +
        let svc = self.http_plugin.apply(svc);
       14013  +
        self.simple_scalar_properties_custom(svc)
       14014  +
    }
       14015  +
       14016  +
    /// Sets the [`SimpleScalarProperties`](crate::operation_shape::SimpleScalarProperties) to a custom [`Service`](tower::Service).
       14017  +
    /// not constrained by the Smithy contract.
       14018  +
    fn simple_scalar_properties_custom<S>(mut self, svc: S) -> Self
       14019  +
    where
       14020  +
        S: ::tower::Service<
       14021  +
                ::http::Request<Body>,
       14022  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       14023  +
                Error = ::std::convert::Infallible,
       14024  +
            > + Clone
       14025  +
            + Send
       14026  +
            + 'static,
       14027  +
        S::Future: Send + 'static,
       14028  +
    {
       14029  +
        self.simple_scalar_properties =
       14030  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       14031  +
        self
       14032  +
    }
       14033  +
       14034  +
    /// Sets the [`SparseJsonLists`](crate::operation_shape::SparseJsonLists) operation.
       14035  +
    ///
       14036  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14037  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14038  +
    ///
       14039  +
    /// # Example
       14040  +
    ///
       14041  +
    /// ```no_run
       14042  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14043  +
    ///
       14044  +
    /// use rest_json_http0x::{input, output, error};
       14045  +
    ///
       14046  +
    /// async fn handler(input: input::SparseJsonListsInput) -> output::SparseJsonListsOutput {
       14047  +
    ///     todo!()
       14048  +
    /// }
       14049  +
    ///
       14050  +
    /// let config = RestJsonConfig::builder().build();
       14051  +
    /// let app = RestJson::builder(config)
       14052  +
    ///     .sparse_json_lists(handler)
       14053  +
    ///     /* Set other handlers */
       14054  +
    ///     .build()
       14055  +
    ///     .unwrap();
       14056  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14057  +
    /// ```
       14058  +
    ///
       14059  +
                    pub fn sparse_json_lists<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       14060  +
                    where
       14061  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::SparseJsonLists, HandlerExtractors>,
       14062  +
       14063  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14064  +
                            RestJson<L>,
       14065  +
                            crate::operation_shape::SparseJsonLists,
       14066  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::SparseJsonLists, HandlerType>
       14067  +
                        >,
       14068  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14069  +
                            RestJson<L>,
       14070  +
                            crate::operation_shape::SparseJsonLists,
       14071  +
                            ModelPl::Output
       14072  +
                        >,
       14073  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14074  +
                            RestJson<L>,
       14075  +
                            crate::operation_shape::SparseJsonLists,
       14076  +
                            <
       14077  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14078  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14079  +
                                    RestJson<L>,
       14080  +
                                    crate::operation_shape::SparseJsonLists,
       14081  +
                                    ModelPl::Output
       14082  +
                                >
       14083  +
                            >::Output
       14084  +
                        >,
       14085  +
       14086  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14087  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14088  +
       14089  +
                    {
       14090  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14091  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14092  +
        let svc = crate::operation_shape::SparseJsonLists::from_handler(handler);
       14093  +
        let svc = self.model_plugin.apply(svc);
       14094  +
        let svc =
       14095  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14096  +
                .apply(svc);
       14097  +
        let svc = self.http_plugin.apply(svc);
       14098  +
        self.sparse_json_lists_custom(svc)
       14099  +
    }
       14100  +
       14101  +
    /// Sets the [`SparseJsonLists`](crate::operation_shape::SparseJsonLists) operation.
       14102  +
    ///
       14103  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14104  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14105  +
    ///
       14106  +
    /// # Example
       14107  +
    ///
       14108  +
    /// ```no_run
       14109  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14110  +
    ///
       14111  +
    /// use rest_json_http0x::{input, output, error};
       14112  +
    ///
       14113  +
    /// async fn handler(input: input::SparseJsonListsInput) -> Result<output::SparseJsonListsOutput, std::convert::Infallible> {
       14114  +
    ///     todo!()
       14115  +
    /// }
       14116  +
    ///
       14117  +
    /// let config = RestJsonConfig::builder().build();
       14118  +
    /// let svc = ::tower::util::service_fn(handler);
       14119  +
    /// let app = RestJson::builder(config)
       14120  +
    ///     .sparse_json_lists_service(svc)
       14121  +
    ///     /* Set other handlers */
       14122  +
    ///     .build()
       14123  +
    ///     .unwrap();
       14124  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14125  +
    /// ```
       14126  +
    ///
       14127  +
                    pub fn sparse_json_lists_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       14128  +
                    where
       14129  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::SparseJsonLists, ServiceExtractors>,
       14130  +
       14131  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14132  +
                            RestJson<L>,
       14133  +
                            crate::operation_shape::SparseJsonLists,
       14134  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::SparseJsonLists, S>
       14135  +
                        >,
       14136  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14137  +
                            RestJson<L>,
       14138  +
                            crate::operation_shape::SparseJsonLists,
       14139  +
                            ModelPl::Output
       14140  +
                        >,
       14141  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14142  +
                            RestJson<L>,
       14143  +
                            crate::operation_shape::SparseJsonLists,
       14144  +
                            <
       14145  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14146  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14147  +
                                    RestJson<L>,
       14148  +
                                    crate::operation_shape::SparseJsonLists,
       14149  +
                                    ModelPl::Output
       14150  +
                                >
       14151  +
                            >::Output
       14152  +
                        >,
       14153  +
       14154  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14155  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14156  +
       14157  +
                    {
       14158  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14159  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14160  +
        let svc = crate::operation_shape::SparseJsonLists::from_service(service);
       14161  +
        let svc = self.model_plugin.apply(svc);
       14162  +
        let svc =
       14163  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14164  +
                .apply(svc);
       14165  +
        let svc = self.http_plugin.apply(svc);
       14166  +
        self.sparse_json_lists_custom(svc)
       14167  +
    }
       14168  +
       14169  +
    /// Sets the [`SparseJsonLists`](crate::operation_shape::SparseJsonLists) to a custom [`Service`](tower::Service).
       14170  +
    /// not constrained by the Smithy contract.
       14171  +
    fn sparse_json_lists_custom<S>(mut self, svc: S) -> Self
       14172  +
    where
       14173  +
        S: ::tower::Service<
       14174  +
                ::http::Request<Body>,
       14175  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       14176  +
                Error = ::std::convert::Infallible,
       14177  +
            > + Clone
       14178  +
            + Send
       14179  +
            + 'static,
       14180  +
        S::Future: Send + 'static,
       14181  +
    {
       14182  +
        self.sparse_json_lists = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       14183  +
        self
       14184  +
    }
       14185  +
       14186  +
    /// Sets the [`SparseJsonMaps`](crate::operation_shape::SparseJsonMaps) operation.
       14187  +
    ///
       14188  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14189  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14190  +
    ///
       14191  +
    /// # Example
       14192  +
    ///
       14193  +
    /// ```no_run
       14194  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14195  +
    ///
       14196  +
    /// use rest_json_http0x::{input, output, error};
       14197  +
    ///
       14198  +
    /// async fn handler(input: input::SparseJsonMapsInput) -> Result<output::SparseJsonMapsOutput, error::SparseJsonMapsError> {
       14199  +
    ///     todo!()
       14200  +
    /// }
       14201  +
    ///
       14202  +
    /// let config = RestJsonConfig::builder().build();
       14203  +
    /// let app = RestJson::builder(config)
       14204  +
    ///     .sparse_json_maps(handler)
       14205  +
    ///     /* Set other handlers */
       14206  +
    ///     .build()
       14207  +
    ///     .unwrap();
       14208  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14209  +
    /// ```
       14210  +
    ///
       14211  +
                    pub fn sparse_json_maps<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       14212  +
                    where
       14213  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::SparseJsonMaps, HandlerExtractors>,
       14214  +
       14215  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14216  +
                            RestJson<L>,
       14217  +
                            crate::operation_shape::SparseJsonMaps,
       14218  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::SparseJsonMaps, HandlerType>
       14219  +
                        >,
       14220  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14221  +
                            RestJson<L>,
       14222  +
                            crate::operation_shape::SparseJsonMaps,
       14223  +
                            ModelPl::Output
       14224  +
                        >,
       14225  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14226  +
                            RestJson<L>,
       14227  +
                            crate::operation_shape::SparseJsonMaps,
       14228  +
                            <
       14229  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14230  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14231  +
                                    RestJson<L>,
       14232  +
                                    crate::operation_shape::SparseJsonMaps,
       14233  +
                                    ModelPl::Output
       14234  +
                                >
       14235  +
                            >::Output
       14236  +
                        >,
       14237  +
       14238  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14239  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14240  +
       14241  +
                    {
       14242  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14243  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14244  +
        let svc = crate::operation_shape::SparseJsonMaps::from_handler(handler);
       14245  +
        let svc = self.model_plugin.apply(svc);
       14246  +
        let svc =
       14247  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14248  +
                .apply(svc);
       14249  +
        let svc = self.http_plugin.apply(svc);
       14250  +
        self.sparse_json_maps_custom(svc)
       14251  +
    }
       14252  +
       14253  +
    /// Sets the [`SparseJsonMaps`](crate::operation_shape::SparseJsonMaps) operation.
       14254  +
    ///
       14255  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14256  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14257  +
    ///
       14258  +
    /// # Example
       14259  +
    ///
       14260  +
    /// ```no_run
       14261  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14262  +
    ///
       14263  +
    /// use rest_json_http0x::{input, output, error};
       14264  +
    ///
       14265  +
    /// async fn handler(input: input::SparseJsonMapsInput) -> Result<output::SparseJsonMapsOutput, error::SparseJsonMapsError> {
       14266  +
    ///     todo!()
       14267  +
    /// }
       14268  +
    ///
       14269  +
    /// let config = RestJsonConfig::builder().build();
       14270  +
    /// let svc = ::tower::util::service_fn(handler);
       14271  +
    /// let app = RestJson::builder(config)
       14272  +
    ///     .sparse_json_maps_service(svc)
       14273  +
    ///     /* Set other handlers */
       14274  +
    ///     .build()
       14275  +
    ///     .unwrap();
       14276  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14277  +
    /// ```
       14278  +
    ///
       14279  +
                    pub fn sparse_json_maps_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       14280  +
                    where
       14281  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::SparseJsonMaps, ServiceExtractors>,
       14282  +
       14283  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14284  +
                            RestJson<L>,
       14285  +
                            crate::operation_shape::SparseJsonMaps,
       14286  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::SparseJsonMaps, S>
       14287  +
                        >,
       14288  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14289  +
                            RestJson<L>,
       14290  +
                            crate::operation_shape::SparseJsonMaps,
       14291  +
                            ModelPl::Output
       14292  +
                        >,
       14293  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14294  +
                            RestJson<L>,
       14295  +
                            crate::operation_shape::SparseJsonMaps,
       14296  +
                            <
       14297  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14298  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14299  +
                                    RestJson<L>,
       14300  +
                                    crate::operation_shape::SparseJsonMaps,
       14301  +
                                    ModelPl::Output
       14302  +
                                >
       14303  +
                            >::Output
       14304  +
                        >,
       14305  +
       14306  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14307  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14308  +
       14309  +
                    {
       14310  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14311  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14312  +
        let svc = crate::operation_shape::SparseJsonMaps::from_service(service);
       14313  +
        let svc = self.model_plugin.apply(svc);
       14314  +
        let svc =
       14315  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14316  +
                .apply(svc);
       14317  +
        let svc = self.http_plugin.apply(svc);
       14318  +
        self.sparse_json_maps_custom(svc)
       14319  +
    }
       14320  +
       14321  +
    /// Sets the [`SparseJsonMaps`](crate::operation_shape::SparseJsonMaps) to a custom [`Service`](tower::Service).
       14322  +
    /// not constrained by the Smithy contract.
       14323  +
    fn sparse_json_maps_custom<S>(mut self, svc: S) -> Self
       14324  +
    where
       14325  +
        S: ::tower::Service<
       14326  +
                ::http::Request<Body>,
       14327  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       14328  +
                Error = ::std::convert::Infallible,
       14329  +
            > + Clone
       14330  +
            + Send
       14331  +
            + 'static,
       14332  +
        S::Future: Send + 'static,
       14333  +
    {
       14334  +
        self.sparse_json_maps = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       14335  +
        self
       14336  +
    }
       14337  +
       14338  +
    /// Sets the [`StreamingTraits`](crate::operation_shape::StreamingTraits) operation.
       14339  +
    ///
       14340  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14341  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14342  +
    ///
       14343  +
    /// # Example
       14344  +
    ///
       14345  +
    /// ```no_run
       14346  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14347  +
    ///
       14348  +
    /// use rest_json_http0x::{input, output, error};
       14349  +
    ///
       14350  +
    /// async fn handler(input: input::StreamingTraitsInput) -> output::StreamingTraitsOutput {
       14351  +
    ///     todo!()
       14352  +
    /// }
       14353  +
    ///
       14354  +
    /// let config = RestJsonConfig::builder().build();
       14355  +
    /// let app = RestJson::builder(config)
       14356  +
    ///     .streaming_traits(handler)
       14357  +
    ///     /* Set other handlers */
       14358  +
    ///     .build()
       14359  +
    ///     .unwrap();
       14360  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14361  +
    /// ```
       14362  +
    ///
       14363  +
                    pub fn streaming_traits<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       14364  +
                    where
       14365  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::StreamingTraits, HandlerExtractors>,
       14366  +
       14367  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14368  +
                            RestJson<L>,
       14369  +
                            crate::operation_shape::StreamingTraits,
       14370  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::StreamingTraits, HandlerType>
       14371  +
                        >,
       14372  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14373  +
                            RestJson<L>,
       14374  +
                            crate::operation_shape::StreamingTraits,
       14375  +
                            ModelPl::Output
       14376  +
                        >,
       14377  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14378  +
                            RestJson<L>,
       14379  +
                            crate::operation_shape::StreamingTraits,
       14380  +
                            <
       14381  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14382  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14383  +
                                    RestJson<L>,
       14384  +
                                    crate::operation_shape::StreamingTraits,
       14385  +
                                    ModelPl::Output
       14386  +
                                >
       14387  +
                            >::Output
       14388  +
                        >,
       14389  +
       14390  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14391  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14392  +
       14393  +
                    {
       14394  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14395  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14396  +
        let svc = crate::operation_shape::StreamingTraits::from_handler(handler);
       14397  +
        let svc = self.model_plugin.apply(svc);
       14398  +
        let svc =
       14399  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14400  +
                .apply(svc);
       14401  +
        let svc = self.http_plugin.apply(svc);
       14402  +
        self.streaming_traits_custom(svc)
       14403  +
    }
       14404  +
       14405  +
    /// Sets the [`StreamingTraits`](crate::operation_shape::StreamingTraits) operation.
       14406  +
    ///
       14407  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14408  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14409  +
    ///
       14410  +
    /// # Example
       14411  +
    ///
       14412  +
    /// ```no_run
       14413  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14414  +
    ///
       14415  +
    /// use rest_json_http0x::{input, output, error};
       14416  +
    ///
       14417  +
    /// async fn handler(input: input::StreamingTraitsInput) -> Result<output::StreamingTraitsOutput, std::convert::Infallible> {
       14418  +
    ///     todo!()
       14419  +
    /// }
       14420  +
    ///
       14421  +
    /// let config = RestJsonConfig::builder().build();
       14422  +
    /// let svc = ::tower::util::service_fn(handler);
       14423  +
    /// let app = RestJson::builder(config)
       14424  +
    ///     .streaming_traits_service(svc)
       14425  +
    ///     /* Set other handlers */
       14426  +
    ///     .build()
       14427  +
    ///     .unwrap();
       14428  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14429  +
    /// ```
       14430  +
    ///
       14431  +
                    pub fn streaming_traits_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       14432  +
                    where
       14433  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::StreamingTraits, ServiceExtractors>,
       14434  +
       14435  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14436  +
                            RestJson<L>,
       14437  +
                            crate::operation_shape::StreamingTraits,
       14438  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::StreamingTraits, S>
       14439  +
                        >,
       14440  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14441  +
                            RestJson<L>,
       14442  +
                            crate::operation_shape::StreamingTraits,
       14443  +
                            ModelPl::Output
       14444  +
                        >,
       14445  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14446  +
                            RestJson<L>,
       14447  +
                            crate::operation_shape::StreamingTraits,
       14448  +
                            <
       14449  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14450  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14451  +
                                    RestJson<L>,
       14452  +
                                    crate::operation_shape::StreamingTraits,
       14453  +
                                    ModelPl::Output
       14454  +
                                >
       14455  +
                            >::Output
       14456  +
                        >,
       14457  +
       14458  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14459  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14460  +
       14461  +
                    {
       14462  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14463  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14464  +
        let svc = crate::operation_shape::StreamingTraits::from_service(service);
       14465  +
        let svc = self.model_plugin.apply(svc);
       14466  +
        let svc =
       14467  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14468  +
                .apply(svc);
       14469  +
        let svc = self.http_plugin.apply(svc);
       14470  +
        self.streaming_traits_custom(svc)
       14471  +
    }
       14472  +
       14473  +
    /// Sets the [`StreamingTraits`](crate::operation_shape::StreamingTraits) to a custom [`Service`](tower::Service).
       14474  +
    /// not constrained by the Smithy contract.
       14475  +
    fn streaming_traits_custom<S>(mut self, svc: S) -> Self
       14476  +
    where
       14477  +
        S: ::tower::Service<
       14478  +
                ::http::Request<Body>,
       14479  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       14480  +
                Error = ::std::convert::Infallible,
       14481  +
            > + Clone
       14482  +
            + Send
       14483  +
            + 'static,
       14484  +
        S::Future: Send + 'static,
       14485  +
    {
       14486  +
        self.streaming_traits = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       14487  +
        self
       14488  +
    }
       14489  +
       14490  +
    /// Sets the [`StreamingTraitsRequireLength`](crate::operation_shape::StreamingTraitsRequireLength) operation.
       14491  +
    ///
       14492  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14493  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14494  +
    ///
       14495  +
    /// # Example
       14496  +
    ///
       14497  +
    /// ```no_run
       14498  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14499  +
    ///
       14500  +
    /// use rest_json_http0x::{input, output, error};
       14501  +
    ///
       14502  +
    /// async fn handler(input: input::StreamingTraitsRequireLengthInput) -> output::StreamingTraitsRequireLengthOutput {
       14503  +
    ///     todo!()
       14504  +
    /// }
       14505  +
    ///
       14506  +
    /// let config = RestJsonConfig::builder().build();
       14507  +
    /// let app = RestJson::builder(config)
       14508  +
    ///     .streaming_traits_require_length(handler)
       14509  +
    ///     /* Set other handlers */
       14510  +
    ///     .build()
       14511  +
    ///     .unwrap();
       14512  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14513  +
    /// ```
       14514  +
    ///
       14515  +
                    pub fn streaming_traits_require_length<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       14516  +
                    where
       14517  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::StreamingTraitsRequireLength, HandlerExtractors>,
       14518  +
       14519  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14520  +
                            RestJson<L>,
       14521  +
                            crate::operation_shape::StreamingTraitsRequireLength,
       14522  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::StreamingTraitsRequireLength, HandlerType>
       14523  +
                        >,
       14524  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14525  +
                            RestJson<L>,
       14526  +
                            crate::operation_shape::StreamingTraitsRequireLength,
       14527  +
                            ModelPl::Output
       14528  +
                        >,
       14529  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14530  +
                            RestJson<L>,
       14531  +
                            crate::operation_shape::StreamingTraitsRequireLength,
       14532  +
                            <
       14533  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14534  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14535  +
                                    RestJson<L>,
       14536  +
                                    crate::operation_shape::StreamingTraitsRequireLength,
       14537  +
                                    ModelPl::Output
       14538  +
                                >
       14539  +
                            >::Output
       14540  +
                        >,
       14541  +
       14542  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14543  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14544  +
       14545  +
                    {
       14546  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14547  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14548  +
        let svc = crate::operation_shape::StreamingTraitsRequireLength::from_handler(handler);
       14549  +
        let svc = self.model_plugin.apply(svc);
       14550  +
        let svc =
       14551  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14552  +
                .apply(svc);
       14553  +
        let svc = self.http_plugin.apply(svc);
       14554  +
        self.streaming_traits_require_length_custom(svc)
       14555  +
    }
       14556  +
       14557  +
    /// Sets the [`StreamingTraitsRequireLength`](crate::operation_shape::StreamingTraitsRequireLength) operation.
       14558  +
    ///
       14559  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14560  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14561  +
    ///
       14562  +
    /// # Example
       14563  +
    ///
       14564  +
    /// ```no_run
       14565  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14566  +
    ///
       14567  +
    /// use rest_json_http0x::{input, output, error};
       14568  +
    ///
       14569  +
    /// async fn handler(input: input::StreamingTraitsRequireLengthInput) -> Result<output::StreamingTraitsRequireLengthOutput, std::convert::Infallible> {
       14570  +
    ///     todo!()
       14571  +
    /// }
       14572  +
    ///
       14573  +
    /// let config = RestJsonConfig::builder().build();
       14574  +
    /// let svc = ::tower::util::service_fn(handler);
       14575  +
    /// let app = RestJson::builder(config)
       14576  +
    ///     .streaming_traits_require_length_service(svc)
       14577  +
    ///     /* Set other handlers */
       14578  +
    ///     .build()
       14579  +
    ///     .unwrap();
       14580  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14581  +
    /// ```
       14582  +
    ///
       14583  +
                    pub fn streaming_traits_require_length_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       14584  +
                    where
       14585  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::StreamingTraitsRequireLength, ServiceExtractors>,
       14586  +
       14587  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14588  +
                            RestJson<L>,
       14589  +
                            crate::operation_shape::StreamingTraitsRequireLength,
       14590  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::StreamingTraitsRequireLength, S>
       14591  +
                        >,
       14592  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14593  +
                            RestJson<L>,
       14594  +
                            crate::operation_shape::StreamingTraitsRequireLength,
       14595  +
                            ModelPl::Output
       14596  +
                        >,
       14597  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14598  +
                            RestJson<L>,
       14599  +
                            crate::operation_shape::StreamingTraitsRequireLength,
       14600  +
                            <
       14601  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14602  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14603  +
                                    RestJson<L>,
       14604  +
                                    crate::operation_shape::StreamingTraitsRequireLength,
       14605  +
                                    ModelPl::Output
       14606  +
                                >
       14607  +
                            >::Output
       14608  +
                        >,
       14609  +
       14610  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14611  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14612  +
       14613  +
                    {
       14614  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14615  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14616  +
        let svc = crate::operation_shape::StreamingTraitsRequireLength::from_service(service);
       14617  +
        let svc = self.model_plugin.apply(svc);
       14618  +
        let svc =
       14619  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14620  +
                .apply(svc);
       14621  +
        let svc = self.http_plugin.apply(svc);
       14622  +
        self.streaming_traits_require_length_custom(svc)
       14623  +
    }
       14624  +
       14625  +
    /// Sets the [`StreamingTraitsRequireLength`](crate::operation_shape::StreamingTraitsRequireLength) to a custom [`Service`](tower::Service).
       14626  +
    /// not constrained by the Smithy contract.
       14627  +
    fn streaming_traits_require_length_custom<S>(mut self, svc: S) -> Self
       14628  +
    where
       14629  +
        S: ::tower::Service<
       14630  +
                ::http::Request<Body>,
       14631  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       14632  +
                Error = ::std::convert::Infallible,
       14633  +
            > + Clone
       14634  +
            + Send
       14635  +
            + 'static,
       14636  +
        S::Future: Send + 'static,
       14637  +
    {
       14638  +
        self.streaming_traits_require_length =
       14639  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       14640  +
        self
       14641  +
    }
       14642  +
       14643  +
    /// Sets the [`StreamingTraitsWithMediaType`](crate::operation_shape::StreamingTraitsWithMediaType) operation.
       14644  +
    ///
       14645  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14646  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14647  +
    ///
       14648  +
    /// # Example
       14649  +
    ///
       14650  +
    /// ```no_run
       14651  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14652  +
    ///
       14653  +
    /// use rest_json_http0x::{input, output, error};
       14654  +
    ///
       14655  +
    /// async fn handler(input: input::StreamingTraitsWithMediaTypeInput) -> output::StreamingTraitsWithMediaTypeOutput {
       14656  +
    ///     todo!()
       14657  +
    /// }
       14658  +
    ///
       14659  +
    /// let config = RestJsonConfig::builder().build();
       14660  +
    /// let app = RestJson::builder(config)
       14661  +
    ///     .streaming_traits_with_media_type(handler)
       14662  +
    ///     /* Set other handlers */
       14663  +
    ///     .build()
       14664  +
    ///     .unwrap();
       14665  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14666  +
    /// ```
       14667  +
    ///
       14668  +
                    pub fn streaming_traits_with_media_type<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       14669  +
                    where
       14670  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::StreamingTraitsWithMediaType, HandlerExtractors>,
       14671  +
       14672  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14673  +
                            RestJson<L>,
       14674  +
                            crate::operation_shape::StreamingTraitsWithMediaType,
       14675  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::StreamingTraitsWithMediaType, HandlerType>
       14676  +
                        >,
       14677  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14678  +
                            RestJson<L>,
       14679  +
                            crate::operation_shape::StreamingTraitsWithMediaType,
       14680  +
                            ModelPl::Output
       14681  +
                        >,
       14682  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14683  +
                            RestJson<L>,
       14684  +
                            crate::operation_shape::StreamingTraitsWithMediaType,
       14685  +
                            <
       14686  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14687  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14688  +
                                    RestJson<L>,
       14689  +
                                    crate::operation_shape::StreamingTraitsWithMediaType,
       14690  +
                                    ModelPl::Output
       14691  +
                                >
       14692  +
                            >::Output
       14693  +
                        >,
       14694  +
       14695  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14696  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14697  +
       14698  +
                    {
       14699  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14700  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14701  +
        let svc = crate::operation_shape::StreamingTraitsWithMediaType::from_handler(handler);
       14702  +
        let svc = self.model_plugin.apply(svc);
       14703  +
        let svc =
       14704  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14705  +
                .apply(svc);
       14706  +
        let svc = self.http_plugin.apply(svc);
       14707  +
        self.streaming_traits_with_media_type_custom(svc)
       14708  +
    }
       14709  +
       14710  +
    /// Sets the [`StreamingTraitsWithMediaType`](crate::operation_shape::StreamingTraitsWithMediaType) operation.
       14711  +
    ///
       14712  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14713  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14714  +
    ///
       14715  +
    /// # Example
       14716  +
    ///
       14717  +
    /// ```no_run
       14718  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14719  +
    ///
       14720  +
    /// use rest_json_http0x::{input, output, error};
       14721  +
    ///
       14722  +
    /// async fn handler(input: input::StreamingTraitsWithMediaTypeInput) -> Result<output::StreamingTraitsWithMediaTypeOutput, std::convert::Infallible> {
       14723  +
    ///     todo!()
       14724  +
    /// }
       14725  +
    ///
       14726  +
    /// let config = RestJsonConfig::builder().build();
       14727  +
    /// let svc = ::tower::util::service_fn(handler);
       14728  +
    /// let app = RestJson::builder(config)
       14729  +
    ///     .streaming_traits_with_media_type_service(svc)
       14730  +
    ///     /* Set other handlers */
       14731  +
    ///     .build()
       14732  +
    ///     .unwrap();
       14733  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14734  +
    /// ```
       14735  +
    ///
       14736  +
                    pub fn streaming_traits_with_media_type_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       14737  +
                    where
       14738  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::StreamingTraitsWithMediaType, ServiceExtractors>,
       14739  +
       14740  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14741  +
                            RestJson<L>,
       14742  +
                            crate::operation_shape::StreamingTraitsWithMediaType,
       14743  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::StreamingTraitsWithMediaType, S>
       14744  +
                        >,
       14745  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14746  +
                            RestJson<L>,
       14747  +
                            crate::operation_shape::StreamingTraitsWithMediaType,
       14748  +
                            ModelPl::Output
       14749  +
                        >,
       14750  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14751  +
                            RestJson<L>,
       14752  +
                            crate::operation_shape::StreamingTraitsWithMediaType,
       14753  +
                            <
       14754  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14755  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14756  +
                                    RestJson<L>,
       14757  +
                                    crate::operation_shape::StreamingTraitsWithMediaType,
       14758  +
                                    ModelPl::Output
       14759  +
                                >
       14760  +
                            >::Output
       14761  +
                        >,
       14762  +
       14763  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14764  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14765  +
       14766  +
                    {
       14767  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14768  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14769  +
        let svc = crate::operation_shape::StreamingTraitsWithMediaType::from_service(service);
       14770  +
        let svc = self.model_plugin.apply(svc);
       14771  +
        let svc =
       14772  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14773  +
                .apply(svc);
       14774  +
        let svc = self.http_plugin.apply(svc);
       14775  +
        self.streaming_traits_with_media_type_custom(svc)
       14776  +
    }
       14777  +
       14778  +
    /// Sets the [`StreamingTraitsWithMediaType`](crate::operation_shape::StreamingTraitsWithMediaType) to a custom [`Service`](tower::Service).
       14779  +
    /// not constrained by the Smithy contract.
       14780  +
    fn streaming_traits_with_media_type_custom<S>(mut self, svc: S) -> Self
       14781  +
    where
       14782  +
        S: ::tower::Service<
       14783  +
                ::http::Request<Body>,
       14784  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       14785  +
                Error = ::std::convert::Infallible,
       14786  +
            > + Clone
       14787  +
            + Send
       14788  +
            + 'static,
       14789  +
        S::Future: Send + 'static,
       14790  +
    {
       14791  +
        self.streaming_traits_with_media_type =
       14792  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       14793  +
        self
       14794  +
    }
       14795  +
       14796  +
    /// Sets the [`TestBodyStructure`](crate::operation_shape::TestBodyStructure) operation.
       14797  +
    ///
       14798  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14799  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14800  +
    ///
       14801  +
    /// # Example
       14802  +
    ///
       14803  +
    /// ```no_run
       14804  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14805  +
    ///
       14806  +
    /// use rest_json_http0x::{input, output, error};
       14807  +
    ///
       14808  +
    /// async fn handler(input: input::TestBodyStructureInput) -> output::TestBodyStructureOutput {
       14809  +
    ///     todo!()
       14810  +
    /// }
       14811  +
    ///
       14812  +
    /// let config = RestJsonConfig::builder().build();
       14813  +
    /// let app = RestJson::builder(config)
       14814  +
    ///     .test_body_structure(handler)
       14815  +
    ///     /* Set other handlers */
       14816  +
    ///     .build()
       14817  +
    ///     .unwrap();
       14818  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14819  +
    /// ```
       14820  +
    ///
       14821  +
                    pub fn test_body_structure<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       14822  +
                    where
       14823  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::TestBodyStructure, HandlerExtractors>,
       14824  +
       14825  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14826  +
                            RestJson<L>,
       14827  +
                            crate::operation_shape::TestBodyStructure,
       14828  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::TestBodyStructure, HandlerType>
       14829  +
                        >,
       14830  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14831  +
                            RestJson<L>,
       14832  +
                            crate::operation_shape::TestBodyStructure,
       14833  +
                            ModelPl::Output
       14834  +
                        >,
       14835  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14836  +
                            RestJson<L>,
       14837  +
                            crate::operation_shape::TestBodyStructure,
       14838  +
                            <
       14839  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14840  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14841  +
                                    RestJson<L>,
       14842  +
                                    crate::operation_shape::TestBodyStructure,
       14843  +
                                    ModelPl::Output
       14844  +
                                >
       14845  +
                            >::Output
       14846  +
                        >,
       14847  +
       14848  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14849  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14850  +
       14851  +
                    {
       14852  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14853  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14854  +
        let svc = crate::operation_shape::TestBodyStructure::from_handler(handler);
       14855  +
        let svc = self.model_plugin.apply(svc);
       14856  +
        let svc =
       14857  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14858  +
                .apply(svc);
       14859  +
        let svc = self.http_plugin.apply(svc);
       14860  +
        self.test_body_structure_custom(svc)
       14861  +
    }
       14862  +
       14863  +
    /// Sets the [`TestBodyStructure`](crate::operation_shape::TestBodyStructure) operation.
       14864  +
    ///
       14865  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14866  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14867  +
    ///
       14868  +
    /// # Example
       14869  +
    ///
       14870  +
    /// ```no_run
       14871  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14872  +
    ///
       14873  +
    /// use rest_json_http0x::{input, output, error};
       14874  +
    ///
       14875  +
    /// async fn handler(input: input::TestBodyStructureInput) -> Result<output::TestBodyStructureOutput, std::convert::Infallible> {
       14876  +
    ///     todo!()
       14877  +
    /// }
       14878  +
    ///
       14879  +
    /// let config = RestJsonConfig::builder().build();
       14880  +
    /// let svc = ::tower::util::service_fn(handler);
       14881  +
    /// let app = RestJson::builder(config)
       14882  +
    ///     .test_body_structure_service(svc)
       14883  +
    ///     /* Set other handlers */
       14884  +
    ///     .build()
       14885  +
    ///     .unwrap();
       14886  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14887  +
    /// ```
       14888  +
    ///
       14889  +
                    pub fn test_body_structure_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       14890  +
                    where
       14891  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::TestBodyStructure, ServiceExtractors>,
       14892  +
       14893  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14894  +
                            RestJson<L>,
       14895  +
                            crate::operation_shape::TestBodyStructure,
       14896  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::TestBodyStructure, S>
       14897  +
                        >,
       14898  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14899  +
                            RestJson<L>,
       14900  +
                            crate::operation_shape::TestBodyStructure,
       14901  +
                            ModelPl::Output
       14902  +
                        >,
       14903  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14904  +
                            RestJson<L>,
       14905  +
                            crate::operation_shape::TestBodyStructure,
       14906  +
                            <
       14907  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14908  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14909  +
                                    RestJson<L>,
       14910  +
                                    crate::operation_shape::TestBodyStructure,
       14911  +
                                    ModelPl::Output
       14912  +
                                >
       14913  +
                            >::Output
       14914  +
                        >,
       14915  +
       14916  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       14917  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       14918  +
       14919  +
                    {
       14920  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       14921  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       14922  +
        let svc = crate::operation_shape::TestBodyStructure::from_service(service);
       14923  +
        let svc = self.model_plugin.apply(svc);
       14924  +
        let svc =
       14925  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       14926  +
                .apply(svc);
       14927  +
        let svc = self.http_plugin.apply(svc);
       14928  +
        self.test_body_structure_custom(svc)
       14929  +
    }
       14930  +
       14931  +
    /// Sets the [`TestBodyStructure`](crate::operation_shape::TestBodyStructure) to a custom [`Service`](tower::Service).
       14932  +
    /// not constrained by the Smithy contract.
       14933  +
    fn test_body_structure_custom<S>(mut self, svc: S) -> Self
       14934  +
    where
       14935  +
        S: ::tower::Service<
       14936  +
                ::http::Request<Body>,
       14937  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       14938  +
                Error = ::std::convert::Infallible,
       14939  +
            > + Clone
       14940  +
            + Send
       14941  +
            + 'static,
       14942  +
        S::Future: Send + 'static,
       14943  +
    {
       14944  +
        self.test_body_structure = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       14945  +
        self
       14946  +
    }
       14947  +
       14948  +
    /// Sets the [`TestGetNoInputNoPayload`](crate::operation_shape::TestGetNoInputNoPayload) operation.
       14949  +
    ///
       14950  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       14951  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       14952  +
    ///
       14953  +
    /// # Example
       14954  +
    ///
       14955  +
    /// ```no_run
       14956  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       14957  +
    ///
       14958  +
    /// use rest_json_http0x::{input, output, error};
       14959  +
    ///
       14960  +
    /// async fn handler(input: input::TestGetNoInputNoPayloadInput) -> output::TestGetNoInputNoPayloadOutput {
       14961  +
    ///     todo!()
       14962  +
    /// }
       14963  +
    ///
       14964  +
    /// let config = RestJsonConfig::builder().build();
       14965  +
    /// let app = RestJson::builder(config)
       14966  +
    ///     .test_get_no_input_no_payload(handler)
       14967  +
    ///     /* Set other handlers */
       14968  +
    ///     .build()
       14969  +
    ///     .unwrap();
       14970  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       14971  +
    /// ```
       14972  +
    ///
       14973  +
                    pub fn test_get_no_input_no_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       14974  +
                    where
       14975  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::TestGetNoInputNoPayload, HandlerExtractors>,
       14976  +
       14977  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14978  +
                            RestJson<L>,
       14979  +
                            crate::operation_shape::TestGetNoInputNoPayload,
       14980  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::TestGetNoInputNoPayload, HandlerType>
       14981  +
                        >,
       14982  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14983  +
                            RestJson<L>,
       14984  +
                            crate::operation_shape::TestGetNoInputNoPayload,
       14985  +
                            ModelPl::Output
       14986  +
                        >,
       14987  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       14988  +
                            RestJson<L>,
       14989  +
                            crate::operation_shape::TestGetNoInputNoPayload,
       14990  +
                            <
       14991  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       14992  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       14993  +
                                    RestJson<L>,
       14994  +
                                    crate::operation_shape::TestGetNoInputNoPayload,
       14995  +
                                    ModelPl::Output
       14996  +
                                >
       14997  +
                            >::Output
       14998  +
                        >,
       14999  +
       15000  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15001  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15002  +
       15003  +
                    {
       15004  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15005  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15006  +
        let svc = crate::operation_shape::TestGetNoInputNoPayload::from_handler(handler);
       15007  +
        let svc = self.model_plugin.apply(svc);
       15008  +
        let svc =
       15009  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15010  +
                .apply(svc);
       15011  +
        let svc = self.http_plugin.apply(svc);
       15012  +
        self.test_get_no_input_no_payload_custom(svc)
       15013  +
    }
       15014  +
       15015  +
    /// Sets the [`TestGetNoInputNoPayload`](crate::operation_shape::TestGetNoInputNoPayload) operation.
       15016  +
    ///
       15017  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15018  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15019  +
    ///
       15020  +
    /// # Example
       15021  +
    ///
       15022  +
    /// ```no_run
       15023  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15024  +
    ///
       15025  +
    /// use rest_json_http0x::{input, output, error};
       15026  +
    ///
       15027  +
    /// async fn handler(input: input::TestGetNoInputNoPayloadInput) -> Result<output::TestGetNoInputNoPayloadOutput, std::convert::Infallible> {
       15028  +
    ///     todo!()
       15029  +
    /// }
       15030  +
    ///
       15031  +
    /// let config = RestJsonConfig::builder().build();
       15032  +
    /// let svc = ::tower::util::service_fn(handler);
       15033  +
    /// let app = RestJson::builder(config)
       15034  +
    ///     .test_get_no_input_no_payload_service(svc)
       15035  +
    ///     /* Set other handlers */
       15036  +
    ///     .build()
       15037  +
    ///     .unwrap();
       15038  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15039  +
    /// ```
       15040  +
    ///
       15041  +
                    pub fn test_get_no_input_no_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       15042  +
                    where
       15043  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::TestGetNoInputNoPayload, ServiceExtractors>,
       15044  +
       15045  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15046  +
                            RestJson<L>,
       15047  +
                            crate::operation_shape::TestGetNoInputNoPayload,
       15048  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::TestGetNoInputNoPayload, S>
       15049  +
                        >,
       15050  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15051  +
                            RestJson<L>,
       15052  +
                            crate::operation_shape::TestGetNoInputNoPayload,
       15053  +
                            ModelPl::Output
       15054  +
                        >,
       15055  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15056  +
                            RestJson<L>,
       15057  +
                            crate::operation_shape::TestGetNoInputNoPayload,
       15058  +
                            <
       15059  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15060  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15061  +
                                    RestJson<L>,
       15062  +
                                    crate::operation_shape::TestGetNoInputNoPayload,
       15063  +
                                    ModelPl::Output
       15064  +
                                >
       15065  +
                            >::Output
       15066  +
                        >,
       15067  +
       15068  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15069  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15070  +
       15071  +
                    {
       15072  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15073  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15074  +
        let svc = crate::operation_shape::TestGetNoInputNoPayload::from_service(service);
       15075  +
        let svc = self.model_plugin.apply(svc);
       15076  +
        let svc =
       15077  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15078  +
                .apply(svc);
       15079  +
        let svc = self.http_plugin.apply(svc);
       15080  +
        self.test_get_no_input_no_payload_custom(svc)
       15081  +
    }
       15082  +
       15083  +
    /// Sets the [`TestGetNoInputNoPayload`](crate::operation_shape::TestGetNoInputNoPayload) to a custom [`Service`](tower::Service).
       15084  +
    /// not constrained by the Smithy contract.
       15085  +
    fn test_get_no_input_no_payload_custom<S>(mut self, svc: S) -> Self
       15086  +
    where
       15087  +
        S: ::tower::Service<
       15088  +
                ::http::Request<Body>,
       15089  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       15090  +
                Error = ::std::convert::Infallible,
       15091  +
            > + Clone
       15092  +
            + Send
       15093  +
            + 'static,
       15094  +
        S::Future: Send + 'static,
       15095  +
    {
       15096  +
        self.test_get_no_input_no_payload =
       15097  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       15098  +
        self
       15099  +
    }
       15100  +
       15101  +
    /// Sets the [`TestGetNoPayload`](crate::operation_shape::TestGetNoPayload) operation.
       15102  +
    ///
       15103  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15104  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15105  +
    ///
       15106  +
    /// # Example
       15107  +
    ///
       15108  +
    /// ```no_run
       15109  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15110  +
    ///
       15111  +
    /// use rest_json_http0x::{input, output, error};
       15112  +
    ///
       15113  +
    /// async fn handler(input: input::TestGetNoPayloadInput) -> output::TestGetNoPayloadOutput {
       15114  +
    ///     todo!()
       15115  +
    /// }
       15116  +
    ///
       15117  +
    /// let config = RestJsonConfig::builder().build();
       15118  +
    /// let app = RestJson::builder(config)
       15119  +
    ///     .test_get_no_payload(handler)
       15120  +
    ///     /* Set other handlers */
       15121  +
    ///     .build()
       15122  +
    ///     .unwrap();
       15123  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15124  +
    /// ```
       15125  +
    ///
       15126  +
                    pub fn test_get_no_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       15127  +
                    where
       15128  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::TestGetNoPayload, HandlerExtractors>,
       15129  +
       15130  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15131  +
                            RestJson<L>,
       15132  +
                            crate::operation_shape::TestGetNoPayload,
       15133  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::TestGetNoPayload, HandlerType>
       15134  +
                        >,
       15135  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15136  +
                            RestJson<L>,
       15137  +
                            crate::operation_shape::TestGetNoPayload,
       15138  +
                            ModelPl::Output
       15139  +
                        >,
       15140  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15141  +
                            RestJson<L>,
       15142  +
                            crate::operation_shape::TestGetNoPayload,
       15143  +
                            <
       15144  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15145  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15146  +
                                    RestJson<L>,
       15147  +
                                    crate::operation_shape::TestGetNoPayload,
       15148  +
                                    ModelPl::Output
       15149  +
                                >
       15150  +
                            >::Output
       15151  +
                        >,
       15152  +
       15153  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15154  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15155  +
       15156  +
                    {
       15157  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15158  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15159  +
        let svc = crate::operation_shape::TestGetNoPayload::from_handler(handler);
       15160  +
        let svc = self.model_plugin.apply(svc);
       15161  +
        let svc =
       15162  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15163  +
                .apply(svc);
       15164  +
        let svc = self.http_plugin.apply(svc);
       15165  +
        self.test_get_no_payload_custom(svc)
       15166  +
    }
       15167  +
       15168  +
    /// Sets the [`TestGetNoPayload`](crate::operation_shape::TestGetNoPayload) operation.
       15169  +
    ///
       15170  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15171  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15172  +
    ///
       15173  +
    /// # Example
       15174  +
    ///
       15175  +
    /// ```no_run
       15176  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15177  +
    ///
       15178  +
    /// use rest_json_http0x::{input, output, error};
       15179  +
    ///
       15180  +
    /// async fn handler(input: input::TestGetNoPayloadInput) -> Result<output::TestGetNoPayloadOutput, std::convert::Infallible> {
       15181  +
    ///     todo!()
       15182  +
    /// }
       15183  +
    ///
       15184  +
    /// let config = RestJsonConfig::builder().build();
       15185  +
    /// let svc = ::tower::util::service_fn(handler);
       15186  +
    /// let app = RestJson::builder(config)
       15187  +
    ///     .test_get_no_payload_service(svc)
       15188  +
    ///     /* Set other handlers */
       15189  +
    ///     .build()
       15190  +
    ///     .unwrap();
       15191  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15192  +
    /// ```
       15193  +
    ///
       15194  +
                    pub fn test_get_no_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       15195  +
                    where
       15196  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::TestGetNoPayload, ServiceExtractors>,
       15197  +
       15198  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15199  +
                            RestJson<L>,
       15200  +
                            crate::operation_shape::TestGetNoPayload,
       15201  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::TestGetNoPayload, S>
       15202  +
                        >,
       15203  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15204  +
                            RestJson<L>,
       15205  +
                            crate::operation_shape::TestGetNoPayload,
       15206  +
                            ModelPl::Output
       15207  +
                        >,
       15208  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15209  +
                            RestJson<L>,
       15210  +
                            crate::operation_shape::TestGetNoPayload,
       15211  +
                            <
       15212  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15213  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15214  +
                                    RestJson<L>,
       15215  +
                                    crate::operation_shape::TestGetNoPayload,
       15216  +
                                    ModelPl::Output
       15217  +
                                >
       15218  +
                            >::Output
       15219  +
                        >,
       15220  +
       15221  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15222  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15223  +
       15224  +
                    {
       15225  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15226  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15227  +
        let svc = crate::operation_shape::TestGetNoPayload::from_service(service);
       15228  +
        let svc = self.model_plugin.apply(svc);
       15229  +
        let svc =
       15230  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15231  +
                .apply(svc);
       15232  +
        let svc = self.http_plugin.apply(svc);
       15233  +
        self.test_get_no_payload_custom(svc)
       15234  +
    }
       15235  +
       15236  +
    /// Sets the [`TestGetNoPayload`](crate::operation_shape::TestGetNoPayload) to a custom [`Service`](tower::Service).
       15237  +
    /// not constrained by the Smithy contract.
       15238  +
    fn test_get_no_payload_custom<S>(mut self, svc: S) -> Self
       15239  +
    where
       15240  +
        S: ::tower::Service<
       15241  +
                ::http::Request<Body>,
       15242  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       15243  +
                Error = ::std::convert::Infallible,
       15244  +
            > + Clone
       15245  +
            + Send
       15246  +
            + 'static,
       15247  +
        S::Future: Send + 'static,
       15248  +
    {
       15249  +
        self.test_get_no_payload = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       15250  +
        self
       15251  +
    }
       15252  +
       15253  +
    /// Sets the [`TestPayloadBlob`](crate::operation_shape::TestPayloadBlob) operation.
       15254  +
    ///
       15255  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15256  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15257  +
    ///
       15258  +
    /// # Example
       15259  +
    ///
       15260  +
    /// ```no_run
       15261  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15262  +
    ///
       15263  +
    /// use rest_json_http0x::{input, output, error};
       15264  +
    ///
       15265  +
    /// async fn handler(input: input::TestPayloadBlobInput) -> output::TestPayloadBlobOutput {
       15266  +
    ///     todo!()
       15267  +
    /// }
       15268  +
    ///
       15269  +
    /// let config = RestJsonConfig::builder().build();
       15270  +
    /// let app = RestJson::builder(config)
       15271  +
    ///     .test_payload_blob(handler)
       15272  +
    ///     /* Set other handlers */
       15273  +
    ///     .build()
       15274  +
    ///     .unwrap();
       15275  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15276  +
    /// ```
       15277  +
    ///
       15278  +
                    pub fn test_payload_blob<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       15279  +
                    where
       15280  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::TestPayloadBlob, HandlerExtractors>,
       15281  +
       15282  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15283  +
                            RestJson<L>,
       15284  +
                            crate::operation_shape::TestPayloadBlob,
       15285  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::TestPayloadBlob, HandlerType>
       15286  +
                        >,
       15287  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15288  +
                            RestJson<L>,
       15289  +
                            crate::operation_shape::TestPayloadBlob,
       15290  +
                            ModelPl::Output
       15291  +
                        >,
       15292  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15293  +
                            RestJson<L>,
       15294  +
                            crate::operation_shape::TestPayloadBlob,
       15295  +
                            <
       15296  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15297  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15298  +
                                    RestJson<L>,
       15299  +
                                    crate::operation_shape::TestPayloadBlob,
       15300  +
                                    ModelPl::Output
       15301  +
                                >
       15302  +
                            >::Output
       15303  +
                        >,
       15304  +
       15305  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15306  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15307  +
       15308  +
                    {
       15309  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15310  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15311  +
        let svc = crate::operation_shape::TestPayloadBlob::from_handler(handler);
       15312  +
        let svc = self.model_plugin.apply(svc);
       15313  +
        let svc =
       15314  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15315  +
                .apply(svc);
       15316  +
        let svc = self.http_plugin.apply(svc);
       15317  +
        self.test_payload_blob_custom(svc)
       15318  +
    }
       15319  +
       15320  +
    /// Sets the [`TestPayloadBlob`](crate::operation_shape::TestPayloadBlob) operation.
       15321  +
    ///
       15322  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15323  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15324  +
    ///
       15325  +
    /// # Example
       15326  +
    ///
       15327  +
    /// ```no_run
       15328  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15329  +
    ///
       15330  +
    /// use rest_json_http0x::{input, output, error};
       15331  +
    ///
       15332  +
    /// async fn handler(input: input::TestPayloadBlobInput) -> Result<output::TestPayloadBlobOutput, std::convert::Infallible> {
       15333  +
    ///     todo!()
       15334  +
    /// }
       15335  +
    ///
       15336  +
    /// let config = RestJsonConfig::builder().build();
       15337  +
    /// let svc = ::tower::util::service_fn(handler);
       15338  +
    /// let app = RestJson::builder(config)
       15339  +
    ///     .test_payload_blob_service(svc)
       15340  +
    ///     /* Set other handlers */
       15341  +
    ///     .build()
       15342  +
    ///     .unwrap();
       15343  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15344  +
    /// ```
       15345  +
    ///
       15346  +
                    pub fn test_payload_blob_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       15347  +
                    where
       15348  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::TestPayloadBlob, ServiceExtractors>,
       15349  +
       15350  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15351  +
                            RestJson<L>,
       15352  +
                            crate::operation_shape::TestPayloadBlob,
       15353  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::TestPayloadBlob, S>
       15354  +
                        >,
       15355  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15356  +
                            RestJson<L>,
       15357  +
                            crate::operation_shape::TestPayloadBlob,
       15358  +
                            ModelPl::Output
       15359  +
                        >,
       15360  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15361  +
                            RestJson<L>,
       15362  +
                            crate::operation_shape::TestPayloadBlob,
       15363  +
                            <
       15364  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15365  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15366  +
                                    RestJson<L>,
       15367  +
                                    crate::operation_shape::TestPayloadBlob,
       15368  +
                                    ModelPl::Output
       15369  +
                                >
       15370  +
                            >::Output
       15371  +
                        >,
       15372  +
       15373  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15374  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15375  +
       15376  +
                    {
       15377  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15378  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15379  +
        let svc = crate::operation_shape::TestPayloadBlob::from_service(service);
       15380  +
        let svc = self.model_plugin.apply(svc);
       15381  +
        let svc =
       15382  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15383  +
                .apply(svc);
       15384  +
        let svc = self.http_plugin.apply(svc);
       15385  +
        self.test_payload_blob_custom(svc)
       15386  +
    }
       15387  +
       15388  +
    /// Sets the [`TestPayloadBlob`](crate::operation_shape::TestPayloadBlob) to a custom [`Service`](tower::Service).
       15389  +
    /// not constrained by the Smithy contract.
       15390  +
    fn test_payload_blob_custom<S>(mut self, svc: S) -> Self
       15391  +
    where
       15392  +
        S: ::tower::Service<
       15393  +
                ::http::Request<Body>,
       15394  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       15395  +
                Error = ::std::convert::Infallible,
       15396  +
            > + Clone
       15397  +
            + Send
       15398  +
            + 'static,
       15399  +
        S::Future: Send + 'static,
       15400  +
    {
       15401  +
        self.test_payload_blob = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       15402  +
        self
       15403  +
    }
       15404  +
       15405  +
    /// Sets the [`TestPayloadStructure`](crate::operation_shape::TestPayloadStructure) operation.
       15406  +
    ///
       15407  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15408  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15409  +
    ///
       15410  +
    /// # Example
       15411  +
    ///
       15412  +
    /// ```no_run
       15413  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15414  +
    ///
       15415  +
    /// use rest_json_http0x::{input, output, error};
       15416  +
    ///
       15417  +
    /// async fn handler(input: input::TestPayloadStructureInput) -> output::TestPayloadStructureOutput {
       15418  +
    ///     todo!()
       15419  +
    /// }
       15420  +
    ///
       15421  +
    /// let config = RestJsonConfig::builder().build();
       15422  +
    /// let app = RestJson::builder(config)
       15423  +
    ///     .test_payload_structure(handler)
       15424  +
    ///     /* Set other handlers */
       15425  +
    ///     .build()
       15426  +
    ///     .unwrap();
       15427  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15428  +
    /// ```
       15429  +
    ///
       15430  +
                    pub fn test_payload_structure<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       15431  +
                    where
       15432  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::TestPayloadStructure, HandlerExtractors>,
       15433  +
       15434  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15435  +
                            RestJson<L>,
       15436  +
                            crate::operation_shape::TestPayloadStructure,
       15437  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::TestPayloadStructure, HandlerType>
       15438  +
                        >,
       15439  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15440  +
                            RestJson<L>,
       15441  +
                            crate::operation_shape::TestPayloadStructure,
       15442  +
                            ModelPl::Output
       15443  +
                        >,
       15444  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15445  +
                            RestJson<L>,
       15446  +
                            crate::operation_shape::TestPayloadStructure,
       15447  +
                            <
       15448  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15449  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15450  +
                                    RestJson<L>,
       15451  +
                                    crate::operation_shape::TestPayloadStructure,
       15452  +
                                    ModelPl::Output
       15453  +
                                >
       15454  +
                            >::Output
       15455  +
                        >,
       15456  +
       15457  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15458  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15459  +
       15460  +
                    {
       15461  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15462  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15463  +
        let svc = crate::operation_shape::TestPayloadStructure::from_handler(handler);
       15464  +
        let svc = self.model_plugin.apply(svc);
       15465  +
        let svc =
       15466  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15467  +
                .apply(svc);
       15468  +
        let svc = self.http_plugin.apply(svc);
       15469  +
        self.test_payload_structure_custom(svc)
       15470  +
    }
       15471  +
       15472  +
    /// Sets the [`TestPayloadStructure`](crate::operation_shape::TestPayloadStructure) operation.
       15473  +
    ///
       15474  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15475  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15476  +
    ///
       15477  +
    /// # Example
       15478  +
    ///
       15479  +
    /// ```no_run
       15480  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15481  +
    ///
       15482  +
    /// use rest_json_http0x::{input, output, error};
       15483  +
    ///
       15484  +
    /// async fn handler(input: input::TestPayloadStructureInput) -> Result<output::TestPayloadStructureOutput, std::convert::Infallible> {
       15485  +
    ///     todo!()
       15486  +
    /// }
       15487  +
    ///
       15488  +
    /// let config = RestJsonConfig::builder().build();
       15489  +
    /// let svc = ::tower::util::service_fn(handler);
       15490  +
    /// let app = RestJson::builder(config)
       15491  +
    ///     .test_payload_structure_service(svc)
       15492  +
    ///     /* Set other handlers */
       15493  +
    ///     .build()
       15494  +
    ///     .unwrap();
       15495  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15496  +
    /// ```
       15497  +
    ///
       15498  +
                    pub fn test_payload_structure_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       15499  +
                    where
       15500  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::TestPayloadStructure, ServiceExtractors>,
       15501  +
       15502  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15503  +
                            RestJson<L>,
       15504  +
                            crate::operation_shape::TestPayloadStructure,
       15505  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::TestPayloadStructure, S>
       15506  +
                        >,
       15507  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15508  +
                            RestJson<L>,
       15509  +
                            crate::operation_shape::TestPayloadStructure,
       15510  +
                            ModelPl::Output
       15511  +
                        >,
       15512  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15513  +
                            RestJson<L>,
       15514  +
                            crate::operation_shape::TestPayloadStructure,
       15515  +
                            <
       15516  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15517  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15518  +
                                    RestJson<L>,
       15519  +
                                    crate::operation_shape::TestPayloadStructure,
       15520  +
                                    ModelPl::Output
       15521  +
                                >
       15522  +
                            >::Output
       15523  +
                        >,
       15524  +
       15525  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15526  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15527  +
       15528  +
                    {
       15529  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15530  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15531  +
        let svc = crate::operation_shape::TestPayloadStructure::from_service(service);
       15532  +
        let svc = self.model_plugin.apply(svc);
       15533  +
        let svc =
       15534  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15535  +
                .apply(svc);
       15536  +
        let svc = self.http_plugin.apply(svc);
       15537  +
        self.test_payload_structure_custom(svc)
       15538  +
    }
       15539  +
       15540  +
    /// Sets the [`TestPayloadStructure`](crate::operation_shape::TestPayloadStructure) to a custom [`Service`](tower::Service).
       15541  +
    /// not constrained by the Smithy contract.
       15542  +
    fn test_payload_structure_custom<S>(mut self, svc: S) -> Self
       15543  +
    where
       15544  +
        S: ::tower::Service<
       15545  +
                ::http::Request<Body>,
       15546  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       15547  +
                Error = ::std::convert::Infallible,
       15548  +
            > + Clone
       15549  +
            + Send
       15550  +
            + 'static,
       15551  +
        S::Future: Send + 'static,
       15552  +
    {
       15553  +
        self.test_payload_structure =
       15554  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       15555  +
        self
       15556  +
    }
       15557  +
       15558  +
    /// Sets the [`TestPostNoInputNoPayload`](crate::operation_shape::TestPostNoInputNoPayload) operation.
       15559  +
    ///
       15560  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15561  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15562  +
    ///
       15563  +
    /// # Example
       15564  +
    ///
       15565  +
    /// ```no_run
       15566  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15567  +
    ///
       15568  +
    /// use rest_json_http0x::{input, output, error};
       15569  +
    ///
       15570  +
    /// async fn handler(input: input::TestPostNoInputNoPayloadInput) -> output::TestPostNoInputNoPayloadOutput {
       15571  +
    ///     todo!()
       15572  +
    /// }
       15573  +
    ///
       15574  +
    /// let config = RestJsonConfig::builder().build();
       15575  +
    /// let app = RestJson::builder(config)
       15576  +
    ///     .test_post_no_input_no_payload(handler)
       15577  +
    ///     /* Set other handlers */
       15578  +
    ///     .build()
       15579  +
    ///     .unwrap();
       15580  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15581  +
    /// ```
       15582  +
    ///
       15583  +
                    pub fn test_post_no_input_no_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       15584  +
                    where
       15585  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::TestPostNoInputNoPayload, HandlerExtractors>,
       15586  +
       15587  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15588  +
                            RestJson<L>,
       15589  +
                            crate::operation_shape::TestPostNoInputNoPayload,
       15590  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::TestPostNoInputNoPayload, HandlerType>
       15591  +
                        >,
       15592  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15593  +
                            RestJson<L>,
       15594  +
                            crate::operation_shape::TestPostNoInputNoPayload,
       15595  +
                            ModelPl::Output
       15596  +
                        >,
       15597  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15598  +
                            RestJson<L>,
       15599  +
                            crate::operation_shape::TestPostNoInputNoPayload,
       15600  +
                            <
       15601  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15602  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15603  +
                                    RestJson<L>,
       15604  +
                                    crate::operation_shape::TestPostNoInputNoPayload,
       15605  +
                                    ModelPl::Output
       15606  +
                                >
       15607  +
                            >::Output
       15608  +
                        >,
       15609  +
       15610  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15611  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15612  +
       15613  +
                    {
       15614  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15615  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15616  +
        let svc = crate::operation_shape::TestPostNoInputNoPayload::from_handler(handler);
       15617  +
        let svc = self.model_plugin.apply(svc);
       15618  +
        let svc =
       15619  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15620  +
                .apply(svc);
       15621  +
        let svc = self.http_plugin.apply(svc);
       15622  +
        self.test_post_no_input_no_payload_custom(svc)
       15623  +
    }
       15624  +
       15625  +
    /// Sets the [`TestPostNoInputNoPayload`](crate::operation_shape::TestPostNoInputNoPayload) operation.
       15626  +
    ///
       15627  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15628  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15629  +
    ///
       15630  +
    /// # Example
       15631  +
    ///
       15632  +
    /// ```no_run
       15633  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15634  +
    ///
       15635  +
    /// use rest_json_http0x::{input, output, error};
       15636  +
    ///
       15637  +
    /// async fn handler(input: input::TestPostNoInputNoPayloadInput) -> Result<output::TestPostNoInputNoPayloadOutput, std::convert::Infallible> {
       15638  +
    ///     todo!()
       15639  +
    /// }
       15640  +
    ///
       15641  +
    /// let config = RestJsonConfig::builder().build();
       15642  +
    /// let svc = ::tower::util::service_fn(handler);
       15643  +
    /// let app = RestJson::builder(config)
       15644  +
    ///     .test_post_no_input_no_payload_service(svc)
       15645  +
    ///     /* Set other handlers */
       15646  +
    ///     .build()
       15647  +
    ///     .unwrap();
       15648  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15649  +
    /// ```
       15650  +
    ///
       15651  +
                    pub fn test_post_no_input_no_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       15652  +
                    where
       15653  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::TestPostNoInputNoPayload, ServiceExtractors>,
       15654  +
       15655  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15656  +
                            RestJson<L>,
       15657  +
                            crate::operation_shape::TestPostNoInputNoPayload,
       15658  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::TestPostNoInputNoPayload, S>
       15659  +
                        >,
       15660  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15661  +
                            RestJson<L>,
       15662  +
                            crate::operation_shape::TestPostNoInputNoPayload,
       15663  +
                            ModelPl::Output
       15664  +
                        >,
       15665  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15666  +
                            RestJson<L>,
       15667  +
                            crate::operation_shape::TestPostNoInputNoPayload,
       15668  +
                            <
       15669  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15670  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15671  +
                                    RestJson<L>,
       15672  +
                                    crate::operation_shape::TestPostNoInputNoPayload,
       15673  +
                                    ModelPl::Output
       15674  +
                                >
       15675  +
                            >::Output
       15676  +
                        >,
       15677  +
       15678  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15679  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15680  +
       15681  +
                    {
       15682  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15683  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15684  +
        let svc = crate::operation_shape::TestPostNoInputNoPayload::from_service(service);
       15685  +
        let svc = self.model_plugin.apply(svc);
       15686  +
        let svc =
       15687  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15688  +
                .apply(svc);
       15689  +
        let svc = self.http_plugin.apply(svc);
       15690  +
        self.test_post_no_input_no_payload_custom(svc)
       15691  +
    }
       15692  +
       15693  +
    /// Sets the [`TestPostNoInputNoPayload`](crate::operation_shape::TestPostNoInputNoPayload) to a custom [`Service`](tower::Service).
       15694  +
    /// not constrained by the Smithy contract.
       15695  +
    fn test_post_no_input_no_payload_custom<S>(mut self, svc: S) -> Self
       15696  +
    where
       15697  +
        S: ::tower::Service<
       15698  +
                ::http::Request<Body>,
       15699  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       15700  +
                Error = ::std::convert::Infallible,
       15701  +
            > + Clone
       15702  +
            + Send
       15703  +
            + 'static,
       15704  +
        S::Future: Send + 'static,
       15705  +
    {
       15706  +
        self.test_post_no_input_no_payload =
       15707  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       15708  +
        self
       15709  +
    }
       15710  +
       15711  +
    /// Sets the [`TestPostNoPayload`](crate::operation_shape::TestPostNoPayload) operation.
       15712  +
    ///
       15713  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15714  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15715  +
    ///
       15716  +
    /// # Example
       15717  +
    ///
       15718  +
    /// ```no_run
       15719  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15720  +
    ///
       15721  +
    /// use rest_json_http0x::{input, output, error};
       15722  +
    ///
       15723  +
    /// async fn handler(input: input::TestPostNoPayloadInput) -> output::TestPostNoPayloadOutput {
       15724  +
    ///     todo!()
       15725  +
    /// }
       15726  +
    ///
       15727  +
    /// let config = RestJsonConfig::builder().build();
       15728  +
    /// let app = RestJson::builder(config)
       15729  +
    ///     .test_post_no_payload(handler)
       15730  +
    ///     /* Set other handlers */
       15731  +
    ///     .build()
       15732  +
    ///     .unwrap();
       15733  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15734  +
    /// ```
       15735  +
    ///
       15736  +
                    pub fn test_post_no_payload<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       15737  +
                    where
       15738  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::TestPostNoPayload, HandlerExtractors>,
       15739  +
       15740  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15741  +
                            RestJson<L>,
       15742  +
                            crate::operation_shape::TestPostNoPayload,
       15743  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::TestPostNoPayload, HandlerType>
       15744  +
                        >,
       15745  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15746  +
                            RestJson<L>,
       15747  +
                            crate::operation_shape::TestPostNoPayload,
       15748  +
                            ModelPl::Output
       15749  +
                        >,
       15750  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15751  +
                            RestJson<L>,
       15752  +
                            crate::operation_shape::TestPostNoPayload,
       15753  +
                            <
       15754  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15755  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15756  +
                                    RestJson<L>,
       15757  +
                                    crate::operation_shape::TestPostNoPayload,
       15758  +
                                    ModelPl::Output
       15759  +
                                >
       15760  +
                            >::Output
       15761  +
                        >,
       15762  +
       15763  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15764  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15765  +
       15766  +
                    {
       15767  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15768  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15769  +
        let svc = crate::operation_shape::TestPostNoPayload::from_handler(handler);
       15770  +
        let svc = self.model_plugin.apply(svc);
       15771  +
        let svc =
       15772  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15773  +
                .apply(svc);
       15774  +
        let svc = self.http_plugin.apply(svc);
       15775  +
        self.test_post_no_payload_custom(svc)
       15776  +
    }
       15777  +
       15778  +
    /// Sets the [`TestPostNoPayload`](crate::operation_shape::TestPostNoPayload) operation.
       15779  +
    ///
       15780  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15781  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15782  +
    ///
       15783  +
    /// # Example
       15784  +
    ///
       15785  +
    /// ```no_run
       15786  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15787  +
    ///
       15788  +
    /// use rest_json_http0x::{input, output, error};
       15789  +
    ///
       15790  +
    /// async fn handler(input: input::TestPostNoPayloadInput) -> Result<output::TestPostNoPayloadOutput, std::convert::Infallible> {
       15791  +
    ///     todo!()
       15792  +
    /// }
       15793  +
    ///
       15794  +
    /// let config = RestJsonConfig::builder().build();
       15795  +
    /// let svc = ::tower::util::service_fn(handler);
       15796  +
    /// let app = RestJson::builder(config)
       15797  +
    ///     .test_post_no_payload_service(svc)
       15798  +
    ///     /* Set other handlers */
       15799  +
    ///     .build()
       15800  +
    ///     .unwrap();
       15801  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15802  +
    /// ```
       15803  +
    ///
       15804  +
                    pub fn test_post_no_payload_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       15805  +
                    where
       15806  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::TestPostNoPayload, ServiceExtractors>,
       15807  +
       15808  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15809  +
                            RestJson<L>,
       15810  +
                            crate::operation_shape::TestPostNoPayload,
       15811  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::TestPostNoPayload, S>
       15812  +
                        >,
       15813  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15814  +
                            RestJson<L>,
       15815  +
                            crate::operation_shape::TestPostNoPayload,
       15816  +
                            ModelPl::Output
       15817  +
                        >,
       15818  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15819  +
                            RestJson<L>,
       15820  +
                            crate::operation_shape::TestPostNoPayload,
       15821  +
                            <
       15822  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15823  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15824  +
                                    RestJson<L>,
       15825  +
                                    crate::operation_shape::TestPostNoPayload,
       15826  +
                                    ModelPl::Output
       15827  +
                                >
       15828  +
                            >::Output
       15829  +
                        >,
       15830  +
       15831  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15832  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15833  +
       15834  +
                    {
       15835  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15836  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15837  +
        let svc = crate::operation_shape::TestPostNoPayload::from_service(service);
       15838  +
        let svc = self.model_plugin.apply(svc);
       15839  +
        let svc =
       15840  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15841  +
                .apply(svc);
       15842  +
        let svc = self.http_plugin.apply(svc);
       15843  +
        self.test_post_no_payload_custom(svc)
       15844  +
    }
       15845  +
       15846  +
    /// Sets the [`TestPostNoPayload`](crate::operation_shape::TestPostNoPayload) to a custom [`Service`](tower::Service).
       15847  +
    /// not constrained by the Smithy contract.
       15848  +
    fn test_post_no_payload_custom<S>(mut self, svc: S) -> Self
       15849  +
    where
       15850  +
        S: ::tower::Service<
       15851  +
                ::http::Request<Body>,
       15852  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       15853  +
                Error = ::std::convert::Infallible,
       15854  +
            > + Clone
       15855  +
            + Send
       15856  +
            + 'static,
       15857  +
        S::Future: Send + 'static,
       15858  +
    {
       15859  +
        self.test_post_no_payload = Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       15860  +
        self
       15861  +
    }
       15862  +
       15863  +
    /// Sets the [`TimestampFormatHeaders`](crate::operation_shape::TimestampFormatHeaders) operation.
       15864  +
    ///
       15865  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15866  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15867  +
    ///
       15868  +
    /// # Example
       15869  +
    ///
       15870  +
    /// ```no_run
       15871  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15872  +
    ///
       15873  +
    /// use rest_json_http0x::{input, output, error};
       15874  +
    ///
       15875  +
    /// async fn handler(input: input::TimestampFormatHeadersInput) -> output::TimestampFormatHeadersOutput {
       15876  +
    ///     todo!()
       15877  +
    /// }
       15878  +
    ///
       15879  +
    /// let config = RestJsonConfig::builder().build();
       15880  +
    /// let app = RestJson::builder(config)
       15881  +
    ///     .timestamp_format_headers(handler)
       15882  +
    ///     /* Set other handlers */
       15883  +
    ///     .build()
       15884  +
    ///     .unwrap();
       15885  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15886  +
    /// ```
       15887  +
    ///
       15888  +
                    pub fn timestamp_format_headers<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       15889  +
                    where
       15890  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::TimestampFormatHeaders, HandlerExtractors>,
       15891  +
       15892  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15893  +
                            RestJson<L>,
       15894  +
                            crate::operation_shape::TimestampFormatHeaders,
       15895  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::TimestampFormatHeaders, HandlerType>
       15896  +
                        >,
       15897  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15898  +
                            RestJson<L>,
       15899  +
                            crate::operation_shape::TimestampFormatHeaders,
       15900  +
                            ModelPl::Output
       15901  +
                        >,
       15902  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15903  +
                            RestJson<L>,
       15904  +
                            crate::operation_shape::TimestampFormatHeaders,
       15905  +
                            <
       15906  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15907  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15908  +
                                    RestJson<L>,
       15909  +
                                    crate::operation_shape::TimestampFormatHeaders,
       15910  +
                                    ModelPl::Output
       15911  +
                                >
       15912  +
                            >::Output
       15913  +
                        >,
       15914  +
       15915  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15916  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15917  +
       15918  +
                    {
       15919  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15920  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15921  +
        let svc = crate::operation_shape::TimestampFormatHeaders::from_handler(handler);
       15922  +
        let svc = self.model_plugin.apply(svc);
       15923  +
        let svc =
       15924  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15925  +
                .apply(svc);
       15926  +
        let svc = self.http_plugin.apply(svc);
       15927  +
        self.timestamp_format_headers_custom(svc)
       15928  +
    }
       15929  +
       15930  +
    /// Sets the [`TimestampFormatHeaders`](crate::operation_shape::TimestampFormatHeaders) operation.
       15931  +
    ///
       15932  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       15933  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       15934  +
    ///
       15935  +
    /// # Example
       15936  +
    ///
       15937  +
    /// ```no_run
       15938  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       15939  +
    ///
       15940  +
    /// use rest_json_http0x::{input, output, error};
       15941  +
    ///
       15942  +
    /// async fn handler(input: input::TimestampFormatHeadersInput) -> Result<output::TimestampFormatHeadersOutput, std::convert::Infallible> {
       15943  +
    ///     todo!()
       15944  +
    /// }
       15945  +
    ///
       15946  +
    /// let config = RestJsonConfig::builder().build();
       15947  +
    /// let svc = ::tower::util::service_fn(handler);
       15948  +
    /// let app = RestJson::builder(config)
       15949  +
    ///     .timestamp_format_headers_service(svc)
       15950  +
    ///     /* Set other handlers */
       15951  +
    ///     .build()
       15952  +
    ///     .unwrap();
       15953  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       15954  +
    /// ```
       15955  +
    ///
       15956  +
                    pub fn timestamp_format_headers_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       15957  +
                    where
       15958  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::TimestampFormatHeaders, ServiceExtractors>,
       15959  +
       15960  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15961  +
                            RestJson<L>,
       15962  +
                            crate::operation_shape::TimestampFormatHeaders,
       15963  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::TimestampFormatHeaders, S>
       15964  +
                        >,
       15965  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15966  +
                            RestJson<L>,
       15967  +
                            crate::operation_shape::TimestampFormatHeaders,
       15968  +
                            ModelPl::Output
       15969  +
                        >,
       15970  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       15971  +
                            RestJson<L>,
       15972  +
                            crate::operation_shape::TimestampFormatHeaders,
       15973  +
                            <
       15974  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       15975  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       15976  +
                                    RestJson<L>,
       15977  +
                                    crate::operation_shape::TimestampFormatHeaders,
       15978  +
                                    ModelPl::Output
       15979  +
                                >
       15980  +
                            >::Output
       15981  +
                        >,
       15982  +
       15983  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       15984  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       15985  +
       15986  +
                    {
       15987  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       15988  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       15989  +
        let svc = crate::operation_shape::TimestampFormatHeaders::from_service(service);
       15990  +
        let svc = self.model_plugin.apply(svc);
       15991  +
        let svc =
       15992  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       15993  +
                .apply(svc);
       15994  +
        let svc = self.http_plugin.apply(svc);
       15995  +
        self.timestamp_format_headers_custom(svc)
       15996  +
    }
       15997  +
       15998  +
    /// Sets the [`TimestampFormatHeaders`](crate::operation_shape::TimestampFormatHeaders) to a custom [`Service`](tower::Service).
       15999  +
    /// not constrained by the Smithy contract.
       16000  +
    fn timestamp_format_headers_custom<S>(mut self, svc: S) -> Self
       16001  +
    where
       16002  +
        S: ::tower::Service<
       16003  +
                ::http::Request<Body>,
       16004  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       16005  +
                Error = ::std::convert::Infallible,
       16006  +
            > + Clone
       16007  +
            + Send
       16008  +
            + 'static,
       16009  +
        S::Future: Send + 'static,
       16010  +
    {
       16011  +
        self.timestamp_format_headers =
       16012  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       16013  +
        self
       16014  +
    }
       16015  +
       16016  +
    /// Sets the [`UnitInputAndOutput`](crate::operation_shape::UnitInputAndOutput) operation.
       16017  +
    ///
       16018  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       16019  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       16020  +
    ///
       16021  +
    /// # Example
       16022  +
    ///
       16023  +
    /// ```no_run
       16024  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       16025  +
    ///
       16026  +
    /// use rest_json_http0x::{input, output, error};
       16027  +
    ///
       16028  +
    /// async fn handler(input: input::UnitInputAndOutputInput) -> output::UnitInputAndOutputOutput {
       16029  +
    ///     todo!()
       16030  +
    /// }
       16031  +
    ///
       16032  +
    /// let config = RestJsonConfig::builder().build();
       16033  +
    /// let app = RestJson::builder(config)
       16034  +
    ///     .unit_input_and_output(handler)
       16035  +
    ///     /* Set other handlers */
       16036  +
    ///     .build()
       16037  +
    ///     .unwrap();
       16038  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       16039  +
    /// ```
       16040  +
    ///
       16041  +
                    pub fn unit_input_and_output<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
       16042  +
                    where
       16043  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::UnitInputAndOutput, HandlerExtractors>,
       16044  +
       16045  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       16046  +
                            RestJson<L>,
       16047  +
                            crate::operation_shape::UnitInputAndOutput,
       16048  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::UnitInputAndOutput, HandlerType>
       16049  +
                        >,
       16050  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       16051  +
                            RestJson<L>,
       16052  +
                            crate::operation_shape::UnitInputAndOutput,
       16053  +
                            ModelPl::Output
       16054  +
                        >,
       16055  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       16056  +
                            RestJson<L>,
       16057  +
                            crate::operation_shape::UnitInputAndOutput,
       16058  +
                            <
       16059  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       16060  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       16061  +
                                    RestJson<L>,
       16062  +
                                    crate::operation_shape::UnitInputAndOutput,
       16063  +
                                    ModelPl::Output
       16064  +
                                >
       16065  +
                            >::Output
       16066  +
                        >,
       16067  +
       16068  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       16069  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       16070  +
       16071  +
                    {
       16072  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       16073  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       16074  +
        let svc = crate::operation_shape::UnitInputAndOutput::from_handler(handler);
       16075  +
        let svc = self.model_plugin.apply(svc);
       16076  +
        let svc =
       16077  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       16078  +
                .apply(svc);
       16079  +
        let svc = self.http_plugin.apply(svc);
       16080  +
        self.unit_input_and_output_custom(svc)
       16081  +
    }
       16082  +
       16083  +
    /// Sets the [`UnitInputAndOutput`](crate::operation_shape::UnitInputAndOutput) operation.
       16084  +
    ///
       16085  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
       16086  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
       16087  +
    ///
       16088  +
    /// # Example
       16089  +
    ///
       16090  +
    /// ```no_run
       16091  +
    /// use rest_json_http0x::{RestJson, RestJsonConfig};
       16092  +
    ///
       16093  +
    /// use rest_json_http0x::{input, output, error};
       16094  +
    ///
       16095  +
    /// async fn handler(input: input::UnitInputAndOutputInput) -> Result<output::UnitInputAndOutputOutput, std::convert::Infallible> {
       16096  +
    ///     todo!()
       16097  +
    /// }
       16098  +
    ///
       16099  +
    /// let config = RestJsonConfig::builder().build();
       16100  +
    /// let svc = ::tower::util::service_fn(handler);
       16101  +
    /// let app = RestJson::builder(config)
       16102  +
    ///     .unit_input_and_output_service(svc)
       16103  +
    ///     /* Set other handlers */
       16104  +
    ///     .build()
       16105  +
    ///     .unwrap();
       16106  +
    /// # let app: RestJson<::aws_smithy_legacy_http_server::routing::RoutingService<::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<::aws_smithy_legacy_http_server::routing::Route>, ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>> = app;
       16107  +
    /// ```
       16108  +
    ///
       16109  +
                    pub fn unit_input_and_output_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
       16110  +
                    where
       16111  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::UnitInputAndOutput, ServiceExtractors>,
       16112  +
       16113  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       16114  +
                            RestJson<L>,
       16115  +
                            crate::operation_shape::UnitInputAndOutput,
       16116  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::UnitInputAndOutput, S>
       16117  +
                        >,
       16118  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
       16119  +
                            RestJson<L>,
       16120  +
                            crate::operation_shape::UnitInputAndOutput,
       16121  +
                            ModelPl::Output
       16122  +
                        >,
       16123  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
       16124  +
                            RestJson<L>,
       16125  +
                            crate::operation_shape::UnitInputAndOutput,
       16126  +
                            <
       16127  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
       16128  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
       16129  +
                                    RestJson<L>,
       16130  +
                                    crate::operation_shape::UnitInputAndOutput,
       16131  +
                                    ModelPl::Output
       16132  +
                                >
       16133  +
                            >::Output
       16134  +
                        >,
       16135  +
       16136  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
       16137  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
       16138  +
       16139  +
                    {
       16140  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
       16141  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
       16142  +
        let svc = crate::operation_shape::UnitInputAndOutput::from_service(service);
       16143  +
        let svc = self.model_plugin.apply(svc);
       16144  +
        let svc =
       16145  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
       16146  +
                .apply(svc);
       16147  +
        let svc = self.http_plugin.apply(svc);
       16148  +
        self.unit_input_and_output_custom(svc)
       16149  +
    }
       16150  +
       16151  +
    /// Sets the [`UnitInputAndOutput`](crate::operation_shape::UnitInputAndOutput) to a custom [`Service`](tower::Service).
       16152  +
    /// not constrained by the Smithy contract.
       16153  +
    fn unit_input_and_output_custom<S>(mut self, svc: S) -> Self
       16154  +
    where
       16155  +
        S: ::tower::Service<
       16156  +
                ::http::Request<Body>,
       16157  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       16158  +
                Error = ::std::convert::Infallible,
       16159  +
            > + Clone
       16160  +
            + Send
       16161  +
            + 'static,
       16162  +
        S::Future: Send + 'static,
       16163  +
    {
       16164  +
        self.unit_input_and_output =
       16165  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
       16166  +
        self
       16167  +
    }
       16168  +
}
       16169  +
       16170  +
impl<Body, L, HttpPl, ModelPl> RestJsonBuilder<Body, L, HttpPl, ModelPl> {
       16171  +
    /// Constructs a [`RestJson`] from the arguments provided to the builder.
       16172  +
    ///
       16173  +
    /// Forgetting to register a handler for one or more operations will result in an error.
       16174  +
    ///
       16175  +
    /// Check out [`RestJsonBuilder::build_unchecked`] if you'd prefer the service to return status code 500 when an
       16176  +
    /// unspecified route is requested.
       16177  +
    pub fn build(
       16178  +
        self,
       16179  +
    ) -> ::std::result::Result<
       16180  +
        RestJson<
       16181  +
            ::aws_smithy_legacy_http_server::routing::RoutingService<
       16182  +
                ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<L::Service>,
       16183  +
                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       16184  +
            >,
       16185  +
        >,
       16186  +
        MissingOperationsError,
       16187  +
    >
       16188  +
    where
       16189  +
        L: ::tower::Layer<::aws_smithy_legacy_http_server::routing::Route<Body>>,
       16190  +
    {
       16191  +
        let router = {
       16192  +
            use ::aws_smithy_legacy_http_server::operation::OperationShape;
       16193  +
            let mut missing_operation_names = std::collections::HashMap::new();
       16194  +
            if self.all_query_string_types.is_none() {
       16195  +
                missing_operation_names.insert(
       16196  +
                    crate::operation_shape::AllQueryStringTypes::ID,
       16197  +
                    ".all_query_string_types()",
       16198  +
                );
       16199  +
            }
       16200  +
            if self.constant_and_variable_query_string.is_none() {
       16201  +
                missing_operation_names.insert(
       16202  +
                    crate::operation_shape::ConstantAndVariableQueryString::ID,
       16203  +
                    ".constant_and_variable_query_string()",
       16204  +
                );
       16205  +
            }
       16206  +
            if self.constant_query_string.is_none() {
       16207  +
                missing_operation_names.insert(
       16208  +
                    crate::operation_shape::ConstantQueryString::ID,
       16209  +
                    ".constant_query_string()",
       16210  +
                );
       16211  +
            }
       16212  +
            if self.content_type_parameters.is_none() {
       16213  +
                missing_operation_names.insert(
       16214  +
                    crate::operation_shape::ContentTypeParameters::ID,
       16215  +
                    ".content_type_parameters()",
       16216  +
                );
       16217  +
            }
       16218  +
            if self.datetime_offsets.is_none() {
       16219  +
                missing_operation_names.insert(
       16220  +
                    crate::operation_shape::DatetimeOffsets::ID,
       16221  +
                    ".datetime_offsets()",
       16222  +
                );
       16223  +
            }
       16224  +
            if self.document_type.is_none() {
       16225  +
                missing_operation_names
       16226  +
                    .insert(crate::operation_shape::DocumentType::ID, ".document_type()");
       16227  +
            }
       16228  +
            if self.document_type_as_map_value.is_none() {
       16229  +
                missing_operation_names.insert(
       16230  +
                    crate::operation_shape::DocumentTypeAsMapValue::ID,
       16231  +
                    ".document_type_as_map_value()",
       16232  +
                );
       16233  +
            }
       16234  +
            if self.document_type_as_payload.is_none() {
       16235  +
                missing_operation_names.insert(
       16236  +
                    crate::operation_shape::DocumentTypeAsPayload::ID,
       16237  +
                    ".document_type_as_payload()",
       16238  +
                );
       16239  +
            }
       16240  +
            if self.empty_input_and_empty_output.is_none() {
       16241  +
                missing_operation_names.insert(
       16242  +
                    crate::operation_shape::EmptyInputAndEmptyOutput::ID,
       16243  +
                    ".empty_input_and_empty_output()",
       16244  +
                );
       16245  +
            }
       16246  +
            if self.endpoint_operation.is_none() {
       16247  +
                missing_operation_names.insert(
       16248  +
                    crate::operation_shape::EndpointOperation::ID,
       16249  +
                    ".endpoint_operation()",
       16250  +
                );
       16251  +
            }
       16252  +
            if self.endpoint_with_host_label_operation.is_none() {
       16253  +
                missing_operation_names.insert(
       16254  +
                    crate::operation_shape::EndpointWithHostLabelOperation::ID,
       16255  +
                    ".endpoint_with_host_label_operation()",
       16256  +
                );
       16257  +
            }
       16258  +
            if self.fractional_seconds.is_none() {
       16259  +
                missing_operation_names.insert(
       16260  +
                    crate::operation_shape::FractionalSeconds::ID,
       16261  +
                    ".fractional_seconds()",
       16262  +
                );
       16263  +
            }
       16264  +
            if self.greeting_with_errors.is_none() {
       16265  +
                missing_operation_names.insert(
       16266  +
                    crate::operation_shape::GreetingWithErrors::ID,
       16267  +
                    ".greeting_with_errors()",
       16268  +
                );
       16269  +
            }
       16270  +
            if self.host_with_path_operation.is_none() {
       16271  +
                missing_operation_names.insert(
       16272  +
                    crate::operation_shape::HostWithPathOperation::ID,
       16273  +
                    ".host_with_path_operation()",
       16274  +
                );
       16275  +
            }
       16276  +
            if self.http_checksum_required.is_none() {
       16277  +
                missing_operation_names.insert(
       16278  +
                    crate::operation_shape::HttpChecksumRequired::ID,
       16279  +
                    ".http_checksum_required()",
       16280  +
                );
       16281  +
            }
       16282  +
            if self.http_empty_prefix_headers.is_none() {
       16283  +
                missing_operation_names.insert(
       16284  +
                    crate::operation_shape::HttpEmptyPrefixHeaders::ID,
       16285  +
                    ".http_empty_prefix_headers()",
       16286  +
                );
       16287  +
            }
       16288  +
            if self.http_enum_payload.is_none() {
       16289  +
                missing_operation_names.insert(
       16290  +
                    crate::operation_shape::HttpEnumPayload::ID,
       16291  +
                    ".http_enum_payload()",
       16292  +
                );
       16293  +
            }
       16294  +
            if self.http_payload_traits.is_none() {
       16295  +
                missing_operation_names.insert(
       16296  +
                    crate::operation_shape::HttpPayloadTraits::ID,
       16297  +
                    ".http_payload_traits()",
       16298  +
                );
       16299  +
            }
       16300  +
            if self.http_payload_traits_with_media_type.is_none() {
       16301  +
                missing_operation_names.insert(
       16302  +
                    crate::operation_shape::HttpPayloadTraitsWithMediaType::ID,
       16303  +
                    ".http_payload_traits_with_media_type()",
       16304  +
                );
       16305  +
            }
       16306  +
            if self.http_payload_with_structure.is_none() {
       16307  +
                missing_operation_names.insert(
       16308  +
                    crate::operation_shape::HttpPayloadWithStructure::ID,
       16309  +
                    ".http_payload_with_structure()",
       16310  +
                );
       16311  +
            }
       16312  +
            if self.http_payload_with_union.is_none() {
       16313  +
                missing_operation_names.insert(
       16314  +
                    crate::operation_shape::HttpPayloadWithUnion::ID,
       16315  +
                    ".http_payload_with_union()",
       16316  +
                );
       16317  +
            }
       16318  +
            if self.http_prefix_headers.is_none() {
       16319  +
                missing_operation_names.insert(
       16320  +
                    crate::operation_shape::HttpPrefixHeaders::ID,
       16321  +
                    ".http_prefix_headers()",
       16322  +
                );
       16323  +
            }
       16324  +
            if self.http_prefix_headers_in_response.is_none() {
       16325  +
                missing_operation_names.insert(
       16326  +
                    crate::operation_shape::HttpPrefixHeadersInResponse::ID,
       16327  +
                    ".http_prefix_headers_in_response()",
       16328  +
                );
       16329  +
            }
       16330  +
            if self.http_request_with_float_labels.is_none() {
       16331  +
                missing_operation_names.insert(
       16332  +
                    crate::operation_shape::HttpRequestWithFloatLabels::ID,
       16333  +
                    ".http_request_with_float_labels()",
       16334  +
                );
       16335  +
            }
       16336  +
            if self.http_request_with_greedy_label_in_path.is_none() {
       16337  +
                missing_operation_names.insert(
       16338  +
                    crate::operation_shape::HttpRequestWithGreedyLabelInPath::ID,
       16339  +
                    ".http_request_with_greedy_label_in_path()",
       16340  +
                );
       16341  +
            }
       16342  +
            if self.http_request_with_labels.is_none() {
       16343  +
                missing_operation_names.insert(
       16344  +
                    crate::operation_shape::HttpRequestWithLabels::ID,
       16345  +
                    ".http_request_with_labels()",
       16346  +
                );
       16347  +
            }
       16348  +
            if self.http_request_with_labels_and_timestamp_format.is_none() {
       16349  +
                missing_operation_names.insert(
       16350  +
                    crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat::ID,
       16351  +
                    ".http_request_with_labels_and_timestamp_format()",
       16352  +
                );
       16353  +
            }
       16354  +
            if self.http_request_with_regex_literal.is_none() {
       16355  +
                missing_operation_names.insert(
       16356  +
                    crate::operation_shape::HttpRequestWithRegexLiteral::ID,
       16357  +
                    ".http_request_with_regex_literal()",
       16358  +
                );
       16359  +
            }
       16360  +
            if self.http_response_code.is_none() {
       16361  +
                missing_operation_names.insert(
       16362  +
                    crate::operation_shape::HttpResponseCode::ID,
       16363  +
                    ".http_response_code()",
       16364  +
                );
       16365  +
            }
       16366  +
            if self.http_string_payload.is_none() {
       16367  +
                missing_operation_names.insert(
       16368  +
                    crate::operation_shape::HttpStringPayload::ID,
       16369  +
                    ".http_string_payload()",
       16370  +
                );
       16371  +
            }
       16372  +
            if self.ignore_query_params_in_response.is_none() {
       16373  +
                missing_operation_names.insert(
       16374  +
                    crate::operation_shape::IgnoreQueryParamsInResponse::ID,
       16375  +
                    ".ignore_query_params_in_response()",
       16376  +
                );
       16377  +
            }
       16378  +
            if self.input_and_output_with_headers.is_none() {
       16379  +
                missing_operation_names.insert(
       16380  +
                    crate::operation_shape::InputAndOutputWithHeaders::ID,
       16381  +
                    ".input_and_output_with_headers()",
       16382  +
                );
       16383  +
            }
       16384  +
            if self.json_blobs.is_none() {
       16385  +
                missing_operation_names
       16386  +
                    .insert(crate::operation_shape::JsonBlobs::ID, ".json_blobs()");
       16387  +
            }
       16388  +
            if self.json_enums.is_none() {
       16389  +
                missing_operation_names
       16390  +
                    .insert(crate::operation_shape::JsonEnums::ID, ".json_enums()");
       16391  +
            }
       16392  +
            if self.json_int_enums.is_none() {
       16393  +
                missing_operation_names.insert(
       16394  +
                    crate::operation_shape::JsonIntEnums::ID,
       16395  +
                    ".json_int_enums()",
       16396  +
                );
       16397  +
            }
       16398  +
            if self.json_lists.is_none() {
       16399  +
                missing_operation_names
       16400  +
                    .insert(crate::operation_shape::JsonLists::ID, ".json_lists()");
       16401  +
            }
       16402  +
            if self.json_maps.is_none() {
       16403  +
                missing_operation_names
       16404  +
                    .insert(crate::operation_shape::JsonMaps::ID, ".json_maps()");
       16405  +
            }
       16406  +
            if self.json_timestamps.is_none() {
       16407  +
                missing_operation_names.insert(
       16408  +
                    crate::operation_shape::JsonTimestamps::ID,
       16409  +
                    ".json_timestamps()",
       16410  +
                );
       16411  +
            }
       16412  +
            if self.json_unions.is_none() {
       16413  +
                missing_operation_names
       16414  +
                    .insert(crate::operation_shape::JsonUnions::ID, ".json_unions()");
       16415  +
            }
       16416  +
            if self.malformed_accept_with_body.is_none() {
       16417  +
                missing_operation_names.insert(
       16418  +
                    crate::operation_shape::MalformedAcceptWithBody::ID,
       16419  +
                    ".malformed_accept_with_body()",
       16420  +
                );
       16421  +
            }
       16422  +
            if self.malformed_accept_with_generic_string.is_none() {
       16423  +
                missing_operation_names.insert(
       16424  +
                    crate::operation_shape::MalformedAcceptWithGenericString::ID,
       16425  +
                    ".malformed_accept_with_generic_string()",
       16426  +
                );
       16427  +
            }
       16428  +
            if self.malformed_accept_with_payload.is_none() {
       16429  +
                missing_operation_names.insert(
       16430  +
                    crate::operation_shape::MalformedAcceptWithPayload::ID,
       16431  +
                    ".malformed_accept_with_payload()",
       16432  +
                );
       16433  +
            }
       16434  +
            if self.malformed_blob.is_none() {
       16435  +
                missing_operation_names.insert(
       16436  +
                    crate::operation_shape::MalformedBlob::ID,
       16437  +
                    ".malformed_blob()",
       16438  +
                );
       16439  +
            }
       16440  +
            if self.malformed_boolean.is_none() {
       16441  +
                missing_operation_names.insert(
       16442  +
                    crate::operation_shape::MalformedBoolean::ID,
       16443  +
                    ".malformed_boolean()",
       16444  +
                );
       16445  +
            }
       16446  +
            if self.malformed_byte.is_none() {
       16447  +
                missing_operation_names.insert(
       16448  +
                    crate::operation_shape::MalformedByte::ID,
       16449  +
                    ".malformed_byte()",
       16450  +
                );
       16451  +
            }
       16452  +
            if self.malformed_content_type_with_body.is_none() {
       16453  +
                missing_operation_names.insert(
       16454  +
                    crate::operation_shape::MalformedContentTypeWithBody::ID,
       16455  +
                    ".malformed_content_type_with_body()",
       16456  +
                );
       16457  +
            }
       16458  +
            if self.malformed_content_type_with_generic_string.is_none() {
       16459  +
                missing_operation_names.insert(
       16460  +
                    crate::operation_shape::MalformedContentTypeWithGenericString::ID,
       16461  +
                    ".malformed_content_type_with_generic_string()",
       16462  +
                );
       16463  +
            }
       16464  +
            if self.malformed_content_type_without_body.is_none() {
       16465  +
                missing_operation_names.insert(
       16466  +
                    crate::operation_shape::MalformedContentTypeWithoutBody::ID,
       16467  +
                    ".malformed_content_type_without_body()",
       16468  +
                );
       16469  +
            }
       16470  +
            if self
       16471  +
                .malformed_content_type_without_body_empty_input
       16472  +
                .is_none()
       16473  +
            {
       16474  +
                missing_operation_names.insert(
       16475  +
                    crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput::ID,
       16476  +
                    ".malformed_content_type_without_body_empty_input()",
       16477  +
                );
       16478  +
            }
       16479  +
            if self.malformed_content_type_with_payload.is_none() {
       16480  +
                missing_operation_names.insert(
       16481  +
                    crate::operation_shape::MalformedContentTypeWithPayload::ID,
       16482  +
                    ".malformed_content_type_with_payload()",
       16483  +
                );
       16484  +
            }
       16485  +
            if self.malformed_double.is_none() {
       16486  +
                missing_operation_names.insert(
       16487  +
                    crate::operation_shape::MalformedDouble::ID,
       16488  +
                    ".malformed_double()",
       16489  +
                );
       16490  +
            }
       16491  +
            if self.malformed_float.is_none() {
       16492  +
                missing_operation_names.insert(
       16493  +
                    crate::operation_shape::MalformedFloat::ID,
       16494  +
                    ".malformed_float()",
       16495  +
                );
       16496  +
            }
       16497  +
            if self.malformed_integer.is_none() {
       16498  +
                missing_operation_names.insert(
       16499  +
                    crate::operation_shape::MalformedInteger::ID,
       16500  +
                    ".malformed_integer()",
       16501  +
                );
       16502  +
            }
       16503  +
            if self.malformed_list.is_none() {
       16504  +
                missing_operation_names.insert(
       16505  +
                    crate::operation_shape::MalformedList::ID,
       16506  +
                    ".malformed_list()",
       16507  +
                );
       16508  +
            }
       16509  +
            if self.malformed_long.is_none() {
       16510  +
                missing_operation_names.insert(
       16511  +
                    crate::operation_shape::MalformedLong::ID,
       16512  +
                    ".malformed_long()",
       16513  +
                );
       16514  +
            }
       16515  +
            if self.malformed_map.is_none() {
       16516  +
                missing_operation_names
       16517  +
                    .insert(crate::operation_shape::MalformedMap::ID, ".malformed_map()");
       16518  +
            }
       16519  +
            if self.malformed_request_body.is_none() {
       16520  +
                missing_operation_names.insert(
       16521  +
                    crate::operation_shape::MalformedRequestBody::ID,
       16522  +
                    ".malformed_request_body()",
       16523  +
                );
       16524  +
            }
       16525  +
            if self.malformed_short.is_none() {
       16526  +
                missing_operation_names.insert(
       16527  +
                    crate::operation_shape::MalformedShort::ID,
       16528  +
                    ".malformed_short()",
       16529  +
                );
       16530  +
            }
       16531  +
            if self.malformed_string.is_none() {
       16532  +
                missing_operation_names.insert(
       16533  +
                    crate::operation_shape::MalformedString::ID,
       16534  +
                    ".malformed_string()",
       16535  +
                );
       16536  +
            }
       16537  +
            if self.malformed_timestamp_body_date_time.is_none() {
       16538  +
                missing_operation_names.insert(
       16539  +
                    crate::operation_shape::MalformedTimestampBodyDateTime::ID,
       16540  +
                    ".malformed_timestamp_body_date_time()",
       16541  +
                );
       16542  +
            }
       16543  +
            if self.malformed_timestamp_body_default.is_none() {
       16544  +
                missing_operation_names.insert(
       16545  +
                    crate::operation_shape::MalformedTimestampBodyDefault::ID,
       16546  +
                    ".malformed_timestamp_body_default()",
       16547  +
                );
       16548  +
            }
       16549  +
            if self.malformed_timestamp_body_http_date.is_none() {
       16550  +
                missing_operation_names.insert(
       16551  +
                    crate::operation_shape::MalformedTimestampBodyHttpDate::ID,
       16552  +
                    ".malformed_timestamp_body_http_date()",
       16553  +
                );
       16554  +
            }
       16555  +
            if self.malformed_timestamp_header_date_time.is_none() {
       16556  +
                missing_operation_names.insert(
       16557  +
                    crate::operation_shape::MalformedTimestampHeaderDateTime::ID,
       16558  +
                    ".malformed_timestamp_header_date_time()",
       16559  +
                );
       16560  +
            }
       16561  +
            if self.malformed_timestamp_header_default.is_none() {
       16562  +
                missing_operation_names.insert(
       16563  +
                    crate::operation_shape::MalformedTimestampHeaderDefault::ID,
       16564  +
                    ".malformed_timestamp_header_default()",
       16565  +
                );
       16566  +
            }
       16567  +
            if self.malformed_timestamp_header_epoch.is_none() {
       16568  +
                missing_operation_names.insert(
       16569  +
                    crate::operation_shape::MalformedTimestampHeaderEpoch::ID,
       16570  +
                    ".malformed_timestamp_header_epoch()",
       16571  +
                );
       16572  +
            }
       16573  +
            if self.malformed_timestamp_path_default.is_none() {
       16574  +
                missing_operation_names.insert(
       16575  +
                    crate::operation_shape::MalformedTimestampPathDefault::ID,
       16576  +
                    ".malformed_timestamp_path_default()",
       16577  +
                );
       16578  +
            }
       16579  +
            if self.malformed_timestamp_path_epoch.is_none() {
       16580  +
                missing_operation_names.insert(
       16581  +
                    crate::operation_shape::MalformedTimestampPathEpoch::ID,
       16582  +
                    ".malformed_timestamp_path_epoch()",
       16583  +
                );
       16584  +
            }
       16585  +
            if self.malformed_timestamp_path_http_date.is_none() {
       16586  +
                missing_operation_names.insert(
       16587  +
                    crate::operation_shape::MalformedTimestampPathHttpDate::ID,
       16588  +
                    ".malformed_timestamp_path_http_date()",
       16589  +
                );
       16590  +
            }
       16591  +
            if self.malformed_timestamp_query_default.is_none() {
       16592  +
                missing_operation_names.insert(
       16593  +
                    crate::operation_shape::MalformedTimestampQueryDefault::ID,
       16594  +
                    ".malformed_timestamp_query_default()",
       16595  +
                );
       16596  +
            }
       16597  +
            if self.malformed_timestamp_query_epoch.is_none() {
       16598  +
                missing_operation_names.insert(
       16599  +
                    crate::operation_shape::MalformedTimestampQueryEpoch::ID,
       16600  +
                    ".malformed_timestamp_query_epoch()",
       16601  +
                );
       16602  +
            }
       16603  +
            if self.malformed_timestamp_query_http_date.is_none() {
       16604  +
                missing_operation_names.insert(
       16605  +
                    crate::operation_shape::MalformedTimestampQueryHttpDate::ID,
       16606  +
                    ".malformed_timestamp_query_http_date()",
       16607  +
                );
       16608  +
            }
       16609  +
            if self.malformed_union.is_none() {
       16610  +
                missing_operation_names.insert(
       16611  +
                    crate::operation_shape::MalformedUnion::ID,
       16612  +
                    ".malformed_union()",
       16613  +
                );
       16614  +
            }
       16615  +
            if self.media_type_header.is_none() {
       16616  +
                missing_operation_names.insert(
       16617  +
                    crate::operation_shape::MediaTypeHeader::ID,
       16618  +
                    ".media_type_header()",
       16619  +
                );
       16620  +
            }
       16621  +
            if self.no_input_and_no_output.is_none() {
       16622  +
                missing_operation_names.insert(
       16623  +
                    crate::operation_shape::NoInputAndNoOutput::ID,
       16624  +
                    ".no_input_and_no_output()",
       16625  +
                );
       16626  +
            }
       16627  +
            if self.no_input_and_output.is_none() {
       16628  +
                missing_operation_names.insert(
       16629  +
                    crate::operation_shape::NoInputAndOutput::ID,
       16630  +
                    ".no_input_and_output()",
       16631  +
                );
       16632  +
            }
       16633  +
            if self.null_and_empty_headers_client.is_none() {
       16634  +
                missing_operation_names.insert(
       16635  +
                    crate::operation_shape::NullAndEmptyHeadersClient::ID,
       16636  +
                    ".null_and_empty_headers_client()",
       16637  +
                );
       16638  +
            }
       16639  +
            if self.null_and_empty_headers_server.is_none() {
       16640  +
                missing_operation_names.insert(
       16641  +
                    crate::operation_shape::NullAndEmptyHeadersServer::ID,
       16642  +
                    ".null_and_empty_headers_server()",
       16643  +
                );
       16644  +
            }
       16645  +
            if self.omits_null_serializes_empty_string.is_none() {
       16646  +
                missing_operation_names.insert(
       16647  +
                    crate::operation_shape::OmitsNullSerializesEmptyString::ID,
       16648  +
                    ".omits_null_serializes_empty_string()",
       16649  +
                );
       16650  +
            }
       16651  +
            if self.omits_serializing_empty_lists.is_none() {
       16652  +
                missing_operation_names.insert(
       16653  +
                    crate::operation_shape::OmitsSerializingEmptyLists::ID,
       16654  +
                    ".omits_serializing_empty_lists()",
       16655  +
                );
       16656  +
            }
       16657  +
            if self.operation_with_defaults.is_none() {
       16658  +
                missing_operation_names.insert(
       16659  +
                    crate::operation_shape::OperationWithDefaults::ID,
       16660  +
                    ".operation_with_defaults()",
       16661  +
                );
       16662  +
            }
       16663  +
            if self.operation_with_nested_structure.is_none() {
       16664  +
                missing_operation_names.insert(
       16665  +
                    crate::operation_shape::OperationWithNestedStructure::ID,
       16666  +
                    ".operation_with_nested_structure()",
       16667  +
                );
       16668  +
            }
       16669  +
            if self.post_player_action.is_none() {
       16670  +
                missing_operation_names.insert(
       16671  +
                    crate::operation_shape::PostPlayerAction::ID,
       16672  +
                    ".post_player_action()",
       16673  +
                );
       16674  +
            }
       16675  +
            if self.post_union_with_json_name.is_none() {
       16676  +
                missing_operation_names.insert(
       16677  +
                    crate::operation_shape::PostUnionWithJsonName::ID,
       16678  +
                    ".post_union_with_json_name()",
       16679  +
                );
       16680  +
            }
       16681  +
            if self.put_with_content_encoding.is_none() {
       16682  +
                missing_operation_names.insert(
       16683  +
                    crate::operation_shape::PutWithContentEncoding::ID,
       16684  +
                    ".put_with_content_encoding()",
       16685  +
                );
       16686  +
            }
       16687  +
            if self.query_idempotency_token_auto_fill.is_none() {
       16688  +
                missing_operation_names.insert(
       16689  +
                    crate::operation_shape::QueryIdempotencyTokenAutoFill::ID,
       16690  +
                    ".query_idempotency_token_auto_fill()",
       16691  +
                );
       16692  +
            }
       16693  +
            if self.query_params_as_string_list_map.is_none() {
       16694  +
                missing_operation_names.insert(
       16695  +
                    crate::operation_shape::QueryParamsAsStringListMap::ID,
       16696  +
                    ".query_params_as_string_list_map()",
       16697  +
                );
       16698  +
            }
       16699  +
            if self.query_precedence.is_none() {
       16700  +
                missing_operation_names.insert(
       16701  +
                    crate::operation_shape::QueryPrecedence::ID,
       16702  +
                    ".query_precedence()",
       16703  +
                );
       16704  +
            }
       16705  +
            if self.recursive_shapes.is_none() {
       16706  +
                missing_operation_names.insert(
       16707  +
                    crate::operation_shape::RecursiveShapes::ID,
       16708  +
                    ".recursive_shapes()",
       16709  +
                );
       16710  +
            }
       16711  +
            if self.response_code_http_fallback.is_none() {
       16712  +
                missing_operation_names.insert(
       16713  +
                    crate::operation_shape::ResponseCodeHttpFallback::ID,
       16714  +
                    ".response_code_http_fallback()",
       16715  +
                );
       16716  +
            }
       16717  +
            if self.response_code_required.is_none() {
       16718  +
                missing_operation_names.insert(
       16719  +
                    crate::operation_shape::ResponseCodeRequired::ID,
       16720  +
                    ".response_code_required()",
       16721  +
                );
       16722  +
            }
       16723  +
            if self.simple_scalar_properties.is_none() {
       16724  +
                missing_operation_names.insert(
       16725  +
                    crate::operation_shape::SimpleScalarProperties::ID,
       16726  +
                    ".simple_scalar_properties()",
       16727  +
                );
       16728  +
            }
       16729  +
            if self.sparse_json_lists.is_none() {
       16730  +
                missing_operation_names.insert(
       16731  +
                    crate::operation_shape::SparseJsonLists::ID,
       16732  +
                    ".sparse_json_lists()",
       16733  +
                );
       16734  +
            }
       16735  +
            if self.sparse_json_maps.is_none() {
       16736  +
                missing_operation_names.insert(
       16737  +
                    crate::operation_shape::SparseJsonMaps::ID,
       16738  +
                    ".sparse_json_maps()",
       16739  +
                );
       16740  +
            }
       16741  +
            if self.streaming_traits.is_none() {
       16742  +
                missing_operation_names.insert(
       16743  +
                    crate::operation_shape::StreamingTraits::ID,
       16744  +
                    ".streaming_traits()",
       16745  +
                );
       16746  +
            }
       16747  +
            if self.streaming_traits_require_length.is_none() {
       16748  +
                missing_operation_names.insert(
       16749  +
                    crate::operation_shape::StreamingTraitsRequireLength::ID,
       16750  +
                    ".streaming_traits_require_length()",
       16751  +
                );
       16752  +
            }
       16753  +
            if self.streaming_traits_with_media_type.is_none() {
       16754  +
                missing_operation_names.insert(
       16755  +
                    crate::operation_shape::StreamingTraitsWithMediaType::ID,
       16756  +
                    ".streaming_traits_with_media_type()",
       16757  +
                );
       16758  +
            }
       16759  +
            if self.test_body_structure.is_none() {
       16760  +
                missing_operation_names.insert(
       16761  +
                    crate::operation_shape::TestBodyStructure::ID,
       16762  +
                    ".test_body_structure()",
       16763  +
                );
       16764  +
            }
       16765  +
            if self.test_get_no_input_no_payload.is_none() {
       16766  +
                missing_operation_names.insert(
       16767  +
                    crate::operation_shape::TestGetNoInputNoPayload::ID,
       16768  +
                    ".test_get_no_input_no_payload()",
       16769  +
                );
       16770  +
            }
       16771  +
            if self.test_get_no_payload.is_none() {
       16772  +
                missing_operation_names.insert(
       16773  +
                    crate::operation_shape::TestGetNoPayload::ID,
       16774  +
                    ".test_get_no_payload()",
       16775  +
                );
       16776  +
            }
       16777  +
            if self.test_payload_blob.is_none() {
       16778  +
                missing_operation_names.insert(
       16779  +
                    crate::operation_shape::TestPayloadBlob::ID,
       16780  +
                    ".test_payload_blob()",
       16781  +
                );
       16782  +
            }
       16783  +
            if self.test_payload_structure.is_none() {
       16784  +
                missing_operation_names.insert(
       16785  +
                    crate::operation_shape::TestPayloadStructure::ID,
       16786  +
                    ".test_payload_structure()",
       16787  +
                );
       16788  +
            }
       16789  +
            if self.test_post_no_input_no_payload.is_none() {
       16790  +
                missing_operation_names.insert(
       16791  +
                    crate::operation_shape::TestPostNoInputNoPayload::ID,
       16792  +
                    ".test_post_no_input_no_payload()",
       16793  +
                );
       16794  +
            }
       16795  +
            if self.test_post_no_payload.is_none() {
       16796  +
                missing_operation_names.insert(
       16797  +
                    crate::operation_shape::TestPostNoPayload::ID,
       16798  +
                    ".test_post_no_payload()",
       16799  +
                );
       16800  +
            }
       16801  +
            if self.timestamp_format_headers.is_none() {
       16802  +
                missing_operation_names.insert(
       16803  +
                    crate::operation_shape::TimestampFormatHeaders::ID,
       16804  +
                    ".timestamp_format_headers()",
       16805  +
                );
       16806  +
            }
       16807  +
            if self.unit_input_and_output.is_none() {
       16808  +
                missing_operation_names.insert(
       16809  +
                    crate::operation_shape::UnitInputAndOutput::ID,
       16810  +
                    ".unit_input_and_output()",
       16811  +
                );
       16812  +
            }
       16813  +
            if !missing_operation_names.is_empty() {
       16814  +
                return Err(MissingOperationsError {
       16815  +
                    operation_names2setter_methods: missing_operation_names,
       16816  +
                });
       16817  +
            }
       16818  +
            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";
       16819  +
       16820  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter::from_iter([
       16821  +
                (
       16822  +
                    request_specs::all_query_string_types(),
       16823  +
                    self.all_query_string_types.expect(unexpected_error_msg),
       16824  +
                ),
       16825  +
                (
       16826  +
                    request_specs::constant_and_variable_query_string(),
       16827  +
                    self.constant_and_variable_query_string
       16828  +
                        .expect(unexpected_error_msg),
       16829  +
                ),
       16830  +
                (
       16831  +
                    request_specs::constant_query_string(),
       16832  +
                    self.constant_query_string.expect(unexpected_error_msg),
       16833  +
                ),
       16834  +
                (
       16835  +
                    request_specs::content_type_parameters(),
       16836  +
                    self.content_type_parameters.expect(unexpected_error_msg),
       16837  +
                ),
       16838  +
                (
       16839  +
                    request_specs::datetime_offsets(),
       16840  +
                    self.datetime_offsets.expect(unexpected_error_msg),
       16841  +
                ),
       16842  +
                (
       16843  +
                    request_specs::document_type(),
       16844  +
                    self.document_type.expect(unexpected_error_msg),
       16845  +
                ),
       16846  +
                (
       16847  +
                    request_specs::document_type_as_map_value(),
       16848  +
                    self.document_type_as_map_value.expect(unexpected_error_msg),
       16849  +
                ),
       16850  +
                (
       16851  +
                    request_specs::document_type_as_payload(),
       16852  +
                    self.document_type_as_payload.expect(unexpected_error_msg),
       16853  +
                ),
       16854  +
                (
       16855  +
                    request_specs::empty_input_and_empty_output(),
       16856  +
                    self.empty_input_and_empty_output
       16857  +
                        .expect(unexpected_error_msg),
       16858  +
                ),
       16859  +
                (
       16860  +
                    request_specs::endpoint_operation(),
       16861  +
                    self.endpoint_operation.expect(unexpected_error_msg),
       16862  +
                ),
       16863  +
                (
       16864  +
                    request_specs::endpoint_with_host_label_operation(),
       16865  +
                    self.endpoint_with_host_label_operation
       16866  +
                        .expect(unexpected_error_msg),
       16867  +
                ),
       16868  +
                (
       16869  +
                    request_specs::fractional_seconds(),
       16870  +
                    self.fractional_seconds.expect(unexpected_error_msg),
       16871  +
                ),
       16872  +
                (
       16873  +
                    request_specs::greeting_with_errors(),
       16874  +
                    self.greeting_with_errors.expect(unexpected_error_msg),
       16875  +
                ),
       16876  +
                (
       16877  +
                    request_specs::host_with_path_operation(),
       16878  +
                    self.host_with_path_operation.expect(unexpected_error_msg),
       16879  +
                ),
       16880  +
                (
       16881  +
                    request_specs::http_checksum_required(),
       16882  +
                    self.http_checksum_required.expect(unexpected_error_msg),
       16883  +
                ),
       16884  +
                (
       16885  +
                    request_specs::http_empty_prefix_headers(),
       16886  +
                    self.http_empty_prefix_headers.expect(unexpected_error_msg),
       16887  +
                ),
       16888  +
                (
       16889  +
                    request_specs::http_enum_payload(),
       16890  +
                    self.http_enum_payload.expect(unexpected_error_msg),
       16891  +
                ),
       16892  +
                (
       16893  +
                    request_specs::http_payload_traits(),
       16894  +
                    self.http_payload_traits.expect(unexpected_error_msg),
       16895  +
                ),
       16896  +
                (
       16897  +
                    request_specs::http_payload_traits_with_media_type(),
       16898  +
                    self.http_payload_traits_with_media_type
       16899  +
                        .expect(unexpected_error_msg),
       16900  +
                ),
       16901  +
                (
       16902  +
                    request_specs::http_payload_with_structure(),
       16903  +
                    self.http_payload_with_structure
       16904  +
                        .expect(unexpected_error_msg),
       16905  +
                ),
       16906  +
                (
       16907  +
                    request_specs::http_payload_with_union(),
       16908  +
                    self.http_payload_with_union.expect(unexpected_error_msg),
       16909  +
                ),
       16910  +
                (
       16911  +
                    request_specs::http_prefix_headers(),
       16912  +
                    self.http_prefix_headers.expect(unexpected_error_msg),
       16913  +
                ),
       16914  +
                (
       16915  +
                    request_specs::http_prefix_headers_in_response(),
       16916  +
                    self.http_prefix_headers_in_response
       16917  +
                        .expect(unexpected_error_msg),
       16918  +
                ),
       16919  +
                (
       16920  +
                    request_specs::http_request_with_float_labels(),
       16921  +
                    self.http_request_with_float_labels
       16922  +
                        .expect(unexpected_error_msg),
       16923  +
                ),
       16924  +
                (
       16925  +
                    request_specs::http_request_with_greedy_label_in_path(),
       16926  +
                    self.http_request_with_greedy_label_in_path
       16927  +
                        .expect(unexpected_error_msg),
       16928  +
                ),
       16929  +
                (
       16930  +
                    request_specs::http_request_with_labels(),
       16931  +
                    self.http_request_with_labels.expect(unexpected_error_msg),
       16932  +
                ),
       16933  +
                (
       16934  +
                    request_specs::http_request_with_labels_and_timestamp_format(),
       16935  +
                    self.http_request_with_labels_and_timestamp_format
       16936  +
                        .expect(unexpected_error_msg),
       16937  +
                ),
       16938  +
                (
       16939  +
                    request_specs::http_request_with_regex_literal(),
       16940  +
                    self.http_request_with_regex_literal
       16941  +
                        .expect(unexpected_error_msg),
       16942  +
                ),
       16943  +
                (
       16944  +
                    request_specs::http_response_code(),
       16945  +
                    self.http_response_code.expect(unexpected_error_msg),
       16946  +
                ),
       16947  +
                (
       16948  +
                    request_specs::http_string_payload(),
       16949  +
                    self.http_string_payload.expect(unexpected_error_msg),
       16950  +
                ),
       16951  +
                (
       16952  +
                    request_specs::ignore_query_params_in_response(),
       16953  +
                    self.ignore_query_params_in_response
       16954  +
                        .expect(unexpected_error_msg),
       16955  +
                ),
       16956  +
                (
       16957  +
                    request_specs::input_and_output_with_headers(),
       16958  +
                    self.input_and_output_with_headers
       16959  +
                        .expect(unexpected_error_msg),
       16960  +
                ),
       16961  +
                (
       16962  +
                    request_specs::json_blobs(),
       16963  +
                    self.json_blobs.expect(unexpected_error_msg),
       16964  +
                ),
       16965  +
                (
       16966  +
                    request_specs::json_enums(),
       16967  +
                    self.json_enums.expect(unexpected_error_msg),
       16968  +
                ),
       16969  +
                (
       16970  +
                    request_specs::json_int_enums(),
       16971  +
                    self.json_int_enums.expect(unexpected_error_msg),
       16972  +
                ),
       16973  +
                (
       16974  +
                    request_specs::json_lists(),
       16975  +
                    self.json_lists.expect(unexpected_error_msg),
       16976  +
                ),
       16977  +
                (
       16978  +
                    request_specs::json_maps(),
       16979  +
                    self.json_maps.expect(unexpected_error_msg),
       16980  +
                ),
       16981  +
                (
       16982  +
                    request_specs::json_timestamps(),
       16983  +
                    self.json_timestamps.expect(unexpected_error_msg),
       16984  +
                ),
       16985  +
                (
       16986  +
                    request_specs::json_unions(),
       16987  +
                    self.json_unions.expect(unexpected_error_msg),
       16988  +
                ),
       16989  +
                (
       16990  +
                    request_specs::malformed_accept_with_body(),
       16991  +
                    self.malformed_accept_with_body.expect(unexpected_error_msg),
       16992  +
                ),
       16993  +
                (
       16994  +
                    request_specs::malformed_accept_with_generic_string(),
       16995  +
                    self.malformed_accept_with_generic_string
       16996  +
                        .expect(unexpected_error_msg),
       16997  +
                ),
       16998  +
                (
       16999  +
                    request_specs::malformed_accept_with_payload(),
       17000  +
                    self.malformed_accept_with_payload
       17001  +
                        .expect(unexpected_error_msg),
       17002  +
                ),
       17003  +
                (
       17004  +
                    request_specs::malformed_blob(),
       17005  +
                    self.malformed_blob.expect(unexpected_error_msg),
       17006  +
                ),
       17007  +
                (
       17008  +
                    request_specs::malformed_boolean(),
       17009  +
                    self.malformed_boolean.expect(unexpected_error_msg),
       17010  +
                ),
       17011  +
                (
       17012  +
                    request_specs::malformed_byte(),
       17013  +
                    self.malformed_byte.expect(unexpected_error_msg),
       17014  +
                ),
       17015  +
                (
       17016  +
                    request_specs::malformed_content_type_with_body(),
       17017  +
                    self.malformed_content_type_with_body
       17018  +
                        .expect(unexpected_error_msg),
       17019  +
                ),
       17020  +
                (
       17021  +
                    request_specs::malformed_content_type_with_generic_string(),
       17022  +
                    self.malformed_content_type_with_generic_string
       17023  +
                        .expect(unexpected_error_msg),
       17024  +
                ),
       17025  +
                (
       17026  +
                    request_specs::malformed_content_type_without_body(),
       17027  +
                    self.malformed_content_type_without_body
       17028  +
                        .expect(unexpected_error_msg),
       17029  +
                ),
       17030  +
                (
       17031  +
                    request_specs::malformed_content_type_without_body_empty_input(),
       17032  +
                    self.malformed_content_type_without_body_empty_input
       17033  +
                        .expect(unexpected_error_msg),
       17034  +
                ),
       17035  +
                (
       17036  +
                    request_specs::malformed_content_type_with_payload(),
       17037  +
                    self.malformed_content_type_with_payload
       17038  +
                        .expect(unexpected_error_msg),
       17039  +
                ),
       17040  +
                (
       17041  +
                    request_specs::malformed_double(),
       17042  +
                    self.malformed_double.expect(unexpected_error_msg),
       17043  +
                ),
       17044  +
                (
       17045  +
                    request_specs::malformed_float(),
       17046  +
                    self.malformed_float.expect(unexpected_error_msg),
       17047  +
                ),
       17048  +
                (
       17049  +
                    request_specs::malformed_integer(),
       17050  +
                    self.malformed_integer.expect(unexpected_error_msg),
       17051  +
                ),
       17052  +
                (
       17053  +
                    request_specs::malformed_list(),
       17054  +
                    self.malformed_list.expect(unexpected_error_msg),
       17055  +
                ),
       17056  +
                (
       17057  +
                    request_specs::malformed_long(),
       17058  +
                    self.malformed_long.expect(unexpected_error_msg),
       17059  +
                ),
       17060  +
                (
       17061  +
                    request_specs::malformed_map(),
       17062  +
                    self.malformed_map.expect(unexpected_error_msg),
       17063  +
                ),
       17064  +
                (
       17065  +
                    request_specs::malformed_request_body(),
       17066  +
                    self.malformed_request_body.expect(unexpected_error_msg),
       17067  +
                ),
       17068  +
                (
       17069  +
                    request_specs::malformed_short(),
       17070  +
                    self.malformed_short.expect(unexpected_error_msg),
       17071  +
                ),
       17072  +
                (
       17073  +
                    request_specs::malformed_string(),
       17074  +
                    self.malformed_string.expect(unexpected_error_msg),
       17075  +
                ),
       17076  +
                (
       17077  +
                    request_specs::malformed_timestamp_body_date_time(),
       17078  +
                    self.malformed_timestamp_body_date_time
       17079  +
                        .expect(unexpected_error_msg),
       17080  +
                ),
       17081  +
                (
       17082  +
                    request_specs::malformed_timestamp_body_default(),
       17083  +
                    self.malformed_timestamp_body_default
       17084  +
                        .expect(unexpected_error_msg),
       17085  +
                ),
       17086  +
                (
       17087  +
                    request_specs::malformed_timestamp_body_http_date(),
       17088  +
                    self.malformed_timestamp_body_http_date
       17089  +
                        .expect(unexpected_error_msg),
       17090  +
                ),
       17091  +
                (
       17092  +
                    request_specs::malformed_timestamp_header_date_time(),
       17093  +
                    self.malformed_timestamp_header_date_time
       17094  +
                        .expect(unexpected_error_msg),
       17095  +
                ),
       17096  +
                (
       17097  +
                    request_specs::malformed_timestamp_header_default(),
       17098  +
                    self.malformed_timestamp_header_default
       17099  +
                        .expect(unexpected_error_msg),
       17100  +
                ),
       17101  +
                (
       17102  +
                    request_specs::malformed_timestamp_header_epoch(),
       17103  +
                    self.malformed_timestamp_header_epoch
       17104  +
                        .expect(unexpected_error_msg),
       17105  +
                ),
       17106  +
                (
       17107  +
                    request_specs::malformed_timestamp_path_default(),
       17108  +
                    self.malformed_timestamp_path_default
       17109  +
                        .expect(unexpected_error_msg),
       17110  +
                ),
       17111  +
                (
       17112  +
                    request_specs::malformed_timestamp_path_epoch(),
       17113  +
                    self.malformed_timestamp_path_epoch
       17114  +
                        .expect(unexpected_error_msg),
       17115  +
                ),
       17116  +
                (
       17117  +
                    request_specs::malformed_timestamp_path_http_date(),
       17118  +
                    self.malformed_timestamp_path_http_date
       17119  +
                        .expect(unexpected_error_msg),
       17120  +
                ),
       17121  +
                (
       17122  +
                    request_specs::malformed_timestamp_query_default(),
       17123  +
                    self.malformed_timestamp_query_default
       17124  +
                        .expect(unexpected_error_msg),
       17125  +
                ),
       17126  +
                (
       17127  +
                    request_specs::malformed_timestamp_query_epoch(),
       17128  +
                    self.malformed_timestamp_query_epoch
       17129  +
                        .expect(unexpected_error_msg),
       17130  +
                ),
       17131  +
                (
       17132  +
                    request_specs::malformed_timestamp_query_http_date(),
       17133  +
                    self.malformed_timestamp_query_http_date
       17134  +
                        .expect(unexpected_error_msg),
       17135  +
                ),
       17136  +
                (
       17137  +
                    request_specs::malformed_union(),
       17138  +
                    self.malformed_union.expect(unexpected_error_msg),
       17139  +
                ),
       17140  +
                (
       17141  +
                    request_specs::media_type_header(),
       17142  +
                    self.media_type_header.expect(unexpected_error_msg),
       17143  +
                ),
       17144  +
                (
       17145  +
                    request_specs::no_input_and_no_output(),
       17146  +
                    self.no_input_and_no_output.expect(unexpected_error_msg),
       17147  +
                ),
       17148  +
                (
       17149  +
                    request_specs::no_input_and_output(),
       17150  +
                    self.no_input_and_output.expect(unexpected_error_msg),
       17151  +
                ),
       17152  +
                (
       17153  +
                    request_specs::null_and_empty_headers_client(),
       17154  +
                    self.null_and_empty_headers_client
       17155  +
                        .expect(unexpected_error_msg),
       17156  +
                ),
       17157  +
                (
       17158  +
                    request_specs::null_and_empty_headers_server(),
       17159  +
                    self.null_and_empty_headers_server
       17160  +
                        .expect(unexpected_error_msg),
       17161  +
                ),
       17162  +
                (
       17163  +
                    request_specs::omits_null_serializes_empty_string(),
       17164  +
                    self.omits_null_serializes_empty_string
       17165  +
                        .expect(unexpected_error_msg),
       17166  +
                ),
       17167  +
                (
       17168  +
                    request_specs::omits_serializing_empty_lists(),
       17169  +
                    self.omits_serializing_empty_lists
       17170  +
                        .expect(unexpected_error_msg),
       17171  +
                ),
       17172  +
                (
       17173  +
                    request_specs::operation_with_defaults(),
       17174  +
                    self.operation_with_defaults.expect(unexpected_error_msg),
       17175  +
                ),
       17176  +
                (
       17177  +
                    request_specs::operation_with_nested_structure(),
       17178  +
                    self.operation_with_nested_structure
       17179  +
                        .expect(unexpected_error_msg),
       17180  +
                ),
       17181  +
                (
       17182  +
                    request_specs::post_player_action(),
       17183  +
                    self.post_player_action.expect(unexpected_error_msg),
       17184  +
                ),
       17185  +
                (
       17186  +
                    request_specs::post_union_with_json_name(),
       17187  +
                    self.post_union_with_json_name.expect(unexpected_error_msg),
       17188  +
                ),
       17189  +
                (
       17190  +
                    request_specs::put_with_content_encoding(),
       17191  +
                    self.put_with_content_encoding.expect(unexpected_error_msg),
       17192  +
                ),
       17193  +
                (
       17194  +
                    request_specs::query_idempotency_token_auto_fill(),
       17195  +
                    self.query_idempotency_token_auto_fill
       17196  +
                        .expect(unexpected_error_msg),
       17197  +
                ),
       17198  +
                (
       17199  +
                    request_specs::query_params_as_string_list_map(),
       17200  +
                    self.query_params_as_string_list_map
       17201  +
                        .expect(unexpected_error_msg),
       17202  +
                ),
       17203  +
                (
       17204  +
                    request_specs::query_precedence(),
       17205  +
                    self.query_precedence.expect(unexpected_error_msg),
       17206  +
                ),
       17207  +
                (
       17208  +
                    request_specs::recursive_shapes(),
       17209  +
                    self.recursive_shapes.expect(unexpected_error_msg),
       17210  +
                ),
       17211  +
                (
       17212  +
                    request_specs::response_code_http_fallback(),
       17213  +
                    self.response_code_http_fallback
       17214  +
                        .expect(unexpected_error_msg),
       17215  +
                ),
       17216  +
                (
       17217  +
                    request_specs::response_code_required(),
       17218  +
                    self.response_code_required.expect(unexpected_error_msg),
       17219  +
                ),
       17220  +
                (
       17221  +
                    request_specs::simple_scalar_properties(),
       17222  +
                    self.simple_scalar_properties.expect(unexpected_error_msg),
       17223  +
                ),
       17224  +
                (
       17225  +
                    request_specs::sparse_json_lists(),
       17226  +
                    self.sparse_json_lists.expect(unexpected_error_msg),
       17227  +
                ),
       17228  +
                (
       17229  +
                    request_specs::sparse_json_maps(),
       17230  +
                    self.sparse_json_maps.expect(unexpected_error_msg),
       17231  +
                ),
       17232  +
                (
       17233  +
                    request_specs::streaming_traits(),
       17234  +
                    self.streaming_traits.expect(unexpected_error_msg),
       17235  +
                ),
       17236  +
                (
       17237  +
                    request_specs::streaming_traits_require_length(),
       17238  +
                    self.streaming_traits_require_length
       17239  +
                        .expect(unexpected_error_msg),
       17240  +
                ),
       17241  +
                (
       17242  +
                    request_specs::streaming_traits_with_media_type(),
       17243  +
                    self.streaming_traits_with_media_type
       17244  +
                        .expect(unexpected_error_msg),
       17245  +
                ),
       17246  +
                (
       17247  +
                    request_specs::test_body_structure(),
       17248  +
                    self.test_body_structure.expect(unexpected_error_msg),
       17249  +
                ),
       17250  +
                (
       17251  +
                    request_specs::test_get_no_input_no_payload(),
       17252  +
                    self.test_get_no_input_no_payload
       17253  +
                        .expect(unexpected_error_msg),
       17254  +
                ),
       17255  +
                (
       17256  +
                    request_specs::test_get_no_payload(),
       17257  +
                    self.test_get_no_payload.expect(unexpected_error_msg),
       17258  +
                ),
       17259  +
                (
       17260  +
                    request_specs::test_payload_blob(),
       17261  +
                    self.test_payload_blob.expect(unexpected_error_msg),
       17262  +
                ),
       17263  +
                (
       17264  +
                    request_specs::test_payload_structure(),
       17265  +
                    self.test_payload_structure.expect(unexpected_error_msg),
       17266  +
                ),
       17267  +
                (
       17268  +
                    request_specs::test_post_no_input_no_payload(),
       17269  +
                    self.test_post_no_input_no_payload
       17270  +
                        .expect(unexpected_error_msg),
       17271  +
                ),
       17272  +
                (
       17273  +
                    request_specs::test_post_no_payload(),
       17274  +
                    self.test_post_no_payload.expect(unexpected_error_msg),
       17275  +
                ),
       17276  +
                (
       17277  +
                    request_specs::timestamp_format_headers(),
       17278  +
                    self.timestamp_format_headers.expect(unexpected_error_msg),
       17279  +
                ),
       17280  +
                (
       17281  +
                    request_specs::unit_input_and_output(),
       17282  +
                    self.unit_input_and_output.expect(unexpected_error_msg),
       17283  +
                ),
       17284  +
            ])
       17285  +
        };
       17286  +
        let svc = ::aws_smithy_legacy_http_server::routing::RoutingService::new(router);
       17287  +
        let svc = svc.map(|s| s.layer(self.layer));
       17288  +
        Ok(RestJson { svc })
       17289  +
    }
       17290  +
       17291  +
    /// Constructs a [`RestJson`] from the arguments provided to the builder.
       17292  +
    /// Operations without a handler default to returning 500 Internal Server Error to the caller.
       17293  +
    ///
       17294  +
    /// Check out [`RestJsonBuilder::build`] if you'd prefer the builder to fail if one or more operations do
       17295  +
    /// not have a registered handler.
       17296  +
    pub fn build_unchecked(self) -> RestJson<L::Service>
       17297  +
    where
       17298  +
        Body: Send + 'static,
       17299  +
        L: ::tower::Layer<
       17300  +
            ::aws_smithy_legacy_http_server::routing::RoutingService<
       17301  +
                ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
       17302  +
                    ::aws_smithy_legacy_http_server::routing::Route<Body>,
       17303  +
                >,
       17304  +
                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17305  +
            >,
       17306  +
        >,
       17307  +
    {
       17308  +
        let router =
       17309  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter::from_iter([
       17310  +
                (
       17311  +
                    request_specs::all_query_string_types(),
       17312  +
                    self.all_query_string_types.unwrap_or_else(|| {
       17313  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17314  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17315  +
                        >::default();
       17316  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17317  +
                    }),
       17318  +
                ),
       17319  +
                (
       17320  +
                    request_specs::constant_and_variable_query_string(),
       17321  +
                    self.constant_and_variable_query_string.unwrap_or_else(|| {
       17322  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17323  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17324  +
                        >::default();
       17325  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17326  +
                    }),
       17327  +
                ),
       17328  +
                (
       17329  +
                    request_specs::constant_query_string(),
       17330  +
                    self.constant_query_string.unwrap_or_else(|| {
       17331  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17332  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17333  +
                        >::default();
       17334  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17335  +
                    }),
       17336  +
                ),
       17337  +
                (
       17338  +
                    request_specs::content_type_parameters(),
       17339  +
                    self.content_type_parameters.unwrap_or_else(|| {
       17340  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17341  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17342  +
                        >::default();
       17343  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17344  +
                    }),
       17345  +
                ),
       17346  +
                (
       17347  +
                    request_specs::datetime_offsets(),
       17348  +
                    self.datetime_offsets.unwrap_or_else(|| {
       17349  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17350  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17351  +
                        >::default();
       17352  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17353  +
                    }),
       17354  +
                ),
       17355  +
                (
       17356  +
                    request_specs::document_type(),
       17357  +
                    self.document_type.unwrap_or_else(|| {
       17358  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17359  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17360  +
                        >::default();
       17361  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17362  +
                    }),
       17363  +
                ),
       17364  +
                (
       17365  +
                    request_specs::document_type_as_map_value(),
       17366  +
                    self.document_type_as_map_value.unwrap_or_else(|| {
       17367  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17368  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17369  +
                        >::default();
       17370  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17371  +
                    }),
       17372  +
                ),
       17373  +
                (
       17374  +
                    request_specs::document_type_as_payload(),
       17375  +
                    self.document_type_as_payload.unwrap_or_else(|| {
       17376  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17377  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17378  +
                        >::default();
       17379  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17380  +
                    }),
       17381  +
                ),
       17382  +
                (
       17383  +
                    request_specs::empty_input_and_empty_output(),
       17384  +
                    self.empty_input_and_empty_output.unwrap_or_else(|| {
       17385  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17386  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17387  +
                        >::default();
       17388  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17389  +
                    }),
       17390  +
                ),
       17391  +
                (
       17392  +
                    request_specs::endpoint_operation(),
       17393  +
                    self.endpoint_operation.unwrap_or_else(|| {
       17394  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17395  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17396  +
                        >::default();
       17397  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17398  +
                    }),
       17399  +
                ),
       17400  +
                (
       17401  +
                    request_specs::endpoint_with_host_label_operation(),
       17402  +
                    self.endpoint_with_host_label_operation.unwrap_or_else(|| {
       17403  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17404  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17405  +
                        >::default();
       17406  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17407  +
                    }),
       17408  +
                ),
       17409  +
                (
       17410  +
                    request_specs::fractional_seconds(),
       17411  +
                    self.fractional_seconds.unwrap_or_else(|| {
       17412  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17413  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17414  +
                        >::default();
       17415  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17416  +
                    }),
       17417  +
                ),
       17418  +
                (
       17419  +
                    request_specs::greeting_with_errors(),
       17420  +
                    self.greeting_with_errors.unwrap_or_else(|| {
       17421  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17422  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17423  +
                        >::default();
       17424  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17425  +
                    }),
       17426  +
                ),
       17427  +
                (
       17428  +
                    request_specs::host_with_path_operation(),
       17429  +
                    self.host_with_path_operation.unwrap_or_else(|| {
       17430  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17431  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17432  +
                        >::default();
       17433  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17434  +
                    }),
       17435  +
                ),
       17436  +
                (
       17437  +
                    request_specs::http_checksum_required(),
       17438  +
                    self.http_checksum_required.unwrap_or_else(|| {
       17439  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17440  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17441  +
                        >::default();
       17442  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17443  +
                    }),
       17444  +
                ),
       17445  +
                (
       17446  +
                    request_specs::http_empty_prefix_headers(),
       17447  +
                    self.http_empty_prefix_headers.unwrap_or_else(|| {
       17448  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17449  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17450  +
                        >::default();
       17451  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17452  +
                    }),
       17453  +
                ),
       17454  +
                (
       17455  +
                    request_specs::http_enum_payload(),
       17456  +
                    self.http_enum_payload.unwrap_or_else(|| {
       17457  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17458  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17459  +
                        >::default();
       17460  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17461  +
                    }),
       17462  +
                ),
       17463  +
                (
       17464  +
                    request_specs::http_payload_traits(),
       17465  +
                    self.http_payload_traits.unwrap_or_else(|| {
       17466  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17467  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17468  +
                        >::default();
       17469  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17470  +
                    }),
       17471  +
                ),
       17472  +
                (
       17473  +
                    request_specs::http_payload_traits_with_media_type(),
       17474  +
                    self.http_payload_traits_with_media_type.unwrap_or_else(|| {
       17475  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17476  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17477  +
                        >::default();
       17478  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17479  +
                    }),
       17480  +
                ),
       17481  +
                (
       17482  +
                    request_specs::http_payload_with_structure(),
       17483  +
                    self.http_payload_with_structure.unwrap_or_else(|| {
       17484  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17485  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17486  +
                        >::default();
       17487  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17488  +
                    }),
       17489  +
                ),
       17490  +
                (
       17491  +
                    request_specs::http_payload_with_union(),
       17492  +
                    self.http_payload_with_union.unwrap_or_else(|| {
       17493  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17494  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17495  +
                        >::default();
       17496  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17497  +
                    }),
       17498  +
                ),
       17499  +
                (
       17500  +
                    request_specs::http_prefix_headers(),
       17501  +
                    self.http_prefix_headers.unwrap_or_else(|| {
       17502  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17503  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17504  +
                        >::default();
       17505  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17506  +
                    }),
       17507  +
                ),
       17508  +
                (
       17509  +
                    request_specs::http_prefix_headers_in_response(),
       17510  +
                    self.http_prefix_headers_in_response.unwrap_or_else(|| {
       17511  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17512  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17513  +
                        >::default();
       17514  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17515  +
                    }),
       17516  +
                ),
       17517  +
                (
       17518  +
                    request_specs::http_request_with_float_labels(),
       17519  +
                    self.http_request_with_float_labels.unwrap_or_else(|| {
       17520  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17521  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17522  +
                        >::default();
       17523  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17524  +
                    }),
       17525  +
                ),
       17526  +
                (
       17527  +
                    request_specs::http_request_with_greedy_label_in_path(),
       17528  +
                    self.http_request_with_greedy_label_in_path
       17529  +
                        .unwrap_or_else(|| {
       17530  +
                            let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17531  +
                                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17532  +
                            >::default();
       17533  +
                            ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17534  +
                        }),
       17535  +
                ),
       17536  +
                (
       17537  +
                    request_specs::http_request_with_labels(),
       17538  +
                    self.http_request_with_labels.unwrap_or_else(|| {
       17539  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17540  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17541  +
                        >::default();
       17542  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17543  +
                    }),
       17544  +
                ),
       17545  +
                (
       17546  +
                    request_specs::http_request_with_labels_and_timestamp_format(),
       17547  +
                    self.http_request_with_labels_and_timestamp_format
       17548  +
                        .unwrap_or_else(|| {
       17549  +
                            let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17550  +
                                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17551  +
                            >::default();
       17552  +
                            ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17553  +
                        }),
       17554  +
                ),
       17555  +
                (
       17556  +
                    request_specs::http_request_with_regex_literal(),
       17557  +
                    self.http_request_with_regex_literal.unwrap_or_else(|| {
       17558  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17559  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17560  +
                        >::default();
       17561  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17562  +
                    }),
       17563  +
                ),
       17564  +
                (
       17565  +
                    request_specs::http_response_code(),
       17566  +
                    self.http_response_code.unwrap_or_else(|| {
       17567  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17568  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17569  +
                        >::default();
       17570  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17571  +
                    }),
       17572  +
                ),
       17573  +
                (
       17574  +
                    request_specs::http_string_payload(),
       17575  +
                    self.http_string_payload.unwrap_or_else(|| {
       17576  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17577  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17578  +
                        >::default();
       17579  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17580  +
                    }),
       17581  +
                ),
       17582  +
                (
       17583  +
                    request_specs::ignore_query_params_in_response(),
       17584  +
                    self.ignore_query_params_in_response.unwrap_or_else(|| {
       17585  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17586  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17587  +
                        >::default();
       17588  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17589  +
                    }),
       17590  +
                ),
       17591  +
                (
       17592  +
                    request_specs::input_and_output_with_headers(),
       17593  +
                    self.input_and_output_with_headers.unwrap_or_else(|| {
       17594  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17595  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17596  +
                        >::default();
       17597  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17598  +
                    }),
       17599  +
                ),
       17600  +
                (
       17601  +
                    request_specs::json_blobs(),
       17602  +
                    self.json_blobs.unwrap_or_else(|| {
       17603  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17604  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17605  +
                        >::default();
       17606  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17607  +
                    }),
       17608  +
                ),
       17609  +
                (
       17610  +
                    request_specs::json_enums(),
       17611  +
                    self.json_enums.unwrap_or_else(|| {
       17612  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17613  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17614  +
                        >::default();
       17615  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17616  +
                    }),
       17617  +
                ),
       17618  +
                (
       17619  +
                    request_specs::json_int_enums(),
       17620  +
                    self.json_int_enums.unwrap_or_else(|| {
       17621  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17622  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17623  +
                        >::default();
       17624  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17625  +
                    }),
       17626  +
                ),
       17627  +
                (
       17628  +
                    request_specs::json_lists(),
       17629  +
                    self.json_lists.unwrap_or_else(|| {
       17630  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17631  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17632  +
                        >::default();
       17633  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17634  +
                    }),
       17635  +
                ),
       17636  +
                (
       17637  +
                    request_specs::json_maps(),
       17638  +
                    self.json_maps.unwrap_or_else(|| {
       17639  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17640  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17641  +
                        >::default();
       17642  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17643  +
                    }),
       17644  +
                ),
       17645  +
                (
       17646  +
                    request_specs::json_timestamps(),
       17647  +
                    self.json_timestamps.unwrap_or_else(|| {
       17648  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17649  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17650  +
                        >::default();
       17651  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17652  +
                    }),
       17653  +
                ),
       17654  +
                (
       17655  +
                    request_specs::json_unions(),
       17656  +
                    self.json_unions.unwrap_or_else(|| {
       17657  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17658  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17659  +
                        >::default();
       17660  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17661  +
                    }),
       17662  +
                ),
       17663  +
                (
       17664  +
                    request_specs::malformed_accept_with_body(),
       17665  +
                    self.malformed_accept_with_body.unwrap_or_else(|| {
       17666  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17667  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17668  +
                        >::default();
       17669  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17670  +
                    }),
       17671  +
                ),
       17672  +
                (
       17673  +
                    request_specs::malformed_accept_with_generic_string(),
       17674  +
                    self.malformed_accept_with_generic_string
       17675  +
                        .unwrap_or_else(|| {
       17676  +
                            let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17677  +
                                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17678  +
                            >::default();
       17679  +
                            ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17680  +
                        }),
       17681  +
                ),
       17682  +
                (
       17683  +
                    request_specs::malformed_accept_with_payload(),
       17684  +
                    self.malformed_accept_with_payload.unwrap_or_else(|| {
       17685  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17686  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17687  +
                        >::default();
       17688  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17689  +
                    }),
       17690  +
                ),
       17691  +
                (
       17692  +
                    request_specs::malformed_blob(),
       17693  +
                    self.malformed_blob.unwrap_or_else(|| {
       17694  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17695  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17696  +
                        >::default();
       17697  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17698  +
                    }),
       17699  +
                ),
       17700  +
                (
       17701  +
                    request_specs::malformed_boolean(),
       17702  +
                    self.malformed_boolean.unwrap_or_else(|| {
       17703  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17704  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17705  +
                        >::default();
       17706  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17707  +
                    }),
       17708  +
                ),
       17709  +
                (
       17710  +
                    request_specs::malformed_byte(),
       17711  +
                    self.malformed_byte.unwrap_or_else(|| {
       17712  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17713  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17714  +
                        >::default();
       17715  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17716  +
                    }),
       17717  +
                ),
       17718  +
                (
       17719  +
                    request_specs::malformed_content_type_with_body(),
       17720  +
                    self.malformed_content_type_with_body.unwrap_or_else(|| {
       17721  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17722  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17723  +
                        >::default();
       17724  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17725  +
                    }),
       17726  +
                ),
       17727  +
                (
       17728  +
                    request_specs::malformed_content_type_with_generic_string(),
       17729  +
                    self.malformed_content_type_with_generic_string
       17730  +
                        .unwrap_or_else(|| {
       17731  +
                            let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17732  +
                                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17733  +
                            >::default();
       17734  +
                            ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17735  +
                        }),
       17736  +
                ),
       17737  +
                (
       17738  +
                    request_specs::malformed_content_type_without_body(),
       17739  +
                    self.malformed_content_type_without_body.unwrap_or_else(|| {
       17740  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17741  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17742  +
                        >::default();
       17743  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17744  +
                    }),
       17745  +
                ),
       17746  +
                (
       17747  +
                    request_specs::malformed_content_type_without_body_empty_input(),
       17748  +
                    self.malformed_content_type_without_body_empty_input
       17749  +
                        .unwrap_or_else(|| {
       17750  +
                            let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17751  +
                                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17752  +
                            >::default();
       17753  +
                            ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17754  +
                        }),
       17755  +
                ),
       17756  +
                (
       17757  +
                    request_specs::malformed_content_type_with_payload(),
       17758  +
                    self.malformed_content_type_with_payload.unwrap_or_else(|| {
       17759  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17760  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17761  +
                        >::default();
       17762  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17763  +
                    }),
       17764  +
                ),
       17765  +
                (
       17766  +
                    request_specs::malformed_double(),
       17767  +
                    self.malformed_double.unwrap_or_else(|| {
       17768  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17769  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17770  +
                        >::default();
       17771  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17772  +
                    }),
       17773  +
                ),
       17774  +
                (
       17775  +
                    request_specs::malformed_float(),
       17776  +
                    self.malformed_float.unwrap_or_else(|| {
       17777  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17778  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17779  +
                        >::default();
       17780  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17781  +
                    }),
       17782  +
                ),
       17783  +
                (
       17784  +
                    request_specs::malformed_integer(),
       17785  +
                    self.malformed_integer.unwrap_or_else(|| {
       17786  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17787  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17788  +
                        >::default();
       17789  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17790  +
                    }),
       17791  +
                ),
       17792  +
                (
       17793  +
                    request_specs::malformed_list(),
       17794  +
                    self.malformed_list.unwrap_or_else(|| {
       17795  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17796  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17797  +
                        >::default();
       17798  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17799  +
                    }),
       17800  +
                ),
       17801  +
                (
       17802  +
                    request_specs::malformed_long(),
       17803  +
                    self.malformed_long.unwrap_or_else(|| {
       17804  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17805  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17806  +
                        >::default();
       17807  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17808  +
                    }),
       17809  +
                ),
       17810  +
                (
       17811  +
                    request_specs::malformed_map(),
       17812  +
                    self.malformed_map.unwrap_or_else(|| {
       17813  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17814  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17815  +
                        >::default();
       17816  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17817  +
                    }),
       17818  +
                ),
       17819  +
                (
       17820  +
                    request_specs::malformed_request_body(),
       17821  +
                    self.malformed_request_body.unwrap_or_else(|| {
       17822  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17823  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17824  +
                        >::default();
       17825  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17826  +
                    }),
       17827  +
                ),
       17828  +
                (
       17829  +
                    request_specs::malformed_short(),
       17830  +
                    self.malformed_short.unwrap_or_else(|| {
       17831  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17832  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17833  +
                        >::default();
       17834  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17835  +
                    }),
       17836  +
                ),
       17837  +
                (
       17838  +
                    request_specs::malformed_string(),
       17839  +
                    self.malformed_string.unwrap_or_else(|| {
       17840  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17841  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17842  +
                        >::default();
       17843  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17844  +
                    }),
       17845  +
                ),
       17846  +
                (
       17847  +
                    request_specs::malformed_timestamp_body_date_time(),
       17848  +
                    self.malformed_timestamp_body_date_time.unwrap_or_else(|| {
       17849  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17850  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17851  +
                        >::default();
       17852  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17853  +
                    }),
       17854  +
                ),
       17855  +
                (
       17856  +
                    request_specs::malformed_timestamp_body_default(),
       17857  +
                    self.malformed_timestamp_body_default.unwrap_or_else(|| {
       17858  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17859  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17860  +
                        >::default();
       17861  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17862  +
                    }),
       17863  +
                ),
       17864  +
                (
       17865  +
                    request_specs::malformed_timestamp_body_http_date(),
       17866  +
                    self.malformed_timestamp_body_http_date.unwrap_or_else(|| {
       17867  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17868  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17869  +
                        >::default();
       17870  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17871  +
                    }),
       17872  +
                ),
       17873  +
                (
       17874  +
                    request_specs::malformed_timestamp_header_date_time(),
       17875  +
                    self.malformed_timestamp_header_date_time
       17876  +
                        .unwrap_or_else(|| {
       17877  +
                            let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17878  +
                                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17879  +
                            >::default();
       17880  +
                            ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17881  +
                        }),
       17882  +
                ),
       17883  +
                (
       17884  +
                    request_specs::malformed_timestamp_header_default(),
       17885  +
                    self.malformed_timestamp_header_default.unwrap_or_else(|| {
       17886  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17887  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17888  +
                        >::default();
       17889  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17890  +
                    }),
       17891  +
                ),
       17892  +
                (
       17893  +
                    request_specs::malformed_timestamp_header_epoch(),
       17894  +
                    self.malformed_timestamp_header_epoch.unwrap_or_else(|| {
       17895  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17896  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17897  +
                        >::default();
       17898  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17899  +
                    }),
       17900  +
                ),
       17901  +
                (
       17902  +
                    request_specs::malformed_timestamp_path_default(),
       17903  +
                    self.malformed_timestamp_path_default.unwrap_or_else(|| {
       17904  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17905  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17906  +
                        >::default();
       17907  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17908  +
                    }),
       17909  +
                ),
       17910  +
                (
       17911  +
                    request_specs::malformed_timestamp_path_epoch(),
       17912  +
                    self.malformed_timestamp_path_epoch.unwrap_or_else(|| {
       17913  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17914  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17915  +
                        >::default();
       17916  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17917  +
                    }),
       17918  +
                ),
       17919  +
                (
       17920  +
                    request_specs::malformed_timestamp_path_http_date(),
       17921  +
                    self.malformed_timestamp_path_http_date.unwrap_or_else(|| {
       17922  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17923  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17924  +
                        >::default();
       17925  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17926  +
                    }),
       17927  +
                ),
       17928  +
                (
       17929  +
                    request_specs::malformed_timestamp_query_default(),
       17930  +
                    self.malformed_timestamp_query_default.unwrap_or_else(|| {
       17931  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17932  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17933  +
                        >::default();
       17934  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17935  +
                    }),
       17936  +
                ),
       17937  +
                (
       17938  +
                    request_specs::malformed_timestamp_query_epoch(),
       17939  +
                    self.malformed_timestamp_query_epoch.unwrap_or_else(|| {
       17940  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17941  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17942  +
                        >::default();
       17943  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17944  +
                    }),
       17945  +
                ),
       17946  +
                (
       17947  +
                    request_specs::malformed_timestamp_query_http_date(),
       17948  +
                    self.malformed_timestamp_query_http_date.unwrap_or_else(|| {
       17949  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17950  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17951  +
                        >::default();
       17952  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17953  +
                    }),
       17954  +
                ),
       17955  +
                (
       17956  +
                    request_specs::malformed_union(),
       17957  +
                    self.malformed_union.unwrap_or_else(|| {
       17958  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17959  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17960  +
                        >::default();
       17961  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17962  +
                    }),
       17963  +
                ),
       17964  +
                (
       17965  +
                    request_specs::media_type_header(),
       17966  +
                    self.media_type_header.unwrap_or_else(|| {
       17967  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17968  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17969  +
                        >::default();
       17970  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17971  +
                    }),
       17972  +
                ),
       17973  +
                (
       17974  +
                    request_specs::no_input_and_no_output(),
       17975  +
                    self.no_input_and_no_output.unwrap_or_else(|| {
       17976  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17977  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17978  +
                        >::default();
       17979  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17980  +
                    }),
       17981  +
                ),
       17982  +
                (
       17983  +
                    request_specs::no_input_and_output(),
       17984  +
                    self.no_input_and_output.unwrap_or_else(|| {
       17985  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17986  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17987  +
                        >::default();
       17988  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17989  +
                    }),
       17990  +
                ),
       17991  +
                (
       17992  +
                    request_specs::null_and_empty_headers_client(),
       17993  +
                    self.null_and_empty_headers_client.unwrap_or_else(|| {
       17994  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       17995  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       17996  +
                        >::default();
       17997  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       17998  +
                    }),
       17999  +
                ),
       18000  +
                (
       18001  +
                    request_specs::null_and_empty_headers_server(),
       18002  +
                    self.null_and_empty_headers_server.unwrap_or_else(|| {
       18003  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18004  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18005  +
                        >::default();
       18006  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18007  +
                    }),
       18008  +
                ),
       18009  +
                (
       18010  +
                    request_specs::omits_null_serializes_empty_string(),
       18011  +
                    self.omits_null_serializes_empty_string.unwrap_or_else(|| {
       18012  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18013  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18014  +
                        >::default();
       18015  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18016  +
                    }),
       18017  +
                ),
       18018  +
                (
       18019  +
                    request_specs::omits_serializing_empty_lists(),
       18020  +
                    self.omits_serializing_empty_lists.unwrap_or_else(|| {
       18021  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18022  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18023  +
                        >::default();
       18024  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18025  +
                    }),
       18026  +
                ),
       18027  +
                (
       18028  +
                    request_specs::operation_with_defaults(),
       18029  +
                    self.operation_with_defaults.unwrap_or_else(|| {
       18030  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18031  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18032  +
                        >::default();
       18033  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18034  +
                    }),
       18035  +
                ),
       18036  +
                (
       18037  +
                    request_specs::operation_with_nested_structure(),
       18038  +
                    self.operation_with_nested_structure.unwrap_or_else(|| {
       18039  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18040  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18041  +
                        >::default();
       18042  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18043  +
                    }),
       18044  +
                ),
       18045  +
                (
       18046  +
                    request_specs::post_player_action(),
       18047  +
                    self.post_player_action.unwrap_or_else(|| {
       18048  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18049  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18050  +
                        >::default();
       18051  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18052  +
                    }),
       18053  +
                ),
       18054  +
                (
       18055  +
                    request_specs::post_union_with_json_name(),
       18056  +
                    self.post_union_with_json_name.unwrap_or_else(|| {
       18057  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18058  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18059  +
                        >::default();
       18060  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18061  +
                    }),
       18062  +
                ),
       18063  +
                (
       18064  +
                    request_specs::put_with_content_encoding(),
       18065  +
                    self.put_with_content_encoding.unwrap_or_else(|| {
       18066  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18067  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18068  +
                        >::default();
       18069  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18070  +
                    }),
       18071  +
                ),
       18072  +
                (
       18073  +
                    request_specs::query_idempotency_token_auto_fill(),
       18074  +
                    self.query_idempotency_token_auto_fill.unwrap_or_else(|| {
       18075  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18076  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18077  +
                        >::default();
       18078  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18079  +
                    }),
       18080  +
                ),
       18081  +
                (
       18082  +
                    request_specs::query_params_as_string_list_map(),
       18083  +
                    self.query_params_as_string_list_map.unwrap_or_else(|| {
       18084  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18085  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18086  +
                        >::default();
       18087  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18088  +
                    }),
       18089  +
                ),
       18090  +
                (
       18091  +
                    request_specs::query_precedence(),
       18092  +
                    self.query_precedence.unwrap_or_else(|| {
       18093  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18094  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18095  +
                        >::default();
       18096  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18097  +
                    }),
       18098  +
                ),
       18099  +
                (
       18100  +
                    request_specs::recursive_shapes(),
       18101  +
                    self.recursive_shapes.unwrap_or_else(|| {
       18102  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18103  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18104  +
                        >::default();
       18105  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18106  +
                    }),
       18107  +
                ),
       18108  +
                (
       18109  +
                    request_specs::response_code_http_fallback(),
       18110  +
                    self.response_code_http_fallback.unwrap_or_else(|| {
       18111  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18112  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18113  +
                        >::default();
       18114  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18115  +
                    }),
       18116  +
                ),
       18117  +
                (
       18118  +
                    request_specs::response_code_required(),
       18119  +
                    self.response_code_required.unwrap_or_else(|| {
       18120  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18121  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18122  +
                        >::default();
       18123  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18124  +
                    }),
       18125  +
                ),
       18126  +
                (
       18127  +
                    request_specs::simple_scalar_properties(),
       18128  +
                    self.simple_scalar_properties.unwrap_or_else(|| {
       18129  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18130  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18131  +
                        >::default();
       18132  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18133  +
                    }),
       18134  +
                ),
       18135  +
                (
       18136  +
                    request_specs::sparse_json_lists(),
       18137  +
                    self.sparse_json_lists.unwrap_or_else(|| {
       18138  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18139  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18140  +
                        >::default();
       18141  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18142  +
                    }),
       18143  +
                ),
       18144  +
                (
       18145  +
                    request_specs::sparse_json_maps(),
       18146  +
                    self.sparse_json_maps.unwrap_or_else(|| {
       18147  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18148  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18149  +
                        >::default();
       18150  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18151  +
                    }),
       18152  +
                ),
       18153  +
                (
       18154  +
                    request_specs::streaming_traits(),
       18155  +
                    self.streaming_traits.unwrap_or_else(|| {
       18156  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18157  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18158  +
                        >::default();
       18159  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18160  +
                    }),
       18161  +
                ),
       18162  +
                (
       18163  +
                    request_specs::streaming_traits_require_length(),
       18164  +
                    self.streaming_traits_require_length.unwrap_or_else(|| {
       18165  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18166  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18167  +
                        >::default();
       18168  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18169  +
                    }),
       18170  +
                ),
       18171  +
                (
       18172  +
                    request_specs::streaming_traits_with_media_type(),
       18173  +
                    self.streaming_traits_with_media_type.unwrap_or_else(|| {
       18174  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18175  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18176  +
                        >::default();
       18177  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18178  +
                    }),
       18179  +
                ),
       18180  +
                (
       18181  +
                    request_specs::test_body_structure(),
       18182  +
                    self.test_body_structure.unwrap_or_else(|| {
       18183  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18184  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18185  +
                        >::default();
       18186  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18187  +
                    }),
       18188  +
                ),
       18189  +
                (
       18190  +
                    request_specs::test_get_no_input_no_payload(),
       18191  +
                    self.test_get_no_input_no_payload.unwrap_or_else(|| {
       18192  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18193  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18194  +
                        >::default();
       18195  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18196  +
                    }),
       18197  +
                ),
       18198  +
                (
       18199  +
                    request_specs::test_get_no_payload(),
       18200  +
                    self.test_get_no_payload.unwrap_or_else(|| {
       18201  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18202  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18203  +
                        >::default();
       18204  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18205  +
                    }),
       18206  +
                ),
       18207  +
                (
       18208  +
                    request_specs::test_payload_blob(),
       18209  +
                    self.test_payload_blob.unwrap_or_else(|| {
       18210  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18211  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18212  +
                        >::default();
       18213  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18214  +
                    }),
       18215  +
                ),
       18216  +
                (
       18217  +
                    request_specs::test_payload_structure(),
       18218  +
                    self.test_payload_structure.unwrap_or_else(|| {
       18219  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18220  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18221  +
                        >::default();
       18222  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18223  +
                    }),
       18224  +
                ),
       18225  +
                (
       18226  +
                    request_specs::test_post_no_input_no_payload(),
       18227  +
                    self.test_post_no_input_no_payload.unwrap_or_else(|| {
       18228  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18229  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18230  +
                        >::default();
       18231  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18232  +
                    }),
       18233  +
                ),
       18234  +
                (
       18235  +
                    request_specs::test_post_no_payload(),
       18236  +
                    self.test_post_no_payload.unwrap_or_else(|| {
       18237  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18238  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18239  +
                        >::default();
       18240  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18241  +
                    }),
       18242  +
                ),
       18243  +
                (
       18244  +
                    request_specs::timestamp_format_headers(),
       18245  +
                    self.timestamp_format_headers.unwrap_or_else(|| {
       18246  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18247  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18248  +
                        >::default();
       18249  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18250  +
                    }),
       18251  +
                ),
       18252  +
                (
       18253  +
                    request_specs::unit_input_and_output(),
       18254  +
                    self.unit_input_and_output.unwrap_or_else(|| {
       18255  +
                        let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<
       18256  +
                            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       18257  +
                        >::default();
       18258  +
                        ::aws_smithy_legacy_http_server::routing::Route::new(svc)
       18259  +
                    }),
       18260  +
                ),
       18261  +
            ]);
       18262  +
        let svc = self
       18263  +
            .layer
       18264  +
            .layer(::aws_smithy_legacy_http_server::routing::RoutingService::new(router));
       18265  +
        RestJson { svc }
       18266  +
    }
       18267  +
}
       18268  +
       18269  +
/// The error encountered when calling the [`RestJsonBuilder::build`] method if one or more operation handlers are not
       18270  +
/// specified.
       18271  +
#[derive(Debug)]
       18272  +
pub struct MissingOperationsError {
       18273  +
    operation_names2setter_methods:
       18274  +
        std::collections::HashMap<::aws_smithy_legacy_http_server::shape_id::ShapeId, &'static str>,
       18275  +
}
       18276  +
       18277  +
impl std::fmt::Display for MissingOperationsError {
       18278  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
       18279  +
        write!(
       18280  +
            f,
       18281  +
            "You must specify a handler for all operations attached to `RestJson`.\n\
       18282  +
                            We are missing handlers for the following operations:\n",
       18283  +
        )?;
       18284  +
        for operation_name in self.operation_names2setter_methods.keys() {
       18285  +
            writeln!(f, "- {}", operation_name.absolute())?;
       18286  +
        }
       18287  +
       18288  +
        writeln!(
       18289  +
            f,
       18290  +
            "\nUse the dedicated methods on `RestJsonBuilder` to register the missing handlers:"
       18291  +
        )?;
       18292  +
        for setter_name in self.operation_names2setter_methods.values() {
       18293  +
            writeln!(f, "- {}", setter_name)?;
       18294  +
        }
       18295  +
        Ok(())
       18296  +
    }
       18297  +
}
       18298  +
       18299  +
impl std::error::Error for MissingOperationsError {}
       18300  +
       18301  +
mod request_specs {
       18302  +
    pub(super) fn all_query_string_types(
       18303  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18304  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18305  +
                    ::http::Method::GET,
       18306  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18307  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18308  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18309  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("AllQueryStringTypesInput")),
       18310  +
]),
       18311  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18312  +
])
       18313  +
                        )
       18314  +
                    ),
       18315  +
                )
       18316  +
    }
       18317  +
    pub(super) fn constant_and_variable_query_string(
       18318  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18319  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18320  +
                    ::http::Method::GET,
       18321  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18322  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18323  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18324  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("ConstantAndVariableQueryString")),
       18325  +
]),
       18326  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18327  +
    ::aws_smithy_legacy_http_server::routing::request_spec::QuerySegment::KeyValue(String::from("foo"), String::from("bar")),
       18328  +
])
       18329  +
                        )
       18330  +
                    ),
       18331  +
                )
       18332  +
    }
       18333  +
    pub(super) fn constant_query_string(
       18334  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18335  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18336  +
                    ::http::Method::GET,
       18337  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18338  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18339  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18340  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("ConstantQueryString")),
       18341  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18342  +
]),
       18343  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18344  +
    ::aws_smithy_legacy_http_server::routing::request_spec::QuerySegment::KeyValue(String::from("foo"), String::from("bar")),
       18345  +
    ::aws_smithy_legacy_http_server::routing::request_spec::QuerySegment::Key(String::from("hello")),
       18346  +
])
       18347  +
                        )
       18348  +
                    ),
       18349  +
                )
       18350  +
    }
       18351  +
    pub(super) fn content_type_parameters(
       18352  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18353  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18354  +
                    ::http::Method::POST,
       18355  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18356  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18357  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18358  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("ContentTypeParameters")),
       18359  +
]),
       18360  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18361  +
])
       18362  +
                        )
       18363  +
                    ),
       18364  +
                )
       18365  +
    }
       18366  +
    pub(super) fn datetime_offsets(
       18367  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18368  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18369  +
                    ::http::Method::POST,
       18370  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18371  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18372  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18373  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("DatetimeOffsets")),
       18374  +
]),
       18375  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18376  +
])
       18377  +
                        )
       18378  +
                    ),
       18379  +
                )
       18380  +
    }
       18381  +
    pub(super) fn document_type(
       18382  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18383  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18384  +
                    ::http::Method::PUT,
       18385  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18386  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18387  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18388  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("DocumentType")),
       18389  +
]),
       18390  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18391  +
])
       18392  +
                        )
       18393  +
                    ),
       18394  +
                )
       18395  +
    }
       18396  +
    pub(super) fn document_type_as_map_value(
       18397  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18398  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18399  +
                    ::http::Method::PUT,
       18400  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18401  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18402  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18403  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("DocumentTypeAsMapValue")),
       18404  +
]),
       18405  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18406  +
])
       18407  +
                        )
       18408  +
                    ),
       18409  +
                )
       18410  +
    }
       18411  +
    pub(super) fn document_type_as_payload(
       18412  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18413  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18414  +
                    ::http::Method::PUT,
       18415  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18416  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18417  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18418  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("DocumentTypeAsPayload")),
       18419  +
]),
       18420  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18421  +
])
       18422  +
                        )
       18423  +
                    ),
       18424  +
                )
       18425  +
    }
       18426  +
    pub(super) fn empty_input_and_empty_output(
       18427  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18428  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18429  +
                    ::http::Method::POST,
       18430  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18431  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18432  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18433  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("EmptyInputAndEmptyOutput")),
       18434  +
]),
       18435  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18436  +
])
       18437  +
                        )
       18438  +
                    ),
       18439  +
                )
       18440  +
    }
       18441  +
    pub(super) fn endpoint_operation(
       18442  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18443  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18444  +
                    ::http::Method::POST,
       18445  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18446  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18447  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18448  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("EndpointOperation")),
       18449  +
]),
       18450  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18451  +
])
       18452  +
                        )
       18453  +
                    ),
       18454  +
                )
       18455  +
    }
       18456  +
    pub(super) fn endpoint_with_host_label_operation(
       18457  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18458  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18459  +
                    ::http::Method::POST,
       18460  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18461  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18462  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18463  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("EndpointWithHostLabelOperation")),
       18464  +
]),
       18465  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18466  +
])
       18467  +
                        )
       18468  +
                    ),
       18469  +
                )
       18470  +
    }
       18471  +
    pub(super) fn fractional_seconds(
       18472  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18473  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18474  +
                    ::http::Method::POST,
       18475  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18476  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18477  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18478  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("FractionalSeconds")),
       18479  +
]),
       18480  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18481  +
])
       18482  +
                        )
       18483  +
                    ),
       18484  +
                )
       18485  +
    }
       18486  +
    pub(super) fn greeting_with_errors(
       18487  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18488  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18489  +
                    ::http::Method::PUT,
       18490  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18491  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18492  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18493  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("GreetingWithErrors")),
       18494  +
]),
       18495  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18496  +
])
       18497  +
                        )
       18498  +
                    ),
       18499  +
                )
       18500  +
    }
       18501  +
    pub(super) fn host_with_path_operation(
       18502  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18503  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18504  +
                    ::http::Method::GET,
       18505  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18506  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18507  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18508  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HostWithPathOperation")),
       18509  +
]),
       18510  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18511  +
])
       18512  +
                        )
       18513  +
                    ),
       18514  +
                )
       18515  +
    }
       18516  +
    pub(super) fn http_checksum_required(
       18517  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18518  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18519  +
                    ::http::Method::POST,
       18520  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18521  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18522  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18523  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpChecksumRequired")),
       18524  +
]),
       18525  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18526  +
])
       18527  +
                        )
       18528  +
                    ),
       18529  +
                )
       18530  +
    }
       18531  +
    pub(super) fn http_empty_prefix_headers(
       18532  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18533  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18534  +
                    ::http::Method::GET,
       18535  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18536  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18537  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18538  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpEmptyPrefixHeaders")),
       18539  +
]),
       18540  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18541  +
])
       18542  +
                        )
       18543  +
                    ),
       18544  +
                )
       18545  +
    }
       18546  +
    pub(super) fn http_enum_payload(
       18547  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18548  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18549  +
                    ::http::Method::POST,
       18550  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18551  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18552  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18553  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("EnumPayload")),
       18554  +
]),
       18555  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18556  +
])
       18557  +
                        )
       18558  +
                    ),
       18559  +
                )
       18560  +
    }
       18561  +
    pub(super) fn http_payload_traits(
       18562  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18563  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18564  +
                    ::http::Method::POST,
       18565  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18566  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18567  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18568  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpPayloadTraits")),
       18569  +
]),
       18570  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18571  +
])
       18572  +
                        )
       18573  +
                    ),
       18574  +
                )
       18575  +
    }
       18576  +
    pub(super) fn http_payload_traits_with_media_type(
       18577  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18578  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18579  +
                    ::http::Method::POST,
       18580  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18581  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18582  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18583  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpPayloadTraitsWithMediaType")),
       18584  +
]),
       18585  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18586  +
])
       18587  +
                        )
       18588  +
                    ),
       18589  +
                )
       18590  +
    }
       18591  +
    pub(super) fn http_payload_with_structure(
       18592  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18593  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18594  +
                    ::http::Method::PUT,
       18595  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18596  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18597  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18598  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpPayloadWithStructure")),
       18599  +
]),
       18600  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18601  +
])
       18602  +
                        )
       18603  +
                    ),
       18604  +
                )
       18605  +
    }
       18606  +
    pub(super) fn http_payload_with_union(
       18607  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18608  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18609  +
                    ::http::Method::PUT,
       18610  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18611  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18612  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18613  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpPayloadWithUnion")),
       18614  +
]),
       18615  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18616  +
])
       18617  +
                        )
       18618  +
                    ),
       18619  +
                )
       18620  +
    }
       18621  +
    pub(super) fn http_prefix_headers(
       18622  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18623  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18624  +
                    ::http::Method::GET,
       18625  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18626  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18627  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18628  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpPrefixHeaders")),
       18629  +
]),
       18630  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18631  +
])
       18632  +
                        )
       18633  +
                    ),
       18634  +
                )
       18635  +
    }
       18636  +
    pub(super) fn http_prefix_headers_in_response(
       18637  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18638  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18639  +
                    ::http::Method::GET,
       18640  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18641  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18642  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18643  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpPrefixHeadersResponse")),
       18644  +
]),
       18645  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18646  +
])
       18647  +
                        )
       18648  +
                    ),
       18649  +
                )
       18650  +
    }
       18651  +
    pub(super) fn http_request_with_float_labels(
       18652  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18653  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18654  +
                    ::http::Method::GET,
       18655  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18656  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18657  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18658  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("FloatHttpLabels")),
       18659  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18660  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18661  +
]),
       18662  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18663  +
])
       18664  +
                        )
       18665  +
                    ),
       18666  +
                )
       18667  +
    }
       18668  +
    pub(super) fn http_request_with_greedy_label_in_path(
       18669  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18670  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18671  +
                    ::http::Method::GET,
       18672  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18673  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18674  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18675  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpRequestWithGreedyLabelInPath")),
       18676  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("foo")),
       18677  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18678  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("baz")),
       18679  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Greedy,
       18680  +
]),
       18681  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18682  +
])
       18683  +
                        )
       18684  +
                    ),
       18685  +
                )
       18686  +
    }
       18687  +
    pub(super) fn http_request_with_labels(
       18688  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18689  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18690  +
                    ::http::Method::GET,
       18691  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18692  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18693  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18694  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpRequestWithLabels")),
       18695  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18696  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18697  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18698  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18699  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18700  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18701  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18702  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18703  +
]),
       18704  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18705  +
])
       18706  +
                        )
       18707  +
                    ),
       18708  +
                )
       18709  +
    }
       18710  +
    pub(super) fn http_request_with_labels_and_timestamp_format(
       18711  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18712  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18713  +
                    ::http::Method::GET,
       18714  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18715  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18716  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18717  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpRequestWithLabelsAndTimestampFormat")),
       18718  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18719  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18720  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18721  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18722  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18723  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18724  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18725  +
]),
       18726  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18727  +
])
       18728  +
                        )
       18729  +
                    ),
       18730  +
                )
       18731  +
    }
       18732  +
    pub(super) fn http_request_with_regex_literal(
       18733  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18734  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18735  +
                    ::http::Method::GET,
       18736  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18737  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18738  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18739  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("ReDosLiteral")),
       18740  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18741  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("(a+)+")),
       18742  +
]),
       18743  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18744  +
])
       18745  +
                        )
       18746  +
                    ),
       18747  +
                )
       18748  +
    }
       18749  +
    pub(super) fn http_response_code(
       18750  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18751  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18752  +
                    ::http::Method::PUT,
       18753  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18754  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18755  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18756  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("HttpResponseCode")),
       18757  +
]),
       18758  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18759  +
])
       18760  +
                        )
       18761  +
                    ),
       18762  +
                )
       18763  +
    }
       18764  +
    pub(super) fn http_string_payload(
       18765  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18766  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18767  +
                    ::http::Method::POST,
       18768  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18769  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18770  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18771  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("StringPayload")),
       18772  +
]),
       18773  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18774  +
])
       18775  +
                        )
       18776  +
                    ),
       18777  +
                )
       18778  +
    }
       18779  +
    pub(super) fn ignore_query_params_in_response(
       18780  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18781  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18782  +
                    ::http::Method::GET,
       18783  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18784  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18785  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18786  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("IgnoreQueryParamsInResponse")),
       18787  +
]),
       18788  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18789  +
])
       18790  +
                        )
       18791  +
                    ),
       18792  +
                )
       18793  +
    }
       18794  +
    pub(super) fn input_and_output_with_headers(
       18795  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18796  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18797  +
                    ::http::Method::POST,
       18798  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18799  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18800  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18801  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("InputAndOutputWithHeaders")),
       18802  +
]),
       18803  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18804  +
])
       18805  +
                        )
       18806  +
                    ),
       18807  +
                )
       18808  +
    }
       18809  +
    pub(super) fn json_blobs() -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec
       18810  +
    {
       18811  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18812  +
                    ::http::Method::POST,
       18813  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18814  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18815  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18816  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("JsonBlobs")),
       18817  +
]),
       18818  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18819  +
])
       18820  +
                        )
       18821  +
                    ),
       18822  +
                )
       18823  +
    }
       18824  +
    pub(super) fn json_enums() -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec
       18825  +
    {
       18826  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18827  +
                    ::http::Method::PUT,
       18828  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18829  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18830  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18831  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("JsonEnums")),
       18832  +
]),
       18833  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18834  +
])
       18835  +
                        )
       18836  +
                    ),
       18837  +
                )
       18838  +
    }
       18839  +
    pub(super) fn json_int_enums(
       18840  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18841  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18842  +
                    ::http::Method::PUT,
       18843  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18844  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18845  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18846  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("JsonIntEnums")),
       18847  +
]),
       18848  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18849  +
])
       18850  +
                        )
       18851  +
                    ),
       18852  +
                )
       18853  +
    }
       18854  +
    pub(super) fn json_lists() -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec
       18855  +
    {
       18856  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18857  +
                    ::http::Method::PUT,
       18858  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18859  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18860  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18861  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("JsonLists")),
       18862  +
]),
       18863  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18864  +
])
       18865  +
                        )
       18866  +
                    ),
       18867  +
                )
       18868  +
    }
       18869  +
    pub(super) fn json_maps() -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec
       18870  +
    {
       18871  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18872  +
                    ::http::Method::POST,
       18873  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18874  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18875  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18876  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("JsonMaps")),
       18877  +
]),
       18878  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18879  +
])
       18880  +
                        )
       18881  +
                    ),
       18882  +
                )
       18883  +
    }
       18884  +
    pub(super) fn json_timestamps(
       18885  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18886  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18887  +
                    ::http::Method::POST,
       18888  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18889  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18890  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18891  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("JsonTimestamps")),
       18892  +
]),
       18893  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18894  +
])
       18895  +
                        )
       18896  +
                    ),
       18897  +
                )
       18898  +
    }
       18899  +
    pub(super) fn json_unions(
       18900  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18901  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18902  +
                    ::http::Method::PUT,
       18903  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18904  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18905  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18906  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("JsonUnions")),
       18907  +
]),
       18908  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18909  +
])
       18910  +
                        )
       18911  +
                    ),
       18912  +
                )
       18913  +
    }
       18914  +
    pub(super) fn malformed_accept_with_body(
       18915  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18916  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18917  +
                    ::http::Method::POST,
       18918  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18919  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18920  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18921  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedAcceptWithBody")),
       18922  +
]),
       18923  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18924  +
])
       18925  +
                        )
       18926  +
                    ),
       18927  +
                )
       18928  +
    }
       18929  +
    pub(super) fn malformed_accept_with_generic_string(
       18930  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18931  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18932  +
                    ::http::Method::POST,
       18933  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18934  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18935  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18936  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedAcceptWithGenericString")),
       18937  +
]),
       18938  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18939  +
])
       18940  +
                        )
       18941  +
                    ),
       18942  +
                )
       18943  +
    }
       18944  +
    pub(super) fn malformed_accept_with_payload(
       18945  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18946  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18947  +
                    ::http::Method::POST,
       18948  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18949  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18950  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18951  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedAcceptWithPayload")),
       18952  +
]),
       18953  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18954  +
])
       18955  +
                        )
       18956  +
                    ),
       18957  +
                )
       18958  +
    }
       18959  +
    pub(super) fn malformed_blob(
       18960  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18961  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18962  +
                    ::http::Method::POST,
       18963  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18964  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18965  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18966  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedBlob")),
       18967  +
]),
       18968  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18969  +
])
       18970  +
                        )
       18971  +
                    ),
       18972  +
                )
       18973  +
    }
       18974  +
    pub(super) fn malformed_boolean(
       18975  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18976  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18977  +
                    ::http::Method::POST,
       18978  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18979  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18980  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18981  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedBoolean")),
       18982  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18983  +
]),
       18984  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       18985  +
])
       18986  +
                        )
       18987  +
                    ),
       18988  +
                )
       18989  +
    }
       18990  +
    pub(super) fn malformed_byte(
       18991  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       18992  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       18993  +
                    ::http::Method::POST,
       18994  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       18995  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       18996  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       18997  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedByte")),
       18998  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       18999  +
]),
       19000  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19001  +
])
       19002  +
                        )
       19003  +
                    ),
       19004  +
                )
       19005  +
    }
       19006  +
    pub(super) fn malformed_content_type_with_body(
       19007  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19008  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19009  +
                    ::http::Method::POST,
       19010  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19011  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19012  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19013  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedContentTypeWithBody")),
       19014  +
]),
       19015  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19016  +
])
       19017  +
                        )
       19018  +
                    ),
       19019  +
                )
       19020  +
    }
       19021  +
    pub(super) fn malformed_content_type_with_generic_string(
       19022  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19023  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19024  +
                    ::http::Method::POST,
       19025  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19026  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19027  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19028  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedContentTypeWithGenericString")),
       19029  +
]),
       19030  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19031  +
])
       19032  +
                        )
       19033  +
                    ),
       19034  +
                )
       19035  +
    }
       19036  +
    pub(super) fn malformed_content_type_without_body(
       19037  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19038  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19039  +
                    ::http::Method::POST,
       19040  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19041  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19042  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19043  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedContentTypeWithoutBody")),
       19044  +
]),
       19045  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19046  +
])
       19047  +
                        )
       19048  +
                    ),
       19049  +
                )
       19050  +
    }
       19051  +
    pub(super) fn malformed_content_type_without_body_empty_input(
       19052  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19053  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19054  +
                    ::http::Method::POST,
       19055  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19056  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19057  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19058  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedContentTypeWithoutBodyEmptyInput")),
       19059  +
]),
       19060  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19061  +
])
       19062  +
                        )
       19063  +
                    ),
       19064  +
                )
       19065  +
    }
       19066  +
    pub(super) fn malformed_content_type_with_payload(
       19067  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19068  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19069  +
                    ::http::Method::POST,
       19070  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19071  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19072  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19073  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedContentTypeWithPayload")),
       19074  +
]),
       19075  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19076  +
])
       19077  +
                        )
       19078  +
                    ),
       19079  +
                )
       19080  +
    }
       19081  +
    pub(super) fn malformed_double(
       19082  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19083  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19084  +
                    ::http::Method::POST,
       19085  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19086  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19087  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19088  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedDouble")),
       19089  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       19090  +
]),
       19091  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19092  +
])
       19093  +
                        )
       19094  +
                    ),
       19095  +
                )
       19096  +
    }
       19097  +
    pub(super) fn malformed_float(
       19098  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19099  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19100  +
                    ::http::Method::POST,
       19101  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19102  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19103  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19104  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedFloat")),
       19105  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       19106  +
]),
       19107  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19108  +
])
       19109  +
                        )
       19110  +
                    ),
       19111  +
                )
       19112  +
    }
       19113  +
    pub(super) fn malformed_integer(
       19114  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19115  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19116  +
                    ::http::Method::POST,
       19117  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19118  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19119  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19120  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedInteger")),
       19121  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       19122  +
]),
       19123  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19124  +
])
       19125  +
                        )
       19126  +
                    ),
       19127  +
                )
       19128  +
    }
       19129  +
    pub(super) fn malformed_list(
       19130  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19131  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19132  +
                    ::http::Method::POST,
       19133  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19134  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19135  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19136  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedList")),
       19137  +
]),
       19138  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19139  +
])
       19140  +
                        )
       19141  +
                    ),
       19142  +
                )
       19143  +
    }
       19144  +
    pub(super) fn malformed_long(
       19145  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19146  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19147  +
                    ::http::Method::POST,
       19148  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19149  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19150  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19151  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedLong")),
       19152  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       19153  +
]),
       19154  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19155  +
])
       19156  +
                        )
       19157  +
                    ),
       19158  +
                )
       19159  +
    }
       19160  +
    pub(super) fn malformed_map(
       19161  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19162  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19163  +
                    ::http::Method::POST,
       19164  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19165  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19166  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19167  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedMap")),
       19168  +
]),
       19169  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19170  +
])
       19171  +
                        )
       19172  +
                    ),
       19173  +
                )
       19174  +
    }
       19175  +
    pub(super) fn malformed_request_body(
       19176  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19177  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19178  +
                    ::http::Method::POST,
       19179  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19180  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19181  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19182  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedRequestBody")),
       19183  +
]),
       19184  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19185  +
])
       19186  +
                        )
       19187  +
                    ),
       19188  +
                )
       19189  +
    }
       19190  +
    pub(super) fn malformed_short(
       19191  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19192  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19193  +
                    ::http::Method::POST,
       19194  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19195  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19196  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19197  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedShort")),
       19198  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       19199  +
]),
       19200  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19201  +
])
       19202  +
                        )
       19203  +
                    ),
       19204  +
                )
       19205  +
    }
       19206  +
    pub(super) fn malformed_string(
       19207  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19208  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19209  +
                    ::http::Method::POST,
       19210  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19211  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19212  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19213  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedString")),
       19214  +
]),
       19215  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19216  +
])
       19217  +
                        )
       19218  +
                    ),
       19219  +
                )
       19220  +
    }
       19221  +
    pub(super) fn malformed_timestamp_body_date_time(
       19222  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19223  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19224  +
                    ::http::Method::POST,
       19225  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19226  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19227  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19228  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampBodyDateTime")),
       19229  +
]),
       19230  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19231  +
])
       19232  +
                        )
       19233  +
                    ),
       19234  +
                )
       19235  +
    }
       19236  +
    pub(super) fn malformed_timestamp_body_default(
       19237  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19238  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19239  +
                    ::http::Method::POST,
       19240  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19241  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19242  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19243  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampBodyDefault")),
       19244  +
]),
       19245  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19246  +
])
       19247  +
                        )
       19248  +
                    ),
       19249  +
                )
       19250  +
    }
       19251  +
    pub(super) fn malformed_timestamp_body_http_date(
       19252  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19253  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19254  +
                    ::http::Method::POST,
       19255  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19256  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19257  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19258  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampBodyHttpDate")),
       19259  +
]),
       19260  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19261  +
])
       19262  +
                        )
       19263  +
                    ),
       19264  +
                )
       19265  +
    }
       19266  +
    pub(super) fn malformed_timestamp_header_date_time(
       19267  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19268  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19269  +
                    ::http::Method::POST,
       19270  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19271  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19272  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19273  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampHeaderDateTime")),
       19274  +
]),
       19275  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19276  +
])
       19277  +
                        )
       19278  +
                    ),
       19279  +
                )
       19280  +
    }
       19281  +
    pub(super) fn malformed_timestamp_header_default(
       19282  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19283  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19284  +
                    ::http::Method::POST,
       19285  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19286  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19287  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19288  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampHeaderDefault")),
       19289  +
]),
       19290  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19291  +
])
       19292  +
                        )
       19293  +
                    ),
       19294  +
                )
       19295  +
    }
       19296  +
    pub(super) fn malformed_timestamp_header_epoch(
       19297  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19298  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19299  +
                    ::http::Method::POST,
       19300  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19301  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19302  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19303  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampHeaderEpoch")),
       19304  +
]),
       19305  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19306  +
])
       19307  +
                        )
       19308  +
                    ),
       19309  +
                )
       19310  +
    }
       19311  +
    pub(super) fn malformed_timestamp_path_default(
       19312  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19313  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19314  +
                    ::http::Method::POST,
       19315  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19316  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19317  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19318  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampPathDefault")),
       19319  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       19320  +
]),
       19321  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19322  +
])
       19323  +
                        )
       19324  +
                    ),
       19325  +
                )
       19326  +
    }
       19327  +
    pub(super) fn malformed_timestamp_path_epoch(
       19328  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19329  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19330  +
                    ::http::Method::POST,
       19331  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19332  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19333  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19334  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampPathEpoch")),
       19335  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       19336  +
]),
       19337  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19338  +
])
       19339  +
                        )
       19340  +
                    ),
       19341  +
                )
       19342  +
    }
       19343  +
    pub(super) fn malformed_timestamp_path_http_date(
       19344  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19345  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19346  +
                    ::http::Method::POST,
       19347  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19348  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19349  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19350  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampPathHttpDate")),
       19351  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
       19352  +
]),
       19353  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19354  +
])
       19355  +
                        )
       19356  +
                    ),
       19357  +
                )
       19358  +
    }
       19359  +
    pub(super) fn malformed_timestamp_query_default(
       19360  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19361  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19362  +
                    ::http::Method::POST,
       19363  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19364  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19365  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19366  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampQueryDefault")),
       19367  +
]),
       19368  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19369  +
])
       19370  +
                        )
       19371  +
                    ),
       19372  +
                )
       19373  +
    }
       19374  +
    pub(super) fn malformed_timestamp_query_epoch(
       19375  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19376  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19377  +
                    ::http::Method::POST,
       19378  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19379  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19380  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19381  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampQueryEpoch")),
       19382  +
]),
       19383  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19384  +
])
       19385  +
                        )
       19386  +
                    ),
       19387  +
                )
       19388  +
    }
       19389  +
    pub(super) fn malformed_timestamp_query_http_date(
       19390  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19391  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19392  +
                    ::http::Method::POST,
       19393  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19394  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19395  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19396  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedTimestampQueryHttpDate")),
       19397  +
]),
       19398  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19399  +
])
       19400  +
                        )
       19401  +
                    ),
       19402  +
                )
       19403  +
    }
       19404  +
    pub(super) fn malformed_union(
       19405  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19406  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19407  +
                    ::http::Method::POST,
       19408  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19409  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19410  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19411  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MalformedUnion")),
       19412  +
]),
       19413  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19414  +
])
       19415  +
                        )
       19416  +
                    ),
       19417  +
                )
       19418  +
    }
       19419  +
    pub(super) fn media_type_header(
       19420  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19421  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19422  +
                    ::http::Method::GET,
       19423  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19424  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19425  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19426  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("MediaTypeHeader")),
       19427  +
]),
       19428  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19429  +
])
       19430  +
                        )
       19431  +
                    ),
       19432  +
                )
       19433  +
    }
       19434  +
    pub(super) fn no_input_and_no_output(
       19435  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19436  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19437  +
                    ::http::Method::POST,
       19438  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19439  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19440  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19441  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("NoInputAndNoOutput")),
       19442  +
]),
       19443  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19444  +
])
       19445  +
                        )
       19446  +
                    ),
       19447  +
                )
       19448  +
    }
       19449  +
    pub(super) fn no_input_and_output(
       19450  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19451  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19452  +
                    ::http::Method::POST,
       19453  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19454  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19455  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19456  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("NoInputAndOutputOutput")),
       19457  +
]),
       19458  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19459  +
])
       19460  +
                        )
       19461  +
                    ),
       19462  +
                )
       19463  +
    }
       19464  +
    pub(super) fn null_and_empty_headers_client(
       19465  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19466  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19467  +
                    ::http::Method::GET,
       19468  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19469  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19470  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19471  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("NullAndEmptyHeadersClient")),
       19472  +
]),
       19473  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19474  +
])
       19475  +
                        )
       19476  +
                    ),
       19477  +
                )
       19478  +
    }
       19479  +
    pub(super) fn null_and_empty_headers_server(
       19480  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19481  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19482  +
                    ::http::Method::GET,
       19483  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19484  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19485  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19486  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("NullAndEmptyHeadersServer")),
       19487  +
]),
       19488  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19489  +
])
       19490  +
                        )
       19491  +
                    ),
       19492  +
                )
       19493  +
    }
       19494  +
    pub(super) fn omits_null_serializes_empty_string(
       19495  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19496  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19497  +
                    ::http::Method::GET,
       19498  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19499  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19500  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19501  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("OmitsNullSerializesEmptyString")),
       19502  +
]),
       19503  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19504  +
])
       19505  +
                        )
       19506  +
                    ),
       19507  +
                )
       19508  +
    }
       19509  +
    pub(super) fn omits_serializing_empty_lists(
       19510  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19511  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19512  +
                    ::http::Method::POST,
       19513  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19514  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19515  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19516  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("OmitsSerializingEmptyLists")),
       19517  +
]),
       19518  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19519  +
])
       19520  +
                        )
       19521  +
                    ),
       19522  +
                )
       19523  +
    }
       19524  +
    pub(super) fn operation_with_defaults(
       19525  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19526  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19527  +
                    ::http::Method::POST,
       19528  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19529  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19530  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19531  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("OperationWithDefaults")),
       19532  +
]),
       19533  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19534  +
])
       19535  +
                        )
       19536  +
                    ),
       19537  +
                )
       19538  +
    }
       19539  +
    pub(super) fn operation_with_nested_structure(
       19540  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19541  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19542  +
                    ::http::Method::POST,
       19543  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19544  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19545  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19546  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("OperationWithNestedStructure")),
       19547  +
]),
       19548  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19549  +
])
       19550  +
                        )
       19551  +
                    ),
       19552  +
                )
       19553  +
    }
       19554  +
    pub(super) fn post_player_action(
       19555  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19556  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19557  +
                    ::http::Method::POST,
       19558  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19559  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19560  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19561  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("PostPlayerAction")),
       19562  +
]),
       19563  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19564  +
])
       19565  +
                        )
       19566  +
                    ),
       19567  +
                )
       19568  +
    }
       19569  +
    pub(super) fn post_union_with_json_name(
       19570  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19571  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19572  +
                    ::http::Method::POST,
       19573  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19574  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19575  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19576  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("PostUnionWithJsonName")),
       19577  +
]),
       19578  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19579  +
])
       19580  +
                        )
       19581  +
                    ),
       19582  +
                )
       19583  +
    }
       19584  +
    pub(super) fn put_with_content_encoding(
       19585  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19586  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19587  +
                    ::http::Method::POST,
       19588  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19589  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19590  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19591  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("requestcompression")),
       19592  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("putcontentwithencoding")),
       19593  +
]),
       19594  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19595  +
])
       19596  +
                        )
       19597  +
                    ),
       19598  +
                )
       19599  +
    }
       19600  +
    pub(super) fn query_idempotency_token_auto_fill(
       19601  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19602  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19603  +
                    ::http::Method::POST,
       19604  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19605  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19606  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19607  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("QueryIdempotencyTokenAutoFill")),
       19608  +
]),
       19609  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19610  +
])
       19611  +
                        )
       19612  +
                    ),
       19613  +
                )
       19614  +
    }
       19615  +
    pub(super) fn query_params_as_string_list_map(
       19616  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19617  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19618  +
                    ::http::Method::POST,
       19619  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19620  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19621  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19622  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("StringListMap")),
       19623  +
]),
       19624  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19625  +
])
       19626  +
                        )
       19627  +
                    ),
       19628  +
                )
       19629  +
    }
       19630  +
    pub(super) fn query_precedence(
       19631  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19632  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19633  +
                    ::http::Method::POST,
       19634  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19635  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19636  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19637  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("Precedence")),
       19638  +
]),
       19639  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19640  +
])
       19641  +
                        )
       19642  +
                    ),
       19643  +
                )
       19644  +
    }
       19645  +
    pub(super) fn recursive_shapes(
       19646  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19647  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19648  +
                    ::http::Method::PUT,
       19649  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19650  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19651  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19652  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("RecursiveShapes")),
       19653  +
]),
       19654  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19655  +
])
       19656  +
                        )
       19657  +
                    ),
       19658  +
                )
       19659  +
    }
       19660  +
    pub(super) fn response_code_http_fallback(
       19661  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19662  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19663  +
                    ::http::Method::GET,
       19664  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19665  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19666  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19667  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("responseCodeHttpFallback")),
       19668  +
]),
       19669  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19670  +
])
       19671  +
                        )
       19672  +
                    ),
       19673  +
                )
       19674  +
    }
       19675  +
    pub(super) fn response_code_required(
       19676  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19677  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19678  +
                    ::http::Method::GET,
       19679  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19680  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19681  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19682  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("responseCodeRequired")),
       19683  +
]),
       19684  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19685  +
])
       19686  +
                        )
       19687  +
                    ),
       19688  +
                )
       19689  +
    }
       19690  +
    pub(super) fn simple_scalar_properties(
       19691  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19692  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19693  +
                    ::http::Method::PUT,
       19694  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19695  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19696  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19697  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("SimpleScalarProperties")),
       19698  +
]),
       19699  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19700  +
])
       19701  +
                        )
       19702  +
                    ),
       19703  +
                )
       19704  +
    }
       19705  +
    pub(super) fn sparse_json_lists(
       19706  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19707  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19708  +
                    ::http::Method::PUT,
       19709  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19710  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19711  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19712  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("SparseJsonLists")),
       19713  +
]),
       19714  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19715  +
])
       19716  +
                        )
       19717  +
                    ),
       19718  +
                )
       19719  +
    }
       19720  +
    pub(super) fn sparse_json_maps(
       19721  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19722  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19723  +
                    ::http::Method::POST,
       19724  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19725  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19726  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19727  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("SparseJsonMaps")),
       19728  +
]),
       19729  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19730  +
])
       19731  +
                        )
       19732  +
                    ),
       19733  +
                )
       19734  +
    }
       19735  +
    pub(super) fn streaming_traits(
       19736  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19737  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19738  +
                    ::http::Method::POST,
       19739  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19740  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19741  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19742  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("StreamingTraits")),
       19743  +
]),
       19744  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19745  +
])
       19746  +
                        )
       19747  +
                    ),
       19748  +
                )
       19749  +
    }
       19750  +
    pub(super) fn streaming_traits_require_length(
       19751  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19752  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19753  +
                    ::http::Method::POST,
       19754  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19755  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19756  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19757  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("StreamingTraitsRequireLength")),
       19758  +
]),
       19759  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19760  +
])
       19761  +
                        )
       19762  +
                    ),
       19763  +
                )
       19764  +
    }
       19765  +
    pub(super) fn streaming_traits_with_media_type(
       19766  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19767  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19768  +
                    ::http::Method::POST,
       19769  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19770  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19771  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19772  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("StreamingTraitsWithMediaType")),
       19773  +
]),
       19774  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19775  +
])
       19776  +
                        )
       19777  +
                    ),
       19778  +
                )
       19779  +
    }
       19780  +
    pub(super) fn test_body_structure(
       19781  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19782  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19783  +
                    ::http::Method::POST,
       19784  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19785  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19786  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19787  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("body")),
       19788  +
]),
       19789  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19790  +
])
       19791  +
                        )
       19792  +
                    ),
       19793  +
                )
       19794  +
    }
       19795  +
    pub(super) fn test_get_no_input_no_payload(
       19796  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19797  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19798  +
                    ::http::Method::GET,
       19799  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19800  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19801  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19802  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("no_input_no_payload")),
       19803  +
]),
       19804  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19805  +
])
       19806  +
                        )
       19807  +
                    ),
       19808  +
                )
       19809  +
    }
       19810  +
    pub(super) fn test_get_no_payload(
       19811  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19812  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19813  +
                    ::http::Method::GET,
       19814  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19815  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19816  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19817  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("no_payload")),
       19818  +
]),
       19819  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19820  +
])
       19821  +
                        )
       19822  +
                    ),
       19823  +
                )
       19824  +
    }
       19825  +
    pub(super) fn test_payload_blob(
       19826  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19827  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19828  +
                    ::http::Method::POST,
       19829  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19830  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19831  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19832  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("blob_payload")),
       19833  +
]),
       19834  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19835  +
])
       19836  +
                        )
       19837  +
                    ),
       19838  +
                )
       19839  +
    }
       19840  +
    pub(super) fn test_payload_structure(
       19841  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19842  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19843  +
                    ::http::Method::POST,
       19844  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19845  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19846  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19847  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("payload")),
       19848  +
]),
       19849  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19850  +
])
       19851  +
                        )
       19852  +
                    ),
       19853  +
                )
       19854  +
    }
       19855  +
    pub(super) fn test_post_no_input_no_payload(
       19856  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19857  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19858  +
                    ::http::Method::POST,
       19859  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19860  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19861  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19862  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("no_input_no_payload")),
       19863  +
]),
       19864  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19865  +
])
       19866  +
                        )
       19867  +
                    ),
       19868  +
                )
       19869  +
    }
       19870  +
    pub(super) fn test_post_no_payload(
       19871  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19872  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19873  +
                    ::http::Method::POST,
       19874  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19875  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19876  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19877  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("no_payload")),
       19878  +
]),
       19879  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19880  +
])
       19881  +
                        )
       19882  +
                    ),
       19883  +
                )
       19884  +
    }
       19885  +
    pub(super) fn timestamp_format_headers(
       19886  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19887  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19888  +
                    ::http::Method::POST,
       19889  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19890  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19891  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19892  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("TimestampFormatHeaders")),
       19893  +
]),
       19894  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19895  +
])
       19896  +
                        )
       19897  +
                    ),
       19898  +
                )
       19899  +
    }
       19900  +
    pub(super) fn unit_input_and_output(
       19901  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
       19902  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
       19903  +
                    ::http::Method::POST,
       19904  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
       19905  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
       19906  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
       19907  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("UnitInputAndOutput")),
       19908  +
]),
       19909  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
       19910  +
])
       19911  +
                        )
       19912  +
                    ),
       19913  +
                )
       19914  +
    }
       19915  +
}
       19916  +
       19917  +
/// A REST JSON service that sends JSON requests and responses.
       19918  +
///
       19919  +
/// See the [root](crate) documentation for more information.
       19920  +
#[derive(Clone)]
       19921  +
pub struct RestJson<
       19922  +
    S = ::aws_smithy_legacy_http_server::routing::RoutingService<
       19923  +
        ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
       19924  +
            ::aws_smithy_legacy_http_server::routing::Route<
       19925  +
                ::aws_smithy_legacy_http_server::body::BoxBody,
       19926  +
            >,
       19927  +
        >,
       19928  +
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       19929  +
    >,
       19930  +
> {
       19931  +
    // This is the router wrapped by layers.
       19932  +
    svc: S,
       19933  +
}
       19934  +
       19935  +
impl RestJson<()> {
       19936  +
    /// Constructs a builder for [`RestJson`].
       19937  +
    /// You must specify a configuration object holding any plugins and layers that should be applied
       19938  +
    /// to the operations in this service.
       19939  +
    pub fn builder<
       19940  +
        Body,
       19941  +
        L,
       19942  +
        HttpPl: ::aws_smithy_legacy_http_server::plugin::HttpMarker,
       19943  +
        ModelPl: ::aws_smithy_legacy_http_server::plugin::ModelMarker,
       19944  +
    >(
       19945  +
        config: RestJsonConfig<L, HttpPl, ModelPl>,
       19946  +
    ) -> RestJsonBuilder<Body, L, HttpPl, ModelPl> {
       19947  +
        RestJsonBuilder {
       19948  +
            all_query_string_types: None,
       19949  +
            constant_and_variable_query_string: None,
       19950  +
            constant_query_string: None,
       19951  +
            content_type_parameters: None,
       19952  +
            datetime_offsets: None,
       19953  +
            document_type: None,
       19954  +
            document_type_as_map_value: None,
       19955  +
            document_type_as_payload: None,
       19956  +
            empty_input_and_empty_output: None,
       19957  +
            endpoint_operation: None,
       19958  +
            endpoint_with_host_label_operation: None,
       19959  +
            fractional_seconds: None,
       19960  +
            greeting_with_errors: None,
       19961  +
            host_with_path_operation: None,
       19962  +
            http_checksum_required: None,
       19963  +
            http_empty_prefix_headers: None,
       19964  +
            http_enum_payload: None,
       19965  +
            http_payload_traits: None,
       19966  +
            http_payload_traits_with_media_type: None,
       19967  +
            http_payload_with_structure: None,
       19968  +
            http_payload_with_union: None,
       19969  +
            http_prefix_headers: None,
       19970  +
            http_prefix_headers_in_response: None,
       19971  +
            http_request_with_float_labels: None,
       19972  +
            http_request_with_greedy_label_in_path: None,
       19973  +
            http_request_with_labels: None,
       19974  +
            http_request_with_labels_and_timestamp_format: None,
       19975  +
            http_request_with_regex_literal: None,
       19976  +
            http_response_code: None,
       19977  +
            http_string_payload: None,
       19978  +
            ignore_query_params_in_response: None,
       19979  +
            input_and_output_with_headers: None,
       19980  +
            json_blobs: None,
       19981  +
            json_enums: None,
       19982  +
            json_int_enums: None,
       19983  +
            json_lists: None,
       19984  +
            json_maps: None,
       19985  +
            json_timestamps: None,
       19986  +
            json_unions: None,
       19987  +
            malformed_accept_with_body: None,
       19988  +
            malformed_accept_with_generic_string: None,
       19989  +
            malformed_accept_with_payload: None,
       19990  +
            malformed_blob: None,
       19991  +
            malformed_boolean: None,
       19992  +
            malformed_byte: None,
       19993  +
            malformed_content_type_with_body: None,
       19994  +
            malformed_content_type_with_generic_string: None,
       19995  +
            malformed_content_type_without_body: None,
       19996  +
            malformed_content_type_without_body_empty_input: None,
       19997  +
            malformed_content_type_with_payload: None,
       19998  +
            malformed_double: None,
       19999  +
            malformed_float: None,
       20000  +
            malformed_integer: None,
       20001  +
            malformed_list: None,
       20002  +
            malformed_long: None,
       20003  +
            malformed_map: None,
       20004  +
            malformed_request_body: None,
       20005  +
            malformed_short: None,
       20006  +
            malformed_string: None,
       20007  +
            malformed_timestamp_body_date_time: None,
       20008  +
            malformed_timestamp_body_default: None,
       20009  +
            malformed_timestamp_body_http_date: None,
       20010  +
            malformed_timestamp_header_date_time: None,
       20011  +
            malformed_timestamp_header_default: None,
       20012  +
            malformed_timestamp_header_epoch: None,
       20013  +
            malformed_timestamp_path_default: None,
       20014  +
            malformed_timestamp_path_epoch: None,
       20015  +
            malformed_timestamp_path_http_date: None,
       20016  +
            malformed_timestamp_query_default: None,
       20017  +
            malformed_timestamp_query_epoch: None,
       20018  +
            malformed_timestamp_query_http_date: None,
       20019  +
            malformed_union: None,
       20020  +
            media_type_header: None,
       20021  +
            no_input_and_no_output: None,
       20022  +
            no_input_and_output: None,
       20023  +
            null_and_empty_headers_client: None,
       20024  +
            null_and_empty_headers_server: None,
       20025  +
            omits_null_serializes_empty_string: None,
       20026  +
            omits_serializing_empty_lists: None,
       20027  +
            operation_with_defaults: None,
       20028  +
            operation_with_nested_structure: None,
       20029  +
            post_player_action: None,
       20030  +
            post_union_with_json_name: None,
       20031  +
            put_with_content_encoding: None,
       20032  +
            query_idempotency_token_auto_fill: None,
       20033  +
            query_params_as_string_list_map: None,
       20034  +
            query_precedence: None,
       20035  +
            recursive_shapes: None,
       20036  +
            response_code_http_fallback: None,
       20037  +
            response_code_required: None,
       20038  +
            simple_scalar_properties: None,
       20039  +
            sparse_json_lists: None,
       20040  +
            sparse_json_maps: None,
       20041  +
            streaming_traits: None,
       20042  +
            streaming_traits_require_length: None,
       20043  +
            streaming_traits_with_media_type: None,
       20044  +
            test_body_structure: None,
       20045  +
            test_get_no_input_no_payload: None,
       20046  +
            test_get_no_payload: None,
       20047  +
            test_payload_blob: None,
       20048  +
            test_payload_structure: None,
       20049  +
            test_post_no_input_no_payload: None,
       20050  +
            test_post_no_payload: None,
       20051  +
            timestamp_format_headers: None,
       20052  +
            unit_input_and_output: None,
       20053  +
            layer: config.layers,
       20054  +
            http_plugin: config.http_plugins,
       20055  +
            model_plugin: config.model_plugins,
       20056  +
        }
       20057  +
    }
       20058  +
       20059  +
    /// Constructs a builder for [`RestJson`].
       20060  +
    /// You must specify what plugins should be applied to the operations in this service.
       20061  +
    ///
       20062  +
    /// Use [`RestJson::builder_without_plugins`] if you don't need to apply plugins.
       20063  +
    ///
       20064  +
    /// Check out [`HttpPlugins`](::aws_smithy_legacy_http_server::plugin::HttpPlugins) and
       20065  +
    /// [`ModelPlugins`](::aws_smithy_legacy_http_server::plugin::ModelPlugins) if you need to apply
       20066  +
    /// multiple plugins.
       20067  +
    #[deprecated(
       20068  +
        since = "0.57.0",
       20069  +
        note = "please use the `builder` constructor and register plugins on the `RestJsonConfig` object instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
       20070  +
    )]
       20071  +
    pub fn builder_with_plugins<
       20072  +
        Body,
       20073  +
        HttpPl: ::aws_smithy_legacy_http_server::plugin::HttpMarker,
       20074  +
        ModelPl: ::aws_smithy_legacy_http_server::plugin::ModelMarker,
       20075  +
    >(
       20076  +
        http_plugin: HttpPl,
       20077  +
        model_plugin: ModelPl,
       20078  +
    ) -> RestJsonBuilder<Body, ::tower::layer::util::Identity, HttpPl, ModelPl> {
       20079  +
        RestJsonBuilder {
       20080  +
            all_query_string_types: None,
       20081  +
            constant_and_variable_query_string: None,
       20082  +
            constant_query_string: None,
       20083  +
            content_type_parameters: None,
       20084  +
            datetime_offsets: None,
       20085  +
            document_type: None,
       20086  +
            document_type_as_map_value: None,
       20087  +
            document_type_as_payload: None,
       20088  +
            empty_input_and_empty_output: None,
       20089  +
            endpoint_operation: None,
       20090  +
            endpoint_with_host_label_operation: None,
       20091  +
            fractional_seconds: None,
       20092  +
            greeting_with_errors: None,
       20093  +
            host_with_path_operation: None,
       20094  +
            http_checksum_required: None,
       20095  +
            http_empty_prefix_headers: None,
       20096  +
            http_enum_payload: None,
       20097  +
            http_payload_traits: None,
       20098  +
            http_payload_traits_with_media_type: None,
       20099  +
            http_payload_with_structure: None,
       20100  +
            http_payload_with_union: None,
       20101  +
            http_prefix_headers: None,
       20102  +
            http_prefix_headers_in_response: None,
       20103  +
            http_request_with_float_labels: None,
       20104  +
            http_request_with_greedy_label_in_path: None,
       20105  +
            http_request_with_labels: None,
       20106  +
            http_request_with_labels_and_timestamp_format: None,
       20107  +
            http_request_with_regex_literal: None,
       20108  +
            http_response_code: None,
       20109  +
            http_string_payload: None,
       20110  +
            ignore_query_params_in_response: None,
       20111  +
            input_and_output_with_headers: None,
       20112  +
            json_blobs: None,
       20113  +
            json_enums: None,
       20114  +
            json_int_enums: None,
       20115  +
            json_lists: None,
       20116  +
            json_maps: None,
       20117  +
            json_timestamps: None,
       20118  +
            json_unions: None,
       20119  +
            malformed_accept_with_body: None,
       20120  +
            malformed_accept_with_generic_string: None,
       20121  +
            malformed_accept_with_payload: None,
       20122  +
            malformed_blob: None,
       20123  +
            malformed_boolean: None,
       20124  +
            malformed_byte: None,
       20125  +
            malformed_content_type_with_body: None,
       20126  +
            malformed_content_type_with_generic_string: None,
       20127  +
            malformed_content_type_without_body: None,
       20128  +
            malformed_content_type_without_body_empty_input: None,
       20129  +
            malformed_content_type_with_payload: None,
       20130  +
            malformed_double: None,
       20131  +
            malformed_float: None,
       20132  +
            malformed_integer: None,
       20133  +
            malformed_list: None,
       20134  +
            malformed_long: None,
       20135  +
            malformed_map: None,
       20136  +
            malformed_request_body: None,
       20137  +
            malformed_short: None,
       20138  +
            malformed_string: None,
       20139  +
            malformed_timestamp_body_date_time: None,
       20140  +
            malformed_timestamp_body_default: None,
       20141  +
            malformed_timestamp_body_http_date: None,
       20142  +
            malformed_timestamp_header_date_time: None,
       20143  +
            malformed_timestamp_header_default: None,
       20144  +
            malformed_timestamp_header_epoch: None,
       20145  +
            malformed_timestamp_path_default: None,
       20146  +
            malformed_timestamp_path_epoch: None,
       20147  +
            malformed_timestamp_path_http_date: None,
       20148  +
            malformed_timestamp_query_default: None,
       20149  +
            malformed_timestamp_query_epoch: None,
       20150  +
            malformed_timestamp_query_http_date: None,
       20151  +
            malformed_union: None,
       20152  +
            media_type_header: None,
       20153  +
            no_input_and_no_output: None,
       20154  +
            no_input_and_output: None,
       20155  +
            null_and_empty_headers_client: None,
       20156  +
            null_and_empty_headers_server: None,
       20157  +
            omits_null_serializes_empty_string: None,
       20158  +
            omits_serializing_empty_lists: None,
       20159  +
            operation_with_defaults: None,
       20160  +
            operation_with_nested_structure: None,
       20161  +
            post_player_action: None,
       20162  +
            post_union_with_json_name: None,
       20163  +
            put_with_content_encoding: None,
       20164  +
            query_idempotency_token_auto_fill: None,
       20165  +
            query_params_as_string_list_map: None,
       20166  +
            query_precedence: None,
       20167  +
            recursive_shapes: None,
       20168  +
            response_code_http_fallback: None,
       20169  +
            response_code_required: None,
       20170  +
            simple_scalar_properties: None,
       20171  +
            sparse_json_lists: None,
       20172  +
            sparse_json_maps: None,
       20173  +
            streaming_traits: None,
       20174  +
            streaming_traits_require_length: None,
       20175  +
            streaming_traits_with_media_type: None,
       20176  +
            test_body_structure: None,
       20177  +
            test_get_no_input_no_payload: None,
       20178  +
            test_get_no_payload: None,
       20179  +
            test_payload_blob: None,
       20180  +
            test_payload_structure: None,
       20181  +
            test_post_no_input_no_payload: None,
       20182  +
            test_post_no_payload: None,
       20183  +
            timestamp_format_headers: None,
       20184  +
            unit_input_and_output: None,
       20185  +
            layer: ::tower::layer::util::Identity::new(),
       20186  +
            http_plugin,
       20187  +
            model_plugin,
       20188  +
        }
       20189  +
    }
       20190  +
       20191  +
    /// Constructs a builder for [`RestJson`].
       20192  +
    ///
       20193  +
    /// Use [`RestJson::builder_with_plugins`] if you need to specify plugins.
       20194  +
    #[deprecated(
       20195  +
        since = "0.57.0",
       20196  +
        note = "please use the `builder` constructor instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
       20197  +
    )]
       20198  +
    pub fn builder_without_plugins<Body>() -> RestJsonBuilder<
       20199  +
        Body,
       20200  +
        ::tower::layer::util::Identity,
       20201  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
       20202  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
       20203  +
    > {
       20204  +
        Self::builder_with_plugins(
       20205  +
            ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
       20206  +
            ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
       20207  +
        )
       20208  +
    }
       20209  +
}
       20210  +
       20211  +
impl<S> RestJson<S> {
       20212  +
    /// Converts [`RestJson`] into a [`MakeService`](tower::make::MakeService).
       20213  +
    pub fn into_make_service(
       20214  +
        self,
       20215  +
    ) -> ::aws_smithy_legacy_http_server::routing::IntoMakeService<Self> {
       20216  +
        ::aws_smithy_legacy_http_server::routing::IntoMakeService::new(self)
       20217  +
    }
       20218  +
       20219  +
    /// Converts [`RestJson`] into a [`MakeService`](tower::make::MakeService) with [`ConnectInfo`](::aws_smithy_legacy_http_server::request::connect_info::ConnectInfo).
       20220  +
    pub fn into_make_service_with_connect_info<C>(
       20221  +
        self,
       20222  +
    ) -> ::aws_smithy_legacy_http_server::routing::IntoMakeServiceWithConnectInfo<Self, C> {
       20223  +
        ::aws_smithy_legacy_http_server::routing::IntoMakeServiceWithConnectInfo::new(self)
       20224  +
    }
       20225  +
}
       20226  +
       20227  +
impl<S>
       20228  +
    RestJson<
       20229  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
       20230  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<S>,
       20231  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       20232  +
        >,
       20233  +
    >
       20234  +
{
       20235  +
    /// Applies a [`Layer`](::tower::Layer) uniformly to all routes.
       20236  +
    #[deprecated(
       20237  +
        since = "0.57.0",
       20238  +
        note = "please add layers to the `RestJsonConfig` object instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
       20239  +
    )]
       20240  +
    pub fn layer<L>(
       20241  +
        self,
       20242  +
        layer: &L,
       20243  +
    ) -> RestJson<
       20244  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
       20245  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<L::Service>,
       20246  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       20247  +
        >,
       20248  +
    >
       20249  +
    where
       20250  +
        L: ::tower::Layer<S>,
       20251  +
    {
       20252  +
        RestJson {
       20253  +
            svc: self.svc.map(|s| s.layer(layer)),
       20254  +
        }
       20255  +
    }
       20256  +
       20257  +
    /// Applies [`Route::new`](::aws_smithy_legacy_http_server::routing::Route::new) to all routes.
       20258  +
    ///
       20259  +
    /// This has the effect of erasing all types accumulated via layers.
       20260  +
    pub fn boxed<B>(
       20261  +
        self,
       20262  +
    ) -> RestJson<
       20263  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
       20264  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
       20265  +
                ::aws_smithy_legacy_http_server::routing::Route<B>,
       20266  +
            >,
       20267  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
       20268  +
        >,
       20269  +
    >
       20270  +
    where
       20271  +
        S: ::tower::Service<
       20272  +
            ::http::Request<B>,
       20273  +
            Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
       20274  +
            Error = std::convert::Infallible,
       20275  +
        >,
       20276  +
        S: Clone + Send + 'static,
       20277  +
        S::Future: Send + 'static,
       20278  +
    {
       20279  +
        self.layer(&::tower::layer::layer_fn(
       20280  +
            ::aws_smithy_legacy_http_server::routing::Route::new,
       20281  +
        ))
       20282  +
    }
       20283  +
}
       20284  +
       20285  +
impl<S, R> ::tower::Service<R> for RestJson<S>
       20286  +
where
       20287  +
    S: ::tower::Service<R>,
       20288  +
{
       20289  +
    type Response = S::Response;
       20290  +
    type Error = S::Error;
       20291  +
    type Future = S::Future;
       20292  +
       20293  +
    fn poll_ready(
       20294  +
        &mut self,
       20295  +
        cx: &mut std::task::Context,
       20296  +
    ) -> std::task::Poll<::std::result::Result<(), Self::Error>> {
       20297  +
        self.svc.poll_ready(cx)
       20298  +
    }
       20299  +
       20300  +
    fn call(&mut self, request: R) -> Self::Future {
       20301  +
        self.svc.call(request)
       20302  +
    }
       20303  +
}
       20304  +
       20305  +
/// An enumeration of all [operations](https://smithy.io/2.0/spec/service-types.html#operation) in RestJson.
       20306  +
#[allow(clippy::enum_variant_names)]
       20307  +
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
       20308  +
pub enum Operation {
       20309  +
    AllQueryStringTypes,
       20310  +
    ConstantAndVariableQueryString,
       20311  +
    ConstantQueryString,
       20312  +
    ContentTypeParameters,
       20313  +
    DatetimeOffsets,
       20314  +
    DocumentType,
       20315  +
    DocumentTypeAsMapValue,
       20316  +
    DocumentTypeAsPayload,
       20317  +
    EmptyInputAndEmptyOutput,
       20318  +
    EndpointOperation,
       20319  +
    EndpointWithHostLabelOperation,
       20320  +
    FractionalSeconds,
       20321  +
    GreetingWithErrors,
       20322  +
    HostWithPathOperation,
       20323  +
    HttpChecksumRequired,
       20324  +
    HttpEmptyPrefixHeaders,
       20325  +
    HttpEnumPayload,
       20326  +
    HttpPayloadTraits,
       20327  +
    HttpPayloadTraitsWithMediaType,
       20328  +
    HttpPayloadWithStructure,
       20329  +
    HttpPayloadWithUnion,
       20330  +
    HttpPrefixHeaders,
       20331  +
    HttpPrefixHeadersInResponse,
       20332  +
    HttpRequestWithFloatLabels,
       20333  +
    HttpRequestWithGreedyLabelInPath,
       20334  +
    HttpRequestWithLabels,
       20335  +
    HttpRequestWithLabelsAndTimestampFormat,
       20336  +
    HttpRequestWithRegexLiteral,
       20337  +
    HttpResponseCode,
       20338  +
    HttpStringPayload,
       20339  +
    IgnoreQueryParamsInResponse,
       20340  +
    InputAndOutputWithHeaders,
       20341  +
    JsonBlobs,
       20342  +
    JsonEnums,
       20343  +
    JsonIntEnums,
       20344  +
    JsonLists,
       20345  +
    JsonMaps,
       20346  +
    JsonTimestamps,
       20347  +
    JsonUnions,
       20348  +
    MalformedAcceptWithBody,
       20349  +
    MalformedAcceptWithGenericString,
       20350  +
    MalformedAcceptWithPayload,
       20351  +
    MalformedBlob,
       20352  +
    MalformedBoolean,
       20353  +
    MalformedByte,
       20354  +
    MalformedContentTypeWithBody,
       20355  +
    MalformedContentTypeWithGenericString,
       20356  +
    MalformedContentTypeWithoutBody,
       20357  +
    MalformedContentTypeWithoutBodyEmptyInput,
       20358  +
    MalformedContentTypeWithPayload,
       20359  +
    MalformedDouble,
       20360  +
    MalformedFloat,
       20361  +
    MalformedInteger,
       20362  +
    MalformedList,
       20363  +
    MalformedLong,
       20364  +
    MalformedMap,
       20365  +
    MalformedRequestBody,
       20366  +
    MalformedShort,
       20367  +
    MalformedString,
       20368  +
    MalformedTimestampBodyDateTime,
       20369  +
    MalformedTimestampBodyDefault,
       20370  +
    MalformedTimestampBodyHttpDate,
       20371  +
    MalformedTimestampHeaderDateTime,
       20372  +
    MalformedTimestampHeaderDefault,
       20373  +
    MalformedTimestampHeaderEpoch,
       20374  +
    MalformedTimestampPathDefault,
       20375  +
    MalformedTimestampPathEpoch,
       20376  +
    MalformedTimestampPathHttpDate,
       20377  +
    MalformedTimestampQueryDefault,
       20378  +
    MalformedTimestampQueryEpoch,
       20379  +
    MalformedTimestampQueryHttpDate,
       20380  +
    MalformedUnion,
       20381  +
    MediaTypeHeader,
       20382  +
    NoInputAndNoOutput,
       20383  +
    NoInputAndOutput,
       20384  +
    NullAndEmptyHeadersClient,
       20385  +
    NullAndEmptyHeadersServer,
       20386  +
    OmitsNullSerializesEmptyString,
       20387  +
    OmitsSerializingEmptyLists,
       20388  +
    OperationWithDefaults,
       20389  +
    OperationWithNestedStructure,
       20390  +
    PostPlayerAction,
       20391  +
    PostUnionWithJsonName,
       20392  +
    PutWithContentEncoding,
       20393  +
    QueryIdempotencyTokenAutoFill,
       20394  +
    QueryParamsAsStringListMap,
       20395  +
    QueryPrecedence,
       20396  +
    RecursiveShapes,
       20397  +
    ResponseCodeHttpFallback,
       20398  +
    ResponseCodeRequired,
       20399  +
    SimpleScalarProperties,
       20400  +
    SparseJsonLists,
       20401  +
    SparseJsonMaps,
       20402  +
    StreamingTraits,
       20403  +
    StreamingTraitsRequireLength,
       20404  +
    StreamingTraitsWithMediaType,
       20405  +
    TestBodyStructure,
       20406  +
    TestGetNoInputNoPayload,
       20407  +
    TestGetNoPayload,
       20408  +
    TestPayloadBlob,
       20409  +
    TestPayloadStructure,
       20410  +
    TestPostNoInputNoPayload,
       20411  +
    TestPostNoPayload,
       20412  +
    TimestampFormatHeaders,
       20413  +
    UnitInputAndOutput,
       20414  +
}
       20415  +
       20416  +
impl Operation {
       20417  +
    /// Returns the [operations](https://smithy.io/2.0/spec/service-types.html#operation) [`ShapeId`](::aws_smithy_legacy_http_server::shape_id::ShapeId).
       20418  +
    pub fn shape_id(&self) -> ::aws_smithy_legacy_http_server::shape_id::ShapeId {
       20419  +
        match self {
       20420  +
            Operation::AllQueryStringTypes => {
       20421  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20422  +
                    "aws.protocoltests.restjson#AllQueryStringTypes",
       20423  +
                    "aws.protocoltests.restjson",
       20424  +
                    "AllQueryStringTypes",
       20425  +
                )
       20426  +
            }
       20427  +
            Operation::ConstantAndVariableQueryString => {
       20428  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20429  +
                    "aws.protocoltests.restjson#ConstantAndVariableQueryString",
       20430  +
                    "aws.protocoltests.restjson",
       20431  +
                    "ConstantAndVariableQueryString",
       20432  +
                )
       20433  +
            }
       20434  +
            Operation::ConstantQueryString => {
       20435  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20436  +
                    "aws.protocoltests.restjson#ConstantQueryString",
       20437  +
                    "aws.protocoltests.restjson",
       20438  +
                    "ConstantQueryString",
       20439  +
                )
       20440  +
            }
       20441  +
            Operation::ContentTypeParameters => {
       20442  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20443  +
                    "aws.protocoltests.restjson#ContentTypeParameters",
       20444  +
                    "aws.protocoltests.restjson",
       20445  +
                    "ContentTypeParameters",
       20446  +
                )
       20447  +
            }
       20448  +
            Operation::DatetimeOffsets => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20449  +
                "aws.protocoltests.restjson#DatetimeOffsets",
       20450  +
                "aws.protocoltests.restjson",
       20451  +
                "DatetimeOffsets",
       20452  +
            ),
       20453  +
            Operation::DocumentType => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20454  +
                "aws.protocoltests.restjson#DocumentType",
       20455  +
                "aws.protocoltests.restjson",
       20456  +
                "DocumentType",
       20457  +
            ),
       20458  +
            Operation::DocumentTypeAsMapValue => {
       20459  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20460  +
                    "aws.protocoltests.restjson#DocumentTypeAsMapValue",
       20461  +
                    "aws.protocoltests.restjson",
       20462  +
                    "DocumentTypeAsMapValue",
       20463  +
                )
       20464  +
            }
       20465  +
            Operation::DocumentTypeAsPayload => {
       20466  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20467  +
                    "aws.protocoltests.restjson#DocumentTypeAsPayload",
       20468  +
                    "aws.protocoltests.restjson",
       20469  +
                    "DocumentTypeAsPayload",
       20470  +
                )
       20471  +
            }
       20472  +
            Operation::EmptyInputAndEmptyOutput => {
       20473  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20474  +
                    "aws.protocoltests.restjson#EmptyInputAndEmptyOutput",
       20475  +
                    "aws.protocoltests.restjson",
       20476  +
                    "EmptyInputAndEmptyOutput",
       20477  +
                )
       20478  +
            }
       20479  +
            Operation::EndpointOperation => {
       20480  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20481  +
                    "aws.protocoltests.restjson#EndpointOperation",
       20482  +
                    "aws.protocoltests.restjson",
       20483  +
                    "EndpointOperation",
       20484  +
                )
       20485  +
            }
       20486  +
            Operation::EndpointWithHostLabelOperation => {
       20487  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20488  +
                    "aws.protocoltests.restjson#EndpointWithHostLabelOperation",
       20489  +
                    "aws.protocoltests.restjson",
       20490  +
                    "EndpointWithHostLabelOperation",
       20491  +
                )
       20492  +
            }
       20493  +
            Operation::FractionalSeconds => {
       20494  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20495  +
                    "aws.protocoltests.restjson#FractionalSeconds",
       20496  +
                    "aws.protocoltests.restjson",
       20497  +
                    "FractionalSeconds",
       20498  +
                )
       20499  +
            }
       20500  +
            Operation::GreetingWithErrors => {
       20501  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20502  +
                    "aws.protocoltests.restjson#GreetingWithErrors",
       20503  +
                    "aws.protocoltests.restjson",
       20504  +
                    "GreetingWithErrors",
       20505  +
                )
       20506  +
            }
       20507  +
            Operation::HostWithPathOperation => {
       20508  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20509  +
                    "aws.protocoltests.restjson#HostWithPathOperation",
       20510  +
                    "aws.protocoltests.restjson",
       20511  +
                    "HostWithPathOperation",
       20512  +
                )
       20513  +
            }
       20514  +
            Operation::HttpChecksumRequired => {
       20515  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20516  +
                    "aws.protocoltests.restjson#HttpChecksumRequired",
       20517  +
                    "aws.protocoltests.restjson",
       20518  +
                    "HttpChecksumRequired",
       20519  +
                )
       20520  +
            }
       20521  +
            Operation::HttpEmptyPrefixHeaders => {
       20522  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20523  +
                    "aws.protocoltests.restjson#HttpEmptyPrefixHeaders",
       20524  +
                    "aws.protocoltests.restjson",
       20525  +
                    "HttpEmptyPrefixHeaders",
       20526  +
                )
       20527  +
            }
       20528  +
            Operation::HttpEnumPayload => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20529  +
                "aws.protocoltests.restjson#HttpEnumPayload",
       20530  +
                "aws.protocoltests.restjson",
       20531  +
                "HttpEnumPayload",
       20532  +
            ),
       20533  +
            Operation::HttpPayloadTraits => {
       20534  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20535  +
                    "aws.protocoltests.restjson#HttpPayloadTraits",
       20536  +
                    "aws.protocoltests.restjson",
       20537  +
                    "HttpPayloadTraits",
       20538  +
                )
       20539  +
            }
       20540  +
            Operation::HttpPayloadTraitsWithMediaType => {
       20541  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20542  +
                    "aws.protocoltests.restjson#HttpPayloadTraitsWithMediaType",
       20543  +
                    "aws.protocoltests.restjson",
       20544  +
                    "HttpPayloadTraitsWithMediaType",
       20545  +
                )
       20546  +
            }
       20547  +
            Operation::HttpPayloadWithStructure => {
       20548  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20549  +
                    "aws.protocoltests.restjson#HttpPayloadWithStructure",
       20550  +
                    "aws.protocoltests.restjson",
       20551  +
                    "HttpPayloadWithStructure",
       20552  +
                )
       20553  +
            }
       20554  +
            Operation::HttpPayloadWithUnion => {
       20555  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20556  +
                    "aws.protocoltests.restjson#HttpPayloadWithUnion",
       20557  +
                    "aws.protocoltests.restjson",
       20558  +
                    "HttpPayloadWithUnion",
       20559  +
                )
       20560  +
            }
       20561  +
            Operation::HttpPrefixHeaders => {
       20562  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20563  +
                    "aws.protocoltests.restjson#HttpPrefixHeaders",
       20564  +
                    "aws.protocoltests.restjson",
       20565  +
                    "HttpPrefixHeaders",
       20566  +
                )
       20567  +
            }
       20568  +
            Operation::HttpPrefixHeadersInResponse => {
       20569  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20570  +
                    "aws.protocoltests.restjson#HttpPrefixHeadersInResponse",
       20571  +
                    "aws.protocoltests.restjson",
       20572  +
                    "HttpPrefixHeadersInResponse",
       20573  +
                )
       20574  +
            }
       20575  +
            Operation::HttpRequestWithFloatLabels => {
       20576  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20577  +
                    "aws.protocoltests.restjson#HttpRequestWithFloatLabels",
       20578  +
                    "aws.protocoltests.restjson",
       20579  +
                    "HttpRequestWithFloatLabels",
       20580  +
                )
       20581  +
            }
       20582  +
            Operation::HttpRequestWithGreedyLabelInPath => {
       20583  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20584  +
                    "aws.protocoltests.restjson#HttpRequestWithGreedyLabelInPath",
       20585  +
                    "aws.protocoltests.restjson",
       20586  +
                    "HttpRequestWithGreedyLabelInPath",
       20587  +
                )
       20588  +
            }
       20589  +
            Operation::HttpRequestWithLabels => {
       20590  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20591  +
                    "aws.protocoltests.restjson#HttpRequestWithLabels",
       20592  +
                    "aws.protocoltests.restjson",
       20593  +
                    "HttpRequestWithLabels",
       20594  +
                )
       20595  +
            }
       20596  +
            Operation::HttpRequestWithLabelsAndTimestampFormat => {
       20597  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20598  +
                    "aws.protocoltests.restjson#HttpRequestWithLabelsAndTimestampFormat",
       20599  +
                    "aws.protocoltests.restjson",
       20600  +
                    "HttpRequestWithLabelsAndTimestampFormat",
       20601  +
                )
       20602  +
            }
       20603  +
            Operation::HttpRequestWithRegexLiteral => {
       20604  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20605  +
                    "aws.protocoltests.restjson#HttpRequestWithRegexLiteral",
       20606  +
                    "aws.protocoltests.restjson",
       20607  +
                    "HttpRequestWithRegexLiteral",
       20608  +
                )
       20609  +
            }
       20610  +
            Operation::HttpResponseCode => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20611  +
                "aws.protocoltests.restjson#HttpResponseCode",
       20612  +
                "aws.protocoltests.restjson",
       20613  +
                "HttpResponseCode",
       20614  +
            ),
       20615  +
            Operation::HttpStringPayload => {
       20616  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20617  +
                    "aws.protocoltests.restjson#HttpStringPayload",
       20618  +
                    "aws.protocoltests.restjson",
       20619  +
                    "HttpStringPayload",
       20620  +
                )
       20621  +
            }
       20622  +
            Operation::IgnoreQueryParamsInResponse => {
       20623  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20624  +
                    "aws.protocoltests.restjson#IgnoreQueryParamsInResponse",
       20625  +
                    "aws.protocoltests.restjson",
       20626  +
                    "IgnoreQueryParamsInResponse",
       20627  +
                )
       20628  +
            }
       20629  +
            Operation::InputAndOutputWithHeaders => {
       20630  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20631  +
                    "aws.protocoltests.restjson#InputAndOutputWithHeaders",
       20632  +
                    "aws.protocoltests.restjson",
       20633  +
                    "InputAndOutputWithHeaders",
       20634  +
                )
       20635  +
            }
       20636  +
            Operation::JsonBlobs => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20637  +
                "aws.protocoltests.restjson#JsonBlobs",
       20638  +
                "aws.protocoltests.restjson",
       20639  +
                "JsonBlobs",
       20640  +
            ),
       20641  +
            Operation::JsonEnums => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20642  +
                "aws.protocoltests.restjson#JsonEnums",
       20643  +
                "aws.protocoltests.restjson",
       20644  +
                "JsonEnums",
       20645  +
            ),
       20646  +
            Operation::JsonIntEnums => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20647  +
                "aws.protocoltests.restjson#JsonIntEnums",
       20648  +
                "aws.protocoltests.restjson",
       20649  +
                "JsonIntEnums",
       20650  +
            ),
       20651  +
            Operation::JsonLists => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20652  +
                "aws.protocoltests.restjson#JsonLists",
       20653  +
                "aws.protocoltests.restjson",
       20654  +
                "JsonLists",
       20655  +
            ),
       20656  +
            Operation::JsonMaps => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20657  +
                "aws.protocoltests.restjson#JsonMaps",
       20658  +
                "aws.protocoltests.restjson",
       20659  +
                "JsonMaps",
       20660  +
            ),
       20661  +
            Operation::JsonTimestamps => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20662  +
                "aws.protocoltests.restjson#JsonTimestamps",
       20663  +
                "aws.protocoltests.restjson",
       20664  +
                "JsonTimestamps",
       20665  +
            ),
       20666  +
            Operation::JsonUnions => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20667  +
                "aws.protocoltests.restjson#JsonUnions",
       20668  +
                "aws.protocoltests.restjson",
       20669  +
                "JsonUnions",
       20670  +
            ),
       20671  +
            Operation::MalformedAcceptWithBody => {
       20672  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20673  +
                    "aws.protocoltests.restjson#MalformedAcceptWithBody",
       20674  +
                    "aws.protocoltests.restjson",
       20675  +
                    "MalformedAcceptWithBody",
       20676  +
                )
       20677  +
            }
       20678  +
            Operation::MalformedAcceptWithGenericString => {
       20679  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20680  +
                    "aws.protocoltests.restjson#MalformedAcceptWithGenericString",
       20681  +
                    "aws.protocoltests.restjson",
       20682  +
                    "MalformedAcceptWithGenericString",
       20683  +
                )
       20684  +
            }
       20685  +
            Operation::MalformedAcceptWithPayload => {
       20686  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20687  +
                    "aws.protocoltests.restjson#MalformedAcceptWithPayload",
       20688  +
                    "aws.protocoltests.restjson",
       20689  +
                    "MalformedAcceptWithPayload",
       20690  +
                )
       20691  +
            }
       20692  +
            Operation::MalformedBlob => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20693  +
                "aws.protocoltests.restjson#MalformedBlob",
       20694  +
                "aws.protocoltests.restjson",
       20695  +
                "MalformedBlob",
       20696  +
            ),
       20697  +
            Operation::MalformedBoolean => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20698  +
                "aws.protocoltests.restjson#MalformedBoolean",
       20699  +
                "aws.protocoltests.restjson",
       20700  +
                "MalformedBoolean",
       20701  +
            ),
       20702  +
            Operation::MalformedByte => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20703  +
                "aws.protocoltests.restjson#MalformedByte",
       20704  +
                "aws.protocoltests.restjson",
       20705  +
                "MalformedByte",
       20706  +
            ),
       20707  +
            Operation::MalformedContentTypeWithBody => {
       20708  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20709  +
                    "aws.protocoltests.restjson#MalformedContentTypeWithBody",
       20710  +
                    "aws.protocoltests.restjson",
       20711  +
                    "MalformedContentTypeWithBody",
       20712  +
                )
       20713  +
            }
       20714  +
            Operation::MalformedContentTypeWithGenericString => {
       20715  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20716  +
                    "aws.protocoltests.restjson#MalformedContentTypeWithGenericString",
       20717  +
                    "aws.protocoltests.restjson",
       20718  +
                    "MalformedContentTypeWithGenericString",
       20719  +
                )
       20720  +
            }
       20721  +
            Operation::MalformedContentTypeWithoutBody => {
       20722  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20723  +
                    "aws.protocoltests.restjson#MalformedContentTypeWithoutBody",
       20724  +
                    "aws.protocoltests.restjson",
       20725  +
                    "MalformedContentTypeWithoutBody",
       20726  +
                )
       20727  +
            }
       20728  +
            Operation::MalformedContentTypeWithoutBodyEmptyInput => {
       20729  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20730  +
                    "aws.protocoltests.restjson#MalformedContentTypeWithoutBodyEmptyInput",
       20731  +
                    "aws.protocoltests.restjson",
       20732  +
                    "MalformedContentTypeWithoutBodyEmptyInput",
       20733  +
                )
       20734  +
            }
       20735  +
            Operation::MalformedContentTypeWithPayload => {
       20736  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20737  +
                    "aws.protocoltests.restjson#MalformedContentTypeWithPayload",
       20738  +
                    "aws.protocoltests.restjson",
       20739  +
                    "MalformedContentTypeWithPayload",
       20740  +
                )
       20741  +
            }
       20742  +
            Operation::MalformedDouble => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20743  +
                "aws.protocoltests.restjson#MalformedDouble",
       20744  +
                "aws.protocoltests.restjson",
       20745  +
                "MalformedDouble",
       20746  +
            ),
       20747  +
            Operation::MalformedFloat => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20748  +
                "aws.protocoltests.restjson#MalformedFloat",
       20749  +
                "aws.protocoltests.restjson",
       20750  +
                "MalformedFloat",
       20751  +
            ),
       20752  +
            Operation::MalformedInteger => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20753  +
                "aws.protocoltests.restjson#MalformedInteger",
       20754  +
                "aws.protocoltests.restjson",
       20755  +
                "MalformedInteger",
       20756  +
            ),
       20757  +
            Operation::MalformedList => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20758  +
                "aws.protocoltests.restjson#MalformedList",
       20759  +
                "aws.protocoltests.restjson",
       20760  +
                "MalformedList",
       20761  +
            ),
       20762  +
            Operation::MalformedLong => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20763  +
                "aws.protocoltests.restjson#MalformedLong",
       20764  +
                "aws.protocoltests.restjson",
       20765  +
                "MalformedLong",
       20766  +
            ),
       20767  +
            Operation::MalformedMap => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20768  +
                "aws.protocoltests.restjson#MalformedMap",
       20769  +
                "aws.protocoltests.restjson",
       20770  +
                "MalformedMap",
       20771  +
            ),
       20772  +
            Operation::MalformedRequestBody => {
       20773  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20774  +
                    "aws.protocoltests.restjson#MalformedRequestBody",
       20775  +
                    "aws.protocoltests.restjson",
       20776  +
                    "MalformedRequestBody",
       20777  +
                )
       20778  +
            }
       20779  +
            Operation::MalformedShort => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20780  +
                "aws.protocoltests.restjson#MalformedShort",
       20781  +
                "aws.protocoltests.restjson",
       20782  +
                "MalformedShort",
       20783  +
            ),
       20784  +
            Operation::MalformedString => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20785  +
                "aws.protocoltests.restjson#MalformedString",
       20786  +
                "aws.protocoltests.restjson",
       20787  +
                "MalformedString",
       20788  +
            ),
       20789  +
            Operation::MalformedTimestampBodyDateTime => {
       20790  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20791  +
                    "aws.protocoltests.restjson#MalformedTimestampBodyDateTime",
       20792  +
                    "aws.protocoltests.restjson",
       20793  +
                    "MalformedTimestampBodyDateTime",
       20794  +
                )
       20795  +
            }
       20796  +
            Operation::MalformedTimestampBodyDefault => {
       20797  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20798  +
                    "aws.protocoltests.restjson#MalformedTimestampBodyDefault",
       20799  +
                    "aws.protocoltests.restjson",
       20800  +
                    "MalformedTimestampBodyDefault",
       20801  +
                )
       20802  +
            }
       20803  +
            Operation::MalformedTimestampBodyHttpDate => {
       20804  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20805  +
                    "aws.protocoltests.restjson#MalformedTimestampBodyHttpDate",
       20806  +
                    "aws.protocoltests.restjson",
       20807  +
                    "MalformedTimestampBodyHttpDate",
       20808  +
                )
       20809  +
            }
       20810  +
            Operation::MalformedTimestampHeaderDateTime => {
       20811  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20812  +
                    "aws.protocoltests.restjson#MalformedTimestampHeaderDateTime",
       20813  +
                    "aws.protocoltests.restjson",
       20814  +
                    "MalformedTimestampHeaderDateTime",
       20815  +
                )
       20816  +
            }
       20817  +
            Operation::MalformedTimestampHeaderDefault => {
       20818  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20819  +
                    "aws.protocoltests.restjson#MalformedTimestampHeaderDefault",
       20820  +
                    "aws.protocoltests.restjson",
       20821  +
                    "MalformedTimestampHeaderDefault",
       20822  +
                )
       20823  +
            }
       20824  +
            Operation::MalformedTimestampHeaderEpoch => {
       20825  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20826  +
                    "aws.protocoltests.restjson#MalformedTimestampHeaderEpoch",
       20827  +
                    "aws.protocoltests.restjson",
       20828  +
                    "MalformedTimestampHeaderEpoch",
       20829  +
                )
       20830  +
            }
       20831  +
            Operation::MalformedTimestampPathDefault => {
       20832  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20833  +
                    "aws.protocoltests.restjson#MalformedTimestampPathDefault",
       20834  +
                    "aws.protocoltests.restjson",
       20835  +
                    "MalformedTimestampPathDefault",
       20836  +
                )
       20837  +
            }
       20838  +
            Operation::MalformedTimestampPathEpoch => {
       20839  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20840  +
                    "aws.protocoltests.restjson#MalformedTimestampPathEpoch",
       20841  +
                    "aws.protocoltests.restjson",
       20842  +
                    "MalformedTimestampPathEpoch",
       20843  +
                )
       20844  +
            }
       20845  +
            Operation::MalformedTimestampPathHttpDate => {
       20846  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20847  +
                    "aws.protocoltests.restjson#MalformedTimestampPathHttpDate",
       20848  +
                    "aws.protocoltests.restjson",
       20849  +
                    "MalformedTimestampPathHttpDate",
       20850  +
                )
       20851  +
            }
       20852  +
            Operation::MalformedTimestampQueryDefault => {
       20853  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20854  +
                    "aws.protocoltests.restjson#MalformedTimestampQueryDefault",
       20855  +
                    "aws.protocoltests.restjson",
       20856  +
                    "MalformedTimestampQueryDefault",
       20857  +
                )
       20858  +
            }
       20859  +
            Operation::MalformedTimestampQueryEpoch => {
       20860  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20861  +
                    "aws.protocoltests.restjson#MalformedTimestampQueryEpoch",
       20862  +
                    "aws.protocoltests.restjson",
       20863  +
                    "MalformedTimestampQueryEpoch",
       20864  +
                )
       20865  +
            }
       20866  +
            Operation::MalformedTimestampQueryHttpDate => {
       20867  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20868  +
                    "aws.protocoltests.restjson#MalformedTimestampQueryHttpDate",
       20869  +
                    "aws.protocoltests.restjson",
       20870  +
                    "MalformedTimestampQueryHttpDate",
       20871  +
                )
       20872  +
            }
       20873  +
            Operation::MalformedUnion => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20874  +
                "aws.protocoltests.restjson#MalformedUnion",
       20875  +
                "aws.protocoltests.restjson",
       20876  +
                "MalformedUnion",
       20877  +
            ),
       20878  +
            Operation::MediaTypeHeader => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20879  +
                "aws.protocoltests.restjson#MediaTypeHeader",
       20880  +
                "aws.protocoltests.restjson",
       20881  +
                "MediaTypeHeader",
       20882  +
            ),
       20883  +
            Operation::NoInputAndNoOutput => {
       20884  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20885  +
                    "aws.protocoltests.restjson#NoInputAndNoOutput",
       20886  +
                    "aws.protocoltests.restjson",
       20887  +
                    "NoInputAndNoOutput",
       20888  +
                )
       20889  +
            }
       20890  +
            Operation::NoInputAndOutput => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20891  +
                "aws.protocoltests.restjson#NoInputAndOutput",
       20892  +
                "aws.protocoltests.restjson",
       20893  +
                "NoInputAndOutput",
       20894  +
            ),
       20895  +
            Operation::NullAndEmptyHeadersClient => {
       20896  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20897  +
                    "aws.protocoltests.restjson#NullAndEmptyHeadersClient",
       20898  +
                    "aws.protocoltests.restjson",
       20899  +
                    "NullAndEmptyHeadersClient",
       20900  +
                )
       20901  +
            }
       20902  +
            Operation::NullAndEmptyHeadersServer => {
       20903  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20904  +
                    "aws.protocoltests.restjson#NullAndEmptyHeadersServer",
       20905  +
                    "aws.protocoltests.restjson",
       20906  +
                    "NullAndEmptyHeadersServer",
       20907  +
                )
       20908  +
            }
       20909  +
            Operation::OmitsNullSerializesEmptyString => {
       20910  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20911  +
                    "aws.protocoltests.restjson#OmitsNullSerializesEmptyString",
       20912  +
                    "aws.protocoltests.restjson",
       20913  +
                    "OmitsNullSerializesEmptyString",
       20914  +
                )
       20915  +
            }
       20916  +
            Operation::OmitsSerializingEmptyLists => {
       20917  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20918  +
                    "aws.protocoltests.restjson#OmitsSerializingEmptyLists",
       20919  +
                    "aws.protocoltests.restjson",
       20920  +
                    "OmitsSerializingEmptyLists",
       20921  +
                )
       20922  +
            }
       20923  +
            Operation::OperationWithDefaults => {
       20924  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20925  +
                    "aws.protocoltests.restjson#OperationWithDefaults",
       20926  +
                    "aws.protocoltests.restjson",
       20927  +
                    "OperationWithDefaults",
       20928  +
                )
       20929  +
            }
       20930  +
            Operation::OperationWithNestedStructure => {
       20931  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20932  +
                    "aws.protocoltests.restjson#OperationWithNestedStructure",
       20933  +
                    "aws.protocoltests.restjson",
       20934  +
                    "OperationWithNestedStructure",
       20935  +
                )
       20936  +
            }
       20937  +
            Operation::PostPlayerAction => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20938  +
                "aws.protocoltests.restjson#PostPlayerAction",
       20939  +
                "aws.protocoltests.restjson",
       20940  +
                "PostPlayerAction",
       20941  +
            ),
       20942  +
            Operation::PostUnionWithJsonName => {
       20943  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20944  +
                    "aws.protocoltests.restjson#PostUnionWithJsonName",
       20945  +
                    "aws.protocoltests.restjson",
       20946  +
                    "PostUnionWithJsonName",
       20947  +
                )
       20948  +
            }
       20949  +
            Operation::PutWithContentEncoding => {
       20950  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20951  +
                    "aws.protocoltests.restjson#PutWithContentEncoding",
       20952  +
                    "aws.protocoltests.restjson",
       20953  +
                    "PutWithContentEncoding",
       20954  +
                )
       20955  +
            }
       20956  +
            Operation::QueryIdempotencyTokenAutoFill => {
       20957  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20958  +
                    "aws.protocoltests.restjson#QueryIdempotencyTokenAutoFill",
       20959  +
                    "aws.protocoltests.restjson",
       20960  +
                    "QueryIdempotencyTokenAutoFill",
       20961  +
                )
       20962  +
            }
       20963  +
            Operation::QueryParamsAsStringListMap => {
       20964  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20965  +
                    "aws.protocoltests.restjson#QueryParamsAsStringListMap",
       20966  +
                    "aws.protocoltests.restjson",
       20967  +
                    "QueryParamsAsStringListMap",
       20968  +
                )
       20969  +
            }
       20970  +
            Operation::QueryPrecedence => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20971  +
                "aws.protocoltests.restjson#QueryPrecedence",
       20972  +
                "aws.protocoltests.restjson",
       20973  +
                "QueryPrecedence",
       20974  +
            ),
       20975  +
            Operation::RecursiveShapes => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20976  +
                "aws.protocoltests.restjson#RecursiveShapes",
       20977  +
                "aws.protocoltests.restjson",
       20978  +
                "RecursiveShapes",
       20979  +
            ),
       20980  +
            Operation::ResponseCodeHttpFallback => {
       20981  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20982  +
                    "aws.protocoltests.restjson#ResponseCodeHttpFallback",
       20983  +
                    "aws.protocoltests.restjson",
       20984  +
                    "ResponseCodeHttpFallback",
       20985  +
                )
       20986  +
            }
       20987  +
            Operation::ResponseCodeRequired => {
       20988  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20989  +
                    "aws.protocoltests.restjson#ResponseCodeRequired",
       20990  +
                    "aws.protocoltests.restjson",
       20991  +
                    "ResponseCodeRequired",
       20992  +
                )
       20993  +
            }
       20994  +
            Operation::SimpleScalarProperties => {
       20995  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       20996  +
                    "aws.protocoltests.restjson#SimpleScalarProperties",
       20997  +
                    "aws.protocoltests.restjson",
       20998  +
                    "SimpleScalarProperties",
       20999  +
                )
       21000  +
            }
       21001  +
            Operation::SparseJsonLists => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21002  +
                "aws.protocoltests.restjson#SparseJsonLists",
       21003  +
                "aws.protocoltests.restjson",
       21004  +
                "SparseJsonLists",
       21005  +
            ),
       21006  +
            Operation::SparseJsonMaps => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21007  +
                "aws.protocoltests.restjson#SparseJsonMaps",
       21008  +
                "aws.protocoltests.restjson",
       21009  +
                "SparseJsonMaps",
       21010  +
            ),
       21011  +
            Operation::StreamingTraits => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21012  +
                "aws.protocoltests.restjson#StreamingTraits",
       21013  +
                "aws.protocoltests.restjson",
       21014  +
                "StreamingTraits",
       21015  +
            ),
       21016  +
            Operation::StreamingTraitsRequireLength => {
       21017  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21018  +
                    "aws.protocoltests.restjson#StreamingTraitsRequireLength",
       21019  +
                    "aws.protocoltests.restjson",
       21020  +
                    "StreamingTraitsRequireLength",
       21021  +
                )
       21022  +
            }
       21023  +
            Operation::StreamingTraitsWithMediaType => {
       21024  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21025  +
                    "aws.protocoltests.restjson#StreamingTraitsWithMediaType",
       21026  +
                    "aws.protocoltests.restjson",
       21027  +
                    "StreamingTraitsWithMediaType",
       21028  +
                )
       21029  +
            }
       21030  +
            Operation::TestBodyStructure => {
       21031  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21032  +
                    "aws.protocoltests.restjson#TestBodyStructure",
       21033  +
                    "aws.protocoltests.restjson",
       21034  +
                    "TestBodyStructure",
       21035  +
                )
       21036  +
            }
       21037  +
            Operation::TestGetNoInputNoPayload => {
       21038  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21039  +
                    "aws.protocoltests.restjson#TestGetNoInputNoPayload",
       21040  +
                    "aws.protocoltests.restjson",
       21041  +
                    "TestGetNoInputNoPayload",
       21042  +
                )
       21043  +
            }
       21044  +
            Operation::TestGetNoPayload => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21045  +
                "aws.protocoltests.restjson#TestGetNoPayload",
       21046  +
                "aws.protocoltests.restjson",
       21047  +
                "TestGetNoPayload",
       21048  +
            ),
       21049  +
            Operation::TestPayloadBlob => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21050  +
                "aws.protocoltests.restjson#TestPayloadBlob",
       21051  +
                "aws.protocoltests.restjson",
       21052  +
                "TestPayloadBlob",
       21053  +
            ),
       21054  +
            Operation::TestPayloadStructure => {
       21055  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21056  +
                    "aws.protocoltests.restjson#TestPayloadStructure",
       21057  +
                    "aws.protocoltests.restjson",
       21058  +
                    "TestPayloadStructure",
       21059  +
                )
       21060  +
            }
       21061  +
            Operation::TestPostNoInputNoPayload => {
       21062  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21063  +
                    "aws.protocoltests.restjson#TestPostNoInputNoPayload",
       21064  +
                    "aws.protocoltests.restjson",
       21065  +
                    "TestPostNoInputNoPayload",
       21066  +
                )
       21067  +
            }
       21068  +
            Operation::TestPostNoPayload => {
       21069  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21070  +
                    "aws.protocoltests.restjson#TestPostNoPayload",
       21071  +
                    "aws.protocoltests.restjson",
       21072  +
                    "TestPostNoPayload",
       21073  +
                )
       21074  +
            }
       21075  +
            Operation::TimestampFormatHeaders => {
       21076  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21077  +
                    "aws.protocoltests.restjson#TimestampFormatHeaders",
       21078  +
                    "aws.protocoltests.restjson",
       21079  +
                    "TimestampFormatHeaders",
       21080  +
                )
       21081  +
            }
       21082  +
            Operation::UnitInputAndOutput => {
       21083  +
                ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21084  +
                    "aws.protocoltests.restjson#UnitInputAndOutput",
       21085  +
                    "aws.protocoltests.restjson",
       21086  +
                    "UnitInputAndOutput",
       21087  +
                )
       21088  +
            }
       21089  +
        }
       21090  +
    }
       21091  +
}
       21092  +
impl<L>
       21093  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21094  +
        crate::operation_shape::AllQueryStringTypes,
       21095  +
    > for RestJson<L>
       21096  +
{
       21097  +
    const VALUE: Operation = Operation::AllQueryStringTypes;
       21098  +
}
       21099  +
impl<L>
       21100  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21101  +
        crate::operation_shape::ConstantAndVariableQueryString,
       21102  +
    > for RestJson<L>
       21103  +
{
       21104  +
    const VALUE: Operation = Operation::ConstantAndVariableQueryString;
       21105  +
}
       21106  +
impl<L>
       21107  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21108  +
        crate::operation_shape::ConstantQueryString,
       21109  +
    > for RestJson<L>
       21110  +
{
       21111  +
    const VALUE: Operation = Operation::ConstantQueryString;
       21112  +
}
       21113  +
impl<L>
       21114  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21115  +
        crate::operation_shape::ContentTypeParameters,
       21116  +
    > for RestJson<L>
       21117  +
{
       21118  +
    const VALUE: Operation = Operation::ContentTypeParameters;
       21119  +
}
       21120  +
impl<L>
       21121  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21122  +
        crate::operation_shape::DatetimeOffsets,
       21123  +
    > for RestJson<L>
       21124  +
{
       21125  +
    const VALUE: Operation = Operation::DatetimeOffsets;
       21126  +
}
       21127  +
impl<L>
       21128  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21129  +
        crate::operation_shape::DocumentType,
       21130  +
    > for RestJson<L>
       21131  +
{
       21132  +
    const VALUE: Operation = Operation::DocumentType;
       21133  +
}
       21134  +
impl<L>
       21135  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21136  +
        crate::operation_shape::DocumentTypeAsMapValue,
       21137  +
    > for RestJson<L>
       21138  +
{
       21139  +
    const VALUE: Operation = Operation::DocumentTypeAsMapValue;
       21140  +
}
       21141  +
impl<L>
       21142  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21143  +
        crate::operation_shape::DocumentTypeAsPayload,
       21144  +
    > for RestJson<L>
       21145  +
{
       21146  +
    const VALUE: Operation = Operation::DocumentTypeAsPayload;
       21147  +
}
       21148  +
impl<L>
       21149  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21150  +
        crate::operation_shape::EmptyInputAndEmptyOutput,
       21151  +
    > for RestJson<L>
       21152  +
{
       21153  +
    const VALUE: Operation = Operation::EmptyInputAndEmptyOutput;
       21154  +
}
       21155  +
impl<L>
       21156  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21157  +
        crate::operation_shape::EndpointOperation,
       21158  +
    > for RestJson<L>
       21159  +
{
       21160  +
    const VALUE: Operation = Operation::EndpointOperation;
       21161  +
}
       21162  +
impl<L>
       21163  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21164  +
        crate::operation_shape::EndpointWithHostLabelOperation,
       21165  +
    > for RestJson<L>
       21166  +
{
       21167  +
    const VALUE: Operation = Operation::EndpointWithHostLabelOperation;
       21168  +
}
       21169  +
impl<L>
       21170  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21171  +
        crate::operation_shape::FractionalSeconds,
       21172  +
    > for RestJson<L>
       21173  +
{
       21174  +
    const VALUE: Operation = Operation::FractionalSeconds;
       21175  +
}
       21176  +
impl<L>
       21177  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21178  +
        crate::operation_shape::GreetingWithErrors,
       21179  +
    > for RestJson<L>
       21180  +
{
       21181  +
    const VALUE: Operation = Operation::GreetingWithErrors;
       21182  +
}
       21183  +
impl<L>
       21184  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21185  +
        crate::operation_shape::HostWithPathOperation,
       21186  +
    > for RestJson<L>
       21187  +
{
       21188  +
    const VALUE: Operation = Operation::HostWithPathOperation;
       21189  +
}
       21190  +
impl<L>
       21191  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21192  +
        crate::operation_shape::HttpChecksumRequired,
       21193  +
    > for RestJson<L>
       21194  +
{
       21195  +
    const VALUE: Operation = Operation::HttpChecksumRequired;
       21196  +
}
       21197  +
impl<L>
       21198  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21199  +
        crate::operation_shape::HttpEmptyPrefixHeaders,
       21200  +
    > for RestJson<L>
       21201  +
{
       21202  +
    const VALUE: Operation = Operation::HttpEmptyPrefixHeaders;
       21203  +
}
       21204  +
impl<L>
       21205  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21206  +
        crate::operation_shape::HttpEnumPayload,
       21207  +
    > for RestJson<L>
       21208  +
{
       21209  +
    const VALUE: Operation = Operation::HttpEnumPayload;
       21210  +
}
       21211  +
impl<L>
       21212  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21213  +
        crate::operation_shape::HttpPayloadTraits,
       21214  +
    > for RestJson<L>
       21215  +
{
       21216  +
    const VALUE: Operation = Operation::HttpPayloadTraits;
       21217  +
}
       21218  +
impl<L>
       21219  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21220  +
        crate::operation_shape::HttpPayloadTraitsWithMediaType,
       21221  +
    > for RestJson<L>
       21222  +
{
       21223  +
    const VALUE: Operation = Operation::HttpPayloadTraitsWithMediaType;
       21224  +
}
       21225  +
impl<L>
       21226  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21227  +
        crate::operation_shape::HttpPayloadWithStructure,
       21228  +
    > for RestJson<L>
       21229  +
{
       21230  +
    const VALUE: Operation = Operation::HttpPayloadWithStructure;
       21231  +
}
       21232  +
impl<L>
       21233  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21234  +
        crate::operation_shape::HttpPayloadWithUnion,
       21235  +
    > for RestJson<L>
       21236  +
{
       21237  +
    const VALUE: Operation = Operation::HttpPayloadWithUnion;
       21238  +
}
       21239  +
impl<L>
       21240  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21241  +
        crate::operation_shape::HttpPrefixHeaders,
       21242  +
    > for RestJson<L>
       21243  +
{
       21244  +
    const VALUE: Operation = Operation::HttpPrefixHeaders;
       21245  +
}
       21246  +
impl<L>
       21247  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21248  +
        crate::operation_shape::HttpPrefixHeadersInResponse,
       21249  +
    > for RestJson<L>
       21250  +
{
       21251  +
    const VALUE: Operation = Operation::HttpPrefixHeadersInResponse;
       21252  +
}
       21253  +
impl<L>
       21254  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21255  +
        crate::operation_shape::HttpRequestWithFloatLabels,
       21256  +
    > for RestJson<L>
       21257  +
{
       21258  +
    const VALUE: Operation = Operation::HttpRequestWithFloatLabels;
       21259  +
}
       21260  +
impl<L>
       21261  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21262  +
        crate::operation_shape::HttpRequestWithGreedyLabelInPath,
       21263  +
    > for RestJson<L>
       21264  +
{
       21265  +
    const VALUE: Operation = Operation::HttpRequestWithGreedyLabelInPath;
       21266  +
}
       21267  +
impl<L>
       21268  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21269  +
        crate::operation_shape::HttpRequestWithLabels,
       21270  +
    > for RestJson<L>
       21271  +
{
       21272  +
    const VALUE: Operation = Operation::HttpRequestWithLabels;
       21273  +
}
       21274  +
impl<L>
       21275  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21276  +
        crate::operation_shape::HttpRequestWithLabelsAndTimestampFormat,
       21277  +
    > for RestJson<L>
       21278  +
{
       21279  +
    const VALUE: Operation = Operation::HttpRequestWithLabelsAndTimestampFormat;
       21280  +
}
       21281  +
impl<L>
       21282  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21283  +
        crate::operation_shape::HttpRequestWithRegexLiteral,
       21284  +
    > for RestJson<L>
       21285  +
{
       21286  +
    const VALUE: Operation = Operation::HttpRequestWithRegexLiteral;
       21287  +
}
       21288  +
impl<L>
       21289  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21290  +
        crate::operation_shape::HttpResponseCode,
       21291  +
    > for RestJson<L>
       21292  +
{
       21293  +
    const VALUE: Operation = Operation::HttpResponseCode;
       21294  +
}
       21295  +
impl<L>
       21296  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21297  +
        crate::operation_shape::HttpStringPayload,
       21298  +
    > for RestJson<L>
       21299  +
{
       21300  +
    const VALUE: Operation = Operation::HttpStringPayload;
       21301  +
}
       21302  +
impl<L>
       21303  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21304  +
        crate::operation_shape::IgnoreQueryParamsInResponse,
       21305  +
    > for RestJson<L>
       21306  +
{
       21307  +
    const VALUE: Operation = Operation::IgnoreQueryParamsInResponse;
       21308  +
}
       21309  +
impl<L>
       21310  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21311  +
        crate::operation_shape::InputAndOutputWithHeaders,
       21312  +
    > for RestJson<L>
       21313  +
{
       21314  +
    const VALUE: Operation = Operation::InputAndOutputWithHeaders;
       21315  +
}
       21316  +
impl<L>
       21317  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<crate::operation_shape::JsonBlobs>
       21318  +
    for RestJson<L>
       21319  +
{
       21320  +
    const VALUE: Operation = Operation::JsonBlobs;
       21321  +
}
       21322  +
impl<L>
       21323  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<crate::operation_shape::JsonEnums>
       21324  +
    for RestJson<L>
       21325  +
{
       21326  +
    const VALUE: Operation = Operation::JsonEnums;
       21327  +
}
       21328  +
impl<L>
       21329  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21330  +
        crate::operation_shape::JsonIntEnums,
       21331  +
    > for RestJson<L>
       21332  +
{
       21333  +
    const VALUE: Operation = Operation::JsonIntEnums;
       21334  +
}
       21335  +
impl<L>
       21336  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<crate::operation_shape::JsonLists>
       21337  +
    for RestJson<L>
       21338  +
{
       21339  +
    const VALUE: Operation = Operation::JsonLists;
       21340  +
}
       21341  +
impl<L>
       21342  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<crate::operation_shape::JsonMaps>
       21343  +
    for RestJson<L>
       21344  +
{
       21345  +
    const VALUE: Operation = Operation::JsonMaps;
       21346  +
}
       21347  +
impl<L>
       21348  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21349  +
        crate::operation_shape::JsonTimestamps,
       21350  +
    > for RestJson<L>
       21351  +
{
       21352  +
    const VALUE: Operation = Operation::JsonTimestamps;
       21353  +
}
       21354  +
impl<L>
       21355  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<crate::operation_shape::JsonUnions>
       21356  +
    for RestJson<L>
       21357  +
{
       21358  +
    const VALUE: Operation = Operation::JsonUnions;
       21359  +
}
       21360  +
impl<L>
       21361  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21362  +
        crate::operation_shape::MalformedAcceptWithBody,
       21363  +
    > for RestJson<L>
       21364  +
{
       21365  +
    const VALUE: Operation = Operation::MalformedAcceptWithBody;
       21366  +
}
       21367  +
impl<L>
       21368  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21369  +
        crate::operation_shape::MalformedAcceptWithGenericString,
       21370  +
    > for RestJson<L>
       21371  +
{
       21372  +
    const VALUE: Operation = Operation::MalformedAcceptWithGenericString;
       21373  +
}
       21374  +
impl<L>
       21375  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21376  +
        crate::operation_shape::MalformedAcceptWithPayload,
       21377  +
    > for RestJson<L>
       21378  +
{
       21379  +
    const VALUE: Operation = Operation::MalformedAcceptWithPayload;
       21380  +
}
       21381  +
impl<L>
       21382  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21383  +
        crate::operation_shape::MalformedBlob,
       21384  +
    > for RestJson<L>
       21385  +
{
       21386  +
    const VALUE: Operation = Operation::MalformedBlob;
       21387  +
}
       21388  +
impl<L>
       21389  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21390  +
        crate::operation_shape::MalformedBoolean,
       21391  +
    > for RestJson<L>
       21392  +
{
       21393  +
    const VALUE: Operation = Operation::MalformedBoolean;
       21394  +
}
       21395  +
impl<L>
       21396  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21397  +
        crate::operation_shape::MalformedByte,
       21398  +
    > for RestJson<L>
       21399  +
{
       21400  +
    const VALUE: Operation = Operation::MalformedByte;
       21401  +
}
       21402  +
impl<L>
       21403  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21404  +
        crate::operation_shape::MalformedContentTypeWithBody,
       21405  +
    > for RestJson<L>
       21406  +
{
       21407  +
    const VALUE: Operation = Operation::MalformedContentTypeWithBody;
       21408  +
}
       21409  +
impl<L>
       21410  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21411  +
        crate::operation_shape::MalformedContentTypeWithGenericString,
       21412  +
    > for RestJson<L>
       21413  +
{
       21414  +
    const VALUE: Operation = Operation::MalformedContentTypeWithGenericString;
       21415  +
}
       21416  +
impl<L>
       21417  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21418  +
        crate::operation_shape::MalformedContentTypeWithoutBody,
       21419  +
    > for RestJson<L>
       21420  +
{
       21421  +
    const VALUE: Operation = Operation::MalformedContentTypeWithoutBody;
       21422  +
}
       21423  +
impl<L>
       21424  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21425  +
        crate::operation_shape::MalformedContentTypeWithoutBodyEmptyInput,
       21426  +
    > for RestJson<L>
       21427  +
{
       21428  +
    const VALUE: Operation = Operation::MalformedContentTypeWithoutBodyEmptyInput;
       21429  +
}
       21430  +
impl<L>
       21431  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21432  +
        crate::operation_shape::MalformedContentTypeWithPayload,
       21433  +
    > for RestJson<L>
       21434  +
{
       21435  +
    const VALUE: Operation = Operation::MalformedContentTypeWithPayload;
       21436  +
}
       21437  +
impl<L>
       21438  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21439  +
        crate::operation_shape::MalformedDouble,
       21440  +
    > for RestJson<L>
       21441  +
{
       21442  +
    const VALUE: Operation = Operation::MalformedDouble;
       21443  +
}
       21444  +
impl<L>
       21445  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21446  +
        crate::operation_shape::MalformedFloat,
       21447  +
    > for RestJson<L>
       21448  +
{
       21449  +
    const VALUE: Operation = Operation::MalformedFloat;
       21450  +
}
       21451  +
impl<L>
       21452  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21453  +
        crate::operation_shape::MalformedInteger,
       21454  +
    > for RestJson<L>
       21455  +
{
       21456  +
    const VALUE: Operation = Operation::MalformedInteger;
       21457  +
}
       21458  +
impl<L>
       21459  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21460  +
        crate::operation_shape::MalformedList,
       21461  +
    > for RestJson<L>
       21462  +
{
       21463  +
    const VALUE: Operation = Operation::MalformedList;
       21464  +
}
       21465  +
impl<L>
       21466  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21467  +
        crate::operation_shape::MalformedLong,
       21468  +
    > for RestJson<L>
       21469  +
{
       21470  +
    const VALUE: Operation = Operation::MalformedLong;
       21471  +
}
       21472  +
impl<L>
       21473  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21474  +
        crate::operation_shape::MalformedMap,
       21475  +
    > for RestJson<L>
       21476  +
{
       21477  +
    const VALUE: Operation = Operation::MalformedMap;
       21478  +
}
       21479  +
impl<L>
       21480  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21481  +
        crate::operation_shape::MalformedRequestBody,
       21482  +
    > for RestJson<L>
       21483  +
{
       21484  +
    const VALUE: Operation = Operation::MalformedRequestBody;
       21485  +
}
       21486  +
impl<L>
       21487  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21488  +
        crate::operation_shape::MalformedShort,
       21489  +
    > for RestJson<L>
       21490  +
{
       21491  +
    const VALUE: Operation = Operation::MalformedShort;
       21492  +
}
       21493  +
impl<L>
       21494  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21495  +
        crate::operation_shape::MalformedString,
       21496  +
    > for RestJson<L>
       21497  +
{
       21498  +
    const VALUE: Operation = Operation::MalformedString;
       21499  +
}
       21500  +
impl<L>
       21501  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21502  +
        crate::operation_shape::MalformedTimestampBodyDateTime,
       21503  +
    > for RestJson<L>
       21504  +
{
       21505  +
    const VALUE: Operation = Operation::MalformedTimestampBodyDateTime;
       21506  +
}
       21507  +
impl<L>
       21508  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21509  +
        crate::operation_shape::MalformedTimestampBodyDefault,
       21510  +
    > for RestJson<L>
       21511  +
{
       21512  +
    const VALUE: Operation = Operation::MalformedTimestampBodyDefault;
       21513  +
}
       21514  +
impl<L>
       21515  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21516  +
        crate::operation_shape::MalformedTimestampBodyHttpDate,
       21517  +
    > for RestJson<L>
       21518  +
{
       21519  +
    const VALUE: Operation = Operation::MalformedTimestampBodyHttpDate;
       21520  +
}
       21521  +
impl<L>
       21522  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21523  +
        crate::operation_shape::MalformedTimestampHeaderDateTime,
       21524  +
    > for RestJson<L>
       21525  +
{
       21526  +
    const VALUE: Operation = Operation::MalformedTimestampHeaderDateTime;
       21527  +
}
       21528  +
impl<L>
       21529  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21530  +
        crate::operation_shape::MalformedTimestampHeaderDefault,
       21531  +
    > for RestJson<L>
       21532  +
{
       21533  +
    const VALUE: Operation = Operation::MalformedTimestampHeaderDefault;
       21534  +
}
       21535  +
impl<L>
       21536  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21537  +
        crate::operation_shape::MalformedTimestampHeaderEpoch,
       21538  +
    > for RestJson<L>
       21539  +
{
       21540  +
    const VALUE: Operation = Operation::MalformedTimestampHeaderEpoch;
       21541  +
}
       21542  +
impl<L>
       21543  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21544  +
        crate::operation_shape::MalformedTimestampPathDefault,
       21545  +
    > for RestJson<L>
       21546  +
{
       21547  +
    const VALUE: Operation = Operation::MalformedTimestampPathDefault;
       21548  +
}
       21549  +
impl<L>
       21550  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21551  +
        crate::operation_shape::MalformedTimestampPathEpoch,
       21552  +
    > for RestJson<L>
       21553  +
{
       21554  +
    const VALUE: Operation = Operation::MalformedTimestampPathEpoch;
       21555  +
}
       21556  +
impl<L>
       21557  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21558  +
        crate::operation_shape::MalformedTimestampPathHttpDate,
       21559  +
    > for RestJson<L>
       21560  +
{
       21561  +
    const VALUE: Operation = Operation::MalformedTimestampPathHttpDate;
       21562  +
}
       21563  +
impl<L>
       21564  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21565  +
        crate::operation_shape::MalformedTimestampQueryDefault,
       21566  +
    > for RestJson<L>
       21567  +
{
       21568  +
    const VALUE: Operation = Operation::MalformedTimestampQueryDefault;
       21569  +
}
       21570  +
impl<L>
       21571  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21572  +
        crate::operation_shape::MalformedTimestampQueryEpoch,
       21573  +
    > for RestJson<L>
       21574  +
{
       21575  +
    const VALUE: Operation = Operation::MalformedTimestampQueryEpoch;
       21576  +
}
       21577  +
impl<L>
       21578  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21579  +
        crate::operation_shape::MalformedTimestampQueryHttpDate,
       21580  +
    > for RestJson<L>
       21581  +
{
       21582  +
    const VALUE: Operation = Operation::MalformedTimestampQueryHttpDate;
       21583  +
}
       21584  +
impl<L>
       21585  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21586  +
        crate::operation_shape::MalformedUnion,
       21587  +
    > for RestJson<L>
       21588  +
{
       21589  +
    const VALUE: Operation = Operation::MalformedUnion;
       21590  +
}
       21591  +
impl<L>
       21592  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21593  +
        crate::operation_shape::MediaTypeHeader,
       21594  +
    > for RestJson<L>
       21595  +
{
       21596  +
    const VALUE: Operation = Operation::MediaTypeHeader;
       21597  +
}
       21598  +
impl<L>
       21599  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21600  +
        crate::operation_shape::NoInputAndNoOutput,
       21601  +
    > for RestJson<L>
       21602  +
{
       21603  +
    const VALUE: Operation = Operation::NoInputAndNoOutput;
       21604  +
}
       21605  +
impl<L>
       21606  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21607  +
        crate::operation_shape::NoInputAndOutput,
       21608  +
    > for RestJson<L>
       21609  +
{
       21610  +
    const VALUE: Operation = Operation::NoInputAndOutput;
       21611  +
}
       21612  +
impl<L>
       21613  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21614  +
        crate::operation_shape::NullAndEmptyHeadersClient,
       21615  +
    > for RestJson<L>
       21616  +
{
       21617  +
    const VALUE: Operation = Operation::NullAndEmptyHeadersClient;
       21618  +
}
       21619  +
impl<L>
       21620  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21621  +
        crate::operation_shape::NullAndEmptyHeadersServer,
       21622  +
    > for RestJson<L>
       21623  +
{
       21624  +
    const VALUE: Operation = Operation::NullAndEmptyHeadersServer;
       21625  +
}
       21626  +
impl<L>
       21627  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21628  +
        crate::operation_shape::OmitsNullSerializesEmptyString,
       21629  +
    > for RestJson<L>
       21630  +
{
       21631  +
    const VALUE: Operation = Operation::OmitsNullSerializesEmptyString;
       21632  +
}
       21633  +
impl<L>
       21634  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21635  +
        crate::operation_shape::OmitsSerializingEmptyLists,
       21636  +
    > for RestJson<L>
       21637  +
{
       21638  +
    const VALUE: Operation = Operation::OmitsSerializingEmptyLists;
       21639  +
}
       21640  +
impl<L>
       21641  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21642  +
        crate::operation_shape::OperationWithDefaults,
       21643  +
    > for RestJson<L>
       21644  +
{
       21645  +
    const VALUE: Operation = Operation::OperationWithDefaults;
       21646  +
}
       21647  +
impl<L>
       21648  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21649  +
        crate::operation_shape::OperationWithNestedStructure,
       21650  +
    > for RestJson<L>
       21651  +
{
       21652  +
    const VALUE: Operation = Operation::OperationWithNestedStructure;
       21653  +
}
       21654  +
impl<L>
       21655  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21656  +
        crate::operation_shape::PostPlayerAction,
       21657  +
    > for RestJson<L>
       21658  +
{
       21659  +
    const VALUE: Operation = Operation::PostPlayerAction;
       21660  +
}
       21661  +
impl<L>
       21662  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21663  +
        crate::operation_shape::PostUnionWithJsonName,
       21664  +
    > for RestJson<L>
       21665  +
{
       21666  +
    const VALUE: Operation = Operation::PostUnionWithJsonName;
       21667  +
}
       21668  +
impl<L>
       21669  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21670  +
        crate::operation_shape::PutWithContentEncoding,
       21671  +
    > for RestJson<L>
       21672  +
{
       21673  +
    const VALUE: Operation = Operation::PutWithContentEncoding;
       21674  +
}
       21675  +
impl<L>
       21676  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21677  +
        crate::operation_shape::QueryIdempotencyTokenAutoFill,
       21678  +
    > for RestJson<L>
       21679  +
{
       21680  +
    const VALUE: Operation = Operation::QueryIdempotencyTokenAutoFill;
       21681  +
}
       21682  +
impl<L>
       21683  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21684  +
        crate::operation_shape::QueryParamsAsStringListMap,
       21685  +
    > for RestJson<L>
       21686  +
{
       21687  +
    const VALUE: Operation = Operation::QueryParamsAsStringListMap;
       21688  +
}
       21689  +
impl<L>
       21690  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21691  +
        crate::operation_shape::QueryPrecedence,
       21692  +
    > for RestJson<L>
       21693  +
{
       21694  +
    const VALUE: Operation = Operation::QueryPrecedence;
       21695  +
}
       21696  +
impl<L>
       21697  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21698  +
        crate::operation_shape::RecursiveShapes,
       21699  +
    > for RestJson<L>
       21700  +
{
       21701  +
    const VALUE: Operation = Operation::RecursiveShapes;
       21702  +
}
       21703  +
impl<L>
       21704  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21705  +
        crate::operation_shape::ResponseCodeHttpFallback,
       21706  +
    > for RestJson<L>
       21707  +
{
       21708  +
    const VALUE: Operation = Operation::ResponseCodeHttpFallback;
       21709  +
}
       21710  +
impl<L>
       21711  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21712  +
        crate::operation_shape::ResponseCodeRequired,
       21713  +
    > for RestJson<L>
       21714  +
{
       21715  +
    const VALUE: Operation = Operation::ResponseCodeRequired;
       21716  +
}
       21717  +
impl<L>
       21718  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21719  +
        crate::operation_shape::SimpleScalarProperties,
       21720  +
    > for RestJson<L>
       21721  +
{
       21722  +
    const VALUE: Operation = Operation::SimpleScalarProperties;
       21723  +
}
       21724  +
impl<L>
       21725  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21726  +
        crate::operation_shape::SparseJsonLists,
       21727  +
    > for RestJson<L>
       21728  +
{
       21729  +
    const VALUE: Operation = Operation::SparseJsonLists;
       21730  +
}
       21731  +
impl<L>
       21732  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21733  +
        crate::operation_shape::SparseJsonMaps,
       21734  +
    > for RestJson<L>
       21735  +
{
       21736  +
    const VALUE: Operation = Operation::SparseJsonMaps;
       21737  +
}
       21738  +
impl<L>
       21739  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21740  +
        crate::operation_shape::StreamingTraits,
       21741  +
    > for RestJson<L>
       21742  +
{
       21743  +
    const VALUE: Operation = Operation::StreamingTraits;
       21744  +
}
       21745  +
impl<L>
       21746  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21747  +
        crate::operation_shape::StreamingTraitsRequireLength,
       21748  +
    > for RestJson<L>
       21749  +
{
       21750  +
    const VALUE: Operation = Operation::StreamingTraitsRequireLength;
       21751  +
}
       21752  +
impl<L>
       21753  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21754  +
        crate::operation_shape::StreamingTraitsWithMediaType,
       21755  +
    > for RestJson<L>
       21756  +
{
       21757  +
    const VALUE: Operation = Operation::StreamingTraitsWithMediaType;
       21758  +
}
       21759  +
impl<L>
       21760  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21761  +
        crate::operation_shape::TestBodyStructure,
       21762  +
    > for RestJson<L>
       21763  +
{
       21764  +
    const VALUE: Operation = Operation::TestBodyStructure;
       21765  +
}
       21766  +
impl<L>
       21767  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21768  +
        crate::operation_shape::TestGetNoInputNoPayload,
       21769  +
    > for RestJson<L>
       21770  +
{
       21771  +
    const VALUE: Operation = Operation::TestGetNoInputNoPayload;
       21772  +
}
       21773  +
impl<L>
       21774  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21775  +
        crate::operation_shape::TestGetNoPayload,
       21776  +
    > for RestJson<L>
       21777  +
{
       21778  +
    const VALUE: Operation = Operation::TestGetNoPayload;
       21779  +
}
       21780  +
impl<L>
       21781  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21782  +
        crate::operation_shape::TestPayloadBlob,
       21783  +
    > for RestJson<L>
       21784  +
{
       21785  +
    const VALUE: Operation = Operation::TestPayloadBlob;
       21786  +
}
       21787  +
impl<L>
       21788  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21789  +
        crate::operation_shape::TestPayloadStructure,
       21790  +
    > for RestJson<L>
       21791  +
{
       21792  +
    const VALUE: Operation = Operation::TestPayloadStructure;
       21793  +
}
       21794  +
impl<L>
       21795  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21796  +
        crate::operation_shape::TestPostNoInputNoPayload,
       21797  +
    > for RestJson<L>
       21798  +
{
       21799  +
    const VALUE: Operation = Operation::TestPostNoInputNoPayload;
       21800  +
}
       21801  +
impl<L>
       21802  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21803  +
        crate::operation_shape::TestPostNoPayload,
       21804  +
    > for RestJson<L>
       21805  +
{
       21806  +
    const VALUE: Operation = Operation::TestPostNoPayload;
       21807  +
}
       21808  +
impl<L>
       21809  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21810  +
        crate::operation_shape::TimestampFormatHeaders,
       21811  +
    > for RestJson<L>
       21812  +
{
       21813  +
    const VALUE: Operation = Operation::TimestampFormatHeaders;
       21814  +
}
       21815  +
impl<L>
       21816  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
       21817  +
        crate::operation_shape::UnitInputAndOutput,
       21818  +
    > for RestJson<L>
       21819  +
{
       21820  +
    const VALUE: Operation = Operation::UnitInputAndOutput;
       21821  +
}
       21822  +
       21823  +
impl<S> ::aws_smithy_legacy_http_server::service::ServiceShape for RestJson<S> {
       21824  +
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
       21825  +
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
       21826  +
            "aws.protocoltests.restjson#RestJson",
       21827  +
            "aws.protocoltests.restjson",
       21828  +
            "RestJson",
       21829  +
        );
       21830  +
       21831  +
    const VERSION: Option<&'static str> = Some("2019-12-16");
       21832  +
       21833  +
    type Protocol = ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1;
       21834  +
       21835  +
    type Operations = Operation;
       21836  +
}
       21837  +
/* ServiceConfigGenerator.kt:178 */
       21838  +
/// Configuration for the [`RestJson`]. This is the central place where to register and
       21839  +
/// configure [`::tower::Layer`]s, HTTP plugins, and model plugins.
       21840  +
///
       21841  +
/// ```rust,no_run
       21842  +
/// # use rest_json_http0x::RestJsonConfig;
       21843  +
/// # use ::aws_smithy_legacy_http_server::plugin::IdentityPlugin;
       21844  +
/// # use ::tower::layer::util::Identity;
       21845  +
/// # let authentication_plugin = IdentityPlugin;
       21846  +
/// # let authorization_plugin = IdentityPlugin;
       21847  +
/// # let server_request_id_provider_layer = Identity::new();
       21848  +
/// let config = RestJsonConfig::builder()
       21849  +
///     // Layers get executed first...
       21850  +
///     .layer(server_request_id_provider_layer)
       21851  +
///     // ...then HTTP plugins...
       21852  +
///     .http_plugin(authentication_plugin)
       21853  +
///     // ...and right after deserialization, model plugins.
       21854  +
///     .model_plugin(authorization_plugin)
       21855  +
///     .build();
       21856  +
/// ```
       21857  +
///
       21858  +
/// See the [`plugin`] system for details.
       21859  +
///
       21860  +
/// [`plugin`]: ::aws_smithy_legacy_http_server::plugin
       21861  +
#[derive(::std::fmt::Debug)]
       21862  +
pub struct RestJsonConfig<L, H, M> {
       21863  +
    layers: L,
       21864  +
    http_plugins: H,
       21865  +
    model_plugins: M,
       21866  +
}
       21867  +
       21868  +
impl RestJsonConfig<(), (), ()> {
       21869  +
    /// Returns a builder to construct the configuration.
       21870  +
    pub fn builder() -> RestJsonConfigBuilder<
       21871  +
        ::tower::layer::util::Identity,
       21872  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
       21873  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
       21874  +
    > {
       21875  +
        RestJsonConfigBuilder {
       21876  +
            layers: ::tower::layer::util::Identity::new(),
       21877  +
            http_plugins: ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
       21878  +
            model_plugins: ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
       21879  +
        }
       21880  +
    }
       21881  +
}
       21882  +
       21883  +
/// Builder returned by [`RestJsonConfig::builder()`].
       21884  +
#[derive(::std::fmt::Debug)]
       21885  +
pub struct RestJsonConfigBuilder<L, H, M> {
       21886  +
    pub(crate) layers: L,
       21887  +
    pub(crate) http_plugins: H,
       21888  +
    pub(crate) model_plugins: M,
       21889  +
}
       21890  +
       21891  +
impl<L, H, M> RestJsonConfigBuilder<L, H, M> {
       21892  +
    /// Add a [`::tower::Layer`] to the service.
       21893  +
    pub fn layer<NewLayer>(
       21894  +
        self,
       21895  +
        layer: NewLayer,
       21896  +
    ) -> RestJsonConfigBuilder<::tower::layer::util::Stack<NewLayer, L>, H, M> {
       21897  +
        RestJsonConfigBuilder {
       21898  +
            layers: ::tower::layer::util::Stack::new(layer, self.layers),
       21899  +
            http_plugins: self.http_plugins,
       21900  +
            model_plugins: self.model_plugins,
       21901  +
        }
       21902  +
    }
       21903  +
       21904  +
    /// Add a HTTP [plugin] to the service.
       21905  +
    ///
       21906  +
    /// [plugin]: ::aws_smithy_legacy_http_server::plugin
       21907  +
    // We eagerly require `NewPlugin: HttpMarker`, despite not really needing it, because compiler
       21908  +
    // errors get _substantially_ better if the user makes a mistake.
       21909  +
    pub fn http_plugin<NewPlugin: ::aws_smithy_legacy_http_server::plugin::HttpMarker>(
       21910  +
        self,
       21911  +
        http_plugin: NewPlugin,
       21912  +
    ) -> RestJsonConfigBuilder<
       21913  +
        L,
       21914  +
        ::aws_smithy_legacy_http_server::plugin::PluginStack<NewPlugin, H>,
       21915  +
        M,
       21916  +
    > {
       21917  +
        RestJsonConfigBuilder {
       21918  +
            layers: self.layers,
       21919  +
            http_plugins: ::aws_smithy_legacy_http_server::plugin::PluginStack::new(
       21920  +
                http_plugin,
       21921  +
                self.http_plugins,
       21922  +
            ),
       21923  +
            model_plugins: self.model_plugins,
       21924  +
        }
       21925  +
    }
       21926  +
       21927  +
    /// Add a model [plugin] to the service.
       21928  +
    ///
       21929  +
    /// [plugin]: ::aws_smithy_legacy_http_server::plugin
       21930  +
    // We eagerly require `NewPlugin: ModelMarker`, despite not really needing it, because compiler
       21931  +
    // errors get _substantially_ better if the user makes a mistake.
       21932  +
    pub fn model_plugin<NewPlugin: ::aws_smithy_legacy_http_server::plugin::ModelMarker>(
       21933  +
        self,
       21934  +
        model_plugin: NewPlugin,
       21935  +
    ) -> RestJsonConfigBuilder<
       21936  +
        L,
       21937  +
        H,
       21938  +
        ::aws_smithy_legacy_http_server::plugin::PluginStack<NewPlugin, M>,
       21939  +
    > {
       21940  +
        RestJsonConfigBuilder {
       21941  +
            layers: self.layers,
       21942  +
            http_plugins: self.http_plugins,
       21943  +
            model_plugins: ::aws_smithy_legacy_http_server::plugin::PluginStack::new(
       21944  +
                model_plugin,
       21945  +
                self.model_plugins,
       21946  +
            ),
       21947  +
        }
       21948  +
    }
       21949  +
       21950  +
    /// Build the configuration.
       21951  +
    pub fn build(self) -> super::RestJsonConfig<L, H, M> {
       21952  +
        super::RestJsonConfig {
       21953  +
            layers: self.layers,
       21954  +
            http_plugins: self.http_plugins,
       21955  +
            model_plugins: self.model_plugins,
       21956  +
        }
       21957  +
    }
       21958  +
}
       21959  +
/* ScopeMacroGenerator.kt:81 */
       21960  +
/// A macro to help with scoping [plugins](crate::server::plugin) to a subset of all operations.
       21961  +
///
       21962  +
/// In contrast to [`crate::server::scope`](crate::server::scope), this macro has knowledge
       21963  +
/// of the service and any operations _not_ specified will be placed in the opposing group.
       21964  +
///
       21965  +
/// # Example
       21966  +
///
       21967  +
/// ```rust
       21968  +
/// scope! {
       21969  +
///     /// Includes [`AllQueryStringTypes`], excluding all other operations.
       21970  +
///     struct ScopeA {
       21971  +
///         includes: [AllQueryStringTypes]
       21972  +
///     }
       21973  +
/// }
       21974  +
///
       21975  +
/// scope! {
       21976  +
///     /// Excludes [`AllQueryStringTypes`], excluding all other operations.
       21977  +
///     struct ScopeB {
       21978  +
///         excludes: [AllQueryStringTypes]
       21979  +
///     }
       21980  +
/// }
       21981  +
///
       21982  +
/// # use rest_json_http0x::server::plugin::{Plugin, Scoped};
       21983  +
/// # use rest_json_http0x::scope;
       21984  +
/// # struct MockPlugin;
       21985  +
/// # impl<S, Op, T> Plugin<S, Op, T> for MockPlugin { type Output = u32; fn apply(&self, input: T) -> u32 { 3 } }
       21986  +
/// # let scoped_a = Scoped::new::<ScopeA>(MockPlugin);
       21987  +
/// # let scoped_b = Scoped::new::<ScopeB>(MockPlugin);
       21988  +
/// # let a = Plugin::<(), rest_json_http0x::operation_shape::AllQueryStringTypes, u64>::apply(&scoped_a, 6);
       21989  +
/// # let b = Plugin::<(), rest_json_http0x::operation_shape::AllQueryStringTypes, u64>::apply(&scoped_b, 6);
       21990  +
/// # assert_eq!(a, 3_u32);
       21991  +
/// # assert_eq!(b, 6_u64);
       21992  +
/// ```
       21993  +
#[macro_export]
       21994  +
macro_rules! scope {
       21995  +
                    // Completed, render impls
       21996  +
                    (@ $ name: ident, $ contains: ident () ($($ temp: ident)*) ($($ not_member: ident)*)) => {
       21997  +
                        $(
       21998  +
                            impl $ crate::server::plugin::scoped::Membership<$ temp> for $ name {
       21999  +
                                type Contains = $ crate::server::plugin::scoped::$ contains;
       22000  +
                            }
       22001  +
                        )*
       22002  +
                        $(
       22003  +
                            impl $ crate::server::plugin::scoped::Membership<$ not_member> for $ name {
       22004  +
                                type Contains = $ crate::server::plugin::scoped::$ contains;
       22005  +
                            }
       22006  +
                        )*
       22007  +
                    };
       22008  +
                    // All `not_member`s exhausted, move `temp` into `not_member`
       22009  +
                    (@ $ name: ident, $ contains: ident ($($ member: ident)*) ($($ temp: ident)*) ()) => {
       22010  +
                        scope! { @ $ name, $ contains ($($ member)*) () ($($ temp)*) }
       22011  +
                    };
       22012  +
       22013  +
                        // AllQueryStringTypes match found, pop from both `member` and `not_member`
       22014  +
                        (@ $ name: ident, $ contains: ident (AllQueryStringTypes $($ member: ident)*) ($($ temp: ident)*) (AllQueryStringTypes $($ not_member: ident)*)) => {
       22015  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22016  +
                        };
       22017  +
                        // AllQueryStringTypes match not found, pop from `not_member` into `temp` stack
       22018  +
                        (@ $ name: ident, $ contains: ident (AllQueryStringTypes $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22019  +
                            scope! { @ $ name, $ contains (AllQueryStringTypes $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22020  +
                        };
       22021  +
       22022  +
                        // ConstantAndVariableQueryString match found, pop from both `member` and `not_member`
       22023  +
                        (@ $ name: ident, $ contains: ident (ConstantAndVariableQueryString $($ member: ident)*) ($($ temp: ident)*) (ConstantAndVariableQueryString $($ not_member: ident)*)) => {
       22024  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22025  +
                        };
       22026  +
                        // ConstantAndVariableQueryString match not found, pop from `not_member` into `temp` stack
       22027  +
                        (@ $ name: ident, $ contains: ident (ConstantAndVariableQueryString $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22028  +
                            scope! { @ $ name, $ contains (ConstantAndVariableQueryString $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22029  +
                        };
       22030  +
       22031  +
                        // ConstantQueryString match found, pop from both `member` and `not_member`
       22032  +
                        (@ $ name: ident, $ contains: ident (ConstantQueryString $($ member: ident)*) ($($ temp: ident)*) (ConstantQueryString $($ not_member: ident)*)) => {
       22033  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22034  +
                        };
       22035  +
                        // ConstantQueryString match not found, pop from `not_member` into `temp` stack
       22036  +
                        (@ $ name: ident, $ contains: ident (ConstantQueryString $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22037  +
                            scope! { @ $ name, $ contains (ConstantQueryString $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22038  +
                        };
       22039  +
       22040  +
                        // ContentTypeParameters match found, pop from both `member` and `not_member`
       22041  +
                        (@ $ name: ident, $ contains: ident (ContentTypeParameters $($ member: ident)*) ($($ temp: ident)*) (ContentTypeParameters $($ not_member: ident)*)) => {
       22042  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22043  +
                        };
       22044  +
                        // ContentTypeParameters match not found, pop from `not_member` into `temp` stack
       22045  +
                        (@ $ name: ident, $ contains: ident (ContentTypeParameters $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22046  +
                            scope! { @ $ name, $ contains (ContentTypeParameters $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22047  +
                        };
       22048  +
       22049  +
                        // DatetimeOffsets match found, pop from both `member` and `not_member`
       22050  +
                        (@ $ name: ident, $ contains: ident (DatetimeOffsets $($ member: ident)*) ($($ temp: ident)*) (DatetimeOffsets $($ not_member: ident)*)) => {
       22051  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22052  +
                        };
       22053  +
                        // DatetimeOffsets match not found, pop from `not_member` into `temp` stack
       22054  +
                        (@ $ name: ident, $ contains: ident (DatetimeOffsets $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22055  +
                            scope! { @ $ name, $ contains (DatetimeOffsets $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22056  +
                        };
       22057  +
       22058  +
                        // DocumentType match found, pop from both `member` and `not_member`
       22059  +
                        (@ $ name: ident, $ contains: ident (DocumentType $($ member: ident)*) ($($ temp: ident)*) (DocumentType $($ not_member: ident)*)) => {
       22060  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22061  +
                        };
       22062  +
                        // DocumentType match not found, pop from `not_member` into `temp` stack
       22063  +
                        (@ $ name: ident, $ contains: ident (DocumentType $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22064  +
                            scope! { @ $ name, $ contains (DocumentType $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22065  +
                        };
       22066  +
       22067  +
                        // DocumentTypeAsMapValue match found, pop from both `member` and `not_member`
       22068  +
                        (@ $ name: ident, $ contains: ident (DocumentTypeAsMapValue $($ member: ident)*) ($($ temp: ident)*) (DocumentTypeAsMapValue $($ not_member: ident)*)) => {
       22069  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22070  +
                        };
       22071  +
                        // DocumentTypeAsMapValue match not found, pop from `not_member` into `temp` stack
       22072  +
                        (@ $ name: ident, $ contains: ident (DocumentTypeAsMapValue $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22073  +
                            scope! { @ $ name, $ contains (DocumentTypeAsMapValue $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22074  +
                        };
       22075  +
       22076  +
                        // DocumentTypeAsPayload match found, pop from both `member` and `not_member`
       22077  +
                        (@ $ name: ident, $ contains: ident (DocumentTypeAsPayload $($ member: ident)*) ($($ temp: ident)*) (DocumentTypeAsPayload $($ not_member: ident)*)) => {
       22078  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22079  +
                        };
       22080  +
                        // DocumentTypeAsPayload match not found, pop from `not_member` into `temp` stack
       22081  +
                        (@ $ name: ident, $ contains: ident (DocumentTypeAsPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22082  +
                            scope! { @ $ name, $ contains (DocumentTypeAsPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22083  +
                        };
       22084  +
       22085  +
                        // EmptyInputAndEmptyOutput match found, pop from both `member` and `not_member`
       22086  +
                        (@ $ name: ident, $ contains: ident (EmptyInputAndEmptyOutput $($ member: ident)*) ($($ temp: ident)*) (EmptyInputAndEmptyOutput $($ not_member: ident)*)) => {
       22087  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22088  +
                        };
       22089  +
                        // EmptyInputAndEmptyOutput match not found, pop from `not_member` into `temp` stack
       22090  +
                        (@ $ name: ident, $ contains: ident (EmptyInputAndEmptyOutput $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22091  +
                            scope! { @ $ name, $ contains (EmptyInputAndEmptyOutput $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22092  +
                        };
       22093  +
       22094  +
                        // EndpointOperation match found, pop from both `member` and `not_member`
       22095  +
                        (@ $ name: ident, $ contains: ident (EndpointOperation $($ member: ident)*) ($($ temp: ident)*) (EndpointOperation $($ not_member: ident)*)) => {
       22096  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22097  +
                        };
       22098  +
                        // EndpointOperation match not found, pop from `not_member` into `temp` stack
       22099  +
                        (@ $ name: ident, $ contains: ident (EndpointOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22100  +
                            scope! { @ $ name, $ contains (EndpointOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22101  +
                        };
       22102  +
       22103  +
                        // EndpointWithHostLabelOperation match found, pop from both `member` and `not_member`
       22104  +
                        (@ $ name: ident, $ contains: ident (EndpointWithHostLabelOperation $($ member: ident)*) ($($ temp: ident)*) (EndpointWithHostLabelOperation $($ not_member: ident)*)) => {
       22105  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22106  +
                        };
       22107  +
                        // EndpointWithHostLabelOperation match not found, pop from `not_member` into `temp` stack
       22108  +
                        (@ $ name: ident, $ contains: ident (EndpointWithHostLabelOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22109  +
                            scope! { @ $ name, $ contains (EndpointWithHostLabelOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22110  +
                        };
       22111  +
       22112  +
                        // FractionalSeconds match found, pop from both `member` and `not_member`
       22113  +
                        (@ $ name: ident, $ contains: ident (FractionalSeconds $($ member: ident)*) ($($ temp: ident)*) (FractionalSeconds $($ not_member: ident)*)) => {
       22114  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22115  +
                        };
       22116  +
                        // FractionalSeconds match not found, pop from `not_member` into `temp` stack
       22117  +
                        (@ $ name: ident, $ contains: ident (FractionalSeconds $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22118  +
                            scope! { @ $ name, $ contains (FractionalSeconds $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22119  +
                        };
       22120  +
       22121  +
                        // GreetingWithErrors match found, pop from both `member` and `not_member`
       22122  +
                        (@ $ name: ident, $ contains: ident (GreetingWithErrors $($ member: ident)*) ($($ temp: ident)*) (GreetingWithErrors $($ not_member: ident)*)) => {
       22123  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22124  +
                        };
       22125  +
                        // GreetingWithErrors match not found, pop from `not_member` into `temp` stack
       22126  +
                        (@ $ name: ident, $ contains: ident (GreetingWithErrors $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22127  +
                            scope! { @ $ name, $ contains (GreetingWithErrors $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22128  +
                        };
       22129  +
       22130  +
                        // HostWithPathOperation match found, pop from both `member` and `not_member`
       22131  +
                        (@ $ name: ident, $ contains: ident (HostWithPathOperation $($ member: ident)*) ($($ temp: ident)*) (HostWithPathOperation $($ not_member: ident)*)) => {
       22132  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22133  +
                        };
       22134  +
                        // HostWithPathOperation match not found, pop from `not_member` into `temp` stack
       22135  +
                        (@ $ name: ident, $ contains: ident (HostWithPathOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22136  +
                            scope! { @ $ name, $ contains (HostWithPathOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22137  +
                        };
       22138  +
       22139  +
                        // HttpChecksumRequired match found, pop from both `member` and `not_member`
       22140  +
                        (@ $ name: ident, $ contains: ident (HttpChecksumRequired $($ member: ident)*) ($($ temp: ident)*) (HttpChecksumRequired $($ not_member: ident)*)) => {
       22141  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22142  +
                        };
       22143  +
                        // HttpChecksumRequired match not found, pop from `not_member` into `temp` stack
       22144  +
                        (@ $ name: ident, $ contains: ident (HttpChecksumRequired $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22145  +
                            scope! { @ $ name, $ contains (HttpChecksumRequired $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22146  +
                        };
       22147  +
       22148  +
                        // HttpEmptyPrefixHeaders match found, pop from both `member` and `not_member`
       22149  +
                        (@ $ name: ident, $ contains: ident (HttpEmptyPrefixHeaders $($ member: ident)*) ($($ temp: ident)*) (HttpEmptyPrefixHeaders $($ not_member: ident)*)) => {
       22150  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22151  +
                        };
       22152  +
                        // HttpEmptyPrefixHeaders match not found, pop from `not_member` into `temp` stack
       22153  +
                        (@ $ name: ident, $ contains: ident (HttpEmptyPrefixHeaders $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22154  +
                            scope! { @ $ name, $ contains (HttpEmptyPrefixHeaders $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22155  +
                        };
       22156  +
       22157  +
                        // HttpEnumPayload match found, pop from both `member` and `not_member`
       22158  +
                        (@ $ name: ident, $ contains: ident (HttpEnumPayload $($ member: ident)*) ($($ temp: ident)*) (HttpEnumPayload $($ not_member: ident)*)) => {
       22159  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22160  +
                        };
       22161  +
                        // HttpEnumPayload match not found, pop from `not_member` into `temp` stack
       22162  +
                        (@ $ name: ident, $ contains: ident (HttpEnumPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22163  +
                            scope! { @ $ name, $ contains (HttpEnumPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22164  +
                        };
       22165  +
       22166  +
                        // HttpPayloadTraits match found, pop from both `member` and `not_member`
       22167  +
                        (@ $ name: ident, $ contains: ident (HttpPayloadTraits $($ member: ident)*) ($($ temp: ident)*) (HttpPayloadTraits $($ not_member: ident)*)) => {
       22168  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22169  +
                        };
       22170  +
                        // HttpPayloadTraits match not found, pop from `not_member` into `temp` stack
       22171  +
                        (@ $ name: ident, $ contains: ident (HttpPayloadTraits $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22172  +
                            scope! { @ $ name, $ contains (HttpPayloadTraits $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22173  +
                        };
       22174  +
       22175  +
                        // HttpPayloadTraitsWithMediaType match found, pop from both `member` and `not_member`
       22176  +
                        (@ $ name: ident, $ contains: ident (HttpPayloadTraitsWithMediaType $($ member: ident)*) ($($ temp: ident)*) (HttpPayloadTraitsWithMediaType $($ not_member: ident)*)) => {
       22177  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22178  +
                        };
       22179  +
                        // HttpPayloadTraitsWithMediaType match not found, pop from `not_member` into `temp` stack
       22180  +
                        (@ $ name: ident, $ contains: ident (HttpPayloadTraitsWithMediaType $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22181  +
                            scope! { @ $ name, $ contains (HttpPayloadTraitsWithMediaType $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22182  +
                        };
       22183  +
       22184  +
                        // HttpPayloadWithStructure match found, pop from both `member` and `not_member`
       22185  +
                        (@ $ name: ident, $ contains: ident (HttpPayloadWithStructure $($ member: ident)*) ($($ temp: ident)*) (HttpPayloadWithStructure $($ not_member: ident)*)) => {
       22186  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22187  +
                        };
       22188  +
                        // HttpPayloadWithStructure match not found, pop from `not_member` into `temp` stack
       22189  +
                        (@ $ name: ident, $ contains: ident (HttpPayloadWithStructure $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22190  +
                            scope! { @ $ name, $ contains (HttpPayloadWithStructure $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22191  +
                        };
       22192  +
       22193  +
                        // HttpPayloadWithUnion match found, pop from both `member` and `not_member`
       22194  +
                        (@ $ name: ident, $ contains: ident (HttpPayloadWithUnion $($ member: ident)*) ($($ temp: ident)*) (HttpPayloadWithUnion $($ not_member: ident)*)) => {
       22195  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22196  +
                        };
       22197  +
                        // HttpPayloadWithUnion match not found, pop from `not_member` into `temp` stack
       22198  +
                        (@ $ name: ident, $ contains: ident (HttpPayloadWithUnion $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22199  +
                            scope! { @ $ name, $ contains (HttpPayloadWithUnion $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22200  +
                        };
       22201  +
       22202  +
                        // HttpPrefixHeaders match found, pop from both `member` and `not_member`
       22203  +
                        (@ $ name: ident, $ contains: ident (HttpPrefixHeaders $($ member: ident)*) ($($ temp: ident)*) (HttpPrefixHeaders $($ not_member: ident)*)) => {
       22204  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22205  +
                        };
       22206  +
                        // HttpPrefixHeaders match not found, pop from `not_member` into `temp` stack
       22207  +
                        (@ $ name: ident, $ contains: ident (HttpPrefixHeaders $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22208  +
                            scope! { @ $ name, $ contains (HttpPrefixHeaders $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22209  +
                        };
       22210  +
       22211  +
                        // HttpPrefixHeadersInResponse match found, pop from both `member` and `not_member`
       22212  +
                        (@ $ name: ident, $ contains: ident (HttpPrefixHeadersInResponse $($ member: ident)*) ($($ temp: ident)*) (HttpPrefixHeadersInResponse $($ not_member: ident)*)) => {
       22213  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22214  +
                        };
       22215  +
                        // HttpPrefixHeadersInResponse match not found, pop from `not_member` into `temp` stack
       22216  +
                        (@ $ name: ident, $ contains: ident (HttpPrefixHeadersInResponse $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22217  +
                            scope! { @ $ name, $ contains (HttpPrefixHeadersInResponse $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22218  +
                        };
       22219  +
       22220  +
                        // HttpRequestWithFloatLabels match found, pop from both `member` and `not_member`
       22221  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithFloatLabels $($ member: ident)*) ($($ temp: ident)*) (HttpRequestWithFloatLabels $($ not_member: ident)*)) => {
       22222  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22223  +
                        };
       22224  +
                        // HttpRequestWithFloatLabels match not found, pop from `not_member` into `temp` stack
       22225  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithFloatLabels $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22226  +
                            scope! { @ $ name, $ contains (HttpRequestWithFloatLabels $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22227  +
                        };
       22228  +
       22229  +
                        // HttpRequestWithGreedyLabelInPath match found, pop from both `member` and `not_member`
       22230  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithGreedyLabelInPath $($ member: ident)*) ($($ temp: ident)*) (HttpRequestWithGreedyLabelInPath $($ not_member: ident)*)) => {
       22231  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22232  +
                        };
       22233  +
                        // HttpRequestWithGreedyLabelInPath match not found, pop from `not_member` into `temp` stack
       22234  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithGreedyLabelInPath $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22235  +
                            scope! { @ $ name, $ contains (HttpRequestWithGreedyLabelInPath $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22236  +
                        };
       22237  +
       22238  +
                        // HttpRequestWithLabels match found, pop from both `member` and `not_member`
       22239  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithLabels $($ member: ident)*) ($($ temp: ident)*) (HttpRequestWithLabels $($ not_member: ident)*)) => {
       22240  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22241  +
                        };
       22242  +
                        // HttpRequestWithLabels match not found, pop from `not_member` into `temp` stack
       22243  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithLabels $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22244  +
                            scope! { @ $ name, $ contains (HttpRequestWithLabels $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22245  +
                        };
       22246  +
       22247  +
                        // HttpRequestWithLabelsAndTimestampFormat match found, pop from both `member` and `not_member`
       22248  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithLabelsAndTimestampFormat $($ member: ident)*) ($($ temp: ident)*) (HttpRequestWithLabelsAndTimestampFormat $($ not_member: ident)*)) => {
       22249  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22250  +
                        };
       22251  +
                        // HttpRequestWithLabelsAndTimestampFormat match not found, pop from `not_member` into `temp` stack
       22252  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithLabelsAndTimestampFormat $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22253  +
                            scope! { @ $ name, $ contains (HttpRequestWithLabelsAndTimestampFormat $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22254  +
                        };
       22255  +
       22256  +
                        // HttpRequestWithRegexLiteral match found, pop from both `member` and `not_member`
       22257  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithRegexLiteral $($ member: ident)*) ($($ temp: ident)*) (HttpRequestWithRegexLiteral $($ not_member: ident)*)) => {
       22258  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22259  +
                        };
       22260  +
                        // HttpRequestWithRegexLiteral match not found, pop from `not_member` into `temp` stack
       22261  +
                        (@ $ name: ident, $ contains: ident (HttpRequestWithRegexLiteral $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22262  +
                            scope! { @ $ name, $ contains (HttpRequestWithRegexLiteral $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22263  +
                        };
       22264  +
       22265  +
                        // HttpResponseCode match found, pop from both `member` and `not_member`
       22266  +
                        (@ $ name: ident, $ contains: ident (HttpResponseCode $($ member: ident)*) ($($ temp: ident)*) (HttpResponseCode $($ not_member: ident)*)) => {
       22267  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22268  +
                        };
       22269  +
                        // HttpResponseCode match not found, pop from `not_member` into `temp` stack
       22270  +
                        (@ $ name: ident, $ contains: ident (HttpResponseCode $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22271  +
                            scope! { @ $ name, $ contains (HttpResponseCode $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22272  +
                        };
       22273  +
       22274  +
                        // HttpStringPayload match found, pop from both `member` and `not_member`
       22275  +
                        (@ $ name: ident, $ contains: ident (HttpStringPayload $($ member: ident)*) ($($ temp: ident)*) (HttpStringPayload $($ not_member: ident)*)) => {
       22276  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22277  +
                        };
       22278  +
                        // HttpStringPayload match not found, pop from `not_member` into `temp` stack
       22279  +
                        (@ $ name: ident, $ contains: ident (HttpStringPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22280  +
                            scope! { @ $ name, $ contains (HttpStringPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22281  +
                        };
       22282  +
       22283  +
                        // IgnoreQueryParamsInResponse match found, pop from both `member` and `not_member`
       22284  +
                        (@ $ name: ident, $ contains: ident (IgnoreQueryParamsInResponse $($ member: ident)*) ($($ temp: ident)*) (IgnoreQueryParamsInResponse $($ not_member: ident)*)) => {
       22285  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22286  +
                        };
       22287  +
                        // IgnoreQueryParamsInResponse match not found, pop from `not_member` into `temp` stack
       22288  +
                        (@ $ name: ident, $ contains: ident (IgnoreQueryParamsInResponse $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22289  +
                            scope! { @ $ name, $ contains (IgnoreQueryParamsInResponse $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22290  +
                        };
       22291  +
       22292  +
                        // InputAndOutputWithHeaders match found, pop from both `member` and `not_member`
       22293  +
                        (@ $ name: ident, $ contains: ident (InputAndOutputWithHeaders $($ member: ident)*) ($($ temp: ident)*) (InputAndOutputWithHeaders $($ not_member: ident)*)) => {
       22294  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22295  +
                        };
       22296  +
                        // InputAndOutputWithHeaders match not found, pop from `not_member` into `temp` stack
       22297  +
                        (@ $ name: ident, $ contains: ident (InputAndOutputWithHeaders $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22298  +
                            scope! { @ $ name, $ contains (InputAndOutputWithHeaders $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22299  +
                        };
       22300  +
       22301  +
                        // JsonBlobs match found, pop from both `member` and `not_member`
       22302  +
                        (@ $ name: ident, $ contains: ident (JsonBlobs $($ member: ident)*) ($($ temp: ident)*) (JsonBlobs $($ not_member: ident)*)) => {
       22303  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22304  +
                        };
       22305  +
                        // JsonBlobs match not found, pop from `not_member` into `temp` stack
       22306  +
                        (@ $ name: ident, $ contains: ident (JsonBlobs $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22307  +
                            scope! { @ $ name, $ contains (JsonBlobs $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22308  +
                        };
       22309  +
       22310  +
                        // JsonEnums match found, pop from both `member` and `not_member`
       22311  +
                        (@ $ name: ident, $ contains: ident (JsonEnums $($ member: ident)*) ($($ temp: ident)*) (JsonEnums $($ not_member: ident)*)) => {
       22312  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22313  +
                        };
       22314  +
                        // JsonEnums match not found, pop from `not_member` into `temp` stack
       22315  +
                        (@ $ name: ident, $ contains: ident (JsonEnums $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22316  +
                            scope! { @ $ name, $ contains (JsonEnums $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22317  +
                        };
       22318  +
       22319  +
                        // JsonIntEnums match found, pop from both `member` and `not_member`
       22320  +
                        (@ $ name: ident, $ contains: ident (JsonIntEnums $($ member: ident)*) ($($ temp: ident)*) (JsonIntEnums $($ not_member: ident)*)) => {
       22321  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22322  +
                        };
       22323  +
                        // JsonIntEnums match not found, pop from `not_member` into `temp` stack
       22324  +
                        (@ $ name: ident, $ contains: ident (JsonIntEnums $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22325  +
                            scope! { @ $ name, $ contains (JsonIntEnums $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22326  +
                        };
       22327  +
       22328  +
                        // JsonLists match found, pop from both `member` and `not_member`
       22329  +
                        (@ $ name: ident, $ contains: ident (JsonLists $($ member: ident)*) ($($ temp: ident)*) (JsonLists $($ not_member: ident)*)) => {
       22330  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22331  +
                        };
       22332  +
                        // JsonLists match not found, pop from `not_member` into `temp` stack
       22333  +
                        (@ $ name: ident, $ contains: ident (JsonLists $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22334  +
                            scope! { @ $ name, $ contains (JsonLists $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22335  +
                        };
       22336  +
       22337  +
                        // JsonMaps match found, pop from both `member` and `not_member`
       22338  +
                        (@ $ name: ident, $ contains: ident (JsonMaps $($ member: ident)*) ($($ temp: ident)*) (JsonMaps $($ not_member: ident)*)) => {
       22339  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22340  +
                        };
       22341  +
                        // JsonMaps match not found, pop from `not_member` into `temp` stack
       22342  +
                        (@ $ name: ident, $ contains: ident (JsonMaps $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22343  +
                            scope! { @ $ name, $ contains (JsonMaps $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22344  +
                        };
       22345  +
       22346  +
                        // JsonTimestamps match found, pop from both `member` and `not_member`
       22347  +
                        (@ $ name: ident, $ contains: ident (JsonTimestamps $($ member: ident)*) ($($ temp: ident)*) (JsonTimestamps $($ not_member: ident)*)) => {
       22348  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22349  +
                        };
       22350  +
                        // JsonTimestamps match not found, pop from `not_member` into `temp` stack
       22351  +
                        (@ $ name: ident, $ contains: ident (JsonTimestamps $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22352  +
                            scope! { @ $ name, $ contains (JsonTimestamps $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22353  +
                        };
       22354  +
       22355  +
                        // JsonUnions match found, pop from both `member` and `not_member`
       22356  +
                        (@ $ name: ident, $ contains: ident (JsonUnions $($ member: ident)*) ($($ temp: ident)*) (JsonUnions $($ not_member: ident)*)) => {
       22357  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22358  +
                        };
       22359  +
                        // JsonUnions match not found, pop from `not_member` into `temp` stack
       22360  +
                        (@ $ name: ident, $ contains: ident (JsonUnions $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22361  +
                            scope! { @ $ name, $ contains (JsonUnions $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22362  +
                        };
       22363  +
       22364  +
                        // MalformedAcceptWithBody match found, pop from both `member` and `not_member`
       22365  +
                        (@ $ name: ident, $ contains: ident (MalformedAcceptWithBody $($ member: ident)*) ($($ temp: ident)*) (MalformedAcceptWithBody $($ not_member: ident)*)) => {
       22366  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22367  +
                        };
       22368  +
                        // MalformedAcceptWithBody match not found, pop from `not_member` into `temp` stack
       22369  +
                        (@ $ name: ident, $ contains: ident (MalformedAcceptWithBody $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22370  +
                            scope! { @ $ name, $ contains (MalformedAcceptWithBody $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22371  +
                        };
       22372  +
       22373  +
                        // MalformedAcceptWithGenericString match found, pop from both `member` and `not_member`
       22374  +
                        (@ $ name: ident, $ contains: ident (MalformedAcceptWithGenericString $($ member: ident)*) ($($ temp: ident)*) (MalformedAcceptWithGenericString $($ not_member: ident)*)) => {
       22375  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22376  +
                        };
       22377  +
                        // MalformedAcceptWithGenericString match not found, pop from `not_member` into `temp` stack
       22378  +
                        (@ $ name: ident, $ contains: ident (MalformedAcceptWithGenericString $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22379  +
                            scope! { @ $ name, $ contains (MalformedAcceptWithGenericString $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22380  +
                        };
       22381  +
       22382  +
                        // MalformedAcceptWithPayload match found, pop from both `member` and `not_member`
       22383  +
                        (@ $ name: ident, $ contains: ident (MalformedAcceptWithPayload $($ member: ident)*) ($($ temp: ident)*) (MalformedAcceptWithPayload $($ not_member: ident)*)) => {
       22384  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22385  +
                        };
       22386  +
                        // MalformedAcceptWithPayload match not found, pop from `not_member` into `temp` stack
       22387  +
                        (@ $ name: ident, $ contains: ident (MalformedAcceptWithPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22388  +
                            scope! { @ $ name, $ contains (MalformedAcceptWithPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22389  +
                        };
       22390  +
       22391  +
                        // MalformedBlob match found, pop from both `member` and `not_member`
       22392  +
                        (@ $ name: ident, $ contains: ident (MalformedBlob $($ member: ident)*) ($($ temp: ident)*) (MalformedBlob $($ not_member: ident)*)) => {
       22393  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22394  +
                        };
       22395  +
                        // MalformedBlob match not found, pop from `not_member` into `temp` stack
       22396  +
                        (@ $ name: ident, $ contains: ident (MalformedBlob $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22397  +
                            scope! { @ $ name, $ contains (MalformedBlob $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22398  +
                        };
       22399  +
       22400  +
                        // MalformedBoolean match found, pop from both `member` and `not_member`
       22401  +
                        (@ $ name: ident, $ contains: ident (MalformedBoolean $($ member: ident)*) ($($ temp: ident)*) (MalformedBoolean $($ not_member: ident)*)) => {
       22402  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22403  +
                        };
       22404  +
                        // MalformedBoolean match not found, pop from `not_member` into `temp` stack
       22405  +
                        (@ $ name: ident, $ contains: ident (MalformedBoolean $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22406  +
                            scope! { @ $ name, $ contains (MalformedBoolean $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22407  +
                        };
       22408  +
       22409  +
                        // MalformedByte match found, pop from both `member` and `not_member`
       22410  +
                        (@ $ name: ident, $ contains: ident (MalformedByte $($ member: ident)*) ($($ temp: ident)*) (MalformedByte $($ not_member: ident)*)) => {
       22411  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22412  +
                        };
       22413  +
                        // MalformedByte match not found, pop from `not_member` into `temp` stack
       22414  +
                        (@ $ name: ident, $ contains: ident (MalformedByte $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22415  +
                            scope! { @ $ name, $ contains (MalformedByte $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22416  +
                        };
       22417  +
       22418  +
                        // MalformedContentTypeWithBody match found, pop from both `member` and `not_member`
       22419  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithBody $($ member: ident)*) ($($ temp: ident)*) (MalformedContentTypeWithBody $($ not_member: ident)*)) => {
       22420  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22421  +
                        };
       22422  +
                        // MalformedContentTypeWithBody match not found, pop from `not_member` into `temp` stack
       22423  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithBody $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22424  +
                            scope! { @ $ name, $ contains (MalformedContentTypeWithBody $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22425  +
                        };
       22426  +
       22427  +
                        // MalformedContentTypeWithGenericString match found, pop from both `member` and `not_member`
       22428  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithGenericString $($ member: ident)*) ($($ temp: ident)*) (MalformedContentTypeWithGenericString $($ not_member: ident)*)) => {
       22429  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22430  +
                        };
       22431  +
                        // MalformedContentTypeWithGenericString match not found, pop from `not_member` into `temp` stack
       22432  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithGenericString $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22433  +
                            scope! { @ $ name, $ contains (MalformedContentTypeWithGenericString $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22434  +
                        };
       22435  +
       22436  +
                        // MalformedContentTypeWithoutBody match found, pop from both `member` and `not_member`
       22437  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithoutBody $($ member: ident)*) ($($ temp: ident)*) (MalformedContentTypeWithoutBody $($ not_member: ident)*)) => {
       22438  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22439  +
                        };
       22440  +
                        // MalformedContentTypeWithoutBody match not found, pop from `not_member` into `temp` stack
       22441  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithoutBody $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22442  +
                            scope! { @ $ name, $ contains (MalformedContentTypeWithoutBody $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22443  +
                        };
       22444  +
       22445  +
                        // MalformedContentTypeWithoutBodyEmptyInput match found, pop from both `member` and `not_member`
       22446  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithoutBodyEmptyInput $($ member: ident)*) ($($ temp: ident)*) (MalformedContentTypeWithoutBodyEmptyInput $($ not_member: ident)*)) => {
       22447  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22448  +
                        };
       22449  +
                        // MalformedContentTypeWithoutBodyEmptyInput match not found, pop from `not_member` into `temp` stack
       22450  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithoutBodyEmptyInput $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22451  +
                            scope! { @ $ name, $ contains (MalformedContentTypeWithoutBodyEmptyInput $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22452  +
                        };
       22453  +
       22454  +
                        // MalformedContentTypeWithPayload match found, pop from both `member` and `not_member`
       22455  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithPayload $($ member: ident)*) ($($ temp: ident)*) (MalformedContentTypeWithPayload $($ not_member: ident)*)) => {
       22456  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22457  +
                        };
       22458  +
                        // MalformedContentTypeWithPayload match not found, pop from `not_member` into `temp` stack
       22459  +
                        (@ $ name: ident, $ contains: ident (MalformedContentTypeWithPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22460  +
                            scope! { @ $ name, $ contains (MalformedContentTypeWithPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22461  +
                        };
       22462  +
       22463  +
                        // MalformedDouble match found, pop from both `member` and `not_member`
       22464  +
                        (@ $ name: ident, $ contains: ident (MalformedDouble $($ member: ident)*) ($($ temp: ident)*) (MalformedDouble $($ not_member: ident)*)) => {
       22465  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22466  +
                        };
       22467  +
                        // MalformedDouble match not found, pop from `not_member` into `temp` stack
       22468  +
                        (@ $ name: ident, $ contains: ident (MalformedDouble $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22469  +
                            scope! { @ $ name, $ contains (MalformedDouble $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22470  +
                        };
       22471  +
       22472  +
                        // MalformedFloat match found, pop from both `member` and `not_member`
       22473  +
                        (@ $ name: ident, $ contains: ident (MalformedFloat $($ member: ident)*) ($($ temp: ident)*) (MalformedFloat $($ not_member: ident)*)) => {
       22474  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22475  +
                        };
       22476  +
                        // MalformedFloat match not found, pop from `not_member` into `temp` stack
       22477  +
                        (@ $ name: ident, $ contains: ident (MalformedFloat $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22478  +
                            scope! { @ $ name, $ contains (MalformedFloat $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22479  +
                        };
       22480  +
       22481  +
                        // MalformedInteger match found, pop from both `member` and `not_member`
       22482  +
                        (@ $ name: ident, $ contains: ident (MalformedInteger $($ member: ident)*) ($($ temp: ident)*) (MalformedInteger $($ not_member: ident)*)) => {
       22483  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22484  +
                        };
       22485  +
                        // MalformedInteger match not found, pop from `not_member` into `temp` stack
       22486  +
                        (@ $ name: ident, $ contains: ident (MalformedInteger $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22487  +
                            scope! { @ $ name, $ contains (MalformedInteger $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22488  +
                        };
       22489  +
       22490  +
                        // MalformedList match found, pop from both `member` and `not_member`
       22491  +
                        (@ $ name: ident, $ contains: ident (MalformedList $($ member: ident)*) ($($ temp: ident)*) (MalformedList $($ not_member: ident)*)) => {
       22492  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22493  +
                        };
       22494  +
                        // MalformedList match not found, pop from `not_member` into `temp` stack
       22495  +
                        (@ $ name: ident, $ contains: ident (MalformedList $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22496  +
                            scope! { @ $ name, $ contains (MalformedList $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22497  +
                        };
       22498  +
       22499  +
                        // MalformedLong match found, pop from both `member` and `not_member`
       22500  +
                        (@ $ name: ident, $ contains: ident (MalformedLong $($ member: ident)*) ($($ temp: ident)*) (MalformedLong $($ not_member: ident)*)) => {
       22501  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22502  +
                        };
       22503  +
                        // MalformedLong match not found, pop from `not_member` into `temp` stack
       22504  +
                        (@ $ name: ident, $ contains: ident (MalformedLong $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22505  +
                            scope! { @ $ name, $ contains (MalformedLong $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22506  +
                        };
       22507  +
       22508  +
                        // MalformedMap match found, pop from both `member` and `not_member`
       22509  +
                        (@ $ name: ident, $ contains: ident (MalformedMap $($ member: ident)*) ($($ temp: ident)*) (MalformedMap $($ not_member: ident)*)) => {
       22510  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22511  +
                        };
       22512  +
                        // MalformedMap match not found, pop from `not_member` into `temp` stack
       22513  +
                        (@ $ name: ident, $ contains: ident (MalformedMap $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22514  +
                            scope! { @ $ name, $ contains (MalformedMap $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22515  +
                        };
       22516  +
       22517  +
                        // MalformedRequestBody match found, pop from both `member` and `not_member`
       22518  +
                        (@ $ name: ident, $ contains: ident (MalformedRequestBody $($ member: ident)*) ($($ temp: ident)*) (MalformedRequestBody $($ not_member: ident)*)) => {
       22519  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22520  +
                        };
       22521  +
                        // MalformedRequestBody match not found, pop from `not_member` into `temp` stack
       22522  +
                        (@ $ name: ident, $ contains: ident (MalformedRequestBody $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22523  +
                            scope! { @ $ name, $ contains (MalformedRequestBody $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22524  +
                        };
       22525  +
       22526  +
                        // MalformedShort match found, pop from both `member` and `not_member`
       22527  +
                        (@ $ name: ident, $ contains: ident (MalformedShort $($ member: ident)*) ($($ temp: ident)*) (MalformedShort $($ not_member: ident)*)) => {
       22528  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22529  +
                        };
       22530  +
                        // MalformedShort match not found, pop from `not_member` into `temp` stack
       22531  +
                        (@ $ name: ident, $ contains: ident (MalformedShort $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22532  +
                            scope! { @ $ name, $ contains (MalformedShort $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22533  +
                        };
       22534  +
       22535  +
                        // MalformedString match found, pop from both `member` and `not_member`
       22536  +
                        (@ $ name: ident, $ contains: ident (MalformedString $($ member: ident)*) ($($ temp: ident)*) (MalformedString $($ not_member: ident)*)) => {
       22537  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22538  +
                        };
       22539  +
                        // MalformedString match not found, pop from `not_member` into `temp` stack
       22540  +
                        (@ $ name: ident, $ contains: ident (MalformedString $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22541  +
                            scope! { @ $ name, $ contains (MalformedString $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22542  +
                        };
       22543  +
       22544  +
                        // MalformedTimestampBodyDateTime match found, pop from both `member` and `not_member`
       22545  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampBodyDateTime $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampBodyDateTime $($ not_member: ident)*)) => {
       22546  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22547  +
                        };
       22548  +
                        // MalformedTimestampBodyDateTime match not found, pop from `not_member` into `temp` stack
       22549  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampBodyDateTime $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22550  +
                            scope! { @ $ name, $ contains (MalformedTimestampBodyDateTime $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22551  +
                        };
       22552  +
       22553  +
                        // MalformedTimestampBodyDefault match found, pop from both `member` and `not_member`
       22554  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampBodyDefault $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampBodyDefault $($ not_member: ident)*)) => {
       22555  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22556  +
                        };
       22557  +
                        // MalformedTimestampBodyDefault match not found, pop from `not_member` into `temp` stack
       22558  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampBodyDefault $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22559  +
                            scope! { @ $ name, $ contains (MalformedTimestampBodyDefault $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22560  +
                        };
       22561  +
       22562  +
                        // MalformedTimestampBodyHttpDate match found, pop from both `member` and `not_member`
       22563  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampBodyHttpDate $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampBodyHttpDate $($ not_member: ident)*)) => {
       22564  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22565  +
                        };
       22566  +
                        // MalformedTimestampBodyHttpDate match not found, pop from `not_member` into `temp` stack
       22567  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampBodyHttpDate $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22568  +
                            scope! { @ $ name, $ contains (MalformedTimestampBodyHttpDate $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22569  +
                        };
       22570  +
       22571  +
                        // MalformedTimestampHeaderDateTime match found, pop from both `member` and `not_member`
       22572  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampHeaderDateTime $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampHeaderDateTime $($ not_member: ident)*)) => {
       22573  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22574  +
                        };
       22575  +
                        // MalformedTimestampHeaderDateTime match not found, pop from `not_member` into `temp` stack
       22576  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampHeaderDateTime $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22577  +
                            scope! { @ $ name, $ contains (MalformedTimestampHeaderDateTime $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22578  +
                        };
       22579  +
       22580  +
                        // MalformedTimestampHeaderDefault match found, pop from both `member` and `not_member`
       22581  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampHeaderDefault $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampHeaderDefault $($ not_member: ident)*)) => {
       22582  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22583  +
                        };
       22584  +
                        // MalformedTimestampHeaderDefault match not found, pop from `not_member` into `temp` stack
       22585  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampHeaderDefault $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22586  +
                            scope! { @ $ name, $ contains (MalformedTimestampHeaderDefault $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22587  +
                        };
       22588  +
       22589  +
                        // MalformedTimestampHeaderEpoch match found, pop from both `member` and `not_member`
       22590  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampHeaderEpoch $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampHeaderEpoch $($ not_member: ident)*)) => {
       22591  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22592  +
                        };
       22593  +
                        // MalformedTimestampHeaderEpoch match not found, pop from `not_member` into `temp` stack
       22594  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampHeaderEpoch $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22595  +
                            scope! { @ $ name, $ contains (MalformedTimestampHeaderEpoch $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22596  +
                        };
       22597  +
       22598  +
                        // MalformedTimestampPathDefault match found, pop from both `member` and `not_member`
       22599  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampPathDefault $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampPathDefault $($ not_member: ident)*)) => {
       22600  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22601  +
                        };
       22602  +
                        // MalformedTimestampPathDefault match not found, pop from `not_member` into `temp` stack
       22603  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampPathDefault $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22604  +
                            scope! { @ $ name, $ contains (MalformedTimestampPathDefault $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22605  +
                        };
       22606  +
       22607  +
                        // MalformedTimestampPathEpoch match found, pop from both `member` and `not_member`
       22608  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampPathEpoch $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampPathEpoch $($ not_member: ident)*)) => {
       22609  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22610  +
                        };
       22611  +
                        // MalformedTimestampPathEpoch match not found, pop from `not_member` into `temp` stack
       22612  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampPathEpoch $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22613  +
                            scope! { @ $ name, $ contains (MalformedTimestampPathEpoch $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22614  +
                        };
       22615  +
       22616  +
                        // MalformedTimestampPathHttpDate match found, pop from both `member` and `not_member`
       22617  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampPathHttpDate $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampPathHttpDate $($ not_member: ident)*)) => {
       22618  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22619  +
                        };
       22620  +
                        // MalformedTimestampPathHttpDate match not found, pop from `not_member` into `temp` stack
       22621  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampPathHttpDate $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22622  +
                            scope! { @ $ name, $ contains (MalformedTimestampPathHttpDate $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22623  +
                        };
       22624  +
       22625  +
                        // MalformedTimestampQueryDefault match found, pop from both `member` and `not_member`
       22626  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampQueryDefault $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampQueryDefault $($ not_member: ident)*)) => {
       22627  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22628  +
                        };
       22629  +
                        // MalformedTimestampQueryDefault match not found, pop from `not_member` into `temp` stack
       22630  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampQueryDefault $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22631  +
                            scope! { @ $ name, $ contains (MalformedTimestampQueryDefault $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22632  +
                        };
       22633  +
       22634  +
                        // MalformedTimestampQueryEpoch match found, pop from both `member` and `not_member`
       22635  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampQueryEpoch $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampQueryEpoch $($ not_member: ident)*)) => {
       22636  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22637  +
                        };
       22638  +
                        // MalformedTimestampQueryEpoch match not found, pop from `not_member` into `temp` stack
       22639  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampQueryEpoch $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22640  +
                            scope! { @ $ name, $ contains (MalformedTimestampQueryEpoch $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22641  +
                        };
       22642  +
       22643  +
                        // MalformedTimestampQueryHttpDate match found, pop from both `member` and `not_member`
       22644  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampQueryHttpDate $($ member: ident)*) ($($ temp: ident)*) (MalformedTimestampQueryHttpDate $($ not_member: ident)*)) => {
       22645  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22646  +
                        };
       22647  +
                        // MalformedTimestampQueryHttpDate match not found, pop from `not_member` into `temp` stack
       22648  +
                        (@ $ name: ident, $ contains: ident (MalformedTimestampQueryHttpDate $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22649  +
                            scope! { @ $ name, $ contains (MalformedTimestampQueryHttpDate $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22650  +
                        };
       22651  +
       22652  +
                        // MalformedUnion match found, pop from both `member` and `not_member`
       22653  +
                        (@ $ name: ident, $ contains: ident (MalformedUnion $($ member: ident)*) ($($ temp: ident)*) (MalformedUnion $($ not_member: ident)*)) => {
       22654  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22655  +
                        };
       22656  +
                        // MalformedUnion match not found, pop from `not_member` into `temp` stack
       22657  +
                        (@ $ name: ident, $ contains: ident (MalformedUnion $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22658  +
                            scope! { @ $ name, $ contains (MalformedUnion $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22659  +
                        };
       22660  +
       22661  +
                        // MediaTypeHeader match found, pop from both `member` and `not_member`
       22662  +
                        (@ $ name: ident, $ contains: ident (MediaTypeHeader $($ member: ident)*) ($($ temp: ident)*) (MediaTypeHeader $($ not_member: ident)*)) => {
       22663  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22664  +
                        };
       22665  +
                        // MediaTypeHeader match not found, pop from `not_member` into `temp` stack
       22666  +
                        (@ $ name: ident, $ contains: ident (MediaTypeHeader $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22667  +
                            scope! { @ $ name, $ contains (MediaTypeHeader $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22668  +
                        };
       22669  +
       22670  +
                        // NoInputAndNoOutput match found, pop from both `member` and `not_member`
       22671  +
                        (@ $ name: ident, $ contains: ident (NoInputAndNoOutput $($ member: ident)*) ($($ temp: ident)*) (NoInputAndNoOutput $($ not_member: ident)*)) => {
       22672  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22673  +
                        };
       22674  +
                        // NoInputAndNoOutput match not found, pop from `not_member` into `temp` stack
       22675  +
                        (@ $ name: ident, $ contains: ident (NoInputAndNoOutput $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22676  +
                            scope! { @ $ name, $ contains (NoInputAndNoOutput $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22677  +
                        };
       22678  +
       22679  +
                        // NoInputAndOutput match found, pop from both `member` and `not_member`
       22680  +
                        (@ $ name: ident, $ contains: ident (NoInputAndOutput $($ member: ident)*) ($($ temp: ident)*) (NoInputAndOutput $($ not_member: ident)*)) => {
       22681  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22682  +
                        };
       22683  +
                        // NoInputAndOutput match not found, pop from `not_member` into `temp` stack
       22684  +
                        (@ $ name: ident, $ contains: ident (NoInputAndOutput $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22685  +
                            scope! { @ $ name, $ contains (NoInputAndOutput $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22686  +
                        };
       22687  +
       22688  +
                        // NullAndEmptyHeadersClient match found, pop from both `member` and `not_member`
       22689  +
                        (@ $ name: ident, $ contains: ident (NullAndEmptyHeadersClient $($ member: ident)*) ($($ temp: ident)*) (NullAndEmptyHeadersClient $($ not_member: ident)*)) => {
       22690  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22691  +
                        };
       22692  +
                        // NullAndEmptyHeadersClient match not found, pop from `not_member` into `temp` stack
       22693  +
                        (@ $ name: ident, $ contains: ident (NullAndEmptyHeadersClient $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22694  +
                            scope! { @ $ name, $ contains (NullAndEmptyHeadersClient $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22695  +
                        };
       22696  +
       22697  +
                        // NullAndEmptyHeadersServer match found, pop from both `member` and `not_member`
       22698  +
                        (@ $ name: ident, $ contains: ident (NullAndEmptyHeadersServer $($ member: ident)*) ($($ temp: ident)*) (NullAndEmptyHeadersServer $($ not_member: ident)*)) => {
       22699  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22700  +
                        };
       22701  +
                        // NullAndEmptyHeadersServer match not found, pop from `not_member` into `temp` stack
       22702  +
                        (@ $ name: ident, $ contains: ident (NullAndEmptyHeadersServer $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22703  +
                            scope! { @ $ name, $ contains (NullAndEmptyHeadersServer $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22704  +
                        };
       22705  +
       22706  +
                        // OmitsNullSerializesEmptyString match found, pop from both `member` and `not_member`
       22707  +
                        (@ $ name: ident, $ contains: ident (OmitsNullSerializesEmptyString $($ member: ident)*) ($($ temp: ident)*) (OmitsNullSerializesEmptyString $($ not_member: ident)*)) => {
       22708  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22709  +
                        };
       22710  +
                        // OmitsNullSerializesEmptyString match not found, pop from `not_member` into `temp` stack
       22711  +
                        (@ $ name: ident, $ contains: ident (OmitsNullSerializesEmptyString $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22712  +
                            scope! { @ $ name, $ contains (OmitsNullSerializesEmptyString $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22713  +
                        };
       22714  +
       22715  +
                        // OmitsSerializingEmptyLists match found, pop from both `member` and `not_member`
       22716  +
                        (@ $ name: ident, $ contains: ident (OmitsSerializingEmptyLists $($ member: ident)*) ($($ temp: ident)*) (OmitsSerializingEmptyLists $($ not_member: ident)*)) => {
       22717  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22718  +
                        };
       22719  +
                        // OmitsSerializingEmptyLists match not found, pop from `not_member` into `temp` stack
       22720  +
                        (@ $ name: ident, $ contains: ident (OmitsSerializingEmptyLists $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22721  +
                            scope! { @ $ name, $ contains (OmitsSerializingEmptyLists $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22722  +
                        };
       22723  +
       22724  +
                        // OperationWithDefaults match found, pop from both `member` and `not_member`
       22725  +
                        (@ $ name: ident, $ contains: ident (OperationWithDefaults $($ member: ident)*) ($($ temp: ident)*) (OperationWithDefaults $($ not_member: ident)*)) => {
       22726  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22727  +
                        };
       22728  +
                        // OperationWithDefaults match not found, pop from `not_member` into `temp` stack
       22729  +
                        (@ $ name: ident, $ contains: ident (OperationWithDefaults $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22730  +
                            scope! { @ $ name, $ contains (OperationWithDefaults $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22731  +
                        };
       22732  +
       22733  +
                        // OperationWithNestedStructure match found, pop from both `member` and `not_member`
       22734  +
                        (@ $ name: ident, $ contains: ident (OperationWithNestedStructure $($ member: ident)*) ($($ temp: ident)*) (OperationWithNestedStructure $($ not_member: ident)*)) => {
       22735  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22736  +
                        };
       22737  +
                        // OperationWithNestedStructure match not found, pop from `not_member` into `temp` stack
       22738  +
                        (@ $ name: ident, $ contains: ident (OperationWithNestedStructure $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22739  +
                            scope! { @ $ name, $ contains (OperationWithNestedStructure $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22740  +
                        };
       22741  +
       22742  +
                        // PostPlayerAction match found, pop from both `member` and `not_member`
       22743  +
                        (@ $ name: ident, $ contains: ident (PostPlayerAction $($ member: ident)*) ($($ temp: ident)*) (PostPlayerAction $($ not_member: ident)*)) => {
       22744  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22745  +
                        };
       22746  +
                        // PostPlayerAction match not found, pop from `not_member` into `temp` stack
       22747  +
                        (@ $ name: ident, $ contains: ident (PostPlayerAction $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22748  +
                            scope! { @ $ name, $ contains (PostPlayerAction $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22749  +
                        };
       22750  +
       22751  +
                        // PostUnionWithJsonName match found, pop from both `member` and `not_member`
       22752  +
                        (@ $ name: ident, $ contains: ident (PostUnionWithJsonName $($ member: ident)*) ($($ temp: ident)*) (PostUnionWithJsonName $($ not_member: ident)*)) => {
       22753  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22754  +
                        };
       22755  +
                        // PostUnionWithJsonName match not found, pop from `not_member` into `temp` stack
       22756  +
                        (@ $ name: ident, $ contains: ident (PostUnionWithJsonName $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22757  +
                            scope! { @ $ name, $ contains (PostUnionWithJsonName $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22758  +
                        };
       22759  +
       22760  +
                        // PutWithContentEncoding match found, pop from both `member` and `not_member`
       22761  +
                        (@ $ name: ident, $ contains: ident (PutWithContentEncoding $($ member: ident)*) ($($ temp: ident)*) (PutWithContentEncoding $($ not_member: ident)*)) => {
       22762  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22763  +
                        };
       22764  +
                        // PutWithContentEncoding match not found, pop from `not_member` into `temp` stack
       22765  +
                        (@ $ name: ident, $ contains: ident (PutWithContentEncoding $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22766  +
                            scope! { @ $ name, $ contains (PutWithContentEncoding $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22767  +
                        };
       22768  +
       22769  +
                        // QueryIdempotencyTokenAutoFill match found, pop from both `member` and `not_member`
       22770  +
                        (@ $ name: ident, $ contains: ident (QueryIdempotencyTokenAutoFill $($ member: ident)*) ($($ temp: ident)*) (QueryIdempotencyTokenAutoFill $($ not_member: ident)*)) => {
       22771  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22772  +
                        };
       22773  +
                        // QueryIdempotencyTokenAutoFill match not found, pop from `not_member` into `temp` stack
       22774  +
                        (@ $ name: ident, $ contains: ident (QueryIdempotencyTokenAutoFill $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22775  +
                            scope! { @ $ name, $ contains (QueryIdempotencyTokenAutoFill $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22776  +
                        };
       22777  +
       22778  +
                        // QueryParamsAsStringListMap match found, pop from both `member` and `not_member`
       22779  +
                        (@ $ name: ident, $ contains: ident (QueryParamsAsStringListMap $($ member: ident)*) ($($ temp: ident)*) (QueryParamsAsStringListMap $($ not_member: ident)*)) => {
       22780  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22781  +
                        };
       22782  +
                        // QueryParamsAsStringListMap match not found, pop from `not_member` into `temp` stack
       22783  +
                        (@ $ name: ident, $ contains: ident (QueryParamsAsStringListMap $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22784  +
                            scope! { @ $ name, $ contains (QueryParamsAsStringListMap $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22785  +
                        };
       22786  +
       22787  +
                        // QueryPrecedence match found, pop from both `member` and `not_member`
       22788  +
                        (@ $ name: ident, $ contains: ident (QueryPrecedence $($ member: ident)*) ($($ temp: ident)*) (QueryPrecedence $($ not_member: ident)*)) => {
       22789  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22790  +
                        };
       22791  +
                        // QueryPrecedence match not found, pop from `not_member` into `temp` stack
       22792  +
                        (@ $ name: ident, $ contains: ident (QueryPrecedence $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22793  +
                            scope! { @ $ name, $ contains (QueryPrecedence $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22794  +
                        };
       22795  +
       22796  +
                        // RecursiveShapes match found, pop from both `member` and `not_member`
       22797  +
                        (@ $ name: ident, $ contains: ident (RecursiveShapes $($ member: ident)*) ($($ temp: ident)*) (RecursiveShapes $($ not_member: ident)*)) => {
       22798  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22799  +
                        };
       22800  +
                        // RecursiveShapes match not found, pop from `not_member` into `temp` stack
       22801  +
                        (@ $ name: ident, $ contains: ident (RecursiveShapes $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22802  +
                            scope! { @ $ name, $ contains (RecursiveShapes $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22803  +
                        };
       22804  +
       22805  +
                        // ResponseCodeHttpFallback match found, pop from both `member` and `not_member`
       22806  +
                        (@ $ name: ident, $ contains: ident (ResponseCodeHttpFallback $($ member: ident)*) ($($ temp: ident)*) (ResponseCodeHttpFallback $($ not_member: ident)*)) => {
       22807  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22808  +
                        };
       22809  +
                        // ResponseCodeHttpFallback match not found, pop from `not_member` into `temp` stack
       22810  +
                        (@ $ name: ident, $ contains: ident (ResponseCodeHttpFallback $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22811  +
                            scope! { @ $ name, $ contains (ResponseCodeHttpFallback $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22812  +
                        };
       22813  +
       22814  +
                        // ResponseCodeRequired match found, pop from both `member` and `not_member`
       22815  +
                        (@ $ name: ident, $ contains: ident (ResponseCodeRequired $($ member: ident)*) ($($ temp: ident)*) (ResponseCodeRequired $($ not_member: ident)*)) => {
       22816  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22817  +
                        };
       22818  +
                        // ResponseCodeRequired match not found, pop from `not_member` into `temp` stack
       22819  +
                        (@ $ name: ident, $ contains: ident (ResponseCodeRequired $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22820  +
                            scope! { @ $ name, $ contains (ResponseCodeRequired $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22821  +
                        };
       22822  +
       22823  +
                        // SimpleScalarProperties match found, pop from both `member` and `not_member`
       22824  +
                        (@ $ name: ident, $ contains: ident (SimpleScalarProperties $($ member: ident)*) ($($ temp: ident)*) (SimpleScalarProperties $($ not_member: ident)*)) => {
       22825  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22826  +
                        };
       22827  +
                        // SimpleScalarProperties match not found, pop from `not_member` into `temp` stack
       22828  +
                        (@ $ name: ident, $ contains: ident (SimpleScalarProperties $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22829  +
                            scope! { @ $ name, $ contains (SimpleScalarProperties $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22830  +
                        };
       22831  +
       22832  +
                        // SparseJsonLists match found, pop from both `member` and `not_member`
       22833  +
                        (@ $ name: ident, $ contains: ident (SparseJsonLists $($ member: ident)*) ($($ temp: ident)*) (SparseJsonLists $($ not_member: ident)*)) => {
       22834  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22835  +
                        };
       22836  +
                        // SparseJsonLists match not found, pop from `not_member` into `temp` stack
       22837  +
                        (@ $ name: ident, $ contains: ident (SparseJsonLists $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22838  +
                            scope! { @ $ name, $ contains (SparseJsonLists $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22839  +
                        };
       22840  +
       22841  +
                        // SparseJsonMaps match found, pop from both `member` and `not_member`
       22842  +
                        (@ $ name: ident, $ contains: ident (SparseJsonMaps $($ member: ident)*) ($($ temp: ident)*) (SparseJsonMaps $($ not_member: ident)*)) => {
       22843  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22844  +
                        };
       22845  +
                        // SparseJsonMaps match not found, pop from `not_member` into `temp` stack
       22846  +
                        (@ $ name: ident, $ contains: ident (SparseJsonMaps $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22847  +
                            scope! { @ $ name, $ contains (SparseJsonMaps $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22848  +
                        };
       22849  +
       22850  +
                        // StreamingTraits match found, pop from both `member` and `not_member`
       22851  +
                        (@ $ name: ident, $ contains: ident (StreamingTraits $($ member: ident)*) ($($ temp: ident)*) (StreamingTraits $($ not_member: ident)*)) => {
       22852  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22853  +
                        };
       22854  +
                        // StreamingTraits match not found, pop from `not_member` into `temp` stack
       22855  +
                        (@ $ name: ident, $ contains: ident (StreamingTraits $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22856  +
                            scope! { @ $ name, $ contains (StreamingTraits $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22857  +
                        };
       22858  +
       22859  +
                        // StreamingTraitsRequireLength match found, pop from both `member` and `not_member`
       22860  +
                        (@ $ name: ident, $ contains: ident (StreamingTraitsRequireLength $($ member: ident)*) ($($ temp: ident)*) (StreamingTraitsRequireLength $($ not_member: ident)*)) => {
       22861  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22862  +
                        };
       22863  +
                        // StreamingTraitsRequireLength match not found, pop from `not_member` into `temp` stack
       22864  +
                        (@ $ name: ident, $ contains: ident (StreamingTraitsRequireLength $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22865  +
                            scope! { @ $ name, $ contains (StreamingTraitsRequireLength $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22866  +
                        };
       22867  +
       22868  +
                        // StreamingTraitsWithMediaType match found, pop from both `member` and `not_member`
       22869  +
                        (@ $ name: ident, $ contains: ident (StreamingTraitsWithMediaType $($ member: ident)*) ($($ temp: ident)*) (StreamingTraitsWithMediaType $($ not_member: ident)*)) => {
       22870  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22871  +
                        };
       22872  +
                        // StreamingTraitsWithMediaType match not found, pop from `not_member` into `temp` stack
       22873  +
                        (@ $ name: ident, $ contains: ident (StreamingTraitsWithMediaType $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22874  +
                            scope! { @ $ name, $ contains (StreamingTraitsWithMediaType $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22875  +
                        };
       22876  +
       22877  +
                        // TestBodyStructure match found, pop from both `member` and `not_member`
       22878  +
                        (@ $ name: ident, $ contains: ident (TestBodyStructure $($ member: ident)*) ($($ temp: ident)*) (TestBodyStructure $($ not_member: ident)*)) => {
       22879  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22880  +
                        };
       22881  +
                        // TestBodyStructure match not found, pop from `not_member` into `temp` stack
       22882  +
                        (@ $ name: ident, $ contains: ident (TestBodyStructure $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22883  +
                            scope! { @ $ name, $ contains (TestBodyStructure $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22884  +
                        };
       22885  +
       22886  +
                        // TestGetNoInputNoPayload match found, pop from both `member` and `not_member`
       22887  +
                        (@ $ name: ident, $ contains: ident (TestGetNoInputNoPayload $($ member: ident)*) ($($ temp: ident)*) (TestGetNoInputNoPayload $($ not_member: ident)*)) => {
       22888  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22889  +
                        };
       22890  +
                        // TestGetNoInputNoPayload match not found, pop from `not_member` into `temp` stack
       22891  +
                        (@ $ name: ident, $ contains: ident (TestGetNoInputNoPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22892  +
                            scope! { @ $ name, $ contains (TestGetNoInputNoPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22893  +
                        };
       22894  +
       22895  +
                        // TestGetNoPayload match found, pop from both `member` and `not_member`
       22896  +
                        (@ $ name: ident, $ contains: ident (TestGetNoPayload $($ member: ident)*) ($($ temp: ident)*) (TestGetNoPayload $($ not_member: ident)*)) => {
       22897  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22898  +
                        };
       22899  +
                        // TestGetNoPayload match not found, pop from `not_member` into `temp` stack
       22900  +
                        (@ $ name: ident, $ contains: ident (TestGetNoPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22901  +
                            scope! { @ $ name, $ contains (TestGetNoPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22902  +
                        };
       22903  +
       22904  +
                        // TestPayloadBlob match found, pop from both `member` and `not_member`
       22905  +
                        (@ $ name: ident, $ contains: ident (TestPayloadBlob $($ member: ident)*) ($($ temp: ident)*) (TestPayloadBlob $($ not_member: ident)*)) => {
       22906  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22907  +
                        };
       22908  +
                        // TestPayloadBlob match not found, pop from `not_member` into `temp` stack
       22909  +
                        (@ $ name: ident, $ contains: ident (TestPayloadBlob $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22910  +
                            scope! { @ $ name, $ contains (TestPayloadBlob $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22911  +
                        };
       22912  +
       22913  +
                        // TestPayloadStructure match found, pop from both `member` and `not_member`
       22914  +
                        (@ $ name: ident, $ contains: ident (TestPayloadStructure $($ member: ident)*) ($($ temp: ident)*) (TestPayloadStructure $($ not_member: ident)*)) => {
       22915  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22916  +
                        };
       22917  +
                        // TestPayloadStructure match not found, pop from `not_member` into `temp` stack
       22918  +
                        (@ $ name: ident, $ contains: ident (TestPayloadStructure $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22919  +
                            scope! { @ $ name, $ contains (TestPayloadStructure $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22920  +
                        };
       22921  +
       22922  +
                        // TestPostNoInputNoPayload match found, pop from both `member` and `not_member`
       22923  +
                        (@ $ name: ident, $ contains: ident (TestPostNoInputNoPayload $($ member: ident)*) ($($ temp: ident)*) (TestPostNoInputNoPayload $($ not_member: ident)*)) => {
       22924  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22925  +
                        };
       22926  +
                        // TestPostNoInputNoPayload match not found, pop from `not_member` into `temp` stack
       22927  +
                        (@ $ name: ident, $ contains: ident (TestPostNoInputNoPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22928  +
                            scope! { @ $ name, $ contains (TestPostNoInputNoPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22929  +
                        };
       22930  +
       22931  +
                        // TestPostNoPayload match found, pop from both `member` and `not_member`
       22932  +
                        (@ $ name: ident, $ contains: ident (TestPostNoPayload $($ member: ident)*) ($($ temp: ident)*) (TestPostNoPayload $($ not_member: ident)*)) => {
       22933  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22934  +
                        };
       22935  +
                        // TestPostNoPayload match not found, pop from `not_member` into `temp` stack
       22936  +
                        (@ $ name: ident, $ contains: ident (TestPostNoPayload $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22937  +
                            scope! { @ $ name, $ contains (TestPostNoPayload $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22938  +
                        };
       22939  +
       22940  +
                        // TimestampFormatHeaders match found, pop from both `member` and `not_member`
       22941  +
                        (@ $ name: ident, $ contains: ident (TimestampFormatHeaders $($ member: ident)*) ($($ temp: ident)*) (TimestampFormatHeaders $($ not_member: ident)*)) => {
       22942  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22943  +
                        };
       22944  +
                        // TimestampFormatHeaders match not found, pop from `not_member` into `temp` stack
       22945  +
                        (@ $ name: ident, $ contains: ident (TimestampFormatHeaders $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22946  +
                            scope! { @ $ name, $ contains (TimestampFormatHeaders $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22947  +
                        };
       22948  +
       22949  +
                        // UnitInputAndOutput match found, pop from both `member` and `not_member`
       22950  +
                        (@ $ name: ident, $ contains: ident (UnitInputAndOutput $($ member: ident)*) ($($ temp: ident)*) (UnitInputAndOutput $($ not_member: ident)*)) => {
       22951  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
       22952  +
                        };
       22953  +
                        // UnitInputAndOutput match not found, pop from `not_member` into `temp` stack
       22954  +
                        (@ $ name: ident, $ contains: ident (UnitInputAndOutput $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
       22955  +
                            scope! { @ $ name, $ contains (UnitInputAndOutput $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
       22956  +
                        };
       22957  +
       22958  +
                    (
       22959  +
                        $(#[$ attrs:meta])*
       22960  +
                        $ vis:vis struct $ name:ident {
       22961  +
                            includes: [$($ include:ident),*]
       22962  +
                        }
       22963  +
                    ) => {
       22964  +
                        use $ crate::operation_shape::*;
       22965  +
                        $ crate::server::scope! {
       22966  +
                            $(#[$ attrs])*
       22967  +
                            $ vis struct $ name {
       22968  +
                                includes: [$($ include),*],
       22969  +
                                excludes: []
       22970  +
                            }
       22971  +
                        }
       22972  +
                        scope! { @ $ name, False ($($ include)*) () (AllQueryStringTypes ConstantAndVariableQueryString ConstantQueryString ContentTypeParameters DatetimeOffsets DocumentType DocumentTypeAsMapValue DocumentTypeAsPayload EmptyInputAndEmptyOutput EndpointOperation EndpointWithHostLabelOperation FractionalSeconds GreetingWithErrors HostWithPathOperation HttpChecksumRequired HttpEmptyPrefixHeaders HttpEnumPayload HttpPayloadTraits HttpPayloadTraitsWithMediaType HttpPayloadWithStructure HttpPayloadWithUnion HttpPrefixHeaders HttpPrefixHeadersInResponse HttpRequestWithFloatLabels HttpRequestWithGreedyLabelInPath HttpRequestWithLabels HttpRequestWithLabelsAndTimestampFormat HttpRequestWithRegexLiteral HttpResponseCode HttpStringPayload IgnoreQueryParamsInResponse InputAndOutputWithHeaders JsonBlobs JsonEnums JsonIntEnums JsonLists JsonMaps JsonTimestamps JsonUnions MalformedAcceptWithBody MalformedAcceptWithGenericString MalformedAcceptWithPayload MalformedBlob MalformedBoolean MalformedByte MalformedContentTypeWithBody MalformedContentTypeWithGenericString MalformedContentTypeWithoutBody MalformedContentTypeWithoutBodyEmptyInput MalformedContentTypeWithPayload MalformedDouble MalformedFloat MalformedInteger MalformedList MalformedLong MalformedMap MalformedRequestBody MalformedShort MalformedString MalformedTimestampBodyDateTime MalformedTimestampBodyDefault MalformedTimestampBodyHttpDate MalformedTimestampHeaderDateTime MalformedTimestampHeaderDefault MalformedTimestampHeaderEpoch MalformedTimestampPathDefault MalformedTimestampPathEpoch MalformedTimestampPathHttpDate MalformedTimestampQueryDefault MalformedTimestampQueryEpoch MalformedTimestampQueryHttpDate MalformedUnion MediaTypeHeader NoInputAndNoOutput NoInputAndOutput NullAndEmptyHeadersClient NullAndEmptyHeadersServer OmitsNullSerializesEmptyString OmitsSerializingEmptyLists OperationWithDefaults OperationWithNestedStructure PostPlayerAction PostUnionWithJsonName PutWithContentEncoding QueryIdempotencyTokenAutoFill QueryParamsAsStringListMap QueryPrecedence RecursiveShapes ResponseCodeHttpFallback ResponseCodeRequired SimpleScalarProperties SparseJsonLists SparseJsonMaps StreamingTraits StreamingTraitsRequireLength StreamingTraitsWithMediaType TestBodyStructure TestGetNoInputNoPayload TestGetNoPayload TestPayloadBlob TestPayloadStructure TestPostNoInputNoPayload TestPostNoPayload TimestampFormatHeaders UnitInputAndOutput) }
       22973  +
                    };
       22974  +
                    (
       22975  +
                        $(#[$ attrs:meta])*
       22976  +
                        $ vis:vis struct $ name:ident {
       22977  +
                            excludes: [$($ exclude:ident),*]
       22978  +
                        }
       22979  +
                    ) => {
       22980  +
                        use $ crate::operation_shape::*;
       22981  +
       22982  +
                        $ crate::server::scope! {
       22983  +
                            $(#[$ attrs])*
       22984  +
                            $ vis struct $ name {
       22985  +
                                includes: [],
       22986  +
                                excludes: [$($ exclude),*]
       22987  +
                            }
       22988  +
                        }
       22989  +
                        scope! { @ $ name, True ($($ exclude)*) () (AllQueryStringTypes ConstantAndVariableQueryString ConstantQueryString ContentTypeParameters DatetimeOffsets DocumentType DocumentTypeAsMapValue DocumentTypeAsPayload EmptyInputAndEmptyOutput EndpointOperation EndpointWithHostLabelOperation FractionalSeconds GreetingWithErrors HostWithPathOperation HttpChecksumRequired HttpEmptyPrefixHeaders HttpEnumPayload HttpPayloadTraits HttpPayloadTraitsWithMediaType HttpPayloadWithStructure HttpPayloadWithUnion HttpPrefixHeaders HttpPrefixHeadersInResponse HttpRequestWithFloatLabels HttpRequestWithGreedyLabelInPath HttpRequestWithLabels HttpRequestWithLabelsAndTimestampFormat HttpRequestWithRegexLiteral HttpResponseCode HttpStringPayload IgnoreQueryParamsInResponse InputAndOutputWithHeaders JsonBlobs JsonEnums JsonIntEnums JsonLists JsonMaps JsonTimestamps JsonUnions MalformedAcceptWithBody MalformedAcceptWithGenericString MalformedAcceptWithPayload MalformedBlob MalformedBoolean MalformedByte MalformedContentTypeWithBody MalformedContentTypeWithGenericString MalformedContentTypeWithoutBody MalformedContentTypeWithoutBodyEmptyInput MalformedContentTypeWithPayload MalformedDouble MalformedFloat MalformedInteger MalformedList MalformedLong MalformedMap MalformedRequestBody MalformedShort MalformedString MalformedTimestampBodyDateTime MalformedTimestampBodyDefault MalformedTimestampBodyHttpDate MalformedTimestampHeaderDateTime MalformedTimestampHeaderDefault MalformedTimestampHeaderEpoch MalformedTimestampPathDefault MalformedTimestampPathEpoch MalformedTimestampPathHttpDate MalformedTimestampQueryDefault MalformedTimestampQueryEpoch MalformedTimestampQueryHttpDate MalformedUnion MediaTypeHeader NoInputAndNoOutput NoInputAndOutput NullAndEmptyHeadersClient NullAndEmptyHeadersServer OmitsNullSerializesEmptyString OmitsSerializingEmptyLists OperationWithDefaults OperationWithNestedStructure PostPlayerAction PostUnionWithJsonName PutWithContentEncoding QueryIdempotencyTokenAutoFill QueryParamsAsStringListMap QueryPrecedence RecursiveShapes ResponseCodeHttpFallback ResponseCodeRequired SimpleScalarProperties SparseJsonLists SparseJsonMaps StreamingTraits StreamingTraitsRequireLength StreamingTraitsWithMediaType TestBodyStructure TestGetNoInputNoPayload TestGetNoPayload TestPayloadBlob TestPayloadStructure TestPostNoInputNoPayload TestPostNoPayload TimestampFormatHeaders UnitInputAndOutput) }
       22990  +
                    };
       22991  +
                }