Server Test

Server Test

rev. d06a46cae0f385cdae37a9f8264db3469a090ab5

Files changed:

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

@@ -51,51 +112,112 @@
   71     71   
                            <
   72     72   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
   73     73   
                                as ::aws_smithy_http_server::plugin::Plugin<
   74     74   
                                    JsonRpc10<L>,
   75     75   
                                    crate::operation_shape::ContentTypeParameters,
   76     76   
                                    ModelPl::Output
   77     77   
                                >
   78     78   
                            >::Output
   79     79   
                        >,
   80     80   
   81         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
   82         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
          81  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
          82  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
   83     83   
   84     84   
                    {
   85     85   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
   86     86   
        use ::aws_smithy_http_server::plugin::Plugin;
   87     87   
        let svc = crate::operation_shape::ContentTypeParameters::from_handler(handler);
   88     88   
        let svc = self.model_plugin.apply(svc);
   89     89   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
   90     90   
            .apply(svc);
   91     91   
        let svc = self.http_plugin.apply(svc);
   92     92   
        self.content_type_parameters_custom(svc)
@@ -118,118 +198,198 @@
  138    138   
                            <
  139    139   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  140    140   
                                as ::aws_smithy_http_server::plugin::Plugin<
  141    141   
                                    JsonRpc10<L>,
  142    142   
                                    crate::operation_shape::ContentTypeParameters,
  143    143   
                                    ModelPl::Output
  144    144   
                                >
  145    145   
                            >::Output
  146    146   
                        >,
  147    147   
  148         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  149         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         148  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         149  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  150    150   
  151    151   
                    {
  152    152   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  153    153   
        use ::aws_smithy_http_server::plugin::Plugin;
  154    154   
        let svc = crate::operation_shape::ContentTypeParameters::from_service(service);
  155    155   
        let svc = self.model_plugin.apply(svc);
  156    156   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  157    157   
            .apply(svc);
  158    158   
        let svc = self.http_plugin.apply(svc);
  159    159   
        self.content_type_parameters_custom(svc)
  160    160   
    }
  161    161   
  162    162   
    /// Sets the [`ContentTypeParameters`](crate::operation_shape::ContentTypeParameters) to a custom [`Service`](tower::Service).
  163    163   
    /// not constrained by the Smithy contract.
  164    164   
    fn content_type_parameters_custom<S>(mut self, svc: S) -> Self
  165    165   
    where
  166    166   
        S: ::tower::Service<
  167         -
                ::http::Request<Body>,
  168         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         167  +
                ::http_1x::Request<Body>,
         168  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  169    169   
                Error = ::std::convert::Infallible,
  170    170   
            > + Clone
  171    171   
            + Send
  172    172   
            + 'static,
  173    173   
        S::Future: Send + 'static,
  174    174   
    {
  175    175   
        self.content_type_parameters = Some(::aws_smithy_http_server::routing::Route::new(svc));
  176    176   
        self
  177    177   
    }
  178    178   
@@ -201,201 +262,262 @@
  221    221   
                            <
  222    222   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  223    223   
                                as ::aws_smithy_http_server::plugin::Plugin<
  224    224   
                                    JsonRpc10<L>,
  225    225   
                                    crate::operation_shape::EmptyInputAndEmptyOutput,
  226    226   
                                    ModelPl::Output
  227    227   
                                >
  228    228   
                            >::Output
  229    229   
                        >,
  230    230   
  231         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  232         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         231  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         232  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  233    233   
  234    234   
                    {
  235    235   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  236    236   
        use ::aws_smithy_http_server::plugin::Plugin;
  237    237   
        let svc = crate::operation_shape::EmptyInputAndEmptyOutput::from_handler(handler);
  238    238   
        let svc = self.model_plugin.apply(svc);
  239    239   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  240    240   
            .apply(svc);
  241    241   
        let svc = self.http_plugin.apply(svc);
  242    242   
        self.empty_input_and_empty_output_custom(svc)
@@ -268,268 +348,348 @@
  288    288   
                            <
  289    289   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  290    290   
                                as ::aws_smithy_http_server::plugin::Plugin<
  291    291   
                                    JsonRpc10<L>,
  292    292   
                                    crate::operation_shape::EmptyInputAndEmptyOutput,
  293    293   
                                    ModelPl::Output
  294    294   
                                >
  295    295   
                            >::Output
  296    296   
                        >,
  297    297   
  298         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  299         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         298  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         299  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  300    300   
  301    301   
                    {
  302    302   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  303    303   
        use ::aws_smithy_http_server::plugin::Plugin;
  304    304   
        let svc = crate::operation_shape::EmptyInputAndEmptyOutput::from_service(service);
  305    305   
        let svc = self.model_plugin.apply(svc);
  306    306   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  307    307   
            .apply(svc);
  308    308   
        let svc = self.http_plugin.apply(svc);
  309    309   
        self.empty_input_and_empty_output_custom(svc)
  310    310   
    }
  311    311   
  312    312   
    /// Sets the [`EmptyInputAndEmptyOutput`](crate::operation_shape::EmptyInputAndEmptyOutput) to a custom [`Service`](tower::Service).
  313    313   
    /// not constrained by the Smithy contract.
  314    314   
    fn empty_input_and_empty_output_custom<S>(mut self, svc: S) -> Self
  315    315   
    where
  316    316   
        S: ::tower::Service<
  317         -
                ::http::Request<Body>,
  318         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         317  +
                ::http_1x::Request<Body>,
         318  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  319    319   
                Error = ::std::convert::Infallible,
  320    320   
            > + Clone
  321    321   
            + Send
  322    322   
            + 'static,
  323    323   
        S::Future: Send + 'static,
  324    324   
    {
  325    325   
        self.empty_input_and_empty_output =
  326    326   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
  327    327   
        self
  328    328   
    }
@@ -352,352 +413,413 @@
  372    372   
                            <
  373    373   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  374    374   
                                as ::aws_smithy_http_server::plugin::Plugin<
  375    375   
                                    JsonRpc10<L>,
  376    376   
                                    crate::operation_shape::EndpointOperation,
  377    377   
                                    ModelPl::Output
  378    378   
                                >
  379    379   
                            >::Output
  380    380   
                        >,
  381    381   
  382         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  383         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         382  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         383  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  384    384   
  385    385   
                    {
  386    386   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  387    387   
        use ::aws_smithy_http_server::plugin::Plugin;
  388    388   
        let svc = crate::operation_shape::EndpointOperation::from_handler(handler);
  389    389   
        let svc = self.model_plugin.apply(svc);
  390    390   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  391    391   
            .apply(svc);
  392    392   
        let svc = self.http_plugin.apply(svc);
  393    393   
        self.endpoint_operation_custom(svc)
@@ -419,419 +499,499 @@
  439    439   
                            <
  440    440   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  441    441   
                                as ::aws_smithy_http_server::plugin::Plugin<
  442    442   
                                    JsonRpc10<L>,
  443    443   
                                    crate::operation_shape::EndpointOperation,
  444    444   
                                    ModelPl::Output
  445    445   
                                >
  446    446   
                            >::Output
  447    447   
                        >,
  448    448   
  449         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  450         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         449  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         450  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  451    451   
  452    452   
                    {
  453    453   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  454    454   
        use ::aws_smithy_http_server::plugin::Plugin;
  455    455   
        let svc = crate::operation_shape::EndpointOperation::from_service(service);
  456    456   
        let svc = self.model_plugin.apply(svc);
  457    457   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  458    458   
            .apply(svc);
  459    459   
        let svc = self.http_plugin.apply(svc);
  460    460   
        self.endpoint_operation_custom(svc)
  461    461   
    }
  462    462   
  463    463   
    /// Sets the [`EndpointOperation`](crate::operation_shape::EndpointOperation) to a custom [`Service`](tower::Service).
  464    464   
    /// not constrained by the Smithy contract.
  465    465   
    fn endpoint_operation_custom<S>(mut self, svc: S) -> Self
  466    466   
    where
  467    467   
        S: ::tower::Service<
  468         -
                ::http::Request<Body>,
  469         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         468  +
                ::http_1x::Request<Body>,
         469  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  470    470   
                Error = ::std::convert::Infallible,
  471    471   
            > + Clone
  472    472   
            + Send
  473    473   
            + 'static,
  474    474   
        S::Future: Send + 'static,
  475    475   
    {
  476    476   
        self.endpoint_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
  477    477   
        self
  478    478   
    }
  479    479   
@@ -502,502 +563,563 @@
  522    522   
                            <
  523    523   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  524    524   
                                as ::aws_smithy_http_server::plugin::Plugin<
  525    525   
                                    JsonRpc10<L>,
  526    526   
                                    crate::operation_shape::EndpointWithHostLabelOperation,
  527    527   
                                    ModelPl::Output
  528    528   
                                >
  529    529   
                            >::Output
  530    530   
                        >,
  531    531   
  532         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  533         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         532  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         533  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  534    534   
  535    535   
                    {
  536    536   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  537    537   
        use ::aws_smithy_http_server::plugin::Plugin;
  538    538   
        let svc = crate::operation_shape::EndpointWithHostLabelOperation::from_handler(handler);
  539    539   
        let svc = self.model_plugin.apply(svc);
  540    540   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  541    541   
            .apply(svc);
  542    542   
        let svc = self.http_plugin.apply(svc);
  543    543   
        self.endpoint_with_host_label_operation_custom(svc)
@@ -569,569 +649,649 @@
  589    589   
                            <
  590    590   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  591    591   
                                as ::aws_smithy_http_server::plugin::Plugin<
  592    592   
                                    JsonRpc10<L>,
  593    593   
                                    crate::operation_shape::EndpointWithHostLabelOperation,
  594    594   
                                    ModelPl::Output
  595    595   
                                >
  596    596   
                            >::Output
  597    597   
                        >,
  598    598   
  599         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  600         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         599  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         600  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  601    601   
  602    602   
                    {
  603    603   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  604    604   
        use ::aws_smithy_http_server::plugin::Plugin;
  605    605   
        let svc = crate::operation_shape::EndpointWithHostLabelOperation::from_service(service);
  606    606   
        let svc = self.model_plugin.apply(svc);
  607    607   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  608    608   
            .apply(svc);
  609    609   
        let svc = self.http_plugin.apply(svc);
  610    610   
        self.endpoint_with_host_label_operation_custom(svc)
  611    611   
    }
  612    612   
  613    613   
    /// Sets the [`EndpointWithHostLabelOperation`](crate::operation_shape::EndpointWithHostLabelOperation) to a custom [`Service`](tower::Service).
  614    614   
    /// not constrained by the Smithy contract.
  615    615   
    fn endpoint_with_host_label_operation_custom<S>(mut self, svc: S) -> Self
  616    616   
    where
  617    617   
        S: ::tower::Service<
  618         -
                ::http::Request<Body>,
  619         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         618  +
                ::http_1x::Request<Body>,
         619  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  620    620   
                Error = ::std::convert::Infallible,
  621    621   
            > + Clone
  622    622   
            + Send
  623    623   
            + 'static,
  624    624   
        S::Future: Send + 'static,
  625    625   
    {
  626    626   
        self.endpoint_with_host_label_operation =
  627    627   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
  628    628   
        self
  629    629   
    }
@@ -653,653 +714,714 @@
  673    673   
                            <
  674    674   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  675    675   
                                as ::aws_smithy_http_server::plugin::Plugin<
  676    676   
                                    JsonRpc10<L>,
  677    677   
                                    crate::operation_shape::GreetingWithErrors,
  678    678   
                                    ModelPl::Output
  679    679   
                                >
  680    680   
                            >::Output
  681    681   
                        >,
  682    682   
  683         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  684         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         683  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         684  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  685    685   
  686    686   
                    {
  687    687   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  688    688   
        use ::aws_smithy_http_server::plugin::Plugin;
  689    689   
        let svc = crate::operation_shape::GreetingWithErrors::from_handler(handler);
  690    690   
        let svc = self.model_plugin.apply(svc);
  691    691   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  692    692   
            .apply(svc);
  693    693   
        let svc = self.http_plugin.apply(svc);
  694    694   
        self.greeting_with_errors_custom(svc)
@@ -720,720 +800,800 @@
  740    740   
                            <
  741    741   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  742    742   
                                as ::aws_smithy_http_server::plugin::Plugin<
  743    743   
                                    JsonRpc10<L>,
  744    744   
                                    crate::operation_shape::GreetingWithErrors,
  745    745   
                                    ModelPl::Output
  746    746   
                                >
  747    747   
                            >::Output
  748    748   
                        >,
  749    749   
  750         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  751         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         750  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         751  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  752    752   
  753    753   
                    {
  754    754   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  755    755   
        use ::aws_smithy_http_server::plugin::Plugin;
  756    756   
        let svc = crate::operation_shape::GreetingWithErrors::from_service(service);
  757    757   
        let svc = self.model_plugin.apply(svc);
  758    758   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  759    759   
            .apply(svc);
  760    760   
        let svc = self.http_plugin.apply(svc);
  761    761   
        self.greeting_with_errors_custom(svc)
  762    762   
    }
  763    763   
  764    764   
    /// Sets the [`GreetingWithErrors`](crate::operation_shape::GreetingWithErrors) to a custom [`Service`](tower::Service).
  765    765   
    /// not constrained by the Smithy contract.
  766    766   
    fn greeting_with_errors_custom<S>(mut self, svc: S) -> Self
  767    767   
    where
  768    768   
        S: ::tower::Service<
  769         -
                ::http::Request<Body>,
  770         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         769  +
                ::http_1x::Request<Body>,
         770  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  771    771   
                Error = ::std::convert::Infallible,
  772    772   
            > + Clone
  773    773   
            + Send
  774    774   
            + 'static,
  775    775   
        S::Future: Send + 'static,
  776    776   
    {
  777    777   
        self.greeting_with_errors = Some(::aws_smithy_http_server::routing::Route::new(svc));
  778    778   
        self
  779    779   
    }
  780    780   
@@ -803,803 +864,864 @@
  823    823   
                            <
  824    824   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  825    825   
                                as ::aws_smithy_http_server::plugin::Plugin<
  826    826   
                                    JsonRpc10<L>,
  827    827   
                                    crate::operation_shape::HostWithPathOperation,
  828    828   
                                    ModelPl::Output
  829    829   
                                >
  830    830   
                            >::Output
  831    831   
                        >,
  832    832   
  833         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  834         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         833  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         834  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  835    835   
  836    836   
                    {
  837    837   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  838    838   
        use ::aws_smithy_http_server::plugin::Plugin;
  839    839   
        let svc = crate::operation_shape::HostWithPathOperation::from_handler(handler);
  840    840   
        let svc = self.model_plugin.apply(svc);
  841    841   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  842    842   
            .apply(svc);
  843    843   
        let svc = self.http_plugin.apply(svc);
  844    844   
        self.host_with_path_operation_custom(svc)
@@ -870,870 +950,950 @@
  890    890   
                            <
  891    891   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  892    892   
                                as ::aws_smithy_http_server::plugin::Plugin<
  893    893   
                                    JsonRpc10<L>,
  894    894   
                                    crate::operation_shape::HostWithPathOperation,
  895    895   
                                    ModelPl::Output
  896    896   
                                >
  897    897   
                            >::Output
  898    898   
                        >,
  899    899   
  900         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  901         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         900  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         901  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  902    902   
  903    903   
                    {
  904    904   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  905    905   
        use ::aws_smithy_http_server::plugin::Plugin;
  906    906   
        let svc = crate::operation_shape::HostWithPathOperation::from_service(service);
  907    907   
        let svc = self.model_plugin.apply(svc);
  908    908   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  909    909   
            .apply(svc);
  910    910   
        let svc = self.http_plugin.apply(svc);
  911    911   
        self.host_with_path_operation_custom(svc)
  912    912   
    }
  913    913   
  914    914   
    /// Sets the [`HostWithPathOperation`](crate::operation_shape::HostWithPathOperation) to a custom [`Service`](tower::Service).
  915    915   
    /// not constrained by the Smithy contract.
  916    916   
    fn host_with_path_operation_custom<S>(mut self, svc: S) -> Self
  917    917   
    where
  918    918   
        S: ::tower::Service<
  919         -
                ::http::Request<Body>,
  920         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
         919  +
                ::http_1x::Request<Body>,
         920  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
  921    921   
                Error = ::std::convert::Infallible,
  922    922   
            > + Clone
  923    923   
            + Send
  924    924   
            + 'static,
  925    925   
        S::Future: Send + 'static,
  926    926   
    {
  927    927   
        self.host_with_path_operation = Some(::aws_smithy_http_server::routing::Route::new(svc));
  928    928   
        self
  929    929   
    }
  930    930   
@@ -953,953 +1014,1014 @@
  973    973   
                            <
  974    974   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
  975    975   
                                as ::aws_smithy_http_server::plugin::Plugin<
  976    976   
                                    JsonRpc10<L>,
  977    977   
                                    crate::operation_shape::JsonUnions,
  978    978   
                                    ModelPl::Output
  979    979   
                                >
  980    980   
                            >::Output
  981    981   
                        >,
  982    982   
  983         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
  984         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
         983  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
         984  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
  985    985   
  986    986   
                    {
  987    987   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
  988    988   
        use ::aws_smithy_http_server::plugin::Plugin;
  989    989   
        let svc = crate::operation_shape::JsonUnions::from_handler(handler);
  990    990   
        let svc = self.model_plugin.apply(svc);
  991    991   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
  992    992   
            .apply(svc);
  993    993   
        let svc = self.http_plugin.apply(svc);
  994    994   
        self.json_unions_custom(svc)
@@ -1020,1020 +1100,1100 @@
 1040   1040   
                            <
 1041   1041   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1042   1042   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1043   1043   
                                    JsonRpc10<L>,
 1044   1044   
                                    crate::operation_shape::JsonUnions,
 1045   1045   
                                    ModelPl::Output
 1046   1046   
                                >
 1047   1047   
                            >::Output
 1048   1048   
                        >,
 1049   1049   
 1050         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1051         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1050  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1051  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1052   1052   
 1053   1053   
                    {
 1054   1054   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1055   1055   
        use ::aws_smithy_http_server::plugin::Plugin;
 1056   1056   
        let svc = crate::operation_shape::JsonUnions::from_service(service);
 1057   1057   
        let svc = self.model_plugin.apply(svc);
 1058   1058   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1059   1059   
            .apply(svc);
 1060   1060   
        let svc = self.http_plugin.apply(svc);
 1061   1061   
        self.json_unions_custom(svc)
 1062   1062   
    }
 1063   1063   
 1064   1064   
    /// Sets the [`JsonUnions`](crate::operation_shape::JsonUnions) to a custom [`Service`](tower::Service).
 1065   1065   
    /// not constrained by the Smithy contract.
 1066   1066   
    fn json_unions_custom<S>(mut self, svc: S) -> Self
 1067   1067   
    where
 1068   1068   
        S: ::tower::Service<
 1069         -
                ::http::Request<Body>,
 1070         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1069  +
                ::http_1x::Request<Body>,
        1070  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1071   1071   
                Error = ::std::convert::Infallible,
 1072   1072   
            > + Clone
 1073   1073   
            + Send
 1074   1074   
            + 'static,
 1075   1075   
        S::Future: Send + 'static,
 1076   1076   
    {
 1077   1077   
        self.json_unions = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1078   1078   
        self
 1079   1079   
    }
 1080   1080   
@@ -1103,1103 +1164,1164 @@
 1123   1123   
                            <
 1124   1124   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1125   1125   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1126   1126   
                                    JsonRpc10<L>,
 1127   1127   
                                    crate::operation_shape::NoInputAndNoOutput,
 1128   1128   
                                    ModelPl::Output
 1129   1129   
                                >
 1130   1130   
                            >::Output
 1131   1131   
                        >,
 1132   1132   
 1133         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1134         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1133  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1134  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1135   1135   
 1136   1136   
                    {
 1137   1137   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1138   1138   
        use ::aws_smithy_http_server::plugin::Plugin;
 1139   1139   
        let svc = crate::operation_shape::NoInputAndNoOutput::from_handler(handler);
 1140   1140   
        let svc = self.model_plugin.apply(svc);
 1141   1141   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1142   1142   
            .apply(svc);
 1143   1143   
        let svc = self.http_plugin.apply(svc);
 1144   1144   
        self.no_input_and_no_output_custom(svc)
@@ -1170,1170 +1250,1250 @@
 1190   1190   
                            <
 1191   1191   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1192   1192   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1193   1193   
                                    JsonRpc10<L>,
 1194   1194   
                                    crate::operation_shape::NoInputAndNoOutput,
 1195   1195   
                                    ModelPl::Output
 1196   1196   
                                >
 1197   1197   
                            >::Output
 1198   1198   
                        >,
 1199   1199   
 1200         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1201         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1200  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1201  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1202   1202   
 1203   1203   
                    {
 1204   1204   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1205   1205   
        use ::aws_smithy_http_server::plugin::Plugin;
 1206   1206   
        let svc = crate::operation_shape::NoInputAndNoOutput::from_service(service);
 1207   1207   
        let svc = self.model_plugin.apply(svc);
 1208   1208   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1209   1209   
            .apply(svc);
 1210   1210   
        let svc = self.http_plugin.apply(svc);
 1211   1211   
        self.no_input_and_no_output_custom(svc)
 1212   1212   
    }
 1213   1213   
 1214   1214   
    /// Sets the [`NoInputAndNoOutput`](crate::operation_shape::NoInputAndNoOutput) to a custom [`Service`](tower::Service).
 1215   1215   
    /// not constrained by the Smithy contract.
 1216   1216   
    fn no_input_and_no_output_custom<S>(mut self, svc: S) -> Self
 1217   1217   
    where
 1218   1218   
        S: ::tower::Service<
 1219         -
                ::http::Request<Body>,
 1220         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1219  +
                ::http_1x::Request<Body>,
        1220  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1221   1221   
                Error = ::std::convert::Infallible,
 1222   1222   
            > + Clone
 1223   1223   
            + Send
 1224   1224   
            + 'static,
 1225   1225   
        S::Future: Send + 'static,
 1226   1226   
    {
 1227   1227   
        self.no_input_and_no_output = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1228   1228   
        self
 1229   1229   
    }
 1230   1230   
@@ -1253,1253 +1314,1314 @@
 1273   1273   
                            <
 1274   1274   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1275   1275   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1276   1276   
                                    JsonRpc10<L>,
 1277   1277   
                                    crate::operation_shape::NoInputAndOutput,
 1278   1278   
                                    ModelPl::Output
 1279   1279   
                                >
 1280   1280   
                            >::Output
 1281   1281   
                        >,
 1282   1282   
 1283         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1284         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1283  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1284  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1285   1285   
 1286   1286   
                    {
 1287   1287   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1288   1288   
        use ::aws_smithy_http_server::plugin::Plugin;
 1289   1289   
        let svc = crate::operation_shape::NoInputAndOutput::from_handler(handler);
 1290   1290   
        let svc = self.model_plugin.apply(svc);
 1291   1291   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1292   1292   
            .apply(svc);
 1293   1293   
        let svc = self.http_plugin.apply(svc);
 1294   1294   
        self.no_input_and_output_custom(svc)
@@ -1320,1320 +1400,1400 @@
 1340   1340   
                            <
 1341   1341   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1342   1342   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1343   1343   
                                    JsonRpc10<L>,
 1344   1344   
                                    crate::operation_shape::NoInputAndOutput,
 1345   1345   
                                    ModelPl::Output
 1346   1346   
                                >
 1347   1347   
                            >::Output
 1348   1348   
                        >,
 1349   1349   
 1350         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1351         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1350  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1351  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1352   1352   
 1353   1353   
                    {
 1354   1354   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1355   1355   
        use ::aws_smithy_http_server::plugin::Plugin;
 1356   1356   
        let svc = crate::operation_shape::NoInputAndOutput::from_service(service);
 1357   1357   
        let svc = self.model_plugin.apply(svc);
 1358   1358   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1359   1359   
            .apply(svc);
 1360   1360   
        let svc = self.http_plugin.apply(svc);
 1361   1361   
        self.no_input_and_output_custom(svc)
 1362   1362   
    }
 1363   1363   
 1364   1364   
    /// Sets the [`NoInputAndOutput`](crate::operation_shape::NoInputAndOutput) to a custom [`Service`](tower::Service).
 1365   1365   
    /// not constrained by the Smithy contract.
 1366   1366   
    fn no_input_and_output_custom<S>(mut self, svc: S) -> Self
 1367   1367   
    where
 1368   1368   
        S: ::tower::Service<
 1369         -
                ::http::Request<Body>,
 1370         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1369  +
                ::http_1x::Request<Body>,
        1370  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1371   1371   
                Error = ::std::convert::Infallible,
 1372   1372   
            > + Clone
 1373   1373   
            + Send
 1374   1374   
            + 'static,
 1375   1375   
        S::Future: Send + 'static,
 1376   1376   
    {
 1377   1377   
        self.no_input_and_output = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1378   1378   
        self
 1379   1379   
    }
 1380   1380   
@@ -1403,1403 +1464,1464 @@
 1423   1423   
                            <
 1424   1424   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1425   1425   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1426   1426   
                                    JsonRpc10<L>,
 1427   1427   
                                    crate::operation_shape::OperationWithDefaults,
 1428   1428   
                                    ModelPl::Output
 1429   1429   
                                >
 1430   1430   
                            >::Output
 1431   1431   
                        >,
 1432   1432   
 1433         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1434         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1433  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1434  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1435   1435   
 1436   1436   
                    {
 1437   1437   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1438   1438   
        use ::aws_smithy_http_server::plugin::Plugin;
 1439   1439   
        let svc = crate::operation_shape::OperationWithDefaults::from_handler(handler);
 1440   1440   
        let svc = self.model_plugin.apply(svc);
 1441   1441   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1442   1442   
            .apply(svc);
 1443   1443   
        let svc = self.http_plugin.apply(svc);
 1444   1444   
        self.operation_with_defaults_custom(svc)
@@ -1470,1470 +1550,1550 @@
 1490   1490   
                            <
 1491   1491   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1492   1492   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1493   1493   
                                    JsonRpc10<L>,
 1494   1494   
                                    crate::operation_shape::OperationWithDefaults,
 1495   1495   
                                    ModelPl::Output
 1496   1496   
                                >
 1497   1497   
                            >::Output
 1498   1498   
                        >,
 1499   1499   
 1500         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1501         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1500  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1501  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1502   1502   
 1503   1503   
                    {
 1504   1504   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1505   1505   
        use ::aws_smithy_http_server::plugin::Plugin;
 1506   1506   
        let svc = crate::operation_shape::OperationWithDefaults::from_service(service);
 1507   1507   
        let svc = self.model_plugin.apply(svc);
 1508   1508   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1509   1509   
            .apply(svc);
 1510   1510   
        let svc = self.http_plugin.apply(svc);
 1511   1511   
        self.operation_with_defaults_custom(svc)
 1512   1512   
    }
 1513   1513   
 1514   1514   
    /// Sets the [`OperationWithDefaults`](crate::operation_shape::OperationWithDefaults) to a custom [`Service`](tower::Service).
 1515   1515   
    /// not constrained by the Smithy contract.
 1516   1516   
    fn operation_with_defaults_custom<S>(mut self, svc: S) -> Self
 1517   1517   
    where
 1518   1518   
        S: ::tower::Service<
 1519         -
                ::http::Request<Body>,
 1520         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1519  +
                ::http_1x::Request<Body>,
        1520  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1521   1521   
                Error = ::std::convert::Infallible,
 1522   1522   
            > + Clone
 1523   1523   
            + Send
 1524   1524   
            + 'static,
 1525   1525   
        S::Future: Send + 'static,
 1526   1526   
    {
 1527   1527   
        self.operation_with_defaults = Some(::aws_smithy_http_server::routing::Route::new(svc));
 1528   1528   
        self
 1529   1529   
    }
 1530   1530   
@@ -1553,1553 +1614,1614 @@
 1573   1573   
                            <
 1574   1574   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1575   1575   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1576   1576   
                                    JsonRpc10<L>,
 1577   1577   
                                    crate::operation_shape::OperationWithNestedStructure,
 1578   1578   
                                    ModelPl::Output
 1579   1579   
                                >
 1580   1580   
                            >::Output
 1581   1581   
                        >,
 1582   1582   
 1583         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1584         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1583  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1584  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1585   1585   
 1586   1586   
                    {
 1587   1587   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1588   1588   
        use ::aws_smithy_http_server::plugin::Plugin;
 1589   1589   
        let svc = crate::operation_shape::OperationWithNestedStructure::from_handler(handler);
 1590   1590   
        let svc = self.model_plugin.apply(svc);
 1591   1591   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1592   1592   
            .apply(svc);
 1593   1593   
        let svc = self.http_plugin.apply(svc);
 1594   1594   
        self.operation_with_nested_structure_custom(svc)
@@ -1620,1620 +1700,1700 @@
 1640   1640   
                            <
 1641   1641   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1642   1642   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1643   1643   
                                    JsonRpc10<L>,
 1644   1644   
                                    crate::operation_shape::OperationWithNestedStructure,
 1645   1645   
                                    ModelPl::Output
 1646   1646   
                                >
 1647   1647   
                            >::Output
 1648   1648   
                        >,
 1649   1649   
 1650         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1651         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1650  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1651  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1652   1652   
 1653   1653   
                    {
 1654   1654   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1655   1655   
        use ::aws_smithy_http_server::plugin::Plugin;
 1656   1656   
        let svc = crate::operation_shape::OperationWithNestedStructure::from_service(service);
 1657   1657   
        let svc = self.model_plugin.apply(svc);
 1658   1658   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1659   1659   
            .apply(svc);
 1660   1660   
        let svc = self.http_plugin.apply(svc);
 1661   1661   
        self.operation_with_nested_structure_custom(svc)
 1662   1662   
    }
 1663   1663   
 1664   1664   
    /// Sets the [`OperationWithNestedStructure`](crate::operation_shape::OperationWithNestedStructure) to a custom [`Service`](tower::Service).
 1665   1665   
    /// not constrained by the Smithy contract.
 1666   1666   
    fn operation_with_nested_structure_custom<S>(mut self, svc: S) -> Self
 1667   1667   
    where
 1668   1668   
        S: ::tower::Service<
 1669         -
                ::http::Request<Body>,
 1670         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1669  +
                ::http_1x::Request<Body>,
        1670  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1671   1671   
                Error = ::std::convert::Infallible,
 1672   1672   
            > + Clone
 1673   1673   
            + Send
 1674   1674   
            + 'static,
 1675   1675   
        S::Future: Send + 'static,
 1676   1676   
    {
 1677   1677   
        self.operation_with_nested_structure =
 1678   1678   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
 1679   1679   
        self
 1680   1680   
    }
@@ -1704,1704 +1765,1765 @@
 1724   1724   
                            <
 1725   1725   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1726   1726   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1727   1727   
                                    JsonRpc10<L>,
 1728   1728   
                                    crate::operation_shape::OperationWithRequiredMembers,
 1729   1729   
                                    ModelPl::Output
 1730   1730   
                                >
 1731   1731   
                            >::Output
 1732   1732   
                        >,
 1733   1733   
 1734         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1735         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1734  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1735  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1736   1736   
 1737   1737   
                    {
 1738   1738   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1739   1739   
        use ::aws_smithy_http_server::plugin::Plugin;
 1740   1740   
        let svc = crate::operation_shape::OperationWithRequiredMembers::from_handler(handler);
 1741   1741   
        let svc = self.model_plugin.apply(svc);
 1742   1742   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1743   1743   
            .apply(svc);
 1744   1744   
        let svc = self.http_plugin.apply(svc);
 1745   1745   
        self.operation_with_required_members_custom(svc)
@@ -1771,1771 +1851,1851 @@
 1791   1791   
                            <
 1792   1792   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1793   1793   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1794   1794   
                                    JsonRpc10<L>,
 1795   1795   
                                    crate::operation_shape::OperationWithRequiredMembers,
 1796   1796   
                                    ModelPl::Output
 1797   1797   
                                >
 1798   1798   
                            >::Output
 1799   1799   
                        >,
 1800   1800   
 1801         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1802         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1801  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1802  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1803   1803   
 1804   1804   
                    {
 1805   1805   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1806   1806   
        use ::aws_smithy_http_server::plugin::Plugin;
 1807   1807   
        let svc = crate::operation_shape::OperationWithRequiredMembers::from_service(service);
 1808   1808   
        let svc = self.model_plugin.apply(svc);
 1809   1809   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1810   1810   
            .apply(svc);
 1811   1811   
        let svc = self.http_plugin.apply(svc);
 1812   1812   
        self.operation_with_required_members_custom(svc)
 1813   1813   
    }
 1814   1814   
 1815   1815   
    /// Sets the [`OperationWithRequiredMembers`](crate::operation_shape::OperationWithRequiredMembers) to a custom [`Service`](tower::Service).
 1816   1816   
    /// not constrained by the Smithy contract.
 1817   1817   
    fn operation_with_required_members_custom<S>(mut self, svc: S) -> Self
 1818   1818   
    where
 1819   1819   
        S: ::tower::Service<
 1820         -
                ::http::Request<Body>,
 1821         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1820  +
                ::http_1x::Request<Body>,
        1821  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1822   1822   
                Error = ::std::convert::Infallible,
 1823   1823   
            > + Clone
 1824   1824   
            + Send
 1825   1825   
            + 'static,
 1826   1826   
        S::Future: Send + 'static,
 1827   1827   
    {
 1828   1828   
        self.operation_with_required_members =
 1829   1829   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
 1830   1830   
        self
 1831   1831   
    }
@@ -1855,1855 +1916,1916 @@
 1875   1875   
                            <
 1876   1876   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1877   1877   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1878   1878   
                                    JsonRpc10<L>,
 1879   1879   
                                    crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1880   1880   
                                    ModelPl::Output
 1881   1881   
                                >
 1882   1882   
                            >::Output
 1883   1883   
                        >,
 1884   1884   
 1885         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1886         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1885  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1886  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1887   1887   
 1888   1888   
                    {
 1889   1889   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1890   1890   
        use ::aws_smithy_http_server::plugin::Plugin;
 1891   1891   
        let svc =
 1892   1892   
            crate::operation_shape::OperationWithRequiredMembersWithDefaults::from_handler(handler);
 1893   1893   
        let svc = self.model_plugin.apply(svc);
 1894   1894   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1895   1895   
            .apply(svc);
 1896   1896   
        let svc = self.http_plugin.apply(svc);
@@ -1923,1923 +2004,2004 @@
 1943   1943   
                            <
 1944   1944   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 1945   1945   
                                as ::aws_smithy_http_server::plugin::Plugin<
 1946   1946   
                                    JsonRpc10<L>,
 1947   1947   
                                    crate::operation_shape::OperationWithRequiredMembersWithDefaults,
 1948   1948   
                                    ModelPl::Output
 1949   1949   
                                >
 1950   1950   
                            >::Output
 1951   1951   
                        >,
 1952   1952   
 1953         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 1954         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        1953  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        1954  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 1955   1955   
 1956   1956   
                    {
 1957   1957   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 1958   1958   
        use ::aws_smithy_http_server::plugin::Plugin;
 1959   1959   
        let svc =
 1960   1960   
            crate::operation_shape::OperationWithRequiredMembersWithDefaults::from_service(service);
 1961   1961   
        let svc = self.model_plugin.apply(svc);
 1962   1962   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 1963   1963   
            .apply(svc);
 1964   1964   
        let svc = self.http_plugin.apply(svc);
 1965   1965   
        self.operation_with_required_members_with_defaults_custom(svc)
 1966   1966   
    }
 1967   1967   
 1968   1968   
    /// Sets the [`OperationWithRequiredMembersWithDefaults`](crate::operation_shape::OperationWithRequiredMembersWithDefaults) to a custom [`Service`](tower::Service).
 1969   1969   
    /// not constrained by the Smithy contract.
 1970   1970   
    fn operation_with_required_members_with_defaults_custom<S>(mut self, svc: S) -> Self
 1971   1971   
    where
 1972   1972   
        S: ::tower::Service<
 1973         -
                ::http::Request<Body>,
 1974         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        1973  +
                ::http_1x::Request<Body>,
        1974  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 1975   1975   
                Error = ::std::convert::Infallible,
 1976   1976   
            > + Clone
 1977   1977   
            + Send
 1978   1978   
            + 'static,
 1979   1979   
        S::Future: Send + 'static,
 1980   1980   
    {
 1981   1981   
        self.operation_with_required_members_with_defaults =
 1982   1982   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
 1983   1983   
        self
 1984   1984   
    }
@@ -2008,2008 +2069,2069 @@
 2028   2028   
                            <
 2029   2029   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2030   2030   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2031   2031   
                                    JsonRpc10<L>,
 2032   2032   
                                    crate::operation_shape::PutWithContentEncoding,
 2033   2033   
                                    ModelPl::Output
 2034   2034   
                                >
 2035   2035   
                            >::Output
 2036   2036   
                        >,
 2037   2037   
 2038         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2039         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2038  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2039  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2040   2040   
 2041   2041   
                    {
 2042   2042   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2043   2043   
        use ::aws_smithy_http_server::plugin::Plugin;
 2044   2044   
        let svc = crate::operation_shape::PutWithContentEncoding::from_handler(handler);
 2045   2045   
        let svc = self.model_plugin.apply(svc);
 2046   2046   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2047   2047   
            .apply(svc);
 2048   2048   
        let svc = self.http_plugin.apply(svc);
 2049   2049   
        self.put_with_content_encoding_custom(svc)
@@ -2075,2075 +2155,2155 @@
 2095   2095   
                            <
 2096   2096   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2097   2097   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2098   2098   
                                    JsonRpc10<L>,
 2099   2099   
                                    crate::operation_shape::PutWithContentEncoding,
 2100   2100   
                                    ModelPl::Output
 2101   2101   
                                >
 2102   2102   
                            >::Output
 2103   2103   
                        >,
 2104   2104   
 2105         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2106         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2105  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2106  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2107   2107   
 2108   2108   
                    {
 2109   2109   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2110   2110   
        use ::aws_smithy_http_server::plugin::Plugin;
 2111   2111   
        let svc = crate::operation_shape::PutWithContentEncoding::from_service(service);
 2112   2112   
        let svc = self.model_plugin.apply(svc);
 2113   2113   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2114   2114   
            .apply(svc);
 2115   2115   
        let svc = self.http_plugin.apply(svc);
 2116   2116   
        self.put_with_content_encoding_custom(svc)
 2117   2117   
    }
 2118   2118   
 2119   2119   
    /// Sets the [`PutWithContentEncoding`](crate::operation_shape::PutWithContentEncoding) to a custom [`Service`](tower::Service).
 2120   2120   
    /// not constrained by the Smithy contract.
 2121   2121   
    fn put_with_content_encoding_custom<S>(mut self, svc: S) -> Self
 2122   2122   
    where
 2123   2123   
        S: ::tower::Service<
 2124         -
                ::http::Request<Body>,
 2125         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2124  +
                ::http_1x::Request<Body>,
        2125  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 2126   2126   
                Error = ::std::convert::Infallible,
 2127   2127   
            > + Clone
 2128   2128   
            + Send
 2129   2129   
            + 'static,
 2130   2130   
        S::Future: Send + 'static,
 2131   2131   
    {
 2132   2132   
        self.put_with_content_encoding = Some(::aws_smithy_http_server::routing::Route::new(svc));
 2133   2133   
        self
 2134   2134   
    }
 2135   2135   
@@ -2158,2158 +2219,2219 @@
 2178   2178   
                            <
 2179   2179   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2180   2180   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2181   2181   
                                    JsonRpc10<L>,
 2182   2182   
                                    crate::operation_shape::QueryIncompatibleOperation,
 2183   2183   
                                    ModelPl::Output
 2184   2184   
                                >
 2185   2185   
                            >::Output
 2186   2186   
                        >,
 2187   2187   
 2188         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2189         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2188  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2189  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2190   2190   
 2191   2191   
                    {
 2192   2192   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2193   2193   
        use ::aws_smithy_http_server::plugin::Plugin;
 2194   2194   
        let svc = crate::operation_shape::QueryIncompatibleOperation::from_handler(handler);
 2195   2195   
        let svc = self.model_plugin.apply(svc);
 2196   2196   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2197   2197   
            .apply(svc);
 2198   2198   
        let svc = self.http_plugin.apply(svc);
 2199   2199   
        self.query_incompatible_operation_custom(svc)
@@ -2225,2225 +2305,2305 @@
 2245   2245   
                            <
 2246   2246   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2247   2247   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2248   2248   
                                    JsonRpc10<L>,
 2249   2249   
                                    crate::operation_shape::QueryIncompatibleOperation,
 2250   2250   
                                    ModelPl::Output
 2251   2251   
                                >
 2252   2252   
                            >::Output
 2253   2253   
                        >,
 2254   2254   
 2255         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2256         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2255  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2256  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2257   2257   
 2258   2258   
                    {
 2259   2259   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2260   2260   
        use ::aws_smithy_http_server::plugin::Plugin;
 2261   2261   
        let svc = crate::operation_shape::QueryIncompatibleOperation::from_service(service);
 2262   2262   
        let svc = self.model_plugin.apply(svc);
 2263   2263   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2264   2264   
            .apply(svc);
 2265   2265   
        let svc = self.http_plugin.apply(svc);
 2266   2266   
        self.query_incompatible_operation_custom(svc)
 2267   2267   
    }
 2268   2268   
 2269   2269   
    /// Sets the [`QueryIncompatibleOperation`](crate::operation_shape::QueryIncompatibleOperation) to a custom [`Service`](tower::Service).
 2270   2270   
    /// not constrained by the Smithy contract.
 2271   2271   
    fn query_incompatible_operation_custom<S>(mut self, svc: S) -> Self
 2272   2272   
    where
 2273   2273   
        S: ::tower::Service<
 2274         -
                ::http::Request<Body>,
 2275         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2274  +
                ::http_1x::Request<Body>,
        2275  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 2276   2276   
                Error = ::std::convert::Infallible,
 2277   2277   
            > + Clone
 2278   2278   
            + Send
 2279   2279   
            + 'static,
 2280   2280   
        S::Future: Send + 'static,
 2281   2281   
    {
 2282   2282   
        self.query_incompatible_operation =
 2283   2283   
            Some(::aws_smithy_http_server::routing::Route::new(svc));
 2284   2284   
        self
 2285   2285   
    }
@@ -2309,2309 +2370,2370 @@
 2329   2329   
                            <
 2330   2330   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2331   2331   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2332   2332   
                                    JsonRpc10<L>,
 2333   2333   
                                    crate::operation_shape::SimpleScalarProperties,
 2334   2334   
                                    ModelPl::Output
 2335   2335   
                                >
 2336   2336   
                            >::Output
 2337   2337   
                        >,
 2338   2338   
 2339         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2340         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2339  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2340  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2341   2341   
 2342   2342   
                    {
 2343   2343   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2344   2344   
        use ::aws_smithy_http_server::plugin::Plugin;
 2345   2345   
        let svc = crate::operation_shape::SimpleScalarProperties::from_handler(handler);
 2346   2346   
        let svc = self.model_plugin.apply(svc);
 2347   2347   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2348   2348   
            .apply(svc);
 2349   2349   
        let svc = self.http_plugin.apply(svc);
 2350   2350   
        self.simple_scalar_properties_custom(svc)
@@ -2376,2376 +2456,2456 @@
 2396   2396   
                            <
 2397   2397   
                                ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>
 2398   2398   
                                as ::aws_smithy_http_server::plugin::Plugin<
 2399   2399   
                                    JsonRpc10<L>,
 2400   2400   
                                    crate::operation_shape::SimpleScalarProperties,
 2401   2401   
                                    ModelPl::Output
 2402   2402   
                                >
 2403   2403   
                            >::Output
 2404   2404   
                        >,
 2405   2405   
 2406         -
                        HttpPl::Output: ::tower::Service<::http::Request<Body>, Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
 2407         -
                        <HttpPl::Output as ::tower::Service<::http::Request<Body>>>::Future: Send + 'static,
        2406  +
                        HttpPl::Output: ::tower::Service<::http_1x::Request<Body>, Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>, Error = ::std::convert::Infallible> + Clone + Send + 'static,
        2407  +
                        <HttpPl::Output as ::tower::Service<::http_1x::Request<Body>>>::Future: Send + 'static,
 2408   2408   
 2409   2409   
                    {
 2410   2410   
        use ::aws_smithy_http_server::operation::OperationShapeExt;
 2411   2411   
        use ::aws_smithy_http_server::plugin::Plugin;
 2412   2412   
        let svc = crate::operation_shape::SimpleScalarProperties::from_service(service);
 2413   2413   
        let svc = self.model_plugin.apply(svc);
 2414   2414   
        let svc = ::aws_smithy_http_server::operation::UpgradePlugin::<UpgradeExtractors>::new()
 2415   2415   
            .apply(svc);
 2416   2416   
        let svc = self.http_plugin.apply(svc);
 2417   2417   
        self.simple_scalar_properties_custom(svc)
 2418   2418   
    }
 2419   2419   
 2420   2420   
    /// Sets the [`SimpleScalarProperties`](crate::operation_shape::SimpleScalarProperties) to a custom [`Service`](tower::Service).
 2421   2421   
    /// not constrained by the Smithy contract.
 2422   2422   
    fn simple_scalar_properties_custom<S>(mut self, svc: S) -> Self
 2423   2423   
    where
 2424   2424   
        S: ::tower::Service<
 2425         -
                ::http::Request<Body>,
 2426         -
                Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        2425  +
                ::http_1x::Request<Body>,
        2426  +
                Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 2427   2427   
                Error = ::std::convert::Infallible,
 2428   2428   
            > + Clone
 2429   2429   
            + Send
 2430   2430   
            + 'static,
 2431   2431   
        S::Future: Send + 'static,
 2432   2432   
    {
 2433   2433   
        self.simple_scalar_properties = Some(::aws_smithy_http_server::routing::Route::new(svc));
 2434   2434   
        self
 2435   2435   
    }
 2436   2436   
}
@@ -3041,3041 +3102,3102 @@
 3061   3061   
    ) -> JsonRpc10<
 3062   3062   
        ::aws_smithy_http_server::routing::RoutingService<
 3063   3063   
            ::aws_smithy_http_server::protocol::aws_json::router::AwsJsonRouter<
 3064   3064   
                ::aws_smithy_http_server::routing::Route<B>,
 3065   3065   
            >,
 3066   3066   
            ::aws_smithy_http_server::protocol::aws_json_10::AwsJson1_0,
 3067   3067   
        >,
 3068   3068   
    >
 3069   3069   
    where
 3070   3070   
        S: ::tower::Service<
 3071         -
            ::http::Request<B>,
 3072         -
            Response = ::http::Response<::aws_smithy_http_server::body::BoxBody>,
        3071  +
            ::http_1x::Request<B>,
        3072  +
            Response = ::http_1x::Response<::aws_smithy_http_server::body::BoxBody>,
 3073   3073   
            Error = std::convert::Infallible,
 3074   3074   
        >,
 3075   3075   
        S: Clone + Send + 'static,
 3076   3076   
        S::Future: Send + 'static,
 3077   3077   
    {
 3078   3078   
        self.layer(&::tower::layer::layer_fn(
 3079   3079   
            ::aws_smithy_http_server::routing::Route::new,
 3080   3080   
        ))
 3081   3081   
    }
 3082   3082   
}

tmp-codegen-diff/codegen-server-test/json_rpc11-http0x/rust-server-codegen/Cargo.toml

@@ -0,1 +0,56 @@
           1  +
# Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
[package]
           3  +
name = "json_rpc11-http0x"
           4  +
version = "0.0.1"
           5  +
authors = ["protocoltest@example.com"]
           6  +
description = "test"
           7  +
edition = "2021"
           8  +
           9  +
[package.metadata.smithy]
          10  +
codegen-version = "ci"
          11  +
protocol = "aws.protocols#awsJson1_1"
          12  +
[dependencies.aws-smithy-json]
          13  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-json"
          14  +
[dependencies.aws-smithy-legacy-http]
          15  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-legacy-http"
          16  +
[dependencies.aws-smithy-legacy-http-server]
          17  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-legacy-http-server"
          18  +
[dependencies.aws-smithy-runtime-api]
          19  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-runtime-api"
          20  +
features = ["http-02x"]
          21  +
[dependencies.aws-smithy-types]
          22  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-types"
          23  +
features = ["http-body-0-4-x"]
          24  +
[dependencies.futures-util]
          25  +
version = "0.3"
          26  +
[dependencies.http]
          27  +
version = "0.2.9"
          28  +
[dependencies.hyper]
          29  +
version = "0.14.26"
          30  +
[dependencies.mime]
          31  +
version = "0.3"
          32  +
[dependencies.pin-project-lite]
          33  +
version = "0.2"
          34  +
[dependencies.tower]
          35  +
version = "0.4"
          36  +
[dependencies.tracing]
          37  +
version = "0.1"
          38  +
[dev-dependencies.aws-smithy-protocol-test]
          39  +
path = "/home/build/workspace/smithy-rs/rust-runtime/aws-smithy-protocol-test"
          40  +
[dev-dependencies.bytes]
          41  +
version = "1.4.0"
          42  +
[dev-dependencies.pretty_assertions]
          43  +
version = "1.3.0"
          44  +
[dev-dependencies.tokio]
          45  +
version = "1.23.1"
          46  +
features = ["macros", "test-util", "rt-multi-thread"]
          47  +
[dev-dependencies.tracing-test]
          48  +
version = "0.2.5"
          49  +
features = ["no-env-filter"]
          50  +
[features]
          51  +
rt-tokio = ["aws-smithy-types/rt-tokio"]
          52  +
aws-lambda = ["aws-smithy-legacy-http-server/aws-lambda"]
          53  +
request-id = ["aws-smithy-legacy-http-server/request-id"]
          54  +
default = ["rt-tokio", "request-id"]
          55  +
          56  +

tmp-codegen-diff/codegen-server-test/json_rpc11-http0x/rust-server-codegen/src/constrained.rs

@@ -0,1 +0,70 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
pub(crate) mod foo_enum_map_constrained {
           4  +
           5  +
    #[derive(Debug, Clone)]
           6  +
    pub(crate) struct FooEnumMapConstrained(
           7  +
        pub(crate) std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
           8  +
    );
           9  +
          10  +
    impl crate::constrained::Constrained for FooEnumMapConstrained {
          11  +
        type Unconstrained =
          12  +
            crate::unconstrained::foo_enum_map_unconstrained::FooEnumMapUnconstrained;
          13  +
    }
          14  +
    impl
          15  +
        ::std::convert::From<
          16  +
            ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
          17  +
        > for FooEnumMapConstrained
          18  +
    {
          19  +
        fn from(
          20  +
            v: ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
          21  +
        ) -> Self {
          22  +
            Self(v)
          23  +
        }
          24  +
    }
          25  +
          26  +
    impl ::std::convert::From<FooEnumMapConstrained>
          27  +
        for ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>
          28  +
    {
          29  +
        fn from(v: FooEnumMapConstrained) -> Self {
          30  +
            v.0
          31  +
        }
          32  +
    }
          33  +
}
          34  +
pub(crate) mod foo_enum_list_constrained {
          35  +
          36  +
    #[derive(Debug, Clone)]
          37  +
    pub(crate) struct FooEnumListConstrained(pub(crate) std::vec::Vec<crate::model::FooEnum>);
          38  +
          39  +
    impl crate::constrained::Constrained for FooEnumListConstrained {
          40  +
        type Unconstrained =
          41  +
            crate::unconstrained::foo_enum_list_unconstrained::FooEnumListUnconstrained;
          42  +
    }
          43  +
    impl ::std::convert::From<::std::vec::Vec<crate::model::FooEnum>> for FooEnumListConstrained {
          44  +
        fn from(v: ::std::vec::Vec<crate::model::FooEnum>) -> Self {
          45  +
            Self(v)
          46  +
        }
          47  +
    }
          48  +
          49  +
    impl ::std::convert::From<FooEnumListConstrained> for ::std::vec::Vec<crate::model::FooEnum> {
          50  +
        fn from(v: FooEnumListConstrained) -> Self {
          51  +
            v.0
          52  +
        }
          53  +
    }
          54  +
}
          55  +
          56  +
/*
          57  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
          58  +
 * SPDX-License-Identifier: Apache-2.0
          59  +
 */
          60  +
          61  +
pub(crate) trait Constrained {
          62  +
    type Unconstrained;
          63  +
}
          64  +
          65  +
#[derive(Debug, Clone)]
          66  +
#[allow(dead_code)]
          67  +
pub(crate) enum MaybeConstrained<T: Constrained> {
          68  +
    Constrained(T),
          69  +
    Unconstrained(T::Unconstrained),
          70  +
}

tmp-codegen-diff/codegen-server-test/json_rpc11-http0x/rust-server-codegen/src/error.rs

@@ -0,1 +0,805 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// Error type for the `EndpointWithHostLabelOperation` operation.
           4  +
/// Each variant represents an error that can occur for the `EndpointWithHostLabelOperation` operation.
           5  +
#[derive(::std::fmt::Debug)]
           6  +
pub enum EndpointWithHostLabelOperationError {
           7  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
           8  +
    ValidationException(crate::error::ValidationException),
           9  +
}
          10  +
impl ::std::fmt::Display for EndpointWithHostLabelOperationError {
          11  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
          12  +
        match &self {
          13  +
            EndpointWithHostLabelOperationError::ValidationException(_inner) => _inner.fmt(f),
          14  +
        }
          15  +
    }
          16  +
}
          17  +
impl EndpointWithHostLabelOperationError {
          18  +
    /// Returns `true` if the error kind is `EndpointWithHostLabelOperationError::ValidationException`.
          19  +
    pub fn is_validation_exception(&self) -> bool {
          20  +
        matches!(
          21  +
            &self,
          22  +
            EndpointWithHostLabelOperationError::ValidationException(_)
          23  +
        )
          24  +
    }
          25  +
    /// Returns the error name string by matching the correct variant.
          26  +
    pub fn name(&self) -> &'static str {
          27  +
        match &self {
          28  +
            EndpointWithHostLabelOperationError::ValidationException(_inner) => _inner.name(),
          29  +
        }
          30  +
    }
          31  +
}
          32  +
impl ::std::error::Error for EndpointWithHostLabelOperationError {
          33  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
          34  +
        match &self {
          35  +
            EndpointWithHostLabelOperationError::ValidationException(_inner) => Some(_inner),
          36  +
        }
          37  +
    }
          38  +
}
          39  +
impl ::std::convert::From<crate::error::ValidationException>
          40  +
    for crate::error::EndpointWithHostLabelOperationError
          41  +
{
          42  +
    fn from(
          43  +
        variant: crate::error::ValidationException,
          44  +
    ) -> crate::error::EndpointWithHostLabelOperationError {
          45  +
        Self::ValidationException(variant)
          46  +
    }
          47  +
}
          48  +
          49  +
/// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
          50  +
#[derive(
          51  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          52  +
)]
          53  +
pub struct ValidationException {
          54  +
    /// A summary of the validation failure.
          55  +
    pub message: ::std::string::String,
          56  +
    /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
          57  +
    pub field_list: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
          58  +
}
          59  +
impl ValidationException {
          60  +
    /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
          61  +
    pub fn field_list(&self) -> ::std::option::Option<&[crate::model::ValidationExceptionField]> {
          62  +
        self.field_list.as_deref()
          63  +
    }
          64  +
}
          65  +
impl ValidationException {
          66  +
    /// Returns the error message.
          67  +
    pub fn message(&self) -> &str {
          68  +
        &self.message
          69  +
    }
          70  +
    #[doc(hidden)]
          71  +
    /// Returns the error name.
          72  +
    pub fn name(&self) -> &'static str {
          73  +
        "ValidationException"
          74  +
    }
          75  +
}
          76  +
impl ::std::fmt::Display for ValidationException {
          77  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
          78  +
        ::std::write!(f, "ValidationException")?;
          79  +
        {
          80  +
            ::std::write!(f, ": {}", &self.message)?;
          81  +
        }
          82  +
        Ok(())
          83  +
    }
          84  +
}
          85  +
impl ::std::error::Error for ValidationException {}
          86  +
impl ValidationException {
          87  +
    /// Creates a new builder-style object to manufacture [`ValidationException`](crate::error::ValidationException).
          88  +
    pub fn builder() -> crate::error::validation_exception::Builder {
          89  +
        crate::error::validation_exception::Builder::default()
          90  +
    }
          91  +
}
          92  +
          93  +
/// Error type for the `JsonUnions` operation.
          94  +
/// Each variant represents an error that can occur for the `JsonUnions` operation.
          95  +
#[derive(::std::fmt::Debug)]
          96  +
pub enum JsonUnionsError {
          97  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
          98  +
    ValidationException(crate::error::ValidationException),
          99  +
}
         100  +
impl ::std::fmt::Display for JsonUnionsError {
         101  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         102  +
        match &self {
         103  +
            JsonUnionsError::ValidationException(_inner) => _inner.fmt(f),
         104  +
        }
         105  +
    }
         106  +
}
         107  +
impl JsonUnionsError {
         108  +
    /// Returns `true` if the error kind is `JsonUnionsError::ValidationException`.
         109  +
    pub fn is_validation_exception(&self) -> bool {
         110  +
        matches!(&self, JsonUnionsError::ValidationException(_))
         111  +
    }
         112  +
    /// Returns the error name string by matching the correct variant.
         113  +
    pub fn name(&self) -> &'static str {
         114  +
        match &self {
         115  +
            JsonUnionsError::ValidationException(_inner) => _inner.name(),
         116  +
        }
         117  +
    }
         118  +
}
         119  +
impl ::std::error::Error for JsonUnionsError {
         120  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         121  +
        match &self {
         122  +
            JsonUnionsError::ValidationException(_inner) => Some(_inner),
         123  +
        }
         124  +
    }
         125  +
}
         126  +
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonUnionsError {
         127  +
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonUnionsError {
         128  +
        Self::ValidationException(variant)
         129  +
    }
         130  +
}
         131  +
         132  +
/// Error type for the `GreetingWithErrors` operation.
         133  +
/// Each variant represents an error that can occur for the `GreetingWithErrors` operation.
         134  +
#[derive(::std::fmt::Debug)]
         135  +
pub enum GreetingWithErrorsError {
         136  +
    /// This error is thrown when an invalid greeting value is provided.
         137  +
    InvalidGreeting(crate::error::InvalidGreeting),
         138  +
    /// This error is thrown when a request is invalid.
         139  +
    ComplexError(crate::error::ComplexError),
         140  +
    /// This error has test cases that test some of the dark corners of Amazon service framework history. It should only be implemented by clients.
         141  +
    FooError(crate::error::FooError),
         142  +
}
         143  +
impl ::std::fmt::Display for GreetingWithErrorsError {
         144  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         145  +
        match &self {
         146  +
            GreetingWithErrorsError::InvalidGreeting(_inner) => _inner.fmt(f),
         147  +
            GreetingWithErrorsError::ComplexError(_inner) => _inner.fmt(f),
         148  +
            GreetingWithErrorsError::FooError(_inner) => _inner.fmt(f),
         149  +
        }
         150  +
    }
         151  +
}
         152  +
impl GreetingWithErrorsError {
         153  +
    /// Returns `true` if the error kind is `GreetingWithErrorsError::InvalidGreeting`.
         154  +
    pub fn is_invalid_greeting(&self) -> bool {
         155  +
        matches!(&self, GreetingWithErrorsError::InvalidGreeting(_))
         156  +
    }
         157  +
    /// Returns `true` if the error kind is `GreetingWithErrorsError::ComplexError`.
         158  +
    pub fn is_complex_error(&self) -> bool {
         159  +
        matches!(&self, GreetingWithErrorsError::ComplexError(_))
         160  +
    }
         161  +
    /// Returns `true` if the error kind is `GreetingWithErrorsError::FooError`.
         162  +
    pub fn is_foo_error(&self) -> bool {
         163  +
        matches!(&self, GreetingWithErrorsError::FooError(_))
         164  +
    }
         165  +
    /// Returns the error name string by matching the correct variant.
         166  +
    pub fn name(&self) -> &'static str {
         167  +
        match &self {
         168  +
            GreetingWithErrorsError::InvalidGreeting(_inner) => _inner.name(),
         169  +
            GreetingWithErrorsError::ComplexError(_inner) => _inner.name(),
         170  +
            GreetingWithErrorsError::FooError(_inner) => _inner.name(),
         171  +
        }
         172  +
    }
         173  +
}
         174  +
impl ::std::error::Error for GreetingWithErrorsError {
         175  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         176  +
        match &self {
         177  +
            GreetingWithErrorsError::InvalidGreeting(_inner) => Some(_inner),
         178  +
            GreetingWithErrorsError::ComplexError(_inner) => Some(_inner),
         179  +
            GreetingWithErrorsError::FooError(_inner) => Some(_inner),
         180  +
        }
         181  +
    }
         182  +
}
         183  +
