Server Test Python

Server Test Python

rev. d838bf488731ae5e751cce0fe13f339a5b9be858 (ignoring whitespace)

Files changed:

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

@@ -1,1 +1549,1549 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
::pin_project_lite::pin_project! {
    3      3   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
    4         -
    /// [`QueryIncompatibleOperationInput`](crate::input::QueryIncompatibleOperationInput) using modelled bindings.
    5         -
    pub struct QueryIncompatibleOperationInputFuture {
    6         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::QueryIncompatibleOperationInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
           4  +
    /// [`NoInputAndNoOutputInput`](crate::input::NoInputAndNoOutputInput) using modelled bindings.
           5  +
    pub struct NoInputAndNoOutputInputFuture {
           6  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::NoInputAndNoOutputInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
    7      7   
    }
    8      8   
}
    9      9   
   10         -
impl std::future::Future for QueryIncompatibleOperationInputFuture {
          10  +
impl std::future::Future for NoInputAndNoOutputInputFuture {
   11     11   
    type Output = Result<
   12         -
        crate::input::QueryIncompatibleOperationInput,
          12  +
        crate::input::NoInputAndNoOutputInput,
   13     13   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
   14     14   
    >;
   15     15   
   16     16   
    fn poll(
   17     17   
        self: std::pin::Pin<&mut Self>,
   18     18   
        cx: &mut std::task::Context<'_>,
   19     19   
    ) -> std::task::Poll<Self::Output> {
   20     20   
        let this = self.project();
   21     21   
        this.inner.as_mut().poll(cx)
   22     22   
    }
   23     23   
}
   24     24   
   25     25   
impl<B>
   26     26   
    ::aws_smithy_legacy_http_server::request::FromRequest<
   27     27   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
   28     28   
        B,
   29         -
    > for crate::input::QueryIncompatibleOperationInput
          29  +
    > for crate::input::NoInputAndNoOutputInput
   30     30   
where
   31     31   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
   32     32   
    B: 'static,
   33     33   
   34     34   
    B::Data: Send,
   35     35   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
   36     36   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
   37     37   
{
   38     38   
    type Rejection =
   39     39   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
   40         -
    type Future = QueryIncompatibleOperationInputFuture;
          40  +
    type Future = NoInputAndNoOutputInputFuture;
   41     41   
   42     42   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   43     43   
        let fut = async move {
   44     44   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
   45     45   
                request.headers(),
   46     46   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
   47     47   
            ) {
   48     48   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
   49     49   
            }
   50         -
            crate::protocol_serde::shape_query_incompatible_operation::de_query_incompatible_operation_http_request(request)
          50  +
            crate::protocol_serde::shape_no_input_and_no_output::de_no_input_and_no_output_http_request(request)
   51     51   
                            .await
   52     52   
        };
   53     53   
        use ::futures_util::future::TryFutureExt;
   54     54   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
   55     55   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
   56     56   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
   57     57   
                    });
   58         -
        QueryIncompatibleOperationInputFuture {
          58  +
        NoInputAndNoOutputInputFuture {
   59     59   
            inner: Box::pin(fut),
   60     60   
        }
   61     61   
    }
   62     62   
}
   63     63   
impl
   64     64   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
   65     65   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
   66         -
    > for crate::output::QueryIncompatibleOperationOutput
          66  +
    > for crate::output::NoInputAndNoOutputOutput
   67     67   
{
   68     68   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
   69         -
        match crate::protocol_serde::shape_query_incompatible_operation::ser_query_incompatible_operation_http_response(self) {
          69  +
        match crate::protocol_serde::shape_no_input_and_no_output::ser_no_input_and_no_output_http_response(self) {
   70     70   
                        Ok(response) => response,
   71     71   
                        Err(e) => {
   72     72   
                            ::tracing::error!(error = %e, "failed to serialize response");
   73     73   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
   74     74   
                        }
   75     75   
                    }
   76     76   
    }
   77     77   
}
   78     78   
impl
   79     79   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
   80     80   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
   81         -
    > for crate::error::QueryIncompatibleOperationError
          81  +
    > for crate::error::NoInputAndNoOutputError
   82     82   
{
   83     83   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
   84         -
        match crate::protocol_serde::shape_query_incompatible_operation::ser_query_incompatible_operation_http_error(&self) {
          84  +
        match crate::protocol_serde::shape_no_input_and_no_output::ser_no_input_and_no_output_http_error(&self) {
   85     85   
            Ok(mut response) => {
   86     86   
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
   87     87   
                response
   88     88   
            },
   89     89   
            Err(e) => {
   90     90   
                ::tracing::error!(error = %e, "failed to serialize response");
   91     91   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
   92     92   
            }
   93     93   
        }
   94     94   
    }
   95     95   
}
   96     96   
   97     97   
::pin_project_lite::pin_project! {
   98     98   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
   99         -
    /// [`OperationWithRequiredMembersWithDefaultsInput`](crate::input::OperationWithRequiredMembersWithDefaultsInput) using modelled bindings.
  100         -
    pub struct OperationWithRequiredMembersWithDefaultsInputFuture {
  101         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithRequiredMembersWithDefaultsInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
          99  +
    /// [`NoInputAndOutputInput`](crate::input::NoInputAndOutputInput) using modelled bindings.
         100  +
    pub struct NoInputAndOutputInputFuture {
         101  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::NoInputAndOutputInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  102    102   
    }
  103    103   
}
  104    104   
  105         -
impl std::future::Future for OperationWithRequiredMembersWithDefaultsInputFuture {
         105  +
impl std::future::Future for NoInputAndOutputInputFuture {
  106    106   
    type Output = Result<
  107         -
        crate::input::OperationWithRequiredMembersWithDefaultsInput,
         107  +
        crate::input::NoInputAndOutputInput,
  108    108   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  109    109   
    >;
  110    110   
  111    111   
    fn poll(
  112    112   
        self: std::pin::Pin<&mut Self>,
  113    113   
        cx: &mut std::task::Context<'_>,
  114    114   
    ) -> std::task::Poll<Self::Output> {
  115    115   
        let this = self.project();
  116    116   
        this.inner.as_mut().poll(cx)
  117    117   
    }
  118    118   
}
  119    119   
  120    120   
impl<B>
  121    121   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  122    122   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  123    123   
        B,
  124         -
    > for crate::input::OperationWithRequiredMembersWithDefaultsInput
         124  +
    > for crate::input::NoInputAndOutputInput
  125    125   
where
  126    126   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  127    127   
    B: 'static,
  128    128   
  129    129   
    B::Data: Send,
  130    130   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  131    131   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  132    132   
{
  133    133   
    type Rejection =
  134    134   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  135         -
    type Future = OperationWithRequiredMembersWithDefaultsInputFuture;
         135  +
    type Future = NoInputAndOutputInputFuture;
  136    136   
  137    137   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  138    138   
        let fut = async move {
  139    139   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  140    140   
                request.headers(),
  141    141   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  142    142   
            ) {
  143    143   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  144    144   
            }
  145         -
            crate::protocol_serde::shape_operation_with_required_members_with_defaults::de_operation_with_required_members_with_defaults_http_request(request)
         145  +
            crate::protocol_serde::shape_no_input_and_output::de_no_input_and_output_http_request(
         146  +
                request,
         147  +
            )
  146    148   
            .await
  147    149   
        };
  148    150   
        use ::futures_util::future::TryFutureExt;
  149    151   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  150    152   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  151    153   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  152    154   
                    });
  153         -
        OperationWithRequiredMembersWithDefaultsInputFuture {
         155  +
        NoInputAndOutputInputFuture {
  154    156   
            inner: Box::pin(fut),
  155    157   
        }
  156    158   
    }
  157    159   
}
  158    160   
impl
  159    161   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  160    162   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  161         -
    > for crate::output::OperationWithRequiredMembersWithDefaultsOutput
         163  +
    > for crate::output::NoInputAndOutputOutput
  162    164   
{
  163    165   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  164         -
        match crate::protocol_serde::shape_operation_with_required_members_with_defaults::ser_operation_with_required_members_with_defaults_http_response(self) {
         166  +
        match crate::protocol_serde::shape_no_input_and_output::ser_no_input_and_output_http_response(self) {
  165    167   
                        Ok(response) => response,
  166    168   
                        Err(e) => {
  167    169   
                            ::tracing::error!(error = %e, "failed to serialize response");
  168    170   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  169    171   
                        }
  170    172   
                    }
  171    173   
    }
  172    174   
}
  173    175   
impl
  174    176   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  175    177   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  176         -
    > for crate::error::OperationWithRequiredMembersWithDefaultsError
         178  +
    > for crate::error::NoInputAndOutputError
  177    179   
{
  178    180   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  179         -
        match crate::protocol_serde::shape_operation_with_required_members_with_defaults::ser_operation_with_required_members_with_defaults_http_error(&self) {
         181  +
        match crate::protocol_serde::shape_no_input_and_output::ser_no_input_and_output_http_error(
         182  +
            &self,
         183  +
        ) {
  180    184   
            Ok(mut response) => {
  181         -
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
         185  +
                response.extensions_mut().insert(
         186  +
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
         187  +
                        self.name(),
         188  +
                    ),
         189  +
                );
  182    190   
                response
  183         -
            },
         191  +
            }
  184    192   
            Err(e) => {
  185    193   
                ::tracing::error!(error = %e, "failed to serialize response");
  186    194   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  187    195   
            }
  188    196   
        }
  189    197   
    }
  190    198   
}
  191    199   
  192    200   
::pin_project_lite::pin_project! {
  193    201   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  194         -
    /// [`OperationWithNestedStructureInput`](crate::input::OperationWithNestedStructureInput) using modelled bindings.
  195         -
    pub struct OperationWithNestedStructureInputFuture {
  196         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithNestedStructureInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         202  +
    /// [`EmptyInputAndEmptyOutputInput`](crate::input::EmptyInputAndEmptyOutputInput) using modelled bindings.
         203  +
    pub struct EmptyInputAndEmptyOutputInputFuture {
         204  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EmptyInputAndEmptyOutputInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  197    205   
    }
  198    206   
}
  199    207   
  200         -
impl std::future::Future for OperationWithNestedStructureInputFuture {
         208  +
impl std::future::Future for EmptyInputAndEmptyOutputInputFuture {
  201    209   
    type Output = Result<
  202         -
        crate::input::OperationWithNestedStructureInput,
         210  +
        crate::input::EmptyInputAndEmptyOutputInput,
  203    211   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  204    212   
    >;
  205    213   
  206    214   
    fn poll(
  207    215   
        self: std::pin::Pin<&mut Self>,
  208    216   
        cx: &mut std::task::Context<'_>,
  209    217   
    ) -> std::task::Poll<Self::Output> {
  210    218   
        let this = self.project();
  211    219   
        this.inner.as_mut().poll(cx)
  212    220   
    }
  213    221   
}
  214    222   
  215    223   
impl<B>
  216    224   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  217    225   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  218    226   
        B,
  219         -
    > for crate::input::OperationWithNestedStructureInput
         227  +
    > for crate::input::EmptyInputAndEmptyOutputInput
  220    228   
where
  221    229   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  222    230   
    B: 'static,
  223    231   
  224    232   
    B::Data: Send,
  225    233   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  226    234   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  227    235   
{
  228    236   
    type Rejection =
  229    237   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  230         -
    type Future = OperationWithNestedStructureInputFuture;
         238  +
    type Future = EmptyInputAndEmptyOutputInputFuture;
  231    239   
  232    240   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  233    241   
        let fut = async move {
  234    242   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  235    243   
                request.headers(),
  236    244   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  237    245   
            ) {
  238    246   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  239    247   
            }
  240         -
            crate::protocol_serde::shape_operation_with_nested_structure::de_operation_with_nested_structure_http_request(request)
         248  +
            crate::protocol_serde::shape_empty_input_and_empty_output::de_empty_input_and_empty_output_http_request(request)
  241    249   
                            .await
  242    250   
        };
  243    251   
        use ::futures_util::future::TryFutureExt;
  244    252   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  245    253   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  246    254   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  247    255   
                    });
  248         -
        OperationWithNestedStructureInputFuture {
         256  +
        EmptyInputAndEmptyOutputInputFuture {
  249    257   
            inner: Box::pin(fut),
  250    258   
        }
  251    259   
    }
  252    260   
}
  253    261   
impl
  254    262   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  255    263   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  256         -
    > for crate::output::OperationWithNestedStructureOutput
         264  +
    > for crate::output::EmptyInputAndEmptyOutputOutput
  257    265   
{
  258    266   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  259         -
        match crate::protocol_serde::shape_operation_with_nested_structure::ser_operation_with_nested_structure_http_response(self) {
         267  +
        match crate::protocol_serde::shape_empty_input_and_empty_output::ser_empty_input_and_empty_output_http_response(self) {
  260    268   
                        Ok(response) => response,
  261    269   
                        Err(e) => {
  262    270   
                            ::tracing::error!(error = %e, "failed to serialize response");
  263    271   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  264    272   
                        }
  265    273   
                    }
  266    274   
    }
  267    275   
}
  268    276   
impl
  269    277   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  270    278   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  271         -
    > for crate::error::OperationWithNestedStructureError
         279  +
    > for crate::error::EmptyInputAndEmptyOutputError
  272    280   
{
  273    281   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  274         -
        match crate::protocol_serde::shape_operation_with_nested_structure::ser_operation_with_nested_structure_http_error(&self) {
         282  +
        match crate::protocol_serde::shape_empty_input_and_empty_output::ser_empty_input_and_empty_output_http_error(&self) {
  275    283   
            Ok(mut response) => {
  276    284   
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
  277    285   
                response
  278    286   
            },
  279    287   
            Err(e) => {
  280    288   
                ::tracing::error!(error = %e, "failed to serialize response");
  281    289   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  282    290   
            }
  283    291   
        }
  284    292   
    }
  285    293   
}
  286    294   
  287    295   
::pin_project_lite::pin_project! {
  288    296   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  289         -
    /// [`OperationWithRequiredMembersInput`](crate::input::OperationWithRequiredMembersInput) using modelled bindings.
  290         -
    pub struct OperationWithRequiredMembersInputFuture {
  291         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithRequiredMembersInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         297  +
    /// [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput) using modelled bindings.
         298  +
    pub struct SimpleScalarPropertiesInputFuture {
         299  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::SimpleScalarPropertiesInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  292    300   
    }
  293    301   
}
  294    302   
  295         -
impl std::future::Future for OperationWithRequiredMembersInputFuture {
         303  +
impl std::future::Future for SimpleScalarPropertiesInputFuture {
  296    304   
    type Output = Result<
  297         -
        crate::input::OperationWithRequiredMembersInput,
         305  +
        crate::input::SimpleScalarPropertiesInput,
  298    306   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  299    307   
    >;
  300    308   
  301    309   
    fn poll(
  302    310   
        self: std::pin::Pin<&mut Self>,
  303    311   
        cx: &mut std::task::Context<'_>,
  304    312   
    ) -> std::task::Poll<Self::Output> {
  305    313   
        let this = self.project();
  306    314   
        this.inner.as_mut().poll(cx)
  307    315   
    }
  308    316   
}
  309    317   
  310    318   
impl<B>
  311    319   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  312    320   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  313    321   
        B,
  314         -
    > for crate::input::OperationWithRequiredMembersInput
         322  +
    > for crate::input::SimpleScalarPropertiesInput
  315    323   
where
  316    324   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  317    325   
    B: 'static,
  318    326   
  319    327   
    B::Data: Send,
  320    328   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  321    329   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  322    330   
{
  323    331   
    type Rejection =
  324    332   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  325         -
    type Future = OperationWithRequiredMembersInputFuture;
         333  +
    type Future = SimpleScalarPropertiesInputFuture;
  326    334   
  327    335   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  328    336   
        let fut = async move {
  329    337   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  330    338   
                request.headers(),
  331    339   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  332    340   
            ) {
  333    341   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  334    342   
            }
  335         -
            crate::protocol_serde::shape_operation_with_required_members::de_operation_with_required_members_http_request(request)
         343  +
            crate::protocol_serde::shape_simple_scalar_properties::de_simple_scalar_properties_http_request(request)
  336    344   
                            .await
  337    345   
        };
  338    346   
        use ::futures_util::future::TryFutureExt;
  339    347   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  340    348   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  341    349   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  342    350   
                    });
  343         -
        OperationWithRequiredMembersInputFuture {
         351  +
        SimpleScalarPropertiesInputFuture {
  344    352   
            inner: Box::pin(fut),
  345    353   
        }
  346    354   
    }
  347    355   
}
  348    356   
impl
  349    357   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  350    358   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  351         -
    > for crate::output::OperationWithRequiredMembersOutput
         359  +
    > for crate::output::SimpleScalarPropertiesOutput
  352    360   
{
  353    361   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  354         -
        match crate::protocol_serde::shape_operation_with_required_members::ser_operation_with_required_members_http_response(self) {
         362  +
        match crate::protocol_serde::shape_simple_scalar_properties::ser_simple_scalar_properties_http_response(self) {
  355    363   
                        Ok(response) => response,
  356    364   
                        Err(e) => {
  357    365   
                            ::tracing::error!(error = %e, "failed to serialize response");
  358    366   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  359    367   
                        }
  360    368   
                    }
  361    369   
    }
  362    370   
}
  363    371   
impl
  364    372   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  365    373   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  366         -
    > for crate::error::OperationWithRequiredMembersError
         374  +
    > for crate::error::SimpleScalarPropertiesError
  367    375   
{
  368    376   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  369         -
        match crate::protocol_serde::shape_operation_with_required_members::ser_operation_with_required_members_http_error(&self) {
         377  +
        match crate::protocol_serde::shape_simple_scalar_properties::ser_simple_scalar_properties_http_error(&self) {
  370    378   
            Ok(mut response) => {
  371    379   
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
  372    380   
                response
  373    381   
            },
  374    382   
            Err(e) => {
  375    383   
                ::tracing::error!(error = %e, "failed to serialize response");
  376    384   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  377    385   
            }
  378    386   
        }
  379    387   
    }
  380    388   
}
  381    389   
  382    390   
::pin_project_lite::pin_project! {
  383    391   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  384         -
    /// [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput) using modelled bindings.
  385         -
    pub struct OperationWithDefaultsInputFuture {
  386         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithDefaultsInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         392  +
    /// [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput) using modelled bindings.
         393  +
    pub struct GreetingWithErrorsInputFuture {
         394  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::GreetingWithErrorsInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  387    395   
    }
  388    396   
}
  389    397   
  390         -
impl std::future::Future for OperationWithDefaultsInputFuture {
         398  +
impl std::future::Future for GreetingWithErrorsInputFuture {
  391    399   
    type Output = Result<
  392         -
        crate::input::OperationWithDefaultsInput,
         400  +
        crate::input::GreetingWithErrorsInput,
  393    401   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  394    402   
    >;
  395    403   
  396    404   
    fn poll(
  397    405   
        self: std::pin::Pin<&mut Self>,
  398    406   
        cx: &mut std::task::Context<'_>,
  399    407   
    ) -> std::task::Poll<Self::Output> {
  400    408   
        let this = self.project();
  401    409   
        this.inner.as_mut().poll(cx)
  402    410   
    }
  403    411   
}
  404    412   
  405    413   
impl<B>
  406    414   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  407    415   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  408    416   
        B,
  409         -
    > for crate::input::OperationWithDefaultsInput
         417  +
    > for crate::input::GreetingWithErrorsInput
  410    418   
where
  411    419   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  412    420   
    B: 'static,
  413    421   
  414    422   
    B::Data: Send,
  415    423   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  416    424   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  417    425   
{
  418    426   
    type Rejection =
  419    427   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  420         -
    type Future = OperationWithDefaultsInputFuture;
         428  +
    type Future = GreetingWithErrorsInputFuture;
  421    429   
  422    430   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  423    431   
        let fut = async move {
  424    432   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  425    433   
                request.headers(),
  426    434   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  427    435   
            ) {
  428    436   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  429    437   
            }
  430         -
            crate::protocol_serde::shape_operation_with_defaults::de_operation_with_defaults_http_request(request)
         438  +
            crate::protocol_serde::shape_greeting_with_errors::de_greeting_with_errors_http_request(
         439  +
                request,
         440  +
            )
  431    441   
            .await
  432    442   
        };
  433    443   
        use ::futures_util::future::TryFutureExt;
  434    444   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  435    445   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  436    446   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  437    447   
                    });
  438         -
        OperationWithDefaultsInputFuture {
         448  +
        GreetingWithErrorsInputFuture {
  439    449   
            inner: Box::pin(fut),
  440    450   
        }
  441    451   
    }
  442    452   
}
  443    453   
impl
  444    454   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  445    455   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  446         -
    > for crate::output::OperationWithDefaultsOutput
         456  +
    > for crate::output::GreetingWithErrorsOutput
  447    457   
{
  448    458   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  449         -
        match crate::protocol_serde::shape_operation_with_defaults::ser_operation_with_defaults_http_response(self) {
         459  +
        match crate::protocol_serde::shape_greeting_with_errors::ser_greeting_with_errors_http_response(self) {
  450    460   
                        Ok(response) => response,
  451    461   
                        Err(e) => {
  452    462   
                            ::tracing::error!(error = %e, "failed to serialize response");
  453    463   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  454    464   
                        }
  455    465   
                    }
  456    466   
    }
  457    467   
}
  458    468   
impl
  459    469   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  460    470   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  461         -
    > for crate::error::OperationWithDefaultsError
         471  +
    > for crate::error::GreetingWithErrorsError
  462    472   
{
  463    473   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  464         -
        match crate::protocol_serde::shape_operation_with_defaults::ser_operation_with_defaults_http_error(&self) {
         474  +
        match crate::protocol_serde::shape_greeting_with_errors::ser_greeting_with_errors_http_error(
         475  +
            &self,
         476  +
        ) {
  465    477   
            Ok(mut response) => {
  466         -
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
         478  +
                response.extensions_mut().insert(
         479  +
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
         480  +
                        self.name(),
         481  +
                    ),
         482  +
                );
  467    483   
                response
  468         -
            },
         484  +
            }
  469    485   
            Err(e) => {
  470    486   
                ::tracing::error!(error = %e, "failed to serialize response");
  471    487   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  472    488   
            }
  473    489   
        }
  474    490   
    }
  475    491   
}
  476    492   
  477    493   
::pin_project_lite::pin_project! {
  478    494   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  479         -
    /// [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput) using modelled bindings.
  480         -
    pub struct ContentTypeParametersInputFuture {
  481         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ContentTypeParametersInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         495  +
    /// [`JsonUnionsInput`](crate::input::JsonUnionsInput) using modelled bindings.
         496  +
    pub struct JsonUnionsInputFuture {
         497  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonUnionsInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  482    498   
    }
  483    499   
}
  484    500   
  485         -
impl std::future::Future for ContentTypeParametersInputFuture {
         501  +
impl std::future::Future for JsonUnionsInputFuture {
  486    502   
    type Output = Result<
  487         -
        crate::input::ContentTypeParametersInput,
         503  +
        crate::input::JsonUnionsInput,
  488    504   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  489    505   
    >;
  490    506   
  491    507   
    fn poll(
  492    508   
        self: std::pin::Pin<&mut Self>,
  493    509   
        cx: &mut std::task::Context<'_>,
  494    510   
    ) -> std::task::Poll<Self::Output> {
  495    511   
        let this = self.project();
  496    512   
        this.inner.as_mut().poll(cx)
  497    513   
    }
  498    514   
}
  499    515   
  500    516   
impl<B>
  501    517   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  502    518   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  503    519   
        B,
  504         -
    > for crate::input::ContentTypeParametersInput
         520  +
    > for crate::input::JsonUnionsInput
  505    521   
where
  506    522   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  507    523   
    B: 'static,
  508    524   
  509    525   
    B::Data: Send,
  510    526   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  511    527   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  512    528   
{
  513    529   
    type Rejection =
  514    530   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  515         -
    type Future = ContentTypeParametersInputFuture;
         531  +
    type Future = JsonUnionsInputFuture;
  516    532   
  517    533   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  518    534   
        let fut = async move {
  519    535   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  520    536   
                request.headers(),
  521    537   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  522    538   
            ) {
  523    539   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  524    540   
            }
  525         -
            crate::protocol_serde::shape_content_type_parameters::de_content_type_parameters_http_request(request)
  526         -
                            .await
         541  +
            crate::protocol_serde::shape_json_unions::de_json_unions_http_request(request).await
  527    542   
        };
  528    543   
        use ::futures_util::future::TryFutureExt;
  529    544   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  530    545   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  531    546   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  532    547   
                    });
  533         -
        ContentTypeParametersInputFuture {
         548  +
        JsonUnionsInputFuture {
  534    549   
            inner: Box::pin(fut),
  535    550   
        }
  536    551   
    }
  537    552   
}
  538    553   
impl
  539    554   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  540    555   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  541         -
    > for crate::output::ContentTypeParametersOutput
         556  +
    > for crate::output::JsonUnionsOutput
  542    557   
{
  543    558   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  544         -
        match crate::protocol_serde::shape_content_type_parameters::ser_content_type_parameters_http_response(self) {
         559  +
        match crate::protocol_serde::shape_json_unions::ser_json_unions_http_response(self) {
  545    560   
            Ok(response) => response,
  546    561   
            Err(e) => {
  547    562   
                ::tracing::error!(error = %e, "failed to serialize response");
  548    563   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  549    564   
            }
  550    565   
        }
  551    566   
    }
  552    567   
}
  553    568   
impl
  554    569   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  555    570   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  556         -
    > for crate::error::ContentTypeParametersError
         571  +
    > for crate::error::JsonUnionsError
  557    572   
{
  558    573   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  559         -
        match crate::protocol_serde::shape_content_type_parameters::ser_content_type_parameters_http_error(&self) {
         574  +
        match crate::protocol_serde::shape_json_unions::ser_json_unions_http_error(&self) {
  560    575   
            Ok(mut response) => {
  561         -
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
         576  +
                response.extensions_mut().insert(
         577  +
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
         578  +
                        self.name(),
         579  +
                    ),
         580  +
                );
  562    581   
                response
  563         -
            },
         582  +
            }
  564    583   
            Err(e) => {
  565    584   
                ::tracing::error!(error = %e, "failed to serialize response");
  566    585   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  567    586   
            }
  568    587   
        }
  569    588   
    }
  570    589   
}
  571    590   
  572    591   
::pin_project_lite::pin_project! {
  573    592   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  574         -
    /// [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput) using modelled bindings.
  575         -
    pub struct PutWithContentEncodingInputFuture {
  576         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::PutWithContentEncodingInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         593  +
    /// [`EndpointOperationInput`](crate::input::EndpointOperationInput) using modelled bindings.
         594  +
    pub struct EndpointOperationInputFuture {
         595  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EndpointOperationInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  577    596   
    }
  578    597   
}
  579    598   
  580         -
impl std::future::Future for PutWithContentEncodingInputFuture {
         599  +
impl std::future::Future for EndpointOperationInputFuture {
  581    600   
    type Output = Result<
  582         -
        crate::input::PutWithContentEncodingInput,
         601  +
        crate::input::EndpointOperationInput,
  583    602   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  584    603   
    >;
  585    604   
  586    605   
    fn poll(
  587    606   
        self: std::pin::Pin<&mut Self>,
  588    607   
        cx: &mut std::task::Context<'_>,
  589    608   
    ) -> std::task::Poll<Self::Output> {
  590    609   
        let this = self.project();
  591    610   
        this.inner.as_mut().poll(cx)
  592    611   
    }
  593    612   
}
  594    613   
  595    614   
impl<B>
  596    615   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  597    616   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  598    617   
        B,
  599         -
    > for crate::input::PutWithContentEncodingInput
         618  +
    > for crate::input::EndpointOperationInput
  600    619   
where
  601    620   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  602    621   
    B: 'static,
  603    622   
  604    623   
    B::Data: Send,
  605    624   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  606    625   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  607    626   
{
  608    627   
    type Rejection =
  609    628   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  610         -
    type Future = PutWithContentEncodingInputFuture;
         629  +
    type Future = EndpointOperationInputFuture;
  611    630   
  612    631   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  613    632   
        let fut = async move {
  614    633   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  615    634   
                request.headers(),
  616    635   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  617    636   
            ) {
  618    637   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  619    638   
            }
  620         -
            crate::protocol_serde::shape_put_with_content_encoding::de_put_with_content_encoding_http_request(request)
         639  +
            crate::protocol_serde::shape_endpoint_operation::de_endpoint_operation_http_request(
         640  +
                request,
         641  +
            )
  621    642   
            .await
  622    643   
        };
  623    644   
        use ::futures_util::future::TryFutureExt;
  624    645   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  625    646   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  626    647   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  627    648   
                    });
  628         -
        PutWithContentEncodingInputFuture {
         649  +
        EndpointOperationInputFuture {
  629    650   
            inner: Box::pin(fut),
  630    651   
        }
  631    652   
    }
  632    653   
}
  633    654   
impl
  634    655   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  635    656   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  636         -
    > for crate::output::PutWithContentEncodingOutput
         657  +
    > for crate::output::EndpointOperationOutput
  637    658   
{
  638    659   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  639         -
        match crate::protocol_serde::shape_put_with_content_encoding::ser_put_with_content_encoding_http_response(self) {
         660  +
        match crate::protocol_serde::shape_endpoint_operation::ser_endpoint_operation_http_response(
         661  +
            self,
         662  +
        ) {
  640    663   
            Ok(response) => response,
  641    664   
            Err(e) => {
  642    665   
                ::tracing::error!(error = %e, "failed to serialize response");
  643    666   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  644    667   
            }
  645    668   
        }
  646    669   
    }
  647    670   
}
  648    671   
impl
  649    672   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  650    673   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  651         -
    > for crate::error::PutWithContentEncodingError
         674  +
    > for crate::error::EndpointOperationError
  652    675   
{
  653    676   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  654         -
        match crate::protocol_serde::shape_put_with_content_encoding::ser_put_with_content_encoding_http_error(&self) {
         677  +
        match crate::protocol_serde::shape_endpoint_operation::ser_endpoint_operation_http_error(
         678  +
            &self,
         679  +
        ) {
  655    680   
            Ok(mut response) => {
  656         -
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
         681  +
                response.extensions_mut().insert(
         682  +
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
         683  +
                        self.name(),
         684  +
                    ),
         685  +
                );
  657    686   
                response
  658         -
            },
         687  +
            }
  659    688   
            Err(e) => {
  660    689   
                ::tracing::error!(error = %e, "failed to serialize response");
  661    690   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  662    691   
            }
  663    692   
        }
  664    693   
    }
  665    694   
}
  666    695   
  667    696   
