Server Test Python

Server Test Python

rev. 595a9dbeb2bcaa5eb380ce8a3ff81a559073e046 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-server-test-python/Cargo.lock

@@ -49,49 +250,250 @@
   69     69   
name = "aws-smithy-async"
   70     70   
version = "1.2.5"
   71     71   
dependencies = [
   72     72   
 "futures-util",
   73     73   
 "pin-project-lite",
   74     74   
 "tokio",
   75     75   
]
   76     76   
   77     77   
[[package]]
   78     78   
name = "aws-smithy-cbor"
   79         -
version = "0.61.0"
          79  +
version = "0.61.1"
   80     80   
dependencies = [
   81     81   
 "aws-smithy-types",
   82     82   
 "minicbor",
   83     83   
]
   84     84   
   85     85   
[[package]]
   86     86   
name = "aws-smithy-eventstream"
   87         -
version = "0.60.8"
          87  +
version = "0.60.9"
   88     88   
dependencies = [
   89     89   
 "aws-smithy-types",
   90     90   
 "bytes",
   91     91   
 "crc32fast",
   92     92   
]
   93     93   
   94     94   
[[package]]
   95     95   
name = "aws-smithy-http"
   96     96   
version = "0.62.1"
   97     97   
dependencies = [
   98     98   
 "aws-smithy-eventstream",
   99     99   
 "aws-smithy-runtime-api",
  100    100   
 "aws-smithy-types",
  101    101   
 "bytes",
  102    102   
 "bytes-utils",
  103    103   
 "futures-core",
  104    104   
 "http 0.2.12",
  105    105   
 "http 1.3.1",
  106    106   
 "http-body",
  107    107   
 "percent-encoding",
  108    108   
 "pin-project-lite",
  109    109   
 "pin-utils",
  110    110   
 "tracing",
  111    111   
]
  112    112   
  113    113   
[[package]]
  114    114   
name = "aws-smithy-http-server"
  115         -
version = "0.65.3"
         115  +
version = "0.65.5"
  116    116   
dependencies = [
  117    117   
 "aws-smithy-cbor",
  118    118   
 "aws-smithy-http",
  119    119   
 "aws-smithy-json",
  120    120   
 "aws-smithy-runtime-api",
  121    121   
 "aws-smithy-types",
  122    122   
 "aws-smithy-xml",
  123    123   
 "bytes",
  124    124   
 "futures-util",
  125    125   
 "http 0.2.12",
  126    126   
 "http-body",
  127    127   
 "hyper",
  128    128   
 "lambda_http",
  129    129   
 "mime",
  130    130   
 "nom",
  131    131   
 "pin-project-lite",
  132    132   
 "regex",
  133    133   
 "serde_urlencoded",
  134    134   
 "thiserror 2.0.12",
  135    135   
 "tokio",
  136    136   
 "tower",
  137    137   
 "tower-http",
  138    138   
 "tracing",
  139    139   
 "uuid",
  140    140   
]
  141    141   
  142    142   
[[package]]
  143    143   
name = "aws-smithy-http-server-python"
  144         -
version = "0.66.0"
         144  +
version = "0.66.1"
  145    145   
dependencies = [
  146    146   
 "aws-smithy-http",
  147    147   
 "aws-smithy-http-server",
  148    148   
 "aws-smithy-json",
  149    149   
 "aws-smithy-types",
  150    150   
 "aws-smithy-xml",
  151    151   
 "bytes",
  152    152   
 "futures",
  153    153   
 "http 0.2.12",
  154    154   
 "hyper",
  155    155   
 "lambda_http",
  156    156   
 "num_cpus",
  157    157   
 "parking_lot",
  158    158   
 "pin-project-lite",
  159    159   
 "pyo3",
  160    160   
 "pyo3-asyncio",
  161    161   
 "rustls-pemfile",
  162    162   
 "signal-hook",
  163    163   
 "socket2",
  164    164   
 "thiserror 2.0.12",
  165    165   
 "tls-listener",
  166    166   
 "tokio",
  167    167   
 "tokio-rustls",
  168    168   
 "tokio-stream",
  169    169   
 "tower",
  170    170   
 "tracing",
  171    171   
 "tracing-appender",
  172    172   
 "tracing-subscriber",
  173    173   
]
  174    174   
  175    175   
[[package]]
  176    176   
name = "aws-smithy-json"
  177         -
version = "0.61.3"
         177  +
version = "0.61.4"
  178    178   
dependencies = [
  179    179   
 "aws-smithy-types",
  180    180   
]
  181    181   
  182    182   
[[package]]
  183    183   
name = "aws-smithy-runtime-api"
  184         -
version = "1.8.0"
         184  +
version = "1.8.1"
  185    185   
dependencies = [
  186    186   
 "aws-smithy-async",
  187    187   
 "aws-smithy-types",
  188    188   
 "bytes",
  189    189   
 "http 0.2.12",
  190    190   
 "http 1.3.1",
  191    191   
 "pin-project-lite",
  192    192   
 "tokio",
  193    193   
 "tracing",
  194    194   
]
  195    195   
  196    196   
[[package]]
  197    197   
name = "aws-smithy-types"
  198         -
version = "1.3.1"
         198  +
version = "1.3.2"
  199    199   
dependencies = [
  200    200   
 "base64-simd",
  201    201   
 "bytes",
  202    202   
 "bytes-utils",
  203    203   
 "futures-core",
  204    204   
 "http 0.2.12",
  205    205   
 "http-body",
  206    206   
 "hyper",
  207    207   
 "itoa",
  208    208   
 "num-integer",
  209    209   
 "pin-project-lite",
  210    210   
 "pin-utils",
  211    211   
 "ryu",
  212    212   
 "serde",
  213    213   
 "time",
  214    214   
 "tokio",
  215    215   
 "tokio-util",
  216    216   
]
  217    217   
  218    218   
[[package]]
  219    219   
name = "aws-smithy-xml"
  220         -
version = "0.60.9"
         220  +
version = "0.60.10"
  221    221   
dependencies = [
  222    222   
 "xmlparser",
  223    223   
]
  224    224   
  225    225   
[[package]]
  226    226   
name = "aws_lambda_events"
  227    227   
version = "0.12.1"
  228    228   
source = "registry+https://github.com/rust-lang/crates.io-index"
  229    229   
checksum = "03611508dd1e514e311caec235b581c99a4cb66fa1771bd502819eed69894f12"
  230    230   
dependencies = [

tmp-codegen-diff/codegen-server-test-python/constraints/rust-server-codegen-python/src/error.rs

@@ -2043,2043 +2103,2102 @@
 2063   2063   
            }
 2064   2064   
            .into()
 2065   2065   
        })
 2066   2066   
    }
 2067   2067   
}
 2068   2068   
/// See [`InternalServerError`](crate::error::InternalServerError).
 2069   2069   
pub mod internal_server_error {
 2070   2070   
 2071   2071   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2072   2072   
    /// Holds one variant for each of the ways the builder can fail.
 2073         -
 2074   2073   
    #[allow(clippy::enum_variant_names)]
 2075   2074   
    pub enum ConstraintViolation {
 2076   2075   
        /// `message` was not provided but it is required when building `InternalServerError`.
 2077   2076   
        MissingMessage,
 2078   2077   
    }
 2079   2078   
    impl ::std::fmt::Display for ConstraintViolation {
 2080   2079   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2081   2080   
            match self {
 2082   2081   
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `InternalServerError`"),
 2083   2082   
            }
@@ -2162,2161 +2222,2220 @@
 2182   2181   
                message_content: self.message_content,
 2183   2182   
            }
 2184   2183   
        }
 2185   2184   
    }
 2186   2185   
}
 2187   2186   
/// See [`ValidationException`](crate::error::ValidationException).
 2188   2187   
pub mod validation_exception {
 2189   2188   
 2190   2189   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2191   2190   
    /// Holds one variant for each of the ways the builder can fail.
 2192         -
 2193   2191   
    #[allow(clippy::enum_variant_names)]
 2194   2192   
    pub enum ConstraintViolation {
 2195   2193   
        /// `message` was not provided but it is required when building `ValidationException`.
 2196   2194   
        MissingMessage,
 2197   2195   
    }
 2198   2196   
    impl ::std::fmt::Display for ConstraintViolation {
 2199   2197   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2200   2198   
            match self {
 2201   2199   
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationException`"),
 2202   2200   
            }

tmp-codegen-diff/codegen-server-test-python/constraints/rust-server-codegen-python/src/input.rs

@@ -1930,1930 +1990,1989 @@
 1950   1950   
                events: self.events.ok_or(ConstraintViolation::MissingEvents)?,
 1951   1951   
            })
 1952   1952   
        }
 1953   1953   
    }
 1954   1954   
}
 1955   1955   
/// See [`EventStreamsOperationInput`](crate::input::EventStreamsOperationInput).
 1956   1956   
pub mod event_streams_operation_input {
 1957   1957   
 1958   1958   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1959   1959   
    /// Holds one variant for each of the ways the builder can fail.
 1960         -
 1961   1960   
    #[allow(clippy::enum_variant_names)]
 1962   1961   
    pub enum ConstraintViolation {
 1963   1962   
        /// `events` was not provided but it is required when building `EventStreamsOperationInput`.
 1964   1963   
        MissingEvents,
 1965   1964   
    }
 1966   1965   
    impl ::std::fmt::Display for ConstraintViolation {
 1967   1966   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1968   1967   
            match self {
 1969   1968   
                ConstraintViolation::MissingEvents => write!(f, "`events` was not provided but it is required when building `EventStreamsOperationInput`"),
 1970   1969   
            }
@@ -4276,4275 +4336,4334 @@
 4296   4295   
                    .ok_or(ConstraintViolation::MissingRecursiveList)?,
 4297   4296   
            })
 4298   4297   
        }
 4299   4298   
    }
 4300   4299   
}
 4301   4300   
/// See [`ConstrainedRecursiveShapesOperationInput`](crate::input::ConstrainedRecursiveShapesOperationInput).
 4302   4301   
pub mod constrained_recursive_shapes_operation_input {
 4303   4302   
 4304   4303   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 4305   4304   
    /// Holds one variant for each of the ways the builder can fail.
 4306         -
 4307   4305   
    #[allow(clippy::enum_variant_names)]
 4308   4306   
    pub enum ConstraintViolation {
 4309   4307   
        /// `recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationInput`.
 4310   4308   
        MissingRecursiveList,
 4311   4309   
    }
 4312   4310   
    impl ::std::fmt::Display for ConstraintViolation {
 4313   4311   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4314   4312   
            match self {
 4315   4313   
                ConstraintViolation::MissingRecursiveList => write!(f, "`recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationInput`"),
 4316   4314   
            }
@@ -4471,4469 +4531,4528 @@
 4491   4489   
                },
 4492   4490   
            )
 4493   4491   
        }
 4494   4492   
    }
 4495   4493   
}
 4496   4494   
/// See [`ConstrainedHttpPayloadBoundShapeOperationInput`](crate::input::ConstrainedHttpPayloadBoundShapeOperationInput).
 4497   4495   
pub mod constrained_http_payload_bound_shape_operation_input {
 4498   4496   
 4499   4497   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 4500   4498   
    /// Holds one variant for each of the ways the builder can fail.
 4501         -
 4502   4499   
    #[allow(clippy::enum_variant_names)]
 4503   4500   
    pub enum ConstraintViolation {
 4504   4501   
        /// `http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationInput`.
 4505   4502   
        MissingHttpPayloadBoundConstrainedShape,
 4506   4503   
    }
 4507   4504   
    impl ::std::fmt::Display for ConstraintViolation {
 4508   4505   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4509   4506   
            match self {
 4510   4507   
                ConstraintViolation::MissingHttpPayloadBoundConstrainedShape => write!(f, "`http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationInput`"),
 4511   4508   
            }
@@ -5741,5738 +5801,5797 @@
 5761   5758   
                    .transpose()?,
 5762   5759   
            })
 5763   5760   
        }
 5764   5761   
    }
 5765   5762   
}
 5766   5763   
/// See [`ConstrainedHttpBoundShapesOperationInput`](crate::input::ConstrainedHttpBoundShapesOperationInput).
 5767   5764   
pub mod constrained_http_bound_shapes_operation_input {
 5768   5765   
 5769   5766   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 5770   5767   
    /// Holds one variant for each of the ways the builder can fail.
 5771         -
 5772   5768   
    #[allow(clippy::enum_variant_names)]
 5773   5769   
    pub enum ConstraintViolation {
 5774   5770   
        /// `length_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 5775   5771   
        MissingLengthStringLabel,
 5776   5772   
        /// `enum_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 5777   5773   
        MissingEnumStringLabel,
 5778   5774   
        /// `length_string_header_map` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 5779   5775   
        MissingLengthStringHeaderMap,
 5780   5776   
    }
 5781   5777   
    impl ::std::fmt::Display for ConstraintViolation {
@@ -6354,6350 +6414,6409 @@
 6374   6370   
                    .ok_or(ConstraintViolation::MissingConA)?,
 6375   6371   
            })
 6376   6372   
        }
 6377   6373   
    }
 6378   6374   
}
 6379   6375   
