Server Test

Server Test

rev. 3c756f73b1f83a0eed4275d9d1e22df0b10b66fb

Files changed:

tmp-codegen-diff/codegen-server-test/constraints-http0x/rust-server-codegen/src/protocol_serde/shape_transitively_constrained_structure_in_output.rs

@@ -0,1 +0,10 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_transitively_constrained_structure_in_output(
           3  +
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
           4  +
    input: &crate::model::TransitivelyConstrainedStructureInOutput,
           5  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    if let Some(var_1) = &input.length_string {
           7  +
        object.key("lengthString").string(var_1.as_str());
           8  +
    }
           9  +
    Ok(())
          10  +
}

tmp-codegen-diff/codegen-server-test/constraints-http0x/rust-server-codegen/src/protocol_serde/shape_unique_items_list.rs

@@ -0,1 +0,56 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub(crate) fn de_unique_items_list<'a, I>(
           3  +
    tokens: &mut ::std::iter::Peekable<I>,
           4  +
) -> ::std::result::Result<
           5  +
    Option<crate::unconstrained::unique_items_list_unconstrained::UniqueItemsListUnconstrained>,
           6  +
    ::aws_smithy_json::deserialize::error::DeserializeError,
           7  +
>
           8  +
where
           9  +
    I: Iterator<
          10  +
        Item = Result<
          11  +
            ::aws_smithy_json::deserialize::Token<'a>,
          12  +
            ::aws_smithy_json::deserialize::error::DeserializeError,
          13  +
        >,
          14  +
    >,
          15  +
{
          16  +
    match tokens.next().transpose()? {
          17  +
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          18  +
        Some(::aws_smithy_json::deserialize::Token::StartArray { .. }) => {
          19  +
            let mut items = Vec::new();
          20  +
            loop {
          21  +
                match tokens.peek() {
          22  +
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
          23  +
                        tokens.next().transpose().unwrap();
          24  +
                        break;
          25  +
                    }
          26  +
                    _ => {
          27  +
                        let value = ::aws_smithy_json::deserialize::token::expect_string_or_null(
          28  +
                            tokens.next(),
          29  +
                        )?
          30  +
                        .map(|s| s.to_unescaped().map(|u| u.into_owned()))
          31  +
                        .transpose()?;
          32  +
                        if let Some(value) = value {
          33  +
                            items.push(value);
          34  +
                        } else {
          35  +
                            return Err(
          36  +
                                ::aws_smithy_json::deserialize::error::DeserializeError::custom(
          37  +
                                    "dense list cannot contain null values",
          38  +
                                ),
          39  +
                            );
          40  +
                        }
          41  +
                    }
          42  +
                }
          43  +
            }
          44  +
            Ok(Some(
          45  +
                crate::unconstrained::unique_items_list_unconstrained::UniqueItemsListUnconstrained(
          46  +
                    items,
          47  +
                ),
          48  +
            ))
          49  +
        }
          50  +
        _ => Err(
          51  +
            ::aws_smithy_json::deserialize::error::DeserializeError::custom(
          52  +
                "expected start array or null",
          53  +
            ),
          54  +
        ),
          55  +
    }
          56  +
}

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

@@ -0,1 +0,35 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_validation_exception_error(
           3  +
    value: &crate::error::ValidationException,
           4  +
) -> ::std::result::Result<String, ::aws_smithy_types::error::operation::SerializationError> {
           5  +
    let mut out = ::std::string::String::new();
           6  +
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
           7  +
    crate::protocol_serde::shape_validation_exception::ser_validation_exception(
           8  +
        &mut object,
           9  +
        value,
          10  +
    )?;
          11  +
    object.finish();
          12  +
    Ok(out)
          13  +
}
          14  +
          15  +
pub fn ser_validation_exception(
          16  +
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
          17  +
    input: &crate::error::ValidationException,
          18  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
          19  +
    if let Some(var_1) = &input.field_list {
          20  +
        let mut array_2 = object.key("fieldList").start_array();
          21  +
        for item_3 in var_1 {
          22  +
            {
          23  +
                #[allow(unused_mut)]
          24  +
                let mut object_4 = array_2.value().start_object();
          25  +
                crate::protocol_serde::shape_validation_exception_field::ser_validation_exception_field(&mut object_4, item_3)?;
          26  +
                object_4.finish();
          27  +
            }
          28  +
        }
          29  +
        array_2.finish();
          30  +
    }
          31  +
    {
          32  +
        object.key("message").string(input.message.as_str());
          33  +
    }
          34  +
    Ok(())
          35  +
}

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

@@ -0,1 +0,13 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_validation_exception_field(
           3  +
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
           4  +
    input: &crate::model::ValidationExceptionField,
           5  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    {
           7  +
        object.key("path").string(input.path.as_str());
           8  +
    }
           9  +
    {
          10  +
        object.key("message").string(input.message.as_str());
          11  +
    }
          12  +
    Ok(())
          13  +
}

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

@@ -0,1 +0,4682 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/// The service builder for [`ConstraintsService`].
           3  +
///
           4  +
/// Constructed via [`ConstraintsService::builder`].
           5  +
pub struct ConstraintsServiceBuilder<Body, L, HttpPl, ModelPl> {
           6  +
    constrained_http_bound_shapes_operation:
           7  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
           8  +
    constrained_http_payload_bound_shape_operation:
           9  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          10  +
    constrained_recursive_shapes_operation:
          11  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          12  +
    constrained_shapes_only_in_output_operation:
          13  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          14  +
    constrained_shapes_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          15  +
    event_streams_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          16  +
    http_prefix_headers_targeting_length_map_operation:
          17  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          18  +
    non_streaming_blob_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          19  +
    query_params_targeting_length_map_operation:
          20  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          21  +
    query_params_targeting_map_of_enum_string_operation:
          22  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          23  +
    query_params_targeting_map_of_length_list_of_pattern_string_operation:
          24  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          25  +
    query_params_targeting_map_of_length_pattern_string_operation:
          26  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          27  +
    query_params_targeting_map_of_length_string_operation:
          28  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          29  +
    query_params_targeting_map_of_list_of_enum_string_operation:
          30  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          31  +
    query_params_targeting_map_of_list_of_length_pattern_string_operation:
          32  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          33  +
    query_params_targeting_map_of_list_of_length_string_operation:
          34  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          35  +
    query_params_targeting_map_of_list_of_pattern_string_operation:
          36  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          37  +
    query_params_targeting_map_of_pattern_string_operation:
          38  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          39  +
    query_params_targeting_map_of_set_of_length_string_operation:
          40  +
        Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          41  +
    streaming_blob_operation: Option<::aws_smithy_legacy_http_server::routing::Route<Body>>,
          42  +
    layer: L,
          43  +
    http_plugin: HttpPl,
          44  +
    model_plugin: ModelPl,
          45  +
}
          46  +
          47  +