::pin_project_lite::pin_project! {
  668    697   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  669         -
    /// [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput) using modelled bindings.
  670         -
    pub struct HostWithPathOperationInputFuture {
  671         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HostWithPathOperationInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         698  +
    /// [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput) using modelled bindings.
         699  +
    pub struct EndpointWithHostLabelOperationInputFuture {
         700  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EndpointWithHostLabelOperationInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  672    701   
    }
  673    702   
}
  674    703   
  675         -
impl std::future::Future for HostWithPathOperationInputFuture {
         704  +
impl std::future::Future for EndpointWithHostLabelOperationInputFuture {
  676    705   
    type Output = Result<
  677         -
        crate::input::HostWithPathOperationInput,
         706  +
        crate::input::EndpointWithHostLabelOperationInput,
  678    707   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  679    708   
    >;
  680    709   
  681    710   
    fn poll(
  682    711   
        self: std::pin::Pin<&mut Self>,
  683    712   
        cx: &mut std::task::Context<'_>,
  684    713   
    ) -> std::task::Poll<Self::Output> {
  685    714   
        let this = self.project();
  686    715   
        this.inner.as_mut().poll(cx)
  687    716   
    }
  688    717   
}
  689    718   
  690    719   
impl<B>
  691    720   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  692    721   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  693    722   
        B,
  694         -
    > for crate::input::HostWithPathOperationInput
         723  +
    > for crate::input::EndpointWithHostLabelOperationInput
  695    724   
where
  696    725   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  697    726   
    B: 'static,
  698    727   
  699    728   
    B::Data: Send,
  700    729   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  701    730   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  702    731   
{
  703    732   
    type Rejection =
  704    733   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  705         -
    type Future = HostWithPathOperationInputFuture;
         734  +
    type Future = EndpointWithHostLabelOperationInputFuture;
  706    735   
  707    736   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  708    737   
        let fut = async move {
  709    738   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  710    739   
                request.headers(),
  711    740   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  712    741   
            ) {
  713    742   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  714    743   
            }
  715         -
            crate::protocol_serde::shape_host_with_path_operation::de_host_with_path_operation_http_request(request)
         744  +
            crate::protocol_serde::shape_endpoint_with_host_label_operation::de_endpoint_with_host_label_operation_http_request(request)
  716    745   
                            .await
  717    746   
        };
  718    747   
        use ::futures_util::future::TryFutureExt;
  719    748   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  720    749   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  721    750   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  722    751   
                    });
  723         -
        HostWithPathOperationInputFuture {
         752  +
        EndpointWithHostLabelOperationInputFuture {
  724    753   
            inner: Box::pin(fut),
  725    754   
        }
  726    755   
    }
  727    756   
}
  728    757   
impl
  729    758   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  730    759   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  731         -
    > for crate::output::HostWithPathOperationOutput
         760  +
    > for crate::output::EndpointWithHostLabelOperationOutput
  732    761   
{
  733    762   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  734         -
        match crate::protocol_serde::shape_host_with_path_operation::ser_host_with_path_operation_http_response(self) {
         763  +
        match crate::protocol_serde::shape_endpoint_with_host_label_operation::ser_endpoint_with_host_label_operation_http_response(self) {
  735    764   
                        Ok(response) => response,
  736    765   
                        Err(e) => {
  737    766   
                            ::tracing::error!(error = %e, "failed to serialize response");
  738    767   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  739    768   
                        }
  740    769   
                    }
  741    770   
    }
  742    771   
}
  743    772   
impl
  744    773   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  745    774   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  746         -
    > for crate::error::HostWithPathOperationError
         775  +
    > for crate::error::EndpointWithHostLabelOperationError
  747    776   
{
  748    777   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  749         -
        match crate::protocol_serde::shape_host_with_path_operation::ser_host_with_path_operation_http_error(&self) {
         778  +
        match crate::protocol_serde::shape_endpoint_with_host_label_operation::ser_endpoint_with_host_label_operation_http_error(&self) {
  750    779   
            Ok(mut response) => {
  751    780   
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
  752    781   
                response
  753    782   
            },
  754    783   
            Err(e) => {
  755    784   
                ::tracing::error!(error = %e, "failed to serialize response");
  756    785   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  757    786   
            }
  758    787   
        }
  759    788   
    }
  760    789   
}
  761    790   
  762    791   
::pin_project_lite::pin_project! {
  763    792   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  764         -
    /// [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput) using modelled bindings.
  765         -
    pub struct EndpointWithHostLabelOperationInputFuture {
  766         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EndpointWithHostLabelOperationInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         793  +
    /// [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput) using modelled bindings.
         794  +
    pub struct HostWithPathOperationInputFuture {
         795  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::HostWithPathOperationInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  767    796   
    }
  768    797   
}
  769    798   
  770         -
impl std::future::Future for EndpointWithHostLabelOperationInputFuture {
         799  +
impl std::future::Future for HostWithPathOperationInputFuture {
  771    800   
    type Output = Result<
  772         -
        crate::input::EndpointWithHostLabelOperationInput,
         801  +
        crate::input::HostWithPathOperationInput,
  773    802   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  774    803   
    >;
  775    804   
  776    805   
    fn poll(
  777    806   
        self: std::pin::Pin<&mut Self>,
  778    807   
        cx: &mut std::task::Context<'_>,
  779    808   
    ) -> std::task::Poll<Self::Output> {
  780    809   
        let this = self.project();
  781    810   
        this.inner.as_mut().poll(cx)
  782    811   
    }
  783    812   
}
  784    813   
  785    814   
impl<B>
  786    815   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  787    816   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  788    817   
        B,
  789         -
    > for crate::input::EndpointWithHostLabelOperationInput
         818  +
    > for crate::input::HostWithPathOperationInput
  790    819   
where
  791    820   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  792    821   
    B: 'static,
  793    822   
  794    823   
    B::Data: Send,
  795    824   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  796    825   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  797    826   
{
  798    827   
    type Rejection =
  799    828   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  800         -
    type Future = EndpointWithHostLabelOperationInputFuture;
         829  +
    type Future = HostWithPathOperationInputFuture;
  801    830   
  802    831   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  803    832   
        let fut = async move {
  804    833   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  805    834   
                request.headers(),
  806    835   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  807    836   
            ) {
  808    837   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  809    838   
            }
  810         -
            crate::protocol_serde::shape_endpoint_with_host_label_operation::de_endpoint_with_host_label_operation_http_request(request)
         839  +
            crate::protocol_serde::shape_host_with_path_operation::de_host_with_path_operation_http_request(request)
  811    840   
                            .await
  812    841   
        };
  813    842   
        use ::futures_util::future::TryFutureExt;
  814    843   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  815    844   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  816    845   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  817    846   
                    });
  818         -
        EndpointWithHostLabelOperationInputFuture {
         847  +
        HostWithPathOperationInputFuture {
  819    848   
            inner: Box::pin(fut),
  820    849   
        }
  821    850   
    }
  822    851   
}
  823    852   
impl
  824    853   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  825    854   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  826         -
    > for crate::output::EndpointWithHostLabelOperationOutput
         855  +
    > for crate::output::HostWithPathOperationOutput
  827    856   
{
  828    857   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  829         -
        match crate::protocol_serde::shape_endpoint_with_host_label_operation::ser_endpoint_with_host_label_operation_http_response(self) {
         858  +
        match crate::protocol_serde::shape_host_with_path_operation::ser_host_with_path_operation_http_response(self) {
  830    859   
                        Ok(response) => response,
  831    860   
                        Err(e) => {
  832    861   
                            ::tracing::error!(error = %e, "failed to serialize response");
  833    862   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  834    863   
                        }
  835    864   
                    }
  836    865   
    }
  837    866   
}
  838    867   
impl
  839    868   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  840    869   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  841         -
    > for crate::error::EndpointWithHostLabelOperationError
         870  +
    > for crate::error::HostWithPathOperationError
  842    871   
{
  843    872   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  844         -
        match crate::protocol_serde::shape_endpoint_with_host_label_operation::ser_endpoint_with_host_label_operation_http_error(&self) {
         873  +
        match crate::protocol_serde::shape_host_with_path_operation::ser_host_with_path_operation_http_error(&self) {
  845    874   
            Ok(mut response) => {
  846    875   
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
  847    876   
                response
  848    877   
            },
  849    878   
            Err(e) => {
  850    879   
                ::tracing::error!(error = %e, "failed to serialize response");
  851    880   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  852    881   
            }
  853    882   
        }
  854    883   
    }
  855    884   
}
  856    885   
  857    886   
::pin_project_lite::pin_project! {
  858    887   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  859         -
    /// [`EndpointOperationInput`](crate::input::EndpointOperationInput) using modelled bindings.
  860         -
    pub struct EndpointOperationInputFuture {
  861         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EndpointOperationInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         888  +
    /// [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput) using modelled bindings.
         889  +
    pub struct PutWithContentEncodingInputFuture {
         890  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::PutWithContentEncodingInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  862    891   
    }
  863    892   
}
  864    893   
  865         -
impl std::future::Future for EndpointOperationInputFuture {
         894  +
impl std::future::Future for PutWithContentEncodingInputFuture {
  866    895   
    type Output = Result<
  867         -
        crate::input::EndpointOperationInput,
         896  +
        crate::input::PutWithContentEncodingInput,
  868    897   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  869    898   
    >;
  870    899   
  871    900   
    fn poll(
  872    901   
        self: std::pin::Pin<&mut Self>,
  873    902   
        cx: &mut std::task::Context<'_>,
  874    903   
    ) -> std::task::Poll<Self::Output> {
  875    904   
        let this = self.project();
  876    905   
        this.inner.as_mut().poll(cx)
  877    906   
    }
  878    907   
}
  879    908   
  880    909   
impl<B>
  881    910   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  882    911   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  883    912   
        B,
  884         -
    > for crate::input::EndpointOperationInput
         913  +
    > for crate::input::PutWithContentEncodingInput
  885    914   
where
  886    915   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  887    916   
    B: 'static,
  888    917   
  889    918   
    B::Data: Send,
  890    919   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  891    920   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  892    921   
{
  893    922   
    type Rejection =
  894    923   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
  895         -
    type Future = EndpointOperationInputFuture;
         924  +
    type Future = PutWithContentEncodingInputFuture;
  896    925   
  897    926   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  898    927   
        let fut = async move {
  899    928   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  900    929   
                request.headers(),
  901    930   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
  902    931   
            ) {
  903    932   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
  904    933   
            }
  905         -
            crate::protocol_serde::shape_endpoint_operation::de_endpoint_operation_http_request(
  906         -
                request,
  907         -
            )
         934  +
            crate::protocol_serde::shape_put_with_content_encoding::de_put_with_content_encoding_http_request(request)
  908    935   
                            .await
  909    936   
        };
  910    937   
        use ::futures_util::future::TryFutureExt;
  911    938   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
  912    939   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  913    940   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  914    941   
                    });
  915         -
        EndpointOperationInputFuture {
         942  +
        PutWithContentEncodingInputFuture {
  916    943   
            inner: Box::pin(fut),
  917    944   
        }
  918    945   
    }
  919    946   
}
  920    947   
impl
  921    948   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  922    949   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  923         -
    > for crate::output::EndpointOperationOutput
         950  +
    > for crate::output::PutWithContentEncodingOutput
  924    951   
{
  925    952   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  926         -
        match crate::protocol_serde::shape_endpoint_operation::ser_endpoint_operation_http_response(
  927         -
            self,
  928         -
        ) {
         953  +
        match crate::protocol_serde::shape_put_with_content_encoding::ser_put_with_content_encoding_http_response(self) {
  929    954   
                        Ok(response) => response,
  930    955   
                        Err(e) => {
  931    956   
                            ::tracing::error!(error = %e, "failed to serialize response");
  932    957   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  933    958   
                        }
  934    959   
                    }
  935    960   
    }
  936    961   
}
  937    962   
impl
  938    963   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  939    964   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  940         -
    > for crate::error::EndpointOperationError
         965  +
    > for crate::error::PutWithContentEncodingError
  941    966   
{
  942    967   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  943         -
        match crate::protocol_serde::shape_endpoint_operation::ser_endpoint_operation_http_error(
  944         -
            &self,
  945         -
        ) {
         968  +
        match crate::protocol_serde::shape_put_with_content_encoding::ser_put_with_content_encoding_http_error(&self) {
  946    969   
            Ok(mut response) => {
  947         -
                response.extensions_mut().insert(
  948         -
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
  949         -
                        self.name(),
  950         -
                    ),
  951         -
                );
         970  +
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
  952    971   
                response
  953         -
            }
         972  +
            },
  954    973   
            Err(e) => {
  955    974   
                ::tracing::error!(error = %e, "failed to serialize response");
  956    975   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  957    976   
            }
  958    977   
        }
  959    978   
    }
  960    979   
}
  961    980   
  962    981   
::pin_project_lite::pin_project! {
  963    982   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  964         -
    /// [`JsonUnionsInput`](crate::input::JsonUnionsInput) using modelled bindings.
  965         -
    pub struct JsonUnionsInputFuture {
  966         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonUnionsInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
         983  +
    /// [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput) using modelled bindings.
         984  +
    pub struct ContentTypeParametersInputFuture {
         985  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ContentTypeParametersInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
  967    986   
    }
  968    987   
}
  969    988   
  970         -
impl std::future::Future for JsonUnionsInputFuture {
         989  +
impl std::future::Future for ContentTypeParametersInputFuture {
  971    990   
    type Output = Result<
  972         -
        crate::input::JsonUnionsInput,
         991  +
        crate::input::ContentTypeParametersInput,
  973    992   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
  974    993   
    >;
  975    994   
  976    995   
    fn poll(
  977    996   
        self: std::pin::Pin<&mut Self>,
  978    997   
        cx: &mut std::task::Context<'_>,
  979    998   
    ) -> std::task::Poll<Self::Output> {
  980    999   
        let this = self.project();
  981   1000   
        this.inner.as_mut().poll(cx)
  982   1001   
    }
  983   1002   
}
  984   1003   
  985   1004   
impl<B>
  986   1005   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  987   1006   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
  988   1007   
        B,
  989         -
    > for crate::input::JsonUnionsInput
        1008  +
    > for crate::input::ContentTypeParametersInput
  990   1009   
where
  991   1010   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  992   1011   
    B: 'static,
  993   1012   
  994   1013   
    B::Data: Send,
  995   1014   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
  996   1015   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  997   1016   
{
  998   1017   
    type Rejection =
  999   1018   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
 1000         -
    type Future = JsonUnionsInputFuture;
        1019  +
    type Future = ContentTypeParametersInputFuture;
 1001   1020   
 1002   1021   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1003   1022   
        let fut = async move {
 1004   1023   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
 1005   1024   
                request.headers(),
 1006   1025   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
 1007   1026   
            ) {
 1008   1027   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1009   1028   
            }
 1010         -
            crate::protocol_serde::shape_json_unions::de_json_unions_http_request(request).await
        1029  +
            crate::protocol_serde::shape_content_type_parameters::de_content_type_parameters_http_request(request)
        1030  +
                            .await
 1011   1031   
        };
 1012   1032   
        use ::futures_util::future::TryFutureExt;
 1013   1033   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1014   1034   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
 1015   1035   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1016   1036   
                    });
 1017         -
        JsonUnionsInputFuture {
        1037  +
        ContentTypeParametersInputFuture {
 1018   1038   
            inner: Box::pin(fut),
 1019   1039   
        }
 1020   1040   
    }
 1021   1041   
}
 1022   1042   
impl
 1023   1043   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1024   1044   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1025         -
    > for crate::output::JsonUnionsOutput
        1045  +
    > for crate::output::ContentTypeParametersOutput
 1026   1046   
{
 1027   1047   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1028         -
        match crate::protocol_serde::shape_json_unions::ser_json_unions_http_response(self) {
        1048  +
        match crate::protocol_serde::shape_content_type_parameters::ser_content_type_parameters_http_response(self) {
 1029   1049   
                        Ok(response) => response,
 1030   1050   
                        Err(e) => {
 1031   1051   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1032   1052   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1033   1053   
                        }
 1034   1054   
                    }
 1035   1055   
    }
 1036   1056   
}
 1037   1057   
impl
 1038   1058   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1039   1059   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1040         -
    > for crate::error::JsonUnionsError
        1060  +
    > for crate::error::ContentTypeParametersError
 1041   1061   
{
 1042   1062   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1043         -
        match crate::protocol_serde::shape_json_unions::ser_json_unions_http_error(&self) {
        1063  +
        match crate::protocol_serde::shape_content_type_parameters::ser_content_type_parameters_http_error(&self) {
 1044   1064   
            Ok(mut response) => {
 1045         -
                response.extensions_mut().insert(
 1046         -
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
 1047         -
                        self.name(),
 1048         -
                    ),
 1049         -
                );
        1065  +
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
 1050   1066   
                response
 1051         -
            }
        1067  +
            },
 1052   1068   
            Err(e) => {
 1053   1069   
                ::tracing::error!(error = %e, "failed to serialize response");
 1054   1070   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1055   1071   
            }
 1056   1072   
        }
 1057   1073   
    }
 1058   1074   
}
 1059   1075   
 1060   1076   
::pin_project_lite::pin_project! {
 1061   1077   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1062         -
    /// [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput) using modelled bindings.
 1063         -
    pub struct GreetingWithErrorsInputFuture {
 1064         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::GreetingWithErrorsInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
        1078  +
    /// [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput) using modelled bindings.
        1079  +
    pub struct OperationWithDefaultsInputFuture {
        1080  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithDefaultsInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
 1065   1081   
    }
 1066   1082   
}
 1067   1083   
 1068         -
impl std::future::Future for GreetingWithErrorsInputFuture {
        1084  +
impl std::future::Future for OperationWithDefaultsInputFuture {
 1069   1085   
    type Output = Result<
 1070         -
        crate::input::GreetingWithErrorsInput,
        1086  +
        crate::input::OperationWithDefaultsInput,
 1071   1087   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
 1072   1088   
    >;
 1073   1089   
 1074   1090   
    fn poll(
 1075   1091   
        self: std::pin::Pin<&mut Self>,
 1076   1092   
        cx: &mut std::task::Context<'_>,
 1077   1093   
    ) -> std::task::Poll<Self::Output> {
 1078   1094   
        let this = self.project();
 1079   1095   
        this.inner.as_mut().poll(cx)
 1080   1096   
    }
 1081   1097   
}
 1082   1098   
 1083   1099   
impl<B>
 1084   1100   
    ::aws_smithy_legacy_http_server::request::FromRequest<
 1085   1101   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1086   1102   
        B,
 1087         -
    > for crate::input::GreetingWithErrorsInput
        1103  +
    > for crate::input::OperationWithDefaultsInput
 1088   1104   
where
 1089   1105   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
 1090   1106   
    B: 'static,
 1091   1107   
 1092   1108   
    B::Data: Send,
 1093   1109   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
 1094   1110   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
 1095   1111   
{
 1096   1112   
    type Rejection =
 1097   1113   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
 1098         -
    type Future = GreetingWithErrorsInputFuture;
        1114  +
    type Future = OperationWithDefaultsInputFuture;
 1099   1115   
 1100   1116   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1101   1117   
        let fut = async move {
 1102   1118   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
 1103   1119   
                request.headers(),
 1104   1120   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
 1105   1121   
            ) {
 1106   1122   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1107   1123   
            }
 1108         -
            crate::protocol_serde::shape_greeting_with_errors::de_greeting_with_errors_http_request(
 1109         -
                request,
 1110         -
            )
        1124  +
            crate::protocol_serde::shape_operation_with_defaults::de_operation_with_defaults_http_request(request)
 1111   1125   
                            .await
 1112   1126   
        };
 1113   1127   
        use ::futures_util::future::TryFutureExt;
 1114   1128   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1115   1129   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
 1116   1130   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1117   1131   
                    });
 1118         -
        GreetingWithErrorsInputFuture {
        1132  +
        OperationWithDefaultsInputFuture {
 1119   1133   
            inner: Box::pin(fut),
 1120   1134   
        }
 1121   1135   
    }
 1122   1136   
}
 1123   1137   
impl
 1124   1138   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1125   1139   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1126         -
    > for crate::output::GreetingWithErrorsOutput
        1140  +
    > for crate::output::OperationWithDefaultsOutput
 1127   1141   
{
 1128   1142   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1129         -
        match crate::protocol_serde::shape_greeting_with_errors::ser_greeting_with_errors_http_response(self) {
        1143  +
        match crate::protocol_serde::shape_operation_with_defaults::ser_operation_with_defaults_http_response(self) {
 1130   1144   
                        Ok(response) => response,
 1131   1145   
                        Err(e) => {
 1132   1146   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1133   1147   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1134   1148   
                        }
 1135   1149   
                    }
 1136   1150   
    }
 1137   1151   
}
 1138   1152   
impl
 1139   1153   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1140   1154   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1141         -
    > for crate::error::GreetingWithErrorsError
        1155  +
    > for crate::error::OperationWithDefaultsError
 1142   1156   
{
 1143   1157   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1144         -
        match crate::protocol_serde::shape_greeting_with_errors::ser_greeting_with_errors_http_error(
 1145         -
            &self,
 1146         -
        ) {
        1158  +
        match crate::protocol_serde::shape_operation_with_defaults::ser_operation_with_defaults_http_error(&self) {
 1147   1159   
            Ok(mut response) => {
 1148         -
                response.extensions_mut().insert(
 1149         -
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
 1150         -
                        self.name(),
 1151         -
                    ),
 1152         -
                );
        1160  +
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
 1153   1161   
                response
 1154         -
            }
        1162  +
            },
 1155   1163   
            Err(e) => {
 1156   1164   
                ::tracing::error!(error = %e, "failed to serialize response");
 1157   1165   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1158   1166   
            }
 1159   1167   
        }
 1160   1168   
    }
 1161   1169   
}
 1162   1170   
 1163   1171   
::pin_project_lite::pin_project! {
 1164   1172   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1165         -
    /// [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput) using modelled bindings.
 1166         -
    pub struct SimpleScalarPropertiesInputFuture {
 1167         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::SimpleScalarPropertiesInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
        1173  +
    /// [`OperationWithRequiredMembersInput`](crate::input::OperationWithRequiredMembersInput) using modelled bindings.
        1174  +
    pub struct OperationWithRequiredMembersInputFuture {
        1175  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithRequiredMembersInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
 1168   1176   
    }
 1169   1177   
}
 1170   1178   
 1171         -
impl std::future::Future for SimpleScalarPropertiesInputFuture {
        1179  +
impl std::future::Future for OperationWithRequiredMembersInputFuture {
 1172   1180   
    type Output = Result<
 1173         -
        crate::input::SimpleScalarPropertiesInput,
        1181  +
        crate::input::OperationWithRequiredMembersInput,
 1174   1182   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
 1175   1183   
    >;
 1176   1184   
 1177   1185   
    fn poll(
 1178   1186   
        self: std::pin::Pin<&mut Self>,
 1179   1187   
        cx: &mut std::task::Context<'_>,
 1180   1188   
    ) -> std::task::Poll<Self::Output> {
 1181   1189   
        let this = self.project();
 1182   1190   
        this.inner.as_mut().poll(cx)
 1183   1191   
    }
 1184   1192   
}
 1185   1193   
 1186   1194   
impl<B>
 1187   1195   
    ::aws_smithy_legacy_http_server::request::FromRequest<
 1188   1196   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1189   1197   
        B,
 1190         -
    > for crate::input::SimpleScalarPropertiesInput
        1198  +
    > for crate::input::OperationWithRequiredMembersInput
 1191   1199   
where
 1192   1200   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
 1193   1201   
    B: 'static,
 1194   1202   
 1195   1203   
    B::Data: Send,
 1196   1204   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
 1197   1205   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
 1198   1206   
{
 1199   1207   
    type Rejection =
 1200   1208   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
 1201         -
    type Future = SimpleScalarPropertiesInputFuture;
        1209  +
    type Future = OperationWithRequiredMembersInputFuture;
 1202   1210   
 1203   1211   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1204   1212   
        let fut = async move {
 1205   1213   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
 1206   1214   
                request.headers(),
 1207   1215   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
 1208   1216   
            ) {
 1209   1217   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1210   1218   
            }
 1211         -
            crate::protocol_serde::shape_simple_scalar_properties::de_simple_scalar_properties_http_request(request)
        1219  +
            crate::protocol_serde::shape_operation_with_required_members::de_operation_with_required_members_http_request(request)
 1212   1220   
                            .await
 1213   1221   
        };
 1214   1222   
        use ::futures_util::future::TryFutureExt;
 1215   1223   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1216   1224   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
 1217   1225   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1218   1226   
                    });
 1219         -
        SimpleScalarPropertiesInputFuture {
        1227  +
        OperationWithRequiredMembersInputFuture {
 1220   1228   
            inner: Box::pin(fut),
 1221   1229   
        }
 1222   1230   
    }
 1223   1231   
}
 1224   1232   
impl
 1225   1233   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1226   1234   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1227         -
    > for crate::output::SimpleScalarPropertiesOutput
        1235  +
    > for crate::output::OperationWithRequiredMembersOutput
 1228   1236   
{
 1229   1237   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1230         -
        match crate::protocol_serde::shape_simple_scalar_properties::ser_simple_scalar_properties_http_response(self) {
        1238  +
        match crate::protocol_serde::shape_operation_with_required_members::ser_operation_with_required_members_http_response(self) {
 1231   1239   
                        Ok(response) => response,
 1232   1240   
                        Err(e) => {
 1233   1241   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1234   1242   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1235   1243   
                        }
 1236   1244   
                    }
 1237   1245   
    }
 1238   1246   
}
 1239   1247   
impl
 1240   1248   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1241   1249   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1242         -
    > for crate::error::SimpleScalarPropertiesError
        1250  +
    > for crate::error::OperationWithRequiredMembersError
 1243   1251   
{
 1244   1252   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1245         -
        match crate::protocol_serde::shape_simple_scalar_properties::ser_simple_scalar_properties_http_error(&self) {
        1253  +
        match crate::protocol_serde::shape_operation_with_required_members::ser_operation_with_required_members_http_error(&self) {
 1246   1254   
            Ok(mut response) => {
 1247   1255   
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
 1248   1256   
                response
 1249   1257   
            },
 1250   1258   
            Err(e) => {
 1251   1259   
                ::tracing::error!(error = %e, "failed to serialize response");
 1252   1260   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1253   1261   
            }
 1254   1262   
        }
 1255   1263   
    }
 1256   1264   
}
 1257   1265   
 1258   1266   
::pin_project_lite::pin_project! {
 1259   1267   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1260         -
    /// [`EmptyInputAndEmptyOutputInput`](crate::input::EmptyInputAndEmptyOutputInput) using modelled bindings.
 1261         -
    pub struct EmptyInputAndEmptyOutputInputFuture {
 1262         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::EmptyInputAndEmptyOutputInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
        1268  +
    /// [`OperationWithNestedStructureInput`](crate::input::OperationWithNestedStructureInput) using modelled bindings.
        1269  +
    pub struct OperationWithNestedStructureInputFuture {
        1270  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithNestedStructureInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
 1263   1271   
    }
 1264   1272   
}
 1265   1273   
 1266         -
impl std::future::Future for EmptyInputAndEmptyOutputInputFuture {
        1274  +
impl std::future::Future for OperationWithNestedStructureInputFuture {
 1267   1275   
    type Output = Result<
 1268         -
        crate::input::EmptyInputAndEmptyOutputInput,
        1276  +
        crate::input::OperationWithNestedStructureInput,
 1269   1277   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
 1270   1278   
    >;
 1271   1279   
 1272   1280   
    fn poll(
 1273   1281   
        self: std::pin::Pin<&mut Self>,
 1274   1282   
        cx: &mut std::task::Context<'_>,
 1275   1283   
    ) -> std::task::Poll<Self::Output> {
 1276   1284   
        let this = self.project();
 1277   1285   
        this.inner.as_mut().poll(cx)
 1278   1286   
    }
 1279   1287   
}
 1280   1288   
 1281   1289   
impl<B>
 1282   1290   
    ::aws_smithy_legacy_http_server::request::FromRequest<
 1283   1291   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1284   1292   
        B,
 1285         -
    > for crate::input::EmptyInputAndEmptyOutputInput
        1293  +
    > for crate::input::OperationWithNestedStructureInput
 1286   1294   
where
 1287   1295   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
 1288   1296   
    B: 'static,
 1289   1297   
 1290   1298   
    B::Data: Send,
 1291   1299   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
 1292   1300   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
 1293   1301   
{
 1294   1302   
    type Rejection =
 1295   1303   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
 1296         -
    type Future = EmptyInputAndEmptyOutputInputFuture;
        1304  +
    type Future = OperationWithNestedStructureInputFuture;
 1297   1305   
 1298   1306   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1299   1307   
        let fut = async move {
 1300   1308   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
 1301   1309   
                request.headers(),
 1302   1310   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
 1303   1311   
            ) {
 1304   1312   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1305   1313   
            }
 1306         -
            crate::protocol_serde::shape_empty_input_and_empty_output::de_empty_input_and_empty_output_http_request(request)
        1314  +
            crate::protocol_serde::shape_operation_with_nested_structure::de_operation_with_nested_structure_http_request(request)
 1307   1315   
                            .await
 1308   1316   
        };
 1309   1317   
        use ::futures_util::future::TryFutureExt;
 1310   1318   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1311   1319   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
 1312   1320   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1313   1321   
                    });
 1314         -
        EmptyInputAndEmptyOutputInputFuture {
        1322  +
        OperationWithNestedStructureInputFuture {
 1315   1323   
            inner: Box::pin(fut),
 1316   1324   
        }
 1317   1325   
    }
 1318   1326   
}
 1319   1327   
impl
 1320   1328   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1321   1329   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1322         -
    > for crate::output::EmptyInputAndEmptyOutputOutput
        1330  +
    > for crate::output::OperationWithNestedStructureOutput
 1323   1331   
{
 1324   1332   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1325         -
        match crate::protocol_serde::shape_empty_input_and_empty_output::ser_empty_input_and_empty_output_http_response(self) {
        1333  +
        match crate::protocol_serde::shape_operation_with_nested_structure::ser_operation_with_nested_structure_http_response(self) {
 1326   1334   
                        Ok(response) => response,
 1327   1335   
                        Err(e) => {
 1328   1336   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1329   1337   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1330   1338   
                        }
 1331   1339   
                    }
 1332   1340   
    }
 1333   1341   
}
 1334   1342   
impl
 1335   1343   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1336   1344   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1337         -
    > for crate::error::EmptyInputAndEmptyOutputError
        1345  +
    > for crate::error::OperationWithNestedStructureError
 1338   1346   
{
 1339   1347   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1340         -
        match crate::protocol_serde::shape_empty_input_and_empty_output::ser_empty_input_and_empty_output_http_error(&self) {
        1348  +
        match crate::protocol_serde::shape_operation_with_nested_structure::ser_operation_with_nested_structure_http_error(&self) {
 1341   1349   
            Ok(mut response) => {
 1342   1350   
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
 1343   1351   
                response
 1344   1352   
            },
 1345   1353   
            Err(e) => {
 1346   1354   
                ::tracing::error!(error = %e, "failed to serialize response");
 1347   1355   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1348   1356   
            }
 1349   1357   
        }
 1350   1358   
    }
 1351   1359   
}
 1352   1360   
 1353   1361   
::pin_project_lite::pin_project! {
 1354   1362   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1355         -
    /// [`NoInputAndOutputInput`](crate::input::NoInputAndOutputInput) using modelled bindings.
 1356         -
    pub struct NoInputAndOutputInputFuture {
 1357         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::NoInputAndOutputInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
        1363  +
    /// [`OperationWithRequiredMembersWithDefaultsInput`](crate::input::OperationWithRequiredMembersWithDefaultsInput) using modelled bindings.
        1364  +
    pub struct OperationWithRequiredMembersWithDefaultsInputFuture {
        1365  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::OperationWithRequiredMembersWithDefaultsInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
 1358   1366   
    }
 1359   1367   
}
 1360   1368   
 1361         -
impl std::future::Future for NoInputAndOutputInputFuture {
        1369  +
impl std::future::Future for OperationWithRequiredMembersWithDefaultsInputFuture {
 1362   1370   
    type Output = Result<
 1363         -
        crate::input::NoInputAndOutputInput,
        1371  +
        crate::input::OperationWithRequiredMembersWithDefaultsInput,
 1364   1372   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
 1365   1373   
    >;
 1366   1374   
 1367   1375   
    fn poll(
 1368   1376   
        self: std::pin::Pin<&mut Self>,
 1369   1377   
        cx: &mut std::task::Context<'_>,
 1370   1378   
    ) -> std::task::Poll<Self::Output> {
 1371   1379   
        let this = self.project();
 1372   1380   
        this.inner.as_mut().poll(cx)
 1373   1381   
    }
 1374   1382   
}
 1375   1383   
 1376   1384   
impl<B>
 1377   1385   
    ::aws_smithy_legacy_http_server::request::FromRequest<
 1378   1386   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1379   1387   
        B,
 1380         -
    > for crate::input::NoInputAndOutputInput
        1388  +
    > for crate::input::OperationWithRequiredMembersWithDefaultsInput
 1381   1389   
where
 1382   1390   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
 1383   1391   
    B: 'static,
 1384   1392   
 1385   1393   
    B::Data: Send,
 1386   1394   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
 1387   1395   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
 1388   1396   
{
 1389   1397   
    type Rejection =
 1390   1398   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
 1391         -
    type Future = NoInputAndOutputInputFuture;
        1399  +
    type Future = OperationWithRequiredMembersWithDefaultsInputFuture;
 1392   1400   
 1393   1401   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1394   1402   
        let fut = async move {
 1395   1403   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
 1396   1404   
                request.headers(),
 1397   1405   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
 1398   1406   
            ) {
 1399   1407   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1400   1408   
            }
 1401         -
            crate::protocol_serde::shape_no_input_and_output::de_no_input_and_output_http_request(
 1402         -
                request,
 1403         -
            )
        1409  +
            crate::protocol_serde::shape_operation_with_required_members_with_defaults::de_operation_with_required_members_with_defaults_http_request(request)
 1404   1410   
                            .await
 1405   1411   
        };
 1406   1412   
        use ::futures_util::future::TryFutureExt;
 1407   1413   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1408   1414   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
 1409   1415   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1410   1416   
                    });
 1411         -
        NoInputAndOutputInputFuture {
        1417  +
        OperationWithRequiredMembersWithDefaultsInputFuture {
 1412   1418   
            inner: Box::pin(fut),
 1413   1419   
        }
 1414   1420   
    }
 1415   1421   
}
 1416   1422   