/// See [`ConstrainedShapesOperationInput`](crate::input::ConstrainedShapesOperationInput).
 6380   6376   
pub mod constrained_shapes_operation_input {
 6381   6377   
 6382   6378   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 6383   6379   
    /// Holds one variant for each of the ways the builder can fail.
 6384         -
 6385   6380   
    #[allow(clippy::enum_variant_names)]
 6386   6381   
    pub enum ConstraintViolation {
 6387   6382   
        /// `con_a` was not provided but it is required when building `ConstrainedShapesOperationInput`.
 6388   6383   
        MissingConA,
 6389   6384   
    }
 6390   6385   
    impl ::std::fmt::Display for ConstraintViolation {
 6391   6386   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6392   6387   
            match self {
 6393   6388   
                ConstraintViolation::MissingConA => write!(f, "`con_a` was not provided but it is required when building `ConstrainedShapesOperationInput`"),
 6394   6389   
            }

tmp-codegen-diff/codegen-server-test-python/constraints/rust-server-codegen-python/src/model.rs

@@ -5261,5261 +5321,5320 @@
 5281   5281   
    fn from(value: ConstrainedListInOutput) -> Self {
 5282   5282   
        value.into_inner()
 5283   5283   
    }
 5284   5284   
}
 5285   5285   
 5286   5286   
/// See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 5287   5287   
pub mod validation_exception_field {
 5288   5288   
 5289   5289   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 5290   5290   
    /// Holds one variant for each of the ways the builder can fail.
 5291         -
 5292   5291   
    #[allow(clippy::enum_variant_names)]
 5293   5292   
    pub enum ConstraintViolation {
 5294   5293   
        /// `path` was not provided but it is required when building `ValidationExceptionField`.
 5295   5294   
        MissingPath,
 5296   5295   
        /// `message` was not provided but it is required when building `ValidationExceptionField`.
 5297   5296   
        MissingMessage,
 5298   5297   
    }
 5299   5298   
    impl ::std::fmt::Display for ConstraintViolation {
 5300   5299   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5301   5300   
            match self {
@@ -6386,6385 +6446,6444 @@
 6406   6405   
                    .ok_or(ConstraintViolation::MissingRecursiveMember)?,
 6407   6406   
            })
 6408   6407   
        }
 6409   6408   
    }
 6410   6409   
}
 6411   6410   
/// See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 6412   6411   
pub mod recursive_shapes_input_output_nested1 {
 6413   6412   
 6414   6413   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 6415   6414   
    /// Holds one variant for each of the ways the builder can fail.
 6416         -
 6417   6415   
    #[allow(clippy::enum_variant_names)]
 6418   6416   
    pub enum ConstraintViolation {
 6419   6417   
        /// `recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`.
 6420   6418   
        MissingRecursiveMember,
 6421   6419   
    }
 6422   6420   
    impl ::std::fmt::Display for ConstraintViolation {
 6423   6421   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6424   6422   
            match self {
 6425   6423   
                ConstraintViolation::MissingRecursiveMember => write!(f, "`recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`"),
 6426   6424   
            }
@@ -8529,8527 +8589,8586 @@
 8549   8547   
                    .map(|v: crate::model::LengthSetOfPatternString| v.into()),
 8550   8548   
            })
 8551   8549   
        }
 8552   8550   
    }
 8553   8551   
}
 8554   8552   
/// See [`ConA`](crate::model::ConA).
 8555   8553   
pub mod con_a {
 8556   8554   
 8557   8555   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 8558   8556   
    /// Holds one variant for each of the ways the builder can fail.
 8559         -
 8560   8557   
    #[allow(clippy::enum_variant_names)]
 8561   8558   
    pub enum ConstraintViolation {
 8562   8559   
        /// `con_b` was not provided but it is required when building `ConA`.
 8563   8560   
        MissingConB,
 8564   8561   
    }
 8565   8562   
    impl ::std::fmt::Display for ConstraintViolation {
 8566   8563   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 8567   8564   
            match self {
 8568   8565   
                ConstraintViolation::MissingConB => write!(
 8569   8566   
                    f,
@@ -10553,10550 +10613,10609 @@
10573  10570   
                opt_int: self.opt_int,
10574  10571   
            })
10575  10572   
        }
10576  10573   
    }
10577  10574   
}
10578  10575   
/// See [`ConB`](crate::model::ConB).
10579  10576   
pub mod con_b {
10580  10577   
10581  10578   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
10582  10579   
    /// Holds one variant for each of the ways the builder can fail.
10583         -
10584  10580   
    #[allow(clippy::enum_variant_names)]
10585  10581   
    pub enum ConstraintViolation {
10586  10582   
        /// `nice` was not provided but it is required when building `ConB`.
10587  10583   
        MissingNice,
10588  10584   
        /// `int` was not provided but it is required when building `ConB`.
10589  10585   
        MissingInt,
10590  10586   
    }
10591  10587   
    impl ::std::fmt::Display for ConstraintViolation {
10592  10588   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10593  10589   
            match self {

tmp-codegen-diff/codegen-server-test-python/constraints/rust-server-codegen-python/src/operation.rs

@@ -28,28 +88,87 @@
   48     48   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   49     49   
        let fut = async move {
   50     50   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   51     51   
                request.headers(),
   52     52   
                &CONTENT_TYPE_EVENTSTREAMSOPERATION,
   53     53   
            ) {
   54     54   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
   55     55   
            }
   56     56   
            crate::protocol_serde::shape_event_streams_operation::de_event_streams_operation_http_request(request)
   57     57   
                            .await
   58         -
                            .map_err(Into::into)
   59     58   
        };
   60     59   
        use ::futures_util::future::TryFutureExt;
   61     60   
        let fut = fut.map_err(
   62     61   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
   63     62   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   64     63   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   65     64   
                    e,
   66     65   
                )
   67     66   
            },
   68     67   
        );
@@ -129,128 +189,187 @@
  149    148   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  150    149   
        let fut = async move {
  151    150   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  152    151   
                request.headers(),
  153    152   
                &CONTENT_TYPE_STREAMINGBLOBOPERATION,
  154    153   
            ) {
  155    154   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  156    155   
            }
  157    156   
            crate::protocol_serde::shape_streaming_blob_operation::de_streaming_blob_operation_http_request(request)
  158    157   
                            .await
  159         -
                            .map_err(Into::into)
  160    158   
        };
  161    159   
        use ::futures_util::future::TryFutureExt;
  162    160   
        let fut = fut.map_err(
  163    161   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  164    162   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  165    163   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  166    164   
                    e,
  167    165   
                )
  168    166   
            },
  169    167   
        );
@@ -222,220 +282,279 @@
  242    240   
    ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  243    241   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
  244    242   
{
  245    243   
    type Rejection = ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  246    244   
    type Future = NonStreamingBlobOperationInputFuture;
  247    245   
  248    246   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  249    247   
        let fut = async move {
  250    248   
            crate::protocol_serde::shape_non_streaming_blob_operation::de_non_streaming_blob_operation_http_request(request)
  251    249   
                            .await
  252         -
                            .map_err(Into::into)
  253    250   
        };
  254    251   
        use ::futures_util::future::TryFutureExt;
  255    252   
        let fut = fut.map_err(
  256    253   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  257    254   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  258    255   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  259    256   
                    e,
  260    257   
                )
  261    258   
            },
  262    259   
        );
@@ -323,320 +383,379 @@
  343    340   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  344    341   
        let fut = async move {
  345    342   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  346    343   
                request.headers(),
  347    344   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFENUMSTRINGOPERATION,
  348    345   
            ) {
  349    346   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  350    347   
            }
  351    348   
            crate::protocol_serde::shape_query_params_targeting_map_of_enum_string_operation::de_query_params_targeting_map_of_enum_string_operation_http_request(request)
  352    349   
                            .await
  353         -
                            .map_err(Into::into)
  354    350   
        };
  355    351   
        use ::futures_util::future::TryFutureExt;
  356    352   
        let fut = fut.map_err(
  357    353   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  358    354   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  359    355   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  360    356   
                    e,
  361    357   
                )
  362    358   
            },
  363    359   
        );
@@ -424,420 +484,479 @@
  444    440   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  445    441   
        let fut = async move {
  446    442   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  447    443   
                request.headers(),
  448    444   
                &CONTENT_TYPE_HTTPPREFIXHEADERSTARGETINGLENGTHMAPOPERATION,
  449    445   
            ) {
  450    446   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  451    447   
            }
  452    448   
            crate::protocol_serde::shape_http_prefix_headers_targeting_length_map_operation::de_http_prefix_headers_targeting_length_map_operation_http_request(request)
  453    449   
                            .await
  454         -
                            .map_err(Into::into)
  455    450   
        };
  456    451   
        use ::futures_util::future::TryFutureExt;
  457    452   
        let fut = fut.map_err(
  458    453   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  459    454   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  460    455   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  461    456   
                    e,
  462    457   
                )
  463    458   
            },
  464    459   
        );
@@ -527,522 +587,581 @@
  547    542   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  548    543   
        let fut = async move {
  549    544   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  550    545   
                request.headers(),
  551    546   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFLENGTHPATTERNSTRINGOPERATION,
  552    547   
            ) {
  553    548   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  554    549   
            }
  555    550   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_length_pattern_string_operation::de_query_params_targeting_map_of_list_of_length_pattern_string_operation_http_request(request)
  556    551   
                            .await
  557         -
                            .map_err(Into::into)
  558    552   
        };
  559    553   
        use ::futures_util::future::TryFutureExt;
  560    554   
        let fut = fut.map_err(
  561    555   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  562    556   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  563    557   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  564    558   
                    e,
  565    559   
                )
  566    560   
            },
  567    561   
        );
@@ -628,622 +688,681 @@
  648    642   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  649    643   
        let fut = async move {
  650    644   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  651    645   
                request.headers(),
  652    646   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHPATTERNSTRINGOPERATION,
  653    647   
            ) {
  654    648   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  655    649   
            }
  656    650   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_pattern_string_operation::de_query_params_targeting_map_of_length_pattern_string_operation_http_request(request)
  657    651   
                            .await
  658         -
                            .map_err(Into::into)
  659    652   
        };
  660    653   
        use ::futures_util::future::TryFutureExt;
  661    654   
        let fut = fut.map_err(
  662    655   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  663    656   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  664    657   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  665    658   
                    e,
  666    659   
                )
  667    660   
            },
  668    661   
        );