impl<Body, L, HttpPl, ModelPl> ConstraintsServiceBuilder<Body, L, HttpPl, ModelPl> {
          48  +
    /// Sets the [`ConstrainedHttpBoundShapesOperation`](crate::operation_shape::ConstrainedHttpBoundShapesOperation) operation.
          49  +
    ///
          50  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
          51  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
          52  +
    ///
          53  +
    /// # Example
          54  +
    ///
          55  +
    /// ```no_run
          56  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
          57  +
    ///
          58  +
    /// use constraints_http0x::{input, output, error};
          59  +
    ///
          60  +
    /// async fn handler(input: input::ConstrainedHttpBoundShapesOperationInput) -> Result<output::ConstrainedHttpBoundShapesOperationOutput, error::ConstrainedHttpBoundShapesOperationError> {
          61  +
    ///     todo!()
          62  +
    /// }
          63  +
    ///
          64  +
    /// let config = ConstraintsServiceConfig::builder().build();
          65  +
    /// let app = ConstraintsService::builder(config)
          66  +
    ///     .constrained_http_bound_shapes_operation(handler)
          67  +
    ///     /* Set other handlers */
          68  +
    ///     .build()
          69  +
    ///     .unwrap();
          70  +
    /// # let app: ConstraintsService<::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;
          71  +
    /// ```
          72  +
    ///
          73  +
                    pub fn constrained_http_bound_shapes_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
          74  +
                    where
          75  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ConstrainedHttpBoundShapesOperation, HandlerExtractors>,
          76  +
          77  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
          78  +
                            ConstraintsService<L>,
          79  +
                            crate::operation_shape::ConstrainedHttpBoundShapesOperation,
          80  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ConstrainedHttpBoundShapesOperation, HandlerType>
          81  +
                        >,
          82  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
          83  +
                            ConstraintsService<L>,
          84  +
                            crate::operation_shape::ConstrainedHttpBoundShapesOperation,
          85  +
                            ModelPl::Output
          86  +
                        >,
          87  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
          88  +
                            ConstraintsService<L>,
          89  +
                            crate::operation_shape::ConstrainedHttpBoundShapesOperation,
          90  +
                            <
          91  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
          92  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
          93  +
                                    ConstraintsService<L>,
          94  +
                                    crate::operation_shape::ConstrainedHttpBoundShapesOperation,
          95  +
                                    ModelPl::Output
          96  +
                                >
          97  +
                            >::Output
          98  +
                        >,
          99  +
         100  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         101  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         102  +
         103  +
                    {
         104  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         105  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         106  +
        let svc =
         107  +
            crate::operation_shape::ConstrainedHttpBoundShapesOperation::from_handler(handler);
         108  +
        let svc = self.model_plugin.apply(svc);
         109  +
        let svc =
         110  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         111  +
                .apply(svc);
         112  +
        let svc = self.http_plugin.apply(svc);
         113  +
        self.constrained_http_bound_shapes_operation_custom(svc)
         114  +
    }
         115  +
         116  +
    /// Sets the [`ConstrainedHttpBoundShapesOperation`](crate::operation_shape::ConstrainedHttpBoundShapesOperation) operation.
         117  +
    ///
         118  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         119  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         120  +
    ///
         121  +
    /// # Example
         122  +
    ///
         123  +
    /// ```no_run
         124  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         125  +
    ///
         126  +
    /// use constraints_http0x::{input, output, error};
         127  +
    ///
         128  +
    /// async fn handler(input: input::ConstrainedHttpBoundShapesOperationInput) -> Result<output::ConstrainedHttpBoundShapesOperationOutput, error::ConstrainedHttpBoundShapesOperationError> {
         129  +
    ///     todo!()
         130  +
    /// }
         131  +
    ///
         132  +
    /// let config = ConstraintsServiceConfig::builder().build();
         133  +
    /// let svc = ::tower::util::service_fn(handler);
         134  +
    /// let app = ConstraintsService::builder(config)
         135  +
    ///     .constrained_http_bound_shapes_operation_service(svc)
         136  +
    ///     /* Set other handlers */
         137  +
    ///     .build()
         138  +
    ///     .unwrap();
         139  +
    /// # let app: ConstraintsService<::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;
         140  +
    /// ```
         141  +
    ///
         142  +
                    pub fn constrained_http_bound_shapes_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         143  +
                    where
         144  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ConstrainedHttpBoundShapesOperation, ServiceExtractors>,
         145  +
         146  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         147  +
                            ConstraintsService<L>,
         148  +
                            crate::operation_shape::ConstrainedHttpBoundShapesOperation,
         149  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ConstrainedHttpBoundShapesOperation, S>
         150  +
                        >,
         151  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         152  +
                            ConstraintsService<L>,
         153  +
                            crate::operation_shape::ConstrainedHttpBoundShapesOperation,
         154  +
                            ModelPl::Output
         155  +
                        >,
         156  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         157  +
                            ConstraintsService<L>,
         158  +
                            crate::operation_shape::ConstrainedHttpBoundShapesOperation,
         159  +
                            <
         160  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         161  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         162  +
                                    ConstraintsService<L>,
         163  +
                                    crate::operation_shape::ConstrainedHttpBoundShapesOperation,
         164  +
                                    ModelPl::Output
         165  +
                                >
         166  +
                            >::Output
         167  +
                        >,
         168  +
         169  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         170  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         171  +
         172  +
                    {
         173  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         174  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         175  +
        let svc =
         176  +
            crate::operation_shape::ConstrainedHttpBoundShapesOperation::from_service(service);
         177  +
        let svc = self.model_plugin.apply(svc);
         178  +
        let svc =
         179  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         180  +
                .apply(svc);
         181  +
        let svc = self.http_plugin.apply(svc);
         182  +
        self.constrained_http_bound_shapes_operation_custom(svc)
         183  +
    }
         184  +
         185  +
    /// Sets the [`ConstrainedHttpBoundShapesOperation`](crate::operation_shape::ConstrainedHttpBoundShapesOperation) to a custom [`Service`](tower::Service).
         186  +
    /// not constrained by the Smithy contract.
         187  +
    fn constrained_http_bound_shapes_operation_custom<S>(mut self, svc: S) -> Self
         188  +
    where
         189  +
        S: ::tower::Service<
         190  +
                ::http::Request<Body>,
         191  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         192  +
                Error = ::std::convert::Infallible,
         193  +
            > + Clone
         194  +
            + Send
         195  +
            + 'static,
         196  +
        S::Future: Send + 'static,
         197  +
    {
         198  +
        self.constrained_http_bound_shapes_operation =
         199  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         200  +
        self
         201  +
    }
         202  +
         203  +
    /// Sets the [`ConstrainedHttpPayloadBoundShapeOperation`](crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation) operation.
         204  +
    ///
         205  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         206  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         207  +
    ///
         208  +
    /// # Example
         209  +
    ///
         210  +
    /// ```no_run
         211  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         212  +
    ///
         213  +
    /// use constraints_http0x::{input, output, error};
         214  +
    ///
         215  +
    /// async fn handler(input: input::ConstrainedHttpPayloadBoundShapeOperationInput) -> Result<output::ConstrainedHttpPayloadBoundShapeOperationOutput, error::ConstrainedHttpPayloadBoundShapeOperationError> {
         216  +
    ///     todo!()
         217  +
    /// }
         218  +
    ///
         219  +
    /// let config = ConstraintsServiceConfig::builder().build();
         220  +
    /// let app = ConstraintsService::builder(config)
         221  +
    ///     .constrained_http_payload_bound_shape_operation(handler)
         222  +
    ///     /* Set other handlers */
         223  +
    ///     .build()
         224  +
    ///     .unwrap();
         225  +
    /// # let app: ConstraintsService<::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;
         226  +
    /// ```
         227  +
    ///
         228  +
                    pub fn constrained_http_payload_bound_shape_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         229  +
                    where
         230  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation, HandlerExtractors>,
         231  +
         232  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         233  +
                            ConstraintsService<L>,
         234  +
                            crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
         235  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation, HandlerType>
         236  +
                        >,
         237  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         238  +
                            ConstraintsService<L>,
         239  +
                            crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
         240  +
                            ModelPl::Output
         241  +
                        >,
         242  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         243  +
                            ConstraintsService<L>,
         244  +
                            crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
         245  +
                            <
         246  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         247  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         248  +
                                    ConstraintsService<L>,
         249  +
                                    crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
         250  +
                                    ModelPl::Output
         251  +
                                >
         252  +
                            >::Output
         253  +
                        >,
         254  +
         255  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         256  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         257  +
         258  +
                    {
         259  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         260  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         261  +
        let svc = crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation::from_handler(
         262  +
            handler,
         263  +
        );
         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.constrained_http_payload_bound_shape_operation_custom(svc)
         270  +
    }
         271  +
         272  +
    /// Sets the [`ConstrainedHttpPayloadBoundShapeOperation`](crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation) operation.
         273  +
    ///
         274  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         275  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         276  +
    ///
         277  +
    /// # Example
         278  +
    ///
         279  +
    /// ```no_run
         280  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         281  +
    ///
         282  +
    /// use constraints_http0x::{input, output, error};
         283  +
    ///
         284  +
    /// async fn handler(input: input::ConstrainedHttpPayloadBoundShapeOperationInput) -> Result<output::ConstrainedHttpPayloadBoundShapeOperationOutput, error::ConstrainedHttpPayloadBoundShapeOperationError> {
         285  +
    ///     todo!()
         286  +
    /// }
         287  +
    ///
         288  +
    /// let config = ConstraintsServiceConfig::builder().build();
         289  +
    /// let svc = ::tower::util::service_fn(handler);
         290  +
    /// let app = ConstraintsService::builder(config)
         291  +
    ///     .constrained_http_payload_bound_shape_operation_service(svc)
         292  +
    ///     /* Set other handlers */
         293  +
    ///     .build()
         294  +
    ///     .unwrap();
         295  +
    /// # let app: ConstraintsService<::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;
         296  +
    /// ```
         297  +
    ///
         298  +
                    pub fn constrained_http_payload_bound_shape_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         299  +
                    where
         300  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation, ServiceExtractors>,
         301  +
         302  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         303  +
                            ConstraintsService<L>,
         304  +
                            crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
         305  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation, S>
         306  +
                        >,
         307  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         308  +
                            ConstraintsService<L>,
         309  +
                            crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
         310  +
                            ModelPl::Output
         311  +
                        >,
         312  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         313  +
                            ConstraintsService<L>,
         314  +
                            crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
         315  +
                            <
         316  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         317  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         318  +
                                    ConstraintsService<L>,
         319  +
                                    crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
         320  +
                                    ModelPl::Output
         321  +
                                >
         322  +
                            >::Output
         323  +
                        >,
         324  +
         325  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         326  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         327  +
         328  +
                    {
         329  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         330  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         331  +
        let svc = crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation::from_service(
         332  +
            service,
         333  +
        );
         334  +
        let svc = self.model_plugin.apply(svc);
         335  +
        let svc =
         336  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         337  +
                .apply(svc);
         338  +
        let svc = self.http_plugin.apply(svc);
         339  +
        self.constrained_http_payload_bound_shape_operation_custom(svc)
         340  +
    }
         341  +
         342  +
    /// Sets the [`ConstrainedHttpPayloadBoundShapeOperation`](crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation) to a custom [`Service`](tower::Service).
         343  +
    /// not constrained by the Smithy contract.
         344  +
    fn constrained_http_payload_bound_shape_operation_custom<S>(mut self, svc: S) -> Self
         345  +
    where
         346  +
        S: ::tower::Service<
         347  +
                ::http::Request<Body>,
         348  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         349  +
                Error = ::std::convert::Infallible,
         350  +
            > + Clone
         351  +
            + Send
         352  +
            + 'static,
         353  +
        S::Future: Send + 'static,
         354  +
    {
         355  +
        self.constrained_http_payload_bound_shape_operation =
         356  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         357  +
        self
         358  +
    }
         359  +
         360  +
    /// Sets the [`ConstrainedRecursiveShapesOperation`](crate::operation_shape::ConstrainedRecursiveShapesOperation) operation.
         361  +
    ///
         362  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         363  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         364  +
    ///
         365  +
    /// # Example
         366  +
    ///
         367  +
    /// ```no_run
         368  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         369  +
    ///
         370  +
    /// use constraints_http0x::{input, output, error};
         371  +
    ///
         372  +
    /// async fn handler(input: input::ConstrainedRecursiveShapesOperationInput) -> Result<output::ConstrainedRecursiveShapesOperationOutput, error::ConstrainedRecursiveShapesOperationError> {
         373  +
    ///     todo!()
         374  +
    /// }
         375  +
    ///
         376  +
    /// let config = ConstraintsServiceConfig::builder().build();
         377  +
    /// let app = ConstraintsService::builder(config)
         378  +
    ///     .constrained_recursive_shapes_operation(handler)
         379  +
    ///     /* Set other handlers */
         380  +
    ///     .build()
         381  +
    ///     .unwrap();
         382  +
    /// # let app: ConstraintsService<::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;
         383  +
    /// ```
         384  +
    ///
         385  +
                    pub fn constrained_recursive_shapes_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         386  +
                    where
         387  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ConstrainedRecursiveShapesOperation, HandlerExtractors>,
         388  +
         389  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         390  +
                            ConstraintsService<L>,
         391  +
                            crate::operation_shape::ConstrainedRecursiveShapesOperation,
         392  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ConstrainedRecursiveShapesOperation, HandlerType>
         393  +
                        >,
         394  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         395  +
                            ConstraintsService<L>,
         396  +
                            crate::operation_shape::ConstrainedRecursiveShapesOperation,
         397  +
                            ModelPl::Output
         398  +
                        >,
         399  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         400  +
                            ConstraintsService<L>,
         401  +
                            crate::operation_shape::ConstrainedRecursiveShapesOperation,
         402  +
                            <
         403  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         404  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         405  +
                                    ConstraintsService<L>,
         406  +
                                    crate::operation_shape::ConstrainedRecursiveShapesOperation,
         407  +
                                    ModelPl::Output
         408  +
                                >
         409  +
                            >::Output
         410  +
                        >,
         411  +
         412  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         413  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         414  +
         415  +
                    {
         416  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         417  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         418  +
        let svc =
         419  +
            crate::operation_shape::ConstrainedRecursiveShapesOperation::from_handler(handler);
         420  +
        let svc = self.model_plugin.apply(svc);
         421  +
        let svc =
         422  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         423  +
                .apply(svc);
         424  +
        let svc = self.http_plugin.apply(svc);
         425  +
        self.constrained_recursive_shapes_operation_custom(svc)
         426  +
    }
         427  +
         428  +
    /// Sets the [`ConstrainedRecursiveShapesOperation`](crate::operation_shape::ConstrainedRecursiveShapesOperation) operation.
         429  +
    ///
         430  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         431  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         432  +
    ///
         433  +
    /// # Example
         434  +
    ///
         435  +
    /// ```no_run
         436  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         437  +
    ///
         438  +
    /// use constraints_http0x::{input, output, error};
         439  +
    ///
         440  +
    /// async fn handler(input: input::ConstrainedRecursiveShapesOperationInput) -> Result<output::ConstrainedRecursiveShapesOperationOutput, error::ConstrainedRecursiveShapesOperationError> {
         441  +
    ///     todo!()
         442  +
    /// }
         443  +
    ///
         444  +
    /// let config = ConstraintsServiceConfig::builder().build();
         445  +
    /// let svc = ::tower::util::service_fn(handler);
         446  +
    /// let app = ConstraintsService::builder(config)
         447  +
    ///     .constrained_recursive_shapes_operation_service(svc)
         448  +
    ///     /* Set other handlers */
         449  +
    ///     .build()
         450  +
    ///     .unwrap();
         451  +
    /// # let app: ConstraintsService<::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;
         452  +
    /// ```
         453  +
    ///
         454  +
                    pub fn constrained_recursive_shapes_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         455  +
                    where
         456  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ConstrainedRecursiveShapesOperation, ServiceExtractors>,
         457  +
         458  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         459  +
                            ConstraintsService<L>,
         460  +
                            crate::operation_shape::ConstrainedRecursiveShapesOperation,
         461  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ConstrainedRecursiveShapesOperation, S>
         462  +
                        >,
         463  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         464  +
                            ConstraintsService<L>,
         465  +
                            crate::operation_shape::ConstrainedRecursiveShapesOperation,
         466  +
                            ModelPl::Output
         467  +
                        >,
         468  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         469  +
                            ConstraintsService<L>,
         470  +
                            crate::operation_shape::ConstrainedRecursiveShapesOperation,
         471  +
                            <
         472  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         473  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         474  +
                                    ConstraintsService<L>,
         475  +
                                    crate::operation_shape::ConstrainedRecursiveShapesOperation,
         476  +
                                    ModelPl::Output
         477  +
                                >
         478  +
                            >::Output
         479  +
                        >,
         480  +
         481  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         482  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         483  +
         484  +
                    {
         485  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         486  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         487  +
        let svc =
         488  +
            crate::operation_shape::ConstrainedRecursiveShapesOperation::from_service(service);
         489  +
        let svc = self.model_plugin.apply(svc);
         490  +
        let svc =
         491  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         492  +
                .apply(svc);
         493  +
        let svc = self.http_plugin.apply(svc);
         494  +
        self.constrained_recursive_shapes_operation_custom(svc)
         495  +
    }
         496  +
         497  +
    /// Sets the [`ConstrainedRecursiveShapesOperation`](crate::operation_shape::ConstrainedRecursiveShapesOperation) to a custom [`Service`](tower::Service).
         498  +
    /// not constrained by the Smithy contract.
         499  +
    fn constrained_recursive_shapes_operation_custom<S>(mut self, svc: S) -> Self
         500  +
    where
         501  +
        S: ::tower::Service<
         502  +
                ::http::Request<Body>,
         503  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         504  +
                Error = ::std::convert::Infallible,
         505  +
            > + Clone
         506  +
            + Send
         507  +
            + 'static,
         508  +
        S::Future: Send + 'static,
         509  +
    {
         510  +
        self.constrained_recursive_shapes_operation =
         511  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         512  +
        self
         513  +
    }
         514  +
         515  +
    /// Sets the [`ConstrainedShapesOnlyInOutputOperation`](crate::operation_shape::ConstrainedShapesOnlyInOutputOperation) operation.
         516  +
    ///
         517  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         518  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         519  +
    ///
         520  +
    /// # Example
         521  +
    ///
         522  +
    /// ```no_run
         523  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         524  +
    ///
         525  +
    /// use constraints_http0x::{input, output, error};
         526  +
    ///
         527  +
    /// async fn handler(input: input::ConstrainedShapesOnlyInOutputOperationInput) -> output::ConstrainedShapesOnlyInOutputOperationOutput {
         528  +
    ///     todo!()
         529  +
    /// }
         530  +
    ///
         531  +
    /// let config = ConstraintsServiceConfig::builder().build();
         532  +
    /// let app = ConstraintsService::builder(config)
         533  +
    ///     .constrained_shapes_only_in_output_operation(handler)
         534  +
    ///     /* Set other handlers */
         535  +
    ///     .build()
         536  +
    ///     .unwrap();
         537  +
    /// # let app: ConstraintsService<::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;
         538  +
    /// ```
         539  +
    ///
         540  +
                    pub fn constrained_shapes_only_in_output_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         541  +
                    where
         542  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ConstrainedShapesOnlyInOutputOperation, HandlerExtractors>,
         543  +
         544  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         545  +
                            ConstraintsService<L>,
         546  +
                            crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
         547  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ConstrainedShapesOnlyInOutputOperation, HandlerType>
         548  +
                        >,
         549  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         550  +
                            ConstraintsService<L>,
         551  +
                            crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
         552  +
                            ModelPl::Output
         553  +
                        >,
         554  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         555  +
                            ConstraintsService<L>,
         556  +
                            crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
         557  +
                            <
         558  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         559  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         560  +
                                    ConstraintsService<L>,
         561  +
                                    crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
         562  +
                                    ModelPl::Output
         563  +
                                >
         564  +
                            >::Output
         565  +
                        >,
         566  +
         567  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         568  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         569  +
         570  +
                    {
         571  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         572  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         573  +
        let svc =
         574  +
            crate::operation_shape::ConstrainedShapesOnlyInOutputOperation::from_handler(handler);
         575  +
        let svc = self.model_plugin.apply(svc);
         576  +
        let svc =
         577  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         578  +
                .apply(svc);
         579  +
        let svc = self.http_plugin.apply(svc);
         580  +
        self.constrained_shapes_only_in_output_operation_custom(svc)
         581  +
    }
         582  +
         583  +
    /// Sets the [`ConstrainedShapesOnlyInOutputOperation`](crate::operation_shape::ConstrainedShapesOnlyInOutputOperation) operation.
         584  +
    ///
         585  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         586  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         587  +
    ///
         588  +
    /// # Example
         589  +
    ///
         590  +
    /// ```no_run
         591  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         592  +
    ///
         593  +
    /// use constraints_http0x::{input, output, error};
         594  +
    ///
         595  +
    /// async fn handler(input: input::ConstrainedShapesOnlyInOutputOperationInput) -> Result<output::ConstrainedShapesOnlyInOutputOperationOutput, std::convert::Infallible> {
         596  +
    ///     todo!()
         597  +
    /// }
         598  +
    ///
         599  +
    /// let config = ConstraintsServiceConfig::builder().build();
         600  +
    /// let svc = ::tower::util::service_fn(handler);
         601  +
    /// let app = ConstraintsService::builder(config)
         602  +
    ///     .constrained_shapes_only_in_output_operation_service(svc)
         603  +
    ///     /* Set other handlers */
         604  +
    ///     .build()
         605  +
    ///     .unwrap();
         606  +
    /// # let app: ConstraintsService<::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;
         607  +
    /// ```
         608  +
    ///
         609  +
                    pub fn constrained_shapes_only_in_output_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         610  +
                    where
         611  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ConstrainedShapesOnlyInOutputOperation, ServiceExtractors>,
         612  +
         613  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         614  +
                            ConstraintsService<L>,
         615  +
                            crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
         616  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ConstrainedShapesOnlyInOutputOperation, S>
         617  +
                        >,
         618  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         619  +
                            ConstraintsService<L>,
         620  +
                            crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
         621  +
                            ModelPl::Output
         622  +
                        >,
         623  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         624  +
                            ConstraintsService<L>,
         625  +
                            crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
         626  +
                            <
         627  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         628  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         629  +
                                    ConstraintsService<L>,
         630  +
                                    crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
         631  +
                                    ModelPl::Output
         632  +
                                >
         633  +
                            >::Output
         634  +
                        >,
         635  +
         636  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         637  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         638  +
         639  +
                    {
         640  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         641  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         642  +
        let svc =
         643  +
            crate::operation_shape::ConstrainedShapesOnlyInOutputOperation::from_service(service);
         644  +
        let svc = self.model_plugin.apply(svc);
         645  +
        let svc =
         646  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         647  +
                .apply(svc);
         648  +
        let svc = self.http_plugin.apply(svc);
         649  +
        self.constrained_shapes_only_in_output_operation_custom(svc)
         650  +
    }
         651  +
         652  +
    /// Sets the [`ConstrainedShapesOnlyInOutputOperation`](crate::operation_shape::ConstrainedShapesOnlyInOutputOperation) to a custom [`Service`](tower::Service).
         653  +
    /// not constrained by the Smithy contract.
         654  +
    fn constrained_shapes_only_in_output_operation_custom<S>(mut self, svc: S) -> Self
         655  +
    where
         656  +
        S: ::tower::Service<
         657  +
                ::http::Request<Body>,
         658  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         659  +
                Error = ::std::convert::Infallible,
         660  +
            > + Clone
         661  +
            + Send
         662  +
            + 'static,
         663  +
        S::Future: Send + 'static,
         664  +
    {
         665  +
        self.constrained_shapes_only_in_output_operation =
         666  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         667  +
        self
         668  +
    }
         669  +
         670  +
    /// Sets the [`ConstrainedShapesOperation`](crate::operation_shape::ConstrainedShapesOperation) operation.
         671  +
    ///
         672  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         673  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         674  +
    ///
         675  +
    /// # Example
         676  +
    ///
         677  +
    /// ```no_run
         678  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         679  +
    ///
         680  +
    /// use constraints_http0x::{input, output, error};
         681  +
    ///
         682  +
    /// async fn handler(input: input::ConstrainedShapesOperationInput) -> Result<output::ConstrainedShapesOperationOutput, error::ConstrainedShapesOperationError> {
         683  +
    ///     todo!()
         684  +
    /// }
         685  +
    ///
         686  +
    /// let config = ConstraintsServiceConfig::builder().build();
         687  +
    /// let app = ConstraintsService::builder(config)
         688  +
    ///     .constrained_shapes_operation(handler)
         689  +
    ///     /* Set other handlers */
         690  +
    ///     .build()
         691  +
    ///     .unwrap();
         692  +
    /// # let app: ConstraintsService<::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;
         693  +
    /// ```
         694  +
    ///
         695  +
                    pub fn constrained_shapes_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         696  +
                    where
         697  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::ConstrainedShapesOperation, HandlerExtractors>,
         698  +
         699  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         700  +
                            ConstraintsService<L>,
         701  +
                            crate::operation_shape::ConstrainedShapesOperation,
         702  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::ConstrainedShapesOperation, HandlerType>
         703  +
                        >,
         704  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         705  +
                            ConstraintsService<L>,
         706  +
                            crate::operation_shape::ConstrainedShapesOperation,
         707  +
                            ModelPl::Output
         708  +
                        >,
         709  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         710  +
                            ConstraintsService<L>,
         711  +
                            crate::operation_shape::ConstrainedShapesOperation,
         712  +
                            <
         713  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         714  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         715  +
                                    ConstraintsService<L>,
         716  +
                                    crate::operation_shape::ConstrainedShapesOperation,
         717  +
                                    ModelPl::Output
         718  +
                                >
         719  +
                            >::Output
         720  +
                        >,
         721  +
         722  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         723  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         724  +
         725  +
                    {
         726  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         727  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         728  +
        let svc = crate::operation_shape::ConstrainedShapesOperation::from_handler(handler);
         729  +
        let svc = self.model_plugin.apply(svc);
         730  +
        let svc =
         731  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         732  +
                .apply(svc);
         733  +
        let svc = self.http_plugin.apply(svc);
         734  +
        self.constrained_shapes_operation_custom(svc)
         735  +
    }
         736  +
         737  +
    /// Sets the [`ConstrainedShapesOperation`](crate::operation_shape::ConstrainedShapesOperation) operation.
         738  +
    ///
         739  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         740  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         741  +
    ///
         742  +
    /// # Example
         743  +
    ///
         744  +
    /// ```no_run
         745  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         746  +
    ///
         747  +
    /// use constraints_http0x::{input, output, error};
         748  +
    ///
         749  +
    /// async fn handler(input: input::ConstrainedShapesOperationInput) -> Result<output::ConstrainedShapesOperationOutput, error::ConstrainedShapesOperationError> {
         750  +
    ///     todo!()
         751  +
    /// }
         752  +
    ///
         753  +
    /// let config = ConstraintsServiceConfig::builder().build();
         754  +
    /// let svc = ::tower::util::service_fn(handler);
         755  +
    /// let app = ConstraintsService::builder(config)
         756  +
    ///     .constrained_shapes_operation_service(svc)
         757  +
    ///     /* Set other handlers */
         758  +
    ///     .build()
         759  +
    ///     .unwrap();
         760  +
    /// # let app: ConstraintsService<::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;
         761  +
    /// ```
         762  +
    ///
         763  +
                    pub fn constrained_shapes_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         764  +
                    where
         765  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::ConstrainedShapesOperation, ServiceExtractors>,
         766  +
         767  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         768  +
                            ConstraintsService<L>,
         769  +
                            crate::operation_shape::ConstrainedShapesOperation,
         770  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::ConstrainedShapesOperation, S>
         771  +
                        >,
         772  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         773  +
                            ConstraintsService<L>,
         774  +
                            crate::operation_shape::ConstrainedShapesOperation,
         775  +
                            ModelPl::Output
         776  +
                        >,
         777  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         778  +
                            ConstraintsService<L>,
         779  +
                            crate::operation_shape::ConstrainedShapesOperation,
         780  +
                            <
         781  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         782  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         783  +
                                    ConstraintsService<L>,
         784  +
                                    crate::operation_shape::ConstrainedShapesOperation,
         785  +
                                    ModelPl::Output
         786  +
                                >
         787  +
                            >::Output
         788  +
                        >,
         789  +
         790  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         791  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         792  +
         793  +
                    {
         794  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         795  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         796  +
        let svc = crate::operation_shape::ConstrainedShapesOperation::from_service(service);
         797  +
        let svc = self.model_plugin.apply(svc);
         798  +
        let svc =
         799  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         800  +
                .apply(svc);
         801  +
        let svc = self.http_plugin.apply(svc);
         802  +
        self.constrained_shapes_operation_custom(svc)
         803  +
    }
         804  +
         805  +
    /// Sets the [`ConstrainedShapesOperation`](crate::operation_shape::ConstrainedShapesOperation) to a custom [`Service`](tower::Service).
         806  +
    /// not constrained by the Smithy contract.
         807  +
    fn constrained_shapes_operation_custom<S>(mut self, svc: S) -> Self
         808  +
    where
         809  +
        S: ::tower::Service<
         810  +
                ::http::Request<Body>,
         811  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         812  +
                Error = ::std::convert::Infallible,
         813  +
            > + Clone
         814  +
            + Send
         815  +
            + 'static,
         816  +
        S::Future: Send + 'static,
         817  +
    {
         818  +
        self.constrained_shapes_operation =
         819  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         820  +
        self
         821  +
    }
         822  +
         823  +
    /// Sets the [`EventStreamsOperation`](crate::operation_shape::EventStreamsOperation) operation.
         824  +
    ///
         825  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         826  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         827  +
    ///
         828  +
    /// # Example
         829  +
    ///
         830  +
    /// ```no_run
         831  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         832  +
    ///
         833  +
    /// use constraints_http0x::{input, output, error};
         834  +
    ///
         835  +
    /// async fn handler(input: input::EventStreamsOperationInput) -> Result<output::EventStreamsOperationOutput, error::EventStreamsOperationError> {
         836  +
    ///     todo!()
         837  +
    /// }
         838  +
    ///
         839  +
    /// let config = ConstraintsServiceConfig::builder().build();
         840  +
    /// let app = ConstraintsService::builder(config)
         841  +
    ///     .event_streams_operation(handler)
         842  +
    ///     /* Set other handlers */
         843  +
    ///     .build()
         844  +
    ///     .unwrap();
         845  +
    /// # let app: ConstraintsService<::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;
         846  +
    /// ```
         847  +
    ///
         848  +
                    pub fn event_streams_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
         849  +
                    where
         850  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::EventStreamsOperation, HandlerExtractors>,
         851  +
         852  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         853  +
                            ConstraintsService<L>,
         854  +
                            crate::operation_shape::EventStreamsOperation,
         855  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::EventStreamsOperation, HandlerType>
         856  +
                        >,
         857  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         858  +
                            ConstraintsService<L>,
         859  +
                            crate::operation_shape::EventStreamsOperation,
         860  +
                            ModelPl::Output
         861  +
                        >,
         862  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         863  +
                            ConstraintsService<L>,
         864  +
                            crate::operation_shape::EventStreamsOperation,
         865  +
                            <
         866  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         867  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         868  +
                                    ConstraintsService<L>,
         869  +
                                    crate::operation_shape::EventStreamsOperation,
         870  +
                                    ModelPl::Output
         871  +
                                >
         872  +
                            >::Output
         873  +
                        >,
         874  +
         875  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         876  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         877  +
         878  +
                    {
         879  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         880  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         881  +
        let svc = crate::operation_shape::EventStreamsOperation::from_handler(handler);
         882  +
        let svc = self.model_plugin.apply(svc);
         883  +
        let svc =
         884  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         885  +
                .apply(svc);
         886  +
        let svc = self.http_plugin.apply(svc);
         887  +
        self.event_streams_operation_custom(svc)
         888  +
    }
         889  +
         890  +
    /// Sets the [`EventStreamsOperation`](crate::operation_shape::EventStreamsOperation) operation.
         891  +
    ///
         892  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         893  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         894  +
    ///
         895  +
    /// # Example
         896  +
    ///
         897  +
    /// ```no_run
         898  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         899  +
    ///
         900  +
    /// use constraints_http0x::{input, output, error};
         901  +
    ///
         902  +
    /// async fn handler(input: input::EventStreamsOperationInput) -> Result<output::EventStreamsOperationOutput, error::EventStreamsOperationError> {
         903  +
    ///     todo!()
         904  +
    /// }
         905  +
    ///
         906  +
    /// let config = ConstraintsServiceConfig::builder().build();
         907  +
    /// let svc = ::tower::util::service_fn(handler);
         908  +
    /// let app = ConstraintsService::builder(config)
         909  +
    ///     .event_streams_operation_service(svc)
         910  +
    ///     /* Set other handlers */
         911  +
    ///     .build()
         912  +
    ///     .unwrap();
         913  +
    /// # let app: ConstraintsService<::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;
         914  +
    /// ```
         915  +
    ///
         916  +
                    pub fn event_streams_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
         917  +
                    where
         918  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::EventStreamsOperation, ServiceExtractors>,
         919  +
         920  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         921  +
                            ConstraintsService<L>,
         922  +
                            crate::operation_shape::EventStreamsOperation,
         923  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::EventStreamsOperation, S>
         924  +
                        >,
         925  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
         926  +
                            ConstraintsService<L>,
         927  +
                            crate::operation_shape::EventStreamsOperation,
         928  +
                            ModelPl::Output
         929  +
                        >,
         930  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
         931  +
                            ConstraintsService<L>,
         932  +
                            crate::operation_shape::EventStreamsOperation,
         933  +
                            <
         934  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
         935  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
         936  +
                                    ConstraintsService<L>,
         937  +
                                    crate::operation_shape::EventStreamsOperation,
         938  +
                                    ModelPl::Output
         939  +
                                >
         940  +
                            >::Output
         941  +
                        >,
         942  +
         943  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         944  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         945  +
         946  +
                    {
         947  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
         948  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
         949  +
        let svc = crate::operation_shape::EventStreamsOperation::from_service(service);
         950  +
        let svc = self.model_plugin.apply(svc);
         951  +
        let svc =
         952  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
         953  +
                .apply(svc);
         954  +
        let svc = self.http_plugin.apply(svc);
         955  +
        self.event_streams_operation_custom(svc)
         956  +
    }
         957  +
         958  +
    /// Sets the [`EventStreamsOperation`](crate::operation_shape::EventStreamsOperation) to a custom [`Service`](tower::Service).
         959  +
    /// not constrained by the Smithy contract.
         960  +
    fn event_streams_operation_custom<S>(mut self, svc: S) -> Self
         961  +
    where
         962  +
        S: ::tower::Service<
         963  +
                ::http::Request<Body>,
         964  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
         965  +
                Error = ::std::convert::Infallible,
         966  +
            > + Clone
         967  +
            + Send
         968  +
            + 'static,
         969  +
        S::Future: Send + 'static,
         970  +
    {
         971  +
        self.event_streams_operation =
         972  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
         973  +
        self
         974  +
    }
         975  +
         976  +
    /// Sets the [`HttpPrefixHeadersTargetingLengthMapOperation`](crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation) operation.
         977  +
    ///
         978  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
         979  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
         980  +
    ///
         981  +
    /// # Example
         982  +
    ///
         983  +
    /// ```no_run
         984  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
         985  +
    ///
         986  +
    /// use constraints_http0x::{input, output, error};
         987  +
    ///
         988  +
    /// async fn handler(input: input::HttpPrefixHeadersTargetingLengthMapOperationInput) -> Result<output::HttpPrefixHeadersTargetingLengthMapOperationOutput, error::HttpPrefixHeadersTargetingLengthMapOperationError> {
         989  +
    ///     todo!()
         990  +
    /// }
         991  +
    ///
         992  +
    /// let config = ConstraintsServiceConfig::builder().build();
         993  +
    /// let app = ConstraintsService::builder(config)
         994  +
    ///     .http_prefix_headers_targeting_length_map_operation(handler)
         995  +
    ///     /* Set other handlers */
         996  +
    ///     .build()
         997  +
    ///     .unwrap();
         998  +
    /// # let app: ConstraintsService<::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;
         999  +
    /// ```
        1000  +
    ///
        1001  +
                    pub fn http_prefix_headers_targeting_length_map_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1002  +
                    where
        1003  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation, HandlerExtractors>,
        1004  +
        1005  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1006  +
                            ConstraintsService<L>,
        1007  +
                            crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        1008  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation, HandlerType>
        1009  +
                        >,
        1010  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1011  +
                            ConstraintsService<L>,
        1012  +
                            crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        1013  +
                            ModelPl::Output
        1014  +
                        >,
        1015  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1016  +
                            ConstraintsService<L>,
        1017  +
                            crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        1018  +
                            <
        1019  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1020  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1021  +
                                    ConstraintsService<L>,
        1022  +
                                    crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        1023  +
                                    ModelPl::Output
        1024  +
                                >
        1025  +
                            >::Output
        1026  +
                        >,
        1027  +
        1028  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1029  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1030  +
        1031  +
                    {
        1032  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1033  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1034  +
        let svc =
        1035  +
            crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation::from_handler(
        1036  +
                handler,
        1037  +
            );
        1038  +
        let svc = self.model_plugin.apply(svc);
        1039  +
        let svc =
        1040  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1041  +
                .apply(svc);
        1042  +
        let svc = self.http_plugin.apply(svc);
        1043  +
        self.http_prefix_headers_targeting_length_map_operation_custom(svc)
        1044  +
    }
        1045  +
        1046  +
    /// Sets the [`HttpPrefixHeadersTargetingLengthMapOperation`](crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation) operation.
        1047  +
    ///
        1048  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1049  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1050  +
    ///
        1051  +
    /// # Example
        1052  +
    ///
        1053  +
    /// ```no_run
        1054  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1055  +
    ///
        1056  +
    /// use constraints_http0x::{input, output, error};
        1057  +
    ///
        1058  +
    /// async fn handler(input: input::HttpPrefixHeadersTargetingLengthMapOperationInput) -> Result<output::HttpPrefixHeadersTargetingLengthMapOperationOutput, error::HttpPrefixHeadersTargetingLengthMapOperationError> {
        1059  +
    ///     todo!()
        1060  +
    /// }
        1061  +
    ///
        1062  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1063  +
    /// let svc = ::tower::util::service_fn(handler);
        1064  +
    /// let app = ConstraintsService::builder(config)
        1065  +
    ///     .http_prefix_headers_targeting_length_map_operation_service(svc)
        1066  +
    ///     /* Set other handlers */
        1067  +
    ///     .build()
        1068  +
    ///     .unwrap();
        1069  +
    /// # let app: ConstraintsService<::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;
        1070  +
    /// ```
        1071  +
    ///
        1072  +
                    pub fn http_prefix_headers_targeting_length_map_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1073  +
                    where
        1074  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation, ServiceExtractors>,
        1075  +
        1076  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1077  +
                            ConstraintsService<L>,
        1078  +
                            crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        1079  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation, S>
        1080  +
                        >,
        1081  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1082  +
                            ConstraintsService<L>,
        1083  +
                            crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        1084  +
                            ModelPl::Output
        1085  +
                        >,
        1086  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1087  +
                            ConstraintsService<L>,
        1088  +
                            crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        1089  +
                            <
        1090  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1091  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1092  +
                                    ConstraintsService<L>,
        1093  +
                                    crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        1094  +
                                    ModelPl::Output
        1095  +
                                >
        1096  +
                            >::Output
        1097  +
                        >,
        1098  +
        1099  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1100  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1101  +
        1102  +
                    {
        1103  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1104  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1105  +
        let svc =
        1106  +
            crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation::from_service(
        1107  +
                service,
        1108  +
            );
        1109  +
        let svc = self.model_plugin.apply(svc);
        1110  +
        let svc =
        1111  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1112  +
                .apply(svc);
        1113  +
        let svc = self.http_plugin.apply(svc);
        1114  +
        self.http_prefix_headers_targeting_length_map_operation_custom(svc)
        1115  +
    }
        1116  +
        1117  +
    /// Sets the [`HttpPrefixHeadersTargetingLengthMapOperation`](crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation) to a custom [`Service`](tower::Service).
        1118  +
    /// not constrained by the Smithy contract.
        1119  +
    fn http_prefix_headers_targeting_length_map_operation_custom<S>(mut self, svc: S) -> Self
        1120  +
    where
        1121  +
        S: ::tower::Service<
        1122  +
                ::http::Request<Body>,
        1123  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1124  +
                Error = ::std::convert::Infallible,
        1125  +
            > + Clone
        1126  +
            + Send
        1127  +
            + 'static,
        1128  +
        S::Future: Send + 'static,
        1129  +
    {
        1130  +
        self.http_prefix_headers_targeting_length_map_operation =
        1131  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1132  +
        self
        1133  +
    }
        1134  +
        1135  +
    /// Sets the [`NonStreamingBlobOperation`](crate::operation_shape::NonStreamingBlobOperation) operation.
        1136  +
    ///
        1137  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1138  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1139  +
    ///
        1140  +
    /// # Example
        1141  +
    ///
        1142  +
    /// ```no_run
        1143  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1144  +
    ///
        1145  +
    /// use constraints_http0x::{input, output, error};
        1146  +
    ///
        1147  +
    /// async fn handler(input: input::NonStreamingBlobOperationInput) -> output::NonStreamingBlobOperationOutput {
        1148  +
    ///     todo!()
        1149  +
    /// }
        1150  +
    ///
        1151  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1152  +
    /// let app = ConstraintsService::builder(config)
        1153  +
    ///     .non_streaming_blob_operation(handler)
        1154  +
    ///     /* Set other handlers */
        1155  +
    ///     .build()
        1156  +
    ///     .unwrap();
        1157  +
    /// # let app: ConstraintsService<::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;
        1158  +
    /// ```
        1159  +
    ///
        1160  +
                    pub fn non_streaming_blob_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1161  +
                    where
        1162  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::NonStreamingBlobOperation, HandlerExtractors>,
        1163  +
        1164  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1165  +
                            ConstraintsService<L>,
        1166  +
                            crate::operation_shape::NonStreamingBlobOperation,
        1167  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::NonStreamingBlobOperation, HandlerType>
        1168  +
                        >,
        1169  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1170  +
                            ConstraintsService<L>,
        1171  +
                            crate::operation_shape::NonStreamingBlobOperation,
        1172  +
                            ModelPl::Output
        1173  +
                        >,
        1174  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1175  +
                            ConstraintsService<L>,
        1176  +
                            crate::operation_shape::NonStreamingBlobOperation,
        1177  +
                            <
        1178  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1179  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1180  +
                                    ConstraintsService<L>,
        1181  +
                                    crate::operation_shape::NonStreamingBlobOperation,
        1182  +
                                    ModelPl::Output
        1183  +
                                >
        1184  +
                            >::Output
        1185  +
                        >,
        1186  +
        1187  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1188  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1189  +
        1190  +
                    {
        1191  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1192  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1193  +
        let svc = crate::operation_shape::NonStreamingBlobOperation::from_handler(handler);
        1194  +
        let svc = self.model_plugin.apply(svc);
        1195  +
        let svc =
        1196  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1197  +
                .apply(svc);
        1198  +
        let svc = self.http_plugin.apply(svc);
        1199  +
        self.non_streaming_blob_operation_custom(svc)
        1200  +
    }
        1201  +
        1202  +
    /// Sets the [`NonStreamingBlobOperation`](crate::operation_shape::NonStreamingBlobOperation) operation.
        1203  +
    ///
        1204  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1205  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1206  +
    ///
        1207  +
    /// # Example
        1208  +
    ///
        1209  +
    /// ```no_run
        1210  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1211  +
    ///
        1212  +
    /// use constraints_http0x::{input, output, error};
        1213  +
    ///
        1214  +
    /// async fn handler(input: input::NonStreamingBlobOperationInput) -> Result<output::NonStreamingBlobOperationOutput, std::convert::Infallible> {
        1215  +
    ///     todo!()
        1216  +
    /// }
        1217  +
    ///
        1218  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1219  +
    /// let svc = ::tower::util::service_fn(handler);
        1220  +
    /// let app = ConstraintsService::builder(config)
        1221  +
    ///     .non_streaming_blob_operation_service(svc)
        1222  +
    ///     /* Set other handlers */
        1223  +
    ///     .build()
        1224  +
    ///     .unwrap();
        1225  +
    /// # let app: ConstraintsService<::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;
        1226  +
    /// ```
        1227  +
    ///
        1228  +
                    pub fn non_streaming_blob_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1229  +
                    where
        1230  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::NonStreamingBlobOperation, ServiceExtractors>,
        1231  +
        1232  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1233  +
                            ConstraintsService<L>,
        1234  +
                            crate::operation_shape::NonStreamingBlobOperation,
        1235  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::NonStreamingBlobOperation, S>
        1236  +
                        >,
        1237  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1238  +
                            ConstraintsService<L>,
        1239  +
                            crate::operation_shape::NonStreamingBlobOperation,
        1240  +
                            ModelPl::Output
        1241  +
                        >,
        1242  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1243  +
                            ConstraintsService<L>,
        1244  +
                            crate::operation_shape::NonStreamingBlobOperation,
        1245  +
                            <
        1246  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1247  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1248  +
                                    ConstraintsService<L>,
        1249  +
                                    crate::operation_shape::NonStreamingBlobOperation,
        1250  +
                                    ModelPl::Output
        1251  +
                                >
        1252  +
                            >::Output
        1253  +
                        >,
        1254  +
        1255  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1256  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1257  +
        1258  +
                    {
        1259  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1260  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1261  +
        let svc = crate::operation_shape::NonStreamingBlobOperation::from_service(service);
        1262  +
        let svc = self.model_plugin.apply(svc);
        1263  +
        let svc =
        1264  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1265  +
                .apply(svc);
        1266  +
        let svc = self.http_plugin.apply(svc);
        1267  +
        self.non_streaming_blob_operation_custom(svc)
        1268  +
    }
        1269  +
        1270  +
    /// Sets the [`NonStreamingBlobOperation`](crate::operation_shape::NonStreamingBlobOperation) to a custom [`Service`](tower::Service).
        1271  +
    /// not constrained by the Smithy contract.
        1272  +
    fn non_streaming_blob_operation_custom<S>(mut self, svc: S) -> Self
        1273  +
    where
        1274  +
        S: ::tower::Service<
        1275  +
                ::http::Request<Body>,
        1276  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1277  +
                Error = ::std::convert::Infallible,
        1278  +
            > + Clone
        1279  +
            + Send
        1280  +
            + 'static,
        1281  +
        S::Future: Send + 'static,
        1282  +
    {
        1283  +
        self.non_streaming_blob_operation =
        1284  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1285  +
        self
        1286  +
    }
        1287  +
        1288  +
    /// Sets the [`QueryParamsTargetingLengthMapOperation`](crate::operation_shape::QueryParamsTargetingLengthMapOperation) operation.
        1289  +
    ///
        1290  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1291  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1292  +
    ///
        1293  +
    /// # Example
        1294  +
    ///
        1295  +
    /// ```no_run
        1296  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1297  +
    ///
        1298  +
    /// use constraints_http0x::{input, output, error};
        1299  +
    ///
        1300  +
    /// async fn handler(input: input::QueryParamsTargetingLengthMapOperationInput) -> Result<output::QueryParamsTargetingLengthMapOperationOutput, error::QueryParamsTargetingLengthMapOperationError> {
        1301  +
    ///     todo!()
        1302  +
    /// }
        1303  +
    ///
        1304  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1305  +
    /// let app = ConstraintsService::builder(config)
        1306  +
    ///     .query_params_targeting_length_map_operation(handler)
        1307  +
    ///     /* Set other handlers */
        1308  +
    ///     .build()
        1309  +
    ///     .unwrap();
        1310  +
    /// # let app: ConstraintsService<::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;
        1311  +
    /// ```
        1312  +
    ///
        1313  +
                    pub fn query_params_targeting_length_map_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1314  +
                    where
        1315  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingLengthMapOperation, HandlerExtractors>,
        1316  +
        1317  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1318  +
                            ConstraintsService<L>,
        1319  +
                            crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        1320  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingLengthMapOperation, HandlerType>
        1321  +
                        >,
        1322  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1323  +
                            ConstraintsService<L>,
        1324  +
                            crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        1325  +
                            ModelPl::Output
        1326  +
                        >,
        1327  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1328  +
                            ConstraintsService<L>,
        1329  +
                            crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        1330  +
                            <
        1331  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1332  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1333  +
                                    ConstraintsService<L>,
        1334  +
                                    crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        1335  +
                                    ModelPl::Output
        1336  +
                                >
        1337  +
                            >::Output
        1338  +
                        >,
        1339  +
        1340  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1341  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1342  +
        1343  +
                    {
        1344  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1345  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1346  +
        let svc =
        1347  +
            crate::operation_shape::QueryParamsTargetingLengthMapOperation::from_handler(handler);
        1348  +
        let svc = self.model_plugin.apply(svc);
        1349  +
        let svc =
        1350  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1351  +
                .apply(svc);
        1352  +
        let svc = self.http_plugin.apply(svc);
        1353  +
        self.query_params_targeting_length_map_operation_custom(svc)
        1354  +
    }
        1355  +
        1356  +
    /// Sets the [`QueryParamsTargetingLengthMapOperation`](crate::operation_shape::QueryParamsTargetingLengthMapOperation) operation.
        1357  +
    ///
        1358  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1359  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1360  +
    ///
        1361  +
    /// # Example
        1362  +
    ///
        1363  +
    /// ```no_run
        1364  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1365  +
    ///
        1366  +
    /// use constraints_http0x::{input, output, error};
        1367  +
    ///
        1368  +
    /// async fn handler(input: input::QueryParamsTargetingLengthMapOperationInput) -> Result<output::QueryParamsTargetingLengthMapOperationOutput, error::QueryParamsTargetingLengthMapOperationError> {
        1369  +
    ///     todo!()
        1370  +
    /// }
        1371  +
    ///
        1372  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1373  +
    /// let svc = ::tower::util::service_fn(handler);
        1374  +
    /// let app = ConstraintsService::builder(config)
        1375  +
    ///     .query_params_targeting_length_map_operation_service(svc)
        1376  +
    ///     /* Set other handlers */
        1377  +
    ///     .build()
        1378  +
    ///     .unwrap();
        1379  +
    /// # let app: ConstraintsService<::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;
        1380  +
    /// ```
        1381  +
    ///
        1382  +
                    pub fn query_params_targeting_length_map_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1383  +
                    where
        1384  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingLengthMapOperation, ServiceExtractors>,
        1385  +
        1386  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1387  +
                            ConstraintsService<L>,
        1388  +
                            crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        1389  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingLengthMapOperation, S>
        1390  +
                        >,
        1391  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1392  +
                            ConstraintsService<L>,
        1393  +
                            crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        1394  +
                            ModelPl::Output
        1395  +
                        >,
        1396  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1397  +
                            ConstraintsService<L>,
        1398  +
                            crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        1399  +
                            <
        1400  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1401  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1402  +
                                    ConstraintsService<L>,
        1403  +
                                    crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        1404  +
                                    ModelPl::Output
        1405  +
                                >
        1406  +
                            >::Output
        1407  +
                        >,
        1408  +
        1409  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1410  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1411  +
        1412  +
                    {
        1413  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1414  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1415  +
        let svc =
        1416  +
            crate::operation_shape::QueryParamsTargetingLengthMapOperation::from_service(service);
        1417  +
        let svc = self.model_plugin.apply(svc);
        1418  +
        let svc =
        1419  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1420  +
                .apply(svc);
        1421  +
        let svc = self.http_plugin.apply(svc);
        1422  +
        self.query_params_targeting_length_map_operation_custom(svc)
        1423  +
    }
        1424  +
        1425  +
    /// Sets the [`QueryParamsTargetingLengthMapOperation`](crate::operation_shape::QueryParamsTargetingLengthMapOperation) to a custom [`Service`](tower::Service).
        1426  +
    /// not constrained by the Smithy contract.
        1427  +
    fn query_params_targeting_length_map_operation_custom<S>(mut self, svc: S) -> Self
        1428  +
    where
        1429  +
        S: ::tower::Service<
        1430  +
                ::http::Request<Body>,
        1431  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1432  +
                Error = ::std::convert::Infallible,
        1433  +
            > + Clone
        1434  +
            + Send
        1435  +
            + 'static,
        1436  +
        S::Future: Send + 'static,
        1437  +
    {
        1438  +
        self.query_params_targeting_length_map_operation =
        1439  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1440  +
        self
        1441  +
    }
        1442  +
        1443  +
    /// Sets the [`QueryParamsTargetingMapOfEnumStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation) operation.
        1444  +
    ///
        1445  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1446  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1447  +
    ///
        1448  +
    /// # Example
        1449  +
    ///
        1450  +
    /// ```no_run
        1451  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1452  +
    ///
        1453  +
    /// use constraints_http0x::{input, output, error};
        1454  +
    ///
        1455  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfEnumStringOperationInput) -> Result<output::QueryParamsTargetingMapOfEnumStringOperationOutput, error::QueryParamsTargetingMapOfEnumStringOperationError> {
        1456  +
    ///     todo!()
        1457  +
    /// }
        1458  +
    ///
        1459  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1460  +
    /// let app = ConstraintsService::builder(config)
        1461  +
    ///     .query_params_targeting_map_of_enum_string_operation(handler)
        1462  +
    ///     /* Set other handlers */
        1463  +
    ///     .build()
        1464  +
    ///     .unwrap();
        1465  +
    /// # let app: ConstraintsService<::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;
        1466  +
    /// ```
        1467  +
    ///
        1468  +
                    pub fn query_params_targeting_map_of_enum_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1469  +
                    where
        1470  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation, HandlerExtractors>,
        1471  +
        1472  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1473  +
                            ConstraintsService<L>,
        1474  +
                            crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        1475  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation, HandlerType>
        1476  +
                        >,
        1477  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1478  +
                            ConstraintsService<L>,
        1479  +
                            crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        1480  +
                            ModelPl::Output
        1481  +
                        >,
        1482  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1483  +
                            ConstraintsService<L>,
        1484  +
                            crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        1485  +
                            <
        1486  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1487  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1488  +
                                    ConstraintsService<L>,
        1489  +
                                    crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        1490  +
                                    ModelPl::Output
        1491  +
                                >
        1492  +
                            >::Output
        1493  +
                        >,
        1494  +
        1495  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1496  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1497  +
        1498  +
                    {
        1499  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1500  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1501  +
        let svc =
        1502  +
            crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation::from_handler(
        1503  +
                handler,
        1504  +
            );
        1505  +
        let svc = self.model_plugin.apply(svc);
        1506  +
        let svc =
        1507  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1508  +
                .apply(svc);
        1509  +
        let svc = self.http_plugin.apply(svc);
        1510  +
        self.query_params_targeting_map_of_enum_string_operation_custom(svc)
        1511  +
    }
        1512  +
        1513  +
    /// Sets the [`QueryParamsTargetingMapOfEnumStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation) operation.
        1514  +
    ///
        1515  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1516  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1517  +
    ///
        1518  +
    /// # Example
        1519  +
    ///
        1520  +
    /// ```no_run
        1521  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1522  +
    ///
        1523  +
    /// use constraints_http0x::{input, output, error};
        1524  +
    ///
        1525  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfEnumStringOperationInput) -> Result<output::QueryParamsTargetingMapOfEnumStringOperationOutput, error::QueryParamsTargetingMapOfEnumStringOperationError> {
        1526  +
    ///     todo!()
        1527  +
    /// }
        1528  +
    ///
        1529  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1530  +
    /// let svc = ::tower::util::service_fn(handler);
        1531  +
    /// let app = ConstraintsService::builder(config)
        1532  +
    ///     .query_params_targeting_map_of_enum_string_operation_service(svc)
        1533  +
    ///     /* Set other handlers */
        1534  +
    ///     .build()
        1535  +
    ///     .unwrap();
        1536  +
    /// # let app: ConstraintsService<::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;
        1537  +
    /// ```
        1538  +
    ///
        1539  +
                    pub fn query_params_targeting_map_of_enum_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1540  +
                    where
        1541  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation, ServiceExtractors>,
        1542  +
        1543  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1544  +
                            ConstraintsService<L>,
        1545  +
                            crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        1546  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation, S>
        1547  +
                        >,
        1548  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1549  +
                            ConstraintsService<L>,
        1550  +
                            crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        1551  +
                            ModelPl::Output
        1552  +
                        >,
        1553  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1554  +
                            ConstraintsService<L>,
        1555  +
                            crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        1556  +
                            <
        1557  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1558  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1559  +
                                    ConstraintsService<L>,
        1560  +
                                    crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        1561  +
                                    ModelPl::Output
        1562  +
                                >
        1563  +
                            >::Output
        1564  +
                        >,
        1565  +
        1566  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1567  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1568  +
        1569  +
                    {
        1570  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1571  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1572  +
        let svc =
        1573  +
            crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation::from_service(
        1574  +
                service,
        1575  +
            );
        1576  +
        let svc = self.model_plugin.apply(svc);
        1577  +
        let svc =
        1578  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1579  +
                .apply(svc);
        1580  +
        let svc = self.http_plugin.apply(svc);
        1581  +
        self.query_params_targeting_map_of_enum_string_operation_custom(svc)
        1582  +
    }
        1583  +
        1584  +
    /// Sets the [`QueryParamsTargetingMapOfEnumStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation) to a custom [`Service`](tower::Service).
        1585  +
    /// not constrained by the Smithy contract.
        1586  +
    fn query_params_targeting_map_of_enum_string_operation_custom<S>(mut self, svc: S) -> Self
        1587  +
    where
        1588  +
        S: ::tower::Service<
        1589  +
                ::http::Request<Body>,
        1590  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1591  +
                Error = ::std::convert::Infallible,
        1592  +
            > + Clone
        1593  +
            + Send
        1594  +
            + 'static,
        1595  +
        S::Future: Send + 'static,
        1596  +
    {
        1597  +
        self.query_params_targeting_map_of_enum_string_operation =
        1598  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1599  +
        self
        1600  +
    }
        1601  +
        1602  +
    /// Sets the [`QueryParamsTargetingMapOfLengthListOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation) operation.
        1603  +
    ///
        1604  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1605  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1606  +
    ///
        1607  +
    /// # Example
        1608  +
    ///
        1609  +
    /// ```no_run
        1610  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1611  +
    ///
        1612  +
    /// use constraints_http0x::{input, output, error};
        1613  +
    ///
        1614  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfLengthListOfPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfLengthListOfPatternStringOperationOutput, error::QueryParamsTargetingMapOfLengthListOfPatternStringOperationError> {
        1615  +
    ///     todo!()
        1616  +
    /// }
        1617  +
    ///
        1618  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1619  +
    /// let app = ConstraintsService::builder(config)
        1620  +
    ///     .query_params_targeting_map_of_length_list_of_pattern_string_operation(handler)
        1621  +
    ///     /* Set other handlers */
        1622  +
    ///     .build()
        1623  +
    ///     .unwrap();
        1624  +
    /// # let app: ConstraintsService<::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;
        1625  +
    /// ```
        1626  +
    ///
        1627  +
                    pub fn query_params_targeting_map_of_length_list_of_pattern_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1628  +
                    where
        1629  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation, HandlerExtractors>,
        1630  +
        1631  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1632  +
                            ConstraintsService<L>,
        1633  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        1634  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation, HandlerType>
        1635  +
                        >,
        1636  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1637  +
                            ConstraintsService<L>,
        1638  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        1639  +
                            ModelPl::Output
        1640  +
                        >,
        1641  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1642  +
                            ConstraintsService<L>,
        1643  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        1644  +
                            <
        1645  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1646  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1647  +
                                    ConstraintsService<L>,
        1648  +
                                    crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        1649  +
                                    ModelPl::Output
        1650  +
                                >
        1651  +
                            >::Output
        1652  +
                        >,
        1653  +
        1654  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1655  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1656  +
        1657  +
                    {
        1658  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1659  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1660  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation::from_handler(handler);
        1661  +
        let svc = self.model_plugin.apply(svc);
        1662  +
        let svc =
        1663  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1664  +
                .apply(svc);
        1665  +
        let svc = self.http_plugin.apply(svc);
        1666  +
        self.query_params_targeting_map_of_length_list_of_pattern_string_operation_custom(svc)
        1667  +
    }
        1668  +
        1669  +
    /// Sets the [`QueryParamsTargetingMapOfLengthListOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation) operation.
        1670  +
    ///
        1671  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1672  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1673  +
    ///
        1674  +
    /// # Example
        1675  +
    ///
        1676  +
    /// ```no_run
        1677  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1678  +
    ///
        1679  +
    /// use constraints_http0x::{input, output, error};
        1680  +
    ///
        1681  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfLengthListOfPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfLengthListOfPatternStringOperationOutput, error::QueryParamsTargetingMapOfLengthListOfPatternStringOperationError> {
        1682  +
    ///     todo!()
        1683  +
    /// }
        1684  +
    ///
        1685  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1686  +
    /// let svc = ::tower::util::service_fn(handler);
        1687  +
    /// let app = ConstraintsService::builder(config)
        1688  +
    ///     .query_params_targeting_map_of_length_list_of_pattern_string_operation_service(svc)
        1689  +
    ///     /* Set other handlers */
        1690  +
    ///     .build()
        1691  +
    ///     .unwrap();
        1692  +
    /// # let app: ConstraintsService<::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;
        1693  +
    /// ```
        1694  +
    ///
        1695  +
                    pub fn query_params_targeting_map_of_length_list_of_pattern_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1696  +
                    where
        1697  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation, ServiceExtractors>,
        1698  +
        1699  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1700  +
                            ConstraintsService<L>,
        1701  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        1702  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation, S>
        1703  +
                        >,
        1704  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1705  +
                            ConstraintsService<L>,
        1706  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        1707  +
                            ModelPl::Output
        1708  +
                        >,
        1709  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1710  +
                            ConstraintsService<L>,
        1711  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        1712  +
                            <
        1713  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1714  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1715  +
                                    ConstraintsService<L>,
        1716  +
                                    crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        1717  +
                                    ModelPl::Output
        1718  +
                                >
        1719  +
                            >::Output
        1720  +
                        >,
        1721  +
        1722  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1723  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1724  +
        1725  +
                    {
        1726  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1727  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1728  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation::from_service(service);
        1729  +
        let svc = self.model_plugin.apply(svc);
        1730  +
        let svc =
        1731  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1732  +
                .apply(svc);
        1733  +
        let svc = self.http_plugin.apply(svc);
        1734  +
        self.query_params_targeting_map_of_length_list_of_pattern_string_operation_custom(svc)
        1735  +
    }
        1736  +
        1737  +
    /// Sets the [`QueryParamsTargetingMapOfLengthListOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation) to a custom [`Service`](tower::Service).
        1738  +
    /// not constrained by the Smithy contract.
        1739  +
    fn query_params_targeting_map_of_length_list_of_pattern_string_operation_custom<S>(
        1740  +
        mut self,
        1741  +
        svc: S,
        1742  +
    ) -> Self
        1743  +
    where
        1744  +
        S: ::tower::Service<
        1745  +
                ::http::Request<Body>,
        1746  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1747  +
                Error = ::std::convert::Infallible,
        1748  +
            > + Clone
        1749  +
            + Send
        1750  +
            + 'static,
        1751  +
        S::Future: Send + 'static,
        1752  +
    {
        1753  +
        self.query_params_targeting_map_of_length_list_of_pattern_string_operation =
        1754  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1755  +
        self
        1756  +
    }
        1757  +
        1758  +
    /// Sets the [`QueryParamsTargetingMapOfLengthPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation) operation.
        1759  +
    ///
        1760  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1761  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1762  +
    ///
        1763  +
    /// # Example
        1764  +
    ///
        1765  +
    /// ```no_run
        1766  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1767  +
    ///
        1768  +
    /// use constraints_http0x::{input, output, error};
        1769  +
    ///
        1770  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfLengthPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfLengthPatternStringOperationOutput, error::QueryParamsTargetingMapOfLengthPatternStringOperationError> {
        1771  +
    ///     todo!()
        1772  +
    /// }
        1773  +
    ///
        1774  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1775  +
    /// let app = ConstraintsService::builder(config)
        1776  +
    ///     .query_params_targeting_map_of_length_pattern_string_operation(handler)
        1777  +
    ///     /* Set other handlers */
        1778  +
    ///     .build()
        1779  +
    ///     .unwrap();
        1780  +
    /// # let app: ConstraintsService<::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;
        1781  +
    /// ```
        1782  +
    ///
        1783  +
                    pub fn query_params_targeting_map_of_length_pattern_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1784  +
                    where
        1785  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation, HandlerExtractors>,
        1786  +
        1787  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1788  +
                            ConstraintsService<L>,
        1789  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        1790  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation, HandlerType>
        1791  +
                        >,
        1792  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1793  +
                            ConstraintsService<L>,
        1794  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        1795  +
                            ModelPl::Output
        1796  +
                        >,
        1797  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1798  +
                            ConstraintsService<L>,
        1799  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        1800  +
                            <
        1801  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1802  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1803  +
                                    ConstraintsService<L>,
        1804  +
                                    crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        1805  +
                                    ModelPl::Output
        1806  +
                                >
        1807  +
                            >::Output
        1808  +
                        >,
        1809  +
        1810  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1811  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1812  +
        1813  +
                    {
        1814  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1815  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1816  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation::from_handler(handler);
        1817  +
        let svc = self.model_plugin.apply(svc);
        1818  +
        let svc =
        1819  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1820  +
                .apply(svc);
        1821  +
        let svc = self.http_plugin.apply(svc);
        1822  +
        self.query_params_targeting_map_of_length_pattern_string_operation_custom(svc)
        1823  +
    }
        1824  +
        1825  +
    /// Sets the [`QueryParamsTargetingMapOfLengthPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation) operation.
        1826  +
    ///
        1827  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1828  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1829  +
    ///
        1830  +
    /// # Example
        1831  +
    ///
        1832  +
    /// ```no_run
        1833  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1834  +
    ///
        1835  +
    /// use constraints_http0x::{input, output, error};
        1836  +
    ///
        1837  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfLengthPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfLengthPatternStringOperationOutput, error::QueryParamsTargetingMapOfLengthPatternStringOperationError> {
        1838  +
    ///     todo!()
        1839  +
    /// }
        1840  +
    ///
        1841  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1842  +
    /// let svc = ::tower::util::service_fn(handler);
        1843  +
    /// let app = ConstraintsService::builder(config)
        1844  +
    ///     .query_params_targeting_map_of_length_pattern_string_operation_service(svc)
        1845  +
    ///     /* Set other handlers */
        1846  +
    ///     .build()
        1847  +
    ///     .unwrap();
        1848  +
    /// # let app: ConstraintsService<::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;
        1849  +
    /// ```
        1850  +
    ///
        1851  +
                    pub fn query_params_targeting_map_of_length_pattern_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        1852  +
                    where
        1853  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation, ServiceExtractors>,
        1854  +
        1855  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1856  +
                            ConstraintsService<L>,
        1857  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        1858  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation, S>
        1859  +
                        >,
        1860  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1861  +
                            ConstraintsService<L>,
        1862  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        1863  +
                            ModelPl::Output
        1864  +
                        >,
        1865  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1866  +
                            ConstraintsService<L>,
        1867  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        1868  +
                            <
        1869  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1870  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1871  +
                                    ConstraintsService<L>,
        1872  +
                                    crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        1873  +
                                    ModelPl::Output
        1874  +
                                >
        1875  +
                            >::Output
        1876  +
                        >,
        1877  +
        1878  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1879  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1880  +
        1881  +
                    {
        1882  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1883  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1884  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation::from_service(service);
        1885  +
        let svc = self.model_plugin.apply(svc);
        1886  +
        let svc =
        1887  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1888  +
                .apply(svc);
        1889  +
        let svc = self.http_plugin.apply(svc);
        1890  +
        self.query_params_targeting_map_of_length_pattern_string_operation_custom(svc)
        1891  +
    }
        1892  +
        1893  +
    /// Sets the [`QueryParamsTargetingMapOfLengthPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation) to a custom [`Service`](tower::Service).
        1894  +
    /// not constrained by the Smithy contract.
        1895  +
    fn query_params_targeting_map_of_length_pattern_string_operation_custom<S>(
        1896  +
        mut self,
        1897  +
        svc: S,
        1898  +
    ) -> Self
        1899  +
    where
        1900  +
        S: ::tower::Service<
        1901  +
                ::http::Request<Body>,
        1902  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        1903  +
                Error = ::std::convert::Infallible,
        1904  +
            > + Clone
        1905  +
            + Send
        1906  +
            + 'static,
        1907  +
        S::Future: Send + 'static,
        1908  +
    {
        1909  +
        self.query_params_targeting_map_of_length_pattern_string_operation =
        1910  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        1911  +
        self
        1912  +
    }
        1913  +
        1914  +
    /// Sets the [`QueryParamsTargetingMapOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation) operation.
        1915  +
    ///
        1916  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1917  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1918  +
    ///
        1919  +
    /// # Example
        1920  +
    ///
        1921  +
    /// ```no_run
        1922  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1923  +
    ///
        1924  +
    /// use constraints_http0x::{input, output, error};
        1925  +
    ///
        1926  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfLengthStringOperationInput) -> Result<output::QueryParamsTargetingMapOfLengthStringOperationOutput, error::QueryParamsTargetingMapOfLengthStringOperationError> {
        1927  +
    ///     todo!()
        1928  +
    /// }
        1929  +
    ///
        1930  +
    /// let config = ConstraintsServiceConfig::builder().build();
        1931  +
    /// let app = ConstraintsService::builder(config)
        1932  +
    ///     .query_params_targeting_map_of_length_string_operation(handler)
        1933  +
    ///     /* Set other handlers */
        1934  +
    ///     .build()
        1935  +
    ///     .unwrap();
        1936  +
    /// # let app: ConstraintsService<::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;
        1937  +
    /// ```
        1938  +
    ///
        1939  +
                    pub fn query_params_targeting_map_of_length_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        1940  +
                    where
        1941  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation, HandlerExtractors>,
        1942  +
        1943  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1944  +
                            ConstraintsService<L>,
        1945  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        1946  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation, HandlerType>
        1947  +
                        >,
        1948  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1949  +
                            ConstraintsService<L>,
        1950  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        1951  +
                            ModelPl::Output
        1952  +
                        >,
        1953  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        1954  +
                            ConstraintsService<L>,
        1955  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        1956  +
                            <
        1957  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        1958  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        1959  +
                                    ConstraintsService<L>,
        1960  +
                                    crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        1961  +
                                    ModelPl::Output
        1962  +
                                >
        1963  +
                            >::Output
        1964  +
                        >,
        1965  +
        1966  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1967  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1968  +
        1969  +
                    {
        1970  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        1971  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        1972  +
        let svc =
        1973  +
            crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation::from_handler(
        1974  +
                handler,
        1975  +
            );
        1976  +
        let svc = self.model_plugin.apply(svc);
        1977  +
        let svc =
        1978  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        1979  +
                .apply(svc);
        1980  +
        let svc = self.http_plugin.apply(svc);
        1981  +
        self.query_params_targeting_map_of_length_string_operation_custom(svc)
        1982  +
    }
        1983  +
        1984  +
    /// Sets the [`QueryParamsTargetingMapOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation) operation.
        1985  +
    ///
        1986  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        1987  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        1988  +
    ///
        1989  +
    /// # Example
        1990  +
    ///
        1991  +
    /// ```no_run
        1992  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        1993  +
    ///
        1994  +
    /// use constraints_http0x::{input, output, error};
        1995  +
    ///
        1996  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfLengthStringOperationInput) -> Result<output::QueryParamsTargetingMapOfLengthStringOperationOutput, error::QueryParamsTargetingMapOfLengthStringOperationError> {
        1997  +
    ///     todo!()
        1998  +
    /// }
        1999  +
    ///
        2000  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2001  +
    /// let svc = ::tower::util::service_fn(handler);
        2002  +
    /// let app = ConstraintsService::builder(config)
        2003  +
    ///     .query_params_targeting_map_of_length_string_operation_service(svc)
        2004  +
    ///     /* Set other handlers */
        2005  +
    ///     .build()
        2006  +
    ///     .unwrap();
        2007  +
    /// # let app: ConstraintsService<::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;
        2008  +
    /// ```
        2009  +
    ///
        2010  +
                    pub fn query_params_targeting_map_of_length_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2011  +
                    where
        2012  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation, ServiceExtractors>,
        2013  +
        2014  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2015  +
                            ConstraintsService<L>,
        2016  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        2017  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation, S>
        2018  +
                        >,
        2019  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2020  +
                            ConstraintsService<L>,
        2021  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        2022  +
                            ModelPl::Output
        2023  +
                        >,
        2024  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2025  +
                            ConstraintsService<L>,
        2026  +
                            crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        2027  +
                            <
        2028  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2029  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2030  +
                                    ConstraintsService<L>,
        2031  +
                                    crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        2032  +
                                    ModelPl::Output
        2033  +
                                >
        2034  +
                            >::Output
        2035  +
                        >,
        2036  +
        2037  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2038  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2039  +
        2040  +
                    {
        2041  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2042  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2043  +
        let svc =
        2044  +
            crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation::from_service(
        2045  +
                service,
        2046  +
            );
        2047  +
        let svc = self.model_plugin.apply(svc);
        2048  +
        let svc =
        2049  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2050  +
                .apply(svc);
        2051  +
        let svc = self.http_plugin.apply(svc);
        2052  +
        self.query_params_targeting_map_of_length_string_operation_custom(svc)
        2053  +
    }
        2054  +
        2055  +
    /// Sets the [`QueryParamsTargetingMapOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation) to a custom [`Service`](tower::Service).
        2056  +
    /// not constrained by the Smithy contract.
        2057  +
    fn query_params_targeting_map_of_length_string_operation_custom<S>(mut self, svc: S) -> Self
        2058  +
    where
        2059  +
        S: ::tower::Service<
        2060  +
                ::http::Request<Body>,
        2061  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2062  +
                Error = ::std::convert::Infallible,
        2063  +
            > + Clone
        2064  +
            + Send
        2065  +
            + 'static,
        2066  +
        S::Future: Send + 'static,
        2067  +
    {
        2068  +
        self.query_params_targeting_map_of_length_string_operation =
        2069  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2070  +
        self
        2071  +
    }
        2072  +
        2073  +
    /// Sets the [`QueryParamsTargetingMapOfListOfEnumStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation) operation.
        2074  +
    ///
        2075  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2076  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2077  +
    ///
        2078  +
    /// # Example
        2079  +
    ///
        2080  +
    /// ```no_run
        2081  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2082  +
    ///
        2083  +
    /// use constraints_http0x::{input, output, error};
        2084  +
    ///
        2085  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfListOfEnumStringOperationInput) -> Result<output::QueryParamsTargetingMapOfListOfEnumStringOperationOutput, error::QueryParamsTargetingMapOfListOfEnumStringOperationError> {
        2086  +
    ///     todo!()
        2087  +
    /// }
        2088  +
    ///
        2089  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2090  +
    /// let app = ConstraintsService::builder(config)
        2091  +
    ///     .query_params_targeting_map_of_list_of_enum_string_operation(handler)
        2092  +
    ///     /* Set other handlers */
        2093  +
    ///     .build()
        2094  +
    ///     .unwrap();
        2095  +
    /// # let app: ConstraintsService<::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;
        2096  +
    /// ```
        2097  +
    ///
        2098  +
                    pub fn query_params_targeting_map_of_list_of_enum_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2099  +
                    where
        2100  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation, HandlerExtractors>,
        2101  +
        2102  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2103  +
                            ConstraintsService<L>,
        2104  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        2105  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation, HandlerType>
        2106  +
                        >,
        2107  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2108  +
                            ConstraintsService<L>,
        2109  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        2110  +
                            ModelPl::Output
        2111  +
                        >,
        2112  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2113  +
                            ConstraintsService<L>,
        2114  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        2115  +
                            <
        2116  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2117  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2118  +
                                    ConstraintsService<L>,
        2119  +
                                    crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        2120  +
                                    ModelPl::Output
        2121  +
                                >
        2122  +
                            >::Output
        2123  +
                        >,
        2124  +
        2125  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2126  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2127  +
        2128  +
                    {
        2129  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2130  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2131  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation::from_handler(handler);
        2132  +
        let svc = self.model_plugin.apply(svc);
        2133  +
        let svc =
        2134  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2135  +
                .apply(svc);
        2136  +
        let svc = self.http_plugin.apply(svc);
        2137  +
        self.query_params_targeting_map_of_list_of_enum_string_operation_custom(svc)
        2138  +
    }
        2139  +
        2140  +
    /// Sets the [`QueryParamsTargetingMapOfListOfEnumStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation) operation.
        2141  +
    ///
        2142  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2143  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2144  +
    ///
        2145  +
    /// # Example
        2146  +
    ///
        2147  +
    /// ```no_run
        2148  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2149  +
    ///
        2150  +
    /// use constraints_http0x::{input, output, error};
        2151  +
    ///
        2152  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfListOfEnumStringOperationInput) -> Result<output::QueryParamsTargetingMapOfListOfEnumStringOperationOutput, error::QueryParamsTargetingMapOfListOfEnumStringOperationError> {
        2153  +
    ///     todo!()
        2154  +
    /// }
        2155  +
    ///
        2156  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2157  +
    /// let svc = ::tower::util::service_fn(handler);
        2158  +
    /// let app = ConstraintsService::builder(config)
        2159  +
    ///     .query_params_targeting_map_of_list_of_enum_string_operation_service(svc)
        2160  +
    ///     /* Set other handlers */
        2161  +
    ///     .build()
        2162  +
    ///     .unwrap();
        2163  +
    /// # let app: ConstraintsService<::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;
        2164  +
    /// ```
        2165  +
    ///
        2166  +
                    pub fn query_params_targeting_map_of_list_of_enum_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2167  +
                    where
        2168  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation, ServiceExtractors>,
        2169  +
        2170  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2171  +
                            ConstraintsService<L>,
        2172  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        2173  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation, S>
        2174  +
                        >,
        2175  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2176  +
                            ConstraintsService<L>,
        2177  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        2178  +
                            ModelPl::Output
        2179  +
                        >,
        2180  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2181  +
                            ConstraintsService<L>,
        2182  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        2183  +
                            <
        2184  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2185  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2186  +
                                    ConstraintsService<L>,
        2187  +
                                    crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        2188  +
                                    ModelPl::Output
        2189  +
                                >
        2190  +
                            >::Output
        2191  +
                        >,
        2192  +
        2193  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2194  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2195  +
        2196  +
                    {
        2197  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2198  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2199  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation::from_service(service);
        2200  +
        let svc = self.model_plugin.apply(svc);
        2201  +
        let svc =
        2202  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2203  +
                .apply(svc);
        2204  +
        let svc = self.http_plugin.apply(svc);
        2205  +
        self.query_params_targeting_map_of_list_of_enum_string_operation_custom(svc)
        2206  +
    }
        2207  +
        2208  +
    /// Sets the [`QueryParamsTargetingMapOfListOfEnumStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation) to a custom [`Service`](tower::Service).
        2209  +
    /// not constrained by the Smithy contract.
        2210  +
    fn query_params_targeting_map_of_list_of_enum_string_operation_custom<S>(
        2211  +
        mut self,
        2212  +
        svc: S,
        2213  +
    ) -> Self
        2214  +
    where
        2215  +
        S: ::tower::Service<
        2216  +
                ::http::Request<Body>,
        2217  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2218  +
                Error = ::std::convert::Infallible,
        2219  +
            > + Clone
        2220  +
            + Send
        2221  +
            + 'static,
        2222  +
        S::Future: Send + 'static,
        2223  +
    {
        2224  +
        self.query_params_targeting_map_of_list_of_enum_string_operation =
        2225  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2226  +
        self
        2227  +
    }
        2228  +
        2229  +
    /// Sets the [`QueryParamsTargetingMapOfListOfLengthPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation) operation.
        2230  +
    ///
        2231  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2232  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2233  +
    ///
        2234  +
    /// # Example
        2235  +
    ///
        2236  +
    /// ```no_run
        2237  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2238  +
    ///
        2239  +
    /// use constraints_http0x::{input, output, error};
        2240  +
    ///
        2241  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfListOfLengthPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfListOfLengthPatternStringOperationOutput, error::QueryParamsTargetingMapOfListOfLengthPatternStringOperationError> {
        2242  +
    ///     todo!()
        2243  +
    /// }
        2244  +
    ///
        2245  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2246  +
    /// let app = ConstraintsService::builder(config)
        2247  +
    ///     .query_params_targeting_map_of_list_of_length_pattern_string_operation(handler)
        2248  +
    ///     /* Set other handlers */
        2249  +
    ///     .build()
        2250  +
    ///     .unwrap();
        2251  +
    /// # let app: ConstraintsService<::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;
        2252  +
    /// ```
        2253  +
    ///
        2254  +
                    pub fn query_params_targeting_map_of_list_of_length_pattern_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2255  +
                    where
        2256  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation, HandlerExtractors>,
        2257  +
        2258  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2259  +
                            ConstraintsService<L>,
        2260  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        2261  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation, HandlerType>
        2262  +
                        >,
        2263  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2264  +
                            ConstraintsService<L>,
        2265  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        2266  +
                            ModelPl::Output
        2267  +
                        >,
        2268  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2269  +
                            ConstraintsService<L>,
        2270  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        2271  +
                            <
        2272  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2273  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2274  +
                                    ConstraintsService<L>,
        2275  +
                                    crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        2276  +
                                    ModelPl::Output
        2277  +
                                >
        2278  +
                            >::Output
        2279  +
                        >,
        2280  +
        2281  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2282  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2283  +
        2284  +
                    {
        2285  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2286  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2287  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation::from_handler(handler);
        2288  +
        let svc = self.model_plugin.apply(svc);
        2289  +
        let svc =
        2290  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2291  +
                .apply(svc);
        2292  +
        let svc = self.http_plugin.apply(svc);
        2293  +
        self.query_params_targeting_map_of_list_of_length_pattern_string_operation_custom(svc)
        2294  +
    }
        2295  +
        2296  +
    /// Sets the [`QueryParamsTargetingMapOfListOfLengthPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation) operation.
        2297  +
    ///
        2298  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2299  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2300  +
    ///
        2301  +
    /// # Example
        2302  +
    ///
        2303  +
    /// ```no_run
        2304  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2305  +
    ///
        2306  +
    /// use constraints_http0x::{input, output, error};
        2307  +
    ///
        2308  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfListOfLengthPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfListOfLengthPatternStringOperationOutput, error::QueryParamsTargetingMapOfListOfLengthPatternStringOperationError> {
        2309  +
    ///     todo!()
        2310  +
    /// }
        2311  +
    ///
        2312  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2313  +
    /// let svc = ::tower::util::service_fn(handler);
        2314  +
    /// let app = ConstraintsService::builder(config)
        2315  +
    ///     .query_params_targeting_map_of_list_of_length_pattern_string_operation_service(svc)
        2316  +
    ///     /* Set other handlers */
        2317  +
    ///     .build()
        2318  +
    ///     .unwrap();
        2319  +
    /// # let app: ConstraintsService<::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;
        2320  +
    /// ```
        2321  +
    ///
        2322  +
                    pub fn query_params_targeting_map_of_list_of_length_pattern_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2323  +
                    where
        2324  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation, ServiceExtractors>,
        2325  +
        2326  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2327  +
                            ConstraintsService<L>,
        2328  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        2329  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation, S>
        2330  +
                        >,
        2331  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2332  +
                            ConstraintsService<L>,
        2333  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        2334  +
                            ModelPl::Output
        2335  +
                        >,
        2336  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2337  +
                            ConstraintsService<L>,
        2338  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        2339  +
                            <
        2340  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2341  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2342  +
                                    ConstraintsService<L>,
        2343  +
                                    crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        2344  +
                                    ModelPl::Output
        2345  +
                                >
        2346  +
                            >::Output
        2347  +
                        >,
        2348  +
        2349  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2350  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2351  +
        2352  +
                    {
        2353  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2354  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2355  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation::from_service(service);
        2356  +
        let svc = self.model_plugin.apply(svc);
        2357  +
        let svc =
        2358  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2359  +
                .apply(svc);
        2360  +
        let svc = self.http_plugin.apply(svc);
        2361  +
        self.query_params_targeting_map_of_list_of_length_pattern_string_operation_custom(svc)
        2362  +
    }
        2363  +
        2364  +
    /// Sets the [`QueryParamsTargetingMapOfListOfLengthPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation) to a custom [`Service`](tower::Service).
        2365  +
    /// not constrained by the Smithy contract.
        2366  +
    fn query_params_targeting_map_of_list_of_length_pattern_string_operation_custom<S>(
        2367  +
        mut self,
        2368  +
        svc: S,
        2369  +
    ) -> Self
        2370  +
    where
        2371  +
        S: ::tower::Service<
        2372  +
                ::http::Request<Body>,
        2373  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2374  +
                Error = ::std::convert::Infallible,
        2375  +
            > + Clone
        2376  +
            + Send
        2377  +
            + 'static,
        2378  +
        S::Future: Send + 'static,
        2379  +
    {
        2380  +
        self.query_params_targeting_map_of_list_of_length_pattern_string_operation =
        2381  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2382  +
        self
        2383  +
    }
        2384  +
        2385  +
    /// Sets the [`QueryParamsTargetingMapOfListOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation) operation.
        2386  +
    ///
        2387  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2388  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2389  +
    ///
        2390  +
    /// # Example
        2391  +
    ///
        2392  +
    /// ```no_run
        2393  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2394  +
    ///
        2395  +
    /// use constraints_http0x::{input, output, error};
        2396  +
    ///
        2397  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfListOfLengthStringOperationInput) -> Result<output::QueryParamsTargetingMapOfListOfLengthStringOperationOutput, error::QueryParamsTargetingMapOfListOfLengthStringOperationError> {
        2398  +
    ///     todo!()
        2399  +
    /// }
        2400  +
    ///
        2401  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2402  +
    /// let app = ConstraintsService::builder(config)
        2403  +
    ///     .query_params_targeting_map_of_list_of_length_string_operation(handler)
        2404  +
    ///     /* Set other handlers */
        2405  +
    ///     .build()
        2406  +
    ///     .unwrap();
        2407  +
    /// # let app: ConstraintsService<::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;
        2408  +
    /// ```
        2409  +
    ///
        2410  +
                    pub fn query_params_targeting_map_of_list_of_length_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2411  +
                    where
        2412  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation, HandlerExtractors>,
        2413  +
        2414  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2415  +
                            ConstraintsService<L>,
        2416  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        2417  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation, HandlerType>
        2418  +
                        >,
        2419  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2420  +
                            ConstraintsService<L>,
        2421  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        2422  +
                            ModelPl::Output
        2423  +
                        >,
        2424  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2425  +
                            ConstraintsService<L>,
        2426  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        2427  +
                            <
        2428  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2429  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2430  +
                                    ConstraintsService<L>,
        2431  +
                                    crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        2432  +
                                    ModelPl::Output
        2433  +
                                >
        2434  +
                            >::Output
        2435  +
                        >,
        2436  +
        2437  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2438  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2439  +
        2440  +
                    {
        2441  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2442  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2443  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation::from_handler(handler);
        2444  +
        let svc = self.model_plugin.apply(svc);
        2445  +
        let svc =
        2446  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2447  +
                .apply(svc);
        2448  +
        let svc = self.http_plugin.apply(svc);
        2449  +
        self.query_params_targeting_map_of_list_of_length_string_operation_custom(svc)
        2450  +
    }
        2451  +
        2452  +
    /// Sets the [`QueryParamsTargetingMapOfListOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation) operation.
        2453  +
    ///
        2454  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2455  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2456  +
    ///
        2457  +
    /// # Example
        2458  +
    ///
        2459  +
    /// ```no_run
        2460  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2461  +
    ///
        2462  +
    /// use constraints_http0x::{input, output, error};
        2463  +
    ///
        2464  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfListOfLengthStringOperationInput) -> Result<output::QueryParamsTargetingMapOfListOfLengthStringOperationOutput, error::QueryParamsTargetingMapOfListOfLengthStringOperationError> {
        2465  +
    ///     todo!()
        2466  +
    /// }
        2467  +
    ///
        2468  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2469  +
    /// let svc = ::tower::util::service_fn(handler);
        2470  +
    /// let app = ConstraintsService::builder(config)
        2471  +
    ///     .query_params_targeting_map_of_list_of_length_string_operation_service(svc)
        2472  +
    ///     /* Set other handlers */
        2473  +
    ///     .build()
        2474  +
    ///     .unwrap();
        2475  +
    /// # let app: ConstraintsService<::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;
        2476  +
    /// ```
        2477  +
    ///
        2478  +
                    pub fn query_params_targeting_map_of_list_of_length_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2479  +
                    where
        2480  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation, ServiceExtractors>,
        2481  +
        2482  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2483  +
                            ConstraintsService<L>,
        2484  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        2485  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation, S>
        2486  +
                        >,
        2487  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2488  +
                            ConstraintsService<L>,
        2489  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        2490  +
                            ModelPl::Output
        2491  +
                        >,
        2492  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2493  +
                            ConstraintsService<L>,
        2494  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        2495  +
                            <
        2496  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2497  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2498  +
                                    ConstraintsService<L>,
        2499  +
                                    crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        2500  +
                                    ModelPl::Output
        2501  +
                                >
        2502  +
                            >::Output
        2503  +
                        >,
        2504  +
        2505  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2506  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2507  +
        2508  +
                    {
        2509  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2510  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2511  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation::from_service(service);
        2512  +
        let svc = self.model_plugin.apply(svc);
        2513  +
        let svc =
        2514  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2515  +
                .apply(svc);
        2516  +
        let svc = self.http_plugin.apply(svc);
        2517  +
        self.query_params_targeting_map_of_list_of_length_string_operation_custom(svc)
        2518  +
    }
        2519  +
        2520  +
    /// Sets the [`QueryParamsTargetingMapOfListOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation) to a custom [`Service`](tower::Service).
        2521  +
    /// not constrained by the Smithy contract.
        2522  +
    fn query_params_targeting_map_of_list_of_length_string_operation_custom<S>(
        2523  +
        mut self,
        2524  +
        svc: S,
        2525  +
    ) -> Self
        2526  +
    where
        2527  +
        S: ::tower::Service<
        2528  +
                ::http::Request<Body>,
        2529  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2530  +
                Error = ::std::convert::Infallible,
        2531  +
            > + Clone
        2532  +
            + Send
        2533  +
            + 'static,
        2534  +
        S::Future: Send + 'static,
        2535  +
    {
        2536  +
        self.query_params_targeting_map_of_list_of_length_string_operation =
        2537  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2538  +
        self
        2539  +
    }
        2540  +
        2541  +
    /// Sets the [`QueryParamsTargetingMapOfListOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation) operation.
        2542  +
    ///
        2543  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2544  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2545  +
    ///
        2546  +
    /// # Example
        2547  +
    ///
        2548  +
    /// ```no_run
        2549  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2550  +
    ///
        2551  +
    /// use constraints_http0x::{input, output, error};
        2552  +
    ///
        2553  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfListOfPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfListOfPatternStringOperationOutput, error::QueryParamsTargetingMapOfListOfPatternStringOperationError> {
        2554  +
    ///     todo!()
        2555  +
    /// }
        2556  +
    ///
        2557  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2558  +
    /// let app = ConstraintsService::builder(config)
        2559  +
    ///     .query_params_targeting_map_of_list_of_pattern_string_operation(handler)
        2560  +
    ///     /* Set other handlers */
        2561  +
    ///     .build()
        2562  +
    ///     .unwrap();
        2563  +
    /// # let app: ConstraintsService<::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;
        2564  +
    /// ```
        2565  +
    ///
        2566  +
                    pub fn query_params_targeting_map_of_list_of_pattern_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2567  +
                    where
        2568  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation, HandlerExtractors>,
        2569  +
        2570  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2571  +
                            ConstraintsService<L>,
        2572  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        2573  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation, HandlerType>
        2574  +
                        >,
        2575  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2576  +
                            ConstraintsService<L>,
        2577  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        2578  +
                            ModelPl::Output
        2579  +
                        >,
        2580  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2581  +
                            ConstraintsService<L>,
        2582  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        2583  +
                            <
        2584  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2585  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2586  +
                                    ConstraintsService<L>,
        2587  +
                                    crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        2588  +
                                    ModelPl::Output
        2589  +
                                >
        2590  +
                            >::Output
        2591  +
                        >,
        2592  +
        2593  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2594  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2595  +
        2596  +
                    {
        2597  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2598  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2599  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation::from_handler(handler);
        2600  +
        let svc = self.model_plugin.apply(svc);
        2601  +
        let svc =
        2602  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2603  +
                .apply(svc);
        2604  +
        let svc = self.http_plugin.apply(svc);
        2605  +
        self.query_params_targeting_map_of_list_of_pattern_string_operation_custom(svc)
        2606  +
    }
        2607  +
        2608  +
    /// Sets the [`QueryParamsTargetingMapOfListOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation) operation.
        2609  +
    ///
        2610  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2611  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2612  +
    ///
        2613  +
    /// # Example
        2614  +
    ///
        2615  +
    /// ```no_run
        2616  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2617  +
    ///
        2618  +
    /// use constraints_http0x::{input, output, error};
        2619  +
    ///
        2620  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfListOfPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfListOfPatternStringOperationOutput, error::QueryParamsTargetingMapOfListOfPatternStringOperationError> {
        2621  +
    ///     todo!()
        2622  +
    /// }
        2623  +
    ///
        2624  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2625  +
    /// let svc = ::tower::util::service_fn(handler);
        2626  +
    /// let app = ConstraintsService::builder(config)
        2627  +
    ///     .query_params_targeting_map_of_list_of_pattern_string_operation_service(svc)
        2628  +
    ///     /* Set other handlers */
        2629  +
    ///     .build()
        2630  +
    ///     .unwrap();
        2631  +
    /// # let app: ConstraintsService<::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;
        2632  +
    /// ```
        2633  +
    ///
        2634  +
                    pub fn query_params_targeting_map_of_list_of_pattern_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2635  +
                    where
        2636  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation, ServiceExtractors>,
        2637  +
        2638  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2639  +
                            ConstraintsService<L>,
        2640  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        2641  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation, S>
        2642  +
                        >,
        2643  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2644  +
                            ConstraintsService<L>,
        2645  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        2646  +
                            ModelPl::Output
        2647  +
                        >,
        2648  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2649  +
                            ConstraintsService<L>,
        2650  +
                            crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        2651  +
                            <
        2652  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2653  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2654  +
                                    ConstraintsService<L>,
        2655  +
                                    crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        2656  +
                                    ModelPl::Output
        2657  +
                                >
        2658  +
                            >::Output
        2659  +
                        >,
        2660  +
        2661  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2662  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2663  +
        2664  +
                    {
        2665  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2666  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2667  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation::from_service(service);
        2668  +
        let svc = self.model_plugin.apply(svc);
        2669  +
        let svc =
        2670  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2671  +
                .apply(svc);
        2672  +
        let svc = self.http_plugin.apply(svc);
        2673  +
        self.query_params_targeting_map_of_list_of_pattern_string_operation_custom(svc)
        2674  +
    }
        2675  +
        2676  +
    /// Sets the [`QueryParamsTargetingMapOfListOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation) to a custom [`Service`](tower::Service).
        2677  +
    /// not constrained by the Smithy contract.
        2678  +
    fn query_params_targeting_map_of_list_of_pattern_string_operation_custom<S>(
        2679  +
        mut self,
        2680  +
        svc: S,
        2681  +
    ) -> Self
        2682  +
    where
        2683  +
        S: ::tower::Service<
        2684  +
                ::http::Request<Body>,
        2685  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2686  +
                Error = ::std::convert::Infallible,
        2687  +
            > + Clone
        2688  +
            + Send
        2689  +
            + 'static,
        2690  +
        S::Future: Send + 'static,
        2691  +
    {
        2692  +
        self.query_params_targeting_map_of_list_of_pattern_string_operation =
        2693  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2694  +
        self
        2695  +
    }
        2696  +
        2697  +
    /// Sets the [`QueryParamsTargetingMapOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation) operation.
        2698  +
    ///
        2699  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2700  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2701  +
    ///
        2702  +
    /// # Example
        2703  +
    ///
        2704  +
    /// ```no_run
        2705  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2706  +
    ///
        2707  +
    /// use constraints_http0x::{input, output, error};
        2708  +
    ///
        2709  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfPatternStringOperationOutput, error::QueryParamsTargetingMapOfPatternStringOperationError> {
        2710  +
    ///     todo!()
        2711  +
    /// }
        2712  +
    ///
        2713  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2714  +
    /// let app = ConstraintsService::builder(config)
        2715  +
    ///     .query_params_targeting_map_of_pattern_string_operation(handler)
        2716  +
    ///     /* Set other handlers */
        2717  +
    ///     .build()
        2718  +
    ///     .unwrap();
        2719  +
    /// # let app: ConstraintsService<::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;
        2720  +
    /// ```
        2721  +
    ///
        2722  +
                    pub fn query_params_targeting_map_of_pattern_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2723  +
                    where
        2724  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation, HandlerExtractors>,
        2725  +
        2726  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2727  +
                            ConstraintsService<L>,
        2728  +
                            crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        2729  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation, HandlerType>
        2730  +
                        >,
        2731  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2732  +
                            ConstraintsService<L>,
        2733  +
                            crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        2734  +
                            ModelPl::Output
        2735  +
                        >,
        2736  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2737  +
                            ConstraintsService<L>,
        2738  +
                            crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        2739  +
                            <
        2740  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2741  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2742  +
                                    ConstraintsService<L>,
        2743  +
                                    crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        2744  +
                                    ModelPl::Output
        2745  +
                                >
        2746  +
                            >::Output
        2747  +
                        >,
        2748  +
        2749  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2750  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2751  +
        2752  +
                    {
        2753  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2754  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2755  +
        let svc =
        2756  +
            crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation::from_handler(
        2757  +
                handler,
        2758  +
            );
        2759  +
        let svc = self.model_plugin.apply(svc);
        2760  +
        let svc =
        2761  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2762  +
                .apply(svc);
        2763  +
        let svc = self.http_plugin.apply(svc);
        2764  +
        self.query_params_targeting_map_of_pattern_string_operation_custom(svc)
        2765  +
    }
        2766  +
        2767  +
    /// Sets the [`QueryParamsTargetingMapOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation) operation.
        2768  +
    ///
        2769  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2770  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2771  +
    ///
        2772  +
    /// # Example
        2773  +
    ///
        2774  +
    /// ```no_run
        2775  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2776  +
    ///
        2777  +
    /// use constraints_http0x::{input, output, error};
        2778  +
    ///
        2779  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfPatternStringOperationInput) -> Result<output::QueryParamsTargetingMapOfPatternStringOperationOutput, error::QueryParamsTargetingMapOfPatternStringOperationError> {
        2780  +
    ///     todo!()
        2781  +
    /// }
        2782  +
    ///
        2783  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2784  +
    /// let svc = ::tower::util::service_fn(handler);
        2785  +
    /// let app = ConstraintsService::builder(config)
        2786  +
    ///     .query_params_targeting_map_of_pattern_string_operation_service(svc)
        2787  +
    ///     /* Set other handlers */
        2788  +
    ///     .build()
        2789  +
    ///     .unwrap();
        2790  +
    /// # let app: ConstraintsService<::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;
        2791  +
    /// ```
        2792  +
    ///
        2793  +
                    pub fn query_params_targeting_map_of_pattern_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2794  +
                    where
        2795  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation, ServiceExtractors>,
        2796  +
        2797  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2798  +
                            ConstraintsService<L>,
        2799  +
                            crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        2800  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation, S>
        2801  +
                        >,
        2802  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2803  +
                            ConstraintsService<L>,
        2804  +
                            crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        2805  +
                            ModelPl::Output
        2806  +
                        >,
        2807  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2808  +
                            ConstraintsService<L>,
        2809  +
                            crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        2810  +
                            <
        2811  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2812  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2813  +
                                    ConstraintsService<L>,
        2814  +
                                    crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        2815  +
                                    ModelPl::Output
        2816  +
                                >
        2817  +
                            >::Output
        2818  +
                        >,
        2819  +
        2820  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2821  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2822  +
        2823  +
                    {
        2824  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2825  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2826  +
        let svc =
        2827  +
            crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation::from_service(
        2828  +
                service,
        2829  +
            );
        2830  +
        let svc = self.model_plugin.apply(svc);
        2831  +
        let svc =
        2832  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2833  +
                .apply(svc);
        2834  +
        let svc = self.http_plugin.apply(svc);
        2835  +
        self.query_params_targeting_map_of_pattern_string_operation_custom(svc)
        2836  +
    }
        2837  +
        2838  +
    /// Sets the [`QueryParamsTargetingMapOfPatternStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation) to a custom [`Service`](tower::Service).
        2839  +
    /// not constrained by the Smithy contract.
        2840  +
    fn query_params_targeting_map_of_pattern_string_operation_custom<S>(mut self, svc: S) -> Self
        2841  +
    where
        2842  +
        S: ::tower::Service<
        2843  +
                ::http::Request<Body>,
        2844  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        2845  +
                Error = ::std::convert::Infallible,
        2846  +
            > + Clone
        2847  +
            + Send
        2848  +
            + 'static,
        2849  +
        S::Future: Send + 'static,
        2850  +
    {
        2851  +
        self.query_params_targeting_map_of_pattern_string_operation =
        2852  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        2853  +
        self
        2854  +
    }
        2855  +
        2856  +
    /// Sets the [`QueryParamsTargetingMapOfSetOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation) operation.
        2857  +
    ///
        2858  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2859  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2860  +
    ///
        2861  +
    /// # Example
        2862  +
    ///
        2863  +
    /// ```no_run
        2864  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2865  +
    ///
        2866  +
    /// use constraints_http0x::{input, output, error};
        2867  +
    ///
        2868  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfSetOfLengthStringOperationInput) -> Result<output::QueryParamsTargetingMapOfSetOfLengthStringOperationOutput, error::QueryParamsTargetingMapOfSetOfLengthStringOperationError> {
        2869  +
    ///     todo!()
        2870  +
    /// }
        2871  +
    ///
        2872  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2873  +
    /// let app = ConstraintsService::builder(config)
        2874  +
    ///     .query_params_targeting_map_of_set_of_length_string_operation(handler)
        2875  +
    ///     /* Set other handlers */
        2876  +
    ///     .build()
        2877  +
    ///     .unwrap();
        2878  +
    /// # let app: ConstraintsService<::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;
        2879  +
    /// ```
        2880  +
    ///
        2881  +
                    pub fn query_params_targeting_map_of_set_of_length_string_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        2882  +
                    where
        2883  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation, HandlerExtractors>,
        2884  +
        2885  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2886  +
                            ConstraintsService<L>,
        2887  +
                            crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        2888  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation, HandlerType>
        2889  +
                        >,
        2890  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2891  +
                            ConstraintsService<L>,
        2892  +
                            crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        2893  +
                            ModelPl::Output
        2894  +
                        >,
        2895  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2896  +
                            ConstraintsService<L>,
        2897  +
                            crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        2898  +
                            <
        2899  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2900  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2901  +
                                    ConstraintsService<L>,
        2902  +
                                    crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        2903  +
                                    ModelPl::Output
        2904  +
                                >
        2905  +
                            >::Output
        2906  +
                        >,
        2907  +
        2908  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2909  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2910  +
        2911  +
                    {
        2912  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2913  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2914  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation::from_handler(handler);
        2915  +
        let svc = self.model_plugin.apply(svc);
        2916  +
        let svc =
        2917  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2918  +
                .apply(svc);
        2919  +
        let svc = self.http_plugin.apply(svc);
        2920  +
        self.query_params_targeting_map_of_set_of_length_string_operation_custom(svc)
        2921  +
    }
        2922  +
        2923  +
    /// Sets the [`QueryParamsTargetingMapOfSetOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation) operation.
        2924  +
    ///
        2925  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        2926  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        2927  +
    ///
        2928  +
    /// # Example
        2929  +
    ///
        2930  +
    /// ```no_run
        2931  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        2932  +
    ///
        2933  +
    /// use constraints_http0x::{input, output, error};
        2934  +
    ///
        2935  +
    /// async fn handler(input: input::QueryParamsTargetingMapOfSetOfLengthStringOperationInput) -> Result<output::QueryParamsTargetingMapOfSetOfLengthStringOperationOutput, error::QueryParamsTargetingMapOfSetOfLengthStringOperationError> {
        2936  +
    ///     todo!()
        2937  +
    /// }
        2938  +
    ///
        2939  +
    /// let config = ConstraintsServiceConfig::builder().build();
        2940  +
    /// let svc = ::tower::util::service_fn(handler);
        2941  +
    /// let app = ConstraintsService::builder(config)
        2942  +
    ///     .query_params_targeting_map_of_set_of_length_string_operation_service(svc)
        2943  +
    ///     /* Set other handlers */
        2944  +
    ///     .build()
        2945  +
    ///     .unwrap();
        2946  +
    /// # let app: ConstraintsService<::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;
        2947  +
    /// ```
        2948  +
    ///
        2949  +
                    pub fn query_params_targeting_map_of_set_of_length_string_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        2950  +
                    where
        2951  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation, ServiceExtractors>,
        2952  +
        2953  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2954  +
                            ConstraintsService<L>,
        2955  +
                            crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        2956  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation, S>
        2957  +
                        >,
        2958  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2959  +
                            ConstraintsService<L>,
        2960  +
                            crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        2961  +
                            ModelPl::Output
        2962  +
                        >,
        2963  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        2964  +
                            ConstraintsService<L>,
        2965  +
                            crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        2966  +
                            <
        2967  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        2968  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        2969  +
                                    ConstraintsService<L>,
        2970  +
                                    crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        2971  +
                                    ModelPl::Output
        2972  +
                                >
        2973  +
                            >::Output
        2974  +
                        >,
        2975  +
        2976  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2977  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2978  +
        2979  +
                    {
        2980  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        2981  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        2982  +
        let svc = crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation::from_service(service);
        2983  +
        let svc = self.model_plugin.apply(svc);
        2984  +
        let svc =
        2985  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        2986  +
                .apply(svc);
        2987  +
        let svc = self.http_plugin.apply(svc);
        2988  +
        self.query_params_targeting_map_of_set_of_length_string_operation_custom(svc)
        2989  +
    }
        2990  +
        2991  +
    /// Sets the [`QueryParamsTargetingMapOfSetOfLengthStringOperation`](crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation) to a custom [`Service`](tower::Service).
        2992  +
    /// not constrained by the Smithy contract.
        2993  +
    fn query_params_targeting_map_of_set_of_length_string_operation_custom<S>(
        2994  +
        mut self,
        2995  +
        svc: S,
        2996  +
    ) -> Self
        2997  +
    where
        2998  +
        S: ::tower::Service<
        2999  +
                ::http::Request<Body>,
        3000  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3001  +
                Error = ::std::convert::Infallible,
        3002  +
            > + Clone
        3003  +
            + Send
        3004  +
            + 'static,
        3005  +
        S::Future: Send + 'static,
        3006  +
    {
        3007  +
        self.query_params_targeting_map_of_set_of_length_string_operation =
        3008  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3009  +
        self
        3010  +
    }
        3011  +
        3012  +
    /// Sets the [`StreamingBlobOperation`](crate::operation_shape::StreamingBlobOperation) operation.
        3013  +
    ///
        3014  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3015  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3016  +
    ///
        3017  +
    /// # Example
        3018  +
    ///
        3019  +
    /// ```no_run
        3020  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        3021  +
    ///
        3022  +
    /// use constraints_http0x::{input, output, error};
        3023  +
    ///
        3024  +
    /// async fn handler(input: input::StreamingBlobOperationInput) -> output::StreamingBlobOperationOutput {
        3025  +
    ///     todo!()
        3026  +
    /// }
        3027  +
    ///
        3028  +
    /// let config = ConstraintsServiceConfig::builder().build();
        3029  +
    /// let app = ConstraintsService::builder(config)
        3030  +
    ///     .streaming_blob_operation(handler)
        3031  +
    ///     /* Set other handlers */
        3032  +
    ///     .build()
        3033  +
    ///     .unwrap();
        3034  +
    /// # let app: ConstraintsService<::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;
        3035  +
    /// ```
        3036  +
    ///
        3037  +
                    pub fn streaming_blob_operation<HandlerType, HandlerExtractors, UpgradeExtractors>(self, handler: HandlerType) -> Self
        3038  +
                    where
        3039  +
                        HandlerType: ::aws_smithy_legacy_http_server::operation::Handler<crate::operation_shape::StreamingBlobOperation, HandlerExtractors>,
        3040  +
        3041  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3042  +
                            ConstraintsService<L>,
        3043  +
                            crate::operation_shape::StreamingBlobOperation,
        3044  +
                            ::aws_smithy_legacy_http_server::operation::IntoService<crate::operation_shape::StreamingBlobOperation, HandlerType>
        3045  +
                        >,
        3046  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3047  +
                            ConstraintsService<L>,
        3048  +
                            crate::operation_shape::StreamingBlobOperation,
        3049  +
                            ModelPl::Output
        3050  +
                        >,
        3051  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3052  +
                            ConstraintsService<L>,
        3053  +
                            crate::operation_shape::StreamingBlobOperation,
        3054  +
                            <
        3055  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3056  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3057  +
                                    ConstraintsService<L>,
        3058  +
                                    crate::operation_shape::StreamingBlobOperation,
        3059  +
                                    ModelPl::Output
        3060  +
                                >
        3061  +
                            >::Output
        3062  +
                        >,
        3063  +
        3064  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3065  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3066  +
        3067  +
                    {
        3068  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3069  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3070  +
        let svc = crate::operation_shape::StreamingBlobOperation::from_handler(handler);
        3071  +
        let svc = self.model_plugin.apply(svc);
        3072  +
        let svc =
        3073  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3074  +
                .apply(svc);
        3075  +
        let svc = self.http_plugin.apply(svc);
        3076  +
        self.streaming_blob_operation_custom(svc)
        3077  +
    }
        3078  +
        3079  +
    /// Sets the [`StreamingBlobOperation`](crate::operation_shape::StreamingBlobOperation) operation.
        3080  +
    ///
        3081  +
    /// This should be an async function satisfying the [`Handler`](::aws_smithy_legacy_http_server::operation::Handler) trait.
        3082  +
    /// See the [operation module documentation](::aws_smithy_legacy_http_server::operation) for more information.
        3083  +
    ///
        3084  +
    /// # Example
        3085  +
    ///
        3086  +
    /// ```no_run
        3087  +
    /// use constraints_http0x::{ConstraintsService, ConstraintsServiceConfig};
        3088  +
    ///
        3089  +
    /// use constraints_http0x::{input, output, error};
        3090  +
    ///
        3091  +
    /// async fn handler(input: input::StreamingBlobOperationInput) -> Result<output::StreamingBlobOperationOutput, std::convert::Infallible> {
        3092  +
    ///     todo!()
        3093  +
    /// }
        3094  +
    ///
        3095  +
    /// let config = ConstraintsServiceConfig::builder().build();
        3096  +
    /// let svc = ::tower::util::service_fn(handler);
        3097  +
    /// let app = ConstraintsService::builder(config)
        3098  +
    ///     .streaming_blob_operation_service(svc)
        3099  +
    ///     /* Set other handlers */
        3100  +
    ///     .build()
        3101  +
    ///     .unwrap();
        3102  +
    /// # let app: ConstraintsService<::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;
        3103  +
    /// ```
        3104  +
    ///
        3105  +
                    pub fn streaming_blob_operation_service<S, ServiceExtractors, UpgradeExtractors>(self, service: S) -> Self
        3106  +
                    where
        3107  +
                        S: ::aws_smithy_legacy_http_server::operation::OperationService<crate::operation_shape::StreamingBlobOperation, ServiceExtractors>,
        3108  +
        3109  +
                        ModelPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3110  +
                            ConstraintsService<L>,
        3111  +
                            crate::operation_shape::StreamingBlobOperation,
        3112  +
                            ::aws_smithy_legacy_http_server::operation::Normalize<crate::operation_shape::StreamingBlobOperation, S>
        3113  +
                        >,
        3114  +
                        ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3115  +
                            ConstraintsService<L>,
        3116  +
                            crate::operation_shape::StreamingBlobOperation,
        3117  +
                            ModelPl::Output
        3118  +
                        >,
        3119  +
                        HttpPl: ::aws_smithy_legacy_http_server::plugin::Plugin<
        3120  +
                            ConstraintsService<L>,
        3121  +
                            crate::operation_shape::StreamingBlobOperation,
        3122  +
                            <
        3123  +
                                ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
        3124  +
                                as ::aws_smithy_legacy_http_server::plugin::Plugin<
        3125  +
                                    ConstraintsService<L>,
        3126  +
                                    crate::operation_shape::StreamingBlobOperation,
        3127  +
                                    ModelPl::Output
        3128  +
                                >
        3129  +
                            >::Output
        3130  +
                        >,
        3131  +
        3132  +
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        3133  +
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        3134  +
        3135  +
                    {
        3136  +
        use ::aws_smithy_legacy_http_server::operation::OperationShapeExt;
        3137  +
        use ::aws_smithy_legacy_http_server::plugin::Plugin;
        3138  +
        let svc = crate::operation_shape::StreamingBlobOperation::from_service(service);
        3139  +
        let svc = self.model_plugin.apply(svc);
        3140  +
        let svc =
        3141  +
            ::aws_smithy_legacy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
        3142  +
                .apply(svc);
        3143  +
        let svc = self.http_plugin.apply(svc);
        3144  +
        self.streaming_blob_operation_custom(svc)
        3145  +
    }
        3146  +
        3147  +
    /// Sets the [`StreamingBlobOperation`](crate::operation_shape::StreamingBlobOperation) to a custom [`Service`](tower::Service).
        3148  +
    /// not constrained by the Smithy contract.
        3149  +
    fn streaming_blob_operation_custom<S>(mut self, svc: S) -> Self
        3150  +
    where
        3151  +
        S: ::tower::Service<
        3152  +
                ::http::Request<Body>,
        3153  +
                Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        3154  +
                Error = ::std::convert::Infallible,
        3155  +
            > + Clone
        3156  +
            + Send
        3157  +
            + 'static,
        3158  +
        S::Future: Send + 'static,
        3159  +
    {
        3160  +
        self.streaming_blob_operation =
        3161  +
            Some(::aws_smithy_legacy_http_server::routing::Route::new(svc));
        3162  +
        self
        3163  +
    }
        3164  +
}
        3165  +
        3166  +
impl<Body, L, HttpPl, ModelPl> ConstraintsServiceBuilder<Body, L, HttpPl, ModelPl> {
        3167  +
    /// Constructs a [`ConstraintsService`] from the arguments provided to the builder.
        3168  +
    ///
        3169  +
    /// Forgetting to register a handler for one or more operations will result in an error.
        3170  +
    ///
        3171  +
    /// Check out [`ConstraintsServiceBuilder::build_unchecked`] if you'd prefer the service to return status code 500 when an
        3172  +
    /// unspecified route is requested.
        3173  +
    pub fn build(
        3174  +
        self,
        3175  +
    ) -> ::std::result::Result<
        3176  +
        ConstraintsService<
        3177  +
            ::aws_smithy_legacy_http_server::routing::RoutingService<
        3178  +
                ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<L::Service>,
        3179  +
                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        3180  +
            >,
        3181  +
        >,
        3182  +
        MissingOperationsError,
        3183  +
    >
        3184  +
    where
        3185  +
        L: ::tower::Layer<::aws_smithy_legacy_http_server::routing::Route<Body>>,
        3186  +
    {
        3187  +
        let router = {
        3188  +
            use ::aws_smithy_legacy_http_server::operation::OperationShape;
        3189  +
            let mut missing_operation_names = std::collections::HashMap::new();
        3190  +
            if self.constrained_http_bound_shapes_operation.is_none() {
        3191  +
                missing_operation_names.insert(
        3192  +
                    crate::operation_shape::ConstrainedHttpBoundShapesOperation::ID,
        3193  +
                    ".constrained_http_bound_shapes_operation()",
        3194  +
                );
        3195  +
            }
        3196  +
            if self
        3197  +
                .constrained_http_payload_bound_shape_operation
        3198  +
                .is_none()
        3199  +
            {
        3200  +
                missing_operation_names.insert(
        3201  +
                    crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation::ID,
        3202  +
                    ".constrained_http_payload_bound_shape_operation()",
        3203  +
                );
        3204  +
            }
        3205  +
            if self.constrained_recursive_shapes_operation.is_none() {
        3206  +
                missing_operation_names.insert(
        3207  +
                    crate::operation_shape::ConstrainedRecursiveShapesOperation::ID,
        3208  +
                    ".constrained_recursive_shapes_operation()",
        3209  +
                );
        3210  +
            }
        3211  +
            if self.constrained_shapes_only_in_output_operation.is_none() {
        3212  +
                missing_operation_names.insert(
        3213  +
                    crate::operation_shape::ConstrainedShapesOnlyInOutputOperation::ID,
        3214  +
                    ".constrained_shapes_only_in_output_operation()",
        3215  +
                );
        3216  +
            }
        3217  +
            if self.constrained_shapes_operation.is_none() {
        3218  +
                missing_operation_names.insert(
        3219  +
                    crate::operation_shape::ConstrainedShapesOperation::ID,
        3220  +
                    ".constrained_shapes_operation()",
        3221  +
                );
        3222  +
            }
        3223  +
            if self.event_streams_operation.is_none() {
        3224  +
                missing_operation_names.insert(
        3225  +
                    crate::operation_shape::EventStreamsOperation::ID,
        3226  +
                    ".event_streams_operation()",
        3227  +
                );
        3228  +
            }
        3229  +
            if self
        3230  +
                .http_prefix_headers_targeting_length_map_operation
        3231  +
                .is_none()
        3232  +
            {
        3233  +
                missing_operation_names.insert(
        3234  +
                    crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation::ID,
        3235  +
                    ".http_prefix_headers_targeting_length_map_operation()",
        3236  +
                );
        3237  +
            }
        3238  +
            if self.non_streaming_blob_operation.is_none() {
        3239  +
                missing_operation_names.insert(
        3240  +
                    crate::operation_shape::NonStreamingBlobOperation::ID,
        3241  +
                    ".non_streaming_blob_operation()",
        3242  +
                );
        3243  +
            }
        3244  +
            if self.query_params_targeting_length_map_operation.is_none() {
        3245  +
                missing_operation_names.insert(
        3246  +
                    crate::operation_shape::QueryParamsTargetingLengthMapOperation::ID,
        3247  +
                    ".query_params_targeting_length_map_operation()",
        3248  +
                );
        3249  +
            }
        3250  +
            if self
        3251  +
                .query_params_targeting_map_of_enum_string_operation
        3252  +
                .is_none()
        3253  +
            {
        3254  +
                missing_operation_names.insert(
        3255  +
                    crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation::ID,
        3256  +
                    ".query_params_targeting_map_of_enum_string_operation()",
        3257  +
                );
        3258  +
            }
        3259  +
            if self
        3260  +
                .query_params_targeting_map_of_length_list_of_pattern_string_operation
        3261  +
                .is_none()
        3262  +
            {
        3263  +
                missing_operation_names.insert(crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation::ID, ".query_params_targeting_map_of_length_list_of_pattern_string_operation()");
        3264  +
            }
        3265  +
            if self
        3266  +
                .query_params_targeting_map_of_length_pattern_string_operation
        3267  +
                .is_none()
        3268  +
            {
        3269  +
                missing_operation_names.insert(crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation::ID, ".query_params_targeting_map_of_length_pattern_string_operation()");
        3270  +
            }
        3271  +
            if self
        3272  +
                .query_params_targeting_map_of_length_string_operation
        3273  +
                .is_none()
        3274  +
            {
        3275  +
                missing_operation_names.insert(
        3276  +
                    crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation::ID,
        3277  +
                    ".query_params_targeting_map_of_length_string_operation()",
        3278  +
                );
        3279  +
            }
        3280  +
            if self
        3281  +
                .query_params_targeting_map_of_list_of_enum_string_operation
        3282  +
                .is_none()
        3283  +
            {
        3284  +
                missing_operation_names.insert(
        3285  +
                    crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation::ID,
        3286  +
                    ".query_params_targeting_map_of_list_of_enum_string_operation()",
        3287  +
                );
        3288  +
            }
        3289  +
            if self
        3290  +
                .query_params_targeting_map_of_list_of_length_pattern_string_operation
        3291  +
                .is_none()
        3292  +
            {
        3293  +
                missing_operation_names.insert(crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation::ID, ".query_params_targeting_map_of_list_of_length_pattern_string_operation()");
        3294  +
            }
        3295  +
            if self
        3296  +
                .query_params_targeting_map_of_list_of_length_string_operation
        3297  +
                .is_none()
        3298  +
            {
        3299  +
                missing_operation_names.insert(crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation::ID, ".query_params_targeting_map_of_list_of_length_string_operation()");
        3300  +
            }
        3301  +
            if self
        3302  +
                .query_params_targeting_map_of_list_of_pattern_string_operation
        3303  +
                .is_none()
        3304  +
            {
        3305  +
                missing_operation_names.insert(crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation::ID, ".query_params_targeting_map_of_list_of_pattern_string_operation()");
        3306  +
            }
        3307  +
            if self
        3308  +
                .query_params_targeting_map_of_pattern_string_operation
        3309  +
                .is_none()
        3310  +
            {
        3311  +
                missing_operation_names.insert(
        3312  +
                    crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation::ID,
        3313  +
                    ".query_params_targeting_map_of_pattern_string_operation()",
        3314  +
                );
        3315  +
            }
        3316  +
            if self
        3317  +
                .query_params_targeting_map_of_set_of_length_string_operation
        3318  +
                .is_none()
        3319  +
            {
        3320  +
                missing_operation_names.insert(
        3321  +
                    crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation::ID,
        3322  +
                    ".query_params_targeting_map_of_set_of_length_string_operation()",
        3323  +
                );
        3324  +
            }
        3325  +
            if self.streaming_blob_operation.is_none() {
        3326  +
                missing_operation_names.insert(
        3327  +
                    crate::operation_shape::StreamingBlobOperation::ID,
        3328  +
                    ".streaming_blob_operation()",
        3329  +
                );
        3330  +
            }
        3331  +
            if !missing_operation_names.is_empty() {
        3332  +
                return Err(MissingOperationsError {
        3333  +
                    operation_names2setter_methods: missing_operation_names,
        3334  +
                });
        3335  +
            }
        3336  +
            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";
        3337  +
        3338  +
            crate::model::LengthPatternString::compile_regex();
        3339  +
            crate::model::PatternString::compile_regex();
        3340  +
        3341  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter::from_iter([(request_specs::constrained_http_bound_shapes_operation(), self.constrained_http_bound_shapes_operation.expect(unexpected_error_msg)),
        3342  +
(request_specs::constrained_http_payload_bound_shape_operation(), self.constrained_http_payload_bound_shape_operation.expect(unexpected_error_msg)),
        3343  +
(request_specs::constrained_recursive_shapes_operation(), self.constrained_recursive_shapes_operation.expect(unexpected_error_msg)),
        3344  +
(request_specs::constrained_shapes_only_in_output_operation(), self.constrained_shapes_only_in_output_operation.expect(unexpected_error_msg)),
        3345  +
(request_specs::constrained_shapes_operation(), self.constrained_shapes_operation.expect(unexpected_error_msg)),
        3346  +
(request_specs::event_streams_operation(), self.event_streams_operation.expect(unexpected_error_msg)),
        3347  +
(request_specs::http_prefix_headers_targeting_length_map_operation(), self.http_prefix_headers_targeting_length_map_operation.expect(unexpected_error_msg)),
        3348  +
(request_specs::non_streaming_blob_operation(), self.non_streaming_blob_operation.expect(unexpected_error_msg)),
        3349  +
(request_specs::query_params_targeting_length_map_operation(), self.query_params_targeting_length_map_operation.expect(unexpected_error_msg)),
        3350  +
(request_specs::query_params_targeting_map_of_enum_string_operation(), self.query_params_targeting_map_of_enum_string_operation.expect(unexpected_error_msg)),
        3351  +
(request_specs::query_params_targeting_map_of_length_list_of_pattern_string_operation(), self.query_params_targeting_map_of_length_list_of_pattern_string_operation.expect(unexpected_error_msg)),
        3352  +
(request_specs::query_params_targeting_map_of_length_pattern_string_operation(), self.query_params_targeting_map_of_length_pattern_string_operation.expect(unexpected_error_msg)),
        3353  +
(request_specs::query_params_targeting_map_of_length_string_operation(), self.query_params_targeting_map_of_length_string_operation.expect(unexpected_error_msg)),
        3354  +
(request_specs::query_params_targeting_map_of_list_of_enum_string_operation(), self.query_params_targeting_map_of_list_of_enum_string_operation.expect(unexpected_error_msg)),
        3355  +
(request_specs::query_params_targeting_map_of_list_of_length_pattern_string_operation(), self.query_params_targeting_map_of_list_of_length_pattern_string_operation.expect(unexpected_error_msg)),
        3356  +
(request_specs::query_params_targeting_map_of_list_of_length_string_operation(), self.query_params_targeting_map_of_list_of_length_string_operation.expect(unexpected_error_msg)),
        3357  +
(request_specs::query_params_targeting_map_of_list_of_pattern_string_operation(), self.query_params_targeting_map_of_list_of_pattern_string_operation.expect(unexpected_error_msg)),
        3358  +
(request_specs::query_params_targeting_map_of_pattern_string_operation(), self.query_params_targeting_map_of_pattern_string_operation.expect(unexpected_error_msg)),
        3359  +
(request_specs::query_params_targeting_map_of_set_of_length_string_operation(), self.query_params_targeting_map_of_set_of_length_string_operation.expect(unexpected_error_msg)),
        3360  +
(request_specs::streaming_blob_operation(), self.streaming_blob_operation.expect(unexpected_error_msg)),])
        3361  +
        };
        3362  +
        let svc = ::aws_smithy_legacy_http_server::routing::RoutingService::new(router);
        3363  +
        let svc = svc.map(|s| s.layer(self.layer));
        3364  +
        Ok(ConstraintsService { svc })
        3365  +
    }
        3366  +
        3367  +
    /// Constructs a [`ConstraintsService`] from the arguments provided to the builder.
        3368  +
    /// Operations without a handler default to returning 500 Internal Server Error to the caller.
        3369  +
    ///
        3370  +
    /// Check out [`ConstraintsServiceBuilder::build`] if you'd prefer the builder to fail if one or more operations do
        3371  +
    /// not have a registered handler.
        3372  +
    pub fn build_unchecked(self) -> ConstraintsService<L::Service>
        3373  +
    where
        3374  +
        Body: Send + 'static,
        3375  +
        L: ::tower::Layer<
        3376  +
            ::aws_smithy_legacy_http_server::routing::RoutingService<
        3377  +
                ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
        3378  +
                    ::aws_smithy_legacy_http_server::routing::Route<Body>,
        3379  +
                >,
        3380  +
                ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        3381  +
            >,
        3382  +
        >,
        3383  +
    {
        3384  +
        let router = ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter::from_iter([(
        3385  +
                                request_specs::constrained_http_bound_shapes_operation(),
        3386  +
                                self.constrained_http_bound_shapes_operation.unwrap_or_else(|| {
        3387  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3388  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3389  +
                                })
        3390  +
                            ),
        3391  +
(
        3392  +
                                request_specs::constrained_http_payload_bound_shape_operation(),
        3393  +
                                self.constrained_http_payload_bound_shape_operation.unwrap_or_else(|| {
        3394  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3395  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3396  +
                                })
        3397  +
                            ),
        3398  +
(
        3399  +
                                request_specs::constrained_recursive_shapes_operation(),
        3400  +
                                self.constrained_recursive_shapes_operation.unwrap_or_else(|| {
        3401  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3402  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3403  +
                                })
        3404  +
                            ),
        3405  +
(
        3406  +
                                request_specs::constrained_shapes_only_in_output_operation(),
        3407  +
                                self.constrained_shapes_only_in_output_operation.unwrap_or_else(|| {
        3408  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3409  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3410  +
                                })
        3411  +
                            ),
        3412  +
(
        3413  +
                                request_specs::constrained_shapes_operation(),
        3414  +
                                self.constrained_shapes_operation.unwrap_or_else(|| {
        3415  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3416  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3417  +
                                })
        3418  +
                            ),
        3419  +
(
        3420  +
                                request_specs::event_streams_operation(),
        3421  +
                                self.event_streams_operation.unwrap_or_else(|| {
        3422  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3423  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3424  +
                                })
        3425  +
                            ),
        3426  +
(
        3427  +
                                request_specs::http_prefix_headers_targeting_length_map_operation(),
        3428  +
                                self.http_prefix_headers_targeting_length_map_operation.unwrap_or_else(|| {
        3429  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3430  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3431  +
                                })
        3432  +
                            ),
        3433  +
(
        3434  +
                                request_specs::non_streaming_blob_operation(),
        3435  +
                                self.non_streaming_blob_operation.unwrap_or_else(|| {
        3436  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3437  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3438  +
                                })
        3439  +
                            ),
        3440  +
(
        3441  +
                                request_specs::query_params_targeting_length_map_operation(),
        3442  +
                                self.query_params_targeting_length_map_operation.unwrap_or_else(|| {
        3443  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3444  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3445  +
                                })
        3446  +
                            ),
        3447  +
(
        3448  +
                                request_specs::query_params_targeting_map_of_enum_string_operation(),
        3449  +
                                self.query_params_targeting_map_of_enum_string_operation.unwrap_or_else(|| {
        3450  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3451  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3452  +
                                })
        3453  +
                            ),
        3454  +
(
        3455  +
                                request_specs::query_params_targeting_map_of_length_list_of_pattern_string_operation(),
        3456  +
                                self.query_params_targeting_map_of_length_list_of_pattern_string_operation.unwrap_or_else(|| {
        3457  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3458  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3459  +
                                })
        3460  +
                            ),
        3461  +
(
        3462  +
                                request_specs::query_params_targeting_map_of_length_pattern_string_operation(),
        3463  +
                                self.query_params_targeting_map_of_length_pattern_string_operation.unwrap_or_else(|| {
        3464  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3465  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3466  +
                                })
        3467  +
                            ),
        3468  +
(
        3469  +
                                request_specs::query_params_targeting_map_of_length_string_operation(),
        3470  +
                                self.query_params_targeting_map_of_length_string_operation.unwrap_or_else(|| {
        3471  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3472  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3473  +
                                })
        3474  +
                            ),
        3475  +
(
        3476  +
                                request_specs::query_params_targeting_map_of_list_of_enum_string_operation(),
        3477  +
                                self.query_params_targeting_map_of_list_of_enum_string_operation.unwrap_or_else(|| {
        3478  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3479  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3480  +
                                })
        3481  +
                            ),
        3482  +
(
        3483  +
                                request_specs::query_params_targeting_map_of_list_of_length_pattern_string_operation(),
        3484  +
                                self.query_params_targeting_map_of_list_of_length_pattern_string_operation.unwrap_or_else(|| {
        3485  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3486  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3487  +
                                })
        3488  +
                            ),
        3489  +
(
        3490  +
                                request_specs::query_params_targeting_map_of_list_of_length_string_operation(),
        3491  +
                                self.query_params_targeting_map_of_list_of_length_string_operation.unwrap_or_else(|| {
        3492  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3493  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3494  +
                                })
        3495  +
                            ),
        3496  +
(
        3497  +
                                request_specs::query_params_targeting_map_of_list_of_pattern_string_operation(),
        3498  +
                                self.query_params_targeting_map_of_list_of_pattern_string_operation.unwrap_or_else(|| {
        3499  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3500  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3501  +
                                })
        3502  +
                            ),
        3503  +
(
        3504  +
                                request_specs::query_params_targeting_map_of_pattern_string_operation(),
        3505  +
                                self.query_params_targeting_map_of_pattern_string_operation.unwrap_or_else(|| {
        3506  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3507  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3508  +
                                })
        3509  +
                            ),
        3510  +
(
        3511  +
                                request_specs::query_params_targeting_map_of_set_of_length_string_operation(),
        3512  +
                                self.query_params_targeting_map_of_set_of_length_string_operation.unwrap_or_else(|| {
        3513  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3514  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3515  +
                                })
        3516  +
                            ),
        3517  +
(
        3518  +
                                request_specs::streaming_blob_operation(),
        3519  +
                                self.streaming_blob_operation.unwrap_or_else(|| {
        3520  +
                                    let svc = ::aws_smithy_legacy_http_server::operation::MissingFailure::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::default();
        3521  +
                                    ::aws_smithy_legacy_http_server::routing::Route::new(svc)
        3522  +
                                })
        3523  +
                            ),]);
        3524  +
        let svc = self
        3525  +
            .layer
        3526  +
            .layer(::aws_smithy_legacy_http_server::routing::RoutingService::new(router));
        3527  +
        ConstraintsService { svc }
        3528  +
    }
        3529  +
}
        3530  +
        3531  +
/// The error encountered when calling the [`ConstraintsServiceBuilder::build`] method if one or more operation handlers are not
        3532  +
/// specified.
        3533  +
#[derive(Debug)]
        3534  +
pub struct MissingOperationsError {
        3535  +
    operation_names2setter_methods:
        3536  +
        std::collections::HashMap<::aws_smithy_legacy_http_server::shape_id::ShapeId, &'static str>,
        3537  +
}
        3538  +
        3539  +
impl std::fmt::Display for MissingOperationsError {
        3540  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3541  +
        write!(
        3542  +
            f,
        3543  +
            "You must specify a handler for all operations attached to `ConstraintsService`.\n\
        3544  +
                            We are missing handlers for the following operations:\n",
        3545  +
        )?;
        3546  +
        for operation_name in self.operation_names2setter_methods.keys() {
        3547  +
            writeln!(f, "- {}", operation_name.absolute())?;
        3548  +
        }
        3549  +
        3550  +
        writeln!(f, "\nUse the dedicated methods on `ConstraintsServiceBuilder` to register the missing handlers:")?;
        3551  +
        for setter_name in self.operation_names2setter_methods.values() {
        3552  +
            writeln!(f, "- {}", setter_name)?;
        3553  +
        }
        3554  +
        Ok(())
        3555  +
    }
        3556  +
}
        3557  +
        3558  +
impl std::error::Error for MissingOperationsError {}
        3559  +
        3560  +
mod request_specs {
        3561  +
    pub(super) fn constrained_http_bound_shapes_operation(
        3562  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3563  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3564  +
                    ::http::Method::POST,
        3565  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3566  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3567  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3568  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("constrained-http-bound-shapes-operation")),
        3569  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
        3570  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
        3571  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
        3572  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
        3573  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
        3574  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Label,
        3575  +
]),
        3576  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3577  +
])
        3578  +
                        )
        3579  +
                    ),
        3580  +
                )
        3581  +
    }
        3582  +
    pub(super) fn constrained_http_payload_bound_shape_operation(
        3583  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3584  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3585  +
                    ::http::Method::POST,
        3586  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3587  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3588  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3589  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("constrained-http-payload-bound-shape-operation")),
        3590  +
]),
        3591  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3592  +
])
        3593  +
                        )
        3594  +
                    ),
        3595  +
                )
        3596  +
    }
        3597  +
    pub(super) fn constrained_recursive_shapes_operation(
        3598  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3599  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3600  +
                    ::http::Method::POST,
        3601  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3602  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3603  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3604  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("constrained-recursive-shapes-operation")),
        3605  +
]),
        3606  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3607  +
])
        3608  +
                        )
        3609  +
                    ),
        3610  +
                )
        3611  +
    }
        3612  +
    pub(super) fn constrained_shapes_only_in_output_operation(
        3613  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3614  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3615  +
                    ::http::Method::POST,
        3616  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3617  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3618  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3619  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("constrained-shapes-only-in-output-operation")),
        3620  +
]),
        3621  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3622  +
])
        3623  +
                        )
        3624  +
                    ),
        3625  +
                )
        3626  +
    }
        3627  +
    pub(super) fn constrained_shapes_operation(
        3628  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3629  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3630  +
                    ::http::Method::POST,
        3631  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3632  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3633  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3634  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("constrained-shapes-operation")),
        3635  +
]),
        3636  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3637  +
])
        3638  +
                        )
        3639  +
                    ),
        3640  +
                )
        3641  +
    }
        3642  +
    pub(super) fn event_streams_operation(
        3643  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3644  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3645  +
                    ::http::Method::POST,
        3646  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3647  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3648  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3649  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("event-streams-operation")),
        3650  +
]),
        3651  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3652  +
])
        3653  +
                        )
        3654  +
                    ),
        3655  +
                )
        3656  +
    }
        3657  +
    pub(super) fn http_prefix_headers_targeting_length_map_operation(
        3658  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3659  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3660  +
                    ::http::Method::POST,
        3661  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3662  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3663  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3664  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("http-prefix-headers-targeting-length-map-operation")),
        3665  +
]),
        3666  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3667  +
])
        3668  +
                        )
        3669  +
                    ),
        3670  +
                )
        3671  +
    }
        3672  +
    pub(super) fn non_streaming_blob_operation(
        3673  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3674  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3675  +
                    ::http::Method::POST,
        3676  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3677  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3678  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3679  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("non-streaming-blob-operation")),
        3680  +
]),
        3681  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3682  +
])
        3683  +
                        )
        3684  +
                    ),
        3685  +
                )
        3686  +
    }
        3687  +
    pub(super) fn query_params_targeting_length_map_operation(
        3688  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3689  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3690  +
                    ::http::Method::POST,
        3691  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3692  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3693  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3694  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-length-map")),
        3695  +
]),
        3696  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3697  +
])
        3698  +
                        )
        3699  +
                    ),
        3700  +
                )
        3701  +
    }
        3702  +
    pub(super) fn query_params_targeting_map_of_enum_string_operation(
        3703  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3704  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3705  +
                    ::http::Method::POST,
        3706  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3707  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3708  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3709  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-enum-string-operation")),
        3710  +
]),
        3711  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3712  +
])
        3713  +
                        )
        3714  +
                    ),
        3715  +
                )
        3716  +
    }
        3717  +
    pub(super) fn query_params_targeting_map_of_length_list_of_pattern_string_operation(
        3718  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3719  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3720  +
                    ::http::Method::POST,
        3721  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3722  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3723  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3724  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-length-list-of-pattern-string-operation")),
        3725  +
]),
        3726  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3727  +
])
        3728  +
                        )
        3729  +
                    ),
        3730  +
                )
        3731  +
    }
        3732  +
    pub(super) fn query_params_targeting_map_of_length_pattern_string_operation(
        3733  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3734  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3735  +
                    ::http::Method::POST,
        3736  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3737  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3738  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3739  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-length-pattern-string")),
        3740  +
]),
        3741  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3742  +
])
        3743  +
                        )
        3744  +
                    ),
        3745  +
                )
        3746  +
    }
        3747  +
    pub(super) fn query_params_targeting_map_of_length_string_operation(
        3748  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3749  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3750  +
                    ::http::Method::POST,
        3751  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3752  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3753  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3754  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-length-string-operation")),
        3755  +
]),
        3756  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3757  +
])
        3758  +
                        )
        3759  +
                    ),
        3760  +
                )
        3761  +
    }
        3762  +
    pub(super) fn query_params_targeting_map_of_list_of_enum_string_operation(
        3763  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3764  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3765  +
                    ::http::Method::POST,
        3766  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3767  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3768  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3769  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-list-of-enum-string-operation")),
        3770  +
]),
        3771  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3772  +
])
        3773  +
                        )
        3774  +
                    ),
        3775  +
                )
        3776  +
    }
        3777  +
    pub(super) fn query_params_targeting_map_of_list_of_length_pattern_string_operation(
        3778  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3779  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3780  +
                    ::http::Method::POST,
        3781  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3782  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3783  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3784  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-list-of-length-pattern-string-operation")),
        3785  +
]),
        3786  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3787  +
])
        3788  +
                        )
        3789  +
                    ),
        3790  +
                )
        3791  +
    }
        3792  +
    pub(super) fn query_params_targeting_map_of_list_of_length_string_operation(
        3793  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3794  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3795  +
                    ::http::Method::POST,
        3796  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3797  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3798  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3799  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-list-of-length-string-operation")),
        3800  +
]),
        3801  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3802  +
])
        3803  +
                        )
        3804  +
                    ),
        3805  +
                )
        3806  +
    }
        3807  +
    pub(super) fn query_params_targeting_map_of_list_of_pattern_string_operation(
        3808  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3809  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3810  +
                    ::http::Method::POST,
        3811  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3812  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3813  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3814  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-list-of-pattern-string-operation")),
        3815  +
]),
        3816  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3817  +
])
        3818  +
                        )
        3819  +
                    ),
        3820  +
                )
        3821  +
    }
        3822  +
    pub(super) fn query_params_targeting_map_of_pattern_string_operation(
        3823  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3824  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3825  +
                    ::http::Method::POST,
        3826  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3827  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3828  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3829  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-pattern-string-operation")),
        3830  +
]),
        3831  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3832  +
])
        3833  +
                        )
        3834  +
                    ),
        3835  +
                )
        3836  +
    }
        3837  +
    pub(super) fn query_params_targeting_map_of_set_of_length_string_operation(
        3838  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3839  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3840  +
                    ::http::Method::POST,
        3841  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3842  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3843  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3844  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("query-params-targeting-map-of-set-of-length-string-operation")),
        3845  +
]),
        3846  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3847  +
])
        3848  +
                        )
        3849  +
                    ),
        3850  +
                )
        3851  +
    }
        3852  +
    pub(super) fn streaming_blob_operation(
        3853  +
    ) -> ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec {
        3854  +
        ::aws_smithy_legacy_http_server::routing::request_spec::RequestSpec::new(
        3855  +
                    ::http::Method::POST,
        3856  +
                    ::aws_smithy_legacy_http_server::routing::request_spec::UriSpec::new(
        3857  +
                        ::aws_smithy_legacy_http_server::routing::request_spec::PathAndQuerySpec::new(
        3858  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::PathSpec::from_vector_unchecked(vec![
        3859  +
    ::aws_smithy_legacy_http_server::routing::request_spec::PathSegment::Literal(String::from("streaming-blob-operation")),
        3860  +
]),
        3861  +
                            ::aws_smithy_legacy_http_server::routing::request_spec::QuerySpec::from_vector_unchecked(vec![
        3862  +
])
        3863  +
                        )
        3864  +
                    ),
        3865  +
                )
        3866  +
    }
        3867  +
}
        3868  +
        3869  +