impl
 1417   1423   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1418   1424   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1419         -
    > for crate::output::NoInputAndOutputOutput
        1425  +
    > for crate::output::OperationWithRequiredMembersWithDefaultsOutput
 1420   1426   
{
 1421   1427   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1422         -
        match crate::protocol_serde::shape_no_input_and_output::ser_no_input_and_output_http_response(self) {
        1428  +
        match crate::protocol_serde::shape_operation_with_required_members_with_defaults::ser_operation_with_required_members_with_defaults_http_response(self) {
 1423   1429   
                        Ok(response) => response,
 1424   1430   
                        Err(e) => {
 1425   1431   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1426   1432   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1427   1433   
                        }
 1428   1434   
                    }
 1429   1435   
    }
 1430   1436   
}
 1431   1437   
impl
 1432   1438   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1433   1439   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1434         -
    > for crate::error::NoInputAndOutputError
        1440  +
    > for crate::error::OperationWithRequiredMembersWithDefaultsError
 1435   1441   
{
 1436   1442   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1437         -
        match crate::protocol_serde::shape_no_input_and_output::ser_no_input_and_output_http_error(
 1438         -
            &self,
 1439         -
        ) {
        1443  +
        match crate::protocol_serde::shape_operation_with_required_members_with_defaults::ser_operation_with_required_members_with_defaults_http_error(&self) {
 1440   1444   
            Ok(mut response) => {
 1441         -
                response.extensions_mut().insert(
 1442         -
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
 1443         -
                        self.name(),
 1444         -
                    ),
 1445         -
                );
        1445  +
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
 1446   1446   
                response
 1447         -
            }
        1447  +
            },
 1448   1448   
            Err(e) => {
 1449   1449   
                ::tracing::error!(error = %e, "failed to serialize response");
 1450   1450   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1451   1451   
            }
 1452   1452   
        }
 1453   1453   
    }
 1454   1454   
}
 1455   1455   
 1456   1456   
::pin_project_lite::pin_project! {
 1457   1457   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1458         -
    /// [`NoInputAndNoOutputInput`](crate::input::NoInputAndNoOutputInput) using modelled bindings.
 1459         -
    pub struct NoInputAndNoOutputInputFuture {
 1460         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::NoInputAndNoOutputInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
        1458  +
    /// [`QueryIncompatibleOperationInput`](crate::input::QueryIncompatibleOperationInput) using modelled bindings.
        1459  +
    pub struct QueryIncompatibleOperationInputFuture {
        1460  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::QueryIncompatibleOperationInput, ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
 1461   1461   
    }
 1462   1462   
}
 1463   1463   
 1464         -
impl std::future::Future for NoInputAndNoOutputInputFuture {
        1464  +
impl std::future::Future for QueryIncompatibleOperationInputFuture {
 1465   1465   
    type Output = Result<
 1466         -
        crate::input::NoInputAndNoOutputInput,
        1466  +
        crate::input::QueryIncompatibleOperationInput,
 1467   1467   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError,
 1468   1468   
    >;
 1469   1469   
 1470   1470   
    fn poll(
 1471   1471   
        self: std::pin::Pin<&mut Self>,
 1472   1472   
        cx: &mut std::task::Context<'_>,
 1473   1473   
    ) -> std::task::Poll<Self::Output> {
 1474   1474   
        let this = self.project();
 1475   1475   
        this.inner.as_mut().poll(cx)
 1476   1476   
    }
 1477   1477   
}
 1478   1478   
 1479   1479   
impl<B>
 1480   1480   
    ::aws_smithy_legacy_http_server::request::FromRequest<
 1481   1481   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1482   1482   
        B,
 1483         -
    > for crate::input::NoInputAndNoOutputInput
        1483  +
    > for crate::input::QueryIncompatibleOperationInput
 1484   1484   
where
 1485   1485   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
 1486   1486   
    B: 'static,
 1487   1487   
 1488   1488   
    B::Data: Send,
 1489   1489   
    ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection:
 1490   1490   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
 1491   1491   
{
 1492   1492   
    type Rejection =
 1493   1493   
        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError;
 1494         -
    type Future = NoInputAndNoOutputInputFuture;
        1494  +
    type Future = QueryIncompatibleOperationInputFuture;
 1495   1495   
 1496   1496   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
 1497   1497   
        let fut = async move {
 1498   1498   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
 1499   1499   
                request.headers(),
 1500   1500   
                &crate::mimes::CONTENT_TYPE_APPLICATION_X_AMZ_JSON_1_0,
 1501   1501   
            ) {
 1502   1502   
                return Err(::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection::NotAcceptable);
 1503   1503   
            }
 1504         -
            crate::protocol_serde::shape_no_input_and_no_output::de_no_input_and_no_output_http_request(request)
        1504  +
            crate::protocol_serde::shape_query_incompatible_operation::de_query_incompatible_operation_http_request(request)
 1505   1505   
                            .await
 1506   1506   
        };
 1507   1507   
        use ::futures_util::future::TryFutureExt;
 1508   1508   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1509   1509   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
 1510   1510   
                        ::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1511   1511   
                    });
 1512         -
        NoInputAndNoOutputInputFuture {
        1512  +
        QueryIncompatibleOperationInputFuture {
 1513   1513   
            inner: Box::pin(fut),
 1514   1514   
        }
 1515   1515   
    }
 1516   1516   
}
 1517   1517   
impl
 1518   1518   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1519   1519   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1520         -
    > for crate::output::NoInputAndNoOutputOutput
        1520  +
    > for crate::output::QueryIncompatibleOperationOutput
 1521   1521   
{
 1522   1522   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1523         -
        match crate::protocol_serde::shape_no_input_and_no_output::ser_no_input_and_no_output_http_response(self) {
        1523  +
        match crate::protocol_serde::shape_query_incompatible_operation::ser_query_incompatible_operation_http_response(self) {
 1524   1524   
                        Ok(response) => response,
 1525   1525   
                        Err(e) => {
 1526   1526   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1527   1527   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1528   1528   
                        }
 1529   1529   
                    }
 1530   1530   
    }
 1531   1531   
}
 1532   1532   