@@ -729,722 +789,781 @@
  749    742   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  750    743   
        let fut = async move {
  751    744   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  752    745   
                request.headers(),
  753    746   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFPATTERNSTRINGOPERATION,
  754    747   
            ) {
  755    748   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  756    749   
            }
  757    750   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_pattern_string_operation::de_query_params_targeting_map_of_list_of_pattern_string_operation_http_request(request)
  758    751   
                            .await
  759         -
                            .map_err(Into::into)
  760    752   
        };
  761    753   
        use ::futures_util::future::TryFutureExt;
  762    754   
        let fut = fut.map_err(
  763    755   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  764    756   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  765    757   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  766    758   
                    e,
  767    759   
                )
  768    760   
            },
  769    761   
        );
@@ -830,822 +890,881 @@
  850    842   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  851    843   
        let fut = async move {
  852    844   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  853    845   
                request.headers(),
  854    846   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFPATTERNSTRINGOPERATION,
  855    847   
            ) {
  856    848   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  857    849   
            }
  858    850   
            crate::protocol_serde::shape_query_params_targeting_map_of_pattern_string_operation::de_query_params_targeting_map_of_pattern_string_operation_http_request(request)
  859    851   
                            .await
  860         -
                            .map_err(Into::into)
  861    852   
        };
  862    853   
        use ::futures_util::future::TryFutureExt;
  863    854   
        let fut = fut.map_err(
  864    855   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  865    856   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  866    857   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  867    858   
                    e,
  868    859   
                )
  869    860   
            },
  870    861   
        );
@@ -931,922 +991,981 @@
  951    942   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  952    943   
        let fut = async move {
  953    944   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  954    945   
                request.headers(),
  955    946   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFENUMSTRINGOPERATION,
  956    947   
            ) {
  957    948   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  958    949   
            }
  959    950   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_enum_string_operation::de_query_params_targeting_map_of_list_of_enum_string_operation_http_request(request)
  960    951   
                            .await
  961         -
                            .map_err(Into::into)
  962    952   
        };
  963    953   
        use ::futures_util::future::TryFutureExt;
  964    954   
        let fut = fut.map_err(
  965    955   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  966    956   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  967    957   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  968    958   
                    e,
  969    959   
                )
  970    960   
            },
  971    961   
        );
@@ -1034,1024 +1094,1083 @@
 1054   1044   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1055   1045   
        let fut = async move {
 1056   1046   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1057   1047   
                request.headers(),
 1058   1048   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHLISTOFPATTERNSTRINGOPERATION,
 1059   1049   
            ) {
 1060   1050   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1061   1051   
            }
 1062   1052   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_list_of_pattern_string_operation::de_query_params_targeting_map_of_length_list_of_pattern_string_operation_http_request(request)
 1063   1053   
                            .await
 1064         -
                            .map_err(Into::into)
 1065   1054   
        };
 1066   1055   
        use ::futures_util::future::TryFutureExt;
 1067   1056   
        let fut = fut.map_err(
 1068   1057   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1069   1058   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1070   1059   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1071   1060   
                    e,
 1072   1061   
                )
 1073   1062   
            },
 1074   1063   
        );
@@ -1135,1124 +1195,1183 @@
 1155   1144   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1156   1145   
        let fut = async move {
 1157   1146   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1158   1147   
                request.headers(),
 1159   1148   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFSETOFLENGTHSTRINGOPERATION,
 1160   1149   
            ) {
 1161   1150   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1162   1151   
            }
 1163   1152   
            crate::protocol_serde::shape_query_params_targeting_map_of_set_of_length_string_operation::de_query_params_targeting_map_of_set_of_length_string_operation_http_request(request)
 1164   1153   
                            .await
 1165         -
                            .map_err(Into::into)
 1166   1154   
        };
 1167   1155   
        use ::futures_util::future::TryFutureExt;
 1168   1156   
        let fut = fut.map_err(
 1169   1157   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1170   1158   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1171   1159   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1172   1160   
                    e,
 1173   1161   
                )
 1174   1162   
            },
 1175   1163   
        );
@@ -1236,1224 +1296,1283 @@
 1256   1244   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1257   1245   
        let fut = async move {
 1258   1246   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1259   1247   
                request.headers(),
 1260   1248   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFLENGTHSTRINGOPERATION,
 1261   1249   
            ) {
 1262   1250   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1263   1251   
            }
 1264   1252   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_length_string_operation::de_query_params_targeting_map_of_list_of_length_string_operation_http_request(request)
 1265   1253   
                            .await
 1266         -
                            .map_err(Into::into)
 1267   1254   
        };
 1268   1255   
        use ::futures_util::future::TryFutureExt;
 1269   1256   
        let fut = fut.map_err(
 1270   1257   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1271   1258   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1272   1259   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1273   1260   
                    e,
 1274   1261   
                )
 1275   1262   
            },
 1276   1263   
        );
@@ -1337,1324 +1397,1383 @@
 1357   1344   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1358   1345   
        let fut = async move {
 1359   1346   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1360   1347   
                request.headers(),
 1361   1348   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHSTRINGOPERATION,
 1362   1349   
            ) {
 1363   1350   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1364   1351   
            }
 1365   1352   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_string_operation::de_query_params_targeting_map_of_length_string_operation_http_request(request)
 1366   1353   
                            .await
 1367         -
                            .map_err(Into::into)
 1368   1354   
        };
 1369   1355   
        use ::futures_util::future::TryFutureExt;
 1370   1356   
        let fut = fut.map_err(
 1371   1357   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1372   1358   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1373   1359   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1374   1360   
                    e,
 1375   1361   
                )
 1376   1362   
            },
 1377   1363   
        );
@@ -1437,1423 +1497,1482 @@
 1457   1443   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1458   1444   
        let fut = async move {
 1459   1445   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1460   1446   
                request.headers(),
 1461   1447   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGLENGTHMAPOPERATION,
 1462   1448   
            ) {
 1463   1449   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1464   1450   
            }
 1465   1451   
            crate::protocol_serde::shape_query_params_targeting_length_map_operation::de_query_params_targeting_length_map_operation_http_request(request)
 1466   1452   
                            .await
 1467         -
                            .map_err(Into::into)
 1468   1453   
        };
 1469   1454   
        use ::futures_util::future::TryFutureExt;
 1470   1455   
        let fut = fut.map_err(
 1471   1456   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1472   1457   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1473   1458   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1474   1459   
                    e,
 1475   1460   
                )
 1476   1461   
            },
 1477   1462   
        );
@@ -1537,1522 +1597,1581 @@
 1557   1542   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1558   1543   
        let fut = async move {
 1559   1544   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1560   1545   
                request.headers(),
 1561   1546   
                &CONTENT_TYPE_CONSTRAINEDRECURSIVESHAPESOPERATION,
 1562   1547   
            ) {
 1563   1548   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1564   1549   
            }
 1565   1550   
            crate::protocol_serde::shape_constrained_recursive_shapes_operation::de_constrained_recursive_shapes_operation_http_request(request)
 1566   1551   
                            .await
 1567         -
                            .map_err(Into::into)
 1568   1552   
        };
 1569   1553   
        use ::futures_util::future::TryFutureExt;
 1570   1554   
        let fut = fut.map_err(
 1571   1555   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1572   1556   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1573   1557   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1574   1558   
                    e,
 1575   1559   
                )
 1576   1560   
            },
 1577   1561   
        );
@@ -1638,1622 +1698,1681 @@
 1658   1642   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1659   1643   
        let fut = async move {
 1660   1644   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1661   1645   
                request.headers(),
 1662   1646   
                &CONTENT_TYPE_CONSTRAINEDHTTPPAYLOADBOUNDSHAPEOPERATION,
 1663   1647   
            ) {
 1664   1648   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1665   1649   
            }
 1666   1650   
            crate::protocol_serde::shape_constrained_http_payload_bound_shape_operation::de_constrained_http_payload_bound_shape_operation_http_request(request)
 1667   1651   
                            .await
 1668         -
                            .map_err(Into::into)
 1669   1652   
        };
 1670   1653   
        use ::futures_util::future::TryFutureExt;
 1671   1654   
        let fut = fut.map_err(
 1672   1655   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1673   1656   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1674   1657   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1675   1658   
                    e,
 1676   1659   
                )
 1677   1660   
            },
 1678   1661   
        );
@@ -1738,1721 +1798,1780 @@
 1758   1741   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1759   1742   
        let fut = async move {
 1760   1743   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1761   1744   
                request.headers(),
 1762   1745   
                &CONTENT_TYPE_CONSTRAINEDHTTPBOUNDSHAPESOPERATION,
 1763   1746   
            ) {
 1764   1747   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1765   1748   
            }
 1766   1749   
            crate::protocol_serde::shape_constrained_http_bound_shapes_operation::de_constrained_http_bound_shapes_operation_http_request(request)
 1767   1750   
                            .await
 1768         -
                            .map_err(Into::into)
 1769   1751   
        };
 1770   1752   
        use ::futures_util::future::TryFutureExt;
 1771   1753   
        let fut = fut.map_err(
 1772   1754   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1773   1755   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1774   1756   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1775   1757   
                    e,
 1776   1758   
                )
 1777   1759   
            },
 1778   1760   
        );
@@ -1838,1820 +1898,1879 @@
 1858   1840   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1859   1841   
        let fut = async move {
 1860   1842   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1861   1843   
                request.headers(),
 1862   1844   
                &CONTENT_TYPE_CONSTRAINEDSHAPESONLYINOUTPUTOPERATION,
 1863   1845   
            ) {
 1864   1846   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1865   1847   
            }
 1866   1848   
            crate::protocol_serde::shape_constrained_shapes_only_in_output_operation::de_constrained_shapes_only_in_output_operation_http_request(request)
 1867   1849   
                            .await
 1868         -
                            .map_err(Into::into)
 1869   1850   
        };
 1870   1851   
        use ::futures_util::future::TryFutureExt;
 1871   1852   
        let fut = fut.map_err(
 1872   1853   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1873   1854   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1874   1855   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1875   1856   
                    e,
 1876   1857   
                )
 1877   1858   
            },
 1878   1859   
        );
@@ -1938,1919 +1998,1978 @@
 1958   1939   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1959   1940   
        let fut = async move {
 1960   1941   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1961   1942   
                request.headers(),
 1962   1943   
                &CONTENT_TYPE_CONSTRAINEDSHAPESOPERATION,
 1963   1944   
            ) {
 1964   1945   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1965   1946   
            }
 1966   1947   
            crate::protocol_serde::shape_constrained_shapes_operation::de_constrained_shapes_operation_http_request(request)
 1967   1948   
                            .await
 1968         -
                            .map_err(Into::into)
 1969   1949   
        };
 1970   1950   
        use ::futures_util::future::TryFutureExt;
 1971   1951   
        let fut = fut.map_err(
 1972   1952   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1973   1953   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1974   1954   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1975   1955   
                    e,
 1976   1956   
                )
 1977   1957   
            },
 1978   1958   
        );

tmp-codegen-diff/codegen-server-test-python/constraints/rust-server-codegen-python/src/output.rs

@@ -1788,1788 +1848,1847 @@
 1808   1808   
    /// Creates a new builder-style object to manufacture [`ConstrainedShapesOperationOutput`](crate::output::ConstrainedShapesOperationOutput).
 1809   1809   
    pub fn builder() -> crate::output::constrained_shapes_operation_output::Builder {
 1810   1810   
        crate::output::constrained_shapes_operation_output::Builder::default()
 1811   1811   
    }
 1812   1812   
}
 1813   1813   