/// A service to test aspects of code generation where shapes have constraint traits.
        3870  +
///
        3871  +
/// See the [root](crate) documentation for more information.
        3872  +
#[derive(Clone)]
        3873  +
pub struct ConstraintsService<
        3874  +
    S = ::aws_smithy_legacy_http_server::routing::RoutingService<
        3875  +
        ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
        3876  +
            ::aws_smithy_legacy_http_server::routing::Route<
        3877  +
                ::aws_smithy_legacy_http_server::body::BoxBody,
        3878  +
            >,
        3879  +
        >,
        3880  +
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        3881  +
    >,
        3882  +
> {
        3883  +
    // This is the router wrapped by layers.
        3884  +
    svc: S,
        3885  +
}
        3886  +
        3887  +
impl ConstraintsService<()> {
        3888  +
    /// Constructs a builder for [`ConstraintsService`].
        3889  +
    /// You must specify a configuration object holding any plugins and layers that should be applied
        3890  +
    /// to the operations in this service.
        3891  +
    pub fn builder<
        3892  +
        Body,
        3893  +
        L,
        3894  +
        HttpPl: ::aws_smithy_legacy_http_server::plugin::HttpMarker,
        3895  +
        ModelPl: ::aws_smithy_legacy_http_server::plugin::ModelMarker,
        3896  +
    >(
        3897  +
        config: ConstraintsServiceConfig<L, HttpPl, ModelPl>,
        3898  +
    ) -> ConstraintsServiceBuilder<Body, L, HttpPl, ModelPl> {
        3899  +
        ConstraintsServiceBuilder {
        3900  +
            constrained_http_bound_shapes_operation: None,
        3901  +
            constrained_http_payload_bound_shape_operation: None,
        3902  +
            constrained_recursive_shapes_operation: None,
        3903  +
            constrained_shapes_only_in_output_operation: None,
        3904  +
            constrained_shapes_operation: None,
        3905  +
            event_streams_operation: None,
        3906  +
            http_prefix_headers_targeting_length_map_operation: None,
        3907  +
            non_streaming_blob_operation: None,
        3908  +
            query_params_targeting_length_map_operation: None,
        3909  +
            query_params_targeting_map_of_enum_string_operation: None,
        3910  +
            query_params_targeting_map_of_length_list_of_pattern_string_operation: None,
        3911  +
            query_params_targeting_map_of_length_pattern_string_operation: None,
        3912  +
            query_params_targeting_map_of_length_string_operation: None,
        3913  +
            query_params_targeting_map_of_list_of_enum_string_operation: None,
        3914  +
            query_params_targeting_map_of_list_of_length_pattern_string_operation: None,
        3915  +
            query_params_targeting_map_of_list_of_length_string_operation: None,
        3916  +
            query_params_targeting_map_of_list_of_pattern_string_operation: None,
        3917  +
            query_params_targeting_map_of_pattern_string_operation: None,
        3918  +
            query_params_targeting_map_of_set_of_length_string_operation: None,
        3919  +
            streaming_blob_operation: None,
        3920  +
            layer: config.layers,
        3921  +
            http_plugin: config.http_plugins,
        3922  +
            model_plugin: config.model_plugins,
        3923  +
        }
        3924  +
    }
        3925  +
        3926  +
    /// Constructs a builder for [`ConstraintsService`].
        3927  +
    /// You must specify what plugins should be applied to the operations in this service.
        3928  +
    ///
        3929  +
    /// Use [`ConstraintsService::builder_without_plugins`] if you don't need to apply plugins.
        3930  +
    ///
        3931  +
    /// Check out [`HttpPlugins`](::aws_smithy_legacy_http_server::plugin::HttpPlugins) and
        3932  +
    /// [`ModelPlugins`](::aws_smithy_legacy_http_server::plugin::ModelPlugins) if you need to apply
        3933  +
    /// multiple plugins.
        3934  +
    #[deprecated(
        3935  +
        since = "0.57.0",
        3936  +
        note = "please use the `builder` constructor and register plugins on the `ConstraintsServiceConfig` object instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
        3937  +
    )]
        3938  +
    pub fn builder_with_plugins<
        3939  +
        Body,
        3940  +
        HttpPl: ::aws_smithy_legacy_http_server::plugin::HttpMarker,
        3941  +
        ModelPl: ::aws_smithy_legacy_http_server::plugin::ModelMarker,
        3942  +
    >(
        3943  +
        http_plugin: HttpPl,
        3944  +
        model_plugin: ModelPl,
        3945  +
    ) -> ConstraintsServiceBuilder<Body, ::tower::layer::util::Identity, HttpPl, ModelPl> {
        3946  +
        ConstraintsServiceBuilder {
        3947  +
            constrained_http_bound_shapes_operation: None,
        3948  +
            constrained_http_payload_bound_shape_operation: None,
        3949  +
            constrained_recursive_shapes_operation: None,
        3950  +
            constrained_shapes_only_in_output_operation: None,
        3951  +
            constrained_shapes_operation: None,
        3952  +
            event_streams_operation: None,
        3953  +
            http_prefix_headers_targeting_length_map_operation: None,
        3954  +
            non_streaming_blob_operation: None,
        3955  +
            query_params_targeting_length_map_operation: None,
        3956  +
            query_params_targeting_map_of_enum_string_operation: None,
        3957  +
            query_params_targeting_map_of_length_list_of_pattern_string_operation: None,
        3958  +
            query_params_targeting_map_of_length_pattern_string_operation: None,
        3959  +
            query_params_targeting_map_of_length_string_operation: None,
        3960  +
            query_params_targeting_map_of_list_of_enum_string_operation: None,
        3961  +
            query_params_targeting_map_of_list_of_length_pattern_string_operation: None,
        3962  +
            query_params_targeting_map_of_list_of_length_string_operation: None,
        3963  +
            query_params_targeting_map_of_list_of_pattern_string_operation: None,
        3964  +
            query_params_targeting_map_of_pattern_string_operation: None,
        3965  +
            query_params_targeting_map_of_set_of_length_string_operation: None,
        3966  +
            streaming_blob_operation: None,
        3967  +
            layer: ::tower::layer::util::Identity::new(),
        3968  +
            http_plugin,
        3969  +
            model_plugin,
        3970  +
        }
        3971  +
    }
        3972  +
        3973  +
    /// Constructs a builder for [`ConstraintsService`].
        3974  +
    ///
        3975  +
    /// Use [`ConstraintsService::builder_with_plugins`] if you need to specify plugins.
        3976  +
    #[deprecated(
        3977  +
        since = "0.57.0",
        3978  +
        note = "please use the `builder` constructor instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
        3979  +
    )]
        3980  +
    pub fn builder_without_plugins<Body>() -> ConstraintsServiceBuilder<
        3981  +
        Body,
        3982  +
        ::tower::layer::util::Identity,
        3983  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        3984  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        3985  +
    > {
        3986  +
        Self::builder_with_plugins(
        3987  +
            ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        3988  +
            ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        3989  +
        )
        3990  +
    }
        3991  +
}
        3992  +
        3993  +