impl
 1533   1533   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
 1534   1534   
        ::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0,
 1535         -
    > for crate::error::NoInputAndNoOutputError
        1535  +
    > for crate::error::QueryIncompatibleOperationError
 1536   1536   
{
 1537   1537   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
 1538         -
        match crate::protocol_serde::shape_no_input_and_no_output::ser_no_input_and_no_output_http_error(&self) {
        1538  +
        match crate::protocol_serde::shape_query_incompatible_operation::ser_query_incompatible_operation_http_error(&self) {
 1539   1539   
            Ok(mut response) => {
 1540   1540   
                response.extensions_mut().insert(::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(self.name()));
 1541   1541   
                response
 1542   1542   
            },
 1543   1543   
            Err(e) => {
 1544   1544   
                ::tracing::error!(error = %e, "failed to serialize response");
 1545   1545   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::aws_json_10::AwsJson1_0>::into_response(::aws_smithy_legacy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1546   1546   
            }
 1547   1547   
        }
 1548   1548   
    }

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

@@ -1,1 +528,529 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
#[allow(missing_docs)] // documentation missing in model
    3         -
pub struct QueryIncompatibleOperation;
    4      2   
    5         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for QueryIncompatibleOperation {
           3  +
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.
           4  +
pub struct NoInputAndNoOutput;
           5  +
           6  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for NoInputAndNoOutput {
    6      7   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
    7      8   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
    8         -
            "aws.protocoltests.json10#QueryIncompatibleOperation",
           9  +
            "aws.protocoltests.json10#NoInputAndNoOutput",
    9     10   
            "aws.protocoltests.json10",
   10         -
            "QueryIncompatibleOperation",
          11  +
            "NoInputAndNoOutput",
   11     12   
        );
   12     13   
   13         -
    type Input = crate::input::QueryIncompatibleOperationInput;
   14         -
    type Output = crate::output::QueryIncompatibleOperationOutput;
   15         -
    type Error = crate::error::QueryIncompatibleOperationError;
          14  +
    type Input = crate::input::NoInputAndNoOutputInput;
          15  +
    type Output = crate::output::NoInputAndNoOutputOutput;
          16  +
    type Error = crate::error::NoInputAndNoOutputError;
   16     17   
}
   17     18   
   18     19   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
   19         -
    for QueryIncompatibleOperation
          20  +
    for NoInputAndNoOutput
   20     21   
{
   21     22   
    type RequestFmt =
   22     23   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   23     24   
    type ResponseFmt =
   24     25   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   25     26   
   26     27   
    fn request_fmt() -> Self::RequestFmt {
   27     28   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
   28     29   
    }
   29     30   
   30     31   
    fn response_fmt() -> Self::ResponseFmt {
   31     32   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   32     33   
    }
   33     34   
}
   34     35   
   35         -
#[allow(missing_docs)] // documentation missing in model
   36         -
pub struct OperationWithRequiredMembersWithDefaults;
          36  +
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.
          37  +
pub struct NoInputAndOutput;
   37     38   
   38         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape
   39         -
    for OperationWithRequiredMembersWithDefaults
   40         -
{
          39  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for NoInputAndOutput {
   41     40   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
   42     41   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
   43         -
            "aws.protocoltests.json10#OperationWithRequiredMembersWithDefaults",
          42  +
            "aws.protocoltests.json10#NoInputAndOutput",
   44     43   
            "aws.protocoltests.json10",
   45         -
            "OperationWithRequiredMembersWithDefaults",
          44  +
            "NoInputAndOutput",
   46     45   
        );
   47     46   
   48         -
    type Input = crate::input::OperationWithRequiredMembersWithDefaultsInput;
   49         -
    type Output = crate::output::OperationWithRequiredMembersWithDefaultsOutput;
   50         -
    type Error = crate::error::OperationWithRequiredMembersWithDefaultsError;
          47  +
    type Input = crate::input::NoInputAndOutputInput;
          48  +
    type Output = crate::output::NoInputAndOutputOutput;
          49  +
    type Error = crate::error::NoInputAndOutputError;
   51     50   
}
   52     51   
   53     52   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
   54         -
    for OperationWithRequiredMembersWithDefaults
          53  +
    for NoInputAndOutput
   55     54   
{
   56     55   
    type RequestFmt =
   57     56   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   58     57   
    type ResponseFmt =
   59     58   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   60     59   
   61     60   
    fn request_fmt() -> Self::RequestFmt {
   62     61   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
   63     62   
    }
   64     63   
   65     64   
    fn response_fmt() -> Self::ResponseFmt {
   66     65   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   67     66   
    }
   68     67   
}
   69     68   
   70         -
#[allow(missing_docs)] // documentation missing in model
   71         -
pub struct OperationWithNestedStructure;
          69  +
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.
          70  +
pub struct EmptyInputAndEmptyOutput;
   72     71   
   73         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OperationWithNestedStructure {
          72  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for EmptyInputAndEmptyOutput {
   74     73   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
   75     74   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
   76         -
            "aws.protocoltests.json10#OperationWithNestedStructure",
          75  +
            "aws.protocoltests.json10#EmptyInputAndEmptyOutput",
   77     76   
            "aws.protocoltests.json10",
   78         -
            "OperationWithNestedStructure",
          77  +
            "EmptyInputAndEmptyOutput",
   79     78   
        );
   80     79   
   81         -
    type Input = crate::input::OperationWithNestedStructureInput;
   82         -
    type Output = crate::output::OperationWithNestedStructureOutput;
   83         -
    type Error = crate::error::OperationWithNestedStructureError;
          80  +
    type Input = crate::input::EmptyInputAndEmptyOutputInput;
          81  +
    type Output = crate::output::EmptyInputAndEmptyOutputOutput;
          82  +
    type Error = crate::error::EmptyInputAndEmptyOutputError;
   84     83   
}
   85     84   
   86     85   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
   87         -
    for OperationWithNestedStructure
          86  +
    for EmptyInputAndEmptyOutput
   88     87   
{
   89     88   
    type RequestFmt =
   90     89   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   91     90   
    type ResponseFmt =
   92     91   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   93     92   
   94     93   
    fn request_fmt() -> Self::RequestFmt {
   95     94   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
   96     95   
    }
   97     96   
   98     97   
    fn response_fmt() -> Self::ResponseFmt {
   99     98   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  100     99   
    }
  101    100   
}
  102    101   
  103    102   
#[allow(missing_docs)] // documentation missing in model
  104         -
pub struct OperationWithRequiredMembers;
         103  +
pub struct SimpleScalarProperties;
  105    104   
  106         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OperationWithRequiredMembers {
         105  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for SimpleScalarProperties {
  107    106   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  108    107   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  109         -
            "aws.protocoltests.json10#OperationWithRequiredMembers",
         108  +
            "aws.protocoltests.json10#SimpleScalarProperties",
  110    109   
            "aws.protocoltests.json10",
  111         -
            "OperationWithRequiredMembers",
         110  +
            "SimpleScalarProperties",
  112    111   
        );
  113    112   
  114         -
    type Input = crate::input::OperationWithRequiredMembersInput;
  115         -
    type Output = crate::output::OperationWithRequiredMembersOutput;
  116         -
    type Error = crate::error::OperationWithRequiredMembersError;
         113  +
    type Input = crate::input::SimpleScalarPropertiesInput;
         114  +
    type Output = crate::output::SimpleScalarPropertiesOutput;
         115  +
    type Error = crate::error::SimpleScalarPropertiesError;
  117    116   
}
  118    117   
  119    118   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  120         -
    for OperationWithRequiredMembers
         119  +
    for SimpleScalarProperties
  121    120   
{
  122    121   
    type RequestFmt =
  123    122   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  124    123   
    type ResponseFmt =
  125    124   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  126    125   
  127    126   
    fn request_fmt() -> Self::RequestFmt {
  128    127   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  129    128   
    }
  130    129   
  131    130   
    fn response_fmt() -> Self::ResponseFmt {
  132    131   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  133    132   
    }
  134    133   
}
  135    134   
  136         -
#[allow(missing_docs)] // documentation missing in model
  137         -
pub struct OperationWithDefaults;
         135  +
/// This operation has three possible return values: 1. A successful response in the form of GreetingWithErrorsOutput 2. An InvalidGreeting error. 3. A ComplexError error. Implementations must be able to successfully take a response and properly deserialize successful and error responses.
         136  +
pub struct GreetingWithErrors;
  138    137   
  139         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OperationWithDefaults {
         138  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for GreetingWithErrors {
  140    139   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  141    140   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  142         -
            "aws.protocoltests.json10#OperationWithDefaults",
         141  +
            "aws.protocoltests.json10#GreetingWithErrors",
  143    142   
            "aws.protocoltests.json10",
  144         -
            "OperationWithDefaults",
         143  +
            "GreetingWithErrors",
  145    144   
        );
  146    145   
  147         -
    type Input = crate::input::OperationWithDefaultsInput;
  148         -
    type Output = crate::output::OperationWithDefaultsOutput;
  149         -
    type Error = crate::error::OperationWithDefaultsError;
         146  +
    type Input = crate::input::GreetingWithErrorsInput;
         147  +
    type Output = crate::output::GreetingWithErrorsOutput;
         148  +
    type Error = crate::error::GreetingWithErrorsError;
  150    149   
}
  151    150   
  152    151   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  153         -
    for OperationWithDefaults
         152  +
    for GreetingWithErrors
  154    153   
{
  155    154   
    type RequestFmt =
  156    155   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  157    156   
    type ResponseFmt =
  158    157   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  159    158   
  160    159   
    fn request_fmt() -> Self::RequestFmt {
  161    160   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  162    161   
    }
  163    162   
  164    163   
    fn response_fmt() -> Self::ResponseFmt {
  165    164   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  166    165   
    }
  167    166   
}
  168    167   
  169         -
/// The example tests how servers must support requests containing a `Content-Type` header with parameters.
  170         -
pub struct ContentTypeParameters;
         168  +
/// This operation uses unions for inputs and outputs.
         169  +
pub struct JsonUnions;
  171    170   
  172         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for ContentTypeParameters {
         171  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for JsonUnions {
  173    172   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  174    173   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  175         -
            "aws.protocoltests.json10#ContentTypeParameters",
         174  +
            "aws.protocoltests.json10#JsonUnions",
  176    175   
            "aws.protocoltests.json10",
  177         -
            "ContentTypeParameters",
         176  +
            "JsonUnions",
  178    177   
        );
  179    178   
  180         -
    type Input = crate::input::ContentTypeParametersInput;
  181         -
    type Output = crate::output::ContentTypeParametersOutput;
  182         -
    type Error = crate::error::ContentTypeParametersError;
         179  +
    type Input = crate::input::JsonUnionsInput;
         180  +
    type Output = crate::output::JsonUnionsOutput;
         181  +
    type Error = crate::error::JsonUnionsError;
  183    182   
}
  184    183   
  185         -
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  186         -
    for ContentTypeParameters
  187         -
{
         184  +
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for JsonUnions {
  188    185   
    type RequestFmt =
  189    186   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  190    187   
    type ResponseFmt =
  191    188   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  192    189   
  193    190   
    fn request_fmt() -> Self::RequestFmt {
  194    191   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  195    192   
    }
  196    193   
  197    194   
    fn response_fmt() -> Self::ResponseFmt {
  198    195   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  199    196   
    }
  200    197   
}
  201    198   
  202    199   
#[allow(missing_docs)] // documentation missing in model
  203         -
pub struct PutWithContentEncoding;
         200  +
pub struct EndpointOperation;
  204    201   
  205         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for PutWithContentEncoding {
         202  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for EndpointOperation {
  206    203   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  207    204   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  208         -
            "aws.protocoltests.json10#PutWithContentEncoding",
         205  +
            "aws.protocoltests.json10#EndpointOperation",
  209    206   
            "aws.protocoltests.json10",
  210         -
            "PutWithContentEncoding",
         207  +
            "EndpointOperation",
  211    208   
        );
  212    209   
  213         -
    type Input = crate::input::PutWithContentEncodingInput;
  214         -
    type Output = crate::output::PutWithContentEncodingOutput;
  215         -
    type Error = crate::error::PutWithContentEncodingError;
         210  +
    type Input = crate::input::EndpointOperationInput;
         211  +
    type Output = crate::output::EndpointOperationOutput;
         212  +
    type Error = crate::error::EndpointOperationError;
  216    213   
}
  217    214   
  218    215   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  219         -
    for PutWithContentEncoding
         216  +
    for EndpointOperation
  220    217   
{
  221    218   
    type RequestFmt =
  222    219   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  223    220   
    type ResponseFmt =
  224    221   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  225    222   
  226    223   
    fn request_fmt() -> Self::RequestFmt {
  227    224   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  228    225   
    }
  229    226   
  230    227   
    fn response_fmt() -> Self::ResponseFmt {
  231    228   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  232    229   
    }
  233    230   
}
  234    231   
  235    232   
#[allow(missing_docs)] // documentation missing in model
  236         -
pub struct HostWithPathOperation;
         233  +
pub struct EndpointWithHostLabelOperation;
  237    234   
  238         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for HostWithPathOperation {
         235  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for EndpointWithHostLabelOperation {
  239    236   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  240    237   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  241         -
            "aws.protocoltests.json10#HostWithPathOperation",
         238  +
            "aws.protocoltests.json10#EndpointWithHostLabelOperation",
  242    239   
            "aws.protocoltests.json10",
  243         -
            "HostWithPathOperation",
         240  +
            "EndpointWithHostLabelOperation",
  244    241   
        );
  245    242   
  246         -
    type Input = crate::input::HostWithPathOperationInput;
  247         -
    type Output = crate::output::HostWithPathOperationOutput;
  248         -
    type Error = crate::error::HostWithPathOperationError;
         243  +
    type Input = crate::input::EndpointWithHostLabelOperationInput;
         244  +
    type Output = crate::output::EndpointWithHostLabelOperationOutput;
         245  +
    type Error = crate::error::EndpointWithHostLabelOperationError;
  249    246   
}
  250    247   
  251    248   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  252         -
    for HostWithPathOperation
         249  +
    for EndpointWithHostLabelOperation
  253    250   
{
  254    251   
    type RequestFmt =
  255    252   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  256    253   
    type ResponseFmt =
  257    254   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  258    255   
  259    256   
    fn request_fmt() -> Self::RequestFmt {
  260    257   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  261    258   
    }
  262    259   
  263    260   
    fn response_fmt() -> Self::ResponseFmt {
  264    261   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  265    262   
    }
  266    263   
}
  267    264   
  268    265   
#[allow(missing_docs)] // documentation missing in model
  269         -
pub struct EndpointWithHostLabelOperation;
         266  +
pub struct HostWithPathOperation;
  270    267   
  271         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for EndpointWithHostLabelOperation {
         268  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for HostWithPathOperation {
  272    269   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  273    270   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  274         -
            "aws.protocoltests.json10#EndpointWithHostLabelOperation",
         271  +
            "aws.protocoltests.json10#HostWithPathOperation",
  275    272   
            "aws.protocoltests.json10",
  276         -
            "EndpointWithHostLabelOperation",
         273  +
            "HostWithPathOperation",
  277    274   
        );
  278    275   
  279         -
    type Input = crate::input::EndpointWithHostLabelOperationInput;
  280         -
    type Output = crate::output::EndpointWithHostLabelOperationOutput;
  281         -
    type Error = crate::error::EndpointWithHostLabelOperationError;
         276  +
    type Input = crate::input::HostWithPathOperationInput;
         277  +
    type Output = crate::output::HostWithPathOperationOutput;
         278  +
    type Error = crate::error::HostWithPathOperationError;
  282    279   
}
  283    280   
  284    281   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  285         -
    for EndpointWithHostLabelOperation
         282  +
    for HostWithPathOperation
  286    283   
{
  287    284   
    type RequestFmt =
  288    285   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  289    286   
    type ResponseFmt =
  290    287   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  291    288   
  292    289   
    fn request_fmt() -> Self::RequestFmt {
  293    290   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  294    291   
    }
  295    292   
  296    293   
    fn response_fmt() -> Self::ResponseFmt {
  297    294   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  298    295   
    }
  299    296   
}
  300    297   
  301    298   
#[allow(missing_docs)] // documentation missing in model
  302         -
pub struct EndpointOperation;
         299  +
pub struct PutWithContentEncoding;
  303    300   
  304         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for EndpointOperation {
         301  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for PutWithContentEncoding {
  305    302   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  306    303   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  307         -
            "aws.protocoltests.json10#EndpointOperation",
         304  +
            "aws.protocoltests.json10#PutWithContentEncoding",
  308    305   
            "aws.protocoltests.json10",
  309         -
            "EndpointOperation",
         306  +
            "PutWithContentEncoding",
  310    307   
        );
  311    308   
  312         -
    type Input = crate::input::EndpointOperationInput;
  313         -
    type Output = crate::output::EndpointOperationOutput;
  314         -
    type Error = crate::error::EndpointOperationError;
         309  +
    type Input = crate::input::PutWithContentEncodingInput;
         310  +
    type Output = crate::output::PutWithContentEncodingOutput;
         311  +
    type Error = crate::error::PutWithContentEncodingError;
  315    312   
}
  316    313   
  317    314   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  318         -
    for EndpointOperation
         315  +
    for PutWithContentEncoding
  319    316   
{
  320    317   
    type RequestFmt =
  321    318   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  322    319   
    type ResponseFmt =
  323    320   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  324    321   
  325    322   
    fn request_fmt() -> Self::RequestFmt {
  326    323   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  327    324   
    }
  328    325   
  329    326   
    fn response_fmt() -> Self::ResponseFmt {
  330    327   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  331    328   
    }
  332    329   
}
  333    330   
  334         -
/// This operation uses unions for inputs and outputs.
  335         -
pub struct JsonUnions;
         331  +
/// The example tests how servers must support requests containing a `Content-Type` header with parameters.
         332  +
pub struct ContentTypeParameters;
  336    333   
  337         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for JsonUnions {
         334  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for ContentTypeParameters {
  338    335   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  339    336   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  340         -
            "aws.protocoltests.json10#JsonUnions",
         337  +
            "aws.protocoltests.json10#ContentTypeParameters",
  341    338   
            "aws.protocoltests.json10",
  342         -
            "JsonUnions",
         339  +
            "ContentTypeParameters",
  343    340   
        );
  344    341   
  345         -
    type Input = crate::input::JsonUnionsInput;
  346         -
    type Output = crate::output::JsonUnionsOutput;
  347         -
    type Error = crate::error::JsonUnionsError;
         342  +
    type Input = crate::input::ContentTypeParametersInput;
         343  +
    type Output = crate::output::ContentTypeParametersOutput;
         344  +
    type Error = crate::error::ContentTypeParametersError;
  348    345   
}
  349    346   
  350         -
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for JsonUnions {
         347  +
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
         348  +
    for ContentTypeParameters
         349  +
{
  351    350   
    type RequestFmt =
  352    351   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  353    352   
    type ResponseFmt =
  354    353   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  355    354   
  356    355   
    fn request_fmt() -> Self::RequestFmt {
  357    356   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  358    357   
    }
  359    358   
  360    359   
    fn response_fmt() -> Self::ResponseFmt {
  361    360   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  362    361   
    }
  363    362   
}
  364    363   
  365         -
/// This operation has three possible return values: 1. A successful response in the form of GreetingWithErrorsOutput 2. An InvalidGreeting error. 3. A ComplexError error. Implementations must be able to successfully take a response and properly deserialize successful and error responses.
  366         -
pub struct GreetingWithErrors;
         364  +
#[allow(missing_docs)] // documentation missing in model
         365  +
pub struct OperationWithDefaults;
  367    366   
  368         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for GreetingWithErrors {
         367  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OperationWithDefaults {
  369    368   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  370    369   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  371         -
            "aws.protocoltests.json10#GreetingWithErrors",
         370  +
            "aws.protocoltests.json10#OperationWithDefaults",
  372    371   
            "aws.protocoltests.json10",
  373         -
            "GreetingWithErrors",
         372  +
            "OperationWithDefaults",
  374    373   
        );
  375    374   
  376         -
    type Input = crate::input::GreetingWithErrorsInput;
  377         -
    type Output = crate::output::GreetingWithErrorsOutput;
  378         -
    type Error = crate::error::GreetingWithErrorsError;
         375  +
    type Input = crate::input::OperationWithDefaultsInput;
         376  +
    type Output = crate::output::OperationWithDefaultsOutput;
         377  +
    type Error = crate::error::OperationWithDefaultsError;
  379    378   
}
  380    379   
  381    380   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  382         -
    for GreetingWithErrors
         381  +
    for OperationWithDefaults
  383    382   
{
  384    383   
    type RequestFmt =
  385    384   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  386    385   
    type ResponseFmt =
  387    386   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  388    387   
  389    388   
    fn request_fmt() -> Self::RequestFmt {
  390    389   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  391    390   
    }
  392    391   
  393    392   
    fn response_fmt() -> Self::ResponseFmt {
  394    393   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  395    394   
    }
  396    395   
}
  397    396   
  398    397   
#[allow(missing_docs)] // documentation missing in model
  399         -
pub struct SimpleScalarProperties;
         398  +
pub struct OperationWithRequiredMembers;
  400    399   
  401         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for SimpleScalarProperties {
         400  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OperationWithRequiredMembers {
  402    401   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  403    402   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  404         -
            "aws.protocoltests.json10#SimpleScalarProperties",
         403  +
            "aws.protocoltests.json10#OperationWithRequiredMembers",
  405    404   
            "aws.protocoltests.json10",
  406         -
            "SimpleScalarProperties",
         405  +
            "OperationWithRequiredMembers",
  407    406   
        );
  408    407   
  409         -
    type Input = crate::input::SimpleScalarPropertiesInput;
  410         -
    type Output = crate::output::SimpleScalarPropertiesOutput;
  411         -
    type Error = crate::error::SimpleScalarPropertiesError;
         408  +
    type Input = crate::input::OperationWithRequiredMembersInput;
         409  +
    type Output = crate::output::OperationWithRequiredMembersOutput;
         410  +
    type Error = crate::error::OperationWithRequiredMembersError;
  412    411   
}
  413    412   
  414    413   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  415         -
    for SimpleScalarProperties
         414  +
    for OperationWithRequiredMembers
  416    415   
{
  417    416   
    type RequestFmt =
  418    417   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  419    418   
    type ResponseFmt =
  420    419   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  421    420   
  422    421   
    fn request_fmt() -> Self::RequestFmt {
  423    422   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  424    423   
    }
  425    424   
  426    425   
    fn response_fmt() -> Self::ResponseFmt {
  427    426   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  428    427   
    }
  429    428   
}
  430    429   
  431         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.
  432         -
pub struct EmptyInputAndEmptyOutput;
         430  +
#[allow(missing_docs)] // documentation missing in model
         431  +
pub struct OperationWithNestedStructure;
  433    432   
  434         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for EmptyInputAndEmptyOutput {
         433  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OperationWithNestedStructure {
  435    434   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  436    435   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  437         -
            "aws.protocoltests.json10#EmptyInputAndEmptyOutput",
         436  +
            "aws.protocoltests.json10#OperationWithNestedStructure",
  438    437   
            "aws.protocoltests.json10",
  439         -
            "EmptyInputAndEmptyOutput",
         438  +
            "OperationWithNestedStructure",
  440    439   
        );
  441    440   
  442         -
    type Input = crate::input::EmptyInputAndEmptyOutputInput;
  443         -
    type Output = crate::output::EmptyInputAndEmptyOutputOutput;
  444         -
    type Error = crate::error::EmptyInputAndEmptyOutputError;
         441  +
    type Input = crate::input::OperationWithNestedStructureInput;
         442  +
    type Output = crate::output::OperationWithNestedStructureOutput;
         443  +
    type Error = crate::error::OperationWithNestedStructureError;
  445    444   
}
  446    445   
  447    446   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  448         -
    for EmptyInputAndEmptyOutput
         447  +
    for OperationWithNestedStructure
  449    448   
{
  450    449   
    type RequestFmt =
  451    450   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  452    451   
    type ResponseFmt =
  453    452   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  454    453   
  455    454   
    fn request_fmt() -> Self::RequestFmt {
  456    455   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  457    456   
    }
  458    457   
  459    458   
    fn response_fmt() -> Self::ResponseFmt {
  460    459   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  461    460   
    }
  462    461   
}
  463    462   
  464         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.
  465         -
pub struct NoInputAndOutput;
         463  +
#[allow(missing_docs)] // documentation missing in model
         464  +
pub struct OperationWithRequiredMembersWithDefaults;
  466    465   
  467         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for NoInputAndOutput {
         466  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape
         467  +
    for OperationWithRequiredMembersWithDefaults
         468  +
{
  468    469   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  469    470   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  470         -
            "aws.protocoltests.json10#NoInputAndOutput",
         471  +
            "aws.protocoltests.json10#OperationWithRequiredMembersWithDefaults",
  471    472   
            "aws.protocoltests.json10",
  472         -
            "NoInputAndOutput",
         473  +
            "OperationWithRequiredMembersWithDefaults",
  473    474   
        );
  474    475   
  475         -
    type Input = crate::input::NoInputAndOutputInput;
  476         -
    type Output = crate::output::NoInputAndOutputOutput;
  477         -
    type Error = crate::error::NoInputAndOutputError;
         476  +
    type Input = crate::input::OperationWithRequiredMembersWithDefaultsInput;
         477  +
    type Output = crate::output::OperationWithRequiredMembersWithDefaultsOutput;
         478  +
    type Error = crate::error::OperationWithRequiredMembersWithDefaultsError;
  478    479   
}
  479    480   
  480    481   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  481         -
    for NoInputAndOutput
         482  +
    for OperationWithRequiredMembersWithDefaults
  482    483   
{
  483    484   
    type RequestFmt =
  484    485   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  485    486   
    type ResponseFmt =
  486    487   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  487    488   
  488    489   
    fn request_fmt() -> Self::RequestFmt {
  489    490   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  490    491   
    }
  491    492   
  492    493   
    fn response_fmt() -> Self::ResponseFmt {
  493    494   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  494    495   
    }
  495    496   
}
  496    497   
  497         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.
  498         -
pub struct NoInputAndNoOutput;
         498  +
#[allow(missing_docs)] // documentation missing in model
         499  +
pub struct QueryIncompatibleOperation;
  499    500   
  500         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for NoInputAndNoOutput {
         501  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for QueryIncompatibleOperation {
  501    502   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  502    503   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  503         -
            "aws.protocoltests.json10#NoInputAndNoOutput",
         504  +
            "aws.protocoltests.json10#QueryIncompatibleOperation",
  504    505   
            "aws.protocoltests.json10",
  505         -
            "NoInputAndNoOutput",
         506  +
            "QueryIncompatibleOperation",
  506    507   
        );
  507    508   
  508         -
    type Input = crate::input::NoInputAndNoOutputInput;
  509         -
    type Output = crate::output::NoInputAndNoOutputOutput;
  510         -
    type Error = crate::error::NoInputAndNoOutputError;
         509  +
    type Input = crate::input::QueryIncompatibleOperationInput;
         510  +
    type Output = crate::output::QueryIncompatibleOperationOutput;
         511  +
    type Error = crate::error::QueryIncompatibleOperationError;
  511    512   
}
  512    513   
  513    514   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  514         -
    for NoInputAndNoOutput
         515  +
    for QueryIncompatibleOperation
  515    516   
{
  516    517   
    type RequestFmt =
  517    518   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  518    519   
    type ResponseFmt =
  519    520   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  520    521   
  521    522   
    fn request_fmt() -> Self::RequestFmt {
  522    523   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  523    524   
    }
  524    525   

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

@@ -1,1 +579,557 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[::pyo3::pyclass]
    3      3   
/// :rtype None:
    4      4   
#[allow(missing_docs)] // documentation missing in model
    5      5   
#[derive(
    6      6   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
    7      7   
)]
    8         -
pub struct QueryIncompatibleOperationOutput {}
           8  +
pub struct NoInputAndNoOutputOutput {}
    9      9   
#[allow(clippy::new_without_default)]
   10     10   
#[allow(clippy::too_many_arguments)]
   11     11   
#[::pyo3::pymethods]
   12         -
impl QueryIncompatibleOperationOutput {
          12  +
impl NoInputAndNoOutputOutput {
   13     13   
    #[new]
   14     14   
    pub fn new() -> Self {
   15     15   
        Self {}
   16     16   
    }
   17     17   
    fn __repr__(&self) -> String {
   18     18   
        format!("{self:?}")
   19     19   
    }
   20     20   
    fn __str__(&self) -> String {
   21     21   
        format!("{self:?}")
   22     22   
    }
   23     23   
}
   24         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<QueryIncompatibleOperationOutput> {
          24  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<NoInputAndNoOutputOutput> {
   25     25   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
   26         -
        ob.extract::<QueryIncompatibleOperationOutput>()
   27         -
            .map(Box::new)
          26  +
        ob.extract::<NoInputAndNoOutputOutput>().map(Box::new)
   28     27   
    }
   29     28   
}
   30     29   
   31         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<QueryIncompatibleOperationOutput> {
          30  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<NoInputAndNoOutputOutput> {
   32     31   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
   33     32   
        (*self).into_py(py)
   34     33   
    }
   35     34   
}
   36         -
impl QueryIncompatibleOperationOutput {
   37         -
    /// Creates a new builder-style object to manufacture [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
   38         -
    pub fn builder() -> crate::output::query_incompatible_operation_output::Builder {
   39         -
        crate::output::query_incompatible_operation_output::Builder::default()
          35  +
impl NoInputAndNoOutputOutput {
          36  +
    /// Creates a new builder-style object to manufacture [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
          37  +
    pub fn builder() -> crate::output::no_input_and_no_output_output::Builder {
          38  +
        crate::output::no_input_and_no_output_output::Builder::default()
   40     39   
    }
   41     40   
}
   42     41   
   43     42   
#[::pyo3::pyclass]
   44         -
/// :param required_string str:
   45         -
/// :param required_boolean bool:
   46         -
/// :param required_list typing.List\[str\]:
   47         -
/// :param required_timestamp json_rpc10.types.DateTime:
   48         -
/// :param required_blob json_rpc10.types.Blob:
   49         -
/// :param required_byte int:
   50         -
/// :param required_short int:
   51         -
/// :param required_integer int:
   52         -
/// :param required_long int:
   53         -
/// :param required_float float:
   54         -
/// :param required_double float:
   55         -
/// :param required_map typing.Dict\[str, str\]:
   56         -
/// :param required_enum json_rpc10.model.RequiredEnum:
   57         -
/// :param required_int_enum int:
   58     43   
/// :rtype None:
   59     44   
#[allow(missing_docs)] // documentation missing in model
   60         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
   61         -
pub struct OperationWithRequiredMembersWithDefaultsOutput {
   62         -
    #[pyo3(get, set)]
   63         -
    /// :type str:
   64         -
    #[allow(missing_docs)] // documentation missing in model
   65         -
    pub required_string: ::std::string::String,
   66         -
    #[pyo3(get, set)]
   67         -
    /// :type bool:
   68         -
    #[allow(missing_docs)] // documentation missing in model
   69         -
    pub required_boolean: bool,
   70         -
    #[pyo3(get, set)]
   71         -
    /// :type typing.List\[str\]:
   72         -
    #[allow(missing_docs)] // documentation missing in model
   73         -
    pub required_list: ::std::vec::Vec<::std::string::String>,
   74         -
    #[pyo3(get, set)]
   75         -
    /// :type json_rpc10.types.DateTime:
   76         -
    #[allow(missing_docs)] // documentation missing in model
   77         -
    pub required_timestamp: ::aws_smithy_http_server_python::types::DateTime,
   78         -
    #[pyo3(get, set)]
   79         -
    /// :type json_rpc10.types.Blob:
   80         -
    #[allow(missing_docs)] // documentation missing in model
   81         -
    pub required_blob: ::aws_smithy_http_server_python::types::Blob,
   82         -
    #[pyo3(get, set)]
   83         -
    /// :type int:
   84         -
    #[allow(missing_docs)] // documentation missing in model
   85         -
    pub required_byte: i8,
   86         -
    #[pyo3(get, set)]
   87         -
    /// :type int:
   88         -
    #[allow(missing_docs)] // documentation missing in model
   89         -
    pub required_short: i16,
   90         -
    #[pyo3(get, set)]
   91         -
    /// :type int:
   92         -
    #[allow(missing_docs)] // documentation missing in model
   93         -
    pub required_integer: i32,
   94         -
    #[pyo3(get, set)]
   95         -
    /// :type int:
   96         -
    #[allow(missing_docs)] // documentation missing in model
   97         -
    pub required_long: i64,
   98         -
    #[pyo3(get, set)]
   99         -
    /// :type float:
  100         -
    #[allow(missing_docs)] // documentation missing in model
  101         -
    pub required_float: f32,
  102         -
    #[pyo3(get, set)]
  103         -
    /// :type float:
  104         -
    #[allow(missing_docs)] // documentation missing in model
  105         -
    pub required_double: f64,
  106         -
    #[pyo3(get, set)]
  107         -
    /// :type typing.Dict\[str, str\]:
  108         -
    #[allow(missing_docs)] // documentation missing in model
  109         -
    pub required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  110         -
    #[pyo3(get, set)]
  111         -
    /// :type json_rpc10.model.RequiredEnum:
  112         -
    #[allow(missing_docs)] // documentation missing in model
  113         -
    pub required_enum: crate::model::RequiredEnum,
  114         -
    #[pyo3(get, set)]
  115         -
    /// :type int:
  116         -
    #[allow(missing_docs)] // documentation missing in model
  117         -
    pub required_int_enum: i32,
  118         -
}
  119         -
impl OperationWithRequiredMembersWithDefaultsOutput {
  120         -
    #[allow(missing_docs)] // documentation missing in model
  121         -
    pub fn required_string(&self) -> &str {
  122         -
        use std::ops::Deref;
  123         -
        self.required_string.deref()
  124         -
    }
  125         -
    #[allow(missing_docs)] // documentation missing in model
  126         -
    pub fn required_boolean(&self) -> bool {
  127         -
        self.required_boolean
  128         -
    }
  129         -
    #[allow(missing_docs)] // documentation missing in model
  130         -
    pub fn required_list(&self) -> &[::std::string::String] {
  131         -
        use std::ops::Deref;
  132         -
        self.required_list.deref()
  133         -
    }
  134         -
    #[allow(missing_docs)] // documentation missing in model
  135         -
    pub fn required_timestamp(&self) -> &::aws_smithy_http_server_python::types::DateTime {
  136         -
        &self.required_timestamp
  137         -
    }
  138         -
    #[allow(missing_docs)] // documentation missing in model
  139         -
    pub fn required_blob(&self) -> &::aws_smithy_http_server_python::types::Blob {
  140         -
        &self.required_blob
  141         -
    }
  142         -
    #[allow(missing_docs)] // documentation missing in model
  143         -
    pub fn required_byte(&self) -> i8 {
  144         -
        self.required_byte
  145         -
    }
  146         -
    #[allow(missing_docs)] // documentation missing in model
  147         -
    pub fn required_short(&self) -> i16 {
  148         -
        self.required_short
  149         -
    }
  150         -
    #[allow(missing_docs)] // documentation missing in model
  151         -
    pub fn required_integer(&self) -> i32 {
  152         -
        self.required_integer
  153         -
    }
  154         -
    #[allow(missing_docs)] // documentation missing in model
  155         -
    pub fn required_long(&self) -> i64 {
  156         -
        self.required_long
          45  +
#[derive(
          46  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          47  +
)]
          48  +
pub struct NoInputAndOutputOutput {}
          49  +
#[allow(clippy::new_without_default)]
          50  +
#[allow(clippy::too_many_arguments)]
          51  +
#[::pyo3::pymethods]
          52  +
impl NoInputAndOutputOutput {
          53  +
    #[new]
          54  +
    pub fn new() -> Self {
          55  +
        Self {}
  157     56   
    }
  158         -
    #[allow(missing_docs)] // documentation missing in model
  159         -
    pub fn required_float(&self) -> f32 {
  160         -
        self.required_float
          57  +
    fn __repr__(&self) -> String {
          58  +
        format!("{self:?}")
  161     59   
    }
  162         -
    #[allow(missing_docs)] // documentation missing in model
  163         -
    pub fn required_double(&self) -> f64 {
  164         -
        self.required_double
          60  +
    fn __str__(&self) -> String {
          61  +
        format!("{self:?}")
  165     62   
    }
  166         -
    #[allow(missing_docs)] // documentation missing in model
  167         -
    pub fn required_map(
  168         -
        &self,
  169         -
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
  170         -
        &self.required_map
          63  +
}
          64  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<NoInputAndOutputOutput> {
          65  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
          66  +
        ob.extract::<NoInputAndOutputOutput>().map(Box::new)
  171     67   
    }
  172         -
    #[allow(missing_docs)] // documentation missing in model
  173         -
    pub fn required_enum(&self) -> &crate::model::RequiredEnum {
  174         -
        &self.required_enum
          68  +
}
          69  +
          70  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<NoInputAndOutputOutput> {
          71  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
          72  +
        (*self).into_py(py)
  175     73   
    }
  176         -
    #[allow(missing_docs)] // documentation missing in model
  177         -
    pub fn required_int_enum(&self) -> i32 {
  178         -
        self.required_int_enum
          74  +
}
          75  +
impl NoInputAndOutputOutput {
          76  +
    /// Creates a new builder-style object to manufacture [`NoInputAndOutputOutput`](crate::output::NoInputAndOutputOutput).
          77  +
    pub fn builder() -> crate::output::no_input_and_output_output::Builder {
          78  +
        crate::output::no_input_and_output_output::Builder::default()
  179     79   
    }
  180     80   
}
          81  +
          82  +
#[::pyo3::pyclass]
          83  +
/// :rtype None:
          84  +
#[allow(missing_docs)] // documentation missing in model
          85  +
#[derive(
          86  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          87  +
)]
          88  +
pub struct EmptyInputAndEmptyOutputOutput {}
  181     89   
#[allow(clippy::new_without_default)]
  182     90   
#[allow(clippy::too_many_arguments)]
  183     91   
#[::pyo3::pymethods]
  184         -
impl OperationWithRequiredMembersWithDefaultsOutput {
          92  +
impl EmptyInputAndEmptyOutputOutput {
  185     93   
    #[new]
  186         -
    pub fn new(
  187         -
        required_string: ::std::string::String,
  188         -
        required_boolean: bool,
  189         -
        required_list: ::std::vec::Vec<::std::string::String>,
  190         -
        required_timestamp: ::aws_smithy_http_server_python::types::DateTime,
  191         -
        required_blob: ::aws_smithy_http_server_python::types::Blob,
  192         -
        required_byte: i8,
  193         -
        required_short: i16,
  194         -
        required_integer: i32,
  195         -
        required_long: i64,
  196         -
        required_float: f32,
  197         -
        required_double: f64,
  198         -
        required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  199         -
        required_enum: crate::model::RequiredEnum,
  200         -
        required_int_enum: i32,
  201         -
    ) -> Self {
  202         -
        Self {
  203         -
            required_string,
  204         -
            required_boolean,
  205         -
            required_list,
  206         -
            required_timestamp,
  207         -
            required_blob,
  208         -
            required_byte,
  209         -
            required_short,
  210         -
            required_integer,
  211         -
            required_long,
  212         -
            required_float,
  213         -
            required_double,
  214         -
            required_map,
  215         -
            required_enum,
  216         -
            required_int_enum,
  217         -
        }
          94  +
    pub fn new() -> Self {
          95  +
        Self {}
  218     96   
    }
  219     97   
    fn __repr__(&self) -> String {
  220     98   
        format!("{self:?}")
  221     99   
    }
  222    100   
    fn __str__(&self) -> String {
  223    101   
        format!("{self:?}")
  224    102   
    }
  225    103   
}
  226         -
impl<'source> ::pyo3::FromPyObject<'source>
  227         -
    for std::boxed::Box<OperationWithRequiredMembersWithDefaultsOutput>
  228         -
{
         104  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<EmptyInputAndEmptyOutputOutput> {
  229    105   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  230         -
        ob.extract::<OperationWithRequiredMembersWithDefaultsOutput>()
  231         -
            .map(Box::new)
         106  +
        ob.extract::<EmptyInputAndEmptyOutputOutput>().map(Box::new)
  232    107   
    }
  233    108   
}
  234    109   
  235         -
impl ::pyo3::IntoPy<::pyo3::PyObject>
  236         -
    for std::boxed::Box<OperationWithRequiredMembersWithDefaultsOutput>
  237         -
{
         110  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<EmptyInputAndEmptyOutputOutput> {
  238    111   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  239    112   
        (*self).into_py(py)
  240    113   
    }
  241    114   
}
  242         -
impl OperationWithRequiredMembersWithDefaultsOutput {
  243         -
    /// Creates a new builder-style object to manufacture [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
  244         -
    pub fn builder() -> crate::output::operation_with_required_members_with_defaults_output::Builder
  245         -
    {
  246         -
        crate::output::operation_with_required_members_with_defaults_output::Builder::default()
         115  +
impl EmptyInputAndEmptyOutputOutput {
         116  +
    /// Creates a new builder-style object to manufacture [`EmptyInputAndEmptyOutputOutput`](crate::output::EmptyInputAndEmptyOutputOutput).
         117  +
    pub fn builder() -> crate::output::empty_input_and_empty_output_output::Builder {
         118  +
        crate::output::empty_input_and_empty_output_output::Builder::default()
  247    119   
    }
  248    120   
}
  249    121   
  250    122   
#[::pyo3::pyclass]
  251         -
/// :param dialog json_rpc10.model.Dialog:
  252         -
/// :param dialog_list typing.List\[json_rpc10.model.Dialog\]:
  253         -
/// :param dialog_map typing.Dict\[str, json_rpc10.model.Dialog\]:
         123  +
/// :param float_value typing.Optional\[float\]:
         124  +
/// :param double_value typing.Optional\[float\]:
  254    125   
/// :rtype None:
  255    126   
#[allow(missing_docs)] // documentation missing in model
  256         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  257         -
pub struct OperationWithNestedStructureOutput {
         127  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         128  +
pub struct SimpleScalarPropertiesOutput {
  258    129   
    #[pyo3(get, set)]
  259         -
    /// :type json_rpc10.model.Dialog:
         130  +
    /// :type typing.Optional\[float\]:
  260    131   
    #[allow(missing_docs)] // documentation missing in model
  261         -
    pub dialog: crate::model::Dialog,
         132  +
    pub float_value: ::std::option::Option<f32>,
  262    133   
    #[pyo3(get, set)]
  263         -
    /// :type typing.List\[json_rpc10.model.Dialog\]:
         134  +
    /// :type typing.Optional\[float\]:
  264    135   
    #[allow(missing_docs)] // documentation missing in model
  265         -
    pub dialog_list: ::std::vec::Vec<crate::model::Dialog>,
  266         -
    #[pyo3(get, set)]
  267         -
    /// :type typing.Dict\[str, json_rpc10.model.Dialog\]:
  268         -
    #[allow(missing_docs)] // documentation missing in model
  269         -
    pub dialog_map: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
         136  +
    pub double_value: ::std::option::Option<f64>,
  270    137   
}
  271         -
impl OperationWithNestedStructureOutput {
  272         -
    #[allow(missing_docs)] // documentation missing in model
  273         -
    pub fn dialog(&self) -> &crate::model::Dialog {
  274         -
        &self.dialog
  275         -
    }
         138  +
impl SimpleScalarPropertiesOutput {
  276    139   
    #[allow(missing_docs)] // documentation missing in model
  277         -
    pub fn dialog_list(&self) -> &[crate::model::Dialog] {
  278         -
        use std::ops::Deref;
  279         -
        self.dialog_list.deref()
         140  +
    pub fn float_value(&self) -> ::std::option::Option<f32> {
         141  +
        self.float_value
  280    142   
    }
  281    143   
    #[allow(missing_docs)] // documentation missing in model
  282         -
    pub fn dialog_map(
  283         -
        &self,
  284         -
    ) -> &::std::collections::HashMap<::std::string::String, crate::model::Dialog> {
  285         -
        &self.dialog_map
         144  +
    pub fn double_value(&self) -> ::std::option::Option<f64> {
         145  +
        self.double_value
  286    146   
    }
  287    147   
}
  288    148   
#[allow(clippy::new_without_default)]
  289    149   
#[allow(clippy::too_many_arguments)]
  290    150   
#[::pyo3::pymethods]
  291         -
impl OperationWithNestedStructureOutput {
         151  +
impl SimpleScalarPropertiesOutput {
  292    152   
    #[new]
  293    153   
    pub fn new(
  294         -
        dialog: crate::model::Dialog,
  295         -
        dialog_list: ::std::vec::Vec<crate::model::Dialog>,
  296         -
        dialog_map: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
         154  +
        float_value: ::std::option::Option<f32>,
         155  +
        double_value: ::std::option::Option<f64>,
  297    156   
    ) -> Self {
  298    157   
        Self {
  299         -
            dialog,
  300         -
            dialog_list,
  301         -
            dialog_map,
         158  +
            float_value,
         159  +
            double_value,
  302    160   
        }
  303    161   
    }
  304    162   
    fn __repr__(&self) -> String {
  305    163   
        format!("{self:?}")
  306    164   
    }
  307    165   
    fn __str__(&self) -> String {
  308    166   
        format!("{self:?}")
  309    167   
    }
  310    168   
}
  311         -
impl<'source> ::pyo3::FromPyObject<'source>
  312         -
    for std::boxed::Box<OperationWithNestedStructureOutput>
  313         -
{
         169  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<SimpleScalarPropertiesOutput> {
  314    170   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  315         -
        ob.extract::<OperationWithNestedStructureOutput>()
  316         -
            .map(Box::new)
         171  +
        ob.extract::<SimpleScalarPropertiesOutput>().map(Box::new)
  317    172   
    }
  318    173   
}
  319    174   
  320         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<OperationWithNestedStructureOutput> {
         175  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<SimpleScalarPropertiesOutput> {
  321    176   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  322    177   
        (*self).into_py(py)
  323    178   
    }
  324    179   
}
  325         -
impl OperationWithNestedStructureOutput {
  326         -
    /// Creates a new builder-style object to manufacture [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
  327         -
    pub fn builder() -> crate::output::operation_with_nested_structure_output::Builder {
  328         -
        crate::output::operation_with_nested_structure_output::Builder::default()
         180  +
impl SimpleScalarPropertiesOutput {
         181  +
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
         182  +
    pub fn builder() -> crate::output::simple_scalar_properties_output::Builder {
         183  +
        crate::output::simple_scalar_properties_output::Builder::default()
  329    184   
    }
  330    185   
}
  331    186   
  332    187   
#[::pyo3::pyclass]
  333         -
/// :param required_string str:
  334         -
/// :param required_boolean bool:
  335         -
/// :param required_list typing.List\[str\]:
  336         -
/// :param required_timestamp json_rpc10.types.DateTime:
  337         -
/// :param required_blob json_rpc10.types.Blob:
  338         -
/// :param required_byte int:
  339         -
/// :param required_short int:
  340         -
/// :param required_integer int:
  341         -
/// :param required_long int:
  342         -
/// :param required_float float:
  343         -
/// :param required_double float:
  344         -
/// :param required_map typing.Dict\[str, str\]:
         188  +
/// :param greeting typing.Optional\[str\]:
  345    189   
/// :rtype None:
  346    190   
#[allow(missing_docs)] // documentation missing in model
  347         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  348         -
pub struct OperationWithRequiredMembersOutput {
  349         -
    #[pyo3(get, set)]
  350         -
    /// :type str:
  351         -
    #[allow(missing_docs)] // documentation missing in model
  352         -
    pub required_string: ::std::string::String,
  353         -
    #[pyo3(get, set)]
  354         -
    /// :type bool:
  355         -
    #[allow(missing_docs)] // documentation missing in model
  356         -
    pub required_boolean: bool,
  357         -
    #[pyo3(get, set)]
  358         -
    /// :type typing.List\[str\]:
  359         -
    #[allow(missing_docs)] // documentation missing in model
  360         -
    pub required_list: ::std::vec::Vec<::std::string::String>,
  361         -
    #[pyo3(get, set)]
  362         -
    /// :type json_rpc10.types.DateTime:
  363         -
    #[allow(missing_docs)] // documentation missing in model
  364         -
    pub required_timestamp: ::aws_smithy_http_server_python::types::DateTime,
  365         -
    #[pyo3(get, set)]
  366         -
    /// :type json_rpc10.types.Blob:
  367         -
    #[allow(missing_docs)] // documentation missing in model
  368         -
    pub required_blob: ::aws_smithy_http_server_python::types::Blob,
  369         -
    #[pyo3(get, set)]
  370         -
    /// :type int:
  371         -
    #[allow(missing_docs)] // documentation missing in model
  372         -
    pub required_byte: i8,
  373         -
    #[pyo3(get, set)]
  374         -
    /// :type int:
  375         -
    #[allow(missing_docs)] // documentation missing in model
  376         -
    pub required_short: i16,
  377         -
    #[pyo3(get, set)]
  378         -
    /// :type int:
  379         -
    #[allow(missing_docs)] // documentation missing in model
  380         -
    pub required_integer: i32,
  381         -
    #[pyo3(get, set)]
  382         -
    /// :type int:
  383         -
    #[allow(missing_docs)] // documentation missing in model
  384         -
    pub required_long: i64,
  385         -
    #[pyo3(get, set)]
  386         -
    /// :type float:
  387         -
    #[allow(missing_docs)] // documentation missing in model
  388         -
    pub required_float: f32,
  389         -
    #[pyo3(get, set)]
  390         -
    /// :type float:
  391         -
    #[allow(missing_docs)] // documentation missing in model
  392         -
    pub required_double: f64,
         191  +
#[derive(
         192  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         193  +
)]
         194  +
pub struct GreetingWithErrorsOutput {
  393    195   
    #[pyo3(get, set)]
  394         -
    /// :type typing.Dict\[str, str\]:
         196  +
    /// :type typing.Optional\[str\]:
  395    197   
    #[allow(missing_docs)] // documentation missing in model
  396         -
    pub required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         198  +
    pub greeting: ::std::option::Option<::std::string::String>,
  397    199   
}
  398         -
impl OperationWithRequiredMembersOutput {
  399         -
    #[allow(missing_docs)] // documentation missing in model
  400         -
    pub fn required_string(&self) -> &str {
  401         -
        use std::ops::Deref;
  402         -
        self.required_string.deref()
  403         -
    }
  404         -
    #[allow(missing_docs)] // documentation missing in model
  405         -
    pub fn required_boolean(&self) -> bool {
  406         -
        self.required_boolean
  407         -
    }
  408         -
    #[allow(missing_docs)] // documentation missing in model
  409         -
    pub fn required_list(&self) -> &[::std::string::String] {
  410         -
        use std::ops::Deref;
  411         -
        self.required_list.deref()
  412         -
    }
  413         -
    #[allow(missing_docs)] // documentation missing in model
  414         -
    pub fn required_timestamp(&self) -> &::aws_smithy_http_server_python::types::DateTime {
  415         -
        &self.required_timestamp
  416         -
    }
  417         -
    #[allow(missing_docs)] // documentation missing in model
  418         -
    pub fn required_blob(&self) -> &::aws_smithy_http_server_python::types::Blob {
  419         -
        &self.required_blob
  420         -
    }
  421         -
    #[allow(missing_docs)] // documentation missing in model
  422         -
    pub fn required_byte(&self) -> i8 {
  423         -
        self.required_byte
  424         -
    }
  425         -
    #[allow(missing_docs)] // documentation missing in model
  426         -
    pub fn required_short(&self) -> i16 {
  427         -
        self.required_short
  428         -
    }
  429         -
    #[allow(missing_docs)] // documentation missing in model
  430         -
    pub fn required_integer(&self) -> i32 {
  431         -
        self.required_integer
  432         -
    }
  433         -
    #[allow(missing_docs)] // documentation missing in model
  434         -
    pub fn required_long(&self) -> i64 {
  435         -
        self.required_long
  436         -
    }
  437         -
    #[allow(missing_docs)] // documentation missing in model
  438         -
    pub fn required_float(&self) -> f32 {
  439         -
        self.required_float
  440         -
    }
  441         -
    #[allow(missing_docs)] // documentation missing in model
  442         -
    pub fn required_double(&self) -> f64 {
  443         -
        self.required_double
  444         -
    }
         200  +
impl GreetingWithErrorsOutput {
  445    201   
    #[allow(missing_docs)] // documentation missing in model
  446         -
    pub fn required_map(
  447         -
        &self,
  448         -
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
  449         -
        &self.required_map
         202  +
    pub fn greeting(&self) -> ::std::option::Option<&str> {
         203  +
        self.greeting.as_deref()
  450    204   
    }
  451    205   
}
  452    206   
#[allow(clippy::new_without_default)]
  453    207   
#[allow(clippy::too_many_arguments)]
  454    208   
#[::pyo3::pymethods]
  455         -
impl OperationWithRequiredMembersOutput {
         209  +
impl GreetingWithErrorsOutput {
  456    210   
    #[new]
  457         -
    pub fn new(
  458         -
        required_string: ::std::string::String,
  459         -
        required_boolean: bool,
  460         -
        required_list: ::std::vec::Vec<::std::string::String>,
  461         -
        required_timestamp: ::aws_smithy_http_server_python::types::DateTime,
  462         -
        required_blob: ::aws_smithy_http_server_python::types::Blob,
  463         -
        required_byte: i8,
  464         -
        required_short: i16,
  465         -
        required_integer: i32,
  466         -
        required_long: i64,
  467         -
        required_float: f32,
  468         -
        required_double: f64,
  469         -
        required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  470         -
    ) -> Self {
  471         -
        Self {
  472         -
            required_string,
  473         -
            required_boolean,
  474         -
            required_list,
  475         -
            required_timestamp,
  476         -
            required_blob,
  477         -
            required_byte,
  478         -
            required_short,
  479         -
            required_integer,
  480         -
            required_long,
  481         -
            required_float,
  482         -
            required_double,
  483         -
            required_map,
  484         -
        }
         211  +
    pub fn new(greeting: ::std::option::Option<::std::string::String>) -> Self {
         212  +
        Self { greeting }
  485    213   
    }
  486    214   
    fn __repr__(&self) -> String {
  487    215   
        format!("{self:?}")
  488    216   
    }
  489    217   
    fn __str__(&self) -> String {
  490    218   
        format!("{self:?}")
  491    219   
    }
  492    220   
}
  493         -
impl<'source> ::pyo3::FromPyObject<'source>
  494         -
    for std::boxed::Box<OperationWithRequiredMembersOutput>
  495         -
{
         221  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<GreetingWithErrorsOutput> {
  496    222   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  497         -
        ob.extract::<OperationWithRequiredMembersOutput>()
  498         -
            .map(Box::new)
         223  +
        ob.extract::<GreetingWithErrorsOutput>().map(Box::new)
  499    224   
    }
  500    225   
}
  501    226   
  502         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<OperationWithRequiredMembersOutput> {
         227  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<GreetingWithErrorsOutput> {
  503    228   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  504    229   
        (*self).into_py(py)
  505    230   
    }
  506    231   
}
  507         -
impl OperationWithRequiredMembersOutput {
  508         -
    /// Creates a new builder-style object to manufacture [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
  509         -
    pub fn builder() -> crate::output::operation_with_required_members_output::Builder {
  510         -
        crate::output::operation_with_required_members_output::Builder::default()
         232  +
impl GreetingWithErrorsOutput {
         233  +
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
         234  +
    pub fn builder() -> crate::output::greeting_with_errors_output::Builder {
         235  +
        crate::output::greeting_with_errors_output::Builder::default()
  511    236   
    }
  512    237   
}
  513    238   
  514    239   
#[::pyo3::pyclass]
  515         -
/// :param default_string str:
  516         -
/// :param default_boolean bool:
  517         -
/// :param default_list typing.List\[str\]:
  518         -
/// :param default_document_map json_rpc10.types.Document:
  519         -
/// :param default_document_string json_rpc10.types.Document:
  520         -
/// :param default_document_boolean json_rpc10.types.Document:
  521         -
/// :param default_document_list json_rpc10.types.Document:
  522         -
/// :param default_timestamp json_rpc10.types.DateTime:
  523         -
/// :param default_blob json_rpc10.types.Blob:
  524         -
/// :param default_byte int:
  525         -
/// :param default_short int:
  526         -
/// :param default_integer int:
  527         -
/// :param default_long int:
  528         -
/// :param default_float float:
  529         -
/// :param default_double float:
  530         -
/// :param default_map typing.Dict\[str, str\]:
  531         -
/// :param default_enum json_rpc10.model.TestEnum:
  532         -
/// :param default_int_enum int:
  533         -
/// :param empty_string str:
  534         -
/// :param false_boolean bool:
  535         -
/// :param empty_blob json_rpc10.types.Blob:
  536         -
/// :param zero_byte int:
  537         -
/// :param zero_short int:
  538         -
/// :param zero_integer int:
  539         -
/// :param zero_long int:
  540         -
/// :param zero_float float:
  541         -
/// :param zero_double float:
  542         -
/// :param default_null_document typing.Optional\[json_rpc10.types.Document\]:
         240  +
/// :param contents typing.Optional\[json_rpc10.model.MyUnion\]:
  543    241   
/// :rtype None:
  544    242   
#[allow(missing_docs)] // documentation missing in model
  545         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  546         -
pub struct OperationWithDefaultsOutput {
         243  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         244  +
pub struct JsonUnionsOutput {
  547    245   
    #[pyo3(get, set)]
  548         -
    /// :type str:
  549         -
    #[allow(missing_docs)] // documentation missing in model
         246  +
    /// :type typing.Optional\[json_rpc10.model.MyUnion\]:
         247  +
    /// A union with a representative set of types for members.
         248  +
    pub contents: ::std::option::Option<crate::model::MyUnion>,
         249  +
}
         250  +
impl JsonUnionsOutput {
         251  +
    /// A union with a representative set of types for members.
         252  +
    pub fn contents(&self) -> ::std::option::Option<&crate::model::MyUnion> {
         253  +
        self.contents.as_ref()
         254  +
    }
         255  +
}
         256  +
#[allow(clippy::new_without_default)]
         257  +
#[allow(clippy::too_many_arguments)]
         258  +
#[::pyo3::pymethods]
         259  +
impl JsonUnionsOutput {
         260  +
    #[new]
         261  +
    pub fn new(contents: ::std::option::Option<crate::model::MyUnion>) -> Self {
         262  +
        Self { contents }
         263  +
    }
         264  +
    fn __repr__(&self) -> String {
         265  +
        format!("{self:?}")
         266  +
    }
         267  +
    fn __str__(&self) -> String {
         268  +
        format!("{self:?}")
         269  +
    }
         270  +
}
         271  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<JsonUnionsOutput> {
         272  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
         273  +
        ob.extract::<JsonUnionsOutput>().map(Box::new)
         274  +
    }
         275  +
}
         276  +
         277  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<JsonUnionsOutput> {
         278  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
         279  +
        (*self).into_py(py)
         280  +
    }
         281  +
}
         282  +
impl JsonUnionsOutput {
         283  +
    /// Creates a new builder-style object to manufacture [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
         284  +
    pub fn builder() -> crate::output::json_unions_output::Builder {
         285  +
        crate::output::json_unions_output::Builder::default()
         286  +
    }
         287  +
}
         288  +
         289  +
#[::pyo3::pyclass]
         290  +
/// :rtype None:
         291  +
#[allow(missing_docs)] // documentation missing in model
         292  +
#[derive(
         293  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         294  +
)]
         295  +
pub struct EndpointOperationOutput {}
         296  +
#[allow(clippy::new_without_default)]
         297  +
#[allow(clippy::too_many_arguments)]
         298  +
#[::pyo3::pymethods]
         299  +
impl EndpointOperationOutput {
         300  +
    #[new]
         301  +
    pub fn new() -> Self {
         302  +
        Self {}
         303  +
    }
         304  +
    fn __repr__(&self) -> String {
         305  +
        format!("{self:?}")
         306  +
    }
         307  +
    fn __str__(&self) -> String {
         308  +
        format!("{self:?}")
         309  +
    }
         310  +
}
         311  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<EndpointOperationOutput> {
         312  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
         313  +
        ob.extract::<EndpointOperationOutput>().map(Box::new)
         314  +
    }
         315  +
}
         316  +
         317  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<EndpointOperationOutput> {
         318  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
         319  +
        (*self).into_py(py)
         320  +
    }
         321  +
}
         322  +
impl EndpointOperationOutput {
         323  +
    /// Creates a new builder-style object to manufacture [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
         324  +
    pub fn builder() -> crate::output::endpoint_operation_output::Builder {
         325  +
        crate::output::endpoint_operation_output::Builder::default()
         326  +
    }
         327  +
}
         328  +
         329  +
#[::pyo3::pyclass]
         330  +
/// :rtype None:
         331  +
#[allow(missing_docs)] // documentation missing in model
         332  +
#[derive(
         333  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         334  +
)]
         335  +
pub struct EndpointWithHostLabelOperationOutput {}
         336  +
#[allow(clippy::new_without_default)]
         337  +
#[allow(clippy::too_many_arguments)]
         338  +
#[::pyo3::pymethods]
         339  +
impl EndpointWithHostLabelOperationOutput {
         340  +
    #[new]
         341  +
    pub fn new() -> Self {
         342  +
        Self {}
         343  +
    }
         344  +
    fn __repr__(&self) -> String {
         345  +
        format!("{self:?}")
         346  +
    }
         347  +
    fn __str__(&self) -> String {
         348  +
        format!("{self:?}")
         349  +
    }
         350  +
}
         351  +
impl<'source> ::pyo3::FromPyObject<'source>
         352  +
    for std::boxed::Box<EndpointWithHostLabelOperationOutput>
         353  +
{
         354  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
         355  +
        ob.extract::<EndpointWithHostLabelOperationOutput>()
         356  +
            .map(Box::new)
         357  +
    }
         358  +
}
         359  +
         360  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<EndpointWithHostLabelOperationOutput> {
         361  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
         362  +
        (*self).into_py(py)
         363  +
    }
         364  +
}
         365  +
impl EndpointWithHostLabelOperationOutput {
         366  +
    /// Creates a new builder-style object to manufacture [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
         367  +
    pub fn builder() -> crate::output::endpoint_with_host_label_operation_output::Builder {
         368  +
        crate::output::endpoint_with_host_label_operation_output::Builder::default()
         369  +
    }
         370  +
}
         371  +
         372  +
#[::pyo3::pyclass]
         373  +
/// :rtype None:
         374  +
#[allow(missing_docs)] // documentation missing in model
         375  +
#[derive(
         376  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         377  +
)]
         378  +
pub struct HostWithPathOperationOutput {}
         379  +
#[allow(clippy::new_without_default)]
         380  +
#[allow(clippy::too_many_arguments)]
         381  +
#[::pyo3::pymethods]
         382  +
impl HostWithPathOperationOutput {
         383  +
    #[new]
         384  +
    pub fn new() -> Self {
         385  +
        Self {}
         386  +
    }
         387  +
    fn __repr__(&self) -> String {
         388  +
        format!("{self:?}")
         389  +
    }
         390  +
    fn __str__(&self) -> String {
         391  +
        format!("{self:?}")
         392  +
    }
         393  +
}
         394  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<HostWithPathOperationOutput> {
         395  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
         396  +
        ob.extract::<HostWithPathOperationOutput>().map(Box::new)
         397  +
    }
         398  +
}
         399  +
         400  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<HostWithPathOperationOutput> {
         401  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
         402  +
        (*self).into_py(py)
         403  +
    }
         404  +
}
         405  +
impl HostWithPathOperationOutput {
         406  +
    /// Creates a new builder-style object to manufacture [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
         407  +
    pub fn builder() -> crate::output::host_with_path_operation_output::Builder {
         408  +
        crate::output::host_with_path_operation_output::Builder::default()
         409  +
    }
         410  +
}
         411  +
         412  +
#[::pyo3::pyclass]
         413  +
/// :rtype None:
         414  +
#[allow(missing_docs)] // documentation missing in model
         415  +
#[derive(
         416  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         417  +
)]
         418  +
pub struct PutWithContentEncodingOutput {}
         419  +
#[allow(clippy::new_without_default)]
         420  +
#[allow(clippy::too_many_arguments)]
         421  +
#[::pyo3::pymethods]
         422  +
impl PutWithContentEncodingOutput {
         423  +
    #[new]
         424  +
    pub fn new() -> Self {
         425  +
        Self {}
         426  +
    }
         427  +
    fn __repr__(&self) -> String {
         428  +
        format!("{self:?}")
         429  +
    }
         430  +
    fn __str__(&self) -> String {
         431  +
        format!("{self:?}")
         432  +
    }
         433  +
}
         434  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<PutWithContentEncodingOutput> {
         435  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
         436  +
        ob.extract::<PutWithContentEncodingOutput>().map(Box::new)
         437  +
    }
         438  +
}
         439  +
         440  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<PutWithContentEncodingOutput> {
         441  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
         442  +
        (*self).into_py(py)
         443  +
    }
         444  +
}
         445  +
impl PutWithContentEncodingOutput {
         446  +
    /// Creates a new builder-style object to manufacture [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
         447  +
    pub fn builder() -> crate::output::put_with_content_encoding_output::Builder {
         448  +
        crate::output::put_with_content_encoding_output::Builder::default()
         449  +
    }
         450  +
}
         451  +
         452  +
#[::pyo3::pyclass]
         453  +
/// :rtype None:
         454  +
#[allow(missing_docs)] // documentation missing in model
         455  +
#[derive(
         456  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         457  +
)]
         458  +
pub struct ContentTypeParametersOutput {}
         459  +
#[allow(clippy::new_without_default)]
         460  +
#[allow(clippy::too_many_arguments)]
         461  +
#[::pyo3::pymethods]
         462  +
impl ContentTypeParametersOutput {
         463  +
    #[new]
         464  +
    pub fn new() -> Self {
         465  +
        Self {}
         466  +
    }
         467  +
    fn __repr__(&self) -> String {
         468  +
        format!("{self:?}")
         469  +
    }
         470  +
    fn __str__(&self) -> String {
         471  +
        format!("{self:?}")
         472  +
    }
         473  +
}
         474  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ContentTypeParametersOutput> {
         475  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
         476  +
        ob.extract::<ContentTypeParametersOutput>().map(Box::new)
         477  +
    }
         478  +
}
         479  +
         480  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ContentTypeParametersOutput> {
         481  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
         482  +
        (*self).into_py(py)
         483  +
    }
         484  +
}
         485  +
impl ContentTypeParametersOutput {
         486  +
    /// Creates a new builder-style object to manufacture [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
         487  +
    pub fn builder() -> crate::output::content_type_parameters_output::Builder {
         488  +
        crate::output::content_type_parameters_output::Builder::default()
         489  +
    }
         490  +
}
         491  +
         492  +
#[::pyo3::pyclass]
         493  +
/// :param default_string str:
         494  +
/// :param default_boolean bool:
         495  +
/// :param default_list typing.List\[str\]:
         496  +
/// :param default_document_map json_rpc10.types.Document:
         497  +
/// :param default_document_string json_rpc10.types.Document:
         498  +
/// :param default_document_boolean json_rpc10.types.Document:
         499  +
/// :param default_document_list json_rpc10.types.Document:
         500  +
/// :param default_timestamp json_rpc10.types.DateTime:
         501  +
/// :param default_blob json_rpc10.types.Blob:
         502  +
/// :param default_byte int:
         503  +
/// :param default_short int:
         504  +
/// :param default_integer int:
         505  +
/// :param default_long int:
         506  +
/// :param default_float float:
         507  +
/// :param default_double float:
         508  +
/// :param default_map typing.Dict\[str, str\]:
         509  +
/// :param default_enum json_rpc10.model.TestEnum:
         510  +
/// :param default_int_enum int:
         511  +
/// :param empty_string str:
         512  +
/// :param false_boolean bool:
         513  +
/// :param empty_blob json_rpc10.types.Blob:
         514  +
/// :param zero_byte int:
         515  +
/// :param zero_short int:
         516  +
/// :param zero_integer int:
         517  +
/// :param zero_long int:
         518  +
/// :param zero_float float:
         519  +
/// :param zero_double float:
         520  +
/// :param default_null_document typing.Optional\[json_rpc10.types.Document\]:
         521  +
/// :rtype None:
         522  +
#[allow(missing_docs)] // documentation missing in model
         523  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         524  +
pub struct OperationWithDefaultsOutput {
         525  +
    #[pyo3(get, set)]
         526  +
    /// :type str:
         527  +
    #[allow(missing_docs)] // documentation missing in model
  550    528   
    pub default_string: ::std::string::String,
  551    529   
    #[pyo3(get, set)]
  552    530   
    /// :type bool:
  553    531   
    #[allow(missing_docs)] // documentation missing in model
  554    532   
    pub default_boolean: bool,
  555    533   
    #[pyo3(get, set)]
  556    534   
    /// :type typing.List\[str\]:
  557    535   
    #[allow(missing_docs)] // documentation missing in model
  558    536   
    pub default_list: ::std::vec::Vec<::std::string::String>,
  559    537   
    #[pyo3(get, set)]
@@ -739,717 +1837,1673 @@
  759    737   
        self.zero_byte
  760    738   
    }
  761    739   
    #[allow(missing_docs)] // documentation missing in model
  762    740   
    pub fn zero_short(&self) -> i16 {
  763    741   
        self.zero_short
  764    742   
    }
  765    743   
    #[allow(missing_docs)] // documentation missing in model
  766    744   
    pub fn zero_integer(&self) -> i32 {
  767    745   
        self.zero_integer
  768    746   
    }
  769         -
    #[allow(missing_docs)] // documentation missing in model
  770         -
    pub fn zero_long(&self) -> i64 {
  771         -
        self.zero_long
  772         -
    }
  773         -
    #[allow(missing_docs)] // documentation missing in model
  774         -
    pub fn zero_float(&self) -> f32 {
  775         -
        self.zero_float
  776         -
    }
  777         -
    #[allow(missing_docs)] // documentation missing in model
  778         -
    pub fn zero_double(&self) -> f64 {
  779         -
        self.zero_double
  780         -
    }
  781         -
}
  782         -
#[allow(clippy::new_without_default)]
  783         -
#[allow(clippy::too_many_arguments)]
  784         -
#[::pyo3::pymethods]
  785         -
impl OperationWithDefaultsOutput {
  786         -
    #[new]
  787         -
    pub fn new(
  788         -
        default_string: ::std::string::String,
  789         -
        default_boolean: bool,
  790         -
        default_list: ::std::vec::Vec<::std::string::String>,
  791         -
        default_document_map: ::aws_smithy_http_server_python::types::Document,
  792         -
        default_document_string: ::aws_smithy_http_server_python::types::Document,
  793         -
        default_document_boolean: ::aws_smithy_http_server_python::types::Document,
  794         -
        default_document_list: ::aws_smithy_http_server_python::types::Document,
  795         -
        default_timestamp: ::aws_smithy_http_server_python::types::DateTime,
  796         -
        default_blob: ::aws_smithy_http_server_python::types::Blob,
  797         -
        default_byte: i8,
  798         -
        default_short: i16,
  799         -
        default_integer: i32,
  800         -
        default_long: i64,
  801         -
        default_float: f32,
  802         -
        default_double: f64,
  803         -
        default_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  804         -
        default_enum: crate::model::TestEnum,
  805         -
        default_int_enum: i32,
  806         -
        empty_string: ::std::string::String,
  807         -
        false_boolean: bool,
  808         -
        empty_blob: ::aws_smithy_http_server_python::types::Blob,
  809         -
        zero_byte: i8,
  810         -
        zero_short: i16,
  811         -
        zero_integer: i32,
  812         -
        zero_long: i64,
  813         -
        zero_float: f32,
  814         -
        zero_double: f64,
  815         -
        default_null_document: ::std::option::Option<
  816         -
            ::aws_smithy_http_server_python::types::Document,
  817         -
        >,
  818         -
    ) -> Self {
  819         -
        Self {
  820         -
            default_string,
  821         -
            default_boolean,
  822         -
            default_list,
  823         -
            default_document_map,
  824         -
            default_document_string,
  825         -
            default_document_boolean,
  826         -
            default_document_list,
  827         -
            default_timestamp,
  828         -
            default_blob,
  829         -
            default_byte,
  830         -
            default_short,
  831         -
            default_integer,
  832         -
            default_long,
  833         -
            default_float,
  834         -
            default_double,
  835         -
            default_map,
  836         -
            default_enum,
  837         -
            default_int_enum,
  838         -
            empty_string,
  839         -
            false_boolean,
  840         -
            empty_blob,
  841         -
            zero_byte,
  842         -
            zero_short,
  843         -
            zero_integer,
  844         -
            zero_long,
  845         -
            zero_float,
  846         -
            zero_double,
  847         -
            default_null_document,
  848         -
        }
  849         -
    }
  850         -
    fn __repr__(&self) -> String {
  851         -
        format!("{self:?}")
  852         -
    }
  853         -
    fn __str__(&self) -> String {
  854         -
        format!("{self:?}")
  855         -
    }
  856         -
}
  857         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<OperationWithDefaultsOutput> {
  858         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  859         -
        ob.extract::<OperationWithDefaultsOutput>().map(Box::new)
  860         -
    }
  861         -
}
  862         -
  863         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<OperationWithDefaultsOutput> {
  864         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  865         -
        (*self).into_py(py)
  866         -
    }
  867         -
}
  868         -