/// See [`EventStreamsOperationOutput`](crate::output::EventStreamsOperationOutput).
 1814   1814   
pub mod event_streams_operation_output {
 1815   1815   
 1816   1816   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1817   1817   
    /// Holds one variant for each of the ways the builder can fail.
 1818         -
 1819   1818   
    #[allow(clippy::enum_variant_names)]
 1820   1819   
    pub enum ConstraintViolation {
 1821   1820   
        /// `events` was not provided but it is required when building `EventStreamsOperationOutput`.
 1822   1821   
        MissingEvents,
 1823   1822   
    }
 1824   1823   
    impl ::std::fmt::Display for ConstraintViolation {
 1825   1824   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1826   1825   
            match self {
 1827   1826   
                ConstraintViolation::MissingEvents => write!(f, "`events` was not provided but it is required when building `EventStreamsOperationOutput`"),
 1828   1827   
            }
@@ -2464,2463 +2524,2522 @@
 2484   2483   
                length_map: self.length_map,
 2485   2484   
            }
 2486   2485   
        }
 2487   2486   
    }
 2488   2487   
}
 2489   2488   
/// See [`ConstrainedRecursiveShapesOperationOutput`](crate::output::ConstrainedRecursiveShapesOperationOutput).
 2490   2489   
pub mod constrained_recursive_shapes_operation_output {
 2491   2490   
 2492   2491   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2493   2492   
    /// Holds one variant for each of the ways the builder can fail.
 2494         -
 2495   2493   
    #[allow(clippy::enum_variant_names)]
 2496   2494   
    pub enum ConstraintViolation {
 2497   2495   
        /// `recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationOutput`.
 2498   2496   
        MissingRecursiveList,
 2499   2497   
    }
 2500   2498   
    impl ::std::fmt::Display for ConstraintViolation {
 2501   2499   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2502   2500   
            match self {
 2503   2501   
                ConstraintViolation::MissingRecursiveList => write!(f, "`recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationOutput`"),
 2504   2502   
            }
@@ -2537,2535 +2597,2594 @@
 2557   2555   
                    .ok_or(ConstraintViolation::MissingRecursiveList)?,
 2558   2556   
            })
 2559   2557   
        }
 2560   2558   
    }
 2561   2559   
}
 2562   2560   
/// See [`ConstrainedHttpPayloadBoundShapeOperationOutput`](crate::output::ConstrainedHttpPayloadBoundShapeOperationOutput).
 2563   2561   
pub mod constrained_http_payload_bound_shape_operation_output {
 2564   2562   
 2565   2563   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2566   2564   
    /// Holds one variant for each of the ways the builder can fail.
 2567         -
 2568   2565   
    #[allow(clippy::enum_variant_names)]
 2569   2566   
    pub enum ConstraintViolation {
 2570   2567   
        /// `http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationOutput`.
 2571   2568   
        MissingHttpPayloadBoundConstrainedShape,
 2572   2569   
    }
 2573   2570   
    impl ::std::fmt::Display for ConstraintViolation {
 2574   2571   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2575   2572   
            match self {
 2576   2573   
                ConstraintViolation::MissingHttpPayloadBoundConstrainedShape => write!(f, "`http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationOutput`"),
 2577   2574   
            }
@@ -2604,2601 +2664,2660 @@
 2624   2621   
                },
 2625   2622   
            )
 2626   2623   
        }
 2627   2624   
    }
 2628   2625   
}
 2629   2626   
/// See [`ConstrainedHttpBoundShapesOperationOutput`](crate::output::ConstrainedHttpBoundShapesOperationOutput).
 2630   2627   
pub mod constrained_http_bound_shapes_operation_output {
 2631   2628   
 2632   2629   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2633   2630   
    /// Holds one variant for each of the ways the builder can fail.
 2634         -
 2635   2631   
    #[allow(clippy::enum_variant_names)]
 2636   2632   
    pub enum ConstraintViolation {
 2637   2633   
        /// `length_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 2638   2634   
        MissingLengthStringLabel,
 2639   2635   
        /// `enum_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 2640   2636   
        MissingEnumStringLabel,
 2641   2637   
        /// `length_string_header_map` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 2642   2638   
        MissingLengthStringHeaderMap,
 2643   2639   
    }
 2644   2640   
    impl ::std::fmt::Display for ConstraintViolation {
@@ -3120,3116 +3180,3175 @@
 3140   3136   
                union: self.union,
 3141   3137   
            }
 3142   3138   
        }
 3143   3139   
    }
 3144   3140   
}
 3145   3141   
/// See [`ConstrainedShapesOperationOutput`](crate::output::ConstrainedShapesOperationOutput).
 3146   3142   
pub mod constrained_shapes_operation_output {
 3147   3143   
 3148   3144   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 3149   3145   
    /// Holds one variant for each of the ways the builder can fail.
 3150         -
 3151   3146   
    #[allow(clippy::enum_variant_names)]
 3152   3147   
    pub enum ConstraintViolation {
 3153   3148   
        /// `con_a` was not provided but it is required when building `ConstrainedShapesOperationOutput`.
 3154   3149   
        MissingConA,
 3155   3150   
    }
 3156   3151   
    impl ::std::fmt::Display for ConstraintViolation {
 3157   3152   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3158   3153   
            match self {
 3159   3154   
                ConstraintViolation::MissingConA => write!(f, "`con_a` was not provided but it is required when building `ConstrainedShapesOperationOutput`"),
 3160   3155   
            }

tmp-codegen-diff/codegen-server-test-python/constraints_without_public_constrained_types/rust-server-codegen-python/src/error.rs

@@ -2043,2043 +2103,2102 @@
 2063   2063   
            }
 2064   2064   
            .into()
 2065   2065   
        })
 2066   2066   
    }
 2067   2067   
}
 2068   2068   
/// See [`InternalServerError`](crate::error::InternalServerError).
 2069   2069   
pub mod internal_server_error {
 2070   2070   
 2071   2071   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2072   2072   
    /// Holds one variant for each of the ways the builder can fail.
 2073         -
 2074   2073   
    #[allow(clippy::enum_variant_names)]
 2075   2074   
    pub enum ConstraintViolation {
 2076   2075   
        /// `message` was not provided but it is required when building `InternalServerError`.
 2077   2076   
        MissingMessage,
 2078   2077   
    }
 2079   2078   
    impl ::std::fmt::Display for ConstraintViolation {
 2080   2079   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2081   2080   
            match self {
 2082   2081   
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `InternalServerError`"),
 2083   2082   
            }
@@ -2162,2161 +2222,2220 @@
 2182   2181   
                message_content: self.message_content,
 2183   2182   
            }
 2184   2183   
        }
 2185   2184   
    }
 2186   2185   
}
 2187   2186   
/// See [`ValidationException`](crate::error::ValidationException).
 2188   2187   
pub mod validation_exception {
 2189   2188   
 2190   2189   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2191   2190   
    /// Holds one variant for each of the ways the builder can fail.
 2192         -
 2193   2191   
    #[allow(clippy::enum_variant_names)]
 2194   2192   
    pub enum ConstraintViolation {
 2195   2193   
        /// `message` was not provided but it is required when building `ValidationException`.
 2196   2194   
        MissingMessage,
 2197   2195   
    }
 2198   2196   
    impl ::std::fmt::Display for ConstraintViolation {
 2199   2197   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2200   2198   
            match self {
 2201   2199   
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationException`"),
 2202   2200   
            }

tmp-codegen-diff/codegen-server-test-python/constraints_without_public_constrained_types/rust-server-codegen-python/src/input.rs

@@ -1930,1930 +1990,1989 @@
 1950   1950   
                events: self.events.ok_or(ConstraintViolation::MissingEvents)?,
 1951   1951   
            })
 1952   1952   
        }
 1953   1953   
    }
 1954   1954   
}
 1955   1955   
/// See [`EventStreamsOperationInput`](crate::input::EventStreamsOperationInput).
 1956   1956   
pub mod event_streams_operation_input {
 1957   1957   
 1958   1958   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1959   1959   
    /// Holds one variant for each of the ways the builder can fail.
 1960         -
 1961   1960   
    #[allow(clippy::enum_variant_names)]
 1962   1961   
    pub enum ConstraintViolation {
 1963   1962   
        /// `events` was not provided but it is required when building `EventStreamsOperationInput`.
 1964   1963   
        MissingEvents,
 1965   1964   
    }
 1966   1965   
    impl ::std::fmt::Display for ConstraintViolation {
 1967   1966   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1968   1967   
            match self {
 1969   1968   
                ConstraintViolation::MissingEvents => write!(f, "`events` was not provided but it is required when building `EventStreamsOperationInput`"),
 1970   1969   
            }
@@ -4276,4275 +4336,4334 @@
 4296   4295   
                    .ok_or(ConstraintViolation::MissingRecursiveList)?,
 4297   4296   
            })
 4298   4297   
        }
 4299   4298   
    }
 4300   4299   
}
 4301   4300   
/// See [`ConstrainedRecursiveShapesOperationInput`](crate::input::ConstrainedRecursiveShapesOperationInput).
 4302   4301   
pub mod constrained_recursive_shapes_operation_input {
 4303   4302   
 4304   4303   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 4305   4304   
    /// Holds one variant for each of the ways the builder can fail.
 4306         -
 4307   4305   
    #[allow(clippy::enum_variant_names)]
 4308   4306   
    pub enum ConstraintViolation {
 4309   4307   
        /// `recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationInput`.
 4310   4308   
        MissingRecursiveList,
 4311   4309   
    }
 4312   4310   
    impl ::std::fmt::Display for ConstraintViolation {
 4313   4311   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4314   4312   
            match self {
 4315   4313   
                ConstraintViolation::MissingRecursiveList => write!(f, "`recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationInput`"),
 4316   4314   
            }
@@ -4471,4469 +4531,4528 @@
 4491   4489   
                },
 4492   4490   
            )
 4493   4491   
        }
 4494   4492   
    }
 4495   4493   
}
 4496   4494   
/// See [`ConstrainedHttpPayloadBoundShapeOperationInput`](crate::input::ConstrainedHttpPayloadBoundShapeOperationInput).
 4497   4495   
pub mod constrained_http_payload_bound_shape_operation_input {
 4498   4496   
 4499   4497   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 4500   4498   
    /// Holds one variant for each of the ways the builder can fail.
 4501         -
 4502   4499   
    #[allow(clippy::enum_variant_names)]
 4503   4500   
    pub enum ConstraintViolation {
 4504   4501   
        /// `http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationInput`.
 4505   4502   
        MissingHttpPayloadBoundConstrainedShape,
 4506   4503   
    }
 4507   4504   
    impl ::std::fmt::Display for ConstraintViolation {
 4508   4505   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4509   4506   
            match self {
 4510   4507   
                ConstraintViolation::MissingHttpPayloadBoundConstrainedShape => write!(f, "`http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationInput`"),
 4511   4508   
            }
@@ -5741,5738 +5801,5797 @@
 5761   5758   
                    .transpose()?,
 5762   5759   
            })
 5763   5760   
        }
 5764   5761   
    }
 5765   5762   
}
 5766   5763   
/// See [`ConstrainedHttpBoundShapesOperationInput`](crate::input::ConstrainedHttpBoundShapesOperationInput).
 5767   5764   
pub mod constrained_http_bound_shapes_operation_input {
 5768   5765   
 5769   5766   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 5770   5767   
    /// Holds one variant for each of the ways the builder can fail.
 5771         -
 5772   5768   
    #[allow(clippy::enum_variant_names)]
 5773   5769   
    pub enum ConstraintViolation {
 5774   5770   
        /// `length_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 5775   5771   
        MissingLengthStringLabel,
 5776   5772   
        /// `enum_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 5777   5773   
        MissingEnumStringLabel,
 5778   5774   
        /// `length_string_header_map` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationInput`.
 5779   5775   
        MissingLengthStringHeaderMap,
 5780   5776   
    }
 5781   5777   
    impl ::std::fmt::Display for ConstraintViolation {
@@ -6354,6350 +6414,6409 @@
 6374   6370   
                    .ok_or(ConstraintViolation::MissingConA)?,
 6375   6371   
            })
 6376   6372   
        }
 6377   6373   
    }
 6378   6374   
}
 6379   6375   