impl<S> ConstraintsService<S> {
        3994  +
    /// Converts [`ConstraintsService`] into a [`MakeService`](tower::make::MakeService).
        3995  +
    pub fn into_make_service(
        3996  +
        self,
        3997  +
    ) -> ::aws_smithy_legacy_http_server::routing::IntoMakeService<Self> {
        3998  +
        ::aws_smithy_legacy_http_server::routing::IntoMakeService::new(self)
        3999  +
    }
        4000  +
        4001  +
    /// Converts [`ConstraintsService`] into a [`MakeService`](tower::make::MakeService) with [`ConnectInfo`](::aws_smithy_legacy_http_server::request::connect_info::ConnectInfo).
        4002  +
    pub fn into_make_service_with_connect_info<C>(
        4003  +
        self,
        4004  +
    ) -> ::aws_smithy_legacy_http_server::routing::IntoMakeServiceWithConnectInfo<Self, C> {
        4005  +
        ::aws_smithy_legacy_http_server::routing::IntoMakeServiceWithConnectInfo::new(self)
        4006  +
    }
        4007  +
}
        4008  +
        4009  +
impl<S>
        4010  +
    ConstraintsService<
        4011  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        4012  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<S>,
        4013  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        4014  +
        >,
        4015  +
    >
        4016  +
{
        4017  +
    /// Applies a [`Layer`](::tower::Layer) uniformly to all routes.
        4018  +
    #[deprecated(
        4019  +
        since = "0.57.0",
        4020  +
        note = "please add layers to the `ConstraintsServiceConfig` object instead; see https://github.com/smithy-lang/smithy-rs/discussions/3096"
        4021  +
    )]
        4022  +
    pub fn layer<L>(
        4023  +
        self,
        4024  +
        layer: &L,
        4025  +
    ) -> ConstraintsService<
        4026  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        4027  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<L::Service>,
        4028  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        4029  +
        >,
        4030  +
    >
        4031  +
    where
        4032  +
        L: ::tower::Layer<S>,
        4033  +
    {
        4034  +
        ConstraintsService {
        4035  +
            svc: self.svc.map(|s| s.layer(layer)),
        4036  +
        }
        4037  +
    }
        4038  +
        4039  +
    /// Applies [`Route::new`](::aws_smithy_legacy_http_server::routing::Route::new) to all routes.
        4040  +
    ///
        4041  +
    /// This has the effect of erasing all types accumulated via layers.
        4042  +
    pub fn boxed<B>(
        4043  +
        self,
        4044  +
    ) -> ConstraintsService<
        4045  +
        ::aws_smithy_legacy_http_server::routing::RoutingService<
        4046  +
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter<
        4047  +
                ::aws_smithy_legacy_http_server::routing::Route<B>,
        4048  +
            >,
        4049  +
            ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
        4050  +
        >,
        4051  +
    >
        4052  +
    where
        4053  +
        S: ::tower::Service<
        4054  +
            ::http::Request<B>,
        4055  +
            Response = ::http::Response<::aws_smithy_legacy_http_server::body::BoxBody>,
        4056  +
            Error = std::convert::Infallible,
        4057  +
        >,
        4058  +
        S: Clone + Send + 'static,
        4059  +
        S::Future: Send + 'static,
        4060  +
    {
        4061  +
        self.layer(&::tower::layer::layer_fn(
        4062  +
            ::aws_smithy_legacy_http_server::routing::Route::new,
        4063  +
        ))
        4064  +
    }
        4065  +
}
        4066  +
        4067  +