impl OperationWithDefaultsOutput {
  869         -
    /// Creates a new builder-style object to manufacture [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
  870         -
    pub fn builder() -> crate::output::operation_with_defaults_output::Builder {
  871         -
        crate::output::operation_with_defaults_output::Builder::default()
  872         -
    }
  873         -
}
  874         -
  875         -
#[::pyo3::pyclass]
  876         -
/// :rtype None:
  877         -
#[allow(missing_docs)] // documentation missing in model
  878         -
#[derive(
  879         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  880         -
)]
  881         -
pub struct ContentTypeParametersOutput {}
  882         -
#[allow(clippy::new_without_default)]
  883         -
#[allow(clippy::too_many_arguments)]
  884         -
#[::pyo3::pymethods]
  885         -
impl ContentTypeParametersOutput {
  886         -
    #[new]
  887         -
    pub fn new() -> Self {
  888         -
        Self {}
  889         -
    }
  890         -
    fn __repr__(&self) -> String {
  891         -
        format!("{self:?}")
  892         -
    }
  893         -
    fn __str__(&self) -> String {
  894         -
        format!("{self:?}")
  895         -
    }
  896         -
}
  897         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ContentTypeParametersOutput> {
  898         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  899         -
        ob.extract::<ContentTypeParametersOutput>().map(Box::new)
  900         -
    }
  901         -
}
  902         -
  903         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ContentTypeParametersOutput> {
  904         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  905         -
        (*self).into_py(py)
  906         -
    }
  907         -
}
  908         -
impl ContentTypeParametersOutput {
  909         -
    /// Creates a new builder-style object to manufacture [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
  910         -
    pub fn builder() -> crate::output::content_type_parameters_output::Builder {
  911         -
        crate::output::content_type_parameters_output::Builder::default()
  912         -
    }
  913         -
}
  914         -
  915         -
#[::pyo3::pyclass]
  916         -
/// :rtype None:
  917         -
#[allow(missing_docs)] // documentation missing in model
  918         -
#[derive(
  919         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  920         -
)]
  921         -
pub struct PutWithContentEncodingOutput {}
  922         -
#[allow(clippy::new_without_default)]
  923         -
#[allow(clippy::too_many_arguments)]
  924         -
#[::pyo3::pymethods]
  925         -
impl PutWithContentEncodingOutput {
  926         -
    #[new]
  927         -
    pub fn new() -> Self {
  928         -
        Self {}
  929         -
    }
  930         -
    fn __repr__(&self) -> String {
  931         -
        format!("{self:?}")
  932         -
    }
  933         -
    fn __str__(&self) -> String {
  934         -
        format!("{self:?}")
  935         -
    }
  936         -
}
  937         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<PutWithContentEncodingOutput> {
  938         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  939         -
        ob.extract::<PutWithContentEncodingOutput>().map(Box::new)
  940         -
    }
  941         -
}
  942         -
  943         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<PutWithContentEncodingOutput> {
  944         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  945         -
        (*self).into_py(py)
         747  +
    #[allow(missing_docs)] // documentation missing in model
         748  +
    pub fn zero_long(&self) -> i64 {
         749  +
        self.zero_long
  946    750   
    }
  947         -
}
  948         -
impl PutWithContentEncodingOutput {
  949         -
    /// Creates a new builder-style object to manufacture [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
  950         -
    pub fn builder() -> crate::output::put_with_content_encoding_output::Builder {
  951         -
        crate::output::put_with_content_encoding_output::Builder::default()
         751  +
    #[allow(missing_docs)] // documentation missing in model
         752  +
    pub fn zero_float(&self) -> f32 {
         753  +
        self.zero_float
         754  +
    }
         755  +
    #[allow(missing_docs)] // documentation missing in model
         756  +
    pub fn zero_double(&self) -> f64 {
         757  +
        self.zero_double
  952    758   
    }
  953    759   
}
  954         -
  955         -
#[::pyo3::pyclass]
  956         -
/// :rtype None:
  957         -
#[allow(missing_docs)] // documentation missing in model
  958         -
#[derive(
  959         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  960         -
)]
  961         -
pub struct HostWithPathOperationOutput {}
  962    760   
#[allow(clippy::new_without_default)]
  963    761   
#[allow(clippy::too_many_arguments)]
  964    762   
#[::pyo3::pymethods]
  965         -