/// See [`ConstrainedShapesOperationInput`](crate::input::ConstrainedShapesOperationInput).
 6380   6376   
pub mod constrained_shapes_operation_input {
 6381   6377   
 6382   6378   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 6383   6379   
    /// Holds one variant for each of the ways the builder can fail.
 6384         -
 6385   6380   
    #[allow(clippy::enum_variant_names)]
 6386   6381   
    pub enum ConstraintViolation {
 6387   6382   
        /// `con_a` was not provided but it is required when building `ConstrainedShapesOperationInput`.
 6388   6383   
        MissingConA,
 6389   6384   
    }
 6390   6385   
    impl ::std::fmt::Display for ConstraintViolation {
 6391   6386   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6392   6387   
            match self {
 6393   6388   
                ConstraintViolation::MissingConA => write!(f, "`con_a` was not provided but it is required when building `ConstrainedShapesOperationInput`"),
 6394   6389   
            }

tmp-codegen-diff/codegen-server-test-python/constraints_without_public_constrained_types/rust-server-codegen-python/src/model.rs

@@ -5261,5261 +5321,5320 @@
 5281   5281   
    fn from(value: ConstrainedListInOutput) -> Self {
 5282   5282   
        value.into_inner()
 5283   5283   
    }
 5284   5284   
}
 5285   5285   
 5286   5286   
/// See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 5287   5287   
pub mod validation_exception_field {
 5288   5288   
 5289   5289   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 5290   5290   
    /// Holds one variant for each of the ways the builder can fail.
 5291         -
 5292   5291   
    #[allow(clippy::enum_variant_names)]
 5293   5292   
    pub enum ConstraintViolation {
 5294   5293   
        /// `path` was not provided but it is required when building `ValidationExceptionField`.
 5295   5294   
        MissingPath,
 5296   5295   
        /// `message` was not provided but it is required when building `ValidationExceptionField`.
 5297   5296   
        MissingMessage,
 5298   5297   
    }
 5299   5298   
    impl ::std::fmt::Display for ConstraintViolation {
 5300   5299   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5301   5300   
            match self {
@@ -6386,6385 +6446,6444 @@
 6406   6405   
                    .ok_or(ConstraintViolation::MissingRecursiveMember)?,
 6407   6406   
            })
 6408   6407   
        }
 6409   6408   
    }
 6410   6409   
}
 6411   6410   
/// See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 6412   6411   
pub mod recursive_shapes_input_output_nested1 {
 6413   6412   
 6414   6413   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 6415   6414   
    /// Holds one variant for each of the ways the builder can fail.
 6416         -
 6417   6415   
    #[allow(clippy::enum_variant_names)]
 6418   6416   
    pub enum ConstraintViolation {
 6419   6417   
        /// `recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`.
 6420   6418   
        MissingRecursiveMember,
 6421   6419   
    }
 6422   6420   
    impl ::std::fmt::Display for ConstraintViolation {
 6423   6421   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6424   6422   
            match self {
 6425   6423   
                ConstraintViolation::MissingRecursiveMember => write!(f, "`recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`"),
 6426   6424   
            }
@@ -8529,8527 +8589,8586 @@
 8549   8547   
                    .map(|v: crate::model::LengthSetOfPatternString| v.into()),
 8550   8548   
            })
 8551   8549   
        }
 8552   8550   
    }
 8553   8551   
}
 8554   8552   
/// See [`ConA`](crate::model::ConA).
 8555   8553   
pub mod con_a {
 8556   8554   
 8557   8555   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 8558   8556   
    /// Holds one variant for each of the ways the builder can fail.
 8559         -
 8560   8557   
    #[allow(clippy::enum_variant_names)]
 8561   8558   
    pub enum ConstraintViolation {
 8562   8559   
        /// `con_b` was not provided but it is required when building `ConA`.
 8563   8560   
        MissingConB,
 8564   8561   
    }
 8565   8562   
    impl ::std::fmt::Display for ConstraintViolation {
 8566   8563   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 8567   8564   
            match self {
 8568   8565   
                ConstraintViolation::MissingConB => write!(
 8569   8566   
                    f,
@@ -10553,10550 +10613,10609 @@
10573  10570   
                opt_int: self.opt_int,
10574  10571   
            })
10575  10572   
        }
10576  10573   
    }
10577  10574   
}
10578  10575   
/// See [`ConB`](crate::model::ConB).
10579  10576   
pub mod con_b {
10580  10577   
10581  10578   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
10582  10579   
    /// Holds one variant for each of the ways the builder can fail.
10583         -
10584  10580   
    #[allow(clippy::enum_variant_names)]
10585  10581   
    pub enum ConstraintViolation {
10586  10582   
        /// `nice` was not provided but it is required when building `ConB`.
10587  10583   
        MissingNice,
10588  10584   
        /// `int` was not provided but it is required when building `ConB`.
10589  10585   
        MissingInt,
10590  10586   
    }
10591  10587   
    impl ::std::fmt::Display for ConstraintViolation {
10592  10588   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10593  10589   
            match self {

tmp-codegen-diff/codegen-server-test-python/constraints_without_public_constrained_types/rust-server-codegen-python/src/operation.rs

@@ -28,28 +88,87 @@
   48     48   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   49     49   
        let fut = async move {
   50     50   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   51     51   
                request.headers(),
   52     52   
                &CONTENT_TYPE_EVENTSTREAMSOPERATION,
   53     53   
            ) {
   54     54   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
   55     55   
            }
   56     56   
            crate::protocol_serde::shape_event_streams_operation::de_event_streams_operation_http_request(request)
   57     57   
                            .await
   58         -
                            .map_err(Into::into)
   59     58   
        };
   60     59   
        use ::futures_util::future::TryFutureExt;
   61     60   
        let fut = fut.map_err(
   62     61   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
   63     62   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   64     63   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   65     64   
                    e,
   66     65   
                )
   67     66   
            },
   68     67   
        );
@@ -129,128 +189,187 @@
  149    148   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  150    149   
        let fut = async move {
  151    150   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  152    151   
                request.headers(),
  153    152   
                &CONTENT_TYPE_STREAMINGBLOBOPERATION,
  154    153   
            ) {
  155    154   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  156    155   
            }
  157    156   
            crate::protocol_serde::shape_streaming_blob_operation::de_streaming_blob_operation_http_request(request)
  158    157   
                            .await
  159         -
                            .map_err(Into::into)
  160    158   
        };
  161    159   
        use ::futures_util::future::TryFutureExt;
  162    160   
        let fut = fut.map_err(
  163    161   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  164    162   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  165    163   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  166    164   
                    e,
  167    165   
                )
  168    166   
            },
  169    167   
        );
@@ -222,220 +282,279 @@
  242    240   
    ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  243    241   
        From<<B as ::aws_smithy_http_server::body::HttpBody>::Error>,
  244    242   
{
  245    243   
    type Rejection = ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  246    244   
    type Future = NonStreamingBlobOperationInputFuture;
  247    245   
  248    246   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  249    247   
        let fut = async move {
  250    248   
            crate::protocol_serde::shape_non_streaming_blob_operation::de_non_streaming_blob_operation_http_request(request)
  251    249   
                            .await
  252         -
                            .map_err(Into::into)
  253    250   
        };
  254    251   
        use ::futures_util::future::TryFutureExt;
  255    252   
        let fut = fut.map_err(
  256    253   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  257    254   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  258    255   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  259    256   
                    e,
  260    257   
                )
  261    258   
            },
  262    259   
        );
@@ -323,320 +383,379 @@
  343    340   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  344    341   
        let fut = async move {
  345    342   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  346    343   
                request.headers(),
  347    344   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFENUMSTRINGOPERATION,
  348    345   
            ) {
  349    346   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  350    347   
            }
  351    348   
            crate::protocol_serde::shape_query_params_targeting_map_of_enum_string_operation::de_query_params_targeting_map_of_enum_string_operation_http_request(request)
  352    349   
                            .await
  353         -
                            .map_err(Into::into)
  354    350   
        };
  355    351   
        use ::futures_util::future::TryFutureExt;
  356    352   
        let fut = fut.map_err(
  357    353   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  358    354   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  359    355   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  360    356   
                    e,
  361    357   
                )
  362    358   
            },
  363    359   
        );
@@ -424,420 +484,479 @@
  444    440   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  445    441   
        let fut = async move {
  446    442   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  447    443   
                request.headers(),
  448    444   
                &CONTENT_TYPE_HTTPPREFIXHEADERSTARGETINGLENGTHMAPOPERATION,
  449    445   
            ) {
  450    446   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  451    447   
            }
  452    448   
            crate::protocol_serde::shape_http_prefix_headers_targeting_length_map_operation::de_http_prefix_headers_targeting_length_map_operation_http_request(request)
  453    449   
                            .await
  454         -
                            .map_err(Into::into)
  455    450   
        };
  456    451   
        use ::futures_util::future::TryFutureExt;
  457    452   
        let fut = fut.map_err(
  458    453   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  459    454   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  460    455   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  461    456   
                    e,
  462    457   
                )
  463    458   
            },
  464    459   
        );
@@ -527,522 +587,581 @@
  547    542   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  548    543   
        let fut = async move {
  549    544   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  550    545   
                request.headers(),
  551    546   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFLENGTHPATTERNSTRINGOPERATION,
  552    547   
            ) {
  553    548   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  554    549   
            }
  555    550   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_length_pattern_string_operation::de_query_params_targeting_map_of_list_of_length_pattern_string_operation_http_request(request)
  556    551   
                            .await
  557         -
                            .map_err(Into::into)
  558    552   
        };
  559    553   
        use ::futures_util::future::TryFutureExt;
  560    554   
        let fut = fut.map_err(
  561    555   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  562    556   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  563    557   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  564    558   
                    e,
  565    559   
                )
  566    560   
            },
  567    561   
        );
@@ -628,622 +688,681 @@
  648    642   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  649    643   
        let fut = async move {
  650    644   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  651    645   
                request.headers(),
  652    646   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHPATTERNSTRINGOPERATION,
  653    647   
            ) {
  654    648   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  655    649   
            }
  656    650   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_pattern_string_operation::de_query_params_targeting_map_of_length_pattern_string_operation_http_request(request)
  657    651   
                            .await
  658         -
                            .map_err(Into::into)
  659    652   
        };
  660    653   
        use ::futures_util::future::TryFutureExt;
  661    654   
        let fut = fut.map_err(
  662    655   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  663    656   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  664    657   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  665    658   
                    e,
  666    659   
                )
  667    660   
            },
  668    661   
        );