impl ::std::convert::From<crate::error::InvalidGreeting> for crate::error::GreetingWithErrorsError {
         184  +
    fn from(variant: crate::error::InvalidGreeting) -> crate::error::GreetingWithErrorsError {
         185  +
        Self::InvalidGreeting(variant)
         186  +
    }
         187  +
}
         188  +
impl ::std::convert::From<crate::error::ComplexError> for crate::error::GreetingWithErrorsError {
         189  +
    fn from(variant: crate::error::ComplexError) -> crate::error::GreetingWithErrorsError {
         190  +
        Self::ComplexError(variant)
         191  +
    }
         192  +
}
         193  +
impl ::std::convert::From<crate::error::FooError> for crate::error::GreetingWithErrorsError {
         194  +
    fn from(variant: crate::error::FooError) -> crate::error::GreetingWithErrorsError {
         195  +
        Self::FooError(variant)
         196  +
    }
         197  +
}
         198  +
         199  +
/// This error has test cases that test some of the dark corners of Amazon service framework history. It should only be implemented by clients.
         200  +
#[derive(
         201  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         202  +
)]
         203  +
pub struct FooError {}
         204  +
impl FooError {
         205  +
    #[doc(hidden)]
         206  +
    /// Returns the error name.
         207  +
    pub fn name(&self) -> &'static str {
         208  +
        "FooError"
         209  +
    }
         210  +
}
         211  +