impl<S, R> ::tower::Service<R> for ConstraintsService<S>
        4068  +
where
        4069  +
    S: ::tower::Service<R>,
        4070  +
{
        4071  +
    type Response = S::Response;
        4072  +
    type Error = S::Error;
        4073  +
    type Future = S::Future;
        4074  +
        4075  +
    fn poll_ready(
        4076  +
        &mut self,
        4077  +
        cx: &mut std::task::Context,
        4078  +
    ) -> std::task::Poll<::std::result::Result<(), Self::Error>> {
        4079  +
        self.svc.poll_ready(cx)
        4080  +
    }
        4081  +
        4082  +
    fn call(&mut self, request: R) -> Self::Future {
        4083  +
        self.svc.call(request)
        4084  +
    }
        4085  +
}
        4086  +
        4087  +
/// An enumeration of all [operations](https://smithy.io/2.0/spec/service-types.html#operation) in ConstraintsService.
        4088  +
#[allow(clippy::enum_variant_names)]
        4089  +
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
        4090  +
pub enum Operation {
        4091  +
    ConstrainedHttpBoundShapesOperation,
        4092  +
    ConstrainedHttpPayloadBoundShapeOperation,
        4093  +
    ConstrainedRecursiveShapesOperation,
        4094  +
    ConstrainedShapesOnlyInOutputOperation,
        4095  +
    ConstrainedShapesOperation,
        4096  +
    EventStreamsOperation,
        4097  +
    HttpPrefixHeadersTargetingLengthMapOperation,
        4098  +
    NonStreamingBlobOperation,
        4099  +
    QueryParamsTargetingLengthMapOperation,
        4100  +
    QueryParamsTargetingMapOfEnumStringOperation,
        4101  +
    QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        4102  +
    QueryParamsTargetingMapOfLengthPatternStringOperation,
        4103  +
    QueryParamsTargetingMapOfLengthStringOperation,
        4104  +
    QueryParamsTargetingMapOfListOfEnumStringOperation,
        4105  +
    QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        4106  +
    QueryParamsTargetingMapOfListOfLengthStringOperation,
        4107  +
    QueryParamsTargetingMapOfListOfPatternStringOperation,
        4108  +
    QueryParamsTargetingMapOfPatternStringOperation,
        4109  +
    QueryParamsTargetingMapOfSetOfLengthStringOperation,
        4110  +
    StreamingBlobOperation,
        4111  +
}
        4112  +
        4113  +