@@ -729,722 +789,781 @@
  749    742   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  750    743   
        let fut = async move {
  751    744   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  752    745   
                request.headers(),
  753    746   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFPATTERNSTRINGOPERATION,
  754    747   
            ) {
  755    748   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  756    749   
            }
  757    750   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_pattern_string_operation::de_query_params_targeting_map_of_list_of_pattern_string_operation_http_request(request)
  758    751   
                            .await
  759         -
                            .map_err(Into::into)
  760    752   
        };
  761    753   
        use ::futures_util::future::TryFutureExt;
  762    754   
        let fut = fut.map_err(
  763    755   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  764    756   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  765    757   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  766    758   
                    e,
  767    759   
                )
  768    760   
            },
  769    761   
        );
@@ -830,822 +890,881 @@
  850    842   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  851    843   
        let fut = async move {
  852    844   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  853    845   
                request.headers(),
  854    846   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFPATTERNSTRINGOPERATION,
  855    847   
            ) {
  856    848   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  857    849   
            }
  858    850   
            crate::protocol_serde::shape_query_params_targeting_map_of_pattern_string_operation::de_query_params_targeting_map_of_pattern_string_operation_http_request(request)
  859    851   
                            .await
  860         -
                            .map_err(Into::into)
  861    852   
        };
  862    853   
        use ::futures_util::future::TryFutureExt;
  863    854   
        let fut = fut.map_err(
  864    855   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  865    856   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  866    857   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  867    858   
                    e,
  868    859   
                )
  869    860   
            },
  870    861   
        );
@@ -931,922 +991,981 @@
  951    942   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  952    943   
        let fut = async move {
  953    944   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  954    945   
                request.headers(),
  955    946   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFENUMSTRINGOPERATION,
  956    947   
            ) {
  957    948   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  958    949   
            }
  959    950   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_enum_string_operation::de_query_params_targeting_map_of_list_of_enum_string_operation_http_request(request)
  960    951   
                            .await
  961         -
                            .map_err(Into::into)
  962    952   
        };
  963    953   
        use ::futures_util::future::TryFutureExt;
  964    954   
        let fut = fut.map_err(
  965    955   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  966    956   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  967    957   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  968    958   
                    e,
  969    959   
                )
  970    960   
            },
  971    961   
        );
@@ -1034,1024 +1094,1083 @@
 1054   1044   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1055   1045   
        let fut = async move {
 1056   1046   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1057   1047   
                request.headers(),
 1058   1048   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHLISTOFPATTERNSTRINGOPERATION,
 1059   1049   
            ) {
 1060   1050   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1061   1051   
            }
 1062   1052   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_list_of_pattern_string_operation::de_query_params_targeting_map_of_length_list_of_pattern_string_operation_http_request(request)
 1063   1053   
                            .await
 1064         -
                            .map_err(Into::into)
 1065   1054   
        };
 1066   1055   
        use ::futures_util::future::TryFutureExt;
 1067   1056   
        let fut = fut.map_err(
 1068   1057   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1069   1058   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1070   1059   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1071   1060   
                    e,
 1072   1061   
                )
 1073   1062   
            },
 1074   1063   
        );
@@ -1135,1124 +1195,1183 @@
 1155   1144   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1156   1145   
        let fut = async move {
 1157   1146   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1158   1147   
                request.headers(),
 1159   1148   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFSETOFLENGTHSTRINGOPERATION,
 1160   1149   
            ) {
 1161   1150   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1162   1151   
            }
 1163   1152   
            crate::protocol_serde::shape_query_params_targeting_map_of_set_of_length_string_operation::de_query_params_targeting_map_of_set_of_length_string_operation_http_request(request)
 1164   1153   
                            .await
 1165         -
                            .map_err(Into::into)
 1166   1154   
        };
 1167   1155   
        use ::futures_util::future::TryFutureExt;
 1168   1156   
        let fut = fut.map_err(
 1169   1157   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1170   1158   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1171   1159   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1172   1160   
                    e,
 1173   1161   
                )
 1174   1162   
            },
 1175   1163   
        );
@@ -1236,1224 +1296,1283 @@
 1256   1244   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1257   1245   
        let fut = async move {
 1258   1246   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1259   1247   
                request.headers(),
 1260   1248   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLISTOFLENGTHSTRINGOPERATION,
 1261   1249   
            ) {
 1262   1250   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1263   1251   
            }
 1264   1252   
            crate::protocol_serde::shape_query_params_targeting_map_of_list_of_length_string_operation::de_query_params_targeting_map_of_list_of_length_string_operation_http_request(request)
 1265   1253   
                            .await
 1266         -
                            .map_err(Into::into)
 1267   1254   
        };
 1268   1255   
        use ::futures_util::future::TryFutureExt;
 1269   1256   
        let fut = fut.map_err(
 1270   1257   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1271   1258   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1272   1259   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1273   1260   
                    e,
 1274   1261   
                )
 1275   1262   
            },
 1276   1263   
        );
@@ -1337,1324 +1397,1383 @@
 1357   1344   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1358   1345   
        let fut = async move {
 1359   1346   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1360   1347   
                request.headers(),
 1361   1348   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGMAPOFLENGTHSTRINGOPERATION,
 1362   1349   
            ) {
 1363   1350   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1364   1351   
            }
 1365   1352   
            crate::protocol_serde::shape_query_params_targeting_map_of_length_string_operation::de_query_params_targeting_map_of_length_string_operation_http_request(request)
 1366   1353   
                            .await
 1367         -
                            .map_err(Into::into)
 1368   1354   
        };
 1369   1355   
        use ::futures_util::future::TryFutureExt;
 1370   1356   
        let fut = fut.map_err(
 1371   1357   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1372   1358   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1373   1359   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1374   1360   
                    e,
 1375   1361   
                )
 1376   1362   
            },
 1377   1363   
        );
@@ -1437,1423 +1497,1482 @@
 1457   1443   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1458   1444   
        let fut = async move {
 1459   1445   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1460   1446   
                request.headers(),
 1461   1447   
                &CONTENT_TYPE_QUERYPARAMSTARGETINGLENGTHMAPOPERATION,
 1462   1448   
            ) {
 1463   1449   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1464   1450   
            }
 1465   1451   
            crate::protocol_serde::shape_query_params_targeting_length_map_operation::de_query_params_targeting_length_map_operation_http_request(request)
 1466   1452   
                            .await
 1467         -
                            .map_err(Into::into)
 1468   1453   
        };
 1469   1454   
        use ::futures_util::future::TryFutureExt;
 1470   1455   
        let fut = fut.map_err(
 1471   1456   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1472   1457   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1473   1458   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1474   1459   
                    e,
 1475   1460   
                )
 1476   1461   
            },
 1477   1462   
        );
@@ -1537,1522 +1597,1581 @@
 1557   1542   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1558   1543   
        let fut = async move {
 1559   1544   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1560   1545   
                request.headers(),
 1561   1546   
                &CONTENT_TYPE_CONSTRAINEDRECURSIVESHAPESOPERATION,
 1562   1547   
            ) {
 1563   1548   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1564   1549   
            }
 1565   1550   
            crate::protocol_serde::shape_constrained_recursive_shapes_operation::de_constrained_recursive_shapes_operation_http_request(request)
 1566   1551   
                            .await
 1567         -
                            .map_err(Into::into)
 1568   1552   
        };
 1569   1553   
        use ::futures_util::future::TryFutureExt;
 1570   1554   
        let fut = fut.map_err(
 1571   1555   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1572   1556   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1573   1557   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1574   1558   
                    e,
 1575   1559   
                )
 1576   1560   
            },
 1577   1561   
        );
@@ -1638,1622 +1698,1681 @@
 1658   1642   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1659   1643   
        let fut = async move {
 1660   1644   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1661   1645   
                request.headers(),
 1662   1646   
                &CONTENT_TYPE_CONSTRAINEDHTTPPAYLOADBOUNDSHAPEOPERATION,
 1663   1647   
            ) {
 1664   1648   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1665   1649   
            }
 1666   1650   
            crate::protocol_serde::shape_constrained_http_payload_bound_shape_operation::de_constrained_http_payload_bound_shape_operation_http_request(request)
 1667   1651   
                            .await
 1668         -
                            .map_err(Into::into)
 1669   1652   
        };
 1670   1653   
        use ::futures_util::future::TryFutureExt;
 1671   1654   
        let fut = fut.map_err(
 1672   1655   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1673   1656   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1674   1657   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1675   1658   
                    e,
 1676   1659   
                )
 1677   1660   
            },
 1678   1661   
        );
@@ -1738,1721 +1798,1780 @@
 1758   1741   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1759   1742   
        let fut = async move {
 1760   1743   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1761   1744   
                request.headers(),
 1762   1745   
                &CONTENT_TYPE_CONSTRAINEDHTTPBOUNDSHAPESOPERATION,
 1763   1746   
            ) {
 1764   1747   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1765   1748   
            }
 1766   1749   
            crate::protocol_serde::shape_constrained_http_bound_shapes_operation::de_constrained_http_bound_shapes_operation_http_request(request)
 1767   1750   
                            .await
 1768         -
                            .map_err(Into::into)
 1769   1751   
        };
 1770   1752   
        use ::futures_util::future::TryFutureExt;
 1771   1753   
        let fut = fut.map_err(
 1772   1754   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1773   1755   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1774   1756   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1775   1757   
                    e,
 1776   1758   
                )
 1777   1759   
            },
 1778   1760   
        );
@@ -1838,1820 +1898,1879 @@
 1858   1840   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1859   1841   
        let fut = async move {
 1860   1842   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1861   1843   
                request.headers(),
 1862   1844   
                &CONTENT_TYPE_CONSTRAINEDSHAPESONLYINOUTPUTOPERATION,
 1863   1845   
            ) {
 1864   1846   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1865   1847   
            }
 1866   1848   
            crate::protocol_serde::shape_constrained_shapes_only_in_output_operation::de_constrained_shapes_only_in_output_operation_http_request(request)
 1867   1849   
                            .await
 1868         -
                            .map_err(Into::into)
 1869   1850   
        };
 1870   1851   
        use ::futures_util::future::TryFutureExt;
 1871   1852   
        let fut = fut.map_err(
 1872   1853   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1873   1854   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1874   1855   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1875   1856   
                    e,
 1876   1857   
                )
 1877   1858   
            },
 1878   1859   
        );
@@ -1938,1919 +1998,1978 @@
 1958   1939   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1959   1940   
        let fut = async move {
 1960   1941   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
 1961   1942   
                request.headers(),
 1962   1943   
                &CONTENT_TYPE_CONSTRAINEDSHAPESOPERATION,
 1963   1944   
            ) {
 1964   1945   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
 1965   1946   
            }
 1966   1947   
            crate::protocol_serde::shape_constrained_shapes_operation::de_constrained_shapes_operation_http_request(request)
 1967   1948   
                            .await
 1968         -
                            .map_err(Into::into)
 1969   1949   
        };
 1970   1950   
        use ::futures_util::future::TryFutureExt;
 1971   1951   
        let fut = fut.map_err(
 1972   1952   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
 1973   1953   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1974   1954   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
 1975   1955   
                    e,
 1976   1956   
                )
 1977   1957   
            },
 1978   1958   
        );

tmp-codegen-diff/codegen-server-test-python/constraints_without_public_constrained_types/rust-server-codegen-python/src/output.rs

@@ -1788,1788 +1848,1847 @@
 1808   1808   
    /// Creates a new builder-style object to manufacture [`ConstrainedShapesOperationOutput`](crate::output::ConstrainedShapesOperationOutput).
 1809   1809   
    pub fn builder() -> crate::output::constrained_shapes_operation_output::Builder {
 1810   1810   
        crate::output::constrained_shapes_operation_output::Builder::default()
 1811   1811   
    }
 1812   1812   
}
 1813   1813   
/// See [`EventStreamsOperationOutput`](crate::output::EventStreamsOperationOutput).
 1814   1814   