impl ::std::fmt::Display for FooError {
         212  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         213  +
        ::std::write!(f, "FooError")?;
         214  +
        Ok(())
         215  +
    }
         216  +
}
         217  +
impl ::std::error::Error for FooError {}
         218  +
impl FooError {
         219  +
    /// Creates a new builder-style object to manufacture [`FooError`](crate::error::FooError).
         220  +
    pub fn builder() -> crate::error::foo_error::Builder {
         221  +
        crate::error::foo_error::Builder::default()
         222  +
    }
         223  +
}
         224  +
         225  +
/// This error is thrown when a request is invalid.
         226  +
#[derive(
         227  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         228  +
)]
         229  +
pub struct ComplexError {
         230  +
    #[allow(missing_docs)] // documentation missing in model
         231  +
    pub top_level: ::std::option::Option<::std::string::String>,
         232  +
    #[allow(missing_docs)] // documentation missing in model
         233  +
    pub nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
         234  +
}
         235  +
impl ComplexError {
         236  +
    #[allow(missing_docs)] // documentation missing in model
         237  +
    pub fn top_level(&self) -> ::std::option::Option<&str> {
         238  +
        self.top_level.as_deref()
         239  +
    }
         240  +
    #[allow(missing_docs)] // documentation missing in model
         241  +
    pub fn nested(&self) -> ::std::option::Option<&crate::model::ComplexNestedErrorData> {
         242  +
        self.nested.as_ref()
         243  +
    }
         244  +
}
         245  +