impl Operation {
        4114  +
    /// Returns the [operations](https://smithy.io/2.0/spec/service-types.html#operation) [`ShapeId`](::aws_smithy_legacy_http_server::shape_id::ShapeId).
        4115  +
    pub fn shape_id(&self) -> ::aws_smithy_legacy_http_server::shape_id::ShapeId {
        4116  +
        match self {
        4117  +
                            Operation::ConstrainedHttpBoundShapesOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#ConstrainedHttpBoundShapesOperation", "com.amazonaws.constraints", "ConstrainedHttpBoundShapesOperation")
        4118  +
,Operation::ConstrainedHttpPayloadBoundShapeOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#ConstrainedHttpPayloadBoundShapeOperation", "com.amazonaws.constraints", "ConstrainedHttpPayloadBoundShapeOperation")
        4119  +
,Operation::ConstrainedRecursiveShapesOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#ConstrainedRecursiveShapesOperation", "com.amazonaws.constraints", "ConstrainedRecursiveShapesOperation")
        4120  +
,Operation::ConstrainedShapesOnlyInOutputOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#ConstrainedShapesOnlyInOutputOperation", "com.amazonaws.constraints", "ConstrainedShapesOnlyInOutputOperation")
        4121  +
,Operation::ConstrainedShapesOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#ConstrainedShapesOperation", "com.amazonaws.constraints", "ConstrainedShapesOperation")
        4122  +
,Operation::EventStreamsOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#EventStreamsOperation", "com.amazonaws.constraints", "EventStreamsOperation")
        4123  +
,Operation::HttpPrefixHeadersTargetingLengthMapOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#HttpPrefixHeadersTargetingLengthMapOperation", "com.amazonaws.constraints", "HttpPrefixHeadersTargetingLengthMapOperation")
        4124  +
,Operation::NonStreamingBlobOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#NonStreamingBlobOperation", "com.amazonaws.constraints", "NonStreamingBlobOperation")
        4125  +
,Operation::QueryParamsTargetingLengthMapOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingLengthMapOperation", "com.amazonaws.constraints", "QueryParamsTargetingLengthMapOperation")
        4126  +
,Operation::QueryParamsTargetingMapOfEnumStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfEnumStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfEnumStringOperation")
        4127  +
,Operation::QueryParamsTargetingMapOfLengthListOfPatternStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfLengthListOfPatternStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfLengthListOfPatternStringOperation")
        4128  +
,Operation::QueryParamsTargetingMapOfLengthPatternStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfLengthPatternStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfLengthPatternStringOperation")
        4129  +
,Operation::QueryParamsTargetingMapOfLengthStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfLengthStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfLengthStringOperation")
        4130  +
,Operation::QueryParamsTargetingMapOfListOfEnumStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfListOfEnumStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfListOfEnumStringOperation")
        4131  +
,Operation::QueryParamsTargetingMapOfListOfLengthPatternStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfListOfLengthPatternStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfListOfLengthPatternStringOperation")
        4132  +
,Operation::QueryParamsTargetingMapOfListOfLengthStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfListOfLengthStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfListOfLengthStringOperation")
        4133  +
,Operation::QueryParamsTargetingMapOfListOfPatternStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfListOfPatternStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfListOfPatternStringOperation")
        4134  +
,Operation::QueryParamsTargetingMapOfPatternStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfPatternStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfPatternStringOperation")
        4135  +
,Operation::QueryParamsTargetingMapOfSetOfLengthStringOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#QueryParamsTargetingMapOfSetOfLengthStringOperation", "com.amazonaws.constraints", "QueryParamsTargetingMapOfSetOfLengthStringOperation")
        4136  +
,Operation::StreamingBlobOperation => ::aws_smithy_legacy_http_server::shape_id::ShapeId::new("com.amazonaws.constraints#StreamingBlobOperation", "com.amazonaws.constraints", "StreamingBlobOperation")
        4137  +
                        }
        4138  +
    }
        4139  +
}
        4140  +