pub mod event_streams_operation_output {
 1815   1815   
 1816   1816   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1817   1817   
    /// Holds one variant for each of the ways the builder can fail.
 1818         -
 1819   1818   
    #[allow(clippy::enum_variant_names)]
 1820   1819   
    pub enum ConstraintViolation {
 1821   1820   
        /// `events` was not provided but it is required when building `EventStreamsOperationOutput`.
 1822   1821   
        MissingEvents,
 1823   1822   
    }
 1824   1823   
    impl ::std::fmt::Display for ConstraintViolation {
 1825   1824   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1826   1825   
            match self {
 1827   1826   
                ConstraintViolation::MissingEvents => write!(f, "`events` was not provided but it is required when building `EventStreamsOperationOutput`"),
 1828   1827   
            }
@@ -2464,2463 +2524,2522 @@
 2484   2483   
                length_map: self.length_map,
 2485   2484   
            }
 2486   2485   
        }
 2487   2486   
    }
 2488   2487   
}
 2489   2488   
/// See [`ConstrainedRecursiveShapesOperationOutput`](crate::output::ConstrainedRecursiveShapesOperationOutput).
 2490   2489   
pub mod constrained_recursive_shapes_operation_output {
 2491   2490   
 2492   2491   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2493   2492   
    /// Holds one variant for each of the ways the builder can fail.
 2494         -
 2495   2493   
    #[allow(clippy::enum_variant_names)]
 2496   2494   
    pub enum ConstraintViolation {
 2497   2495   
        /// `recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationOutput`.
 2498   2496   
        MissingRecursiveList,
 2499   2497   
    }
 2500   2498   
    impl ::std::fmt::Display for ConstraintViolation {
 2501   2499   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2502   2500   
            match self {
 2503   2501   
                ConstraintViolation::MissingRecursiveList => write!(f, "`recursive_list` was not provided but it is required when building `ConstrainedRecursiveShapesOperationOutput`"),
 2504   2502   
            }
@@ -2537,2535 +2597,2594 @@
 2557   2555   
                    .ok_or(ConstraintViolation::MissingRecursiveList)?,
 2558   2556   
            })
 2559   2557   
        }
 2560   2558   
    }
 2561   2559   
}
 2562   2560   
/// See [`ConstrainedHttpPayloadBoundShapeOperationOutput`](crate::output::ConstrainedHttpPayloadBoundShapeOperationOutput).
 2563   2561   
pub mod constrained_http_payload_bound_shape_operation_output {
 2564   2562   
 2565   2563   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2566   2564   
    /// Holds one variant for each of the ways the builder can fail.
 2567         -
 2568   2565   
    #[allow(clippy::enum_variant_names)]
 2569   2566   
    pub enum ConstraintViolation {
 2570   2567   
        /// `http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationOutput`.
 2571   2568   
        MissingHttpPayloadBoundConstrainedShape,
 2572   2569   
    }
 2573   2570   
    impl ::std::fmt::Display for ConstraintViolation {
 2574   2571   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2575   2572   
            match self {
 2576   2573   
                ConstraintViolation::MissingHttpPayloadBoundConstrainedShape => write!(f, "`http_payload_bound_constrained_shape` was not provided but it is required when building `ConstrainedHttpPayloadBoundShapeOperationOutput`"),
 2577   2574   
            }
@@ -2604,2601 +2664,2660 @@
 2624   2621   
                },
 2625   2622   
            )
 2626   2623   
        }
 2627   2624   
    }
 2628   2625   
}
 2629   2626   
/// See [`ConstrainedHttpBoundShapesOperationOutput`](crate::output::ConstrainedHttpBoundShapesOperationOutput).
 2630   2627   
pub mod constrained_http_bound_shapes_operation_output {
 2631   2628   
 2632   2629   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2633   2630   
    /// Holds one variant for each of the ways the builder can fail.
 2634         -
 2635   2631   
    #[allow(clippy::enum_variant_names)]
 2636   2632   
    pub enum ConstraintViolation {
 2637   2633   
        /// `length_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 2638   2634   
        MissingLengthStringLabel,
 2639   2635   
        /// `enum_string_label` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 2640   2636   
        MissingEnumStringLabel,
 2641   2637   
        /// `length_string_header_map` was not provided but it is required when building `ConstrainedHttpBoundShapesOperationOutput`.
 2642   2638   
        MissingLengthStringHeaderMap,
 2643   2639   
    }
 2644   2640   
    impl ::std::fmt::Display for ConstraintViolation {
@@ -3120,3116 +3180,3175 @@
 3140   3136   
                union: self.union,
 3141   3137   
            }
 3142   3138   
        }
 3143   3139   
    }
 3144   3140   
}
 3145   3141   
/// See [`ConstrainedShapesOperationOutput`](crate::output::ConstrainedShapesOperationOutput).
 3146   3142   
pub mod constrained_shapes_operation_output {
 3147   3143   
 3148   3144   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 3149   3145   
    /// Holds one variant for each of the ways the builder can fail.
 3150         -
 3151   3146   
    #[allow(clippy::enum_variant_names)]
 3152   3147   
    pub enum ConstraintViolation {
 3153   3148   
        /// `con_a` was not provided but it is required when building `ConstrainedShapesOperationOutput`.
 3154   3149   
        MissingConA,
 3155   3150   
    }
 3156   3151   
    impl ::std::fmt::Display for ConstraintViolation {
 3157   3152   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3158   3153   
            match self {
 3159   3154   
                ConstraintViolation::MissingConA => write!(f, "`con_a` was not provided but it is required when building `ConstrainedShapesOperationOutput`"),
 3160   3155   
            }

tmp-codegen-diff/codegen-server-test-python/ebs/rust-server-codegen-python/src/error.rs

@@ -1659,1659 +1772,1770 @@
 1679   1679   
            }
 1680   1680   
            .into()
 1681   1681   
        })
 1682   1682   
    }
 1683   1683   
}
 1684   1684   
/// See [`InternalServerError`](crate::error::InternalServerError).
 1685   1685   
pub mod internal_server_error {
 1686   1686   
 1687   1687   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1688   1688   
    /// Holds one variant for each of the ways the builder can fail.
 1689         -
 1690   1689   
    #[allow(clippy::enum_variant_names)]
 1691   1690   
    pub enum ConstraintViolation {
 1692   1691   
        /// `message` was not provided but it is required when building `InternalServerError`.
 1693   1692   
        MissingMessage,
 1694   1693   
    }
 1695   1694   
    impl ::std::fmt::Display for ConstraintViolation {
 1696   1695   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1697   1696   
            match self {
 1698   1697   
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `InternalServerError`"),
 1699   1698   
            }
 1700   1699   
        }
 1701   1700   
    }
 1702   1701   
    impl ::std::error::Error for ConstraintViolation {}
 1703   1702   
    impl ::std::convert::TryFrom<Builder> for crate::error::InternalServerError {
 1704   1703   
        type Error = ConstraintViolation;
 1705   1704   
 1706   1705   
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 1707   1706   
            builder.build()
 1708   1707   
        }
 1709   1708   
    }
 1710   1709   
    /// A builder for [`InternalServerError`](crate::error::InternalServerError).
 1711   1710   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1712   1711   
    pub struct Builder {
 1713   1712   
        pub(crate) message: ::std::option::Option<::std::string::String>,
 1714   1713   
    }
 1715   1714   
    impl Builder {
 1716   1715   
        #[allow(missing_docs)] // documentation missing in model
 1717   1716   
        pub fn message(mut self, input: ::std::string::String) -> Self {
 1718   1717   
            self.message = Some(input);
 1719   1718   
            self
 1720   1719   
        }
 1721   1720   
        /// Consumes the builder and constructs a [`InternalServerError`](crate::error::InternalServerError).
 1722   1721   
        ///
 1723   1722   
        /// The builder fails to construct a [`InternalServerError`](crate::error::InternalServerError) if you do not provide a value for all non-`Option`al members.
 1724   1723   
        ///
 1725   1724   
        pub fn build(self) -> Result<crate::error::InternalServerError, ConstraintViolation> {
 1726   1725   
            self.build_enforcing_required_and_enum_traits()
 1727   1726   
        }
 1728   1727   
        fn build_enforcing_required_and_enum_traits(
 1729   1728   
            self,
 1730   1729   
        ) -> Result<crate::error::InternalServerError, ConstraintViolation> {
 1731   1730   
            Ok(crate::error::InternalServerError {
 1732   1731   
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
 1733   1732   
            })
 1734   1733   
        }
 1735   1734   
    }
 1736   1735   
}
 1737   1736   
/// See [`ValidationException`](crate::error::ValidationException).
 1738   1737   