impl ComplexError {
         246  +
    #[doc(hidden)]
         247  +
    /// Returns the error name.
         248  +
    pub fn name(&self) -> &'static str {
         249  +
        "ComplexError"
         250  +
    }
         251  +
}
         252  +
impl ::std::fmt::Display for ComplexError {
         253  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         254  +
        ::std::write!(f, "ComplexError")?;
         255  +
        Ok(())
         256  +
    }
         257  +
}
         258  +
impl ::std::error::Error for ComplexError {}
         259  +
impl ComplexError {
         260  +
    /// Creates a new builder-style object to manufacture [`ComplexError`](crate::error::ComplexError).
         261  +
    pub fn builder() -> crate::error::complex_error::Builder {
         262  +
        crate::error::complex_error::Builder::default()
         263  +
    }
         264  +
}
         265  +
         266  +
/// This error is thrown when an invalid greeting value is provided.
         267  +
#[derive(
         268  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         269  +
)]
         270  +
pub struct InvalidGreeting {
         271  +
    #[allow(missing_docs)] // documentation missing in model
         272  +
    pub message: ::std::option::Option<::std::string::String>,
         273  +
}
         274  +
impl InvalidGreeting {
         275  +
    /// Returns the error message.
         276  +
    pub fn message(&self) -> ::std::option::Option<&str> {
         277  +
        self.message.as_deref()
         278  +
    }
         279  +
    #[doc(hidden)]
         280  +
    /// Returns the error name.
         281  +
    pub fn name(&self) -> &'static str {
         282  +
        "InvalidGreeting"
         283  +
    }
         284  +
}
         285  +