impl HostWithPathOperationOutput {
         763  +
impl OperationWithDefaultsOutput {
  966    764   
    #[new]
  967         -
    pub fn new() -> Self {
  968         -
        Self {}
         765  +
    pub fn new(
         766  +
        default_string: ::std::string::String,
         767  +
        default_boolean: bool,
         768  +
        default_list: ::std::vec::Vec<::std::string::String>,
         769  +
        default_document_map: ::aws_smithy_http_server_python::types::Document,
         770  +
        default_document_string: ::aws_smithy_http_server_python::types::Document,
         771  +
        default_document_boolean: ::aws_smithy_http_server_python::types::Document,
         772  +
        default_document_list: ::aws_smithy_http_server_python::types::Document,
         773  +
        default_timestamp: ::aws_smithy_http_server_python::types::DateTime,
         774  +
        default_blob: ::aws_smithy_http_server_python::types::Blob,
         775  +
        default_byte: i8,
         776  +
        default_short: i16,
         777  +
        default_integer: i32,
         778  +
        default_long: i64,
         779  +
        default_float: f32,
         780  +
        default_double: f64,
         781  +
        default_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         782  +
        default_enum: crate::model::TestEnum,
         783  +
        default_int_enum: i32,
         784  +
        empty_string: ::std::string::String,
         785  +
        false_boolean: bool,
         786  +
        empty_blob: ::aws_smithy_http_server_python::types::Blob,
         787  +
        zero_byte: i8,
         788  +
        zero_short: i16,
         789  +
        zero_integer: i32,
         790  +
        zero_long: i64,
         791  +
        zero_float: f32,
         792  +
        zero_double: f64,
         793  +
        default_null_document: ::std::option::Option<
         794  +
            ::aws_smithy_http_server_python::types::Document,
         795  +
        >,
         796  +
    ) -> Self {
         797  +
        Self {
         798  +
            default_string,
         799  +
            default_boolean,
         800  +
            default_list,
         801  +
            default_document_map,
         802  +
            default_document_string,
         803  +
            default_document_boolean,
         804  +
            default_document_list,
         805  +
            default_timestamp,
         806  +
            default_blob,
         807  +
            default_byte,
         808  +
            default_short,
         809  +
            default_integer,
         810  +
            default_long,
         811  +
            default_float,
         812  +
            default_double,
         813  +
            default_map,
         814  +
            default_enum,
         815  +
            default_int_enum,
         816  +
            empty_string,
         817  +
            false_boolean,
         818  +
            empty_blob,
         819  +
            zero_byte,
         820  +
            zero_short,
         821  +
            zero_integer,
         822  +
            zero_long,
         823  +
            zero_float,
         824  +
            zero_double,
         825  +
            default_null_document,
         826  +
        }
  969    827   
    }
  970    828   
    fn __repr__(&self) -> String {
  971    829   
        format!("{self:?}")
  972    830   
    }
  973    831   
    fn __str__(&self) -> String {
  974    832   
        format!("{self:?}")
  975    833   
    }
  976    834   
}
  977         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<HostWithPathOperationOutput> {
         835  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<OperationWithDefaultsOutput> {
  978    836   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  979         -
        ob.extract::<HostWithPathOperationOutput>().map(Box::new)
         837  +
        ob.extract::<OperationWithDefaultsOutput>().map(Box::new)
  980    838   
    }
  981    839   
}
  982    840   
  983         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<HostWithPathOperationOutput> {
         841  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<OperationWithDefaultsOutput> {
  984    842   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  985    843   
        (*self).into_py(py)
  986    844   
    }
  987    845   
}
  988         -
impl HostWithPathOperationOutput {
  989         -
    /// Creates a new builder-style object to manufacture [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
  990         -
    pub fn builder() -> crate::output::host_with_path_operation_output::Builder {
  991         -
        crate::output::host_with_path_operation_output::Builder::default()
         846  +
impl OperationWithDefaultsOutput {
         847  +
    /// Creates a new builder-style object to manufacture [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
         848  +
    pub fn builder() -> crate::output::operation_with_defaults_output::Builder {
         849  +
        crate::output::operation_with_defaults_output::Builder::default()
  992    850   
    }
  993    851   
}
  994    852   
  995    853   
#[::pyo3::pyclass]
         854  +
/// :param required_string str:
         855  +
/// :param required_boolean bool:
         856  +
/// :param required_list typing.List\[str\]:
         857  +
/// :param required_timestamp json_rpc10.types.DateTime:
         858  +
/// :param required_blob json_rpc10.types.Blob:
         859  +
/// :param required_byte int:
         860  +
/// :param required_short int:
         861  +
/// :param required_integer int:
         862  +
/// :param required_long int:
         863  +
/// :param required_float float:
         864  +
/// :param required_double float:
         865  +
/// :param required_map typing.Dict\[str, str\]:
  996    866   
/// :rtype None:
  997    867   
#[allow(missing_docs)] // documentation missing in model
  998         -
#[derive(
  999         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1000         -
)]
 1001         -
pub struct EndpointWithHostLabelOperationOutput {}
 1002         -
#[allow(clippy::new_without_default)]
 1003         -
#[allow(clippy::too_many_arguments)]
 1004         -
#[::pyo3::pymethods]
 1005         -
impl EndpointWithHostLabelOperationOutput {
 1006         -
    #[new]
 1007         -
    pub fn new() -> Self {
 1008         -
        Self {}
 1009         -
    }
 1010         -
    fn __repr__(&self) -> String {
 1011         -
        format!("{self:?}")
         868  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         869  +
pub struct OperationWithRequiredMembersOutput {
         870  +
    #[pyo3(get, set)]
         871  +
    /// :type str:
         872  +
    #[allow(missing_docs)] // documentation missing in model
         873  +
    pub required_string: ::std::string::String,
         874  +
    #[pyo3(get, set)]
         875  +
    /// :type bool:
         876  +
    #[allow(missing_docs)] // documentation missing in model
         877  +
    pub required_boolean: bool,
         878  +
    #[pyo3(get, set)]
         879  +
    /// :type typing.List\[str\]:
         880  +
    #[allow(missing_docs)] // documentation missing in model
         881  +
    pub required_list: ::std::vec::Vec<::std::string::String>,
         882  +
    #[pyo3(get, set)]
         883  +
    /// :type json_rpc10.types.DateTime:
         884  +
    #[allow(missing_docs)] // documentation missing in model
         885  +
    pub required_timestamp: ::aws_smithy_http_server_python::types::DateTime,
         886  +
    #[pyo3(get, set)]
         887  +
    /// :type json_rpc10.types.Blob:
         888  +
    #[allow(missing_docs)] // documentation missing in model
         889  +
    pub required_blob: ::aws_smithy_http_server_python::types::Blob,
         890  +
    #[pyo3(get, set)]
         891  +
    /// :type int:
         892  +
    #[allow(missing_docs)] // documentation missing in model
         893  +
    pub required_byte: i8,
         894  +
    #[pyo3(get, set)]
         895  +
    /// :type int:
         896  +
    #[allow(missing_docs)] // documentation missing in model
         897  +
    pub required_short: i16,
         898  +
    #[pyo3(get, set)]
         899  +
    /// :type int:
         900  +
    #[allow(missing_docs)] // documentation missing in model
         901  +
    pub required_integer: i32,
         902  +
    #[pyo3(get, set)]
         903  +
    /// :type int:
         904  +
    #[allow(missing_docs)] // documentation missing in model
         905  +
    pub required_long: i64,
         906  +
    #[pyo3(get, set)]
         907  +
    /// :type float:
         908  +
    #[allow(missing_docs)] // documentation missing in model
         909  +
    pub required_float: f32,
         910  +
    #[pyo3(get, set)]
         911  +
    /// :type float:
         912  +
    #[allow(missing_docs)] // documentation missing in model
         913  +
    pub required_double: f64,
         914  +
    #[pyo3(get, set)]
         915  +
    /// :type typing.Dict\[str, str\]:
         916  +
    #[allow(missing_docs)] // documentation missing in model
         917  +
    pub required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         918  +
}
         919  +
impl OperationWithRequiredMembersOutput {
         920  +
    #[allow(missing_docs)] // documentation missing in model
         921  +
    pub fn required_string(&self) -> &str {
         922  +
        use std::ops::Deref;
         923  +
        self.required_string.deref()
 1012    924   
    }
 1013         -
    fn __str__(&self) -> String {
 1014         -
        format!("{self:?}")
         925  +
    #[allow(missing_docs)] // documentation missing in model
         926  +
    pub fn required_boolean(&self) -> bool {
         927  +
        self.required_boolean
 1015    928   
    }
 1016         -
}
 1017         -
impl<'source> ::pyo3::FromPyObject<'source>
 1018         -
    for std::boxed::Box<EndpointWithHostLabelOperationOutput>
 1019         -
{
 1020         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1021         -
        ob.extract::<EndpointWithHostLabelOperationOutput>()
 1022         -
            .map(Box::new)
         929  +
    #[allow(missing_docs)] // documentation missing in model
         930  +
    pub fn required_list(&self) -> &[::std::string::String] {
         931  +
        use std::ops::Deref;
         932  +
        self.required_list.deref()
 1023    933   
    }
 1024         -
}
 1025         -
 1026         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<EndpointWithHostLabelOperationOutput> {
 1027         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1028         -
        (*self).into_py(py)
         934  +
    #[allow(missing_docs)] // documentation missing in model
         935  +
    pub fn required_timestamp(&self) -> &::aws_smithy_http_server_python::types::DateTime {
         936  +
        &self.required_timestamp
 1029    937   
    }
 1030         -
}
 1031         -
impl EndpointWithHostLabelOperationOutput {
 1032         -
    /// Creates a new builder-style object to manufacture [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
 1033         -
    pub fn builder() -> crate::output::endpoint_with_host_label_operation_output::Builder {
 1034         -
        crate::output::endpoint_with_host_label_operation_output::Builder::default()
         938  +
    #[allow(missing_docs)] // documentation missing in model
         939  +
    pub fn required_blob(&self) -> &::aws_smithy_http_server_python::types::Blob {
         940  +
        &self.required_blob
 1035    941   
    }
 1036         -
}
 1037         -
 1038         -
#[::pyo3::pyclass]
 1039         -
/// :rtype None:
 1040         -
#[allow(missing_docs)] // documentation missing in model
 1041         -
#[derive(
 1042         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1043         -
)]
 1044         -
pub struct EndpointOperationOutput {}
 1045         -
#[allow(clippy::new_without_default)]
 1046         -
#[allow(clippy::too_many_arguments)]
 1047         -
#[::pyo3::pymethods]
 1048         -
impl EndpointOperationOutput {
 1049         -
    #[new]
 1050         -
    pub fn new() -> Self {
 1051         -
        Self {}
         942  +
    #[allow(missing_docs)] // documentation missing in model
         943  +
    pub fn required_byte(&self) -> i8 {
         944  +
        self.required_byte
 1052    945   
    }
 1053         -
    fn __repr__(&self) -> String {
 1054         -
        format!("{self:?}")
         946  +
    #[allow(missing_docs)] // documentation missing in model
         947  +
    pub fn required_short(&self) -> i16 {
         948  +
        self.required_short
 1055    949   
    }
 1056         -
    fn __str__(&self) -> String {
 1057         -
        format!("{self:?}")
         950  +
    #[allow(missing_docs)] // documentation missing in model
         951  +
    pub fn required_integer(&self) -> i32 {
         952  +
        self.required_integer
 1058    953   
    }
 1059         -
}
 1060         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<EndpointOperationOutput> {
 1061         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1062         -
        ob.extract::<EndpointOperationOutput>().map(Box::new)
         954  +
    #[allow(missing_docs)] // documentation missing in model
         955  +
    pub fn required_long(&self) -> i64 {
         956  +
        self.required_long
 1063    957   
    }
 1064         -
}
 1065         -
 1066         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<EndpointOperationOutput> {
 1067         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1068         -
        (*self).into_py(py)
         958  +
    #[allow(missing_docs)] // documentation missing in model
         959  +
    pub fn required_float(&self) -> f32 {
         960  +
        self.required_float
 1069    961   
    }
 1070         -
}
 1071         -
impl EndpointOperationOutput {
 1072         -
    /// Creates a new builder-style object to manufacture [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
 1073         -
    pub fn builder() -> crate::output::endpoint_operation_output::Builder {
 1074         -
        crate::output::endpoint_operation_output::Builder::default()
         962  +
    #[allow(missing_docs)] // documentation missing in model
         963  +
    pub fn required_double(&self) -> f64 {
         964  +
        self.required_double
 1075    965   
    }
 1076         -
}
 1077         -
 1078         -
#[::pyo3::pyclass]
 1079         -
/// :param contents typing.Optional\[json_rpc10.model.MyUnion\]:
 1080         -
/// :rtype None:
 1081         -
#[allow(missing_docs)] // documentation missing in model
 1082         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 1083         -
pub struct JsonUnionsOutput {
 1084         -
    #[pyo3(get, set)]
 1085         -
    /// :type typing.Optional\[json_rpc10.model.MyUnion\]:
 1086         -
    /// A union with a representative set of types for members.
 1087         -
    pub contents: ::std::option::Option<crate::model::MyUnion>,
 1088         -
}
 1089         -
impl JsonUnionsOutput {
 1090         -
    /// A union with a representative set of types for members.
 1091         -
    pub fn contents(&self) -> ::std::option::Option<&crate::model::MyUnion> {
 1092         -
        self.contents.as_ref()
         966  +
    #[allow(missing_docs)] // documentation missing in model
         967  +
    pub fn required_map(
         968  +
        &self,
         969  +
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
         970  +
        &self.required_map
 1093    971   
    }
 1094    972   
}
 1095    973   
#[allow(clippy::new_without_default)]
 1096    974   
#[allow(clippy::too_many_arguments)]
 1097    975   
#[::pyo3::pymethods]
 1098         -
impl JsonUnionsOutput {
         976  +
impl OperationWithRequiredMembersOutput {
 1099    977   
    #[new]
 1100         -
    pub fn new(contents: ::std::option::Option<crate::model::MyUnion>) -> Self {
 1101         -
        Self { contents }
         978  +
    pub fn new(
         979  +
        required_string: ::std::string::String,
         980  +
        required_boolean: bool,
         981  +
        required_list: ::std::vec::Vec<::std::string::String>,
         982  +
        required_timestamp: ::aws_smithy_http_server_python::types::DateTime,
         983  +
        required_blob: ::aws_smithy_http_server_python::types::Blob,
         984  +
        required_byte: i8,
         985  +
        required_short: i16,
         986  +
        required_integer: i32,
         987  +
        required_long: i64,
         988  +
        required_float: f32,
         989  +
        required_double: f64,
         990  +
        required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         991  +
    ) -> Self {
         992  +
        Self {
         993  +
            required_string,
         994  +
            required_boolean,
         995  +
            required_list,
         996  +
            required_timestamp,
         997  +
            required_blob,
         998  +
            required_byte,
         999  +
            required_short,
        1000  +
            required_integer,
        1001  +
            required_long,
        1002  +
            required_float,
        1003  +
            required_double,
        1004  +
            required_map,
        1005  +
        }
 1102   1006   
    }
 1103   1007   
    fn __repr__(&self) -> String {
 1104   1008   
        format!("{self:?}")
 1105   1009   
    }
 1106   1010   
    fn __str__(&self) -> String {
 1107   1011   
        format!("{self:?}")
 1108   1012   
    }
 1109   1013   
}
 1110         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<JsonUnionsOutput> {
        1014  +
impl<'source> ::pyo3::FromPyObject<'source>
        1015  +
    for std::boxed::Box<OperationWithRequiredMembersOutput>
        1016  +
{
 1111   1017   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1112         -
        ob.extract::<JsonUnionsOutput>().map(Box::new)
        1018  +
        ob.extract::<OperationWithRequiredMembersOutput>()
        1019  +
            .map(Box::new)
 1113   1020   
    }
 1114   1021   
}
 1115   1022   
 1116         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<JsonUnionsOutput> {
        1023  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<OperationWithRequiredMembersOutput> {
 1117   1024   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1118   1025   
        (*self).into_py(py)
 1119   1026   
    }
 1120   1027   
}
 1121         -
impl JsonUnionsOutput {
 1122         -
    /// Creates a new builder-style object to manufacture [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
 1123         -
    pub fn builder() -> crate::output::json_unions_output::Builder {
 1124         -
        crate::output::json_unions_output::Builder::default()
        1028  +
impl OperationWithRequiredMembersOutput {
        1029  +
    /// Creates a new builder-style object to manufacture [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
        1030  +
    pub fn builder() -> crate::output::operation_with_required_members_output::Builder {
        1031  +
        crate::output::operation_with_required_members_output::Builder::default()
 1125   1032   
    }
 1126   1033   
}
 1127   1034   
 1128   1035   
#[::pyo3::pyclass]
 1129         -
/// :param greeting typing.Optional\[str\]:
        1036  +
/// :param dialog json_rpc10.model.Dialog:
        1037  +
/// :param dialog_list typing.List\[json_rpc10.model.Dialog\]:
        1038  +
/// :param dialog_map typing.Dict\[str, json_rpc10.model.Dialog\]:
 1130   1039   
/// :rtype None:
 1131   1040   
#[allow(missing_docs)] // documentation missing in model
 1132         -
#[derive(
 1133         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1134         -
)]
 1135         -
pub struct GreetingWithErrorsOutput {
        1041  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        1042  +
pub struct OperationWithNestedStructureOutput {
 1136   1043   
    #[pyo3(get, set)]
 1137         -
    /// :type typing.Optional\[str\]:
        1044  +
    /// :type json_rpc10.model.Dialog:
 1138   1045   
    #[allow(missing_docs)] // documentation missing in model
 1139         -
    pub greeting: ::std::option::Option<::std::string::String>,
        1046  +
    pub dialog: crate::model::Dialog,
        1047  +
    #[pyo3(get, set)]
        1048  +
    /// :type typing.List\[json_rpc10.model.Dialog\]:
        1049  +
    #[allow(missing_docs)] // documentation missing in model
        1050  +
    pub dialog_list: ::std::vec::Vec<crate::model::Dialog>,
        1051  +
    #[pyo3(get, set)]
        1052  +
    /// :type typing.Dict\[str, json_rpc10.model.Dialog\]:
        1053  +
    #[allow(missing_docs)] // documentation missing in model
        1054  +
    pub dialog_map: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
 1140   1055   
}
 1141         -
impl GreetingWithErrorsOutput {
        1056  +
impl OperationWithNestedStructureOutput {
 1142   1057   
    #[allow(missing_docs)] // documentation missing in model
 1143         -
    pub fn greeting(&self) -> ::std::option::Option<&str> {
 1144         -
        self.greeting.as_deref()
        1058  +
    pub fn dialog(&self) -> &crate::model::Dialog {
        1059  +
        &self.dialog
        1060  +
    }
        1061  +
    #[allow(missing_docs)] // documentation missing in model
        1062  +
    pub fn dialog_list(&self) -> &[crate::model::Dialog] {
        1063  +
        use std::ops::Deref;
        1064  +
        self.dialog_list.deref()
        1065  +
    }
        1066  +
    #[allow(missing_docs)] // documentation missing in model
        1067  +
    pub fn dialog_map(
        1068  +
        &self,
        1069  +
    ) -> &::std::collections::HashMap<::std::string::String, crate::model::Dialog> {
        1070  +
        &self.dialog_map
 1145   1071   
    }
 1146   1072   
}
 1147   1073   
#[allow(clippy::new_without_default)]
 1148   1074   
#[allow(clippy::too_many_arguments)]
 1149   1075   
#[::pyo3::pymethods]
 1150         -
impl GreetingWithErrorsOutput {
        1076  +
impl OperationWithNestedStructureOutput {
 1151   1077   
    #[new]
 1152         -
    pub fn new(greeting: ::std::option::Option<::std::string::String>) -> Self {
 1153         -
        Self { greeting }
        1078  +
    pub fn new(
        1079  +
        dialog: crate::model::Dialog,
        1080  +
        dialog_list: ::std::vec::Vec<crate::model::Dialog>,
        1081  +
        dialog_map: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
        1082  +
    ) -> Self {
        1083  +
        Self {
        1084  +
            dialog,
        1085  +
            dialog_list,
        1086  +
            dialog_map,
        1087  +
        }
 1154   1088   
    }
 1155   1089   
    fn __repr__(&self) -> String {
 1156   1090   
        format!("{self:?}")
 1157   1091   
    }
 1158   1092   
    fn __str__(&self) -> String {
 1159   1093   
        format!("{self:?}")
 1160   1094   
    }
 1161   1095   
}
 1162         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<GreetingWithErrorsOutput> {
        1096  +
impl<'source> ::pyo3::FromPyObject<'source>
        1097  +
    for std::boxed::Box<OperationWithNestedStructureOutput>
        1098  +
{
 1163   1099   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1164         -
        ob.extract::<GreetingWithErrorsOutput>().map(Box::new)
        1100  +
        ob.extract::<OperationWithNestedStructureOutput>()
        1101  +
            .map(Box::new)
 1165   1102   
    }
 1166   1103   
}
 1167   1104   
 1168         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<GreetingWithErrorsOutput> {
        1105  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<OperationWithNestedStructureOutput> {
 1169   1106   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1170   1107   
        (*self).into_py(py)
 1171   1108   
    }
 1172   1109   
}
 1173         -
impl GreetingWithErrorsOutput {
 1174         -
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
 1175         -
    pub fn builder() -> crate::output::greeting_with_errors_output::Builder {
 1176         -
        crate::output::greeting_with_errors_output::Builder::default()
        1110  +
impl OperationWithNestedStructureOutput {
        1111  +
    /// Creates a new builder-style object to manufacture [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
        1112  +
    pub fn builder() -> crate::output::operation_with_nested_structure_output::Builder {
        1113  +
        crate::output::operation_with_nested_structure_output::Builder::default()
 1177   1114   
    }
 1178   1115   
}
 1179   1116   
 1180   1117   
#[::pyo3::pyclass]
 1181         -
/// :param float_value typing.Optional\[float\]:
 1182         -
/// :param double_value typing.Optional\[float\]:
        1118  +
/// :param required_string str:
        1119  +
/// :param required_boolean bool:
        1120  +
/// :param required_list typing.List\[str\]:
        1121  +
/// :param required_timestamp json_rpc10.types.DateTime:
        1122  +
/// :param required_blob json_rpc10.types.Blob:
        1123  +
/// :param required_byte int:
        1124  +
/// :param required_short int:
        1125  +
/// :param required_integer int:
        1126  +
/// :param required_long int:
        1127  +
/// :param required_float float:
        1128  +
/// :param required_double float:
        1129  +
/// :param required_map typing.Dict\[str, str\]:
        1130  +
/// :param required_enum json_rpc10.model.RequiredEnum:
        1131  +
/// :param required_int_enum int:
 1183   1132   
/// :rtype None:
 1184   1133   
#[allow(missing_docs)] // documentation missing in model
 1185   1134   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 1186         -
pub struct SimpleScalarPropertiesOutput {
        1135  +
pub struct OperationWithRequiredMembersWithDefaultsOutput {
 1187   1136   
    #[pyo3(get, set)]
 1188         -
    /// :type typing.Optional\[float\]:
        1137  +
    /// :type str:
 1189   1138   
    #[allow(missing_docs)] // documentation missing in model
 1190         -
    pub float_value: ::std::option::Option<f32>,
        1139  +
    pub required_string: ::std::string::String,
 1191   1140   
    #[pyo3(get, set)]
 1192         -
    /// :type typing.Optional\[float\]:
        1141  +
    /// :type bool:
 1193   1142   
    #[allow(missing_docs)] // documentation missing in model
 1194         -
    pub double_value: ::std::option::Option<f64>,
        1143  +
    pub required_boolean: bool,
        1144  +
    #[pyo3(get, set)]
        1145  +
    /// :type typing.List\[str\]:
        1146  +
    #[allow(missing_docs)] // documentation missing in model
        1147  +
    pub required_list: ::std::vec::Vec<::std::string::String>,
        1148  +
    #[pyo3(get, set)]
        1149  +
    /// :type json_rpc10.types.DateTime:
        1150  +
    #[allow(missing_docs)] // documentation missing in model
        1151  +
    pub required_timestamp: ::aws_smithy_http_server_python::types::DateTime,
        1152  +
    #[pyo3(get, set)]
        1153  +
    /// :type json_rpc10.types.Blob:
        1154  +
    #[allow(missing_docs)] // documentation missing in model
        1155  +
    pub required_blob: ::aws_smithy_http_server_python::types::Blob,
        1156  +
    #[pyo3(get, set)]
        1157  +
    /// :type int:
        1158  +
    #[allow(missing_docs)] // documentation missing in model
        1159  +
    pub required_byte: i8,
        1160  +
    #[pyo3(get, set)]
        1161  +
    /// :type int:
        1162  +
    #[allow(missing_docs)] // documentation missing in model
        1163  +
    pub required_short: i16,
        1164  +
    #[pyo3(get, set)]
        1165  +
    /// :type int:
        1166  +
    #[allow(missing_docs)] // documentation missing in model
        1167  +
    pub required_integer: i32,
        1168  +
    #[pyo3(get, set)]
        1169  +
    /// :type int:
        1170  +
    #[allow(missing_docs)] // documentation missing in model
        1171  +
    pub required_long: i64,
        1172  +
    #[pyo3(get, set)]
        1173  +
    /// :type float:
        1174  +
    #[allow(missing_docs)] // documentation missing in model
        1175  +
    pub required_float: f32,
        1176  +
    #[pyo3(get, set)]
        1177  +
    /// :type float:
        1178  +
    #[allow(missing_docs)] // documentation missing in model
        1179  +
    pub required_double: f64,
        1180  +
    #[pyo3(get, set)]
        1181  +
    /// :type typing.Dict\[str, str\]:
        1182  +
    #[allow(missing_docs)] // documentation missing in model
        1183  +
    pub required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1184  +
    #[pyo3(get, set)]
        1185  +
    /// :type json_rpc10.model.RequiredEnum:
        1186  +
    #[allow(missing_docs)] // documentation missing in model
        1187  +
    pub required_enum: crate::model::RequiredEnum,
        1188  +
    #[pyo3(get, set)]
        1189  +
    /// :type int:
        1190  +
    #[allow(missing_docs)] // documentation missing in model
        1191  +
    pub required_int_enum: i32,
 1195   1192   
}
 1196         -
impl SimpleScalarPropertiesOutput {
        1193  +
impl OperationWithRequiredMembersWithDefaultsOutput {
        1194  +
    #[allow(missing_docs)] // documentation missing in model
        1195  +
    pub fn required_string(&self) -> &str {
        1196  +
        use std::ops::Deref;
        1197  +
        self.required_string.deref()
        1198  +
    }
        1199  +
    #[allow(missing_docs)] // documentation missing in model
        1200  +
    pub fn required_boolean(&self) -> bool {
        1201  +
        self.required_boolean
        1202  +
    }
        1203  +
    #[allow(missing_docs)] // documentation missing in model
        1204  +
    pub fn required_list(&self) -> &[::std::string::String] {
        1205  +
        use std::ops::Deref;
        1206  +
        self.required_list.deref()
        1207  +
    }
        1208  +
    #[allow(missing_docs)] // documentation missing in model
        1209  +
    pub fn required_timestamp(&self) -> &::aws_smithy_http_server_python::types::DateTime {
        1210  +
        &self.required_timestamp
        1211  +
    }
        1212  +
    #[allow(missing_docs)] // documentation missing in model
        1213  +
    pub fn required_blob(&self) -> &::aws_smithy_http_server_python::types::Blob {
        1214  +
        &self.required_blob
        1215  +
    }
 1197   1216   
    #[allow(missing_docs)] // documentation missing in model
 1198         -
    pub fn float_value(&self) -> ::std::option::Option<f32> {
 1199         -
        self.float_value
        1217  +
    pub fn required_byte(&self) -> i8 {
        1218  +
        self.required_byte
 1200   1219   
    }
 1201   1220   
    #[allow(missing_docs)] // documentation missing in model
 1202         -
    pub fn double_value(&self) -> ::std::option::Option<f64> {
 1203         -
        self.double_value
        1221  +
    pub fn required_short(&self) -> i16 {
        1222  +
        self.required_short
 1204   1223   
    }
 1205         -
}
 1206         -
#[allow(clippy::new_without_default)]
 1207         -
#[allow(clippy::too_many_arguments)]
 1208         -
#[::pyo3::pymethods]
 1209         -
impl SimpleScalarPropertiesOutput {
 1210         -
    #[new]
 1211         -
    pub fn new(
 1212         -
        float_value: ::std::option::Option<f32>,
 1213         -
        double_value: ::std::option::Option<f64>,
 1214         -
    ) -> Self {
 1215         -
        Self {
 1216         -
            float_value,
 1217         -
            double_value,
        1224  +
    #[allow(missing_docs)] // documentation missing in model
        1225  +
    pub fn required_integer(&self) -> i32 {
        1226  +
        self.required_integer
 1218   1227   
    }
        1228  +
    #[allow(missing_docs)] // documentation missing in model
        1229  +
    pub fn required_long(&self) -> i64 {
        1230  +
        self.required_long
 1219   1231   
    }
 1220         -
    fn __repr__(&self) -> String {
 1221         -
        format!("{self:?}")
        1232  +
    #[allow(missing_docs)] // documentation missing in model
        1233  +
    pub fn required_float(&self) -> f32 {
        1234  +
        self.required_float
 1222   1235   
    }
 1223         -
    fn __str__(&self) -> String {
 1224         -
        format!("{self:?}")
        1236  +
    #[allow(missing_docs)] // documentation missing in model
        1237  +
    pub fn required_double(&self) -> f64 {
        1238  +
        self.required_double
 1225   1239   
    }
 1226         -
}
 1227         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<SimpleScalarPropertiesOutput> {
 1228         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1229         -
        ob.extract::<SimpleScalarPropertiesOutput>().map(Box::new)
        1240  +
    #[allow(missing_docs)] // documentation missing in model
        1241  +
    pub fn required_map(
        1242  +
        &self,
        1243  +
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
        1244  +
        &self.required_map
 1230   1245   
    }
 1231         -
}
 1232         -
 1233         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<SimpleScalarPropertiesOutput> {
 1234         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1235         -
        (*self).into_py(py)
        1246  +
    #[allow(missing_docs)] // documentation missing in model
        1247  +
    pub fn required_enum(&self) -> &crate::model::RequiredEnum {
        1248  +
        &self.required_enum
 1236   1249   
    }
 1237         -
}
 1238         -
impl SimpleScalarPropertiesOutput {
 1239         -
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
 1240         -
    pub fn builder() -> crate::output::simple_scalar_properties_output::Builder {
 1241         -
        crate::output::simple_scalar_properties_output::Builder::default()
        1250  +
    #[allow(missing_docs)] // documentation missing in model
        1251  +
    pub fn required_int_enum(&self) -> i32 {
        1252  +
        self.required_int_enum
 1242   1253   
    }
 1243   1254   
}
 1244         -
 1245         -
#[::pyo3::pyclass]
 1246         -
/// :rtype None:
 1247         -
#[allow(missing_docs)] // documentation missing in model
 1248         -
#[derive(
 1249         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1250         -
)]
 1251         -
pub struct EmptyInputAndEmptyOutputOutput {}
 1252   1255   
#[allow(clippy::new_without_default)]
 1253   1256   
#[allow(clippy::too_many_arguments)]
 1254   1257   
#[::pyo3::pymethods]
 1255         -
impl EmptyInputAndEmptyOutputOutput {
        1258  +
impl OperationWithRequiredMembersWithDefaultsOutput {
 1256   1259   
    #[new]
 1257         -
    pub fn new() -> Self {
 1258         -
        Self {}
        1260  +
    pub fn new(
        1261  +
        required_string: ::std::string::String,
        1262  +
        required_boolean: bool,
        1263  +
        required_list: ::std::vec::Vec<::std::string::String>,
        1264  +
        required_timestamp: ::aws_smithy_http_server_python::types::DateTime,
        1265  +
        required_blob: ::aws_smithy_http_server_python::types::Blob,
        1266  +
        required_byte: i8,
        1267  +
        required_short: i16,
        1268  +
        required_integer: i32,
        1269  +
        required_long: i64,
        1270  +
        required_float: f32,
        1271  +
        required_double: f64,
        1272  +
        required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1273  +
        required_enum: crate::model::RequiredEnum,
        1274  +
        required_int_enum: i32,
        1275  +
    ) -> Self {
        1276  +
        Self {
        1277  +
            required_string,
        1278  +
            required_boolean,
        1279  +
            required_list,
        1280  +
            required_timestamp,
        1281  +
            required_blob,
        1282  +
            required_byte,
        1283  +
            required_short,
        1284  +
            required_integer,
        1285  +
            required_long,
        1286  +
            required_float,
        1287  +
            required_double,
        1288  +
            required_map,
        1289  +
            required_enum,
        1290  +
            required_int_enum,
        1291  +
        }
 1259   1292   
    }
 1260   1293   
    fn __repr__(&self) -> String {
 1261   1294   
        format!("{self:?}")
 1262   1295   
    }
 1263   1296   
    fn __str__(&self) -> String {
 1264   1297   
        format!("{self:?}")
 1265   1298   
    }
 1266   1299   
}
 1267         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<EmptyInputAndEmptyOutputOutput> {
        1300  +
impl<'source> ::pyo3::FromPyObject<'source>
        1301  +
    for std::boxed::Box<OperationWithRequiredMembersWithDefaultsOutput>
        1302  +
{
 1268   1303   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1269         -
        ob.extract::<EmptyInputAndEmptyOutputOutput>().map(Box::new)
        1304  +
        ob.extract::<OperationWithRequiredMembersWithDefaultsOutput>()
        1305  +
            .map(Box::new)
 1270   1306   
    }
 1271   1307   
}
 1272   1308   
 1273         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<EmptyInputAndEmptyOutputOutput> {
        1309  +
impl ::pyo3::IntoPy<::pyo3::PyObject>
        1310  +
    for std::boxed::Box<OperationWithRequiredMembersWithDefaultsOutput>
        1311  +
{
 1274   1312   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1275   1313   
        (*self).into_py(py)
 1276   1314   
    }
 1277   1315   
}
 1278         -
impl EmptyInputAndEmptyOutputOutput {
 1279         -
    /// Creates a new builder-style object to manufacture [`EmptyInputAndEmptyOutputOutput`](crate::output::EmptyInputAndEmptyOutputOutput).
 1280         -
    pub fn builder() -> crate::output::empty_input_and_empty_output_output::Builder {
 1281         -
        crate::output::empty_input_and_empty_output_output::Builder::default()
        1316  +
impl OperationWithRequiredMembersWithDefaultsOutput {
        1317  +
    /// Creates a new builder-style object to manufacture [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
        1318  +
    pub fn builder() -> crate::output::operation_with_required_members_with_defaults_output::Builder
        1319  +
    {
        1320  +
        crate::output::operation_with_required_members_with_defaults_output::Builder::default()
 1282   1321   
    }
 1283   1322   
}
 1284   1323   
 1285   1324   
#[::pyo3::pyclass]
 1286   1325   
/// :rtype None:
 1287   1326   
#[allow(missing_docs)] // documentation missing in model
 1288   1327   
#[derive(
 1289   1328   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1290   1329   
)]
 1291         -
pub struct NoInputAndOutputOutput {}
        1330  +
pub struct QueryIncompatibleOperationOutput {}
 1292   1331   
#[allow(clippy::new_without_default)]
 1293   1332   
#[allow(clippy::too_many_arguments)]
 1294   1333   
#[::pyo3::pymethods]
 1295         -
impl NoInputAndOutputOutput {
        1334  +
impl QueryIncompatibleOperationOutput {
 1296   1335   
    #[new]
 1297   1336   
    pub fn new() -> Self {
 1298   1337   
        Self {}
 1299   1338   
    }
 1300   1339   
    fn __repr__(&self) -> String {
 1301   1340   
        format!("{self:?}")
 1302   1341   
    }
 1303   1342   
    fn __str__(&self) -> String {
 1304   1343   
        format!("{self:?}")
 1305   1344   
    }
 1306   1345   
}
 1307         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<NoInputAndOutputOutput> {
        1346  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<QueryIncompatibleOperationOutput> {
 1308   1347   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1309         -
        ob.extract::<NoInputAndOutputOutput>().map(Box::new)
        1348  +
        ob.extract::<QueryIncompatibleOperationOutput>()
        1349  +
            .map(Box::new)
 1310   1350   
    }
 1311   1351   
}
 1312   1352   
 1313         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<NoInputAndOutputOutput> {
        1353  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<QueryIncompatibleOperationOutput> {
 1314   1354   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1315   1355   
        (*self).into_py(py)
 1316   1356   
    }
 1317   1357   
}
 1318         -
impl NoInputAndOutputOutput {
 1319         -
    /// Creates a new builder-style object to manufacture [`NoInputAndOutputOutput`](crate::output::NoInputAndOutputOutput).
 1320         -
    pub fn builder() -> crate::output::no_input_and_output_output::Builder {
 1321         -
        crate::output::no_input_and_output_output::Builder::default()
        1358  +
impl QueryIncompatibleOperationOutput {
        1359  +
    /// Creates a new builder-style object to manufacture [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
        1360  +
    pub fn builder() -> crate::output::query_incompatible_operation_output::Builder {
        1361  +
        crate::output::query_incompatible_operation_output::Builder::default()
 1322   1362   
    }
 1323   1363   
}
        1364  +
/// See [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
        1365  +
pub mod no_input_and_no_output_output {
 1324   1366   
 1325         -
#[::pyo3::pyclass]
 1326         -
/// :rtype None:
 1327         -
#[allow(missing_docs)] // documentation missing in model
 1328         -
#[derive(
 1329         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1330         -
)]
 1331         -
pub struct NoInputAndNoOutputOutput {}
 1332         -
#[allow(clippy::new_without_default)]
 1333         -
#[allow(clippy::too_many_arguments)]
 1334         -
#[::pyo3::pymethods]
 1335         -
impl NoInputAndNoOutputOutput {
 1336         -
    #[new]
 1337         -
    pub fn new() -> Self {
 1338         -
        Self {}
 1339         -
    }
 1340         -
    fn __repr__(&self) -> String {
 1341         -
        format!("{self:?}")
        1367  +
    impl ::std::convert::From<Builder> for crate::output::NoInputAndNoOutputOutput {
        1368  +
        fn from(builder: Builder) -> Self {
        1369  +
            builder.build()
 1342   1370   
        }
 1343         -
    fn __str__(&self) -> String {
 1344         -
        format!("{self:?}")
 1345   1371   
    }
 1346         -
}
 1347         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<NoInputAndNoOutputOutput> {
 1348         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1349         -
        ob.extract::<NoInputAndNoOutputOutput>().map(Box::new)
        1372  +
    /// A builder for [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
        1373  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1374  +
    pub struct Builder {}
        1375  +
    impl Builder {
        1376  +
        /// Consumes the builder and constructs a [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
        1377  +
        pub fn build(self) -> crate::output::NoInputAndNoOutputOutput {
        1378  +
            self.build_enforcing_required_and_enum_traits()
 1350   1379   
        }
 1351         -
}
 1352         -
 1353         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<NoInputAndNoOutputOutput> {
 1354         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1355         -
        (*self).into_py(py)
        1380  +
        fn build_enforcing_required_and_enum_traits(
        1381  +
            self,
        1382  +
        ) -> crate::output::NoInputAndNoOutputOutput {
        1383  +
            crate::output::NoInputAndNoOutputOutput {}
 1356   1384   
        }
 1357         -
}
 1358         -
impl NoInputAndNoOutputOutput {
 1359         -
    /// Creates a new builder-style object to manufacture [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
 1360         -
    pub fn builder() -> crate::output::no_input_and_no_output_output::Builder {
 1361         -
        crate::output::no_input_and_no_output_output::Builder::default()
 1362   1385   
    }
 1363   1386   
}
 1364         -
/// See [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
 1365         -
pub mod query_incompatible_operation_output {
        1387  +
/// See [`NoInputAndOutputOutput`](crate::output::NoInputAndOutputOutput).
        1388  +
pub mod no_input_and_output_output {
 1366   1389   
 1367         -
    impl ::std::convert::From<Builder> for crate::output::QueryIncompatibleOperationOutput {
        1390  +
    impl ::std::convert::From<Builder> for crate::output::NoInputAndOutputOutput {
 1368   1391   
        fn from(builder: Builder) -> Self {
 1369   1392   
            builder.build()
 1370   1393   
        }
 1371   1394   
    }
 1372         -
    /// A builder for [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
        1395  +
    /// A builder for [`NoInputAndOutputOutput`](crate::output::NoInputAndOutputOutput).
 1373   1396   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1374   1397   
    pub struct Builder {}
 1375   1398   
    impl Builder {
 1376         -
        /// Consumes the builder and constructs a [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
 1377         -
        pub fn build(self) -> crate::output::QueryIncompatibleOperationOutput {
        1399  +
        /// Consumes the builder and constructs a [`NoInputAndOutputOutput`](crate::output::NoInputAndOutputOutput).
        1400  +
        pub fn build(self) -> crate::output::NoInputAndOutputOutput {
 1378   1401   
            self.build_enforcing_required_and_enum_traits()
 1379   1402   
        }
 1380         -
        fn build_enforcing_required_and_enum_traits(
 1381         -
            self,
 1382         -
        ) -> crate::output::QueryIncompatibleOperationOutput {
 1383         -
            crate::output::QueryIncompatibleOperationOutput {}
        1403  +
        fn build_enforcing_required_and_enum_traits(self) -> crate::output::NoInputAndOutputOutput {
        1404  +
            crate::output::NoInputAndOutputOutput {}
 1384   1405   
        }
 1385   1406   
    }
 1386   1407   
}
 1387         -
/// See [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
 1388         -
pub mod operation_with_required_members_with_defaults_output {
        1408  +
/// See [`EmptyInputAndEmptyOutputOutput`](crate::output::EmptyInputAndEmptyOutputOutput).
        1409  +
pub mod empty_input_and_empty_output_output {
 1389   1410   
 1390         -
    impl ::std::convert::From<Builder>
 1391         -
        for crate::output::OperationWithRequiredMembersWithDefaultsOutput
 1392         -
    {
        1411  +
    impl ::std::convert::From<Builder> for crate::output::EmptyInputAndEmptyOutputOutput {
 1393   1412   
        fn from(builder: Builder) -> Self {
 1394   1413   
            builder.build()
 1395   1414   
        }
 1396   1415   
    }
 1397         -
    /// A builder for [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
        1416  +
    /// A builder for [`EmptyInputAndEmptyOutputOutput`](crate::output::EmptyInputAndEmptyOutputOutput).
 1398   1417   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1399         -
    pub struct Builder {
 1400         -
        pub(crate) required_string: ::std::option::Option<::std::string::String>,
 1401         -
        pub(crate) required_boolean: ::std::option::Option<bool>,
 1402         -
        pub(crate) required_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1403         -
        pub(crate) required_timestamp:
 1404         -
            ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
 1405         -
        pub(crate) required_blob:
 1406         -
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1407         -
        pub(crate) required_byte: ::std::option::Option<i8>,
 1408         -
        pub(crate) required_short: ::std::option::Option<i16>,
 1409         -
        pub(crate) required_integer: ::std::option::Option<i32>,
 1410         -
        pub(crate) required_long: ::std::option::Option<i64>,
 1411         -
        pub(crate) required_float: ::std::option::Option<f32>,
 1412         -
        pub(crate) required_double: ::std::option::Option<f64>,
 1413         -
        pub(crate) required_map: ::std::option::Option<
 1414         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1415         -
        >,
 1416         -
        pub(crate) required_enum: ::std::option::Option<crate::model::RequiredEnum>,
 1417         -
        pub(crate) required_int_enum: ::std::option::Option<i32>,
 1418         -
    }
        1418  +
    pub struct Builder {}
 1419   1419   
    impl Builder {
 1420         -
        #[allow(missing_docs)] // documentation missing in model
 1421         -
        pub fn required_string(mut self, input: ::std::string::String) -> Self {
 1422         -
            self.required_string = Some(input);
 1423         -
            self
        1420  +
        /// Consumes the builder and constructs a [`EmptyInputAndEmptyOutputOutput`](crate::output::EmptyInputAndEmptyOutputOutput).
        1421  +
        pub fn build(self) -> crate::output::EmptyInputAndEmptyOutputOutput {
        1422  +
            self.build_enforcing_required_and_enum_traits()
        1423  +
        }
        1424  +
        fn build_enforcing_required_and_enum_traits(
        1425  +
            self,
        1426  +
        ) -> crate::output::EmptyInputAndEmptyOutputOutput {
        1427  +
            crate::output::EmptyInputAndEmptyOutputOutput {}
 1424   1428   
        }
 1425         -
        #[allow(missing_docs)] // documentation missing in model
 1426         -
        pub fn required_boolean(mut self, input: bool) -> Self {
 1427         -
            self.required_boolean = Some(input);
 1428         -
            self
 1429   1429   
    }
 1430         -
        #[allow(missing_docs)] // documentation missing in model
 1431         -
        pub fn required_list(mut self, input: ::std::vec::Vec<::std::string::String>) -> Self {
 1432         -
            self.required_list = Some(input);
 1433         -
            self
        1430  +
}
        1431  +
/// See [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        1432  +
pub mod simple_scalar_properties_output {
        1433  +
        1434  +
    impl ::std::convert::From<Builder> for crate::output::SimpleScalarPropertiesOutput {
        1435  +
        fn from(builder: Builder) -> Self {
        1436  +
            builder.build()
 1434   1437   
        }
 1435         -
        #[allow(missing_docs)] // documentation missing in model
 1436         -
        pub fn required_timestamp(
 1437         -
            mut self,
 1438         -
            input: ::aws_smithy_http_server_python::types::DateTime,
 1439         -
        ) -> Self {
 1440         -
            self.required_timestamp = Some(input);
 1441         -
            self
 1442   1438   
    }
 1443         -
        #[allow(missing_docs)] // documentation missing in model
 1444         -
        pub fn required_blob(
 1445         -
            mut self,
 1446         -
            input: ::aws_smithy_http_server_python::types::Blob,
 1447         -
        ) -> Self {
 1448         -
            self.required_blob = Some(input);
 1449         -
            self
        1439  +
    /// A builder for [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        1440  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1441  +
    pub struct Builder {
        1442  +
        pub(crate) float_value: ::std::option::Option<f32>,
        1443  +
        pub(crate) double_value: ::std::option::Option<f64>,
 1450   1444   
    }
        1445  +
    impl Builder {
 1451   1446   
        #[allow(missing_docs)] // documentation missing in model
 1452         -
        pub fn required_byte(mut self, input: i8) -> Self {
 1453         -
            self.required_byte = Some(input);
        1447  +
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
        1448  +
            self.float_value = input;
 1454   1449   
            self
 1455   1450   
        }
 1456   1451   
        #[allow(missing_docs)] // documentation missing in model
 1457         -
        pub fn required_short(mut self, input: i16) -> Self {
 1458         -
            self.required_short = Some(input);
        1452  +
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
        1453  +
            self.double_value = input;
 1459   1454   
            self
 1460   1455   
        }
 1461         -
        #[allow(missing_docs)] // documentation missing in model
 1462         -
        pub fn required_integer(mut self, input: i32) -> Self {
 1463         -
            self.required_integer = Some(input);
 1464         -
            self
        1456  +
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        1457  +
        pub fn build(self) -> crate::output::SimpleScalarPropertiesOutput {
        1458  +
            self.build_enforcing_required_and_enum_traits()
 1465   1459   
        }
 1466         -
        #[allow(missing_docs)] // documentation missing in model
 1467         -
        pub fn required_long(mut self, input: i64) -> Self {
 1468         -
            self.required_long = Some(input);
 1469         -
            self
        1460  +
        fn build_enforcing_required_and_enum_traits(
        1461  +
            self,
        1462  +
        ) -> crate::output::SimpleScalarPropertiesOutput {
        1463  +
            crate::output::SimpleScalarPropertiesOutput {
        1464  +
                float_value: self.float_value,
        1465  +
                double_value: self.double_value,
 1470   1466   
            }
 1471         -
        #[allow(missing_docs)] // documentation missing in model
 1472         -
        pub fn required_float(mut self, input: f32) -> Self {
 1473         -
            self.required_float = Some(input);
 1474         -
            self
 1475   1467   
        }
 1476         -
        #[allow(missing_docs)] // documentation missing in model
 1477         -
        pub fn required_double(mut self, input: f64) -> Self {
 1478         -
            self.required_double = Some(input);
 1479         -
            self
 1480   1468   
    }
 1481         -
        #[allow(missing_docs)] // documentation missing in model
 1482         -
        pub fn required_map(
 1483         -
            mut self,
 1484         -
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1485         -
        ) -> Self {
 1486         -
            self.required_map = Some(input);
 1487         -
            self
        1469  +
}
        1470  +
/// See [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1471  +
pub mod greeting_with_errors_output {
        1472  +
        1473  +
    impl ::std::convert::From<Builder> for crate::output::GreetingWithErrorsOutput {
        1474  +
        fn from(builder: Builder) -> Self {
        1475  +
            builder.build()
 1488   1476   
        }
 1489         -
        #[allow(missing_docs)] // documentation missing in model
 1490         -
        pub fn required_enum(mut self, input: crate::model::RequiredEnum) -> Self {
 1491         -
            self.required_enum = Some(input);
 1492         -
            self
 1493   1477   
    }
        1478  +
    /// A builder for [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1479  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1480  +
    pub struct Builder {
        1481  +
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        1482  +
    }
        1483  +
    impl Builder {
 1494   1484   
        #[allow(missing_docs)] // documentation missing in model
 1495         -
        pub fn required_int_enum(mut self, input: i32) -> Self {
 1496         -
            self.required_int_enum = Some(input);
        1485  +
        pub fn greeting(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1486  +
            self.greeting = input;
 1497   1487   
            self
 1498   1488   
        }
 1499         -
        /// Consumes the builder and constructs a [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
 1500         -
        pub fn build(self) -> crate::output::OperationWithRequiredMembersWithDefaultsOutput {
        1489  +
        /// Consumes the builder and constructs a [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1490  +
        pub fn build(self) -> crate::output::GreetingWithErrorsOutput {
 1501   1491   
            self.build_enforcing_required_and_enum_traits()
 1502   1492   
        }
 1503   1493   
        fn build_enforcing_required_and_enum_traits(
 1504   1494   
            self,
 1505         -
        ) -> crate::output::OperationWithRequiredMembersWithDefaultsOutput {
 1506         -
            crate::output::OperationWithRequiredMembersWithDefaultsOutput {
 1507         -
                required_string: self.required_string.unwrap_or_else(|| String::from("hi")),
 1508         -
                required_boolean: self.required_boolean.unwrap_or(true),
 1509         -
                required_list: self.required_list.unwrap_or_default(),
 1510         -
                required_timestamp: self.required_timestamp.unwrap_or_else(|| {
 1511         -
                    ::aws_smithy_types::DateTime::from_fractional_secs(1, 0_f64).into()
 1512         -
                }),
 1513         -
                required_blob: self
 1514         -
                    .required_blob
 1515         -
                    .unwrap_or_else(|| ::aws_smithy_types::Blob::new("YmxvYg==").into()),
 1516         -
                required_byte: self.required_byte.unwrap_or(1i8),
 1517         -
                required_short: self.required_short.unwrap_or(1i16),
 1518         -
                required_integer: self.required_integer.unwrap_or(10i32),
 1519         -
                required_long: self.required_long.unwrap_or(100i64),
 1520         -
                required_float: self.required_float.unwrap_or(1.0f32),
 1521         -
                required_double: self.required_double.unwrap_or(1.0f64),
 1522         -
                required_map: self.required_map.unwrap_or_default(),
 1523         -
                required_enum: self.required_enum.unwrap_or(
 1524         -
                    "FOO"
 1525         -
                        .parse::<crate::model::RequiredEnum>()
 1526         -
                        .expect("static value validated to member"),
 1527         -
                ),
 1528         -
                required_int_enum: self.required_int_enum.unwrap_or(1i32),
        1495  +
        ) -> crate::output::GreetingWithErrorsOutput {
        1496  +
            crate::output::GreetingWithErrorsOutput {
        1497  +
                greeting: self.greeting,
 1529   1498   
            }
 1530   1499   
        }
 1531   1500   
    }
 1532   1501   
}
 1533         -
/// See [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
 1534         -
pub mod operation_with_nested_structure_output {
 1535         -
 1536         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1537         -
    /// Holds one variant for each of the ways the builder can fail.
 1538         -
    #[allow(clippy::enum_variant_names)]
 1539         -
    pub enum ConstraintViolation {
 1540         -
        /// `dialog` was not provided but it is required when building `OperationWithNestedStructureOutput`.
 1541         -
        MissingDialog,
 1542         -
    }
 1543         -
    impl ::std::fmt::Display for ConstraintViolation {
 1544         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1545         -
            match self {
 1546         -
                ConstraintViolation::MissingDialog => write!(f, "`dialog` was not provided but it is required when building `OperationWithNestedStructureOutput`"),
 1547         -
            }
 1548         -
        }
 1549         -
    }
 1550         -
    impl ::std::error::Error for ConstraintViolation {}
 1551         -
    impl ::std::convert::TryFrom<Builder> for crate::output::OperationWithNestedStructureOutput {
 1552         -
        type Error = ConstraintViolation;
        1502  +
/// See [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1503  +
pub mod json_unions_output {
 1553   1504   
 1554         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        1505  +
    impl ::std::convert::From<Builder> for crate::output::JsonUnionsOutput {
        1506  +
        fn from(builder: Builder) -> Self {
 1555   1507   
            builder.build()
 1556   1508   
        }
 1557   1509   
    }
 1558         -
    /// A builder for [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
        1510  +
    /// A builder for [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
 1559   1511   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1560   1512   
    pub struct Builder {
 1561         -
        pub(crate) dialog: ::std::option::Option<crate::model::Dialog>,
 1562         -
        pub(crate) dialog_list: ::std::option::Option<::std::vec::Vec<crate::model::Dialog>>,
 1563         -
        pub(crate) dialog_map: ::std::option::Option<
 1564         -
            ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
 1565         -
        >,
        1513  +
        pub(crate) contents: ::std::option::Option<crate::model::MyUnion>,
 1566   1514   
    }
 1567   1515   
    impl Builder {
 1568         -
        #[allow(missing_docs)] // documentation missing in model
 1569         -
        pub fn dialog(mut self, input: crate::model::Dialog) -> Self {
 1570         -
            self.dialog = Some(input);
 1571         -
            self
 1572         -
        }
 1573         -
        #[allow(missing_docs)] // documentation missing in model
 1574         -
        pub fn dialog_list(mut self, input: ::std::vec::Vec<crate::model::Dialog>) -> Self {
 1575         -
            self.dialog_list = Some(input);
 1576         -
            self
 1577         -
        }
 1578         -
        #[allow(missing_docs)] // documentation missing in model
 1579         -
        pub fn dialog_map(
 1580         -
            mut self,
 1581         -
            input: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
 1582         -
        ) -> Self {
 1583         -
            self.dialog_map = Some(input);
        1516  +
        /// A union with a representative set of types for members.
        1517  +
        pub fn contents(mut self, input: ::std::option::Option<crate::model::MyUnion>) -> Self {
        1518  +
            self.contents = input;
 1584   1519   
            self
 1585   1520   
        }
 1586         -
        /// Consumes the builder and constructs a [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
 1587         -
        ///
 1588         -
        /// The builder fails to construct a [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput) if you do not provide a value for all non-`Option`al members.
 1589         -
        ///
 1590         -
        pub fn build(
 1591         -
            self,
 1592         -
        ) -> Result<crate::output::OperationWithNestedStructureOutput, ConstraintViolation>
 1593         -
        {
        1521  +
        /// Consumes the builder and constructs a [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1522  +
        pub fn build(self) -> crate::output::JsonUnionsOutput {
 1594   1523   
            self.build_enforcing_required_and_enum_traits()
 1595   1524   
        }
 1596         -
        fn build_enforcing_required_and_enum_traits(
 1597         -
            self,
 1598         -
        ) -> Result<crate::output::OperationWithNestedStructureOutput, ConstraintViolation>
 1599         -
        {
 1600         -
            Ok(crate::output::OperationWithNestedStructureOutput {
 1601         -
                dialog: self.dialog.ok_or(ConstraintViolation::MissingDialog)?,
 1602         -
                dialog_list: self.dialog_list.unwrap_or_default(),
 1603         -
                dialog_map: self.dialog_map.unwrap_or_default(),
 1604         -
            })
        1525  +
        fn build_enforcing_required_and_enum_traits(self) -> crate::output::JsonUnionsOutput {
        1526  +
            crate::output::JsonUnionsOutput {
        1527  +
                contents: self.contents,
        1528  +
            }
 1605   1529   
        }
 1606   1530   
    }
 1607   1531   
}
 1608         -
/// See [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
 1609         -
pub mod operation_with_required_members_output {
        1532  +
/// See [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1533  +
pub mod endpoint_operation_output {
 1610   1534   
 1611         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1612         -
    /// Holds one variant for each of the ways the builder can fail.
 1613         -
    #[allow(clippy::enum_variant_names)]
 1614         -
    pub enum ConstraintViolation {
 1615         -
        /// `required_string` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1616         -
        MissingRequiredString,
 1617         -
        /// `required_boolean` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1618         -
        MissingRequiredBoolean,
 1619         -
        /// `required_list` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1620         -
        MissingRequiredList,
 1621         -
        /// `required_timestamp` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1622         -
        MissingRequiredTimestamp,
 1623         -
        /// `required_blob` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1624         -
        MissingRequiredBlob,
 1625         -
        /// `required_byte` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1626         -
        MissingRequiredByte,
 1627         -
        /// `required_short` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1628         -
        MissingRequiredShort,
 1629         -
        /// `required_integer` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1630         -
        MissingRequiredInteger,
 1631         -
        /// `required_long` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1632         -
        MissingRequiredLong,
 1633         -
        /// `required_float` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1634         -
        MissingRequiredFloat,
 1635         -
        /// `required_double` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1636         -
        MissingRequiredDouble,
 1637         -
        /// `required_map` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
 1638         -
        MissingRequiredMap,
        1535  +
    impl ::std::convert::From<Builder> for crate::output::EndpointOperationOutput {
        1536  +
        fn from(builder: Builder) -> Self {
        1537  +
            builder.build()
 1639   1538   
        }
 1640         -
    impl ::std::fmt::Display for ConstraintViolation {
 1641         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1642         -
            match self {
 1643         -
                ConstraintViolation::MissingRequiredString => write!(f, "`required_string` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1644         -
                ConstraintViolation::MissingRequiredBoolean => write!(f, "`required_boolean` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1645         -
                ConstraintViolation::MissingRequiredList => write!(f, "`required_list` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1646         -
                ConstraintViolation::MissingRequiredTimestamp => write!(f, "`required_timestamp` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1647         -
                ConstraintViolation::MissingRequiredBlob => write!(f, "`required_blob` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1648         -
                ConstraintViolation::MissingRequiredByte => write!(f, "`required_byte` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1649         -
                ConstraintViolation::MissingRequiredShort => write!(f, "`required_short` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1650         -
                ConstraintViolation::MissingRequiredInteger => write!(f, "`required_integer` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1651         -
                ConstraintViolation::MissingRequiredLong => write!(f, "`required_long` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1652         -
                ConstraintViolation::MissingRequiredFloat => write!(f, "`required_float` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1653         -
                ConstraintViolation::MissingRequiredDouble => write!(f, "`required_double` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1654         -
                ConstraintViolation::MissingRequiredMap => write!(f, "`required_map` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 1655   1539   
    }
        1540  +
    /// A builder for [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1541  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1542  +
    pub struct Builder {}
        1543  +
    impl Builder {
        1544  +
        /// Consumes the builder and constructs a [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1545  +
        pub fn build(self) -> crate::output::EndpointOperationOutput {
        1546  +
            self.build_enforcing_required_and_enum_traits()
        1547  +
        }
        1548  +
        fn build_enforcing_required_and_enum_traits(
        1549  +
            self,
        1550  +
        ) -> crate::output::EndpointOperationOutput {
        1551  +
            crate::output::EndpointOperationOutput {}
 1656   1552   
        }
 1657   1553   
    }
 1658         -
    impl ::std::error::Error for ConstraintViolation {}
 1659         -
    impl ::std::convert::TryFrom<Builder> for crate::output::OperationWithRequiredMembersOutput {
 1660         -
        type Error = ConstraintViolation;
        1554  +
}
        1555  +
/// See [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
        1556  +
pub mod endpoint_with_host_label_operation_output {
 1661   1557   
 1662         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        1558  +
    impl ::std::convert::From<Builder> for crate::output::EndpointWithHostLabelOperationOutput {
        1559  +
        fn from(builder: Builder) -> Self {
 1663   1560   
            builder.build()
 1664   1561   
        }
 1665   1562   
    }
 1666         -
    /// A builder for [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
        1563  +
    /// A builder for [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
 1667   1564   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1668         -
    pub struct Builder {
 1669         -
        pub(crate) required_string: ::std::option::Option<::std::string::String>,
 1670         -
        pub(crate) required_boolean: ::std::option::Option<bool>,
 1671         -
        pub(crate) required_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1672         -
        pub(crate) required_timestamp:
 1673         -
            ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
 1674         -
        pub(crate) required_blob:
 1675         -
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1676         -
        pub(crate) required_byte: ::std::option::Option<i8>,
 1677         -
        pub(crate) required_short: ::std::option::Option<i16>,
 1678         -
        pub(crate) required_integer: ::std::option::Option<i32>,
 1679         -
        pub(crate) required_long: ::std::option::Option<i64>,
 1680         -
        pub(crate) required_float: ::std::option::Option<f32>,
 1681         -
        pub(crate) required_double: ::std::option::Option<f64>,
 1682         -
        pub(crate) required_map: ::std::option::Option<
 1683         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1684         -
        >,
 1685         -
    }
        1565  +
    pub struct Builder {}
 1686   1566   
    impl Builder {
 1687         -
        #[allow(missing_docs)] // documentation missing in model
 1688         -
        pub fn required_string(mut self, input: ::std::string::String) -> Self {
 1689         -
            self.required_string = Some(input);
 1690         -
            self
 1691         -
        }
 1692         -
        #[allow(missing_docs)] // documentation missing in model
 1693         -
        pub fn required_boolean(mut self, input: bool) -> Self {
 1694         -
            self.required_boolean = Some(input);
 1695         -
            self
        1567  +
        /// Consumes the builder and constructs a [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
        1568  +
        pub fn build(self) -> crate::output::EndpointWithHostLabelOperationOutput {
        1569  +
            self.build_enforcing_required_and_enum_traits()
 1696   1570   
        }
 1697         -
        #[allow(missing_docs)] // documentation missing in model
 1698         -
        pub fn required_list(mut self, input: ::std::vec::Vec<::std::string::String>) -> Self {
 1699         -
            self.required_list = Some(input);
 1700         -
            self
        1571  +
        fn build_enforcing_required_and_enum_traits(
        1572  +
            self,
        1573  +
        ) -> crate::output::EndpointWithHostLabelOperationOutput {
        1574  +
            crate::output::EndpointWithHostLabelOperationOutput {}
 1701   1575   
        }
 1702         -
        #[allow(missing_docs)] // documentation missing in model
 1703         -
        pub fn required_timestamp(
 1704         -
            mut self,
 1705         -
            input: ::aws_smithy_http_server_python::types::DateTime,
 1706         -
        ) -> Self {
 1707         -
            self.required_timestamp = Some(input);
 1708         -
            self
 1709   1576   
    }
 1710         -
        #[allow(missing_docs)] // documentation missing in model
 1711         -
        pub fn required_blob(
 1712         -
            mut self,
 1713         -
            input: ::aws_smithy_http_server_python::types::Blob,
 1714         -
        ) -> Self {
 1715         -
            self.required_blob = Some(input);
 1716         -
            self
        1577  +
}
        1578  +
/// See [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
        1579  +
pub mod host_with_path_operation_output {
        1580  +
        1581  +
    impl ::std::convert::From<Builder> for crate::output::HostWithPathOperationOutput {
        1582  +
        fn from(builder: Builder) -> Self {
        1583  +
            builder.build()
 1717   1584   
        }
 1718         -
        #[allow(missing_docs)] // documentation missing in model
 1719         -
        pub fn required_byte(mut self, input: i8) -> Self {
 1720         -
            self.required_byte = Some(input);
 1721         -
            self
 1722   1585   
    }
 1723         -
        #[allow(missing_docs)] // documentation missing in model
 1724         -
        pub fn required_short(mut self, input: i16) -> Self {
 1725         -
            self.required_short = Some(input);
 1726         -
            self
        1586  +
    /// A builder for [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
        1587  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1588  +
    pub struct Builder {}
        1589  +
    impl Builder {
        1590  +
        /// Consumes the builder and constructs a [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
        1591  +
        pub fn build(self) -> crate::output::HostWithPathOperationOutput {
        1592  +
            self.build_enforcing_required_and_enum_traits()
 1727   1593   
        }
 1728         -
        #[allow(missing_docs)] // documentation missing in model
 1729         -
        pub fn required_integer(mut self, input: i32) -> Self {
 1730         -
            self.required_integer = Some(input);
 1731         -
            self
        1594  +
        fn build_enforcing_required_and_enum_traits(
        1595  +
            self,
        1596  +
        ) -> crate::output::HostWithPathOperationOutput {
        1597  +
            crate::output::HostWithPathOperationOutput {}
 1732   1598   
        }
 1733         -
        #[allow(missing_docs)] // documentation missing in model
 1734         -
        pub fn required_long(mut self, input: i64) -> Self {
 1735         -
            self.required_long = Some(input);
 1736         -
            self
 1737   1599   
    }
 1738         -
        #[allow(missing_docs)] // documentation missing in model
 1739         -
        pub fn required_float(mut self, input: f32) -> Self {
 1740         -
            self.required_float = Some(input);
 1741         -
            self
        1600  +
}
        1601  +
/// See [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
        1602  +
pub mod put_with_content_encoding_output {
        1603  +
        1604  +
    impl ::std::convert::From<Builder> for crate::output::PutWithContentEncodingOutput {
        1605  +
        fn from(builder: Builder) -> Self {
        1606  +
            builder.build()
 1742   1607   
        }
 1743         -
        #[allow(missing_docs)] // documentation missing in model
 1744         -
        pub fn required_double(mut self, input: f64) -> Self {
 1745         -
            self.required_double = Some(input);
 1746         -
            self
 1747   1608   
    }
 1748         -
        #[allow(missing_docs)] // documentation missing in model
 1749         -
        pub fn required_map(
 1750         -
            mut self,
 1751         -
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1752         -
        ) -> Self {
 1753         -
            self.required_map = Some(input);
 1754         -
            self
        1609  +
    /// A builder for [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
        1610  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1611  +
    pub struct Builder {}
        1612  +
    impl Builder {
        1613  +
        /// Consumes the builder and constructs a [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
        1614  +
        pub fn build(self) -> crate::output::PutWithContentEncodingOutput {
        1615  +
            self.build_enforcing_required_and_enum_traits()
 1755   1616   
        }
 1756         -
        /// Consumes the builder and constructs a [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
 1757         -
        ///
 1758         -
        /// The builder fails to construct a [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput) if you do not provide a value for all non-`Option`al members.
 1759         -
        ///
 1760         -
        pub fn build(
        1617  +
        fn build_enforcing_required_and_enum_traits(
 1761   1618   
            self,
 1762         -
        ) -> Result<crate::output::OperationWithRequiredMembersOutput, ConstraintViolation>
 1763         -
        {
        1619  +
        ) -> crate::output::PutWithContentEncodingOutput {
        1620  +
            crate::output::PutWithContentEncodingOutput {}
        1621  +
        }
        1622  +
    }
        1623  +
}
        1624  +
/// See [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
        1625  +
pub mod content_type_parameters_output {
        1626  +
        1627  +
    impl ::std::convert::From<Builder> for crate::output::ContentTypeParametersOutput {
        1628  +
        fn from(builder: Builder) -> Self {
        1629  +
            builder.build()
        1630  +
        }
        1631  +
    }
        1632  +
    /// A builder for [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
        1633  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1634  +
    pub struct Builder {}
        1635  +
    impl Builder {
        1636  +
        /// Consumes the builder and constructs a [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
        1637  +
        pub fn build(self) -> crate::output::ContentTypeParametersOutput {
 1764   1638   
            self.build_enforcing_required_and_enum_traits()
 1765   1639   
        }
 1766   1640   
        fn build_enforcing_required_and_enum_traits(
 1767   1641   
            self,
 1768         -
        ) -> Result<crate::output::OperationWithRequiredMembersOutput, ConstraintViolation>
 1769         -
        {
 1770         -
            Ok(crate::output::OperationWithRequiredMembersOutput {
 1771         -
                required_string: self
 1772         -
                    .required_string
 1773         -
                    .ok_or(ConstraintViolation::MissingRequiredString)?,
 1774         -
                required_boolean: self
 1775         -
                    .required_boolean
 1776         -
                    .ok_or(ConstraintViolation::MissingRequiredBoolean)?,
 1777         -
                required_list: self
 1778         -
                    .required_list
 1779         -
                    .ok_or(ConstraintViolation::MissingRequiredList)?,
 1780         -
                required_timestamp: self
 1781         -
                    .required_timestamp
 1782         -
                    .ok_or(ConstraintViolation::MissingRequiredTimestamp)?,
 1783         -
                required_blob: self
 1784         -
                    .required_blob
 1785         -
                    .ok_or(ConstraintViolation::MissingRequiredBlob)?,
 1786         -
                required_byte: self
 1787         -
                    .required_byte
 1788         -
                    .ok_or(ConstraintViolation::MissingRequiredByte)?,
 1789         -
                required_short: self
 1790         -
                    .required_short
 1791         -
                    .ok_or(ConstraintViolation::MissingRequiredShort)?,
 1792         -
                required_integer: self
 1793         -
                    .required_integer
 1794         -
                    .ok_or(ConstraintViolation::MissingRequiredInteger)?,
 1795         -
                required_long: self
 1796         -
                    .required_long
 1797         -
                    .ok_or(ConstraintViolation::MissingRequiredLong)?,
 1798         -
                required_float: self
 1799         -
                    .required_float
 1800         -
                    .ok_or(ConstraintViolation::MissingRequiredFloat)?,
 1801         -
                required_double: self
 1802         -
                    .required_double
 1803         -
                    .ok_or(ConstraintViolation::MissingRequiredDouble)?,
 1804         -
                required_map: self
 1805         -
                    .required_map
 1806         -
                    .ok_or(ConstraintViolation::MissingRequiredMap)?,
 1807         -
            })
        1642  +
        ) -> crate::output::ContentTypeParametersOutput {
        1643  +
            crate::output::ContentTypeParametersOutput {}
 1808   1644   
        }
 1809   1645   
    }
 1810   1646   
}
 1811   1647   
/// See [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
 1812   1648   
pub mod operation_with_defaults_output {
 1813   1649   
 1814   1650   
    impl ::std::convert::From<Builder> for crate::output::OperationWithDefaultsOutput {
 1815   1651   
        fn from(builder: Builder) -> Self {
 1816   1652   
            builder.build()
 1817   1653   
        }
@@ -2036,1872 +2362,2362 @@
 2056   1892   
                default_float: self.default_float.unwrap_or(1.0f32),
 2057   1893   
                default_double: self.default_double.unwrap_or(1.0f64),
 2058   1894   
                default_map: self.default_map.unwrap_or_default(),
 2059   1895   
                default_enum: self.default_enum.unwrap_or(
 2060   1896   
                    "FOO"
 2061   1897   
                        .parse::<crate::model::TestEnum>()
 2062   1898   
                        .expect("static value validated to member"),
 2063   1899   
                ),
 2064   1900   
                default_int_enum: self.default_int_enum.unwrap_or(1i32),
 2065   1901   
                empty_string: self.empty_string.unwrap_or_else(|| String::from("")),
 2066         -
                false_boolean: self.false_boolean.unwrap_or(false),
 2067         -
                empty_blob: self
 2068         -
                    .empty_blob
 2069         -
                    .unwrap_or_else(|| ::aws_smithy_types::Blob::new("").into()),
 2070         -
                zero_byte: self.zero_byte.unwrap_or(0i8),
 2071         -
                zero_short: self.zero_short.unwrap_or(0i16),
 2072         -
                zero_integer: self.zero_integer.unwrap_or(0i32),
 2073         -
                zero_long: self.zero_long.unwrap_or(0i64),
 2074         -
                zero_float: self.zero_float.unwrap_or(0.0f32),
 2075         -
                zero_double: self.zero_double.unwrap_or(0.0f64),
 2076         -
            }
 2077         -
        }
 2078         -
    }
 2079         -
}
 2080         -
/// See [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
 2081         -
pub mod content_type_parameters_output {
 2082         -
 2083         -
    impl ::std::convert::From<Builder> for crate::output::ContentTypeParametersOutput {
 2084         -
        fn from(builder: Builder) -> Self {
 2085         -
            builder.build()
 2086         -
        }
 2087         -
    }
 2088         -
    /// A builder for [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
 2089         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2090         -
    pub struct Builder {}
 2091         -
    impl Builder {
 2092         -
        /// Consumes the builder and constructs a [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
 2093         -
        pub fn build(self) -> crate::output::ContentTypeParametersOutput {
 2094         -
            self.build_enforcing_required_and_enum_traits()
 2095         -
        }
 2096         -
        fn build_enforcing_required_and_enum_traits(
 2097         -
            self,
 2098         -
        ) -> crate::output::ContentTypeParametersOutput {
 2099         -
            crate::output::ContentTypeParametersOutput {}
 2100         -
        }
 2101         -
    }
 2102         -
}
 2103         -
/// See [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
 2104         -
pub mod put_with_content_encoding_output {
 2105         -
 2106         -
    impl ::std::convert::From<Builder> for crate::output::PutWithContentEncodingOutput {
 2107         -
        fn from(builder: Builder) -> Self {
 2108         -
            builder.build()
 2109         -
        }
 2110         -
    }
 2111         -
    /// A builder for [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
 2112         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2113         -
    pub struct Builder {}
 2114         -
    impl Builder {
 2115         -
        /// Consumes the builder and constructs a [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
 2116         -
        pub fn build(self) -> crate::output::PutWithContentEncodingOutput {
 2117         -
            self.build_enforcing_required_and_enum_traits()
        1902  +
                false_boolean: self.false_boolean.unwrap_or(false),
        1903  +
                empty_blob: self
        1904  +
                    .empty_blob
        1905  +
                    .unwrap_or_else(|| ::aws_smithy_types::Blob::new("").into()),
        1906  +
                zero_byte: self.zero_byte.unwrap_or(0i8),
        1907  +
                zero_short: self.zero_short.unwrap_or(0i16),
        1908  +
                zero_integer: self.zero_integer.unwrap_or(0i32),
        1909  +
                zero_long: self.zero_long.unwrap_or(0i64),
        1910  +
                zero_float: self.zero_float.unwrap_or(0.0f32),
        1911  +
                zero_double: self.zero_double.unwrap_or(0.0f64),
 2118   1912   
            }
 2119         -
        fn build_enforcing_required_and_enum_traits(
 2120         -
            self,
 2121         -
        ) -> crate::output::PutWithContentEncodingOutput {
 2122         -
            crate::output::PutWithContentEncodingOutput {}
 2123   1913   
        }
 2124   1914   
    }
 2125   1915   
}
 2126         -
/// See [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
 2127         -
pub mod host_with_path_operation_output {
        1916  +
/// See [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
        1917  +
pub mod operation_with_required_members_output {
 2128   1918   
 2129         -
    impl ::std::convert::From<Builder> for crate::output::HostWithPathOperationOutput {
 2130         -
        fn from(builder: Builder) -> Self {
 2131         -
            builder.build()
 2132         -
        }
        1919  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        1920  +
    /// Holds one variant for each of the ways the builder can fail.
        1921  +
    #[allow(clippy::enum_variant_names)]
        1922  +
    pub enum ConstraintViolation {
        1923  +
        /// `required_string` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1924  +
        MissingRequiredString,
        1925  +
        /// `required_boolean` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1926  +
        MissingRequiredBoolean,
        1927  +
        /// `required_list` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1928  +
        MissingRequiredList,
        1929  +
        /// `required_timestamp` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1930  +
        MissingRequiredTimestamp,
        1931  +
        /// `required_blob` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1932  +
        MissingRequiredBlob,
        1933  +
        /// `required_byte` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1934  +
        MissingRequiredByte,
        1935  +
        /// `required_short` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1936  +
        MissingRequiredShort,
        1937  +
        /// `required_integer` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1938  +
        MissingRequiredInteger,
        1939  +
        /// `required_long` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1940  +
        MissingRequiredLong,
        1941  +
        /// `required_float` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1942  +
        MissingRequiredFloat,
        1943  +
        /// `required_double` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1944  +
        MissingRequiredDouble,
        1945  +
        /// `required_map` was not provided but it is required when building `OperationWithRequiredMembersOutput`.
        1946  +
        MissingRequiredMap,
 2133   1947   
    }
 2134         -
    /// A builder for [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
 2135         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2136         -
    pub struct Builder {}
 2137         -
    impl Builder {
 2138         -
        /// Consumes the builder and constructs a [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
 2139         -
        pub fn build(self) -> crate::output::HostWithPathOperationOutput {
 2140         -
            self.build_enforcing_required_and_enum_traits()
        1948  +
    impl ::std::fmt::Display for ConstraintViolation {
        1949  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        1950  +
            match self {
        1951  +
                ConstraintViolation::MissingRequiredString => write!(f, "`required_string` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1952  +
                ConstraintViolation::MissingRequiredBoolean => write!(f, "`required_boolean` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1953  +
                ConstraintViolation::MissingRequiredList => write!(f, "`required_list` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1954  +
                ConstraintViolation::MissingRequiredTimestamp => write!(f, "`required_timestamp` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1955  +
                ConstraintViolation::MissingRequiredBlob => write!(f, "`required_blob` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1956  +
                ConstraintViolation::MissingRequiredByte => write!(f, "`required_byte` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1957  +
                ConstraintViolation::MissingRequiredShort => write!(f, "`required_short` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1958  +
                ConstraintViolation::MissingRequiredInteger => write!(f, "`required_integer` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1959  +
                ConstraintViolation::MissingRequiredLong => write!(f, "`required_long` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1960  +
                ConstraintViolation::MissingRequiredFloat => write!(f, "`required_float` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1961  +
                ConstraintViolation::MissingRequiredDouble => write!(f, "`required_double` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
        1962  +
                ConstraintViolation::MissingRequiredMap => write!(f, "`required_map` was not provided but it is required when building `OperationWithRequiredMembersOutput`"),
 2141   1963   
            }
 2142         -
        fn build_enforcing_required_and_enum_traits(
 2143         -
            self,
 2144         -
        ) -> crate::output::HostWithPathOperationOutput {
 2145         -
            crate::output::HostWithPathOperationOutput {}
 2146   1964   
        }
 2147   1965   
    }
 2148         -
}
 2149         -
/// See [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
 2150         -
pub mod endpoint_with_host_label_operation_output {
        1966  +
    impl ::std::error::Error for ConstraintViolation {}
        1967  +
    impl ::std::convert::TryFrom<Builder> for crate::output::OperationWithRequiredMembersOutput {
        1968  +
        type Error = ConstraintViolation;
 2151   1969   
 2152         -
    impl ::std::convert::From<Builder> for crate::output::EndpointWithHostLabelOperationOutput {
 2153         -
        fn from(builder: Builder) -> Self {
        1970  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 2154   1971   
            builder.build()
 2155   1972   
        }
 2156   1973   
    }
 2157         -
    /// A builder for [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
        1974  +
    /// A builder for [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
 2158   1975   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2159         -
    pub struct Builder {}
        1976  +
    pub struct Builder {
        1977  +
        pub(crate) required_string: ::std::option::Option<::std::string::String>,
        1978  +
        pub(crate) required_boolean: ::std::option::Option<bool>,
        1979  +
        pub(crate) required_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        1980  +
        pub(crate) required_timestamp:
        1981  +
            ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
        1982  +
        pub(crate) required_blob:
        1983  +
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        1984  +
        pub(crate) required_byte: ::std::option::Option<i8>,
        1985  +
        pub(crate) required_short: ::std::option::Option<i16>,
        1986  +
        pub(crate) required_integer: ::std::option::Option<i32>,
        1987  +
        pub(crate) required_long: ::std::option::Option<i64>,
        1988  +
        pub(crate) required_float: ::std::option::Option<f32>,
        1989  +
        pub(crate) required_double: ::std::option::Option<f64>,
        1990  +
        pub(crate) required_map: ::std::option::Option<
        1991  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1992  +
        >,
        1993  +
    }
 2160   1994   
    impl Builder {
 2161         -
        /// Consumes the builder and constructs a [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
 2162         -
        pub fn build(self) -> crate::output::EndpointWithHostLabelOperationOutput {
 2163         -
            self.build_enforcing_required_and_enum_traits()
        1995  +
        #[allow(missing_docs)] // documentation missing in model
        1996  +
        pub fn required_string(mut self, input: ::std::string::String) -> Self {
        1997  +
            self.required_string = Some(input);
        1998  +
            self
 2164   1999   
        }
 2165         -
        fn build_enforcing_required_and_enum_traits(
 2166         -
            self,
 2167         -
        ) -> crate::output::EndpointWithHostLabelOperationOutput {
 2168         -
            crate::output::EndpointWithHostLabelOperationOutput {}
        2000  +
        #[allow(missing_docs)] // documentation missing in model
        2001  +
        pub fn required_boolean(mut self, input: bool) -> Self {
        2002  +
            self.required_boolean = Some(input);
        2003  +
            self
 2169   2004   
        }
        2005  +
        #[allow(missing_docs)] // documentation missing in model
        2006  +
        pub fn required_list(mut self, input: ::std::vec::Vec<::std::string::String>) -> Self {
        2007  +
            self.required_list = Some(input);
        2008  +
            self
 2170   2009   
        }
 2171         -
}
 2172         -
/// See [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
 2173         -
pub mod endpoint_operation_output {
 2174         -
 2175         -
    impl ::std::convert::From<Builder> for crate::output::EndpointOperationOutput {
 2176         -
        fn from(builder: Builder) -> Self {
 2177         -
            builder.build()
        2010  +
        #[allow(missing_docs)] // documentation missing in model
        2011  +
        pub fn required_timestamp(
        2012  +
            mut self,
        2013  +
            input: ::aws_smithy_http_server_python::types::DateTime,
        2014  +
        ) -> Self {
        2015  +
            self.required_timestamp = Some(input);
        2016  +
            self
 2178   2017   
        }
        2018  +
        #[allow(missing_docs)] // documentation missing in model
        2019  +
        pub fn required_blob(
        2020  +
            mut self,
        2021  +
            input: ::aws_smithy_http_server_python::types::Blob,
        2022  +
        ) -> Self {
        2023  +
            self.required_blob = Some(input);
        2024  +
            self
 2179   2025   
        }
 2180         -
    /// A builder for [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
 2181         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2182         -
    pub struct Builder {}
 2183         -
    impl Builder {
 2184         -
        /// Consumes the builder and constructs a [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
 2185         -
        pub fn build(self) -> crate::output::EndpointOperationOutput {
 2186         -
            self.build_enforcing_required_and_enum_traits()
        2026  +
        #[allow(missing_docs)] // documentation missing in model
        2027  +
        pub fn required_byte(mut self, input: i8) -> Self {
        2028  +
            self.required_byte = Some(input);
        2029  +
            self
 2187   2030   
        }
 2188         -
        fn build_enforcing_required_and_enum_traits(
 2189         -
            self,
 2190         -
        ) -> crate::output::EndpointOperationOutput {
 2191         -
            crate::output::EndpointOperationOutput {}
        2031  +
        #[allow(missing_docs)] // documentation missing in model
        2032  +
        pub fn required_short(mut self, input: i16) -> Self {
        2033  +
            self.required_short = Some(input);
        2034  +
            self
 2192   2035   
        }
        2036  +
        #[allow(missing_docs)] // documentation missing in model
        2037  +
        pub fn required_integer(mut self, input: i32) -> Self {
        2038  +
            self.required_integer = Some(input);
        2039  +
            self
 2193   2040   
        }
 2194         -
}
 2195         -
/// See [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
 2196         -
pub mod json_unions_output {
 2197         -
 2198         -
    impl ::std::convert::From<Builder> for crate::output::JsonUnionsOutput {
 2199         -
        fn from(builder: Builder) -> Self {
 2200         -
            builder.build()
        2041  +
        #[allow(missing_docs)] // documentation missing in model
        2042  +
        pub fn required_long(mut self, input: i64) -> Self {
        2043  +
            self.required_long = Some(input);
        2044  +
            self
 2201   2045   
        }
        2046  +
        #[allow(missing_docs)] // documentation missing in model
        2047  +
        pub fn required_float(mut self, input: f32) -> Self {
        2048  +
            self.required_float = Some(input);
        2049  +
            self
 2202   2050   
        }
 2203         -
    /// A builder for [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
 2204         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2205         -
    pub struct Builder {
 2206         -
        pub(crate) contents: ::std::option::Option<crate::model::MyUnion>,
        2051  +
        #[allow(missing_docs)] // documentation missing in model
        2052  +
        pub fn required_double(mut self, input: f64) -> Self {
        2053  +
            self.required_double = Some(input);
        2054  +
            self
 2207   2055   
        }
 2208         -
    impl Builder {
 2209         -
        /// A union with a representative set of types for members.
 2210         -
        pub fn contents(mut self, input: ::std::option::Option<crate::model::MyUnion>) -> Self {
 2211         -
            self.contents = input;
        2056  +
        #[allow(missing_docs)] // documentation missing in model
        2057  +
        pub fn required_map(
        2058  +
            mut self,
        2059  +
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        2060  +
        ) -> Self {
        2061  +
            self.required_map = Some(input);
 2212   2062   
            self
 2213   2063   
        }
 2214         -
        /// Consumes the builder and constructs a [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
 2215         -
        pub fn build(self) -> crate::output::JsonUnionsOutput {
        2064  +
        /// Consumes the builder and constructs a [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
        2065  +
        ///
        2066  +
        /// The builder fails to construct a [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput) if you do not provide a value for all non-`Option`al members.
        2067  +
        ///
        2068  +
        pub fn build(
        2069  +
            self,
        2070  +
        ) -> Result<crate::output::OperationWithRequiredMembersOutput, ConstraintViolation>
        2071  +
        {
 2216   2072   
            self.build_enforcing_required_and_enum_traits()
 2217   2073   
        }
 2218         -
        fn build_enforcing_required_and_enum_traits(self) -> crate::output::JsonUnionsOutput {
 2219         -
            crate::output::JsonUnionsOutput {
 2220         -
                contents: self.contents,
        2074  +
        fn build_enforcing_required_and_enum_traits(
        2075  +
            self,
        2076  +
        ) -> Result<crate::output::OperationWithRequiredMembersOutput, ConstraintViolation>
        2077  +
        {
        2078  +
            Ok(crate::output::OperationWithRequiredMembersOutput {
        2079  +
                required_string: self
        2080  +
                    .required_string
        2081  +
                    .ok_or(ConstraintViolation::MissingRequiredString)?,
        2082  +
                required_boolean: self
        2083  +
                    .required_boolean
        2084  +
                    .ok_or(ConstraintViolation::MissingRequiredBoolean)?,
        2085  +
                required_list: self
        2086  +
                    .required_list
        2087  +
                    .ok_or(ConstraintViolation::MissingRequiredList)?,
        2088  +
                required_timestamp: self
        2089  +
                    .required_timestamp
        2090  +
                    .ok_or(ConstraintViolation::MissingRequiredTimestamp)?,
        2091  +
                required_blob: self
        2092  +
                    .required_blob
        2093  +
                    .ok_or(ConstraintViolation::MissingRequiredBlob)?,
        2094  +
                required_byte: self
        2095  +
                    .required_byte
        2096  +
                    .ok_or(ConstraintViolation::MissingRequiredByte)?,
        2097  +
                required_short: self
        2098  +
                    .required_short
        2099  +
                    .ok_or(ConstraintViolation::MissingRequiredShort)?,
        2100  +
                required_integer: self
        2101  +
                    .required_integer
        2102  +
                    .ok_or(ConstraintViolation::MissingRequiredInteger)?,
        2103  +
                required_long: self
        2104  +
                    .required_long
        2105  +
                    .ok_or(ConstraintViolation::MissingRequiredLong)?,
        2106  +
                required_float: self
        2107  +
                    .required_float
        2108  +
                    .ok_or(ConstraintViolation::MissingRequiredFloat)?,
        2109  +
                required_double: self
        2110  +
                    .required_double
        2111  +
                    .ok_or(ConstraintViolation::MissingRequiredDouble)?,
        2112  +
                required_map: self
        2113  +
                    .required_map
        2114  +
                    .ok_or(ConstraintViolation::MissingRequiredMap)?,
        2115  +
            })
        2116  +
        }
        2117  +
    }
        2118  +
}
        2119  +
/// See [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
        2120  +
pub mod operation_with_nested_structure_output {
        2121  +
        2122  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        2123  +
    /// Holds one variant for each of the ways the builder can fail.
        2124  +
    #[allow(clippy::enum_variant_names)]
        2125  +
    pub enum ConstraintViolation {
        2126  +
        /// `dialog` was not provided but it is required when building `OperationWithNestedStructureOutput`.
        2127  +
        MissingDialog,
        2128  +
    }
        2129  +
    impl ::std::fmt::Display for ConstraintViolation {
        2130  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        2131  +
            match self {
        2132  +
                ConstraintViolation::MissingDialog => write!(f, "`dialog` was not provided but it is required when building `OperationWithNestedStructureOutput`"),
 2221   2133   
            }
 2222   2134   
        }
 2223   2135   
    }
 2224         -
}
 2225         -
/// See [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
 2226         -
pub mod greeting_with_errors_output {
        2136  +
    impl ::std::error::Error for ConstraintViolation {}
        2137  +
    impl ::std::convert::TryFrom<Builder> for crate::output::OperationWithNestedStructureOutput {
        2138  +
        type Error = ConstraintViolation;
 2227   2139   
 2228         -
    impl ::std::convert::From<Builder> for crate::output::GreetingWithErrorsOutput {
 2229         -
        fn from(builder: Builder) -> Self {
        2140  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 2230   2141   
            builder.build()
 2231   2142   
        }
 2232   2143   
    }
 2233         -
    /// A builder for [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        2144  +
    /// A builder for [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
 2234   2145   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2235   2146   
    pub struct Builder {
 2236         -
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        2147  +
        pub(crate) dialog: ::std::option::Option<crate::model::Dialog>,
        2148  +
        pub(crate) dialog_list: ::std::option::Option<::std::vec::Vec<crate::model::Dialog>>,
        2149  +
        pub(crate) dialog_map: ::std::option::Option<
        2150  +
            ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
        2151  +
        >,
 2237   2152   
    }
 2238   2153   
    impl Builder {
 2239   2154   
        #[allow(missing_docs)] // documentation missing in model
 2240         -
        pub fn greeting(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 2241         -
            self.greeting = input;
        2155  +
        pub fn dialog(mut self, input: crate::model::Dialog) -> Self {
        2156  +
            self.dialog = Some(input);
 2242   2157   
            self
 2243   2158   
        }
 2244         -
        /// Consumes the builder and constructs a [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
 2245         -
        pub fn build(self) -> crate::output::GreetingWithErrorsOutput {
        2159  +
        #[allow(missing_docs)] // documentation missing in model
        2160  +
        pub fn dialog_list(mut self, input: ::std::vec::Vec<crate::model::Dialog>) -> Self {
        2161  +
            self.dialog_list = Some(input);
        2162  +
            self
        2163  +
        }
        2164  +
        #[allow(missing_docs)] // documentation missing in model
        2165  +
        pub fn dialog_map(
        2166  +
            mut self,
        2167  +
            input: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
        2168  +
        ) -> Self {
        2169  +
            self.dialog_map = Some(input);
        2170  +
            self
        2171  +
        }
        2172  +
        /// Consumes the builder and constructs a [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
        2173  +
        ///
        2174  +
        /// The builder fails to construct a [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput) if you do not provide a value for all non-`Option`al members.
        2175  +
        ///
        2176  +
        pub fn build(
        2177  +
            self,
        2178  +
        ) -> Result<crate::output::OperationWithNestedStructureOutput, ConstraintViolation>
        2179  +
        {
 2246   2180   
            self.build_enforcing_required_and_enum_traits()
 2247   2181   
        }
 2248   2182   
        fn build_enforcing_required_and_enum_traits(
 2249   2183   
            self,
 2250         -
        ) -> crate::output::GreetingWithErrorsOutput {
 2251         -
            crate::output::GreetingWithErrorsOutput {
 2252         -
                greeting: self.greeting,
 2253         -
            }
        2184  +
        ) -> Result<crate::output::OperationWithNestedStructureOutput, ConstraintViolation>
        2185  +
        {
        2186  +
            Ok(crate::output::OperationWithNestedStructureOutput {
        2187  +
                dialog: self.dialog.ok_or(ConstraintViolation::MissingDialog)?,
        2188  +
                dialog_list: self.dialog_list.unwrap_or_default(),
        2189  +
                dialog_map: self.dialog_map.unwrap_or_default(),
        2190  +
            })
 2254   2191   
        }
 2255   2192   
    }
 2256   2193   
}
 2257         -
/// See [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
 2258         -
pub mod simple_scalar_properties_output {
        2194  +
/// See [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
        2195  +
pub mod operation_with_required_members_with_defaults_output {
 2259   2196   
 2260         -
    impl ::std::convert::From<Builder> for crate::output::SimpleScalarPropertiesOutput {
        2197  +
    impl ::std::convert::From<Builder>
        2198  +
        for crate::output::OperationWithRequiredMembersWithDefaultsOutput
        2199  +
    {
 2261   2200   
        fn from(builder: Builder) -> Self {
 2262   2201   
            builder.build()
 2263   2202   
        }
 2264   2203   
    }
 2265         -
    /// A builder for [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        2204  +
    /// A builder for [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
 2266   2205   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2267   2206   
    pub struct Builder {
 2268         -
        pub(crate) float_value: ::std::option::Option<f32>,
 2269         -
        pub(crate) double_value: ::std::option::Option<f64>,
        2207  +
        pub(crate) required_string: ::std::option::Option<::std::string::String>,
        2208  +
        pub(crate) required_boolean: ::std::option::Option<bool>,
        2209  +
        pub(crate) required_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        2210  +
        pub(crate) required_timestamp:
        2211  +
            ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
        2212  +
        pub(crate) required_blob:
        2213  +
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        2214  +
        pub(crate) required_byte: ::std::option::Option<i8>,
        2215  +
        pub(crate) required_short: ::std::option::Option<i16>,
        2216  +
        pub(crate) required_integer: ::std::option::Option<i32>,
        2217  +
        pub(crate) required_long: ::std::option::Option<i64>,
        2218  +
        pub(crate) required_float: ::std::option::Option<f32>,
        2219  +
        pub(crate) required_double: ::std::option::Option<f64>,
        2220  +
        pub(crate) required_map: ::std::option::Option<
        2221  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        2222  +
        >,
        2223  +
        pub(crate) required_enum: ::std::option::Option<crate::model::RequiredEnum>,
        2224  +
        pub(crate) required_int_enum: ::std::option::Option<i32>,
 2270   2225   
    }
 2271   2226   
    impl Builder {
 2272   2227   
        #[allow(missing_docs)] // documentation missing in model
 2273         -
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
 2274         -
            self.float_value = input;
        2228  +
        pub fn required_string(mut self, input: ::std::string::String) -> Self {
        2229  +
            self.required_string = Some(input);
 2275   2230   
            self
 2276   2231   
        }
 2277   2232   
        #[allow(missing_docs)] // documentation missing in model
 2278         -
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
 2279         -
            self.double_value = input;
        2233  +
        pub fn required_boolean(mut self, input: bool) -> Self {
        2234  +
            self.required_boolean = Some(input);
 2280   2235   
            self
 2281   2236   
        }
 2282         -
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
 2283         -
        pub fn build(self) -> crate::output::SimpleScalarPropertiesOutput {
 2284         -
            self.build_enforcing_required_and_enum_traits()
        2237  +
        #[allow(missing_docs)] // documentation missing in model
        2238  +
        pub fn required_list(mut self, input: ::std::vec::Vec<::std::string::String>) -> Self {
        2239  +
            self.required_list = Some(input);
        2240  +
            self
 2285   2241   
        }
 2286         -
        fn build_enforcing_required_and_enum_traits(
 2287         -
            self,
 2288         -
        ) -> crate::output::SimpleScalarPropertiesOutput {
 2289         -
            crate::output::SimpleScalarPropertiesOutput {
 2290         -
                float_value: self.float_value,
 2291         -
                double_value: self.double_value,
        2242  +
        #[allow(missing_docs)] // documentation missing in model
        2243  +
        pub fn required_timestamp(
        2244  +
            mut self,
        2245  +
            input: ::aws_smithy_http_server_python::types::DateTime,
        2246  +
        ) -> Self {
        2247  +
            self.required_timestamp = Some(input);
        2248  +
            self
 2292   2249   
        }
        2250  +
        #[allow(missing_docs)] // documentation missing in model
        2251  +
        pub fn required_blob(
        2252  +
            mut self,
        2253  +
            input: ::aws_smithy_http_server_python::types::Blob,
        2254  +
        ) -> Self {
        2255  +
            self.required_blob = Some(input);
        2256  +
            self
 2293   2257   
        }
        2258  +
        #[allow(missing_docs)] // documentation missing in model
        2259  +
        pub fn required_byte(mut self, input: i8) -> Self {
        2260  +
            self.required_byte = Some(input);
        2261  +
            self
 2294   2262   
        }
 2295         -
}
 2296         -
/// See [`EmptyInputAndEmptyOutputOutput`](crate::output::EmptyInputAndEmptyOutputOutput).
 2297         -
pub mod empty_input_and_empty_output_output {
 2298         -
 2299         -
    impl ::std::convert::From<Builder> for crate::output::EmptyInputAndEmptyOutputOutput {
 2300         -
        fn from(builder: Builder) -> Self {
 2301         -
            builder.build()
        2263  +
        #[allow(missing_docs)] // documentation missing in model
        2264  +
        pub fn required_short(mut self, input: i16) -> Self {
        2265  +
            self.required_short = Some(input);
        2266  +
            self
 2302   2267   
        }
        2268  +
        #[allow(missing_docs)] // documentation missing in model
        2269  +
        pub fn required_integer(mut self, input: i32) -> Self {
        2270  +
            self.required_integer = Some(input);
        2271  +
            self
 2303   2272   
        }
 2304         -
    /// A builder for [`EmptyInputAndEmptyOutputOutput`](crate::output::EmptyInputAndEmptyOutputOutput).
 2305         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2306         -
    pub struct Builder {}
 2307         -
    impl Builder {
 2308         -
        /// Consumes the builder and constructs a [`EmptyInputAndEmptyOutputOutput`](crate::output::EmptyInputAndEmptyOutputOutput).
 2309         -
        pub fn build(self) -> crate::output::EmptyInputAndEmptyOutputOutput {
 2310         -
            self.build_enforcing_required_and_enum_traits()
        2273  +
        #[allow(missing_docs)] // documentation missing in model
        2274  +
        pub fn required_long(mut self, input: i64) -> Self {
        2275  +
            self.required_long = Some(input);
        2276  +
            self
 2311   2277   
        }
 2312         -
        fn build_enforcing_required_and_enum_traits(
 2313         -
            self,
 2314         -
        ) -> crate::output::EmptyInputAndEmptyOutputOutput {
 2315         -
            crate::output::EmptyInputAndEmptyOutputOutput {}
        2278  +
        #[allow(missing_docs)] // documentation missing in model
        2279  +
        pub fn required_float(mut self, input: f32) -> Self {
        2280  +
            self.required_float = Some(input);
        2281  +
            self
 2316   2282   
        }
        2283  +
        #[allow(missing_docs)] // documentation missing in model
        2284  +
        pub fn required_double(mut self, input: f64) -> Self {
        2285  +
            self.required_double = Some(input);
        2286  +
            self
 2317   2287   
        }
 2318         -
}
 2319         -
/// See [`NoInputAndOutputOutput`](crate::output::NoInputAndOutputOutput).
 2320         -
pub mod no_input_and_output_output {
 2321         -
 2322         -
    impl ::std::convert::From<Builder> for crate::output::NoInputAndOutputOutput {
 2323         -
        fn from(builder: Builder) -> Self {
 2324         -
            builder.build()
        2288  +
        #[allow(missing_docs)] // documentation missing in model
        2289  +
        pub fn required_map(
        2290  +
            mut self,
        2291  +
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        2292  +
        ) -> Self {
        2293  +
            self.required_map = Some(input);
        2294  +
            self
 2325   2295   
        }
        2296  +
        #[allow(missing_docs)] // documentation missing in model
        2297  +
        pub fn required_enum(mut self, input: crate::model::RequiredEnum) -> Self {
        2298  +
            self.required_enum = Some(input);
        2299  +
            self
 2326   2300   
        }
 2327         -
    /// A builder for [`NoInputAndOutputOutput`](crate::output::NoInputAndOutputOutput).
 2328         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2329         -
    pub struct Builder {}
 2330         -
    impl Builder {
 2331         -
        /// Consumes the builder and constructs a [`NoInputAndOutputOutput`](crate::output::NoInputAndOutputOutput).
 2332         -
        pub fn build(self) -> crate::output::NoInputAndOutputOutput {
        2301  +
        #[allow(missing_docs)] // documentation missing in model
        2302  +
        pub fn required_int_enum(mut self, input: i32) -> Self {
        2303  +
            self.required_int_enum = Some(input);
        2304  +
            self
        2305  +
        }
        2306  +
        /// Consumes the builder and constructs a [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
        2307  +
        pub fn build(self) -> crate::output::OperationWithRequiredMembersWithDefaultsOutput {
 2333   2308   
            self.build_enforcing_required_and_enum_traits()
 2334   2309   
        }
 2335         -
        fn build_enforcing_required_and_enum_traits(self) -> crate::output::NoInputAndOutputOutput {
 2336         -
            crate::output::NoInputAndOutputOutput {}
        2310  +
        fn build_enforcing_required_and_enum_traits(
        2311  +
            self,
        2312  +
        ) -> crate::output::OperationWithRequiredMembersWithDefaultsOutput {
        2313  +
            crate::output::OperationWithRequiredMembersWithDefaultsOutput {
        2314  +
                required_string: self.required_string.unwrap_or_else(|| String::from("hi")),
        2315  +
                required_boolean: self.required_boolean.unwrap_or(true),
        2316  +
                required_list: self.required_list.unwrap_or_default(),
        2317  +
                required_timestamp: self.required_timestamp.unwrap_or_else(|| {
        2318  +
                    ::aws_smithy_types::DateTime::from_fractional_secs(1, 0_f64).into()
        2319  +
                }),
        2320  +
                required_blob: self
        2321  +
                    .required_blob
        2322  +
                    .unwrap_or_else(|| ::aws_smithy_types::Blob::new("YmxvYg==").into()),
        2323  +
                required_byte: self.required_byte.unwrap_or(1i8),
        2324  +
                required_short: self.required_short.unwrap_or(1i16),
        2325  +
                required_integer: self.required_integer.unwrap_or(10i32),
        2326  +
                required_long: self.required_long.unwrap_or(100i64),
        2327  +
                required_float: self.required_float.unwrap_or(1.0f32),
        2328  +
                required_double: self.required_double.unwrap_or(1.0f64),
        2329  +
                required_map: self.required_map.unwrap_or_default(),
        2330  +
                required_enum: self.required_enum.unwrap_or(
        2331  +
                    "FOO"
        2332  +
                        .parse::<crate::model::RequiredEnum>()
        2333  +
                        .expect("static value validated to member"),
        2334  +
                ),
        2335  +
                required_int_enum: self.required_int_enum.unwrap_or(1i32),
        2336  +
            }
 2337   2337   
        }
 2338   2338   
    }
 2339   2339   
}
 2340         -
/// See [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
 2341         -
pub mod no_input_and_no_output_output {
        2340  +
/// See [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
        2341  +
pub mod query_incompatible_operation_output {
 2342   2342   
 2343         -
    impl ::std::convert::From<Builder> for crate::output::NoInputAndNoOutputOutput {
        2343  +
    impl ::std::convert::From<Builder> for crate::output::QueryIncompatibleOperationOutput {
 2344   2344   
        fn from(builder: Builder) -> Self {
 2345   2345   
            builder.build()
 2346   2346   
        }
 2347   2347   
    }
 2348         -
    /// A builder for [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
        2348  +
    /// A builder for [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
 2349   2349   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2350   2350   
    pub struct Builder {}
 2351   2351   
    impl Builder {
 2352         -
        /// Consumes the builder and constructs a [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
 2353         -
        pub fn build(self) -> crate::output::NoInputAndNoOutputOutput {
        2352  +
        /// Consumes the builder and constructs a [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
        2353  +
        pub fn build(self) -> crate::output::QueryIncompatibleOperationOutput {
 2354   2354   
            self.build_enforcing_required_and_enum_traits()
 2355   2355   
        }
 2356   2356   
        fn build_enforcing_required_and_enum_traits(
 2357   2357   
            self,
 2358         -
        ) -> crate::output::NoInputAndNoOutputOutput {
 2359         -
            crate::output::NoInputAndNoOutputOutput {}
        2358  +
        ) -> crate::output::QueryIncompatibleOperationOutput {
        2359  +
            crate::output::QueryIncompatibleOperationOutput {}
 2360   2360   
        }
 2361   2361   
    }
 2362   2362   
}