pub mod validation_exception {
 1739   1738   
 1740   1739   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1741   1740   
    /// Holds one variant for each of the ways the builder can fail.
 1742         -
 1743   1741   
    #[allow(clippy::enum_variant_names)]
 1744   1742   
    pub enum ConstraintViolation {
 1745   1743   
        /// `message` was not provided but it is required when building `ValidationException`.
 1746   1744   
        MissingMessage,
 1747   1745   
    }
 1748   1746   
    impl ::std::fmt::Display for ConstraintViolation {
 1749   1747   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1750   1748   
            match self {
 1751   1749   
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationException`"),
 1752   1750   
            }
@@ -1922,1920 +1982,1979 @@
 1942   1940   
                message: self.message,
 1943   1941   
            }
 1944   1942   
        }
 1945   1943   
    }
 1946   1944   
}
 1947   1945   
/// See [`AccessDeniedException`](crate::error::AccessDeniedException).
 1948   1946   
pub mod access_denied_exception {
 1949   1947   
 1950   1948   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1951   1949   
    /// Holds one variant for each of the ways the builder can fail.
 1952         -
 1953   1950   
    #[allow(clippy::enum_variant_names)]
 1954   1951   
    pub enum ConstraintViolation {
 1955   1952   
        /// `reason` was not provided but it is required when building `AccessDeniedException`.
 1956   1953   
        MissingReason,
 1957   1954   
    }
 1958   1955   
    impl ::std::fmt::Display for ConstraintViolation {
 1959   1956   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1960   1957   
            match self {
 1961   1958   
                ConstraintViolation::MissingReason => write!(f, "`reason` was not provided but it is required when building `AccessDeniedException`"),
 1962   1959   
            }

tmp-codegen-diff/codegen-server-test-python/ebs/rust-server-codegen-python/src/input.rs

@@ -1022,1022 +1082,1081 @@
 1042   1042   
            formatter.field("description", &self.description);
 1043   1043   
            formatter.finish()
 1044   1044   
        }
 1045   1045   
    }
 1046   1046   
}
 1047   1047   
/// See [`StartSnapshotInput`](crate::input::StartSnapshotInput).
 1048   1048   
pub mod start_snapshot_input {
 1049   1049   
 1050   1050   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1051   1051   
    /// Holds one variant for each of the ways the builder can fail.
 1052         -
 1053   1052   
    #[allow(clippy::enum_variant_names)]
 1054   1053   
    pub enum ConstraintViolation {
 1055   1054   
        /// `volume_size` was not provided but it is required when building `StartSnapshotInput`.
 1056   1055   
        MissingVolumeSize,
 1057   1056   
    }
 1058   1057   
    impl ::std::fmt::Display for ConstraintViolation {
 1059   1058   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1060   1059   
            match self {
 1061   1060   
                ConstraintViolation::MissingVolumeSize => write!(f, "`volume_size` was not provided but it is required when building `StartSnapshotInput`"),
 1062   1061   
            }
@@ -1440,1439 +1500,1498 @@
 1460   1459   
            formatter.field("checksum_algorithm", &self.checksum_algorithm);
 1461   1460   
            formatter.finish()
 1462   1461   
        }
 1463   1462   
    }
 1464   1463   
}
 1465   1464   
/// See [`PutSnapshotBlockInput`](crate::input::PutSnapshotBlockInput).
 1466   1465   
pub mod put_snapshot_block_input {
 1467   1466   
 1468   1467   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1469   1468   
    /// Holds one variant for each of the ways the builder can fail.
 1470         -
 1471   1469   
    #[allow(clippy::enum_variant_names)]
 1472   1470   
    pub enum ConstraintViolation {
 1473   1471   
        /// `snapshot_id` was not provided but it is required when building `PutSnapshotBlockInput`.
 1474   1472   
        MissingSnapshotId,
 1475   1473   
        /// `block_index` was not provided but it is required when building `PutSnapshotBlockInput`.
 1476   1474   
        MissingBlockIndex,
 1477   1475   
        /// `checksum` was not provided but it is required when building `PutSnapshotBlockInput`.
 1478   1476   
        MissingChecksum,
 1479   1477   
        /// `block_data` was not provided but it is required when building `PutSnapshotBlockInput`.
 1480   1478   
        MissingBlockData,
@@ -1761,1759 +1821,1818 @@
 1781   1779   
                    .ok_or(ConstraintViolation::MissingSnapshotId)?,
 1782   1780   
            })
 1783   1781   
        }
 1784   1782   
    }
 1785   1783   
}
 1786   1784   
/// See [`ListSnapshotBlocksInput`](crate::input::ListSnapshotBlocksInput).
 1787   1785   
pub mod list_snapshot_blocks_input {
 1788   1786   
 1789   1787   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1790   1788   
    /// Holds one variant for each of the ways the builder can fail.
 1791         -
 1792   1789   
    #[allow(clippy::enum_variant_names)]
 1793   1790   
    pub enum ConstraintViolation {
 1794   1791   
        /// `snapshot_id` was not provided but it is required when building `ListSnapshotBlocksInput`.
 1795   1792   
        MissingSnapshotId,
 1796   1793   
    }
 1797   1794   
    impl ::std::fmt::Display for ConstraintViolation {
 1798   1795   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1799   1796   
            match self {
 1800   1797   
                ConstraintViolation::MissingSnapshotId => write!(f, "`snapshot_id` was not provided but it is required when building `ListSnapshotBlocksInput`"),
 1801   1798   
            }
@@ -2065,2062 +2125,2121 @@
 2085   2082   
                    .map(|v: crate::model::BlockIndex| v.into()),
 2086   2083   
            })
 2087   2084   
        }
 2088   2085   
    }
 2089   2086   
}
 2090   2087   
/// See [`ListChangedBlocksInput`](crate::input::ListChangedBlocksInput).
 2091   2088   
pub mod list_changed_blocks_input {
 2092   2089   
 2093   2090   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2094   2091   
    /// Holds one variant for each of the ways the builder can fail.
 2095         -
 2096   2092   
    #[allow(clippy::enum_variant_names)]
 2097   2093   
    pub enum ConstraintViolation {
 2098   2094   
        /// `second_snapshot_id` was not provided but it is required when building `ListChangedBlocksInput`.
 2099   2095   
        MissingSecondSnapshotId,
 2100   2096   
    }
 2101   2097   
    impl ::std::fmt::Display for ConstraintViolation {
 2102   2098   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2103   2099   
            match self {
 2104   2100   
                ConstraintViolation::MissingSecondSnapshotId => write!(f, "`second_snapshot_id` was not provided but it is required when building `ListChangedBlocksInput`"),
 2105   2101   
            }
@@ -2339,2335 +2399,2394 @@
 2359   2355   
                    .ok_or(ConstraintViolation::MissingBlockIndex)?,
 2360   2356   
            })
 2361   2357   
        }
 2362   2358   
    }
 2363   2359   
}
 2364   2360   
/// See [`GetSnapshotBlockInput`](crate::input::GetSnapshotBlockInput).
 2365   2361   
pub mod get_snapshot_block_input {
 2366   2362   
 2367   2363   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2368   2364   
    /// Holds one variant for each of the ways the builder can fail.
 2369         -
 2370   2365   
    #[allow(clippy::enum_variant_names)]
 2371   2366   
    pub enum ConstraintViolation {
 2372   2367   
        /// `snapshot_id` was not provided but it is required when building `GetSnapshotBlockInput`.
 2373   2368   
        MissingSnapshotId,
 2374   2369   
        /// `block_token` was not provided but it is required when building `GetSnapshotBlockInput`.
 2375   2370   
        MissingBlockToken,
 2376   2371   
        /// `block_index` was not provided but it is required when building `GetSnapshotBlockInput`.
 2377   2372   
        MissingBlockIndex,
 2378   2373   
    }
 2379   2374   
    impl ::std::fmt::Display for ConstraintViolation {
@@ -2653,2648 +2713,2707 @@
 2673   2668   
                    .map(|v: crate::model::Checksum| v.into()),
 2674   2669   
            })
 2675   2670   
        }
 2676   2671   
    }
 2677   2672   
}
 2678   2673   
/// See [`CompleteSnapshotInput`](crate::input::CompleteSnapshotInput).
 2679   2674   
pub mod complete_snapshot_input {
 2680   2675   
 2681   2676   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2682   2677   
    /// Holds one variant for each of the ways the builder can fail.
 2683         -
 2684   2678   
    #[allow(clippy::enum_variant_names)]
 2685   2679   
    pub enum ConstraintViolation {
 2686   2680   
        /// `changed_blocks_count` was not provided but it is required when building `CompleteSnapshotInput`.
 2687   2681   
        MissingChangedBlocksCount,
 2688   2682   
        /// `snapshot_id` was not provided but it is required when building `CompleteSnapshotInput`.
 2689   2683   
        MissingSnapshotId,
 2690   2684   
    }
 2691   2685   
    impl ::std::fmt::Display for ConstraintViolation {
 2692   2686   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2693   2687   
            match self {

tmp-codegen-diff/codegen-server-test-python/ebs/rust-server-codegen-python/src/model.rs

@@ -2669,2669 +2729,2728 @@
 2689   2689   
 2690   2690   
        Ok(Self(value))
 2691   2691   
    }
 2692   2692   
}
 2693   2693   
 2694   2694   
/// See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 2695   2695   
pub mod validation_exception_field {
 2696   2696   
 2697   2697   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2698   2698   
    /// Holds one variant for each of the ways the builder can fail.
 2699         -
 2700   2699   
    #[allow(clippy::enum_variant_names)]
 2701   2700   
    pub enum ConstraintViolation {
 2702   2701   
        /// `path` was not provided but it is required when building `ValidationExceptionField`.
 2703   2702   
        MissingPath,
 2704   2703   
        /// `message` was not provided but it is required when building `ValidationExceptionField`.
 2705   2704   
        MissingMessage,
 2706   2705   
    }
 2707   2706   
    impl ::std::fmt::Display for ConstraintViolation {
 2708   2707   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2709   2708   
            match self {

tmp-codegen-diff/codegen-server-test-python/ebs/rust-server-codegen-python/src/operation.rs

@@ -22,22 +82,81 @@
   42     42   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   43     43   
        let fut = async move {
   44     44   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
   45     45   
                request.headers(),
   46     46   
                &CONTENT_TYPE_STARTSNAPSHOT,
   47     47   
            ) {
   48     48   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
   49     49   
            }
   50     50   
            crate::protocol_serde::shape_start_snapshot::de_start_snapshot_http_request(request)
   51     51   
                .await
   52         -
                .map_err(Into::into)
   53     52   
        };
   54     53   
        use ::futures_util::future::TryFutureExt;
   55     54   
        let fut = fut.map_err(
   56     55   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
   57     56   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   58     57   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   59     58   
                    e,
   60     59   
                )
   61     60   
            },
   62     61   
        );
@@ -127,126 +187,185 @@
  147    146   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  148    147   
                request.headers(),
  149    148   
                &CONTENT_TYPE_PUTSNAPSHOTBLOCK,
  150    149   
            ) {
  151    150   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  152    151   
            }
  153    152   
            crate::protocol_serde::shape_put_snapshot_block::de_put_snapshot_block_http_request(
  154    153   
                request,
  155    154   
            )
  156    155   
            .await
  157         -
            .map_err(Into::into)
  158    156   
        };
  159    157   
        use ::futures_util::future::TryFutureExt;
  160    158   
        let fut = fut.map_err(
  161    159   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  162    160   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  163    161   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  164    162   
                    e,
  165    163   
                )
  166    164   
            },
  167    165   
        );
@@ -235,233 +295,292 @@
  255    253   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  256    254   
                request.headers(),
  257    255   
                &CONTENT_TYPE_LISTSNAPSHOTBLOCKS,
  258    256   
            ) {
  259    257   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  260    258   
            }
  261    259   
            crate::protocol_serde::shape_list_snapshot_blocks::de_list_snapshot_blocks_http_request(
  262    260   
                request,
  263    261   
            )
  264    262   
            .await
  265         -
            .map_err(Into::into)
  266    263   
        };
  267    264   
        use ::futures_util::future::TryFutureExt;
  268    265   
        let fut = fut.map_err(
  269    266   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  270    267   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  271    268   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  272    269   
                    e,
  273    270   
                )
  274    271   
            },
  275    272   
        );
@@ -341,338 +401,397 @@
  361    358   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  362    359   
                request.headers(),
  363    360   
                &CONTENT_TYPE_LISTCHANGEDBLOCKS,
  364    361   
            ) {
  365    362   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  366    363   
            }
  367    364   
            crate::protocol_serde::shape_list_changed_blocks::de_list_changed_blocks_http_request(
  368    365   
                request,
  369    366   
            )
  370    367   
            .await
  371         -
            .map_err(Into::into)
  372    368   
        };
  373    369   
        use ::futures_util::future::TryFutureExt;
  374    370   
        let fut = fut.map_err(
  375    371   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  376    372   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  377    373   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  378    374   
                    e,
  379    375   
                )
  380    376   
            },
  381    377   
        );
@@ -447,443 +507,502 @@
  467    463   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  468    464   
                request.headers(),
  469    465   
                &CONTENT_TYPE_GETSNAPSHOTBLOCK,
  470    466   
            ) {
  471    467   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  472    468   
            }
  473    469   
            crate::protocol_serde::shape_get_snapshot_block::de_get_snapshot_block_http_request(
  474    470   
                request,
  475    471   
            )
  476    472   
            .await
  477         -
            .map_err(Into::into)
  478    473   
        };
  479    474   
        use ::futures_util::future::TryFutureExt;
  480    475   
        let fut = fut.map_err(
  481    476   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  482    477   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  483    478   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  484    479   
                    e,
  485    480   
                )
  486    481   
            },
  487    482   
        );
@@ -555,550 +615,609 @@
  575    570   
            if !::aws_smithy_http_server::protocol::accept_header_classifier(
  576    571   
                request.headers(),
  577    572   
                &CONTENT_TYPE_COMPLETESNAPSHOT,
  578    573   
            ) {
  579    574   
                return Err(::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  580    575   
            }
  581    576   
            crate::protocol_serde::shape_complete_snapshot::de_complete_snapshot_http_request(
  582    577   
                request,
  583    578   
            )
  584    579   
            .await
  585         -
            .map_err(Into::into)
  586    580   
        };
  587    581   
        use ::futures_util::future::TryFutureExt;
  588    582   
        let fut = fut.map_err(
  589    583   
            |e: ::aws_smithy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  590    584   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  591    585   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  592    586   
                    e,
  593    587   
                )
  594    588   
            },
  595    589   
        );