impl ::std::fmt::Display for InvalidGreeting {
         286  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         287  +
        ::std::write!(f, "InvalidGreeting")?;
         288  +
        if let ::std::option::Option::Some(inner_1) = &self.message {
         289  +
            {
         290  +
                ::std::write!(f, ": {inner_1}")?;
         291  +
            }
         292  +
        }
         293  +
        Ok(())
         294  +
    }
         295  +
}
         296  +
impl ::std::error::Error for InvalidGreeting {}
         297  +
impl InvalidGreeting {
         298  +
    /// Creates a new builder-style object to manufacture [`InvalidGreeting`](crate::error::InvalidGreeting).
         299  +
    pub fn builder() -> crate::error::invalid_greeting::Builder {
         300  +
        crate::error::invalid_greeting::Builder::default()
         301  +
    }
         302  +
}
         303  +
         304  +
/// Error type for the `JsonIntEnums` operation.
         305  +
/// Each variant represents an error that can occur for the `JsonIntEnums` operation.
         306  +
#[derive(::std::fmt::Debug)]
         307  +
pub enum JsonIntEnumsError {
         308  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         309  +
    ValidationException(crate::error::ValidationException),
         310  +
}
         311  +
impl ::std::fmt::Display for JsonIntEnumsError {
         312  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         313  +
        match &self {
         314  +
            JsonIntEnumsError::ValidationException(_inner) => _inner.fmt(f),
         315  +
        }
         316  +
    }
         317  +
}
         318  +