impl<L>
        4141  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4142  +
        crate::operation_shape::ConstrainedHttpBoundShapesOperation,
        4143  +
    > for ConstraintsService<L>
        4144  +
{
        4145  +
    const VALUE: Operation = Operation::ConstrainedHttpBoundShapesOperation;
        4146  +
}
        4147  +
impl<L>
        4148  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4149  +
        crate::operation_shape::ConstrainedHttpPayloadBoundShapeOperation,
        4150  +
    > for ConstraintsService<L>
        4151  +
{
        4152  +
    const VALUE: Operation = Operation::ConstrainedHttpPayloadBoundShapeOperation;
        4153  +
}
        4154  +
impl<L>
        4155  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4156  +
        crate::operation_shape::ConstrainedRecursiveShapesOperation,
        4157  +
    > for ConstraintsService<L>
        4158  +
{
        4159  +
    const VALUE: Operation = Operation::ConstrainedRecursiveShapesOperation;
        4160  +
}
        4161  +
impl<L>
        4162  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4163  +
        crate::operation_shape::ConstrainedShapesOnlyInOutputOperation,
        4164  +
    > for ConstraintsService<L>
        4165  +
{
        4166  +
    const VALUE: Operation = Operation::ConstrainedShapesOnlyInOutputOperation;
        4167  +
}
        4168  +
impl<L>
        4169  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4170  +
        crate::operation_shape::ConstrainedShapesOperation,
        4171  +
    > for ConstraintsService<L>
        4172  +
{
        4173  +
    const VALUE: Operation = Operation::ConstrainedShapesOperation;
        4174  +
}
        4175  +
impl<L>
        4176  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4177  +
        crate::operation_shape::EventStreamsOperation,
        4178  +
    > for ConstraintsService<L>
        4179  +
{
        4180  +
    const VALUE: Operation = Operation::EventStreamsOperation;
        4181  +
}
        4182  +
impl<L>
        4183  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4184  +
        crate::operation_shape::HttpPrefixHeadersTargetingLengthMapOperation,
        4185  +
    > for ConstraintsService<L>
        4186  +
{
        4187  +
    const VALUE: Operation = Operation::HttpPrefixHeadersTargetingLengthMapOperation;
        4188  +
}
        4189  +
impl<L>
        4190  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4191  +
        crate::operation_shape::NonStreamingBlobOperation,
        4192  +
    > for ConstraintsService<L>
        4193  +
{
        4194  +
    const VALUE: Operation = Operation::NonStreamingBlobOperation;
        4195  +
}
        4196  +
impl<L>
        4197  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4198  +
        crate::operation_shape::QueryParamsTargetingLengthMapOperation,
        4199  +
    > for ConstraintsService<L>
        4200  +
{
        4201  +
    const VALUE: Operation = Operation::QueryParamsTargetingLengthMapOperation;
        4202  +
}
        4203  +
impl<L>
        4204  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4205  +
        crate::operation_shape::QueryParamsTargetingMapOfEnumStringOperation,
        4206  +
    > for ConstraintsService<L>
        4207  +
{
        4208  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfEnumStringOperation;
        4209  +
}
        4210  +
impl<L>
        4211  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4212  +
        crate::operation_shape::QueryParamsTargetingMapOfLengthListOfPatternStringOperation,
        4213  +
    > for ConstraintsService<L>
        4214  +
{
        4215  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfLengthListOfPatternStringOperation;
        4216  +
}
        4217  +
impl<L>
        4218  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4219  +
        crate::operation_shape::QueryParamsTargetingMapOfLengthPatternStringOperation,
        4220  +
    > for ConstraintsService<L>
        4221  +
{
        4222  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfLengthPatternStringOperation;
        4223  +
}
        4224  +
impl<L>
        4225  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4226  +
        crate::operation_shape::QueryParamsTargetingMapOfLengthStringOperation,
        4227  +
    > for ConstraintsService<L>
        4228  +
{
        4229  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfLengthStringOperation;
        4230  +
}
        4231  +
impl<L>
        4232  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4233  +
        crate::operation_shape::QueryParamsTargetingMapOfListOfEnumStringOperation,
        4234  +
    > for ConstraintsService<L>
        4235  +
{
        4236  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfListOfEnumStringOperation;
        4237  +
}
        4238  +
impl<L>
        4239  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4240  +
        crate::operation_shape::QueryParamsTargetingMapOfListOfLengthPatternStringOperation,
        4241  +
    > for ConstraintsService<L>
        4242  +
{
        4243  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfListOfLengthPatternStringOperation;
        4244  +
}
        4245  +
impl<L>
        4246  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4247  +
        crate::operation_shape::QueryParamsTargetingMapOfListOfLengthStringOperation,
        4248  +
    > for ConstraintsService<L>
        4249  +
{
        4250  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfListOfLengthStringOperation;
        4251  +
}
        4252  +
impl<L>
        4253  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4254  +
        crate::operation_shape::QueryParamsTargetingMapOfListOfPatternStringOperation,
        4255  +
    > for ConstraintsService<L>
        4256  +
{
        4257  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfListOfPatternStringOperation;
        4258  +
}
        4259  +
impl<L>
        4260  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4261  +
        crate::operation_shape::QueryParamsTargetingMapOfPatternStringOperation,
        4262  +
    > for ConstraintsService<L>
        4263  +
{
        4264  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfPatternStringOperation;
        4265  +
}
        4266  +
impl<L>
        4267  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4268  +
        crate::operation_shape::QueryParamsTargetingMapOfSetOfLengthStringOperation,
        4269  +
    > for ConstraintsService<L>
        4270  +
{
        4271  +
    const VALUE: Operation = Operation::QueryParamsTargetingMapOfSetOfLengthStringOperation;
        4272  +
}
        4273  +
impl<L>
        4274  +
    ::aws_smithy_legacy_http_server::service::ContainsOperation<
        4275  +
        crate::operation_shape::StreamingBlobOperation,
        4276  +
    > for ConstraintsService<L>
        4277  +
{
        4278  +
    const VALUE: Operation = Operation::StreamingBlobOperation;
        4279  +
}
        4280  +
        4281  +
impl<S> ::aws_smithy_legacy_http_server::service::ServiceShape for ConstraintsService<S> {
        4282  +
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
        4283  +
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
        4284  +
            "com.amazonaws.constraints#ConstraintsService",
        4285  +
            "com.amazonaws.constraints",
        4286  +
            "ConstraintsService",
        4287  +
        );
        4288  +
        4289  +
    const VERSION: Option<&'static str> = Some("");
        4290  +
        4291  +
    type Protocol = ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1;
        4292  +
        4293  +
    type Operations = Operation;
        4294  +
}
        4295  +
/// Configuration for the [`ConstraintsService`]. This is the central place where to register and
        4296  +
/// configure [`::tower::Layer`]s, HTTP plugins, and model plugins.
        4297  +
///
        4298  +
/// ```rust,no_run
        4299  +