impl JsonIntEnumsError {
         319  +
    /// Returns `true` if the error kind is `JsonIntEnumsError::ValidationException`.
         320  +
    pub fn is_validation_exception(&self) -> bool {
         321  +
        matches!(&self, JsonIntEnumsError::ValidationException(_))
         322  +
    }
         323  +
    /// Returns the error name string by matching the correct variant.
         324  +
    pub fn name(&self) -> &'static str {
         325  +
        match &self {
         326  +
            JsonIntEnumsError::ValidationException(_inner) => _inner.name(),
         327  +
        }
         328  +
    }
         329  +
}
         330  +
impl ::std::error::Error for JsonIntEnumsError {
         331  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         332  +
        match &self {
         333  +
            JsonIntEnumsError::ValidationException(_inner) => Some(_inner),
         334  +
        }
         335  +
    }
         336  +
}
         337  +
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonIntEnumsError {
         338  +
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonIntEnumsError {
         339  +
        Self::ValidationException(variant)
         340  +
    }
         341  +
}
         342  +
         343  +
/// Error type for the `JsonEnums` operation.
         344  +
/// Each variant represents an error that can occur for the `JsonEnums` operation.
         345  +
#[derive(::std::fmt::Debug)]
         346  +
pub enum JsonEnumsError {
         347  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         348  +
    ValidationException(crate::error::ValidationException),
         349  +
}
         350  +
impl ::std::fmt::Display for JsonEnumsError {
         351  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         352  +
        match &self {
         353  +
            JsonEnumsError::ValidationException(_inner) => _inner.fmt(f),
         354  +
        }
         355  +
    }
         356  +
}
         357  +
impl JsonEnumsError {
         358  +
    /// Returns `true` if the error kind is `JsonEnumsError::ValidationException`.
         359  +
    pub fn is_validation_exception(&self) -> bool {
         360  +
        matches!(&self, JsonEnumsError::ValidationException(_))
         361  +
    }
         362  +
    /// Returns the error name string by matching the correct variant.
         363  +
    pub fn name(&self) -> &'static str {
         364  +
        match &self {
         365  +
            JsonEnumsError::ValidationException(_inner) => _inner.name(),
         366  +
        }
         367  +
    }
         368  +
}
         369  +
impl ::std::error::Error for JsonEnumsError {
         370  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         371  +
        match &self {
         372  +
            JsonEnumsError::ValidationException(_inner) => Some(_inner),
         373  +
        }
         374  +
    }
         375  +
}
         376  +
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonEnumsError {
         377  +
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonEnumsError {
         378  +
        Self::ValidationException(variant)
         379  +
    }
         380  +
}
         381  +
         382  +
/// Error type for the `KitchenSinkOperation` operation.
         383  +
/// Each variant represents an error that can occur for the `KitchenSinkOperation` operation.
         384  +
#[derive(::std::fmt::Debug)]
         385  +
pub enum KitchenSinkOperationError {
         386  +
    #[allow(missing_docs)] // documentation missing in model
         387  +
    ErrorWithMembers(crate::error::ErrorWithMembers),
         388  +
    #[allow(missing_docs)] // documentation missing in model
         389  +
    ErrorWithoutMembers(crate::error::ErrorWithoutMembers),
         390  +
}
         391  +
impl ::std::fmt::Display for KitchenSinkOperationError {
         392  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         393  +
        match &self {
         394  +
            KitchenSinkOperationError::ErrorWithMembers(_inner) => _inner.fmt(f),
         395  +
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => _inner.fmt(f),
         396  +
        }
         397  +
    }
         398  +
}
         399  +
impl KitchenSinkOperationError {
         400  +
    /// Returns `true` if the error kind is `KitchenSinkOperationError::ErrorWithMembers`.
         401  +
    pub fn is_error_with_members(&self) -> bool {
         402  +
        matches!(&self, KitchenSinkOperationError::ErrorWithMembers(_))
         403  +
    }
         404  +
    /// Returns `true` if the error kind is `KitchenSinkOperationError::ErrorWithoutMembers`.
         405  +
    pub fn is_error_without_members(&self) -> bool {
         406  +
        matches!(&self, KitchenSinkOperationError::ErrorWithoutMembers(_))
         407  +
    }
         408  +
    /// Returns the error name string by matching the correct variant.
         409  +
    pub fn name(&self) -> &'static str {
         410  +
        match &self {
         411  +
            KitchenSinkOperationError::ErrorWithMembers(_inner) => _inner.name(),
         412  +
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => _inner.name(),
         413  +
        }
         414  +
    }
         415  +
}
         416  +
impl ::std::error::Error for KitchenSinkOperationError {
         417  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         418  +
        match &self {
         419  +
            KitchenSinkOperationError::ErrorWithMembers(_inner) => Some(_inner),
         420  +
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => Some(_inner),
         421  +
        }
         422  +
    }
         423  +
}
         424  +
impl ::std::convert::From<crate::error::ErrorWithMembers>
         425  +
    for crate::error::KitchenSinkOperationError
         426  +
{
         427  +
    fn from(variant: crate::error::ErrorWithMembers) -> crate::error::KitchenSinkOperationError {
         428  +
        Self::ErrorWithMembers(variant)
         429  +
    }
         430  +
}
         431  +
impl ::std::convert::From<crate::error::ErrorWithoutMembers>
         432  +
    for crate::error::KitchenSinkOperationError
         433  +
{
         434  +
    fn from(variant: crate::error::ErrorWithoutMembers) -> crate::error::KitchenSinkOperationError {
         435  +
        Self::ErrorWithoutMembers(variant)
         436  +
    }
         437  +
}
         438  +
         439  +
#[allow(missing_docs)] // documentation missing in model
         440  +
#[derive(
         441  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         442  +
)]
         443  +
pub struct ErrorWithoutMembers {}
         444  +
impl ErrorWithoutMembers {
         445  +
    #[doc(hidden)]
         446  +
    /// Returns the error name.
         447  +
    pub fn name(&self) -> &'static str {
         448  +
        "ErrorWithoutMembers"
         449  +
    }
         450  +
}
         451  +
impl ::std::fmt::Display for ErrorWithoutMembers {
         452  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         453  +
        ::std::write!(f, "ErrorWithoutMembers")?;
         454  +
        Ok(())
         455  +
    }
         456  +
}
         457  +
impl ::std::error::Error for ErrorWithoutMembers {}
         458  +
impl ErrorWithoutMembers {
         459  +
    /// Creates a new builder-style object to manufacture [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         460  +
    pub fn builder() -> crate::error::error_without_members::Builder {
         461  +
        crate::error::error_without_members::Builder::default()
         462  +
    }
         463  +
}
         464  +
         465  +
#[allow(missing_docs)] // documentation missing in model
         466  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         467  +
pub struct ErrorWithMembers {
         468  +
    #[allow(missing_docs)] // documentation missing in model
         469  +
    pub code: ::std::option::Option<::std::string::String>,
         470  +
    #[allow(missing_docs)] // documentation missing in model
         471  +
    pub complex_data: ::std::option::Option<crate::model::KitchenSink>,
         472  +
    #[allow(missing_docs)] // documentation missing in model
         473  +
    pub integer_field: ::std::option::Option<i32>,
         474  +
    #[allow(missing_docs)] // documentation missing in model
         475  +
    pub list_field: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         476  +
    #[allow(missing_docs)] // documentation missing in model
         477  +
    pub map_field: ::std::option::Option<
         478  +
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         479  +
    >,
         480  +
    #[allow(missing_docs)] // documentation missing in model
         481  +
    pub message: ::std::option::Option<::std::string::String>,
         482  +
    /// abc
         483  +
    pub string_field: ::std::option::Option<::std::string::String>,
         484  +
}
         485  +
impl ErrorWithMembers {
         486  +
    #[allow(missing_docs)] // documentation missing in model
         487  +
    pub fn code(&self) -> ::std::option::Option<&str> {
         488  +
        self.code.as_deref()
         489  +
    }
         490  +
    #[allow(missing_docs)] // documentation missing in model
         491  +
    pub fn complex_data(&self) -> ::std::option::Option<&crate::model::KitchenSink> {
         492  +
        self.complex_data.as_ref()
         493  +
    }
         494  +
    #[allow(missing_docs)] // documentation missing in model
         495  +
    pub fn integer_field(&self) -> ::std::option::Option<i32> {
         496  +
        self.integer_field
         497  +
    }
         498  +
    #[allow(missing_docs)] // documentation missing in model
         499  +
    pub fn list_field(&self) -> ::std::option::Option<&[::std::string::String]> {
         500  +
        self.list_field.as_deref()
         501  +
    }
         502  +
    #[allow(missing_docs)] // documentation missing in model
         503  +
    pub fn map_field(
         504  +
        &self,
         505  +
    ) -> ::std::option::Option<
         506  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
         507  +
    > {
         508  +
        self.map_field.as_ref()
         509  +
    }
         510  +
    /// abc
         511  +
    pub fn string_field(&self) -> ::std::option::Option<&str> {
         512  +
        self.string_field.as_deref()
         513  +
    }
         514  +
}
         515  +
impl ErrorWithMembers {
         516  +
    /// Returns the error message.
         517  +
    pub fn message(&self) -> ::std::option::Option<&str> {
         518  +
        self.message.as_deref()
         519  +
    }
         520  +
    #[doc(hidden)]
         521  +
    /// Returns the error name.
         522  +
    pub fn name(&self) -> &'static str {
         523  +
        "ErrorWithMembers"
         524  +
    }
         525  +
}
         526  +
impl ::std::fmt::Display for ErrorWithMembers {
         527  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         528  +
        ::std::write!(f, "ErrorWithMembers")?;
         529  +
        if let ::std::option::Option::Some(inner_2) = &self.message {
         530  +
            {
         531  +
                ::std::write!(f, ": {inner_2}")?;
         532  +
            }
         533  +
        }
         534  +
        Ok(())
         535  +
    }
         536  +
}
         537  +