/// # use constraints_http0x::ConstraintsServiceConfig;
        4300  +
/// # use ::aws_smithy_legacy_http_server::plugin::IdentityPlugin;
        4301  +
/// # use ::tower::layer::util::Identity;
        4302  +
/// # let authentication_plugin = IdentityPlugin;
        4303  +
/// # let authorization_plugin = IdentityPlugin;
        4304  +
/// # let server_request_id_provider_layer = Identity::new();
        4305  +
/// let config = ConstraintsServiceConfig::builder()
        4306  +
///     // Layers get executed first...
        4307  +
///     .layer(server_request_id_provider_layer)
        4308  +
///     // ...then HTTP plugins...
        4309  +
///     .http_plugin(authentication_plugin)
        4310  +
///     // ...and right after deserialization, model plugins.
        4311  +
///     .model_plugin(authorization_plugin)
        4312  +
///     .build();
        4313  +
/// ```
        4314  +
///
        4315  +
/// See the [`plugin`] system for details.
        4316  +
///
        4317  +
/// [`plugin`]: ::aws_smithy_legacy_http_server::plugin
        4318  +
#[derive(::std::fmt::Debug)]
        4319  +
pub struct ConstraintsServiceConfig<L, H, M> {
        4320  +
    layers: L,
        4321  +
    http_plugins: H,
        4322  +
    model_plugins: M,
        4323  +
}
        4324  +
        4325  +
impl ConstraintsServiceConfig<(), (), ()> {
        4326  +
    /// Returns a builder to construct the configuration.
        4327  +
    pub fn builder() -> ConstraintsServiceConfigBuilder<
        4328  +
        ::tower::layer::util::Identity,
        4329  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        4330  +
        ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        4331  +
    > {
        4332  +
        ConstraintsServiceConfigBuilder {
        4333  +
            layers: ::tower::layer::util::Identity::new(),
        4334  +
            http_plugins: ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        4335  +
            model_plugins: ::aws_smithy_legacy_http_server::plugin::IdentityPlugin,
        4336  +
        }
        4337  +
    }
        4338  +
}
        4339  +
        4340  +
/// Builder returned by [`ConstraintsServiceConfig::builder()`].
        4341  +
#[derive(::std::fmt::Debug)]
        4342  +
pub struct ConstraintsServiceConfigBuilder<L, H, M> {
        4343  +
    pub(crate) layers: L,
        4344  +
    pub(crate) http_plugins: H,
        4345  +
    pub(crate) model_plugins: M,
        4346  +
}
        4347  +
        4348  +
impl<L, H, M> ConstraintsServiceConfigBuilder<L, H, M> {
        4349  +
    /// Add a [`::tower::Layer`] to the service.
        4350  +
    pub fn layer<NewLayer>(
        4351  +
        self,
        4352  +
        layer: NewLayer,
        4353  +
    ) -> ConstraintsServiceConfigBuilder<::tower::layer::util::Stack<NewLayer, L>, H, M> {
        4354  +
        ConstraintsServiceConfigBuilder {
        4355  +
            layers: ::tower::layer::util::Stack::new(layer, self.layers),
        4356  +
            http_plugins: self.http_plugins,
        4357  +
            model_plugins: self.model_plugins,
        4358  +
        }
        4359  +
    }
        4360  +
        4361  +
    /// Add a HTTP [plugin] to the service.
        4362  +
    ///
        4363  +
    /// [plugin]: ::aws_smithy_legacy_http_server::plugin
        4364  +
    // We eagerly require `NewPlugin: HttpMarker`, despite not really needing it, because compiler
        4365  +
    // errors get _substantially_ better if the user makes a mistake.
        4366  +
    pub fn http_plugin<NewPlugin: ::aws_smithy_legacy_http_server::plugin::HttpMarker>(
        4367  +
        self,
        4368  +
        http_plugin: NewPlugin,
        4369  +
    ) -> ConstraintsServiceConfigBuilder<
        4370  +
        L,
        4371  +
        ::aws_smithy_legacy_http_server::plugin::PluginStack<NewPlugin, H>,
        4372  +
        M,
        4373  +
    > {
        4374  +
        ConstraintsServiceConfigBuilder {
        4375  +
            layers: self.layers,
        4376  +
            http_plugins: ::aws_smithy_legacy_http_server::plugin::PluginStack::new(
        4377  +
                http_plugin,
        4378  +
                self.http_plugins,
        4379  +
            ),
        4380  +
            model_plugins: self.model_plugins,
        4381  +
        }
        4382  +
    }
        4383  +
        4384  +
    /// Add a model [plugin] to the service.
        4385  +
    ///
        4386  +
    /// [plugin]: ::aws_smithy_legacy_http_server::plugin
        4387  +
    // We eagerly require `NewPlugin: ModelMarker`, despite not really needing it, because compiler
        4388  +
    // errors get _substantially_ better if the user makes a mistake.
        4389  +
    pub fn model_plugin<NewPlugin: ::aws_smithy_legacy_http_server::plugin::ModelMarker>(
        4390  +
        self,
        4391  +
        model_plugin: NewPlugin,
        4392  +
    ) -> ConstraintsServiceConfigBuilder<
        4393  +
        L,
        4394  +
        H,
        4395  +
        ::aws_smithy_legacy_http_server::plugin::PluginStack<NewPlugin, M>,
        4396  +
    > {
        4397  +
        ConstraintsServiceConfigBuilder {
        4398  +
            layers: self.layers,
        4399  +
            http_plugins: self.http_plugins,
        4400  +
            model_plugins: ::aws_smithy_legacy_http_server::plugin::PluginStack::new(
        4401  +
                model_plugin,
        4402  +
                self.model_plugins,
        4403  +
            ),
        4404  +
        }
        4405  +
    }
        4406  +
        4407  +
    /// Build the configuration.
        4408  +
    pub fn build(self) -> super::ConstraintsServiceConfig<L, H, M> {
        4409  +
        super::ConstraintsServiceConfig {
        4410  +
            layers: self.layers,
        4411  +
            http_plugins: self.http_plugins,
        4412  +
            model_plugins: self.model_plugins,
        4413  +
        }
        4414  +
    }
        4415  +
}
        4416  +
/// A macro to help with scoping [plugins](crate::server::plugin) to a subset of all operations.
        4417  +
///
        4418  +
/// In contrast to [`crate::server::scope`](crate::server::scope), this macro has knowledge
        4419  +
/// of the service and any operations _not_ specified will be placed in the opposing group.
        4420  +
///
        4421  +
/// # Example
        4422  +
///
        4423  +
/// ```rust
        4424  +
/// scope! {
        4425  +
///     /// Includes [`ConstrainedHttpBoundShapesOperation`], excluding all other operations.
        4426  +
///     struct ScopeA {
        4427  +
///         includes: [ConstrainedHttpBoundShapesOperation]
        4428  +
///     }
        4429  +
/// }
        4430  +
///
        4431  +
/// scope! {
        4432  +
///     /// Excludes [`ConstrainedHttpBoundShapesOperation`], excluding all other operations.
        4433  +
///     struct ScopeB {
        4434  +
///         excludes: [ConstrainedHttpBoundShapesOperation]
        4435  +
///     }
        4436  +
/// }
        4437  +
///
        4438  +
/// # use constraints_http0x::server::plugin::{Plugin, Scoped};
        4439  +
/// # use constraints_http0x::scope;
        4440  +
/// # struct MockPlugin;
        4441  +
/// # impl<S, Op, T> Plugin<S, Op, T> for MockPlugin { type Output = u32; fn apply(&self, input: T) -> u32 { 3 } }
        4442  +
/// # let scoped_a = Scoped::new::<ScopeA>(MockPlugin);
        4443  +
/// # let scoped_b = Scoped::new::<ScopeB>(MockPlugin);
        4444  +
/// # let a = Plugin::<(), constraints_http0x::operation_shape::ConstrainedHttpBoundShapesOperation, u64>::apply(&scoped_a, 6);
        4445  +
/// # let b = Plugin::<(), constraints_http0x::operation_shape::ConstrainedHttpBoundShapesOperation, u64>::apply(&scoped_b, 6);
        4446  +
/// # assert_eq!(a, 3_u32);
        4447  +
/// # assert_eq!(b, 6_u64);
        4448  +
/// ```
        4449  +
#[macro_export]
        4450  +
macro_rules! scope {
        4451  +
                    // Completed, render impls
        4452  +
                    (@ $ name: ident, $ contains: ident () ($($ temp: ident)*) ($($ not_member: ident)*)) => {
        4453  +
                        $(
        4454  +
                            impl $ crate::server::plugin::scoped::Membership<$ temp> for $ name {
        4455  +
                                type Contains = $ crate::server::plugin::scoped::$ contains;
        4456  +
                            }
        4457  +
                        )*
        4458  +
                        $(
        4459  +
                            impl $ crate::server::plugin::scoped::Membership<$ not_member> for $ name {
        4460  +
                                type Contains = $ crate::server::plugin::scoped::$ contains;
        4461  +
                            }
        4462  +
                        )*
        4463  +
                    };
        4464  +
                    // All `not_member`s exhausted, move `temp` into `not_member`
        4465  +
                    (@ $ name: ident, $ contains: ident ($($ member: ident)*) ($($ temp: ident)*) ()) => {
        4466  +
                        scope! { @ $ name, $ contains ($($ member)*) () ($($ temp)*) }
        4467  +
                    };
        4468  +
        4469  +
                        // ConstrainedHttpBoundShapesOperation match found, pop from both `member` and `not_member`
        4470  +
                        (@ $ name: ident, $ contains: ident (ConstrainedHttpBoundShapesOperation $($ member: ident)*) ($($ temp: ident)*) (ConstrainedHttpBoundShapesOperation $($ not_member: ident)*)) => {
        4471  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4472  +
                        };
        4473  +
                        // ConstrainedHttpBoundShapesOperation match not found, pop from `not_member` into `temp` stack
        4474  +
                        (@ $ name: ident, $ contains: ident (ConstrainedHttpBoundShapesOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4475  +
                            scope! { @ $ name, $ contains (ConstrainedHttpBoundShapesOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4476  +
                        };
        4477  +
        4478  +
                        // ConstrainedHttpPayloadBoundShapeOperation match found, pop from both `member` and `not_member`
        4479  +
                        (@ $ name: ident, $ contains: ident (ConstrainedHttpPayloadBoundShapeOperation $($ member: ident)*) ($($ temp: ident)*) (ConstrainedHttpPayloadBoundShapeOperation $($ not_member: ident)*)) => {
        4480  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4481  +
                        };
        4482  +
                        // ConstrainedHttpPayloadBoundShapeOperation match not found, pop from `not_member` into `temp` stack
        4483  +
                        (@ $ name: ident, $ contains: ident (ConstrainedHttpPayloadBoundShapeOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4484  +
                            scope! { @ $ name, $ contains (ConstrainedHttpPayloadBoundShapeOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4485  +
                        };
        4486  +
        4487  +
                        // ConstrainedRecursiveShapesOperation match found, pop from both `member` and `not_member`
        4488  +
                        (@ $ name: ident, $ contains: ident (ConstrainedRecursiveShapesOperation $($ member: ident)*) ($($ temp: ident)*) (ConstrainedRecursiveShapesOperation $($ not_member: ident)*)) => {
        4489  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4490  +
                        };
        4491  +
                        // ConstrainedRecursiveShapesOperation match not found, pop from `not_member` into `temp` stack
        4492  +
                        (@ $ name: ident, $ contains: ident (ConstrainedRecursiveShapesOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4493  +
                            scope! { @ $ name, $ contains (ConstrainedRecursiveShapesOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4494  +
                        };
        4495  +
        4496  +
                        // ConstrainedShapesOnlyInOutputOperation match found, pop from both `member` and `not_member`
        4497  +
                        (@ $ name: ident, $ contains: ident (ConstrainedShapesOnlyInOutputOperation $($ member: ident)*) ($($ temp: ident)*) (ConstrainedShapesOnlyInOutputOperation $($ not_member: ident)*)) => {
        4498  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4499  +
                        };
        4500  +
                        // ConstrainedShapesOnlyInOutputOperation match not found, pop from `not_member` into `temp` stack
        4501  +
                        (@ $ name: ident, $ contains: ident (ConstrainedShapesOnlyInOutputOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4502  +
                            scope! { @ $ name, $ contains (ConstrainedShapesOnlyInOutputOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4503  +
                        };
        4504  +
        4505  +
                        // ConstrainedShapesOperation match found, pop from both `member` and `not_member`
        4506  +
                        (@ $ name: ident, $ contains: ident (ConstrainedShapesOperation $($ member: ident)*) ($($ temp: ident)*) (ConstrainedShapesOperation $($ not_member: ident)*)) => {
        4507  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4508  +
                        };
        4509  +
                        // ConstrainedShapesOperation match not found, pop from `not_member` into `temp` stack
        4510  +
                        (@ $ name: ident, $ contains: ident (ConstrainedShapesOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4511  +
                            scope! { @ $ name, $ contains (ConstrainedShapesOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4512  +
                        };
        4513  +
        4514  +
                        // EventStreamsOperation match found, pop from both `member` and `not_member`
        4515  +
                        (@ $ name: ident, $ contains: ident (EventStreamsOperation $($ member: ident)*) ($($ temp: ident)*) (EventStreamsOperation $($ not_member: ident)*)) => {
        4516  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4517  +
                        };
        4518  +
                        // EventStreamsOperation match not found, pop from `not_member` into `temp` stack
        4519  +
                        (@ $ name: ident, $ contains: ident (EventStreamsOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4520  +
                            scope! { @ $ name, $ contains (EventStreamsOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4521  +
                        };
        4522  +
        4523  +
                        // HttpPrefixHeadersTargetingLengthMapOperation match found, pop from both `member` and `not_member`
        4524  +
                        (@ $ name: ident, $ contains: ident (HttpPrefixHeadersTargetingLengthMapOperation $($ member: ident)*) ($($ temp: ident)*) (HttpPrefixHeadersTargetingLengthMapOperation $($ not_member: ident)*)) => {
        4525  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4526  +
                        };
        4527  +
                        // HttpPrefixHeadersTargetingLengthMapOperation match not found, pop from `not_member` into `temp` stack
        4528  +
                        (@ $ name: ident, $ contains: ident (HttpPrefixHeadersTargetingLengthMapOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4529  +
                            scope! { @ $ name, $ contains (HttpPrefixHeadersTargetingLengthMapOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4530  +
                        };
        4531  +
        4532  +
                        // NonStreamingBlobOperation match found, pop from both `member` and `not_member`
        4533  +
                        (@ $ name: ident, $ contains: ident (NonStreamingBlobOperation $($ member: ident)*) ($($ temp: ident)*) (NonStreamingBlobOperation $($ not_member: ident)*)) => {
        4534  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4535  +
                        };
        4536  +
                        // NonStreamingBlobOperation match not found, pop from `not_member` into `temp` stack
        4537  +
                        (@ $ name: ident, $ contains: ident (NonStreamingBlobOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4538  +
                            scope! { @ $ name, $ contains (NonStreamingBlobOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4539  +
                        };
        4540  +
        4541  +
                        // QueryParamsTargetingLengthMapOperation match found, pop from both `member` and `not_member`
        4542  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingLengthMapOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingLengthMapOperation $($ not_member: ident)*)) => {
        4543  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4544  +
                        };
        4545  +
                        // QueryParamsTargetingLengthMapOperation match not found, pop from `not_member` into `temp` stack
        4546  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingLengthMapOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4547  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingLengthMapOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4548  +
                        };
        4549  +
        4550  +
                        // QueryParamsTargetingMapOfEnumStringOperation match found, pop from both `member` and `not_member`
        4551  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfEnumStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfEnumStringOperation $($ not_member: ident)*)) => {
        4552  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4553  +
                        };
        4554  +
                        // QueryParamsTargetingMapOfEnumStringOperation match not found, pop from `not_member` into `temp` stack
        4555  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfEnumStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4556  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfEnumStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4557  +
                        };
        4558  +
        4559  +
                        // QueryParamsTargetingMapOfLengthListOfPatternStringOperation match found, pop from both `member` and `not_member`
        4560  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfLengthListOfPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfLengthListOfPatternStringOperation $($ not_member: ident)*)) => {
        4561  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4562  +
                        };
        4563  +
                        // QueryParamsTargetingMapOfLengthListOfPatternStringOperation match not found, pop from `not_member` into `temp` stack
        4564  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfLengthListOfPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4565  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfLengthListOfPatternStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4566  +
                        };
        4567  +
        4568  +
                        // QueryParamsTargetingMapOfLengthPatternStringOperation match found, pop from both `member` and `not_member`
        4569  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfLengthPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfLengthPatternStringOperation $($ not_member: ident)*)) => {
        4570  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4571  +
                        };
        4572  +
                        // QueryParamsTargetingMapOfLengthPatternStringOperation match not found, pop from `not_member` into `temp` stack
        4573  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfLengthPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4574  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfLengthPatternStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4575  +
                        };
        4576  +
        4577  +
                        // QueryParamsTargetingMapOfLengthStringOperation match found, pop from both `member` and `not_member`
        4578  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfLengthStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfLengthStringOperation $($ not_member: ident)*)) => {
        4579  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4580  +
                        };
        4581  +
                        // QueryParamsTargetingMapOfLengthStringOperation match not found, pop from `not_member` into `temp` stack
        4582  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfLengthStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4583  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfLengthStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4584  +
                        };
        4585  +
        4586  +
                        // QueryParamsTargetingMapOfListOfEnumStringOperation match found, pop from both `member` and `not_member`
        4587  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfListOfEnumStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfListOfEnumStringOperation $($ not_member: ident)*)) => {
        4588  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4589  +
                        };
        4590  +
                        // QueryParamsTargetingMapOfListOfEnumStringOperation match not found, pop from `not_member` into `temp` stack
        4591  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfListOfEnumStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4592  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfListOfEnumStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4593  +
                        };
        4594  +
        4595  +
                        // QueryParamsTargetingMapOfListOfLengthPatternStringOperation match found, pop from both `member` and `not_member`
        4596  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfListOfLengthPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfListOfLengthPatternStringOperation $($ not_member: ident)*)) => {
        4597  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4598  +
                        };
        4599  +
                        // QueryParamsTargetingMapOfListOfLengthPatternStringOperation match not found, pop from `not_member` into `temp` stack
        4600  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfListOfLengthPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4601  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfListOfLengthPatternStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4602  +
                        };
        4603  +
        4604  +
                        // QueryParamsTargetingMapOfListOfLengthStringOperation match found, pop from both `member` and `not_member`
        4605  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfListOfLengthStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfListOfLengthStringOperation $($ not_member: ident)*)) => {
        4606  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4607  +
                        };
        4608  +
                        // QueryParamsTargetingMapOfListOfLengthStringOperation match not found, pop from `not_member` into `temp` stack
        4609  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfListOfLengthStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4610  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfListOfLengthStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4611  +
                        };
        4612  +
        4613  +
                        // QueryParamsTargetingMapOfListOfPatternStringOperation match found, pop from both `member` and `not_member`
        4614  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfListOfPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfListOfPatternStringOperation $($ not_member: ident)*)) => {
        4615  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4616  +
                        };
        4617  +
                        // QueryParamsTargetingMapOfListOfPatternStringOperation match not found, pop from `not_member` into `temp` stack
        4618  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfListOfPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4619  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfListOfPatternStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4620  +
                        };
        4621  +
        4622  +
                        // QueryParamsTargetingMapOfPatternStringOperation match found, pop from both `member` and `not_member`
        4623  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfPatternStringOperation $($ not_member: ident)*)) => {
        4624  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4625  +
                        };
        4626  +
                        // QueryParamsTargetingMapOfPatternStringOperation match not found, pop from `not_member` into `temp` stack
        4627  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfPatternStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4628  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfPatternStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4629  +
                        };
        4630  +
        4631  +
                        // QueryParamsTargetingMapOfSetOfLengthStringOperation match found, pop from both `member` and `not_member`
        4632  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfSetOfLengthStringOperation $($ member: ident)*) ($($ temp: ident)*) (QueryParamsTargetingMapOfSetOfLengthStringOperation $($ not_member: ident)*)) => {
        4633  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4634  +
                        };
        4635  +
                        // QueryParamsTargetingMapOfSetOfLengthStringOperation match not found, pop from `not_member` into `temp` stack
        4636  +
                        (@ $ name: ident, $ contains: ident (QueryParamsTargetingMapOfSetOfLengthStringOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4637  +
                            scope! { @ $ name, $ contains (QueryParamsTargetingMapOfSetOfLengthStringOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4638  +
                        };
        4639  +
        4640  +
                        // StreamingBlobOperation match found, pop from both `member` and `not_member`
        4641  +
                        (@ $ name: ident, $ contains: ident (StreamingBlobOperation $($ member: ident)*) ($($ temp: ident)*) (StreamingBlobOperation $($ not_member: ident)*)) => {
        4642  +
                            scope! { @ $ name, $ contains ($($ member)*) ($($ temp)*) ($($ not_member)*) }
        4643  +
                        };
        4644  +
                        // StreamingBlobOperation match not found, pop from `not_member` into `temp` stack
        4645  +
                        (@ $ name: ident, $ contains: ident (StreamingBlobOperation $($ member: ident)*) ($($ temp: ident)*) ($ other: ident $($ not_member: ident)*)) => {
        4646  +
                            scope! { @ $ name, $ contains (StreamingBlobOperation $($ member)*) ($ other $($ temp)*) ($($ not_member)*) }
        4647  +
                        };
        4648  +
        4649  +
                    (
        4650  +
                        $(#[$ attrs:meta])*
        4651  +
                        $ vis:vis struct $ name:ident {
        4652  +
                            includes: [$($ include:ident),*]
        4653  +
                        }
        4654  +
                    ) => {
        4655  +
                        use $ crate::operation_shape::*;
        4656  +
                        $ crate::server::scope! {
        4657  +
                            $(#[$ attrs])*
        4658  +
                            $ vis struct $ name {
        4659  +
                                includes: [$($ include),*],
        4660  +
                                excludes: []
        4661  +
                            }
        4662  +
                        }
        4663  +
                        scope! { @ $ name, False ($($ include)*) () (ConstrainedHttpBoundShapesOperation ConstrainedHttpPayloadBoundShapeOperation ConstrainedRecursiveShapesOperation ConstrainedShapesOnlyInOutputOperation ConstrainedShapesOperation EventStreamsOperation HttpPrefixHeadersTargetingLengthMapOperation NonStreamingBlobOperation QueryParamsTargetingLengthMapOperation QueryParamsTargetingMapOfEnumStringOperation QueryParamsTargetingMapOfLengthListOfPatternStringOperation QueryParamsTargetingMapOfLengthPatternStringOperation QueryParamsTargetingMapOfLengthStringOperation QueryParamsTargetingMapOfListOfEnumStringOperation QueryParamsTargetingMapOfListOfLengthPatternStringOperation QueryParamsTargetingMapOfListOfLengthStringOperation QueryParamsTargetingMapOfListOfPatternStringOperation QueryParamsTargetingMapOfPatternStringOperation QueryParamsTargetingMapOfSetOfLengthStringOperation StreamingBlobOperation) }
        4664  +
                    };
        4665  +
                    (
        4666  +
                        $(#[$ attrs:meta])*
        4667  +
                        $ vis:vis struct $ name:ident {
        4668  +
                            excludes: [$($ exclude:ident),*]
        4669  +
                        }
        4670  +
                    ) => {
        4671  +
                        use $ crate::operation_shape::*;
        4672  +
        4673  +
                        $ crate::server::scope! {
        4674  +
                            $(#[$ attrs])*
        4675  +
                            $ vis struct $ name {
        4676  +
                                includes: [],
        4677  +
                                excludes: [$($ exclude),*]
        4678  +
                            }
        4679  +
                        }
        4680  +
                        scope! { @ $ name, True ($($ exclude)*) () (ConstrainedHttpBoundShapesOperation ConstrainedHttpPayloadBoundShapeOperation ConstrainedRecursiveShapesOperation ConstrainedShapesOnlyInOutputOperation ConstrainedShapesOperation EventStreamsOperation HttpPrefixHeadersTargetingLengthMapOperation NonStreamingBlobOperation QueryParamsTargetingLengthMapOperation QueryParamsTargetingMapOfEnumStringOperation QueryParamsTargetingMapOfLengthListOfPatternStringOperation QueryParamsTargetingMapOfLengthPatternStringOperation QueryParamsTargetingMapOfLengthStringOperation QueryParamsTargetingMapOfListOfEnumStringOperation QueryParamsTargetingMapOfListOfLengthPatternStringOperation QueryParamsTargetingMapOfListOfLengthStringOperation QueryParamsTargetingMapOfListOfPatternStringOperation QueryParamsTargetingMapOfPatternStringOperation QueryParamsTargetingMapOfSetOfLengthStringOperation StreamingBlobOperation) }
        4681  +
                    };
        4682  +
                }