impl ::std::error::Error for ErrorWithMembers {}
         538  +
impl ErrorWithMembers {
         539  +
    /// Creates a new builder-style object to manufacture [`ErrorWithMembers`](crate::error::ErrorWithMembers).
         540  +
    pub fn builder() -> crate::error::error_with_members::Builder {
         541  +
        crate::error::error_with_members::Builder::default()
         542  +
    }
         543  +
}
         544  +
         545  +
/// See [`ValidationException`](crate::error::ValidationException).
         546  +
pub mod validation_exception {
         547  +
         548  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
         549  +
    /// Holds one variant for each of the ways the builder can fail.
         550  +
    #[non_exhaustive]
         551  +
    #[allow(clippy::enum_variant_names)]
         552  +
    pub enum ConstraintViolation {
         553  +
        /// `message` was not provided but it is required when building `ValidationException`.
         554  +
        MissingMessage,
         555  +
    }
         556  +
    impl ::std::fmt::Display for ConstraintViolation {
         557  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         558  +
            match self {
         559  +
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationException`"),
         560  +
            }
         561  +
        }
         562  +
    }
         563  +
    impl ::std::error::Error for ConstraintViolation {}
         564  +
    impl ::std::convert::TryFrom<Builder> for crate::error::ValidationException {
         565  +
        type Error = ConstraintViolation;
         566  +
         567  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
         568  +
            builder.build()
         569  +
        }
         570  +
    }
         571  +
    /// A builder for [`ValidationException`](crate::error::ValidationException).
         572  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         573  +
    pub struct Builder {
         574  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
         575  +
        pub(crate) field_list:
         576  +
            ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
         577  +
    }
         578  +
    impl Builder {
         579  +
        /// A summary of the validation failure.
         580  +
        pub fn message(mut self, input: ::std::string::String) -> Self {
         581  +
            self.message = Some(input);
         582  +
            self
         583  +
        }
         584  +
        /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
         585  +
        pub fn field_list(
         586  +
            mut self,
         587  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
         588  +
        ) -> Self {
         589  +
            self.field_list = input;
         590  +
            self
         591  +
        }
         592  +
        /// Consumes the builder and constructs a [`ValidationException`](crate::error::ValidationException).
         593  +
        ///
         594  +
        /// The builder fails to construct a [`ValidationException`](crate::error::ValidationException) if a [`ConstraintViolation`] occurs.
         595  +
        ///
         596  +
        pub fn build(self) -> Result<crate::error::ValidationException, ConstraintViolation> {
         597  +
            self.build_enforcing_all_constraints()
         598  +
        }
         599  +
        fn build_enforcing_all_constraints(
         600  +
            self,
         601  +
        ) -> Result<crate::error::ValidationException, ConstraintViolation> {
         602  +
            Ok(crate::error::ValidationException {
         603  +
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
         604  +
                field_list: self.field_list,
         605  +
            })
         606  +
        }
         607  +
    }
         608  +
}
         609  +
/// See [`FooError`](crate::error::FooError).
         610  +
pub mod foo_error {
         611  +
         612  +
    impl ::std::convert::From<Builder> for crate::error::FooError {
         613  +
        fn from(builder: Builder) -> Self {
         614  +
            builder.build()
         615  +
        }
         616  +
    }
         617  +
    /// A builder for [`FooError`](crate::error::FooError).
         618  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         619  +
    pub struct Builder {}
         620  +
    impl Builder {
         621  +
        /// Consumes the builder and constructs a [`FooError`](crate::error::FooError).
         622  +
        pub fn build(self) -> crate::error::FooError {
         623  +
            self.build_enforcing_all_constraints()
         624  +
        }
         625  +
        fn build_enforcing_all_constraints(self) -> crate::error::FooError {
         626  +
            crate::error::FooError {}
         627  +
        }
         628  +
    }
         629  +
}
         630  +
/// See [`ComplexError`](crate::error::ComplexError).
         631  +
pub mod complex_error {
         632  +
         633  +
    impl ::std::convert::From<Builder> for crate::error::ComplexError {
         634  +
        fn from(builder: Builder) -> Self {
         635  +
            builder.build()
         636  +
        }
         637  +
    }
         638  +
    /// A builder for [`ComplexError`](crate::error::ComplexError).
         639  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         640  +
    pub struct Builder {
         641  +
        pub(crate) top_level: ::std::option::Option<::std::string::String>,
         642  +
        pub(crate) nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
         643  +
    }
         644  +
    impl Builder {
         645  +
        #[allow(missing_docs)] // documentation missing in model
         646  +
        pub fn top_level(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         647  +
            self.top_level = input;
         648  +
            self
         649  +
        }
         650  +
        #[allow(missing_docs)] // documentation missing in model
         651  +
        pub fn nested(
         652  +
            mut self,
         653  +
            input: ::std::option::Option<crate::model::ComplexNestedErrorData>,
         654  +
        ) -> Self {
         655  +
            self.nested = input;
         656  +
            self
         657  +
        }
         658  +
        /// Consumes the builder and constructs a [`ComplexError`](crate::error::ComplexError).
         659  +
        pub fn build(self) -> crate::error::ComplexError {
         660  +
            self.build_enforcing_all_constraints()
         661  +
        }
         662  +
        fn build_enforcing_all_constraints(self) -> crate::error::ComplexError {
         663  +
            crate::error::ComplexError {
         664  +
                top_level: self.top_level,
         665  +
                nested: self.nested,
         666  +
            }
         667  +
        }
         668  +
    }
         669  +
}
         670  +
/// See [`InvalidGreeting`](crate::error::InvalidGreeting).
         671  +
pub mod invalid_greeting {
         672  +
         673  +
    impl ::std::convert::From<Builder> for crate::error::InvalidGreeting {
         674  +
        fn from(builder: Builder) -> Self {
         675  +
            builder.build()
         676  +
        }
         677  +
    }
         678  +
    /// A builder for [`InvalidGreeting`](crate::error::InvalidGreeting).
         679  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         680  +
    pub struct Builder {
         681  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
         682  +
    }
         683  +
    impl Builder {
         684  +
        #[allow(missing_docs)] // documentation missing in model
         685  +
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         686  +
            self.message = input;
         687  +
            self
         688  +
        }
         689  +
        /// Consumes the builder and constructs a [`InvalidGreeting`](crate::error::InvalidGreeting).
         690  +
        pub fn build(self) -> crate::error::InvalidGreeting {
         691  +
            self.build_enforcing_all_constraints()
         692  +
        }
         693  +
        fn build_enforcing_all_constraints(self) -> crate::error::InvalidGreeting {
         694  +
            crate::error::InvalidGreeting {
         695  +
                message: self.message,
         696  +
            }
         697  +
        }
         698  +
    }
         699  +
}
         700  +
/// See [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         701  +
pub mod error_without_members {
         702  +
         703  +
    impl ::std::convert::From<Builder> for crate::error::ErrorWithoutMembers {
         704  +
        fn from(builder: Builder) -> Self {
         705  +
            builder.build()
         706  +
        }
         707  +
    }
         708  +
    /// A builder for [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         709  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         710  +
    pub struct Builder {}
         711  +
    impl Builder {
         712  +
        /// Consumes the builder and constructs a [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         713  +
        pub fn build(self) -> crate::error::ErrorWithoutMembers {
         714  +
            self.build_enforcing_all_constraints()
         715  +
        }
         716  +
        fn build_enforcing_all_constraints(self) -> crate::error::ErrorWithoutMembers {
         717  +
            crate::error::ErrorWithoutMembers {}
         718  +
        }
         719  +
    }
         720  +
}
         721  +
/// See [`ErrorWithMembers`](crate::error::ErrorWithMembers).
         722  +
pub mod error_with_members {
         723  +
         724  +
    impl ::std::convert::From<Builder> for crate::error::ErrorWithMembers {
         725  +
        fn from(builder: Builder) -> Self {
         726  +
            builder.build()
         727  +
        }
         728  +
    }
         729  +
    /// A builder for [`ErrorWithMembers`](crate::error::ErrorWithMembers).
         730  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         731  +
    pub struct Builder {
         732  +
        pub(crate) code: ::std::option::Option<::std::string::String>,
         733  +
        pub(crate) complex_data: ::std::option::Option<crate::model::KitchenSink>,
         734  +
        pub(crate) integer_field: ::std::option::Option<i32>,
         735  +
        pub(crate) list_field: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         736  +
        pub(crate) map_field: ::std::option::Option<
         737  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         738  +
        >,
         739  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
         740  +
        pub(crate) string_field: ::std::option::Option<::std::string::String>,
         741  +
    }
         742  +
    impl Builder {
         743  +
        #[allow(missing_docs)] // documentation missing in model
         744  +
        pub fn code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         745  +
            self.code = input;
         746  +
            self
         747  +
        }
         748  +
        #[allow(missing_docs)] // documentation missing in model
         749  +
        pub fn complex_data(
         750  +
            mut self,
         751  +
            input: ::std::option::Option<crate::model::KitchenSink>,
         752  +
        ) -> Self {
         753  +
            self.complex_data = input;
         754  +
            self
         755  +
        }
         756  +
        #[allow(missing_docs)] // documentation missing in model
         757  +
        pub fn integer_field(mut self, input: ::std::option::Option<i32>) -> Self {
         758  +
            self.integer_field = input;
         759  +
            self
         760  +
        }
         761  +
        #[allow(missing_docs)] // documentation missing in model
         762  +
        pub fn list_field(
         763  +
            mut self,
         764  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         765  +
        ) -> Self {
         766  +
            self.list_field = input;
         767  +
            self
         768  +
        }
         769  +
        #[allow(missing_docs)] // documentation missing in model
         770  +
        pub fn map_field(
         771  +
            mut self,
         772  +
            input: ::std::option::Option<
         773  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         774  +
            >,
         775  +
        ) -> Self {
         776  +
            self.map_field = input;
         777  +
            self
         778  +
        }
         779  +
        #[allow(missing_docs)] // documentation missing in model
         780  +
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         781  +
            self.message = input;
         782  +
            self
         783  +
        }
         784  +
        /// abc
         785  +
        pub fn string_field(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         786  +
            self.string_field = input;
         787  +
            self
         788  +
        }
         789  +
        /// Consumes the builder and constructs a [`ErrorWithMembers`](crate::error::ErrorWithMembers).
         790  +
        pub fn build(self) -> crate::error::ErrorWithMembers {
         791  +
            self.build_enforcing_all_constraints()
         792  +
        }
         793  +
        fn build_enforcing_all_constraints(self) -> crate::error::ErrorWithMembers {
         794  +
            crate::error::ErrorWithMembers {
         795  +
                code: self.code,
         796  +
                complex_data: self.complex_data,
         797  +
                integer_field: self.integer_field,
         798  +
                list_field: self.list_field,
         799  +
                map_field: self.map_field,
         800  +
                message: self.message,
         801  +
                string_field: self.string_field,
         802  +
            }
         803  +
        }
         804  +
    }
         805  +
}