Server Test

Server Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

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

@@ -1,1 +31,32 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
    2      3   
static CONTENT_TYPE_CONTENTTYPEPARAMETERS: std::sync::LazyLock<::mime::Mime> =
    3      4   
    std::sync::LazyLock::new(|| {
    4      5   
        "application/x-amz-json-1.1"
    5      6   
            .parse::<::mime::Mime>()
    6      7   
            .expect("BUG: MIME parsing failed, content_type is not valid")
    7      8   
    });
    8      9   
::pin_project_lite::pin_project! {
    9     10   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
   10     11   
    /// [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput) using modelled bindings.
   11     12   
    pub struct ContentTypeParametersInputFuture {
@@ -41,42 +168,176 @@
   61     62   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
   62     63   
                ::tracing::debug!(error = %e, "failed to deserialize request");
   63     64   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
   64     65   
            },
   65     66   
        );
   66     67   
        ContentTypeParametersInputFuture {
   67     68   
            inner: Box::pin(fut),
   68     69   
        }
   69     70   
    }
   70     71   
}
          72  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
   71     73   
impl
   72     74   
    ::aws_smithy_http_server::response::IntoResponse<
   73     75   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
   74     76   
    > for crate::output::ContentTypeParametersOutput
   75     77   
{
   76     78   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
   77     79   
        match crate::protocol_serde::shape_content_type_parameters::ser_content_type_parameters_http_response(self) {
   78     80   
                        Ok(response) => response,
   79     81   
                        Err(e) => {
   80     82   
                            ::tracing::error!(error = %e, "failed to serialize response");
   81     83   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
   82     84   
                        }
   83     85   
                    }
   84     86   
    }
   85     87   
}
   86     88   
          89  +
/* RustType.kt:516 */
   87     90   
#[allow(unreachable_code, unused_variables)]
          91  +
/* RustType.kt:516 */
   88     92   
#[cfg(test)]
          93  +
/* ProtocolTestGenerator.kt:98 */
   89     94   
mod content_type_parameters_test {
   90     95   
   91     96   
    /// A server should ignore parameters added to the content type
   92     97   
    /// Test ID: AwsJson11MustSupportParametersInContentType
   93     98   
    #[::tokio::test]
   94     99   
    #[::tracing_test::traced_test]
   95    100   
    async fn aws_json11_must_support_parameters_in_content_type_request() {
   96    101   
        #[allow(unused_mut)]
   97    102   
        let mut http_request = http::Request::builder()
   98    103   
            .uri("/")
   99    104   
            .method("POST")
  100    105   
            .header("Content-Type", "application/x-amz-json-1.1; charset=utf-8")
  101    106   
            .header("X-Amz-Target", "JsonProtocol.ContentTypeParameters")
  102    107   
            .body(::aws_smithy_http_server::body::Body::from(
  103    108   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
  104    109   
                    "{\"value\":5}".as_bytes(),
  105    110   
                    ::aws_smithy_protocol_test::MediaType::from("application/json"),
  106    111   
                )),
  107    112   
            ))
  108    113   
            .unwrap();
  109    114   
        #[allow(unused_mut)]
  110    115   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
  111    116   
        let config = crate::service::JsonProtocolConfig::builder().build();
  112    117   
        let service = crate::service::JsonProtocol::builder::<::hyper::body::Body, _, _, _>(config)
  113    118   
            .content_type_parameters(move |input: crate::input::ContentTypeParametersInput| {
  114    119   
                let sender = sender.clone();
  115    120   
                async move {
  116    121   
                    let result = {
  117    122   
                        let expected = crate::input::ContentTypeParametersInput {
  118    123   
                            value: ::std::option::Option::Some(5),
  119    124   
                        };
  120    125   
                        ::pretty_assertions::assert_eq!(input, expected);
  121    126   
                        let output = crate::output::ContentTypeParametersOutput {};
  122    127   
                        output
  123    128   
                    };
  124    129   
                    sender.send(()).await.expect("receiver dropped early");
  125    130   
                    result
  126    131   
                }
  127    132   
            })
  128    133   
            .build_unchecked();
  129    134   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
  130    135   
            .await
  131    136   
            .expect("unable to make an HTTP request");
  132    137   
        assert!(
  133    138   
            receiver.recv().await.is_some(),
  134    139   
            "we expected operation handler to be invoked but it was not entered"
  135    140   
        );
  136    141   
    }
         142  +
         143  +
    /* ProtocolTestGenerator.kt:98 */
  137    144   
}
  138    145   
         146  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  139    147   
static CONTENT_TYPE_PUTWITHCONTENTENCODING: std::sync::LazyLock<::mime::Mime> =
  140    148   
    std::sync::LazyLock::new(|| {
  141    149   
        "application/x-amz-json-1.1"
  142    150   
            .parse::<::mime::Mime>()
  143    151   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  144    152   
    });
  145    153   
::pin_project_lite::pin_project! {
  146    154   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  147    155   
    /// [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput) using modelled bindings.
  148    156   
    pub struct PutWithContentEncodingInputFuture {
@@ -178,186 +253,263 @@
  198    206   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  199    207   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  200    208   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  201    209   
            },
  202    210   
        );
  203    211   
        PutWithContentEncodingInputFuture {
  204    212   
            inner: Box::pin(fut),
  205    213   
        }
  206    214   
    }
  207    215   
}
         216  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  208    217   
impl
  209    218   
    ::aws_smithy_http_server::response::IntoResponse<
  210    219   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  211    220   
    > for crate::output::PutWithContentEncodingOutput
  212    221   
{
  213    222   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  214    223   
        match crate::protocol_serde::shape_put_with_content_encoding::ser_put_with_content_encoding_http_response(self) {
  215    224   
                        Ok(response) => response,
  216    225   
                        Err(e) => {
  217    226   
                            ::tracing::error!(error = %e, "failed to serialize response");
  218    227   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  219    228   
                        }
  220    229   
                    }
  221    230   
    }
  222    231   
}
  223    232   
         233  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  224    234   
static CONTENT_TYPE_FRACTIONALSECONDS: std::sync::LazyLock<::mime::Mime> =
  225    235   
    std::sync::LazyLock::new(|| {
  226    236   
        "application/x-amz-json-1.1"
  227    237   
            .parse::<::mime::Mime>()
  228    238   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  229    239   
    });
  230    240   
::pin_project_lite::pin_project! {
  231    241   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  232    242   
    /// [`FractionalSecondsInput`](crate::input::FractionalSecondsInput) using modelled bindings.
  233    243   
    pub struct FractionalSecondsInputFuture {
@@ -265,275 +348,360 @@
  285    295   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  286    296   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  287    297   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  288    298   
            },
  289    299   
        );
  290    300   
        FractionalSecondsInputFuture {
  291    301   
            inner: Box::pin(fut),
  292    302   
        }
  293    303   
    }
  294    304   
}
         305  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  295    306   
impl
  296    307   
    ::aws_smithy_http_server::response::IntoResponse<
  297    308   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  298    309   
    > for crate::output::FractionalSecondsOutput
  299    310   
{
  300    311   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  301    312   
        match crate::protocol_serde::shape_fractional_seconds::ser_fractional_seconds_http_response(
  302    313   
            self,
  303    314   
        ) {
  304    315   
            Ok(response) => response,
  305    316   
            Err(e) => {
  306    317   
                ::tracing::error!(error = %e, "failed to serialize response");
  307    318   
                ::aws_smithy_http_server::response::IntoResponse::<
  308    319   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  309    320   
                >::into_response(
  310    321   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
  311    322   
                        e,
  312    323   
                    ),
  313    324   
                )
  314    325   
            }
  315    326   
        }
  316    327   
    }
  317    328   
}
  318    329   
         330  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  319    331   
static CONTENT_TYPE_DATETIMEOFFSETS: std::sync::LazyLock<::mime::Mime> =
  320    332   
    std::sync::LazyLock::new(|| {
  321    333   
        "application/x-amz-json-1.1"
  322    334   
            .parse::<::mime::Mime>()
  323    335   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  324    336   
    });
  325    337   
::pin_project_lite::pin_project! {
  326    338   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  327    339   
    /// [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput) using modelled bindings.
  328    340   
    pub struct DatetimeOffsetsInputFuture {
@@ -358,370 +441,455 @@
  378    390   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  379    391   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  380    392   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  381    393   
            },
  382    394   
        );
  383    395   
        DatetimeOffsetsInputFuture {
  384    396   
            inner: Box::pin(fut),
  385    397   
        }
  386    398   
    }
  387    399   
}
         400  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  388    401   
impl
  389    402   
    ::aws_smithy_http_server::response::IntoResponse<
  390    403   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  391    404   
    > for crate::output::DatetimeOffsetsOutput
  392    405   
{
  393    406   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  394    407   
        match crate::protocol_serde::shape_datetime_offsets::ser_datetime_offsets_http_response(
  395    408   
            self,
  396    409   
        ) {
  397    410   
            Ok(response) => response,
  398    411   
            Err(e) => {
  399    412   
                ::tracing::error!(error = %e, "failed to serialize response");
  400    413   
                ::aws_smithy_http_server::response::IntoResponse::<
  401    414   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  402    415   
                >::into_response(
  403    416   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
  404    417   
                        e,
  405    418   
                    ),
  406    419   
                )
  407    420   
            }
  408    421   
        }
  409    422   
    }
  410    423   
}
  411    424   
         425  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  412    426   
static CONTENT_TYPE_HOSTWITHPATHOPERATION: std::sync::LazyLock<::mime::Mime> =
  413    427   
    std::sync::LazyLock::new(|| {
  414    428   
        "application/x-amz-json-1.1"
  415    429   
            .parse::<::mime::Mime>()
  416    430   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  417    431   
    });
  418    432   
::pin_project_lite::pin_project! {
  419    433   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  420    434   
    /// [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput) using modelled bindings.
  421    435   
    pub struct HostWithPathOperationInputFuture {
@@ -451,465 +526,542 @@
  471    485   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  472    486   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  473    487   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  474    488   
            },
  475    489   
        );
  476    490   
        HostWithPathOperationInputFuture {
  477    491   
            inner: Box::pin(fut),
  478    492   
        }
  479    493   
    }
  480    494   
}
         495  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  481    496   
impl
  482    497   
    ::aws_smithy_http_server::response::IntoResponse<
  483    498   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  484    499   
    > for crate::output::HostWithPathOperationOutput
  485    500   
{
  486    501   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  487    502   
        match crate::protocol_serde::shape_host_with_path_operation::ser_host_with_path_operation_http_response(self) {
  488    503   
                        Ok(response) => response,
  489    504   
                        Err(e) => {
  490    505   
                            ::tracing::error!(error = %e, "failed to serialize response");
  491    506   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  492    507   
                        }
  493    508   
                    }
  494    509   
    }
  495    510   
}
  496    511   
         512  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  497    513   
static CONTENT_TYPE_ENDPOINTWITHHOSTLABELOPERATION: std::sync::LazyLock<::mime::Mime> =
  498    514   
    std::sync::LazyLock::new(|| {
  499    515   
        "application/x-amz-json-1.1"
  500    516   
            .parse::<::mime::Mime>()
  501    517   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  502    518   
    });
  503    519   
::pin_project_lite::pin_project! {
  504    520   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  505    521   
    /// [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput) using modelled bindings.
  506    522   
    pub struct EndpointWithHostLabelOperationInputFuture {
@@ -536,552 +690,714 @@
  556    572   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  557    573   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  558    574   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  559    575   
            },
  560    576   
        );
  561    577   
        EndpointWithHostLabelOperationInputFuture {
  562    578   
            inner: Box::pin(fut),
  563    579   
        }
  564    580   
    }
  565    581   
}
         582  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  566    583   
impl
  567    584   
    ::aws_smithy_http_server::response::IntoResponse<
  568    585   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  569    586   
    > for crate::output::EndpointWithHostLabelOperationOutput
  570    587   
{
  571    588   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  572    589   
        match crate::protocol_serde::shape_endpoint_with_host_label_operation::ser_endpoint_with_host_label_operation_http_response(self) {
  573    590   
                        Ok(response) => response,
  574    591   
                        Err(e) => {
  575    592   
                            ::tracing::error!(error = %e, "failed to serialize response");
  576    593   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  577    594   
                        }
  578    595   
                    }
  579    596   
    }
  580    597   
}
         598  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  581    599   
impl
  582    600   
    ::aws_smithy_http_server::response::IntoResponse<
  583    601   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  584    602   
    > for crate::error::EndpointWithHostLabelOperationError
  585    603   
{
  586    604   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  587    605   
        match crate::protocol_serde::shape_endpoint_with_host_label_operation::ser_endpoint_with_host_label_operation_http_error(&self) {
  588    606   
            Ok(mut response) => {
  589    607   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
  590    608   
                response
  591    609   
            },
  592    610   
            Err(e) => {
  593    611   
                ::tracing::error!(error = %e, "failed to serialize response");
  594    612   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
  595    613   
            }
  596    614   
        }
  597    615   
    }
  598    616   
}
  599    617   
         618  +
/* RustType.kt:516 */
  600    619   
#[allow(unreachable_code, unused_variables)]
         620  +
/* RustType.kt:516 */
  601    621   
#[cfg(test)]
         622  +
/* ProtocolTestGenerator.kt:98 */
  602    623   
mod endpoint_with_host_label_operation_test {
  603    624   
  604    625   
    /// Operations can prepend to the given host if they define the
  605    626   
    /// endpoint trait, and can use the host label trait to define
  606    627   
    /// further customization based on user input.
  607    628   
    /// Test ID: AwsJson11EndpointTraitWithHostLabel
  608    629   
    #[::tokio::test]
  609    630   
    #[::tracing_test::traced_test]
  610    631   
    #[should_panic]
  611    632   
    async fn aws_json11_endpoint_trait_with_host_label_request() {
  612    633   
        #[allow(unused_mut)]
  613    634   
        let mut http_request = http::Request::builder()
  614    635   
            .uri("/")
  615    636   
            .method("POST")
  616    637   
            .header("Content-Type", "application/x-amz-json-1.1")
  617    638   
            .header(
  618    639   
                "X-Amz-Target",
  619    640   
                "JsonProtocol.EndpointWithHostLabelOperation",
  620    641   
            )
  621    642   
            .body(::aws_smithy_http_server::body::Body::from(
  622    643   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
  623    644   
                    "{\"label\": \"bar\"}".as_bytes(),
  624    645   
                    ::aws_smithy_protocol_test::MediaType::from("application/json"),
  625    646   
                )),
  626    647   
            ))
  627    648   
            .unwrap();
  628    649   
        todo!("endpoint trait not supported yet");
  629    650   
        #[allow(unused_mut)]
  630    651   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
  631    652   
        let config = crate::service::JsonProtocolConfig::builder().build();
  632    653   
        let service = crate::service::JsonProtocol::builder::<::hyper::body::Body, _, _, _>(config)
  633    654   
            .endpoint_with_host_label_operation(
  634    655   
                move |input: crate::input::EndpointWithHostLabelOperationInput| {
  635    656   
                    let sender = sender.clone();
  636    657   
                    async move {
  637    658   
                        let result = {
  638    659   
                            let expected = crate::input::EndpointWithHostLabelOperationInput {
  639    660   
                                label: "bar".to_owned(),
  640    661   
                            };
  641    662   
                            ::pretty_assertions::assert_eq!(input, expected);
  642    663   
                            let output = crate::output::EndpointWithHostLabelOperationOutput {};
  643    664   
                            Ok(output)
  644    665   
                        };
  645    666   
                        sender.send(()).await.expect("receiver dropped early");
  646    667   
                        result
  647    668   
                    }
  648    669   
                },
  649    670   
            )
  650    671   
            .build_unchecked();
  651    672   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
  652    673   
            .await
  653    674   
            .expect("unable to make an HTTP request");
  654    675   
        assert!(
  655    676   
            receiver.recv().await.is_some(),
  656    677   
            "we expected operation handler to be invoked but it was not entered"
  657    678   
        );
  658    679   
    }
         680  +
         681  +
    /* ProtocolTestGenerator.kt:98 */
  659    682   
}
  660    683   
         684  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  661    685   
static CONTENT_TYPE_ENDPOINTOPERATION: std::sync::LazyLock<::mime::Mime> =
  662    686   
    std::sync::LazyLock::new(|| {
  663    687   
        "application/x-amz-json-1.1"
  664    688   
            .parse::<::mime::Mime>()
  665    689   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  666    690   
    });
  667    691   
::pin_project_lite::pin_project! {
  668    692   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  669    693   
    /// [`EndpointOperationInput`](crate::input::EndpointOperationInput) using modelled bindings.
  670    694   
    pub struct EndpointOperationInputFuture {
@@ -702,726 +838,869 @@
  722    746   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  723    747   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  724    748   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  725    749   
            },
  726    750   
        );
  727    751   
        EndpointOperationInputFuture {
  728    752   
            inner: Box::pin(fut),
  729    753   
        }
  730    754   
    }
  731    755   
}
         756  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  732    757   
impl
  733    758   
    ::aws_smithy_http_server::response::IntoResponse<
  734    759   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  735    760   
    > for crate::output::EndpointOperationOutput
  736    761   
{
  737    762   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  738    763   
        match crate::protocol_serde::shape_endpoint_operation::ser_endpoint_operation_http_response(
  739    764   
            self,
  740    765   
        ) {
  741    766   
            Ok(response) => response,
  742    767   
            Err(e) => {
  743    768   
                ::tracing::error!(error = %e, "failed to serialize response");
  744    769   
                ::aws_smithy_http_server::response::IntoResponse::<
  745    770   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  746    771   
                >::into_response(
  747    772   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
  748    773   
                        e,
  749    774   
                    ),
  750    775   
                )
  751    776   
            }
  752    777   
        }
  753    778   
    }
  754    779   
}
  755    780   
         781  +
/* RustType.kt:516 */
  756    782   
#[allow(unreachable_code, unused_variables)]
         783  +
/* RustType.kt:516 */
  757    784   
#[cfg(test)]
         785  +
/* ProtocolTestGenerator.kt:98 */
  758    786   
mod endpoint_operation_test {
  759    787   
  760    788   
    /// Operations can prepend to the given host if they define the
  761    789   
    /// endpoint trait.
  762    790   
    /// Test ID: AwsJson11EndpointTrait
  763    791   
    #[::tokio::test]
  764    792   
    #[::tracing_test::traced_test]
  765    793   
    #[should_panic]
  766    794   
    async fn aws_json11_endpoint_trait_request() {
  767    795   
        #[allow(unused_mut)]
  768    796   
        let mut http_request = http::Request::builder()
  769    797   
            .uri("/")
  770    798   
            .method("POST")
  771    799   
            .header("Content-Type", "application/x-amz-json-1.1")
  772    800   
            .header("X-Amz-Target", "JsonProtocol.EndpointOperation")
  773    801   
            .body(::aws_smithy_http_server::body::Body::from(
  774    802   
                ::bytes::Bytes::copy_from_slice(&::aws_smithy_protocol_test::decode_body_data(
  775    803   
                    "{}".as_bytes(),
  776    804   
                    ::aws_smithy_protocol_test::MediaType::from("unknown"),
  777    805   
                )),
  778    806   
            ))
  779    807   
            .unwrap();
  780    808   
        todo!("endpoint trait not supported yet");
  781    809   
        #[allow(unused_mut)]
  782    810   
        let (sender, mut receiver) = ::tokio::sync::mpsc::channel(1);
  783    811   
        let config = crate::service::JsonProtocolConfig::builder().build();
  784    812   
        let service = crate::service::JsonProtocol::builder::<::hyper::body::Body, _, _, _>(config)
  785    813   
            .endpoint_operation(move |input: crate::input::EndpointOperationInput| {
  786    814   
                let sender = sender.clone();
  787    815   
                async move {
  788    816   
                    let result = {
  789    817   
                        let expected = crate::input::EndpointOperationInput {};
  790    818   
                        ::pretty_assertions::assert_eq!(input, expected);
  791    819   
                        let output = crate::output::EndpointOperationOutput {};
  792    820   
                        output
  793    821   
                    };
  794    822   
                    sender.send(()).await.expect("receiver dropped early");
  795    823   
                    result
  796    824   
                }
  797    825   
            })
  798    826   
            .build_unchecked();
  799    827   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
  800    828   
            .await
  801    829   
            .expect("unable to make an HTTP request");
  802    830   
        assert!(
  803    831   
            receiver.recv().await.is_some(),
  804    832   
            "we expected operation handler to be invoked but it was not entered"
  805    833   
        );
  806    834   
    }
         835  +
         836  +
    /* ProtocolTestGenerator.kt:98 */
  807    837   
}
  808    838   
         839  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  809    840   
static CONTENT_TYPE_JSONUNIONS: std::sync::LazyLock<::mime::Mime> =
  810    841   
    std::sync::LazyLock::new(|| {
  811    842   
        "application/x-amz-json-1.1"
  812    843   
            .parse::<::mime::Mime>()
  813    844   
            .expect("BUG: MIME parsing failed, content_type is not valid")
  814    845   
    });
  815    846   
::pin_project_lite::pin_project! {
  816    847   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  817    848   
    /// [`JsonUnionsInput`](crate::input::JsonUnionsInput) using modelled bindings.
  818    849   
    pub struct JsonUnionsInputFuture {
@@ -848,879 +957,993 @@
  868    899   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
  869    900   
                ::tracing::debug!(error = %e, "failed to deserialize request");
  870    901   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
  871    902   
            },
  872    903   
        );
  873    904   
        JsonUnionsInputFuture {
  874    905   
            inner: Box::pin(fut),
  875    906   
        }
  876    907   
    }
  877    908   
}
         909  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  878    910   
impl
  879    911   
    ::aws_smithy_http_server::response::IntoResponse<
  880    912   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  881    913   
    > for crate::output::JsonUnionsOutput
  882    914   
{
  883    915   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  884    916   
        match crate::protocol_serde::shape_json_unions::ser_json_unions_http_response(self) {
  885    917   
            Ok(response) => response,
  886    918   
            Err(e) => {
  887    919   
                ::tracing::error!(error = %e, "failed to serialize response");
  888    920   
                ::aws_smithy_http_server::response::IntoResponse::<
  889    921   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  890    922   
                >::into_response(
  891    923   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
  892    924   
                        e,
  893    925   
                    ),
  894    926   
                )
  895    927   
            }
  896    928   
        }
  897    929   
    }
  898    930   
}
         931  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  899    932   
impl
  900    933   
    ::aws_smithy_http_server::response::IntoResponse<
  901    934   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  902    935   
    > for crate::error::JsonUnionsError
  903    936   
{
  904    937   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  905    938   
        match crate::protocol_serde::shape_json_unions::ser_json_unions_http_error(&self) {
  906    939   
            Ok(mut response) => {
  907    940   
                response.extensions_mut().insert(
  908    941   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
  909    942   
                );
  910    943   
                response
  911    944   
            }
  912    945   
            Err(e) => {
  913    946   
                ::tracing::error!(error = %e, "failed to serialize response");
  914    947   
                ::aws_smithy_http_server::response::IntoResponse::<
  915    948   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
  916    949   
                >::into_response(
  917    950   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
  918    951   
                        e,
  919    952   
                    ),
  920    953   
                )
  921    954   
            }
  922    955   
        }
  923    956   
    }
  924    957   
}
  925    958   
         959  +
/* RustType.kt:516 */
  926    960   
#[allow(unreachable_code, unused_variables)]
         961  +
/* RustType.kt:516 */
  927    962   
#[cfg(test)]
         963  +
/* ProtocolTestGenerator.kt:98 */
  928    964   
mod json_unions_test {
  929    965   
  930    966   
    /// Serializes a string union value
  931    967   
    /// Test ID: AwsJson11SerializeStringUnionValue
  932    968   
    #[::tokio::test]
  933    969   
    #[::tracing_test::traced_test]
  934    970   
    async fn aws_json11_serialize_string_union_value_request() {
  935    971   
        #[allow(unused_mut)]
  936    972   
        let mut http_request = http::Request::builder()
  937    973   
            .uri("/")
@@ -1657,1693 +1718,1757 @@
 1677   1713   
            http_response.headers(),
 1678   1714   
            expected_headers,
 1679   1715   
        ));
 1680   1716   
        let body = ::hyper::body::to_bytes(http_response.into_body())
 1681   1717   
            .await
 1682   1718   
            .expect("unable to extract body to bytes");
 1683   1719   
        ::aws_smithy_protocol_test::assert_ok(
 1684   1720   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"contents\": {\n        \"structureValue\": {\n            \"hi\": \"hello\"\n        }\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
 1685   1721   
        );
 1686   1722   
    }
        1723  +
        1724  +
    /* ProtocolTestGenerator.kt:98 */
 1687   1725   
}
 1688   1726   
        1727  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1689   1728   
static CONTENT_TYPE_GREETINGWITHERRORS: std::sync::LazyLock<::mime::Mime> =
 1690   1729   
    std::sync::LazyLock::new(|| {
 1691   1730   
        "application/x-amz-json-1.1"
 1692   1731   
            .parse::<::mime::Mime>()
 1693   1732   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 1694   1733   
    });
 1695   1734   
::pin_project_lite::pin_project! {
 1696   1735   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1697   1736   
    /// [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput) using modelled bindings.
 1698   1737   
    pub struct GreetingWithErrorsInputFuture {
@@ -1730,1769 +1835,1879 @@
 1750   1789   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1751   1790   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1752   1791   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1753   1792   
            },
 1754   1793   
        );
 1755   1794   
        GreetingWithErrorsInputFuture {
 1756   1795   
            inner: Box::pin(fut),
 1757   1796   
        }
 1758   1797   
    }
 1759   1798   
}
        1799  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1760   1800   
impl
 1761   1801   
    ::aws_smithy_http_server::response::IntoResponse<
 1762   1802   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 1763   1803   
    > for crate::output::GreetingWithErrorsOutput
 1764   1804   
{
 1765   1805   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1766   1806   
        match crate::protocol_serde::shape_greeting_with_errors::ser_greeting_with_errors_http_response(self) {
 1767   1807   
                        Ok(response) => response,
 1768   1808   
                        Err(e) => {
 1769   1809   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1770   1810   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1771   1811   
                        }
 1772   1812   
                    }
 1773   1813   
    }
 1774   1814   
}
        1815  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 1775   1816   
impl
 1776   1817   
    ::aws_smithy_http_server::response::IntoResponse<
 1777   1818   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 1778   1819   
    > for crate::error::GreetingWithErrorsError
 1779   1820   
{
 1780   1821   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1781   1822   
        match crate::protocol_serde::shape_greeting_with_errors::ser_greeting_with_errors_http_error(
 1782   1823   
            &self,
 1783   1824   
        ) {
 1784   1825   
            Ok(mut response) => {
 1785   1826   
                response.extensions_mut().insert(
 1786   1827   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
 1787   1828   
                );
 1788   1829   
                response
 1789   1830   
            }
 1790   1831   
            Err(e) => {
 1791   1832   
                ::tracing::error!(error = %e, "failed to serialize response");
 1792   1833   
                ::aws_smithy_http_server::response::IntoResponse::<
 1793   1834   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 1794   1835   
                >::into_response(
 1795   1836   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
 1796   1837   
                        e,
 1797   1838   
                    ),
 1798   1839   
                )
 1799   1840   
            }
 1800   1841   
        }
 1801   1842   
    }
 1802   1843   
}
 1803   1844   
        1845  +
/* RustType.kt:516 */
 1804   1846   
#[allow(unreachable_code, unused_variables)]
        1847  +
/* RustType.kt:516 */
 1805   1848   
#[cfg(test)]
        1849  +
/* ProtocolTestGenerator.kt:98 */
 1806   1850   
mod greeting_with_errors_test {
 1807   1851   
 1808   1852   
    /// Parses simple JSON errors
 1809   1853   
    /// Test ID: AwsJson11InvalidGreetingError
 1810   1854   
    #[::tokio::test]
 1811   1855   
    #[::tracing_test::traced_test]
 1812   1856   
    async fn aws_json11_invalid_greeting_error_response() {
 1813   1857   
        let output = crate::error::InvalidGreeting {
 1814   1858   
            message: ::std::option::Option::Some("Hi".to_owned()),
 1815   1859   
        };
@@ -1867,1911 +1928,1975 @@
 1887   1931   
        ));
 1888   1932   
        let body = ::hyper::body::to_bytes(http_response.into_body())
 1889   1933   
            .await
 1890   1934   
            .expect("unable to extract body to bytes");
 1891   1935   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 1892   1936   
            &body,
 1893   1937   
            "{\n    \"__type\": \"ComplexError\"\n}",
 1894   1938   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 1895   1939   
        ));
 1896   1940   
    }
        1941  +
        1942  +
    /* ProtocolTestGenerator.kt:98 */
 1897   1943   
}
 1898   1944   
        1945  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 1899   1946   
static CONTENT_TYPE_SPARSENULLSOPERATION: std::sync::LazyLock<::mime::Mime> =
 1900   1947   
    std::sync::LazyLock::new(|| {
 1901   1948   
        "application/x-amz-json-1.1"
 1902   1949   
            .parse::<::mime::Mime>()
 1903   1950   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 1904   1951   
    });
 1905   1952   
::pin_project_lite::pin_project! {
 1906   1953   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 1907   1954   
    /// [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput) using modelled bindings.
 1908   1955   
    pub struct SparseNullsOperationInputFuture {
@@ -1938,1985 +2015,2066 @@
 1958   2005   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 1959   2006   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 1960   2007   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 1961   2008   
            },
 1962   2009   
        );
 1963   2010   
        SparseNullsOperationInputFuture {
 1964   2011   
            inner: Box::pin(fut),
 1965   2012   
        }
 1966   2013   
    }
 1967   2014   
}
        2015  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 1968   2016   
impl
 1969   2017   
    ::aws_smithy_http_server::response::IntoResponse<
 1970   2018   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 1971   2019   
    > for crate::output::SparseNullsOperationOutput
 1972   2020   
{
 1973   2021   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 1974   2022   
        match crate::protocol_serde::shape_sparse_nulls_operation::ser_sparse_nulls_operation_http_response(self) {
 1975   2023   
                        Ok(response) => response,
 1976   2024   
                        Err(e) => {
 1977   2025   
                            ::tracing::error!(error = %e, "failed to serialize response");
 1978   2026   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 1979   2027   
                        }
 1980   2028   
                    }
 1981   2029   
    }
 1982   2030   
}
 1983   2031   
        2032  +
/* RustType.kt:516 */
 1984   2033   
#[allow(unreachable_code, unused_variables)]
        2034  +
/* RustType.kt:516 */
 1985   2035   
#[cfg(test)]
        2036  +
/* ProtocolTestGenerator.kt:98 */
 1986   2037   
mod sparse_nulls_operation_test {
 1987   2038   
 1988   2039   
    /// Serializes null values in maps
 1989   2040   
    /// Test ID: AwsJson11SparseMapsSerializeNullValues
 1990   2041   
    #[::tokio::test]
 1991   2042   
    #[::tracing_test::traced_test]
 1992   2043   
    async fn aws_json11_sparse_maps_serialize_null_values_request() {
 1993   2044   
        #[allow(unused_mut)]
 1994   2045   
        let mut http_request = http::Request::builder()
 1995   2046   
            .uri("/")
@@ -2129,2180 +2190,2244 @@
 2149   2200   
        ));
 2150   2201   
        let body = ::hyper::body::to_bytes(http_response.into_body())
 2151   2202   
            .await
 2152   2203   
            .expect("unable to extract body to bytes");
 2153   2204   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 2154   2205   
            &body,
 2155   2206   
            "{\n    \"sparseStringList\": [\n        null\n    ]\n}",
 2156   2207   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 2157   2208   
        ));
 2158   2209   
    }
        2210  +
        2211  +
    /* ProtocolTestGenerator.kt:98 */
 2159   2212   
}
 2160   2213   
        2214  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2161   2215   
static CONTENT_TYPE_NULLOPERATION: std::sync::LazyLock<::mime::Mime> =
 2162   2216   
    std::sync::LazyLock::new(|| {
 2163   2217   
        "application/x-amz-json-1.1"
 2164   2218   
            .parse::<::mime::Mime>()
 2165   2219   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 2166   2220   
    });
 2167   2221   
::pin_project_lite::pin_project! {
 2168   2222   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2169   2223   
    /// [`NullOperationInput`](crate::input::NullOperationInput) using modelled bindings.
 2170   2224   
    pub struct NullOperationInputFuture {
@@ -2200,2254 +2283,2341 @@
 2220   2274   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2221   2275   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2222   2276   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2223   2277   
            },
 2224   2278   
        );
 2225   2279   
        NullOperationInputFuture {
 2226   2280   
            inner: Box::pin(fut),
 2227   2281   
        }
 2228   2282   
    }
 2229   2283   
}
        2284  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2230   2285   
impl
 2231   2286   
    ::aws_smithy_http_server::response::IntoResponse<
 2232   2287   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 2233   2288   
    > for crate::output::NullOperationOutput
 2234   2289   
{
 2235   2290   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2236   2291   
        match crate::protocol_serde::shape_null_operation::ser_null_operation_http_response(self) {
 2237   2292   
            Ok(response) => response,
 2238   2293   
            Err(e) => {
 2239   2294   
                ::tracing::error!(error = %e, "failed to serialize response");
 2240   2295   
                ::aws_smithy_http_server::response::IntoResponse::<
 2241   2296   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 2242   2297   
                >::into_response(
 2243   2298   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
 2244   2299   
                        e,
 2245   2300   
                    ),
 2246   2301   
                )
 2247   2302   
            }
 2248   2303   
        }
 2249   2304   
    }
 2250   2305   
}
 2251   2306   
        2307  +
/* RustType.kt:516 */
 2252   2308   
#[allow(unreachable_code, unused_variables)]
        2309  +
/* RustType.kt:516 */
 2253   2310   
#[cfg(test)]
        2311  +
/* ProtocolTestGenerator.kt:98 */
 2254   2312   
mod null_operation_test {
 2255   2313   
 2256   2314   
    /// Null structure values are dropped
 2257   2315   
    /// Test ID: AwsJson11ServersDontDeserializeNullStructureValues
 2258   2316   
    #[::tokio::test]
 2259   2317   
    #[::tracing_test::traced_test]
 2260   2318   
    async fn aws_json11_servers_dont_deserialize_null_structure_values_request() {
 2261   2319   
        #[allow(unused_mut)]
 2262   2320   
        let mut http_request = http::Request::builder()
 2263   2321   
            .uri("/")
@@ -2303,2361 +2364,2425 @@
 2323   2381   
        ));
 2324   2382   
        let body = ::hyper::body::to_bytes(http_response.into_body())
 2325   2383   
            .await
 2326   2384   
            .expect("unable to extract body to bytes");
 2327   2385   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 2328   2386   
            &body,
 2329   2387   
            "{}",
 2330   2388   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 2331   2389   
        ));
 2332   2390   
    }
        2391  +
        2392  +
    /* ProtocolTestGenerator.kt:98 */
 2333   2393   
}
 2334   2394   
        2395  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2335   2396   
static CONTENT_TYPE_JSONENUMS: std::sync::LazyLock<::mime::Mime> = std::sync::LazyLock::new(|| {
 2336   2397   
    "application/x-amz-json-1.1"
 2337   2398   
        .parse::<::mime::Mime>()
 2338   2399   
        .expect("BUG: MIME parsing failed, content_type is not valid")
 2339   2400   
});
 2340   2401   
::pin_project_lite::pin_project! {
 2341   2402   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2342   2403   
    /// [`JsonEnumsInput`](crate::input::JsonEnumsInput) using modelled bindings.
 2343   2404   
    pub struct JsonEnumsInputFuture {
 2344   2405   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::JsonEnumsInput, ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError>> + Send>>
@@ -2373,2434 +2482,2548 @@
 2393   2454   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2394   2455   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2395   2456   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2396   2457   
            },
 2397   2458   
        );
 2398   2459   
        JsonEnumsInputFuture {
 2399   2460   
            inner: Box::pin(fut),
 2400   2461   
        }
 2401   2462   
    }
 2402   2463   
}
        2464  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2403   2465   
impl
 2404   2466   
    ::aws_smithy_http_server::response::IntoResponse<
 2405   2467   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 2406   2468   
    > for crate::output::JsonEnumsOutput
 2407   2469   
{
 2408   2470   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2409   2471   
        match crate::protocol_serde::shape_json_enums::ser_json_enums_http_response(self) {
 2410   2472   
            Ok(response) => response,
 2411   2473   
            Err(e) => {
 2412   2474   
                ::tracing::error!(error = %e, "failed to serialize response");
 2413   2475   
                ::aws_smithy_http_server::response::IntoResponse::<
 2414   2476   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 2415   2477   
                >::into_response(
 2416   2478   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
 2417   2479   
                        e,
 2418   2480   
                    ),
 2419   2481   
                )
 2420   2482   
            }
 2421   2483   
        }
 2422   2484   
    }
 2423   2485   
}
        2486  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 2424   2487   
impl
 2425   2488   
    ::aws_smithy_http_server::response::IntoResponse<
 2426   2489   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 2427   2490   
    > for crate::error::JsonEnumsError
 2428   2491   
{
 2429   2492   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2430   2493   
        match crate::protocol_serde::shape_json_enums::ser_json_enums_http_error(&self) {
 2431   2494   
            Ok(mut response) => {
 2432   2495   
                response.extensions_mut().insert(
 2433   2496   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
 2434   2497   
                );
 2435   2498   
                response
 2436   2499   
            }
 2437   2500   
            Err(e) => {
 2438   2501   
                ::tracing::error!(error = %e, "failed to serialize response");
 2439   2502   
                ::aws_smithy_http_server::response::IntoResponse::<
 2440   2503   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 2441   2504   
                >::into_response(
 2442   2505   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
 2443   2506   
                        e,
 2444   2507   
                    ),
 2445   2508   
                )
 2446   2509   
            }
 2447   2510   
        }
 2448   2511   
    }
 2449   2512   
}
 2450   2513   
        2514  +
/* RustType.kt:516 */
 2451   2515   
#[allow(unreachable_code, unused_variables)]
        2516  +
/* RustType.kt:516 */
 2452   2517   
#[cfg(test)]
        2518  +
/* ProtocolTestGenerator.kt:98 */
 2453   2519   
mod json_enums_test {
 2454   2520   
 2455   2521   
    /// Serializes simple scalar properties
 2456   2522   
    /// Test ID: AwsJson11Enums
 2457   2523   
    #[::tokio::test]
 2458   2524   
    #[::tracing_test::traced_test]
 2459   2525   
    async fn aws_json11_enums_request() {
 2460   2526   
        #[allow(unused_mut)]
 2461   2527   
                    let mut http_request = http::Request::builder()
 2462   2528   
                        .uri("/")
@@ -2593,2659 +2654,2723 @@
 2613   2679   
            http_response.headers(),
 2614   2680   
            expected_headers,
 2615   2681   
        ));
 2616   2682   
        let body = ::hyper::body::to_bytes(http_response.into_body())
 2617   2683   
            .await
 2618   2684   
            .expect("unable to extract body to bytes");
 2619   2685   
        ::aws_smithy_protocol_test::assert_ok(
 2620   2686   
        ::aws_smithy_protocol_test::validate_body(&body, "{\n    \"fooEnum1\": \"Foo\",\n    \"fooEnum2\": \"0\",\n    \"fooEnum3\": \"1\",\n    \"fooEnumList\": [\n        \"Foo\",\n        \"0\"\n    ],\n    \"fooEnumSet\": [\n        \"Foo\",\n        \"0\"\n    ],\n    \"fooEnumMap\": {\n        \"hi\": \"Foo\",\n        \"zero\": \"0\"\n    }\n}", ::aws_smithy_protocol_test::MediaType::from("application/json"))
 2621   2687   
        );
 2622   2688   
    }
        2689  +
        2690  +
    /* ProtocolTestGenerator.kt:98 */
 2623   2691   
}
 2624   2692   
        2693  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2625   2694   
static CONTENT_TYPE_PUTANDGETINLINEDOCUMENTS: std::sync::LazyLock<::mime::Mime> =
 2626   2695   
    std::sync::LazyLock::new(|| {
 2627   2696   
        "application/x-amz-json-1.1"
 2628   2697   
            .parse::<::mime::Mime>()
 2629   2698   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 2630   2699   
    });
 2631   2700   
::pin_project_lite::pin_project! {
 2632   2701   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2633   2702   
    /// [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput) using modelled bindings.
 2634   2703   
    pub struct PutAndGetInlineDocumentsInputFuture {
@@ -2664,2733 +2741,2814 @@
 2684   2753   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2685   2754   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2686   2755   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2687   2756   
            },
 2688   2757   
        );
 2689   2758   
        PutAndGetInlineDocumentsInputFuture {
 2690   2759   
            inner: Box::pin(fut),
 2691   2760   
        }
 2692   2761   
    }
 2693   2762   
}
        2763  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2694   2764   
impl
 2695   2765   
    ::aws_smithy_http_server::response::IntoResponse<
 2696   2766   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 2697   2767   
    > for crate::output::PutAndGetInlineDocumentsOutput
 2698   2768   
{
 2699   2769   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2700   2770   
        match crate::protocol_serde::shape_put_and_get_inline_documents::ser_put_and_get_inline_documents_http_response(self) {
 2701   2771   
                        Ok(response) => response,
 2702   2772   
                        Err(e) => {
 2703   2773   
                            ::tracing::error!(error = %e, "failed to serialize response");
 2704   2774   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 2705   2775   
                        }
 2706   2776   
                    }
 2707   2777   
    }
 2708   2778   
}
 2709   2779   
        2780  +
/* RustType.kt:516 */
 2710   2781   
#[allow(unreachable_code, unused_variables)]
        2782  +
/* RustType.kt:516 */
 2711   2783   
#[cfg(test)]
        2784  +
/* ProtocolTestGenerator.kt:98 */
 2712   2785   
mod put_and_get_inline_documents_test {
 2713   2786   
 2714   2787   
    /// Serializes inline documents in a JSON request.
 2715   2788   
    /// Test ID: PutAndGetInlineDocumentsInput
 2716   2789   
    #[::tokio::test]
 2717   2790   
    #[::tracing_test::traced_test]
 2718   2791   
    async fn put_and_get_inline_documents_input_request() {
 2719   2792   
        #[allow(unused_mut)]
 2720   2793   
        let mut http_request = http::Request::builder()
 2721   2794   
            .uri("/")
@@ -2791,2864 +2852,2928 @@
 2811   2884   
        ));
 2812   2885   
        let body = ::hyper::body::to_bytes(http_response.into_body())
 2813   2886   
            .await
 2814   2887   
            .expect("unable to extract body to bytes");
 2815   2888   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 2816   2889   
            &body,
 2817   2890   
            "{\n    \"inlineDocument\": {\"foo\": \"bar\"}\n}",
 2818   2891   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 2819   2892   
        ));
 2820   2893   
    }
        2894  +
        2895  +
    /* ProtocolTestGenerator.kt:98 */
 2821   2896   
}
 2822   2897   
        2898  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 2823   2899   
static CONTENT_TYPE_OPERATIONWITHOPTIONALINPUTOUTPUT: std::sync::LazyLock<::mime::Mime> =
 2824   2900   
    std::sync::LazyLock::new(|| {
 2825   2901   
        "application/x-amz-json-1.1"
 2826   2902   
            .parse::<::mime::Mime>()
 2827   2903   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 2828   2904   
    });
 2829   2905   
::pin_project_lite::pin_project! {
 2830   2906   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 2831   2907   
    /// [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput) using modelled bindings.
 2832   2908   
    pub struct OperationWithOptionalInputOutputInputFuture {
@@ -2862,2938 +2939,3019 @@
 2882   2958   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 2883   2959   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 2884   2960   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 2885   2961   
            },
 2886   2962   
        );
 2887   2963   
        OperationWithOptionalInputOutputInputFuture {
 2888   2964   
            inner: Box::pin(fut),
 2889   2965   
        }
 2890   2966   
    }
 2891   2967   
}
        2968  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 2892   2969   
impl
 2893   2970   
    ::aws_smithy_http_server::response::IntoResponse<
 2894   2971   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 2895   2972   
    > for crate::output::OperationWithOptionalInputOutputOutput
 2896   2973   
{
 2897   2974   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 2898   2975   
        match crate::protocol_serde::shape_operation_with_optional_input_output::ser_operation_with_optional_input_output_http_response(self) {
 2899   2976   
                        Ok(response) => response,
 2900   2977   
                        Err(e) => {
 2901   2978   
                            ::tracing::error!(error = %e, "failed to serialize response");
 2902   2979   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 2903   2980   
                        }
 2904   2981   
                    }
 2905   2982   
    }
 2906   2983   
}
 2907   2984   
        2985  +
/* RustType.kt:516 */
 2908   2986   
#[allow(unreachable_code, unused_variables)]
        2987  +
/* RustType.kt:516 */
 2909   2988   
#[cfg(test)]
        2989  +
/* ProtocolTestGenerator.kt:98 */
 2910   2990   
mod operation_with_optional_input_output_test {
 2911   2991   
 2912   2992   
    /// Can call operations with no input or output
 2913   2993   
    /// Test ID: can_call_operation_with_no_input_or_output
 2914   2994   
    #[::tokio::test]
 2915   2995   
    #[::tracing_test::traced_test]
 2916   2996   
    async fn can_call_operation_with_no_input_or_output_request() {
 2917   2997   
        #[allow(unused_mut)]
 2918   2998   
        let mut http_request = http::Request::builder()
 2919   2999   
            .uri("/")
@@ -2989,3069 +3050,3133 @@
 3009   3089   
            )
 3010   3090   
            .build_unchecked();
 3011   3091   
        let http_response = ::tower::ServiceExt::oneshot(service, http_request)
 3012   3092   
            .await
 3013   3093   
            .expect("unable to make an HTTP request");
 3014   3094   
        assert!(
 3015   3095   
            receiver.recv().await.is_some(),
 3016   3096   
            "we expected operation handler to be invoked but it was not entered"
 3017   3097   
        );
 3018   3098   
    }
        3099  +
        3100  +
    /* ProtocolTestGenerator.kt:98 */
 3019   3101   
}
 3020   3102   
        3103  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 3021   3104   
static CONTENT_TYPE_SIMPLESCALARPROPERTIES: std::sync::LazyLock<::mime::Mime> =
 3022   3105   
    std::sync::LazyLock::new(|| {
 3023   3106   
        "application/x-amz-json-1.1"
 3024   3107   
            .parse::<::mime::Mime>()
 3025   3108   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 3026   3109   
    });
 3027   3110   
::pin_project_lite::pin_project! {
 3028   3111   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 3029   3112   
    /// [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput) using modelled bindings.
 3030   3113   
    pub struct SimpleScalarPropertiesInputFuture {
@@ -3060,3143 +3137,3224 @@
 3080   3163   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 3081   3164   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 3082   3165   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 3083   3166   
            },
 3084   3167   
        );
 3085   3168   
        SimpleScalarPropertiesInputFuture {
 3086   3169   
            inner: Box::pin(fut),
 3087   3170   
        }
 3088   3171   
    }
 3089   3172   
}
        3173  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 3090   3174   
impl
 3091   3175   
    ::aws_smithy_http_server::response::IntoResponse<
 3092   3176   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 3093   3177   
    > for crate::output::SimpleScalarPropertiesOutput
 3094   3178   
{
 3095   3179   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3096   3180   
        match crate::protocol_serde::shape_simple_scalar_properties::ser_simple_scalar_properties_http_response(self) {
 3097   3181   
                        Ok(response) => response,
 3098   3182   
                        Err(e) => {
 3099   3183   
                            ::tracing::error!(error = %e, "failed to serialize response");
 3100   3184   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 3101   3185   
                        }
 3102   3186   
                    }
 3103   3187   
    }
 3104   3188   
}
 3105   3189   
        3190  +
/* RustType.kt:516 */
 3106   3191   
#[allow(unreachable_code, unused_variables)]
        3192  +
/* RustType.kt:516 */
 3107   3193   
#[cfg(test)]
        3194  +
/* ProtocolTestGenerator.kt:98 */
 3108   3195   
mod simple_scalar_properties_test {
 3109   3196   
 3110   3197   
    /// Supports handling NaN float values.
 3111   3198   
    /// Test ID: AwsJson11SupportsNaNFloatInputs
 3112   3199   
    #[::tokio::test]
 3113   3200   
    #[::tracing_test::traced_test]
 3114   3201   
    async fn aws_json11_supports_na_n_float_inputs_request() {
 3115   3202   
        #[allow(unused_mut)]
 3116   3203   
        let mut http_request = http::Request::builder()
 3117   3204   
            .uri("/")
@@ -3396,3483 +3457,3547 @@
 3416   3503   
        ));
 3417   3504   
        let body = ::hyper::body::to_bytes(http_response.into_body())
 3418   3505   
            .await
 3419   3506   
            .expect("unable to extract body to bytes");
 3420   3507   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
 3421   3508   
            &body,
 3422   3509   
            "{\n    \"floatValue\": \"-Infinity\",\n    \"doubleValue\": \"-Infinity\"\n}",
 3423   3510   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
 3424   3511   
        ));
 3425   3512   
    }
        3513  +
        3514  +
    /* ProtocolTestGenerator.kt:98 */
 3426   3515   
}
 3427   3516   
        3517  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
 3428   3518   
static CONTENT_TYPE_KITCHENSINKOPERATION: std::sync::LazyLock<::mime::Mime> =
 3429   3519   
    std::sync::LazyLock::new(|| {
 3430   3520   
        "application/x-amz-json-1.1"
 3431   3521   
            .parse::<::mime::Mime>()
 3432   3522   
            .expect("BUG: MIME parsing failed, content_type is not valid")
 3433   3523   
    });
 3434   3524   
::pin_project_lite::pin_project! {
 3435   3525   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
 3436   3526   
    /// [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput) using modelled bindings.
 3437   3527   
    pub struct KitchenSinkOperationInputFuture {
@@ -3467,3557 +3562,3657 @@
 3487   3577   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
 3488   3578   
                ::tracing::debug!(error = %e, "failed to deserialize request");
 3489   3579   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
 3490   3580   
            },
 3491   3581   
        );
 3492   3582   
        KitchenSinkOperationInputFuture {
 3493   3583   
            inner: Box::pin(fut),
 3494   3584   
        }
 3495   3585   
    }
 3496   3586   
}
        3587  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
 3497   3588   
impl
 3498   3589   
    ::aws_smithy_http_server::response::IntoResponse<
 3499   3590   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 3500   3591   
    > for crate::output::KitchenSinkOperationOutput
 3501   3592   
{
 3502   3593   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3503   3594   
        match crate::protocol_serde::shape_kitchen_sink_operation::ser_kitchen_sink_operation_http_response(self) {
 3504   3595   
                        Ok(response) => response,
 3505   3596   
                        Err(e) => {
 3506   3597   
                            ::tracing::error!(error = %e, "failed to serialize response");
 3507   3598   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 3508   3599   
                        }
 3509   3600   
                    }
 3510   3601   
    }
 3511   3602   
}
        3603  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
 3512   3604   
impl
 3513   3605   
    ::aws_smithy_http_server::response::IntoResponse<
 3514   3606   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
 3515   3607   
    > for crate::error::KitchenSinkOperationError
 3516   3608   
{
 3517   3609   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
 3518   3610   
        match crate::protocol_serde::shape_kitchen_sink_operation::ser_kitchen_sink_operation_http_error(&self) {
 3519   3611   
            Ok(mut response) => {
 3520   3612   
                response.extensions_mut().insert(::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()));
 3521   3613   
                response
 3522   3614   
            },
 3523   3615   
            Err(e) => {
 3524   3616   
                ::tracing::error!(error = %e, "failed to serialize response");
 3525   3617   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1>::into_response(::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e))
 3526   3618   
            }
 3527   3619   
        }
 3528   3620   
    }
 3529   3621   
}
 3530   3622   
        3623  +
/* RustType.kt:516 */
 3531   3624   
#[allow(unreachable_code, unused_variables)]
        3625  +
/* RustType.kt:516 */
 3532   3626   
#[cfg(test)]
        3627  +
/* ProtocolTestGenerator.kt:98 */
 3533   3628   
mod kitchen_sink_operation_test {
 3534   3629   
 3535   3630   
    /// Serializes string shapes
 3536   3631   
    /// Test ID: serializes_string_shapes
 3537   3632   
    #[::tokio::test]
 3538   3633   
    #[::tracing_test::traced_test]
 3539   3634   
    async fn serializes_string_shapes_request() {
 3540   3635   
        #[allow(unused_mut)]
 3541   3636   
        let mut http_request = http::Request::builder()
 3542   3637   
            .uri("/")
@@ -11906,12001 +11967,12065 @@
11926  12021   
        ));
11927  12022   
        let body = ::hyper::body::to_bytes(http_response.into_body())
11928  12023   
            .await
11929  12024   
            .expect("unable to extract body to bytes");
11930  12025   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_body(
11931  12026   
            &body,
11932  12027   
            "{}",
11933  12028   
            ::aws_smithy_protocol_test::MediaType::from("application/json"),
11934  12029   
        ));
11935  12030   
    }
       12031  +
       12032  +
    /* ProtocolTestGenerator.kt:98 */
11936  12033   
}
11937  12034   
       12035  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
11938  12036   
static CONTENT_TYPE_EMPTYOPERATION: std::sync::LazyLock<::mime::Mime> =
11939  12037   
    std::sync::LazyLock::new(|| {
11940  12038   
        "application/x-amz-json-1.1"
11941  12039   
            .parse::<::mime::Mime>()
11942  12040   
            .expect("BUG: MIME parsing failed, content_type is not valid")
11943  12041   
    });
11944  12042   
::pin_project_lite::pin_project! {
11945  12043   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
11946  12044   
    /// [`EmptyOperationInput`](crate::input::EmptyOperationInput) using modelled bindings.
11947  12045   
    pub struct EmptyOperationInputFuture {
@@ -11977,12075 +12061,12163 @@
11997  12095   
            |e: ::aws_smithy_http_server::protocol::aws_json::rejection::RequestRejection| {
11998  12096   
                ::tracing::debug!(error = %e, "failed to deserialize request");
11999  12097   
                ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(e)
12000  12098   
            },
12001  12099   
        );
12002  12100   
        EmptyOperationInputFuture {
12003  12101   
            inner: Box::pin(fut),
12004  12102   
        }
12005  12103   
    }
12006  12104   
}
       12105  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
12007  12106   
impl
12008  12107   
    ::aws_smithy_http_server::response::IntoResponse<
12009  12108   
        ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
12010  12109   
    > for crate::output::EmptyOperationOutput
12011  12110   
{
12012  12111   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
12013  12112   
        match crate::protocol_serde::shape_empty_operation::ser_empty_operation_http_response(self)
12014  12113   
        {
12015  12114   
            Ok(response) => response,
12016  12115   
            Err(e) => {
12017  12116   
                ::tracing::error!(error = %e, "failed to serialize response");
12018  12117   
                ::aws_smithy_http_server::response::IntoResponse::<
12019  12118   
                    ::aws_smithy_http_server::protocol::aws_json_11::AwsJson1_1,
12020  12119   
                >::into_response(
12021  12120   
                    ::aws_smithy_http_server::protocol::aws_json::runtime_error::RuntimeError::from(
12022  12121   
                        e,
12023  12122   
                    ),
12024  12123   
                )
12025  12124   
            }
12026  12125   
        }
12027  12126   
    }
12028  12127   
}
12029  12128   
       12129  +
/* RustType.kt:516 */
12030  12130   
#[allow(unreachable_code, unused_variables)]
       12131  +
/* RustType.kt:516 */
12031  12132   
#[cfg(test)]
       12133  +
/* ProtocolTestGenerator.kt:98 */
12032  12134   
mod empty_operation_test {
12033  12135   
12034  12136   
    /// Sends requests to /
12035  12137   
    /// Test ID: sends_requests_to_slash
12036  12138   
    #[::tokio::test]
12037  12139   
    #[::tracing_test::traced_test]
12038  12140   
    async fn sends_requests_to_slash_request() {
12039  12141   
        #[allow(unused_mut)]
12040  12142   
        let mut http_request = http::Request::builder()
12041  12143   
            .uri("/")
@@ -12210,12312 +12240,12344 @@
12230  12332   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(
12231  12333   
            http_response.headers(),
12232  12334   
            expected_headers,
12233  12335   
        ));
12234  12336   
        let body = ::hyper::body::to_bytes(http_response.into_body())
12235  12337   
            .await
12236  12338   
            .expect("unable to extract body to bytes");
12237  12339   
        // No body.
12238  12340   
        ::pretty_assertions::assert_eq!(&body, &bytes::Bytes::new());
12239  12341   
    }
       12342  +
       12343  +
    /* ProtocolTestGenerator.kt:98 */
12240  12344   
}

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

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

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

@@ -1,1 +1372,2291 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[derive(
    4      6   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
    5      7   
)]
    6         -
pub struct ContentTypeParametersOutput {}
           8  +
pub /* StructureGenerator.kt:201 */ struct ContentTypeParametersOutput {/* StructureGenerator.kt:201 */}
           9  +
/* ServerCodegenVisitor.kt:345 */
    7     10   
impl ContentTypeParametersOutput {
    8         -
    /// Creates a new builder-style object to manufacture [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
          11  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
          12  +
    /* ServerBuilderGenerator.kt:295 */
    9     13   
    pub fn builder() -> crate::output::content_type_parameters_output::Builder {
          14  +
        /* ServerBuilderGenerator.kt:296 */
   10     15   
        crate::output::content_type_parameters_output::Builder::default()
          16  +
        /* ServerBuilderGenerator.kt:295 */
   11     17   
    }
          18  +
    /* ServerCodegenVisitor.kt:345 */
   12     19   
}
   13     20   
          21  +
/* StructureGenerator.kt:197 */
   14     22   
#[allow(missing_docs)] // documentation missing in model
          23  +
/* RustType.kt:516 */
   15     24   
#[derive(
   16     25   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   17     26   
)]
   18         -
pub struct PutWithContentEncodingOutput {}
          27  +
pub /* StructureGenerator.kt:201 */ struct PutWithContentEncodingOutput {/* StructureGenerator.kt:201 */}
          28  +
/* ServerCodegenVisitor.kt:345 */
   19     29   
impl PutWithContentEncodingOutput {
   20         -
    /// Creates a new builder-style object to manufacture [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
          30  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
          31  +
    /* ServerBuilderGenerator.kt:295 */
   21     32   
    pub fn builder() -> crate::output::put_with_content_encoding_output::Builder {
          33  +
        /* ServerBuilderGenerator.kt:296 */
   22     34   
        crate::output::put_with_content_encoding_output::Builder::default()
          35  +
        /* ServerBuilderGenerator.kt:295 */
   23     36   
    }
          37  +
    /* ServerCodegenVisitor.kt:345 */
   24     38   
}
   25     39   
          40  +
/* StructureGenerator.kt:197 */
   26     41   
#[allow(missing_docs)] // documentation missing in model
          42  +
/* RustType.kt:516 */
   27     43   
#[derive(
   28     44   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   29     45   
)]
   30         -
pub struct FractionalSecondsOutput {
          46  +
pub /* StructureGenerator.kt:201 */ struct FractionalSecondsOutput {
          47  +
    /* StructureGenerator.kt:231 */
   31     48   
    #[allow(missing_docs)] // documentation missing in model
   32     49   
    pub datetime: ::std::option::Option<::aws_smithy_types::DateTime>,
          50  +
    /* StructureGenerator.kt:201 */
   33     51   
}
          52  +
/* StructureGenerator.kt:135 */
   34     53   
impl FractionalSecondsOutput {
          54  +
    /* StructureGenerator.kt:231 */
   35     55   
    #[allow(missing_docs)] // documentation missing in model
          56  +
                           /* StructureGenerator.kt:166 */
   36     57   
    pub fn datetime(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          58  +
        /* StructureGenerator.kt:170 */
   37     59   
        self.datetime.as_ref()
          60  +
        /* StructureGenerator.kt:166 */
   38     61   
    }
          62  +
    /* StructureGenerator.kt:135 */
   39     63   
}
          64  +
/* ServerCodegenVisitor.kt:345 */
   40     65   
impl FractionalSecondsOutput {
   41         -
    /// Creates a new builder-style object to manufacture [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
          66  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
          67  +
    /* ServerBuilderGenerator.kt:295 */
   42     68   
    pub fn builder() -> crate::output::fractional_seconds_output::Builder {
          69  +
        /* ServerBuilderGenerator.kt:296 */
   43     70   
        crate::output::fractional_seconds_output::Builder::default()
          71  +
        /* ServerBuilderGenerator.kt:295 */
   44     72   
    }
          73  +
    /* ServerCodegenVisitor.kt:345 */
   45     74   
}
   46     75   
          76  +
/* StructureGenerator.kt:197 */
   47     77   
#[allow(missing_docs)] // documentation missing in model
          78  +
/* RustType.kt:516 */
   48     79   
#[derive(
   49     80   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   50     81   
)]
   51         -
pub struct DatetimeOffsetsOutput {
          82  +
pub /* StructureGenerator.kt:201 */ struct DatetimeOffsetsOutput {
          83  +
    /* StructureGenerator.kt:231 */
   52     84   
    #[allow(missing_docs)] // documentation missing in model
   53     85   
    pub datetime: ::std::option::Option<::aws_smithy_types::DateTime>,
          86  +
    /* StructureGenerator.kt:201 */
   54     87   
}
          88  +
/* StructureGenerator.kt:135 */
   55     89   
impl DatetimeOffsetsOutput {
          90  +
    /* StructureGenerator.kt:231 */
   56     91   
    #[allow(missing_docs)] // documentation missing in model
          92  +
                           /* StructureGenerator.kt:166 */
   57     93   
    pub fn datetime(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          94  +
        /* StructureGenerator.kt:170 */
   58     95   
        self.datetime.as_ref()
          96  +
        /* StructureGenerator.kt:166 */
   59     97   
    }
          98  +
    /* StructureGenerator.kt:135 */
   60     99   
}
         100  +
/* ServerCodegenVisitor.kt:345 */
   61    101   
impl DatetimeOffsetsOutput {
   62         -
    /// Creates a new builder-style object to manufacture [`DatetimeOffsetsOutput`](crate::output::DatetimeOffsetsOutput).
         102  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`DatetimeOffsetsOutput`](crate::output::DatetimeOffsetsOutput).
         103  +
    /* ServerBuilderGenerator.kt:295 */
   63    104   
    pub fn builder() -> crate::output::datetime_offsets_output::Builder {
         105  +
        /* ServerBuilderGenerator.kt:296 */
   64    106   
        crate::output::datetime_offsets_output::Builder::default()
         107  +
        /* ServerBuilderGenerator.kt:295 */
   65    108   
    }
         109  +
    /* ServerCodegenVisitor.kt:345 */
   66    110   
}
   67    111   
         112  +
/* StructureGenerator.kt:197 */
   68    113   
#[allow(missing_docs)] // documentation missing in model
         114  +
/* RustType.kt:516 */
   69    115   
#[derive(
   70    116   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   71    117   
)]
   72         -
pub struct HostWithPathOperationOutput {}
         118  +
pub /* StructureGenerator.kt:201 */ struct HostWithPathOperationOutput {/* StructureGenerator.kt:201 */}
         119  +
/* ServerCodegenVisitor.kt:345 */
   73    120   
impl HostWithPathOperationOutput {
   74         -
    /// Creates a new builder-style object to manufacture [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
         121  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
         122  +
    /* ServerBuilderGenerator.kt:295 */
   75    123   
    pub fn builder() -> crate::output::host_with_path_operation_output::Builder {
         124  +
        /* ServerBuilderGenerator.kt:296 */
   76    125   
        crate::output::host_with_path_operation_output::Builder::default()
         126  +
        /* ServerBuilderGenerator.kt:295 */
   77    127   
    }
         128  +
    /* ServerCodegenVisitor.kt:345 */
   78    129   
}
   79    130   
         131  +
/* StructureGenerator.kt:197 */
   80    132   
#[allow(missing_docs)] // documentation missing in model
         133  +
/* RustType.kt:516 */
   81    134   
#[derive(
   82    135   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   83    136   
)]
   84         -
pub struct EndpointWithHostLabelOperationOutput {}
         137  +
pub /* StructureGenerator.kt:201 */ struct EndpointWithHostLabelOperationOutput {/* StructureGenerator.kt:201 */}
         138  +
/* ServerCodegenVisitor.kt:345 */
   85    139   
impl EndpointWithHostLabelOperationOutput {
   86         -
    /// Creates a new builder-style object to manufacture [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
         140  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
         141  +
    /* ServerBuilderGenerator.kt:295 */
   87    142   
    pub fn builder() -> crate::output::endpoint_with_host_label_operation_output::Builder {
         143  +
        /* ServerBuilderGenerator.kt:296 */
   88    144   
        crate::output::endpoint_with_host_label_operation_output::Builder::default()
         145  +
        /* ServerBuilderGenerator.kt:295 */
   89    146   
    }
         147  +
    /* ServerCodegenVisitor.kt:345 */
   90    148   
}
   91    149   
         150  +
/* StructureGenerator.kt:197 */
   92    151   
#[allow(missing_docs)] // documentation missing in model
         152  +
/* RustType.kt:516 */
   93    153   
#[derive(
   94    154   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   95    155   
)]
   96         -
pub struct EndpointOperationOutput {}
         156  +
pub /* StructureGenerator.kt:201 */ struct EndpointOperationOutput {/* StructureGenerator.kt:201 */}
         157  +
/* ServerCodegenVisitor.kt:345 */
   97    158   
impl EndpointOperationOutput {
   98         -
    /// Creates a new builder-style object to manufacture [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
         159  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
         160  +
    /* ServerBuilderGenerator.kt:295 */
   99    161   
    pub fn builder() -> crate::output::endpoint_operation_output::Builder {
         162  +
        /* ServerBuilderGenerator.kt:296 */
  100    163   
        crate::output::endpoint_operation_output::Builder::default()
         164  +
        /* ServerBuilderGenerator.kt:295 */
  101    165   
    }
         166  +
    /* ServerCodegenVisitor.kt:345 */
  102    167   
}
  103    168   
  104         -
/// A shared structure that contains a single union member.
         169  +
/// /* StructureGenerator.kt:197 */A shared structure that contains a single union member.
         170  +
/* RustType.kt:516 */
  105    171   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  106         -
pub struct JsonUnionsOutput {
  107         -
    /// A union with a representative set of types for members.
         172  +
pub /* StructureGenerator.kt:201 */ struct JsonUnionsOutput {
         173  +
    /// /* StructureGenerator.kt:231 */A union with a representative set of types for members.
  108    174   
    pub contents: ::std::option::Option<crate::model::MyUnion>,
         175  +
    /* StructureGenerator.kt:201 */
  109    176   
}
         177  +
/* StructureGenerator.kt:135 */
  110    178   
impl JsonUnionsOutput {
  111         -
    /// A union with a representative set of types for members.
         179  +
    /// /* StructureGenerator.kt:231 */A union with a representative set of types for members.
         180  +
    /* StructureGenerator.kt:166 */
  112    181   
    pub fn contents(&self) -> ::std::option::Option<&crate::model::MyUnion> {
         182  +
        /* StructureGenerator.kt:170 */
  113    183   
        self.contents.as_ref()
         184  +
        /* StructureGenerator.kt:166 */
  114    185   
    }
         186  +
    /* StructureGenerator.kt:135 */
  115    187   
}
         188  +
/* ServerCodegenVisitor.kt:345 */
  116    189   
impl JsonUnionsOutput {
  117         -
    /// Creates a new builder-style object to manufacture [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
         190  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
         191  +
    /* ServerBuilderGenerator.kt:295 */
  118    192   
    pub fn builder() -> crate::output::json_unions_output::Builder {
         193  +
        /* ServerBuilderGenerator.kt:296 */
  119    194   
        crate::output::json_unions_output::Builder::default()
         195  +
        /* ServerBuilderGenerator.kt:295 */
  120    196   
    }
         197  +
    /* ServerCodegenVisitor.kt:345 */
  121    198   
}
  122    199   
         200  +
/* StructureGenerator.kt:197 */
  123    201   
#[allow(missing_docs)] // documentation missing in model
         202  +
/* RustType.kt:516 */
  124    203   
#[derive(
  125    204   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  126    205   
)]
  127         -
pub struct GreetingWithErrorsOutput {
         206  +
pub /* StructureGenerator.kt:201 */ struct GreetingWithErrorsOutput {
         207  +
    /* StructureGenerator.kt:231 */
  128    208   
    #[allow(missing_docs)] // documentation missing in model
  129    209   
    pub greeting: ::std::option::Option<::std::string::String>,
         210  +
    /* StructureGenerator.kt:201 */
  130    211   
}
         212  +
/* StructureGenerator.kt:135 */
  131    213   
impl GreetingWithErrorsOutput {
         214  +
    /* StructureGenerator.kt:231 */
  132    215   
    #[allow(missing_docs)] // documentation missing in model
         216  +
                           /* StructureGenerator.kt:166 */
  133    217   
    pub fn greeting(&self) -> ::std::option::Option<&str> {
         218  +
        /* StructureGenerator.kt:169 */
  134    219   
        self.greeting.as_deref()
         220  +
        /* StructureGenerator.kt:166 */
  135    221   
    }
         222  +
    /* StructureGenerator.kt:135 */
  136    223   
}
         224  +
/* ServerCodegenVisitor.kt:345 */
  137    225   
impl GreetingWithErrorsOutput {
  138         -
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
         226  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
         227  +
    /* ServerBuilderGenerator.kt:295 */
  139    228   
    pub fn builder() -> crate::output::greeting_with_errors_output::Builder {
         229  +
        /* ServerBuilderGenerator.kt:296 */
  140    230   
        crate::output::greeting_with_errors_output::Builder::default()
         231  +
        /* ServerBuilderGenerator.kt:295 */
  141    232   
    }
         233  +
    /* ServerCodegenVisitor.kt:345 */
  142    234   
}
  143    235   
         236  +
/* StructureGenerator.kt:197 */
  144    237   
#[allow(missing_docs)] // documentation missing in model
         238  +
/* RustType.kt:516 */
  145    239   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  146         -
pub struct SparseNullsOperationOutput {
         240  +
pub /* StructureGenerator.kt:201 */ struct SparseNullsOperationOutput {
         241  +
    /* StructureGenerator.kt:231 */
  147    242   
    #[allow(missing_docs)] // documentation missing in model
  148    243   
    pub sparse_string_list:
  149    244   
        ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
         245  +
    /* StructureGenerator.kt:231 */
  150    246   
    #[allow(missing_docs)] // documentation missing in model
  151    247   
    pub sparse_string_map: ::std::option::Option<
  152    248   
        ::std::collections::HashMap<
  153    249   
            ::std::string::String,
  154    250   
            ::std::option::Option<::std::string::String>,
  155    251   
        >,
  156    252   
    >,
         253  +
    /* StructureGenerator.kt:201 */
  157    254   
}
         255  +
/* StructureGenerator.kt:135 */
  158    256   
impl SparseNullsOperationOutput {
         257  +
    /* StructureGenerator.kt:231 */
  159    258   
    #[allow(missing_docs)] // documentation missing in model
         259  +
                           /* StructureGenerator.kt:166 */
  160    260   
    pub fn sparse_string_list(
  161    261   
        &self,
  162    262   
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
         263  +
        /* StructureGenerator.kt:169 */
  163    264   
        self.sparse_string_list.as_deref()
         265  +
        /* StructureGenerator.kt:166 */
  164    266   
    }
         267  +
    /* StructureGenerator.kt:231 */
  165    268   
    #[allow(missing_docs)] // documentation missing in model
         269  +
                           /* StructureGenerator.kt:166 */
  166    270   
    pub fn sparse_string_map(
  167    271   
        &self,
  168    272   
    ) -> ::std::option::Option<
  169    273   
        &::std::collections::HashMap<
  170    274   
            ::std::string::String,
  171    275   
            ::std::option::Option<::std::string::String>,
  172    276   
        >,
  173    277   
    > {
         278  +
        /* StructureGenerator.kt:170 */
  174    279   
        self.sparse_string_map.as_ref()
         280  +
        /* StructureGenerator.kt:166 */
  175    281   
    }
         282  +
    /* StructureGenerator.kt:135 */
  176    283   
}
         284  +
/* ServerCodegenVisitor.kt:345 */
  177    285   
impl SparseNullsOperationOutput {
  178         -
    /// Creates a new builder-style object to manufacture [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
         286  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
         287  +
    /* ServerBuilderGenerator.kt:295 */
  179    288   
    pub fn builder() -> crate::output::sparse_nulls_operation_output::Builder {
         289  +
        /* ServerBuilderGenerator.kt:296 */
  180    290   
        crate::output::sparse_nulls_operation_output::Builder::default()
         291  +
        /* ServerBuilderGenerator.kt:295 */
  181    292   
    }
         293  +
    /* ServerCodegenVisitor.kt:345 */
  182    294   
}
  183    295   
         296  +
/* StructureGenerator.kt:197 */
  184    297   
#[allow(missing_docs)] // documentation missing in model
         298  +
/* RustType.kt:516 */
  185    299   
#[derive(
  186    300   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  187    301   
)]
  188         -
pub struct NullOperationOutput {
         302  +
pub /* StructureGenerator.kt:201 */ struct NullOperationOutput {
         303  +
    /* StructureGenerator.kt:231 */
  189    304   
    #[allow(missing_docs)] // documentation missing in model
  190    305   
    pub string: ::std::option::Option<::std::string::String>,
         306  +
    /* StructureGenerator.kt:201 */
  191    307   
}
         308  +
/* StructureGenerator.kt:135 */
  192    309   
impl NullOperationOutput {
         310  +
    /* StructureGenerator.kt:231 */
  193    311   
    #[allow(missing_docs)] // documentation missing in model
         312  +
                           /* StructureGenerator.kt:166 */
  194    313   
    pub fn string(&self) -> ::std::option::Option<&str> {
         314  +
        /* StructureGenerator.kt:169 */
  195    315   
        self.string.as_deref()
         316  +
        /* StructureGenerator.kt:166 */
  196    317   
    }
         318  +
    /* StructureGenerator.kt:135 */
  197    319   
}
         320  +
/* ServerCodegenVisitor.kt:345 */
  198    321   
impl NullOperationOutput {
  199         -
    /// Creates a new builder-style object to manufacture [`NullOperationOutput`](crate::output::NullOperationOutput).
         322  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`NullOperationOutput`](crate::output::NullOperationOutput).
         323  +
    /* ServerBuilderGenerator.kt:295 */
  200    324   
    pub fn builder() -> crate::output::null_operation_output::Builder {
         325  +
        /* ServerBuilderGenerator.kt:296 */
  201    326   
        crate::output::null_operation_output::Builder::default()
         327  +
        /* ServerBuilderGenerator.kt:295 */
  202    328   
    }
         329  +
    /* ServerCodegenVisitor.kt:345 */
  203    330   
}
  204    331   
         332  +
/* StructureGenerator.kt:197 */
  205    333   
#[allow(missing_docs)] // documentation missing in model
         334  +
/* RustType.kt:516 */
  206    335   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  207         -
pub struct JsonEnumsOutput {
         336  +
pub /* StructureGenerator.kt:201 */ struct JsonEnumsOutput {
         337  +
    /* StructureGenerator.kt:231 */
  208    338   
    #[allow(missing_docs)] // documentation missing in model
  209    339   
    pub foo_enum1: ::std::option::Option<crate::model::FooEnum>,
         340  +
    /* StructureGenerator.kt:231 */
  210    341   
    #[allow(missing_docs)] // documentation missing in model
  211    342   
    pub foo_enum2: ::std::option::Option<crate::model::FooEnum>,
         343  +
    /* StructureGenerator.kt:231 */
  212    344   
    #[allow(missing_docs)] // documentation missing in model
  213    345   
    pub foo_enum3: ::std::option::Option<crate::model::FooEnum>,
         346  +
    /* StructureGenerator.kt:231 */
  214    347   
    #[allow(missing_docs)] // documentation missing in model
  215    348   
    pub foo_enum_list: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
         349  +
    /* StructureGenerator.kt:231 */
  216    350   
    #[allow(missing_docs)] // documentation missing in model
  217    351   
    pub foo_enum_set: ::std::option::Option<crate::model::FooEnumSet>,
         352  +
    /* StructureGenerator.kt:231 */
  218    353   
    #[allow(missing_docs)] // documentation missing in model
  219    354   
    pub foo_enum_map: ::std::option::Option<
  220    355   
        ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
  221    356   
    >,
         357  +
    /* StructureGenerator.kt:201 */
  222    358   
}
         359  +
/* StructureGenerator.kt:135 */
  223    360   
impl JsonEnumsOutput {
         361  +
    /* StructureGenerator.kt:231 */
  224    362   
    #[allow(missing_docs)] // documentation missing in model
         363  +
                           /* StructureGenerator.kt:166 */
  225    364   
    pub fn foo_enum1(&self) -> ::std::option::Option<&crate::model::FooEnum> {
         365  +
        /* StructureGenerator.kt:170 */
  226    366   
        self.foo_enum1.as_ref()
         367  +
        /* StructureGenerator.kt:166 */
  227    368   
    }
         369  +
    /* StructureGenerator.kt:231 */
  228    370   
    #[allow(missing_docs)] // documentation missing in model
         371  +
                           /* StructureGenerator.kt:166 */
  229    372   
    pub fn foo_enum2(&self) -> ::std::option::Option<&crate::model::FooEnum> {
         373  +
        /* StructureGenerator.kt:170 */
  230    374   
        self.foo_enum2.as_ref()
         375  +
        /* StructureGenerator.kt:166 */
  231    376   
    }
         377  +
    /* StructureGenerator.kt:231 */
  232    378   
    #[allow(missing_docs)] // documentation missing in model
         379  +
                           /* StructureGenerator.kt:166 */
  233    380   
    pub fn foo_enum3(&self) -> ::std::option::Option<&crate::model::FooEnum> {
         381  +
        /* StructureGenerator.kt:170 */
  234    382   
        self.foo_enum3.as_ref()
         383  +
        /* StructureGenerator.kt:166 */
  235    384   
    }
         385  +
    /* StructureGenerator.kt:231 */
  236    386   
    #[allow(missing_docs)] // documentation missing in model
         387  +
                           /* StructureGenerator.kt:166 */
  237    388   
    pub fn foo_enum_list(&self) -> ::std::option::Option<&[crate::model::FooEnum]> {
         389  +
        /* StructureGenerator.kt:169 */
  238    390   
        self.foo_enum_list.as_deref()
         391  +
        /* StructureGenerator.kt:166 */
  239    392   
    }
         393  +
    /* StructureGenerator.kt:231 */
  240    394   
    #[allow(missing_docs)] // documentation missing in model
         395  +
                           /* StructureGenerator.kt:166 */
  241    396   
    pub fn foo_enum_set(&self) -> ::std::option::Option<&crate::model::FooEnumSet> {
         397  +
        /* StructureGenerator.kt:170 */
  242    398   
        self.foo_enum_set.as_ref()
         399  +
        /* StructureGenerator.kt:166 */
  243    400   
    }
         401  +
    /* StructureGenerator.kt:231 */
  244    402   
    #[allow(missing_docs)] // documentation missing in model
         403  +
                           /* StructureGenerator.kt:166 */
  245    404   
    pub fn foo_enum_map(
  246    405   
        &self,
  247    406   
    ) -> ::std::option::Option<
  248    407   
        &::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
  249    408   
    > {
         409  +
        /* StructureGenerator.kt:170 */
  250    410   
        self.foo_enum_map.as_ref()
         411  +
        /* StructureGenerator.kt:166 */
  251    412   
    }
         413  +
    /* StructureGenerator.kt:135 */
  252    414   
}
         415  +
/* ServerCodegenVisitor.kt:345 */
  253    416   
impl JsonEnumsOutput {
  254         -
    /// Creates a new builder-style object to manufacture [`JsonEnumsOutput`](crate::output::JsonEnumsOutput).
         417  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`JsonEnumsOutput`](crate::output::JsonEnumsOutput).
         418  +
    /* ServerBuilderGenerator.kt:295 */
  255    419   
    pub fn builder() -> crate::output::json_enums_output::Builder {
         420  +
        /* ServerBuilderGenerator.kt:296 */
  256    421   
        crate::output::json_enums_output::Builder::default()
         422  +
        /* ServerBuilderGenerator.kt:295 */
  257    423   
    }
         424  +
    /* ServerCodegenVisitor.kt:345 */
  258    425   
}
  259    426   
         427  +
/* StructureGenerator.kt:197 */
  260    428   
#[allow(missing_docs)] // documentation missing in model
         429  +
/* RustType.kt:516 */
  261    430   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  262         -
pub struct PutAndGetInlineDocumentsOutput {
         431  +
pub /* StructureGenerator.kt:201 */ struct PutAndGetInlineDocumentsOutput {
         432  +
    /* StructureGenerator.kt:231 */
  263    433   
    #[allow(missing_docs)] // documentation missing in model
  264    434   
    pub inline_document: ::std::option::Option<::aws_smithy_types::Document>,
         435  +
    /* StructureGenerator.kt:201 */
  265    436   
}
         437  +
/* StructureGenerator.kt:135 */
  266    438   
impl PutAndGetInlineDocumentsOutput {
         439  +
    /* StructureGenerator.kt:231 */
  267    440   
    #[allow(missing_docs)] // documentation missing in model
         441  +
                           /* StructureGenerator.kt:166 */
  268    442   
    pub fn inline_document(&self) -> ::std::option::Option<&::aws_smithy_types::Document> {
         443  +
        /* StructureGenerator.kt:170 */
  269    444   
        self.inline_document.as_ref()
         445  +
        /* StructureGenerator.kt:166 */
  270    446   
    }
         447  +
    /* StructureGenerator.kt:135 */
  271    448   
}
         449  +
/* ServerCodegenVisitor.kt:345 */
  272    450   
impl PutAndGetInlineDocumentsOutput {
  273         -
    /// Creates a new builder-style object to manufacture [`PutAndGetInlineDocumentsOutput`](crate::output::PutAndGetInlineDocumentsOutput).
         451  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`PutAndGetInlineDocumentsOutput`](crate::output::PutAndGetInlineDocumentsOutput).
         452  +
    /* ServerBuilderGenerator.kt:295 */
  274    453   
    pub fn builder() -> crate::output::put_and_get_inline_documents_output::Builder {
         454  +
        /* ServerBuilderGenerator.kt:296 */
  275    455   
        crate::output::put_and_get_inline_documents_output::Builder::default()
         456  +
        /* ServerBuilderGenerator.kt:295 */
  276    457   
    }
         458  +
    /* ServerCodegenVisitor.kt:345 */
  277    459   
}
  278    460   
         461  +
/* StructureGenerator.kt:197 */
  279    462   
#[allow(missing_docs)] // documentation missing in model
         463  +
/* RustType.kt:516 */
  280    464   
#[derive(
  281    465   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  282    466   
)]
  283         -
pub struct OperationWithOptionalInputOutputOutput {
         467  +
pub /* StructureGenerator.kt:201 */ struct OperationWithOptionalInputOutputOutput {
         468  +
    /* StructureGenerator.kt:231 */
  284    469   
    #[allow(missing_docs)] // documentation missing in model
  285    470   
    pub value: ::std::option::Option<::std::string::String>,
         471  +
    /* StructureGenerator.kt:201 */
  286    472   
}
         473  +
/* StructureGenerator.kt:135 */
  287    474   
impl OperationWithOptionalInputOutputOutput {
         475  +
    /* StructureGenerator.kt:231 */
  288    476   
    #[allow(missing_docs)] // documentation missing in model
         477  +
                           /* StructureGenerator.kt:166 */
  289    478   
    pub fn value(&self) -> ::std::option::Option<&str> {
         479  +
        /* StructureGenerator.kt:169 */
  290    480   
        self.value.as_deref()
         481  +
        /* StructureGenerator.kt:166 */
  291    482   
    }
         483  +
    /* StructureGenerator.kt:135 */
  292    484   
}
         485  +
/* ServerCodegenVisitor.kt:345 */
  293    486   
impl OperationWithOptionalInputOutputOutput {
  294         -
    /// Creates a new builder-style object to manufacture [`OperationWithOptionalInputOutputOutput`](crate::output::OperationWithOptionalInputOutputOutput).
         487  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`OperationWithOptionalInputOutputOutput`](crate::output::OperationWithOptionalInputOutputOutput).
         488  +
    /* ServerBuilderGenerator.kt:295 */
  295    489   
    pub fn builder() -> crate::output::operation_with_optional_input_output_output::Builder {
         490  +
        /* ServerBuilderGenerator.kt:296 */
  296    491   
        crate::output::operation_with_optional_input_output_output::Builder::default()
         492  +
        /* ServerBuilderGenerator.kt:295 */
  297    493   
    }
         494  +
    /* ServerCodegenVisitor.kt:345 */
  298    495   
}
  299    496   
         497  +
/* StructureGenerator.kt:197 */
  300    498   
#[allow(missing_docs)] // documentation missing in model
         499  +
/* RustType.kt:516 */
  301    500   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  302         -
pub struct SimpleScalarPropertiesOutput {
         501  +
pub /* StructureGenerator.kt:201 */ struct SimpleScalarPropertiesOutput {
         502  +
    /* StructureGenerator.kt:231 */
  303    503   
    #[allow(missing_docs)] // documentation missing in model
  304    504   
    pub float_value: ::std::option::Option<f32>,
         505  +
    /* StructureGenerator.kt:231 */
  305    506   
    #[allow(missing_docs)] // documentation missing in model
  306    507   
    pub double_value: ::std::option::Option<f64>,
         508  +
    /* StructureGenerator.kt:201 */
  307    509   
}
         510  +
/* StructureGenerator.kt:135 */
  308    511   
impl SimpleScalarPropertiesOutput {
         512  +
    /* StructureGenerator.kt:231 */
  309    513   
    #[allow(missing_docs)] // documentation missing in model
         514  +
                           /* StructureGenerator.kt:166 */
  310    515   
    pub fn float_value(&self) -> ::std::option::Option<f32> {
         516  +
        /* StructureGenerator.kt:168 */
  311    517   
        self.float_value
         518  +
        /* StructureGenerator.kt:166 */
  312    519   
    }
         520  +
    /* StructureGenerator.kt:231 */
  313    521   
    #[allow(missing_docs)] // documentation missing in model
         522  +
                           /* StructureGenerator.kt:166 */
  314    523   
    pub fn double_value(&self) -> ::std::option::Option<f64> {
         524  +
        /* StructureGenerator.kt:168 */
  315    525   
        self.double_value
         526  +
        /* StructureGenerator.kt:166 */
  316    527   
    }
         528  +
    /* StructureGenerator.kt:135 */
  317    529   
}
         530  +
/* ServerCodegenVisitor.kt:345 */
  318    531   
impl SimpleScalarPropertiesOutput {
  319         -
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
         532  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
         533  +
    /* ServerBuilderGenerator.kt:295 */
  320    534   
    pub fn builder() -> crate::output::simple_scalar_properties_output::Builder {
         535  +
        /* ServerBuilderGenerator.kt:296 */
  321    536   
        crate::output::simple_scalar_properties_output::Builder::default()
         537  +
        /* ServerBuilderGenerator.kt:295 */
  322    538   
    }
         539  +
    /* ServerCodegenVisitor.kt:345 */
  323    540   
}
  324    541   
         542  +
/* StructureGenerator.kt:197 */
  325    543   
#[allow(missing_docs)] // documentation missing in model
         544  +
/* RustType.kt:516 */
  326    545   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  327         -
pub struct KitchenSinkOperationOutput {
         546  +
pub /* StructureGenerator.kt:201 */ struct KitchenSinkOperationOutput {
         547  +
    /* StructureGenerator.kt:231 */
  328    548   
    #[allow(missing_docs)] // documentation missing in model
  329    549   
    pub blob: ::std::option::Option<::aws_smithy_types::Blob>,
         550  +
    /* StructureGenerator.kt:231 */
  330    551   
    #[allow(missing_docs)] // documentation missing in model
  331    552   
    pub boolean: ::std::option::Option<bool>,
         553  +
    /* StructureGenerator.kt:231 */
  332    554   
    #[allow(missing_docs)] // documentation missing in model
  333    555   
    pub double: ::std::option::Option<f64>,
         556  +
    /* StructureGenerator.kt:231 */
  334    557   
    #[allow(missing_docs)] // documentation missing in model
  335    558   
    pub empty_struct: ::std::option::Option<crate::model::EmptyStruct>,
         559  +
    /* StructureGenerator.kt:231 */
  336    560   
    #[allow(missing_docs)] // documentation missing in model
  337    561   
    pub float: ::std::option::Option<f32>,
         562  +
    /* StructureGenerator.kt:231 */
  338    563   
    #[allow(missing_docs)] // documentation missing in model
  339    564   
    pub httpdate_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         565  +
    /* StructureGenerator.kt:231 */
  340    566   
    #[allow(missing_docs)] // documentation missing in model
  341    567   
    pub integer: ::std::option::Option<i32>,
         568  +
    /* StructureGenerator.kt:231 */
  342    569   
    #[allow(missing_docs)] // documentation missing in model
  343    570   
    pub iso8601_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         571  +
    /* StructureGenerator.kt:231 */
  344    572   
    #[allow(missing_docs)] // documentation missing in model
  345    573   
    pub json_value: ::std::option::Option<::std::string::String>,
         574  +
    /* StructureGenerator.kt:231 */
  346    575   
    #[allow(missing_docs)] // documentation missing in model
  347    576   
    pub list_of_lists:
  348    577   
        ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         578  +
    /* StructureGenerator.kt:231 */
  349    579   
    #[allow(missing_docs)] // documentation missing in model
  350    580   
    pub list_of_maps_of_strings: ::std::option::Option<
  351    581   
        ::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
  352    582   
    >,
         583  +
    /* StructureGenerator.kt:231 */
  353    584   
    #[allow(missing_docs)] // documentation missing in model
  354    585   
    pub list_of_strings: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         586  +
    /* StructureGenerator.kt:231 */
  355    587   
    #[allow(missing_docs)] // documentation missing in model
  356    588   
    pub list_of_structs: ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
         589  +
    /* StructureGenerator.kt:231 */
  357    590   
    #[allow(missing_docs)] // documentation missing in model
  358    591   
    pub long: ::std::option::Option<i64>,
         592  +
    /* StructureGenerator.kt:231 */
  359    593   
    #[allow(missing_docs)] // documentation missing in model
  360    594   
    pub map_of_lists_of_strings: ::std::option::Option<
  361    595   
        ::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>,
  362    596   
    >,
         597  +
    /* StructureGenerator.kt:231 */
  363    598   
    #[allow(missing_docs)] // documentation missing in model
  364    599   
    pub map_of_maps: ::std::option::Option<
  365    600   
        ::std::collections::HashMap<
  366    601   
            ::std::string::String,
  367    602   
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  368    603   
        >,
  369    604   
    >,
         605  +
    /* StructureGenerator.kt:231 */
  370    606   
    #[allow(missing_docs)] // documentation missing in model
  371    607   
    pub map_of_strings: ::std::option::Option<
  372    608   
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  373    609   
    >,
         610  +
    /* StructureGenerator.kt:231 */
  374    611   
    #[allow(missing_docs)] // documentation missing in model
  375    612   
    pub map_of_structs: ::std::option::Option<
  376    613   
        ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
  377    614   
    >,
         615  +
    /* StructureGenerator.kt:231 */
  378    616   
    #[allow(missing_docs)] // documentation missing in model
  379    617   
    pub recursive_list: ::std::option::Option<::std::vec::Vec<crate::model::KitchenSink>>,
         618  +
    /* StructureGenerator.kt:231 */
  380    619   
    #[allow(missing_docs)] // documentation missing in model
  381    620   
    pub recursive_map: ::std::option::Option<
  382    621   
        ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
  383    622   
    >,
         623  +
    /* StructureGenerator.kt:231 */
  384    624   
    #[allow(missing_docs)] // documentation missing in model
  385    625   
    pub recursive_struct: ::std::option::Option<::std::boxed::Box<crate::model::KitchenSink>>,
         626  +
    /* StructureGenerator.kt:231 */
  386    627   
    #[allow(missing_docs)] // documentation missing in model
  387    628   
    pub simple_struct: ::std::option::Option<crate::model::SimpleStruct>,
         629  +
    /* StructureGenerator.kt:231 */
  388    630   
    #[allow(missing_docs)] // documentation missing in model
  389    631   
    pub string: ::std::option::Option<::std::string::String>,
         632  +
    /* StructureGenerator.kt:231 */
  390    633   
    #[allow(missing_docs)] // documentation missing in model
  391    634   
    pub struct_with_json_name: ::std::option::Option<crate::model::StructWithJsonName>,
         635  +
    /* StructureGenerator.kt:231 */
  392    636   
    #[allow(missing_docs)] // documentation missing in model
  393    637   
    pub timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         638  +
    /* StructureGenerator.kt:231 */
  394    639   
    #[allow(missing_docs)] // documentation missing in model
  395    640   
    pub unix_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         641  +
    /* StructureGenerator.kt:201 */
  396    642   
}
         643  +
/* StructureGenerator.kt:135 */
  397    644   
impl KitchenSinkOperationOutput {
         645  +
    /* StructureGenerator.kt:231 */
  398    646   
    #[allow(missing_docs)] // documentation missing in model
         647  +
                           /* StructureGenerator.kt:166 */
  399    648   
    pub fn blob(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
         649  +
        /* StructureGenerator.kt:170 */
  400    650   
        self.blob.as_ref()
         651  +
        /* StructureGenerator.kt:166 */
  401    652   
    }
         653  +
    /* StructureGenerator.kt:231 */
  402    654   
    #[allow(missing_docs)] // documentation missing in model
         655  +
                           /* StructureGenerator.kt:166 */
  403    656   
    pub fn boolean(&self) -> ::std::option::Option<bool> {
         657  +
        /* StructureGenerator.kt:168 */
  404    658   
        self.boolean
         659  +
        /* StructureGenerator.kt:166 */
  405    660   
    }
         661  +
    /* StructureGenerator.kt:231 */
  406    662   
    #[allow(missing_docs)] // documentation missing in model
         663  +
                           /* StructureGenerator.kt:166 */
  407    664   
    pub fn double(&self) -> ::std::option::Option<f64> {
         665  +
        /* StructureGenerator.kt:168 */
  408    666   
        self.double
         667  +
        /* StructureGenerator.kt:166 */
  409    668   
    }
         669  +
    /* StructureGenerator.kt:231 */
  410    670   
    #[allow(missing_docs)] // documentation missing in model
         671  +
                           /* StructureGenerator.kt:166 */
  411    672   
    pub fn empty_struct(&self) -> ::std::option::Option<&crate::model::EmptyStruct> {
         673  +
        /* StructureGenerator.kt:170 */
  412    674   
        self.empty_struct.as_ref()
         675  +
        /* StructureGenerator.kt:166 */
  413    676   
    }
         677  +
    /* StructureGenerator.kt:231 */
  414    678   
    #[allow(missing_docs)] // documentation missing in model
         679  +
                           /* StructureGenerator.kt:166 */
  415    680   
    pub fn float(&self) -> ::std::option::Option<f32> {
         681  +
        /* StructureGenerator.kt:168 */
  416    682   
        self.float
         683  +
        /* StructureGenerator.kt:166 */
  417    684   
    }
         685  +
    /* StructureGenerator.kt:231 */
  418    686   
    #[allow(missing_docs)] // documentation missing in model
         687  +
                           /* StructureGenerator.kt:166 */
  419    688   
    pub fn httpdate_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         689  +
        /* StructureGenerator.kt:170 */
  420    690   
        self.httpdate_timestamp.as_ref()
         691  +
        /* StructureGenerator.kt:166 */
  421    692   
    }
         693  +
    /* StructureGenerator.kt:231 */
  422    694   
    #[allow(missing_docs)] // documentation missing in model
         695  +
                           /* StructureGenerator.kt:166 */
  423    696   
    pub fn integer(&self) -> ::std::option::Option<i32> {
         697  +
        /* StructureGenerator.kt:168 */
  424    698   
        self.integer
         699  +
        /* StructureGenerator.kt:166 */
  425    700   
    }
         701  +
    /* StructureGenerator.kt:231 */
  426    702   
    #[allow(missing_docs)] // documentation missing in model
         703  +
                           /* StructureGenerator.kt:166 */
  427    704   
    pub fn iso8601_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         705  +
        /* StructureGenerator.kt:170 */
  428    706   
        self.iso8601_timestamp.as_ref()
         707  +
        /* StructureGenerator.kt:166 */
  429    708   
    }
         709  +
    /* StructureGenerator.kt:231 */
  430    710   
    #[allow(missing_docs)] // documentation missing in model
         711  +
                           /* StructureGenerator.kt:166 */
  431    712   
    pub fn json_value(&self) -> ::std::option::Option<&str> {
         713  +
        /* StructureGenerator.kt:169 */
  432    714   
        self.json_value.as_deref()
         715  +
        /* StructureGenerator.kt:166 */
  433    716   
    }
         717  +
    /* StructureGenerator.kt:231 */
  434    718   
    #[allow(missing_docs)] // documentation missing in model
         719  +
                           /* StructureGenerator.kt:166 */
  435    720   
    pub fn list_of_lists(
  436    721   
        &self,
  437    722   
    ) -> ::std::option::Option<&[::std::vec::Vec<::std::string::String>]> {
         723  +
        /* StructureGenerator.kt:169 */
  438    724   
        self.list_of_lists.as_deref()
         725  +
        /* StructureGenerator.kt:166 */
  439    726   
    }
         727  +
    /* StructureGenerator.kt:231 */
  440    728   
    #[allow(missing_docs)] // documentation missing in model
         729  +
                           /* StructureGenerator.kt:166 */
  441    730   
    pub fn list_of_maps_of_strings(
  442    731   
        &self,
  443    732   
    ) -> ::std::option::Option<
  444    733   
        &[::std::collections::HashMap<::std::string::String, ::std::string::String>],
  445    734   
    > {
         735  +
        /* StructureGenerator.kt:169 */
  446    736   
        self.list_of_maps_of_strings.as_deref()
         737  +
        /* StructureGenerator.kt:166 */
  447    738   
    }
         739  +
    /* StructureGenerator.kt:231 */
  448    740   
    #[allow(missing_docs)] // documentation missing in model
         741  +
                           /* StructureGenerator.kt:166 */
  449    742   
    pub fn list_of_strings(&self) -> ::std::option::Option<&[::std::string::String]> {
         743  +
        /* StructureGenerator.kt:169 */
  450    744   
        self.list_of_strings.as_deref()
         745  +
        /* StructureGenerator.kt:166 */
  451    746   
    }
         747  +
    /* StructureGenerator.kt:231 */
  452    748   
    #[allow(missing_docs)] // documentation missing in model
         749  +
                           /* StructureGenerator.kt:166 */
  453    750   
    pub fn list_of_structs(&self) -> ::std::option::Option<&[crate::model::SimpleStruct]> {
         751  +
        /* StructureGenerator.kt:169 */
  454    752   
        self.list_of_structs.as_deref()
         753  +
        /* StructureGenerator.kt:166 */
  455    754   
    }
         755  +
    /* StructureGenerator.kt:231 */
  456    756   
    #[allow(missing_docs)] // documentation missing in model
         757  +
                           /* StructureGenerator.kt:166 */
  457    758   
    pub fn long(&self) -> ::std::option::Option<i64> {
         759  +
        /* StructureGenerator.kt:168 */
  458    760   
        self.long
         761  +
        /* StructureGenerator.kt:166 */
  459    762   
    }
         763  +
    /* StructureGenerator.kt:231 */
  460    764   
    #[allow(missing_docs)] // documentation missing in model
         765  +
                           /* StructureGenerator.kt:166 */
  461    766   
    pub fn map_of_lists_of_strings(
  462    767   
        &self,
  463    768   
    ) -> ::std::option::Option<
  464    769   
        &::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>,
  465    770   
    > {
         771  +
        /* StructureGenerator.kt:170 */
  466    772   
        self.map_of_lists_of_strings.as_ref()
         773  +
        /* StructureGenerator.kt:166 */
  467    774   
    }
         775  +
    /* StructureGenerator.kt:231 */
  468    776   
    #[allow(missing_docs)] // documentation missing in model
         777  +
                           /* StructureGenerator.kt:166 */
  469    778   
    pub fn map_of_maps(
  470    779   
        &self,
  471    780   
    ) -> ::std::option::Option<
  472    781   
        &::std::collections::HashMap<
  473    782   
            ::std::string::String,
  474    783   
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  475    784   
        >,
  476    785   
    > {
         786  +
        /* StructureGenerator.kt:170 */
  477    787   
        self.map_of_maps.as_ref()
         788  +
        /* StructureGenerator.kt:166 */
  478    789   
    }
         790  +
    /* StructureGenerator.kt:231 */
  479    791   
    #[allow(missing_docs)] // documentation missing in model
         792  +
                           /* StructureGenerator.kt:166 */
  480    793   
    pub fn map_of_strings(
  481    794   
        &self,
  482    795   
    ) -> ::std::option::Option<
  483    796   
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
  484    797   
    > {
         798  +
        /* StructureGenerator.kt:170 */
  485    799   
        self.map_of_strings.as_ref()
         800  +
        /* StructureGenerator.kt:166 */
  486    801   
    }
         802  +
    /* StructureGenerator.kt:231 */
  487    803   
    #[allow(missing_docs)] // documentation missing in model
         804  +
                           /* StructureGenerator.kt:166 */
  488    805   
    pub fn map_of_structs(
  489    806   
        &self,
  490    807   
    ) -> ::std::option::Option<
  491    808   
        &::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
  492    809   
    > {
         810  +
        /* StructureGenerator.kt:170 */
  493    811   
        self.map_of_structs.as_ref()
         812  +
        /* StructureGenerator.kt:166 */
  494    813   
    }
         814  +
    /* StructureGenerator.kt:231 */
  495    815   
    #[allow(missing_docs)] // documentation missing in model
         816  +
                           /* StructureGenerator.kt:166 */
  496    817   
    pub fn recursive_list(&self) -> ::std::option::Option<&[crate::model::KitchenSink]> {
         818  +
        /* StructureGenerator.kt:169 */
  497    819   
        self.recursive_list.as_deref()
         820  +
        /* StructureGenerator.kt:166 */
  498    821   
    }
         822  +
    /* StructureGenerator.kt:231 */
  499    823   
    #[allow(missing_docs)] // documentation missing in model
         824  +
                           /* StructureGenerator.kt:166 */
  500    825   
    pub fn recursive_map(
  501    826   
        &self,
  502    827   
    ) -> ::std::option::Option<
  503    828   
        &::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
  504    829   
    > {
         830  +
        /* StructureGenerator.kt:170 */
  505    831   
        self.recursive_map.as_ref()
         832  +
        /* StructureGenerator.kt:166 */
  506    833   
    }
         834  +
    /* StructureGenerator.kt:231 */
  507    835   
    #[allow(missing_docs)] // documentation missing in model
         836  +
                           /* StructureGenerator.kt:166 */
  508    837   
    pub fn recursive_struct(&self) -> ::std::option::Option<&crate::model::KitchenSink> {
         838  +
        /* StructureGenerator.kt:169 */
  509    839   
        self.recursive_struct.as_deref()
         840  +
        /* StructureGenerator.kt:166 */
  510    841   
    }
         842  +
    /* StructureGenerator.kt:231 */
  511    843   
    #[allow(missing_docs)] // documentation missing in model
         844  +
                           /* StructureGenerator.kt:166 */
  512    845   
    pub fn simple_struct(&self) -> ::std::option::Option<&crate::model::SimpleStruct> {
         846  +
        /* StructureGenerator.kt:170 */
  513    847   
        self.simple_struct.as_ref()
         848  +
        /* StructureGenerator.kt:166 */
  514    849   
    }
         850  +
    /* StructureGenerator.kt:231 */
  515    851   
    #[allow(missing_docs)] // documentation missing in model
         852  +
                           /* StructureGenerator.kt:166 */
  516    853   
    pub fn string(&self) -> ::std::option::Option<&str> {
         854  +
        /* StructureGenerator.kt:169 */
  517    855   
        self.string.as_deref()
         856  +
        /* StructureGenerator.kt:166 */
  518    857   
    }
         858  +
    /* StructureGenerator.kt:231 */
  519    859   
    #[allow(missing_docs)] // documentation missing in model
         860  +
                           /* StructureGenerator.kt:166 */
  520    861   
    pub fn struct_with_json_name(
  521    862   
        &self,
  522    863   
    ) -> ::std::option::Option<&crate::model::StructWithJsonName> {
         864  +
        /* StructureGenerator.kt:170 */
  523    865   
        self.struct_with_json_name.as_ref()
         866  +
        /* StructureGenerator.kt:166 */
  524    867   
    }
         868  +
    /* StructureGenerator.kt:231 */
  525    869   
    #[allow(missing_docs)] // documentation missing in model
         870  +
                           /* StructureGenerator.kt:166 */
  526    871   
    pub fn timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         872  +
        /* StructureGenerator.kt:170 */
  527    873   
        self.timestamp.as_ref()
         874  +
        /* StructureGenerator.kt:166 */
  528    875   
    }
         876  +
    /* StructureGenerator.kt:231 */
  529    877   
    #[allow(missing_docs)] // documentation missing in model
         878  +
                           /* StructureGenerator.kt:166 */
  530    879   
    pub fn unix_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         880  +
        /* StructureGenerator.kt:170 */
  531    881   
        self.unix_timestamp.as_ref()
         882  +
        /* StructureGenerator.kt:166 */
  532    883   
    }
         884  +
    /* StructureGenerator.kt:135 */
  533    885   
}
         886  +
/* ServerCodegenVisitor.kt:345 */
  534    887   
impl KitchenSinkOperationOutput {
  535         -
    /// Creates a new builder-style object to manufacture [`KitchenSinkOperationOutput`](crate::output::KitchenSinkOperationOutput).
         888  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`KitchenSinkOperationOutput`](crate::output::KitchenSinkOperationOutput).
         889  +
    /* ServerBuilderGenerator.kt:295 */
  536    890   
    pub fn builder() -> crate::output::kitchen_sink_operation_output::Builder {
         891  +
        /* ServerBuilderGenerator.kt:296 */
  537    892   
        crate::output::kitchen_sink_operation_output::Builder::default()
         893  +
        /* ServerBuilderGenerator.kt:295 */
  538    894   
    }
         895  +
    /* ServerCodegenVisitor.kt:345 */
  539    896   
}
  540    897   
         898  +
/* StructureGenerator.kt:197 */
  541    899   
#[allow(missing_docs)] // documentation missing in model
         900  +
/* RustType.kt:516 */
  542    901   
#[derive(
  543    902   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  544    903   
)]
  545         -
pub struct EmptyOperationOutput {}
         904  +
pub /* StructureGenerator.kt:201 */ struct EmptyOperationOutput {/* StructureGenerator.kt:201 */}
         905  +
/* ServerCodegenVisitor.kt:345 */
  546    906   
impl EmptyOperationOutput {
  547         -
    /// Creates a new builder-style object to manufacture [`EmptyOperationOutput`](crate::output::EmptyOperationOutput).
         907  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`EmptyOperationOutput`](crate::output::EmptyOperationOutput).
         908  +
    /* ServerBuilderGenerator.kt:295 */
  548    909   
    pub fn builder() -> crate::output::empty_operation_output::Builder {
         910  +
        /* ServerBuilderGenerator.kt:296 */
  549    911   
        crate::output::empty_operation_output::Builder::default()
         912  +
        /* ServerBuilderGenerator.kt:295 */
  550    913   
    }
         914  +
    /* ServerCodegenVisitor.kt:345 */
  551    915   
}
  552         -
/// See [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
         916  +
/// /* ServerBuilderGenerator.kt:171 */See [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
  553    917   
pub mod content_type_parameters_output {
  554    918   
         919  +
    /* ServerBuilderGenerator.kt:461 */
  555    920   
    impl ::std::convert::From<Builder> for crate::output::ContentTypeParametersOutput {
  556    921   
        fn from(builder: Builder) -> Self {
  557    922   
            builder.build()
  558    923   
        }
  559    924   
    }
  560         -
    /// A builder for [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
         925  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
         926  +
    /* RustType.kt:516 */
  561    927   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  562         -
    pub struct Builder {}
         928  +
    /* ServerBuilderGenerator.kt:211 */
         929  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
         930  +
    /* ServerBuilderGenerator.kt:215 */
  563    931   
    impl Builder {
  564         -
        /// Consumes the builder and constructs a [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
         932  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ContentTypeParametersOutput`](crate::output::ContentTypeParametersOutput).
         933  +
        /* ServerBuilderGenerator.kt:271 */
  565    934   
        pub fn build(self) -> crate::output::ContentTypeParametersOutput {
  566    935   
            self.build_enforcing_all_constraints()
  567    936   
        }
         937  +
        /* ServerBuilderGenerator.kt:283 */
  568    938   
        fn build_enforcing_all_constraints(self) -> crate::output::ContentTypeParametersOutput {
  569         -
            crate::output::ContentTypeParametersOutput {}
         939  +
            /* ServerBuilderGenerator.kt:542 */
         940  +
            crate::output::ContentTypeParametersOutput {
         941  +
            /* ServerBuilderGenerator.kt:542 */}
         942  +
            /* ServerBuilderGenerator.kt:283 */
  570    943   
        }
         944  +
        /* ServerBuilderGenerator.kt:215 */
  571    945   
    }
         946  +
         947  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  572    948   
}
  573         -
/// See [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
         949  +
/// /* ServerBuilderGenerator.kt:171 */See [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
  574    950   
pub mod put_with_content_encoding_output {
  575    951   
         952  +
    /* ServerBuilderGenerator.kt:461 */
  576    953   
    impl ::std::convert::From<Builder> for crate::output::PutWithContentEncodingOutput {
  577    954   
        fn from(builder: Builder) -> Self {
  578    955   
            builder.build()
  579    956   
        }
  580    957   
    }
  581         -
    /// A builder for [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
         958  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
         959  +
    /* RustType.kt:516 */
  582    960   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  583         -
    pub struct Builder {}
         961  +
    /* ServerBuilderGenerator.kt:211 */
         962  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
         963  +
    /* ServerBuilderGenerator.kt:215 */
  584    964   
    impl Builder {
  585         -
        /// Consumes the builder and constructs a [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
         965  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`PutWithContentEncodingOutput`](crate::output::PutWithContentEncodingOutput).
         966  +
        /* ServerBuilderGenerator.kt:271 */
  586    967   
        pub fn build(self) -> crate::output::PutWithContentEncodingOutput {
  587    968   
            self.build_enforcing_all_constraints()
  588    969   
        }
         970  +
        /* ServerBuilderGenerator.kt:283 */
  589    971   
        fn build_enforcing_all_constraints(self) -> crate::output::PutWithContentEncodingOutput {
  590         -
            crate::output::PutWithContentEncodingOutput {}
         972  +
            /* ServerBuilderGenerator.kt:542 */
         973  +
            crate::output::PutWithContentEncodingOutput {
         974  +
            /* ServerBuilderGenerator.kt:542 */}
         975  +
            /* ServerBuilderGenerator.kt:283 */
  591    976   
        }
         977  +
        /* ServerBuilderGenerator.kt:215 */
  592    978   
    }
         979  +
         980  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  593    981   
}
  594         -
/// See [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
         982  +
/// /* ServerBuilderGenerator.kt:171 */See [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
  595    983   
pub mod fractional_seconds_output {
  596    984   
         985  +
    /* ServerBuilderGenerator.kt:461 */
  597    986   
    impl ::std::convert::From<Builder> for crate::output::FractionalSecondsOutput {
  598    987   
        fn from(builder: Builder) -> Self {
  599    988   
            builder.build()
  600    989   
        }
  601    990   
    }
  602         -
    /// A builder for [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
         991  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
         992  +
    /* RustType.kt:516 */
  603    993   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         994  +
    /* ServerBuilderGenerator.kt:211 */
  604    995   
    pub struct Builder {
         996  +
        /* ServerBuilderGenerator.kt:308 */
  605    997   
        pub(crate) datetime: ::std::option::Option<::aws_smithy_types::DateTime>,
         998  +
        /* ServerBuilderGenerator.kt:211 */
  606    999   
    }
        1000  +
    /* ServerBuilderGenerator.kt:215 */
  607   1001   
    impl Builder {
        1002  +
        /* ServerBuilderGenerator.kt:331 */
  608   1003   
        #[allow(missing_docs)] // documentation missing in model
        1004  +
                               /* ServerBuilderGenerator.kt:343 */
  609   1005   
        pub fn datetime(
  610   1006   
            mut self,
  611   1007   
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
  612   1008   
        ) -> Self {
  613         -
            self.datetime = input;
        1009  +
            /* ServerBuilderGenerator.kt:344 */
        1010  +
            self.datetime =
        1011  +
                /* ServerBuilderGenerator.kt:376 */input
        1012  +
            /* ServerBuilderGenerator.kt:344 */;
  614   1013   
            self
        1014  +
            /* ServerBuilderGenerator.kt:343 */
  615   1015   
        }
  616         -
        /// Consumes the builder and constructs a [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
        1016  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
        1017  +
        /* ServerBuilderGenerator.kt:271 */
  617   1018   
        pub fn build(self) -> crate::output::FractionalSecondsOutput {
  618   1019   
            self.build_enforcing_all_constraints()
  619   1020   
        }
        1021  +
        /* ServerBuilderGenerator.kt:283 */
  620   1022   
        fn build_enforcing_all_constraints(self) -> crate::output::FractionalSecondsOutput {
        1023  +
            /* ServerBuilderGenerator.kt:542 */
  621   1024   
            crate::output::FractionalSecondsOutput {
        1025  +
                /* ServerBuilderGenerator.kt:546 */
  622   1026   
                datetime: self.datetime,
        1027  +
                /* ServerBuilderGenerator.kt:542 */
  623   1028   
            }
        1029  +
            /* ServerBuilderGenerator.kt:283 */
  624   1030   
        }
        1031  +
        /* ServerBuilderGenerator.kt:215 */
  625   1032   
    }
        1033  +
        1034  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  626   1035   
}
  627         -
/// See [`DatetimeOffsetsOutput`](crate::output::DatetimeOffsetsOutput).
        1036  +
/// /* ServerBuilderGenerator.kt:171 */See [`DatetimeOffsetsOutput`](crate::output::DatetimeOffsetsOutput).
  628   1037   
pub mod datetime_offsets_output {
  629   1038   
        1039  +
    /* ServerBuilderGenerator.kt:461 */
  630   1040   
    impl ::std::convert::From<Builder> for crate::output::DatetimeOffsetsOutput {
  631   1041   
        fn from(builder: Builder) -> Self {
  632   1042   
            builder.build()
  633   1043   
        }
  634   1044   
    }
  635         -
    /// A builder for [`DatetimeOffsetsOutput`](crate::output::DatetimeOffsetsOutput).
        1045  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`DatetimeOffsetsOutput`](crate::output::DatetimeOffsetsOutput).
        1046  +
    /* RustType.kt:516 */
  636   1047   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1048  +
    /* ServerBuilderGenerator.kt:211 */
  637   1049   
    pub struct Builder {
        1050  +
        /* ServerBuilderGenerator.kt:308 */
  638   1051   
        pub(crate) datetime: ::std::option::Option<::aws_smithy_types::DateTime>,
        1052  +
        /* ServerBuilderGenerator.kt:211 */
  639   1053   
    }
        1054  +
    /* ServerBuilderGenerator.kt:215 */
  640   1055   
    impl Builder {
        1056  +
        /* ServerBuilderGenerator.kt:331 */
  641   1057   
        #[allow(missing_docs)] // documentation missing in model
        1058  +
                               /* ServerBuilderGenerator.kt:343 */
  642   1059   
        pub fn datetime(
  643   1060   
            mut self,
  644   1061   
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
  645   1062   
        ) -> Self {
  646         -
            self.datetime = input;
        1063  +
            /* ServerBuilderGenerator.kt:344 */
        1064  +
            self.datetime =
        1065  +
                /* ServerBuilderGenerator.kt:376 */input
        1066  +
            /* ServerBuilderGenerator.kt:344 */;
  647   1067   
            self
        1068  +
            /* ServerBuilderGenerator.kt:343 */
  648   1069   
        }
  649         -
        /// Consumes the builder and constructs a [`DatetimeOffsetsOutput`](crate::output::DatetimeOffsetsOutput).
        1070  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`DatetimeOffsetsOutput`](crate::output::DatetimeOffsetsOutput).
        1071  +
        /* ServerBuilderGenerator.kt:271 */
  650   1072   
        pub fn build(self) -> crate::output::DatetimeOffsetsOutput {
  651   1073   
            self.build_enforcing_all_constraints()
  652   1074   
        }
        1075  +
        /* ServerBuilderGenerator.kt:283 */
  653   1076   
        fn build_enforcing_all_constraints(self) -> crate::output::DatetimeOffsetsOutput {
        1077  +
            /* ServerBuilderGenerator.kt:542 */
  654   1078   
            crate::output::DatetimeOffsetsOutput {
        1079  +
                /* ServerBuilderGenerator.kt:546 */
  655   1080   
                datetime: self.datetime,
        1081  +
                /* ServerBuilderGenerator.kt:542 */
  656   1082   
            }
        1083  +
            /* ServerBuilderGenerator.kt:283 */
  657   1084   
        }
        1085  +
        /* ServerBuilderGenerator.kt:215 */
  658   1086   
    }
        1087  +
        1088  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  659   1089   
}
  660         -
/// See [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
        1090  +
/// /* ServerBuilderGenerator.kt:171 */See [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
  661   1091   
pub mod host_with_path_operation_output {
  662   1092   
        1093  +
    /* ServerBuilderGenerator.kt:461 */
  663   1094   
    impl ::std::convert::From<Builder> for crate::output::HostWithPathOperationOutput {
  664   1095   
        fn from(builder: Builder) -> Self {
  665   1096   
            builder.build()
  666   1097   
        }
  667   1098   
    }
  668         -
    /// A builder for [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
        1099  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
        1100  +
    /* RustType.kt:516 */
  669   1101   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  670         -
    pub struct Builder {}
        1102  +
    /* ServerBuilderGenerator.kt:211 */
        1103  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
        1104  +
    /* ServerBuilderGenerator.kt:215 */
  671   1105   
    impl Builder {
  672         -
        /// Consumes the builder and constructs a [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
        1106  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`HostWithPathOperationOutput`](crate::output::HostWithPathOperationOutput).
        1107  +
        /* ServerBuilderGenerator.kt:271 */
  673   1108   
        pub fn build(self) -> crate::output::HostWithPathOperationOutput {
  674   1109   
            self.build_enforcing_all_constraints()
  675   1110   
        }
        1111  +
        /* ServerBuilderGenerator.kt:283 */
  676   1112   
        fn build_enforcing_all_constraints(self) -> crate::output::HostWithPathOperationOutput {
  677         -
            crate::output::HostWithPathOperationOutput {}
        1113  +
            /* ServerBuilderGenerator.kt:542 */
        1114  +
            crate::output::HostWithPathOperationOutput {
        1115  +
            /* ServerBuilderGenerator.kt:542 */}
        1116  +
            /* ServerBuilderGenerator.kt:283 */
  678   1117   
        }
        1118  +
        /* ServerBuilderGenerator.kt:215 */
  679   1119   
    }
        1120  +
        1121  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  680   1122   
}
  681         -
/// See [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
        1123  +
/// /* ServerBuilderGenerator.kt:171 */See [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
  682   1124   
pub mod endpoint_with_host_label_operation_output {
  683   1125   
        1126  +
    /* ServerBuilderGenerator.kt:461 */
  684   1127   
    impl ::std::convert::From<Builder> for crate::output::EndpointWithHostLabelOperationOutput {
  685   1128   
        fn from(builder: Builder) -> Self {
  686   1129   
            builder.build()
  687   1130   
        }
  688   1131   
    }
  689         -
    /// A builder for [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
        1132  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
        1133  +
    /* RustType.kt:516 */
  690   1134   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  691         -
    pub struct Builder {}
        1135  +
    /* ServerBuilderGenerator.kt:211 */
        1136  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
        1137  +
    /* ServerBuilderGenerator.kt:215 */
  692   1138   
    impl Builder {
  693         -
        /// Consumes the builder and constructs a [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
        1139  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`EndpointWithHostLabelOperationOutput`](crate::output::EndpointWithHostLabelOperationOutput).
        1140  +
        /* ServerBuilderGenerator.kt:271 */
  694   1141   
        pub fn build(self) -> crate::output::EndpointWithHostLabelOperationOutput {
  695   1142   
            self.build_enforcing_all_constraints()
  696   1143   
        }
        1144  +
        /* ServerBuilderGenerator.kt:283 */
  697   1145   
        fn build_enforcing_all_constraints(
  698   1146   
            self,
  699   1147   
        ) -> crate::output::EndpointWithHostLabelOperationOutput {
  700         -
            crate::output::EndpointWithHostLabelOperationOutput {}
        1148  +
            /* ServerBuilderGenerator.kt:542 */
        1149  +
            crate::output::EndpointWithHostLabelOperationOutput {
        1150  +
            /* ServerBuilderGenerator.kt:542 */}
        1151  +
            /* ServerBuilderGenerator.kt:283 */
  701   1152   
        }
        1153  +
        /* ServerBuilderGenerator.kt:215 */
  702   1154   
    }
        1155  +
        1156  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  703   1157   
}
  704         -
/// See [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1158  +
/// /* ServerBuilderGenerator.kt:171 */See [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
  705   1159   
pub mod endpoint_operation_output {
  706   1160   
        1161  +
    /* ServerBuilderGenerator.kt:461 */
  707   1162   
    impl ::std::convert::From<Builder> for crate::output::EndpointOperationOutput {
  708   1163   
        fn from(builder: Builder) -> Self {
  709   1164   
            builder.build()
  710   1165   
        }
  711   1166   
    }
  712         -
    /// A builder for [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1167  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1168  +
    /* RustType.kt:516 */
  713   1169   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  714         -
    pub struct Builder {}
        1170  +
    /* ServerBuilderGenerator.kt:211 */
        1171  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
        1172  +
    /* ServerBuilderGenerator.kt:215 */
  715   1173   
    impl Builder {
  716         -
        /// Consumes the builder and constructs a [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1174  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1175  +
        /* ServerBuilderGenerator.kt:271 */
  717   1176   
        pub fn build(self) -> crate::output::EndpointOperationOutput {
  718   1177   
            self.build_enforcing_all_constraints()
  719   1178   
        }
        1179  +
        /* ServerBuilderGenerator.kt:283 */
  720   1180   
        fn build_enforcing_all_constraints(self) -> crate::output::EndpointOperationOutput {
  721         -
            crate::output::EndpointOperationOutput {}
        1181  +
            /* ServerBuilderGenerator.kt:542 */
        1182  +
            crate::output::EndpointOperationOutput {
        1183  +
            /* ServerBuilderGenerator.kt:542 */}
        1184  +
            /* ServerBuilderGenerator.kt:283 */
  722   1185   
        }
        1186  +
        /* ServerBuilderGenerator.kt:215 */
  723   1187   
    }
        1188  +
        1189  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  724   1190   
}
  725         -
/// See [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1191  +
/// /* ServerBuilderGenerator.kt:171 */See [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
  726   1192   
pub mod json_unions_output {
  727   1193   
        1194  +
    /* ServerBuilderGenerator.kt:461 */
  728   1195   
    impl ::std::convert::From<Builder> for crate::output::JsonUnionsOutput {
  729   1196   
        fn from(builder: Builder) -> Self {
  730   1197   
            builder.build()
  731   1198   
        }
  732   1199   
    }
  733         -
    /// A builder for [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1200  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1201  +
    /* RustType.kt:516 */
  734   1202   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1203  +
    /* ServerBuilderGenerator.kt:211 */
  735   1204   
    pub struct Builder {
        1205  +
        /* ServerBuilderGenerator.kt:308 */
  736   1206   
        pub(crate) contents: ::std::option::Option<crate::model::MyUnion>,
        1207  +
        /* ServerBuilderGenerator.kt:211 */
  737   1208   
    }
        1209  +
    /* ServerBuilderGenerator.kt:215 */
  738   1210   
    impl Builder {
  739         -
        /// A union with a representative set of types for members.
        1211  +
        /// /* ServerBuilderGenerator.kt:331 */A union with a representative set of types for members.
        1212  +
        /* ServerBuilderGenerator.kt:343 */
  740   1213   
        pub fn contents(mut self, input: ::std::option::Option<crate::model::MyUnion>) -> Self {
  741         -
            self.contents = input;
        1214  +
            /* ServerBuilderGenerator.kt:344 */
        1215  +
            self.contents =
        1216  +
                /* ServerBuilderGenerator.kt:376 */input
        1217  +
            /* ServerBuilderGenerator.kt:344 */;
  742   1218   
            self
        1219  +
            /* ServerBuilderGenerator.kt:343 */
  743   1220   
        }
  744         -
        /// Consumes the builder and constructs a [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1221  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1222  +
        /* ServerBuilderGenerator.kt:271 */
  745   1223   
        pub fn build(self) -> crate::output::JsonUnionsOutput {
  746   1224   
            self.build_enforcing_all_constraints()
  747   1225   
        }
        1226  +
        /* ServerBuilderGenerator.kt:283 */
  748   1227   
        fn build_enforcing_all_constraints(self) -> crate::output::JsonUnionsOutput {
        1228  +
            /* ServerBuilderGenerator.kt:542 */
  749   1229   
            crate::output::JsonUnionsOutput {
        1230  +
                /* ServerBuilderGenerator.kt:546 */
  750   1231   
                contents: self.contents,
        1232  +
                /* ServerBuilderGenerator.kt:542 */
  751   1233   
            }
        1234  +
            /* ServerBuilderGenerator.kt:283 */
  752   1235   
        }
        1236  +
        /* ServerBuilderGenerator.kt:215 */
  753   1237   
    }
        1238  +
        1239  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  754   1240   
}
  755         -
/// See [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1241  +
/// /* ServerBuilderGenerator.kt:171 */See [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
  756   1242   
pub mod greeting_with_errors_output {
  757   1243   
        1244  +
    /* ServerBuilderGenerator.kt:461 */
  758   1245   
    impl ::std::convert::From<Builder> for crate::output::GreetingWithErrorsOutput {
  759   1246   
        fn from(builder: Builder) -> Self {
  760   1247   
            builder.build()
  761   1248   
        }
  762   1249   
    }
  763         -
    /// A builder for [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1250  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1251  +
    /* RustType.kt:516 */
  764   1252   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1253  +
    /* ServerBuilderGenerator.kt:211 */
  765   1254   
    pub struct Builder {
        1255  +
        /* ServerBuilderGenerator.kt:308 */
  766   1256   
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        1257  +
        /* ServerBuilderGenerator.kt:211 */
  767   1258   
    }
        1259  +
    /* ServerBuilderGenerator.kt:215 */
  768   1260   
    impl Builder {
        1261  +
        /* ServerBuilderGenerator.kt:331 */
  769   1262   
        #[allow(missing_docs)] // documentation missing in model
        1263  +
                               /* ServerBuilderGenerator.kt:343 */
  770   1264   
        pub fn greeting(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  771         -
            self.greeting = input;
        1265  +
            /* ServerBuilderGenerator.kt:344 */
        1266  +
            self.greeting =
        1267  +
                /* ServerBuilderGenerator.kt:376 */input
        1268  +
            /* ServerBuilderGenerator.kt:344 */;
  772   1269   
            self
        1270  +
            /* ServerBuilderGenerator.kt:343 */
  773   1271   
        }
  774         -
        /// Consumes the builder and constructs a [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1272  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1273  +
        /* ServerBuilderGenerator.kt:271 */
  775   1274   
        pub fn build(self) -> crate::output::GreetingWithErrorsOutput {
  776   1275   
            self.build_enforcing_all_constraints()
  777   1276   
        }
        1277  +
        /* ServerBuilderGenerator.kt:283 */
  778   1278   
        fn build_enforcing_all_constraints(self) -> crate::output::GreetingWithErrorsOutput {
        1279  +
            /* ServerBuilderGenerator.kt:542 */
  779   1280   
            crate::output::GreetingWithErrorsOutput {
        1281  +
                /* ServerBuilderGenerator.kt:546 */
  780   1282   
                greeting: self.greeting,
        1283  +
                /* ServerBuilderGenerator.kt:542 */
  781   1284   
            }
        1285  +
            /* ServerBuilderGenerator.kt:283 */
  782   1286   
        }
        1287  +
        /* ServerBuilderGenerator.kt:215 */
  783   1288   
    }
        1289  +
        1290  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  784   1291   
}
  785         -
/// See [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
        1292  +
/// /* ServerBuilderGenerator.kt:171 */See [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
  786   1293   
pub mod sparse_nulls_operation_output {
  787   1294   
        1295  +
    /* ServerBuilderGenerator.kt:461 */
  788   1296   
    impl ::std::convert::From<Builder> for crate::output::SparseNullsOperationOutput {
  789   1297   
        fn from(builder: Builder) -> Self {
  790   1298   
            builder.build()
  791   1299   
        }
  792   1300   
    }
  793         -
    /// A builder for [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
        1301  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
        1302  +
    /* RustType.kt:516 */
  794   1303   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1304  +
    /* ServerBuilderGenerator.kt:211 */
  795   1305   
    pub struct Builder {
        1306  +
        /* ServerBuilderGenerator.kt:308 */
  796   1307   
        pub(crate) sparse_string_list:
  797   1308   
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
        1309  +
        /* ServerBuilderGenerator.kt:308 */
  798   1310   
        pub(crate) sparse_string_map: ::std::option::Option<
  799   1311   
            ::std::collections::HashMap<
  800   1312   
                ::std::string::String,
  801   1313   
                ::std::option::Option<::std::string::String>,
  802   1314   
            >,
  803   1315   
        >,
        1316  +
        /* ServerBuilderGenerator.kt:211 */
  804   1317   
    }
        1318  +
    /* ServerBuilderGenerator.kt:215 */
  805   1319   
    impl Builder {
        1320  +
        /* ServerBuilderGenerator.kt:331 */
  806   1321   
        #[allow(missing_docs)] // documentation missing in model
        1322  +
                               /* ServerBuilderGenerator.kt:343 */
  807   1323   
        pub fn sparse_string_list(
  808   1324   
            mut self,
  809   1325   
            input: ::std::option::Option<
  810   1326   
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
  811   1327   
            >,
  812   1328   
        ) -> Self {
  813         -
            self.sparse_string_list = input;
        1329  +
            /* ServerBuilderGenerator.kt:344 */
        1330  +
            self.sparse_string_list =
        1331  +
                /* ServerBuilderGenerator.kt:376 */input
        1332  +
            /* ServerBuilderGenerator.kt:344 */;
  814   1333   
            self
        1334  +
            /* ServerBuilderGenerator.kt:343 */
  815   1335   
        }
        1336  +
        /* ServerBuilderGenerator.kt:331 */
  816   1337   
        #[allow(missing_docs)] // documentation missing in model
        1338  +
                               /* ServerBuilderGenerator.kt:343 */
  817   1339   
        pub fn sparse_string_map(
  818   1340   
            mut self,
  819   1341   
            input: ::std::option::Option<
  820   1342   
                ::std::collections::HashMap<
  821   1343   
                    ::std::string::String,
  822   1344   
                    ::std::option::Option<::std::string::String>,
  823   1345   
                >,
  824   1346   
            >,
  825   1347   
        ) -> Self {
  826         -
            self.sparse_string_map = input;
        1348  +
            /* ServerBuilderGenerator.kt:344 */
        1349  +
            self.sparse_string_map =
        1350  +
                /* ServerBuilderGenerator.kt:376 */input
        1351  +
            /* ServerBuilderGenerator.kt:344 */;
  827   1352   
            self
        1353  +
            /* ServerBuilderGenerator.kt:343 */
  828   1354   
        }
  829         -
        /// Consumes the builder and constructs a [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
        1355  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
        1356  +
        /* ServerBuilderGenerator.kt:271 */
  830   1357   
        pub fn build(self) -> crate::output::SparseNullsOperationOutput {
  831   1358   
            self.build_enforcing_all_constraints()
  832   1359   
        }
        1360  +
        /* ServerBuilderGenerator.kt:283 */
  833   1361   
        fn build_enforcing_all_constraints(self) -> crate::output::SparseNullsOperationOutput {
        1362  +
            /* ServerBuilderGenerator.kt:542 */
  834   1363   
            crate::output::SparseNullsOperationOutput {
        1364  +
                /* ServerBuilderGenerator.kt:546 */
  835   1365   
                sparse_string_list: self.sparse_string_list,
        1366  +
                /* ServerBuilderGenerator.kt:546 */
  836   1367   
                sparse_string_map: self.sparse_string_map,
        1368  +
                /* ServerBuilderGenerator.kt:542 */
  837   1369   
            }
        1370  +
            /* ServerBuilderGenerator.kt:283 */
  838   1371   
        }
        1372  +
        /* ServerBuilderGenerator.kt:215 */
  839   1373   
    }
        1374  +
        1375  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  840   1376   
}
  841         -
/// See [`NullOperationOutput`](crate::output::NullOperationOutput).
        1377  +
/// /* ServerBuilderGenerator.kt:171 */See [`NullOperationOutput`](crate::output::NullOperationOutput).
  842   1378   
pub mod null_operation_output {
  843   1379   
        1380  +
    /* ServerBuilderGenerator.kt:461 */
  844   1381   
    impl ::std::convert::From<Builder> for crate::output::NullOperationOutput {
  845   1382   
        fn from(builder: Builder) -> Self {
  846   1383   
            builder.build()
  847   1384   
        }
  848   1385   
    }
  849         -
    /// A builder for [`NullOperationOutput`](crate::output::NullOperationOutput).
        1386  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`NullOperationOutput`](crate::output::NullOperationOutput).
        1387  +
    /* RustType.kt:516 */
  850   1388   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1389  +
    /* ServerBuilderGenerator.kt:211 */
  851   1390   
    pub struct Builder {
        1391  +
        /* ServerBuilderGenerator.kt:308 */
  852   1392   
        pub(crate) string: ::std::option::Option<::std::string::String>,
        1393  +
        /* ServerBuilderGenerator.kt:211 */
  853   1394   
    }
        1395  +
    /* ServerBuilderGenerator.kt:215 */
  854   1396   
    impl Builder {
        1397  +
        /* ServerBuilderGenerator.kt:331 */
  855   1398   
        #[allow(missing_docs)] // documentation missing in model
        1399  +
                               /* ServerBuilderGenerator.kt:343 */
  856   1400   
        pub fn string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  857         -
            self.string = input;
        1401  +
            /* ServerBuilderGenerator.kt:344 */
        1402  +
            self.string =
        1403  +
                /* ServerBuilderGenerator.kt:376 */input
        1404  +
            /* ServerBuilderGenerator.kt:344 */;
  858   1405   
            self
        1406  +
            /* ServerBuilderGenerator.kt:343 */
  859   1407   
        }
  860         -
        /// Consumes the builder and constructs a [`NullOperationOutput`](crate::output::NullOperationOutput).
        1408  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`NullOperationOutput`](crate::output::NullOperationOutput).
        1409  +
        /* ServerBuilderGenerator.kt:271 */
  861   1410   
        pub fn build(self) -> crate::output::NullOperationOutput {
  862   1411   
            self.build_enforcing_all_constraints()
  863   1412   
        }
        1413  +
        /* ServerBuilderGenerator.kt:283 */
  864   1414   
        fn build_enforcing_all_constraints(self) -> crate::output::NullOperationOutput {
        1415  +
            /* ServerBuilderGenerator.kt:542 */
  865   1416   
            crate::output::NullOperationOutput {
        1417  +
                /* ServerBuilderGenerator.kt:546 */
  866   1418   
                string: self.string,
        1419  +
                /* ServerBuilderGenerator.kt:542 */
  867   1420   
            }
        1421  +
            /* ServerBuilderGenerator.kt:283 */
  868   1422   
        }
        1423  +
        /* ServerBuilderGenerator.kt:215 */
  869   1424   
    }
        1425  +
        1426  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  870   1427   
}
  871         -
/// See [`JsonEnumsOutput`](crate::output::JsonEnumsOutput).
        1428  +
/// /* ServerBuilderGenerator.kt:171 */See [`JsonEnumsOutput`](crate::output::JsonEnumsOutput).
  872   1429   
pub mod json_enums_output {
  873   1430   
        1431  +
    /* ServerBuilderGenerator.kt:461 */
  874   1432   
    impl ::std::convert::From<Builder> for crate::output::JsonEnumsOutput {
  875   1433   
        fn from(builder: Builder) -> Self {
  876   1434   
            builder.build()
  877   1435   
        }
  878   1436   
    }
  879         -
    /// A builder for [`JsonEnumsOutput`](crate::output::JsonEnumsOutput).
        1437  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`JsonEnumsOutput`](crate::output::JsonEnumsOutput).
        1438  +
    /* RustType.kt:516 */
  880   1439   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1440  +
    /* ServerBuilderGenerator.kt:211 */
  881   1441   
    pub struct Builder {
        1442  +
        /* ServerBuilderGenerator.kt:308 */
  882   1443   
        pub(crate) foo_enum1: ::std::option::Option<crate::model::FooEnum>,
        1444  +
        /* ServerBuilderGenerator.kt:308 */
  883   1445   
        pub(crate) foo_enum2: ::std::option::Option<crate::model::FooEnum>,
        1446  +
        /* ServerBuilderGenerator.kt:308 */
  884   1447   
        pub(crate) foo_enum3: ::std::option::Option<crate::model::FooEnum>,
        1448  +
        /* ServerBuilderGenerator.kt:308 */
  885   1449   
        pub(crate) foo_enum_list: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
        1450  +
        /* ServerBuilderGenerator.kt:308 */
  886   1451   
        pub(crate) foo_enum_set: ::std::option::Option<crate::model::FooEnumSet>,
        1452  +
        /* ServerBuilderGenerator.kt:308 */
  887   1453   
        pub(crate) foo_enum_map: ::std::option::Option<
  888   1454   
            ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
  889   1455   
        >,
        1456  +
        /* ServerBuilderGenerator.kt:211 */
  890   1457   
    }
        1458  +
    /* ServerBuilderGenerator.kt:215 */
  891   1459   
    impl Builder {
        1460  +
        /* ServerBuilderGenerator.kt:331 */
  892   1461   
        #[allow(missing_docs)] // documentation missing in model
        1462  +
                               /* ServerBuilderGenerator.kt:343 */
  893   1463   
        pub fn foo_enum1(mut self, input: ::std::option::Option<crate::model::FooEnum>) -> Self {
  894         -
            self.foo_enum1 = input;
        1464  +
            /* ServerBuilderGenerator.kt:344 */
        1465  +
            self.foo_enum1 =
        1466  +
                /* ServerBuilderGenerator.kt:376 */input
        1467  +
            /* ServerBuilderGenerator.kt:344 */;
  895   1468   
            self
        1469  +
            /* ServerBuilderGenerator.kt:343 */
  896   1470   
        }
        1471  +
        /* ServerBuilderGenerator.kt:331 */
  897   1472   
        #[allow(missing_docs)] // documentation missing in model
        1473  +
                               /* ServerBuilderGenerator.kt:343 */
  898   1474   
        pub fn foo_enum2(mut self, input: ::std::option::Option<crate::model::FooEnum>) -> Self {
  899         -
            self.foo_enum2 = input;
        1475  +
            /* ServerBuilderGenerator.kt:344 */
        1476  +
            self.foo_enum2 =
        1477  +
                /* ServerBuilderGenerator.kt:376 */input
        1478  +
            /* ServerBuilderGenerator.kt:344 */;
  900   1479   
            self
        1480  +
            /* ServerBuilderGenerator.kt:343 */
  901   1481   
        }
        1482  +
        /* ServerBuilderGenerator.kt:331 */
  902   1483   
        #[allow(missing_docs)] // documentation missing in model
        1484  +
                               /* ServerBuilderGenerator.kt:343 */
  903   1485   
        pub fn foo_enum3(mut self, input: ::std::option::Option<crate::model::FooEnum>) -> Self {
  904         -
            self.foo_enum3 = input;
        1486  +
            /* ServerBuilderGenerator.kt:344 */
        1487  +
            self.foo_enum3 =
        1488  +
                /* ServerBuilderGenerator.kt:376 */input
        1489  +
            /* ServerBuilderGenerator.kt:344 */;
  905   1490   
            self
        1491  +
            /* ServerBuilderGenerator.kt:343 */
  906   1492   
        }
        1493  +
        /* ServerBuilderGenerator.kt:331 */
  907   1494   
        #[allow(missing_docs)] // documentation missing in model
        1495  +
                               /* ServerBuilderGenerator.kt:343 */
  908   1496   
        pub fn foo_enum_list(
  909   1497   
            mut self,
  910   1498   
            input: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
  911   1499   
        ) -> Self {
  912         -
            self.foo_enum_list = input;
        1500  +
            /* ServerBuilderGenerator.kt:344 */
        1501  +
            self.foo_enum_list =
        1502  +
                /* ServerBuilderGenerator.kt:376 */input
        1503  +
            /* ServerBuilderGenerator.kt:344 */;
  913   1504   
            self
        1505  +
            /* ServerBuilderGenerator.kt:343 */
  914   1506   
        }
        1507  +
        /* ServerBuilderGenerator.kt:331 */
  915   1508   
        #[allow(missing_docs)] // documentation missing in model
        1509  +
                               /* ServerBuilderGenerator.kt:343 */
  916   1510   
        pub fn foo_enum_set(
  917   1511   
            mut self,
  918   1512   
            input: ::std::option::Option<crate::model::FooEnumSet>,
  919   1513   
        ) -> Self {
  920         -
            self.foo_enum_set = input;
        1514  +
            /* ServerBuilderGenerator.kt:344 */
        1515  +
            self.foo_enum_set =
        1516  +
                /* ServerBuilderGenerator.kt:376 */input
        1517  +
            /* ServerBuilderGenerator.kt:344 */;
  921   1518   
            self
        1519  +
            /* ServerBuilderGenerator.kt:343 */
  922   1520   
        }
        1521  +
        /* ServerBuilderGenerator.kt:331 */
  923   1522   
        #[allow(missing_docs)] // documentation missing in model
        1523  +
                               /* ServerBuilderGenerator.kt:343 */
  924   1524   
        pub fn foo_enum_map(
  925   1525   
            mut self,
  926   1526   
            input: ::std::option::Option<
  927   1527   
                ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
  928   1528   
            >,
  929   1529   
        ) -> Self {
  930         -
            self.foo_enum_map = input;
        1530  +
            /* ServerBuilderGenerator.kt:344 */
        1531  +
            self.foo_enum_map =
        1532  +
                /* ServerBuilderGenerator.kt:376 */input
        1533  +
            /* ServerBuilderGenerator.kt:344 */;
  931   1534   
            self
        1535  +
            /* ServerBuilderGenerator.kt:343 */
  932   1536   
        }
  933         -
        /// Consumes the builder and constructs a [`JsonEnumsOutput`](crate::output::JsonEnumsOutput).
        1537  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`JsonEnumsOutput`](crate::output::JsonEnumsOutput).
        1538  +
        /* ServerBuilderGenerator.kt:271 */
  934   1539   
        pub fn build(self) -> crate::output::JsonEnumsOutput {
  935   1540   
            self.build_enforcing_all_constraints()
  936   1541   
        }
        1542  +
        /* ServerBuilderGenerator.kt:283 */
  937   1543   
        fn build_enforcing_all_constraints(self) -> crate::output::JsonEnumsOutput {
        1544  +
            /* ServerBuilderGenerator.kt:542 */
  938   1545   
            crate::output::JsonEnumsOutput {
        1546  +
                /* ServerBuilderGenerator.kt:546 */
  939   1547   
                foo_enum1: self.foo_enum1,
        1548  +
                /* ServerBuilderGenerator.kt:546 */
  940   1549   
                foo_enum2: self.foo_enum2,
        1550  +
                /* ServerBuilderGenerator.kt:546 */
  941   1551   
                foo_enum3: self.foo_enum3,
        1552  +
                /* ServerBuilderGenerator.kt:546 */
  942   1553   
                foo_enum_list: self.foo_enum_list,
        1554  +
                /* ServerBuilderGenerator.kt:546 */
  943   1555   
                foo_enum_set: self.foo_enum_set,
        1556  +
                /* ServerBuilderGenerator.kt:546 */
  944   1557   
                foo_enum_map: self.foo_enum_map,
        1558  +
                /* ServerBuilderGenerator.kt:542 */
  945   1559   
            }
        1560  +
            /* ServerBuilderGenerator.kt:283 */
  946   1561   
        }
        1562  +
        /* ServerBuilderGenerator.kt:215 */
  947   1563   
    }
        1564  +
        1565  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  948   1566   
}
  949         -
/// See [`PutAndGetInlineDocumentsOutput`](crate::output::PutAndGetInlineDocumentsOutput).
        1567  +
/// /* ServerBuilderGenerator.kt:171 */See [`PutAndGetInlineDocumentsOutput`](crate::output::PutAndGetInlineDocumentsOutput).
  950   1568   
pub mod put_and_get_inline_documents_output {
  951   1569   
        1570  +
    /* ServerBuilderGenerator.kt:461 */
  952   1571   
    impl ::std::convert::From<Builder> for crate::output::PutAndGetInlineDocumentsOutput {
  953   1572   
        fn from(builder: Builder) -> Self {
  954   1573   
            builder.build()
  955   1574   
        }
  956   1575   
    }
  957         -
    /// A builder for [`PutAndGetInlineDocumentsOutput`](crate::output::PutAndGetInlineDocumentsOutput).
        1576  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`PutAndGetInlineDocumentsOutput`](crate::output::PutAndGetInlineDocumentsOutput).
        1577  +
    /* RustType.kt:516 */
  958   1578   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1579  +
    /* ServerBuilderGenerator.kt:211 */
  959   1580   
    pub struct Builder {
        1581  +
        /* ServerBuilderGenerator.kt:308 */
  960   1582   
        pub(crate) inline_document: ::std::option::Option<::aws_smithy_types::Document>,
        1583  +
        /* ServerBuilderGenerator.kt:211 */
  961   1584   
    }
        1585  +
    /* ServerBuilderGenerator.kt:215 */
  962   1586   
    impl Builder {
        1587  +
        /* ServerBuilderGenerator.kt:331 */
  963   1588   
        #[allow(missing_docs)] // documentation missing in model
        1589  +
                               /* ServerBuilderGenerator.kt:343 */
  964   1590   
        pub fn inline_document(
  965   1591   
            mut self,
  966   1592   
            input: ::std::option::Option<::aws_smithy_types::Document>,
  967   1593   
        ) -> Self {
  968         -
            self.inline_document = input;
        1594  +
            /* ServerBuilderGenerator.kt:344 */
        1595  +
            self.inline_document =
        1596  +
                /* ServerBuilderGenerator.kt:376 */input
        1597  +
            /* ServerBuilderGenerator.kt:344 */;
  969   1598   
            self
        1599  +
            /* ServerBuilderGenerator.kt:343 */
  970   1600   
        }
  971         -
        /// Consumes the builder and constructs a [`PutAndGetInlineDocumentsOutput`](crate::output::PutAndGetInlineDocumentsOutput).
        1601  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`PutAndGetInlineDocumentsOutput`](crate::output::PutAndGetInlineDocumentsOutput).
        1602  +
        /* ServerBuilderGenerator.kt:271 */
  972   1603   
        pub fn build(self) -> crate::output::PutAndGetInlineDocumentsOutput {
  973   1604   
            self.build_enforcing_all_constraints()
  974   1605   
        }
        1606  +
        /* ServerBuilderGenerator.kt:283 */
  975   1607   
        fn build_enforcing_all_constraints(self) -> crate::output::PutAndGetInlineDocumentsOutput {
        1608  +
            /* ServerBuilderGenerator.kt:542 */
  976   1609   
            crate::output::PutAndGetInlineDocumentsOutput {
        1610  +
                /* ServerBuilderGenerator.kt:546 */
  977   1611   
                inline_document: self.inline_document,
        1612  +
                /* ServerBuilderGenerator.kt:542 */
  978   1613   
            }
        1614  +
            /* ServerBuilderGenerator.kt:283 */
  979   1615   
        }
        1616  +
        /* ServerBuilderGenerator.kt:215 */
  980   1617   
    }
        1618  +
        1619  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  981   1620   
}
  982         -
/// See [`OperationWithOptionalInputOutputOutput`](crate::output::OperationWithOptionalInputOutputOutput).
        1621  +
/// /* ServerBuilderGenerator.kt:171 */See [`OperationWithOptionalInputOutputOutput`](crate::output::OperationWithOptionalInputOutputOutput).
  983   1622   
pub mod operation_with_optional_input_output_output {
  984   1623   
        1624  +
    /* ServerBuilderGenerator.kt:461 */
  985   1625   
    impl ::std::convert::From<Builder> for crate::output::OperationWithOptionalInputOutputOutput {
  986   1626   
        fn from(builder: Builder) -> Self {
  987   1627   
            builder.build()
  988   1628   
        }
  989   1629   
    }
  990         -
    /// A builder for [`OperationWithOptionalInputOutputOutput`](crate::output::OperationWithOptionalInputOutputOutput).
        1630  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`OperationWithOptionalInputOutputOutput`](crate::output::OperationWithOptionalInputOutputOutput).
        1631  +
    /* RustType.kt:516 */
  991   1632   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1633  +
    /* ServerBuilderGenerator.kt:211 */
  992   1634   
    pub struct Builder {
        1635  +
        /* ServerBuilderGenerator.kt:308 */
  993   1636   
        pub(crate) value: ::std::option::Option<::std::string::String>,
        1637  +
        /* ServerBuilderGenerator.kt:211 */
  994   1638   
    }
        1639  +
    /* ServerBuilderGenerator.kt:215 */
  995   1640   
    impl Builder {
        1641  +
        /* ServerBuilderGenerator.kt:331 */
  996   1642   
        #[allow(missing_docs)] // documentation missing in model
        1643  +
                               /* ServerBuilderGenerator.kt:343 */
  997   1644   
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  998         -
            self.value = input;
        1645  +
            /* ServerBuilderGenerator.kt:344 */
        1646  +
            self.value =
        1647  +
                /* ServerBuilderGenerator.kt:376 */input
        1648  +
            /* ServerBuilderGenerator.kt:344 */;
  999   1649   
            self
        1650  +
            /* ServerBuilderGenerator.kt:343 */
 1000   1651   
        }
 1001         -
        /// Consumes the builder and constructs a [`OperationWithOptionalInputOutputOutput`](crate::output::OperationWithOptionalInputOutputOutput).
        1652  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`OperationWithOptionalInputOutputOutput`](crate::output::OperationWithOptionalInputOutputOutput).
        1653  +
        /* ServerBuilderGenerator.kt:271 */
 1002   1654   
        pub fn build(self) -> crate::output::OperationWithOptionalInputOutputOutput {
 1003   1655   
            self.build_enforcing_all_constraints()
 1004   1656   
        }
        1657  +
        /* ServerBuilderGenerator.kt:283 */
 1005   1658   
        fn build_enforcing_all_constraints(
 1006   1659   
            self,
 1007   1660   
        ) -> crate::output::OperationWithOptionalInputOutputOutput {
 1008         -
            crate::output::OperationWithOptionalInputOutputOutput { value: self.value }
        1661  +
            /* ServerBuilderGenerator.kt:542 */
        1662  +
            crate::output::OperationWithOptionalInputOutputOutput {
        1663  +
                /* ServerBuilderGenerator.kt:546 */
        1664  +
                value: self.value,
        1665  +
                /* ServerBuilderGenerator.kt:542 */
        1666  +
            }
        1667  +
            /* ServerBuilderGenerator.kt:283 */
 1009   1668   
        }
        1669  +
        /* ServerBuilderGenerator.kt:215 */
 1010   1670   
    }
        1671  +
        1672  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 1011   1673   
}
 1012         -
/// See [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        1674  +
/// /* ServerBuilderGenerator.kt:171 */See [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
 1013   1675   
pub mod simple_scalar_properties_output {
 1014   1676   
        1677  +
    /* ServerBuilderGenerator.kt:461 */
 1015   1678   
    impl ::std::convert::From<Builder> for crate::output::SimpleScalarPropertiesOutput {
 1016   1679   
        fn from(builder: Builder) -> Self {
 1017   1680   
            builder.build()
 1018   1681   
        }
 1019   1682   
    }
 1020         -
    /// A builder for [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        1683  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        1684  +
    /* RustType.kt:516 */
 1021   1685   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1686  +
    /* ServerBuilderGenerator.kt:211 */
 1022   1687   
    pub struct Builder {
        1688  +
        /* ServerBuilderGenerator.kt:308 */
 1023   1689   
        pub(crate) float_value: ::std::option::Option<f32>,
        1690  +
        /* ServerBuilderGenerator.kt:308 */
 1024   1691   
        pub(crate) double_value: ::std::option::Option<f64>,
        1692  +
        /* ServerBuilderGenerator.kt:211 */
 1025   1693   
    }
        1694  +
    /* ServerBuilderGenerator.kt:215 */
 1026   1695   
    impl Builder {
        1696  +
        /* ServerBuilderGenerator.kt:331 */
 1027   1697   
        #[allow(missing_docs)] // documentation missing in model
        1698  +
                               /* ServerBuilderGenerator.kt:343 */
 1028   1699   
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
 1029         -
            self.float_value = input;
        1700  +
            /* ServerBuilderGenerator.kt:344 */
        1701  +
            self.float_value =
        1702  +
                /* ServerBuilderGenerator.kt:376 */input
        1703  +
            /* ServerBuilderGenerator.kt:344 */;
 1030   1704   
            self
        1705  +
            /* ServerBuilderGenerator.kt:343 */
 1031   1706   
        }
        1707  +
        /* ServerBuilderGenerator.kt:331 */
 1032   1708   
        #[allow(missing_docs)] // documentation missing in model
        1709  +
                               /* ServerBuilderGenerator.kt:343 */
 1033   1710   
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
 1034         -
            self.double_value = input;
        1711  +
            /* ServerBuilderGenerator.kt:344 */
        1712  +
            self.double_value =
        1713  +
                /* ServerBuilderGenerator.kt:376 */input
        1714  +
            /* ServerBuilderGenerator.kt:344 */;
 1035   1715   
            self
        1716  +
            /* ServerBuilderGenerator.kt:343 */
 1036   1717   
        }
 1037         -
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        1718  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
        1719  +
        /* ServerBuilderGenerator.kt:271 */
 1038   1720   
        pub fn build(self) -> crate::output::SimpleScalarPropertiesOutput {
 1039   1721   
            self.build_enforcing_all_constraints()
 1040   1722   
        }
        1723  +
        /* ServerBuilderGenerator.kt:283 */
 1041   1724   
        fn build_enforcing_all_constraints(self) -> crate::output::SimpleScalarPropertiesOutput {
        1725  +
            /* ServerBuilderGenerator.kt:542 */
 1042   1726   
            crate::output::SimpleScalarPropertiesOutput {
        1727  +
                /* ServerBuilderGenerator.kt:546 */
 1043   1728   
                float_value: self.float_value,
        1729  +
                /* ServerBuilderGenerator.kt:546 */
 1044   1730   
                double_value: self.double_value,
        1731  +
                /* ServerBuilderGenerator.kt:542 */
 1045   1732   
            }
        1733  +
            /* ServerBuilderGenerator.kt:283 */
 1046   1734   
        }
        1735  +
        /* ServerBuilderGenerator.kt:215 */
 1047   1736   
    }
        1737  +
        1738  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 1048   1739   
}
 1049         -
/// See [`KitchenSinkOperationOutput`](crate::output::KitchenSinkOperationOutput).
        1740  +
/// /* ServerBuilderGenerator.kt:171 */See [`KitchenSinkOperationOutput`](crate::output::KitchenSinkOperationOutput).
 1050   1741   
pub mod kitchen_sink_operation_output {
 1051   1742   
        1743  +
    /* ServerBuilderGenerator.kt:461 */
 1052   1744   
    impl ::std::convert::From<Builder> for crate::output::KitchenSinkOperationOutput {
 1053   1745   
        fn from(builder: Builder) -> Self {
 1054   1746   
            builder.build()
 1055   1747   
        }
 1056   1748   
    }
 1057         -
    /// A builder for [`KitchenSinkOperationOutput`](crate::output::KitchenSinkOperationOutput).
        1749  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`KitchenSinkOperationOutput`](crate::output::KitchenSinkOperationOutput).
        1750  +
    /* RustType.kt:516 */
 1058   1751   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1752  +
    /* ServerBuilderGenerator.kt:211 */
 1059   1753   
    pub struct Builder {
        1754  +
        /* ServerBuilderGenerator.kt:308 */
 1060   1755   
        pub(crate) blob: ::std::option::Option<::aws_smithy_types::Blob>,
 1061         -
        pub(crate) boolean: ::std::option::Option<bool>,
 1062         -
        pub(crate) double: ::std::option::Option<f64>,
        1756  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) boolean: ::std::option::Option<bool>,
        1757  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) double: ::std::option::Option<f64>,
        1758  +
        /* ServerBuilderGenerator.kt:308 */
 1063   1759   
        pub(crate) empty_struct: ::std::option::Option<crate::model::EmptyStruct>,
 1064         -
        pub(crate) float: ::std::option::Option<f32>,
        1760  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) float: ::std::option::Option<f32>,
        1761  +
        /* ServerBuilderGenerator.kt:308 */
 1065   1762   
        pub(crate) httpdate_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
 1066         -
        pub(crate) integer: ::std::option::Option<i32>,
        1763  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) integer: ::std::option::Option<i32>,
        1764  +
        /* ServerBuilderGenerator.kt:308 */
 1067   1765   
        pub(crate) iso8601_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
        1766  +
        /* ServerBuilderGenerator.kt:308 */
 1068   1767   
        pub(crate) json_value: ::std::option::Option<::std::string::String>,
        1768  +
        /* ServerBuilderGenerator.kt:308 */
 1069   1769   
        pub(crate) list_of_lists:
 1070   1770   
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
        1771  +
        /* ServerBuilderGenerator.kt:308 */
 1071   1772   
        pub(crate) list_of_maps_of_strings: ::std::option::Option<
 1072   1773   
            ::std::vec::Vec<
 1073   1774   
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1074   1775   
            >,
 1075   1776   
        >,
        1777  +
        /* ServerBuilderGenerator.kt:308 */
 1076   1778   
        pub(crate) list_of_strings: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        1779  +
        /* ServerBuilderGenerator.kt:308 */
 1077   1780   
        pub(crate) list_of_structs:
 1078   1781   
            ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
 1079         -
        pub(crate) long: ::std::option::Option<i64>,
        1782  +
        /* ServerBuilderGenerator.kt:308 */ pub(crate) long: ::std::option::Option<i64>,
        1783  +
        /* ServerBuilderGenerator.kt:308 */
 1080   1784   
        pub(crate) map_of_lists_of_strings: ::std::option::Option<
 1081   1785   
            ::std::collections::HashMap<
 1082   1786   
                ::std::string::String,
 1083   1787   
                ::std::vec::Vec<::std::string::String>,
 1084   1788   
            >,
 1085   1789   
        >,
        1790  +
        /* ServerBuilderGenerator.kt:308 */
 1086   1791   
        pub(crate) map_of_maps: ::std::option::Option<
 1087   1792   
            ::std::collections::HashMap<
 1088   1793   
                ::std::string::String,
 1089   1794   
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1090   1795   
            >,
 1091   1796   
        >,
        1797  +
        /* ServerBuilderGenerator.kt:308 */
 1092   1798   
        pub(crate) map_of_strings: ::std::option::Option<
 1093   1799   
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1094   1800   
        >,
        1801  +
        /* ServerBuilderGenerator.kt:308 */
 1095   1802   
        pub(crate) map_of_structs: ::std::option::Option<
 1096   1803   
            ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
 1097   1804   
        >,
        1805  +
        /* ServerBuilderGenerator.kt:308 */
 1098   1806   
        pub(crate) recursive_list:
 1099   1807   
            ::std::option::Option<::std::vec::Vec<crate::model::KitchenSink>>,
        1808  +
        /* ServerBuilderGenerator.kt:308 */
 1100   1809   
        pub(crate) recursive_map: ::std::option::Option<
 1101   1810   
            ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
 1102   1811   
        >,
        1812  +
        /* ServerBuilderGenerator.kt:308 */
 1103   1813   
        pub(crate) recursive_struct:
 1104   1814   
            ::std::option::Option<::std::boxed::Box<crate::model::KitchenSink>>,
        1815  +
        /* ServerBuilderGenerator.kt:308 */
 1105   1816   
        pub(crate) simple_struct: ::std::option::Option<crate::model::SimpleStruct>,
        1817  +
        /* ServerBuilderGenerator.kt:308 */
 1106   1818   
        pub(crate) string: ::std::option::Option<::std::string::String>,
        1819  +
        /* ServerBuilderGenerator.kt:308 */
 1107   1820   
        pub(crate) struct_with_json_name: ::std::option::Option<crate::model::StructWithJsonName>,
        1821  +
        /* ServerBuilderGenerator.kt:308 */
 1108   1822   
        pub(crate) timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
        1823  +
        /* ServerBuilderGenerator.kt:308 */
 1109   1824   
        pub(crate) unix_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
        1825  +
        /* ServerBuilderGenerator.kt:211 */
 1110   1826   
    }
        1827  +
    /* ServerBuilderGenerator.kt:215 */
 1111   1828   
    impl Builder {
        1829  +
        /* ServerBuilderGenerator.kt:331 */
 1112   1830   
        #[allow(missing_docs)] // documentation missing in model
        1831  +
                               /* ServerBuilderGenerator.kt:343 */
 1113   1832   
        pub fn blob(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
 1114         -
            self.blob = input;
        1833  +
            /* ServerBuilderGenerator.kt:344 */
        1834  +
            self.blob =
        1835  +
                /* ServerBuilderGenerator.kt:376 */input
        1836  +
            /* ServerBuilderGenerator.kt:344 */;
 1115   1837   
            self
        1838  +
            /* ServerBuilderGenerator.kt:343 */
 1116   1839   
        }
        1840  +
        /* ServerBuilderGenerator.kt:331 */
 1117   1841   
        #[allow(missing_docs)] // documentation missing in model
        1842  +
                               /* ServerBuilderGenerator.kt:343 */
 1118   1843   
        pub fn boolean(mut self, input: ::std::option::Option<bool>) -> Self {
 1119         -
            self.boolean = input;
        1844  +
            /* ServerBuilderGenerator.kt:344 */
        1845  +
            self.boolean =
        1846  +
                /* ServerBuilderGenerator.kt:376 */input
        1847  +
            /* ServerBuilderGenerator.kt:344 */;
 1120   1848   
            self
        1849  +
            /* ServerBuilderGenerator.kt:343 */
 1121   1850   
        }
        1851  +
        /* ServerBuilderGenerator.kt:331 */
 1122   1852   
        #[allow(missing_docs)] // documentation missing in model
        1853  +
                               /* ServerBuilderGenerator.kt:343 */
 1123   1854   
        pub fn double(mut self, input: ::std::option::Option<f64>) -> Self {
 1124         -
            self.double = input;
        1855  +
            /* ServerBuilderGenerator.kt:344 */
        1856  +
            self.double =
        1857  +
                /* ServerBuilderGenerator.kt:376 */input
        1858  +
            /* ServerBuilderGenerator.kt:344 */;
 1125   1859   
            self
        1860  +
            /* ServerBuilderGenerator.kt:343 */
 1126   1861   
        }
        1862  +
        /* ServerBuilderGenerator.kt:331 */
 1127   1863   
        #[allow(missing_docs)] // documentation missing in model
        1864  +
                               /* ServerBuilderGenerator.kt:343 */
 1128   1865   
        pub fn empty_struct(
 1129   1866   
            mut self,
 1130   1867   
            input: ::std::option::Option<crate::model::EmptyStruct>,
 1131   1868   
        ) -> Self {
 1132         -
            self.empty_struct = input;
        1869  +
            /* ServerBuilderGenerator.kt:344 */
        1870  +
            self.empty_struct =
        1871  +
                /* ServerBuilderGenerator.kt:376 */input
        1872  +
            /* ServerBuilderGenerator.kt:344 */;
 1133   1873   
            self
        1874  +
            /* ServerBuilderGenerator.kt:343 */
 1134   1875   
        }
        1876  +
        /* ServerBuilderGenerator.kt:331 */
 1135   1877   
        #[allow(missing_docs)] // documentation missing in model
        1878  +
                               /* ServerBuilderGenerator.kt:343 */
 1136   1879   
        pub fn float(mut self, input: ::std::option::Option<f32>) -> Self {
 1137         -
            self.float = input;
        1880  +
            /* ServerBuilderGenerator.kt:344 */
        1881  +
            self.float =
        1882  +
                /* ServerBuilderGenerator.kt:376 */input
        1883  +
            /* ServerBuilderGenerator.kt:344 */;
 1138   1884   
            self
        1885  +
            /* ServerBuilderGenerator.kt:343 */
 1139   1886   
        }
        1887  +
        /* ServerBuilderGenerator.kt:331 */
 1140   1888   
        #[allow(missing_docs)] // documentation missing in model
        1889  +
                               /* ServerBuilderGenerator.kt:343 */
 1141   1890   
        pub fn httpdate_timestamp(
 1142   1891   
            mut self,
 1143   1892   
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
 1144   1893   
        ) -> Self {
 1145         -
            self.httpdate_timestamp = input;
        1894  +
            /* ServerBuilderGenerator.kt:344 */
        1895  +
            self.httpdate_timestamp =
        1896  +
                /* ServerBuilderGenerator.kt:376 */input
        1897  +
            /* ServerBuilderGenerator.kt:344 */;
 1146   1898   
            self
        1899  +
            /* ServerBuilderGenerator.kt:343 */
 1147   1900   
        }
        1901  +
        /* ServerBuilderGenerator.kt:331 */
 1148   1902   
        #[allow(missing_docs)] // documentation missing in model
        1903  +
                               /* ServerBuilderGenerator.kt:343 */
 1149   1904   
        pub fn integer(mut self, input: ::std::option::Option<i32>) -> Self {
 1150         -
            self.integer = input;
        1905  +
            /* ServerBuilderGenerator.kt:344 */
        1906  +
            self.integer =
        1907  +
                /* ServerBuilderGenerator.kt:376 */input
        1908  +
            /* ServerBuilderGenerator.kt:344 */;
 1151   1909   
            self
        1910  +
            /* ServerBuilderGenerator.kt:343 */
 1152   1911   
        }
        1912  +
        /* ServerBuilderGenerator.kt:331 */
 1153   1913   
        #[allow(missing_docs)] // documentation missing in model
        1914  +
                               /* ServerBuilderGenerator.kt:343 */
 1154   1915   
        pub fn iso8601_timestamp(
 1155   1916   
            mut self,
 1156   1917   
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
 1157   1918   
        ) -> Self {
 1158         -
            self.iso8601_timestamp = input;
        1919  +
            /* ServerBuilderGenerator.kt:344 */
        1920  +
            self.iso8601_timestamp =
        1921  +
                /* ServerBuilderGenerator.kt:376 */input
        1922  +
            /* ServerBuilderGenerator.kt:344 */;
 1159   1923   
            self
        1924  +
            /* ServerBuilderGenerator.kt:343 */
 1160   1925   
        }
        1926  +
        /* ServerBuilderGenerator.kt:331 */
 1161   1927   
        #[allow(missing_docs)] // documentation missing in model
        1928  +
                               /* ServerBuilderGenerator.kt:343 */
 1162   1929   
        pub fn json_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1163         -
            self.json_value = input;
        1930  +
            /* ServerBuilderGenerator.kt:344 */
        1931  +
            self.json_value =
        1932  +
                /* ServerBuilderGenerator.kt:376 */input
        1933  +
            /* ServerBuilderGenerator.kt:344 */;
 1164   1934   
            self
        1935  +
            /* ServerBuilderGenerator.kt:343 */
 1165   1936   
        }
        1937  +
        /* ServerBuilderGenerator.kt:331 */
 1166   1938   
        #[allow(missing_docs)] // documentation missing in model
        1939  +
                               /* ServerBuilderGenerator.kt:343 */
 1167   1940   
        pub fn list_of_lists(
 1168   1941   
            mut self,
 1169   1942   
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 1170   1943   
        ) -> Self {
 1171         -
            self.list_of_lists = input;
        1944  +
            /* ServerBuilderGenerator.kt:344 */
        1945  +
            self.list_of_lists =
        1946  +
                /* ServerBuilderGenerator.kt:376 */input
        1947  +
            /* ServerBuilderGenerator.kt:344 */;
 1172   1948   
            self
        1949  +
            /* ServerBuilderGenerator.kt:343 */
 1173   1950   
        }
        1951  +
        /* ServerBuilderGenerator.kt:331 */
 1174   1952   
        #[allow(missing_docs)] // documentation missing in model
        1953  +
                               /* ServerBuilderGenerator.kt:343 */
 1175   1954   
        pub fn list_of_maps_of_strings(
 1176   1955   
            mut self,
 1177   1956   
            input: ::std::option::Option<
 1178   1957   
                ::std::vec::Vec<
 1179   1958   
                    ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1180   1959   
                >,
 1181   1960   
            >,
 1182   1961   
        ) -> Self {
 1183         -
            self.list_of_maps_of_strings = input;
        1962  +
            /* ServerBuilderGenerator.kt:344 */
        1963  +
            self.list_of_maps_of_strings =
        1964  +
                /* ServerBuilderGenerator.kt:376 */input
        1965  +
            /* ServerBuilderGenerator.kt:344 */;
 1184   1966   
            self
        1967  +
            /* ServerBuilderGenerator.kt:343 */
 1185   1968   
        }
        1969  +
        /* ServerBuilderGenerator.kt:331 */
 1186   1970   
        #[allow(missing_docs)] // documentation missing in model
        1971  +
                               /* ServerBuilderGenerator.kt:343 */
 1187   1972   
        pub fn list_of_strings(
 1188   1973   
            mut self,
 1189   1974   
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1190   1975   
        ) -> Self {
 1191         -
            self.list_of_strings = input;
        1976  +
            /* ServerBuilderGenerator.kt:344 */
        1977  +
            self.list_of_strings =
        1978  +
                /* ServerBuilderGenerator.kt:376 */input
        1979  +
            /* ServerBuilderGenerator.kt:344 */;
 1192   1980   
            self
        1981  +
            /* ServerBuilderGenerator.kt:343 */
 1193   1982   
        }
        1983  +
        /* ServerBuilderGenerator.kt:331 */
 1194   1984   
        #[allow(missing_docs)] // documentation missing in model
        1985  +
                               /* ServerBuilderGenerator.kt:343 */
 1195   1986   
        pub fn list_of_structs(
 1196   1987   
            mut self,
 1197   1988   
            input: ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
 1198   1989   
        ) -> Self {
 1199         -
            self.list_of_structs = input;
        1990  +
            /* ServerBuilderGenerator.kt:344 */
        1991  +
            self.list_of_structs =
        1992  +
                /* ServerBuilderGenerator.kt:376 */input
        1993  +
            /* ServerBuilderGenerator.kt:344 */;
 1200   1994   
            self
        1995  +
            /* ServerBuilderGenerator.kt:343 */
 1201   1996   
        }
        1997  +
        /* ServerBuilderGenerator.kt:331 */
 1202   1998   
        #[allow(missing_docs)] // documentation missing in model
        1999  +
                               /* ServerBuilderGenerator.kt:343 */
 1203   2000   
        pub fn long(mut self, input: ::std::option::Option<i64>) -> Self {
 1204         -
            self.long = input;
        2001  +
            /* ServerBuilderGenerator.kt:344 */
        2002  +
            self.long =
        2003  +
                /* ServerBuilderGenerator.kt:376 */input
        2004  +
            /* ServerBuilderGenerator.kt:344 */;
 1205   2005   
            self
        2006  +
            /* ServerBuilderGenerator.kt:343 */
 1206   2007   
        }
        2008  +
        /* ServerBuilderGenerator.kt:331 */
 1207   2009   
        #[allow(missing_docs)] // documentation missing in model
        2010  +
                               /* ServerBuilderGenerator.kt:343 */
 1208   2011   
        pub fn map_of_lists_of_strings(
 1209   2012   
            mut self,
 1210   2013   
            input: ::std::option::Option<
 1211   2014   
                ::std::collections::HashMap<
 1212   2015   
                    ::std::string::String,
 1213   2016   
                    ::std::vec::Vec<::std::string::String>,
 1214   2017   
                >,
 1215   2018   
            >,
 1216   2019   
        ) -> Self {
 1217         -
            self.map_of_lists_of_strings = input;
        2020  +
            /* ServerBuilderGenerator.kt:344 */
        2021  +
            self.map_of_lists_of_strings =
        2022  +
                /* ServerBuilderGenerator.kt:376 */input
        2023  +
            /* ServerBuilderGenerator.kt:344 */;
 1218   2024   
            self
        2025  +
            /* ServerBuilderGenerator.kt:343 */
 1219   2026   
        }
        2027  +
        /* ServerBuilderGenerator.kt:331 */
 1220   2028   
        #[allow(missing_docs)] // documentation missing in model
        2029  +
                               /* ServerBuilderGenerator.kt:343 */
 1221   2030   
        pub fn map_of_maps(
 1222   2031   
            mut self,
 1223   2032   
            input: ::std::option::Option<
 1224   2033   
                ::std::collections::HashMap<
 1225   2034   
                    ::std::string::String,
 1226   2035   
                    ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1227   2036   
                >,
 1228   2037   
            >,
 1229   2038   
        ) -> Self {
 1230         -
            self.map_of_maps = input;
        2039  +
            /* ServerBuilderGenerator.kt:344 */
        2040  +
            self.map_of_maps =
        2041  +
                /* ServerBuilderGenerator.kt:376 */input
        2042  +
            /* ServerBuilderGenerator.kt:344 */;
 1231   2043   
            self
        2044  +
            /* ServerBuilderGenerator.kt:343 */
 1232   2045   
        }
        2046  +
        /* ServerBuilderGenerator.kt:331 */
 1233   2047   
        #[allow(missing_docs)] // documentation missing in model
        2048  +
                               /* ServerBuilderGenerator.kt:343 */
 1234   2049   
        pub fn map_of_strings(
 1235   2050   
            mut self,
 1236   2051   
            input: ::std::option::Option<
 1237   2052   
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1238   2053   
            >,
 1239   2054   
        ) -> Self {
 1240         -
            self.map_of_strings = input;
        2055  +
            /* ServerBuilderGenerator.kt:344 */
        2056  +
            self.map_of_strings =
        2057  +
                /* ServerBuilderGenerator.kt:376 */input
        2058  +
            /* ServerBuilderGenerator.kt:344 */;
 1241   2059   
            self
        2060  +
            /* ServerBuilderGenerator.kt:343 */
 1242   2061   
        }
        2062  +
        /* ServerBuilderGenerator.kt:331 */
 1243   2063   
        #[allow(missing_docs)] // documentation missing in model
        2064  +
                               /* ServerBuilderGenerator.kt:343 */
 1244   2065   
        pub fn map_of_structs(
 1245   2066   
            mut self,
 1246   2067   
            input: ::std::option::Option<
 1247   2068   
                ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
 1248   2069   
            >,
 1249   2070   
        ) -> Self {
 1250         -
            self.map_of_structs = input;
        2071  +
            /* ServerBuilderGenerator.kt:344 */
        2072  +
            self.map_of_structs =
        2073  +
                /* ServerBuilderGenerator.kt:376 */input
        2074  +
            /* ServerBuilderGenerator.kt:344 */;
 1251   2075   
            self
        2076  +
            /* ServerBuilderGenerator.kt:343 */
 1252   2077   
        }
        2078  +
        /* ServerBuilderGenerator.kt:331 */
 1253   2079   
        #[allow(missing_docs)] // documentation missing in model
        2080  +
                               /* ServerBuilderGenerator.kt:343 */
 1254   2081   
        pub fn recursive_list(
 1255   2082   
            mut self,
 1256   2083   
            input: ::std::option::Option<::std::vec::Vec<crate::model::KitchenSink>>,
 1257   2084   
        ) -> Self {
 1258         -
            self.recursive_list = input;
        2085  +
            /* ServerBuilderGenerator.kt:344 */
        2086  +
            self.recursive_list =
        2087  +
                /* ServerBuilderGenerator.kt:376 */input
        2088  +
            /* ServerBuilderGenerator.kt:344 */;
 1259   2089   
            self
        2090  +
            /* ServerBuilderGenerator.kt:343 */
 1260   2091   
        }
        2092  +
        /* ServerBuilderGenerator.kt:331 */
 1261   2093   
        #[allow(missing_docs)] // documentation missing in model
        2094  +
                               /* ServerBuilderGenerator.kt:343 */
 1262   2095   
        pub fn recursive_map(
 1263   2096   
            mut self,
 1264   2097   
            input: ::std::option::Option<
 1265   2098   
                ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
 1266   2099   
            >,
 1267   2100   
        ) -> Self {
 1268         -
            self.recursive_map = input;
        2101  +
            /* ServerBuilderGenerator.kt:344 */
        2102  +
            self.recursive_map =
        2103  +
                /* ServerBuilderGenerator.kt:376 */input
        2104  +
            /* ServerBuilderGenerator.kt:344 */;
 1269   2105   
            self
        2106  +
            /* ServerBuilderGenerator.kt:343 */
 1270   2107   
        }
        2108  +
        /* ServerBuilderGenerator.kt:331 */
 1271   2109   
        #[allow(missing_docs)] // documentation missing in model
        2110  +
                               /* ServerBuilderGenerator.kt:343 */
 1272   2111   
        pub fn recursive_struct(
 1273   2112   
            mut self,
 1274   2113   
            input: ::std::option::Option<::std::boxed::Box<crate::model::KitchenSink>>,
 1275   2114   
        ) -> Self {
 1276         -
            self.recursive_struct = input;
        2115  +
            /* ServerBuilderGenerator.kt:344 */
        2116  +
            self.recursive_struct =
        2117  +
                /* ServerBuilderGenerator.kt:376 */input
        2118  +
            /* ServerBuilderGenerator.kt:344 */;
 1277   2119   
            self
        2120  +
            /* ServerBuilderGenerator.kt:343 */
 1278   2121   
        }
        2122  +
        /* ServerBuilderGenerator.kt:331 */
 1279   2123   
        #[allow(missing_docs)] // documentation missing in model
        2124  +
                               /* ServerBuilderGenerator.kt:343 */
 1280   2125   
        pub fn simple_struct(
 1281   2126   
            mut self,
 1282   2127   
            input: ::std::option::Option<crate::model::SimpleStruct>,
 1283   2128   
        ) -> Self {
 1284         -
            self.simple_struct = input;
        2129  +
            /* ServerBuilderGenerator.kt:344 */
        2130  +
            self.simple_struct =
        2131  +
                /* ServerBuilderGenerator.kt:376 */input
        2132  +
            /* ServerBuilderGenerator.kt:344 */;
 1285   2133   
            self
        2134  +
            /* ServerBuilderGenerator.kt:343 */
 1286   2135   
        }
        2136  +
        /* ServerBuilderGenerator.kt:331 */
 1287   2137   
        #[allow(missing_docs)] // documentation missing in model
        2138  +
                               /* ServerBuilderGenerator.kt:343 */
 1288   2139   
        pub fn string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1289         -
            self.string = input;
        2140  +
            /* ServerBuilderGenerator.kt:344 */
        2141  +
            self.string =
        2142  +
                /* ServerBuilderGenerator.kt:376 */input
        2143  +
            /* ServerBuilderGenerator.kt:344 */;
 1290   2144   
            self
        2145  +
            /* ServerBuilderGenerator.kt:343 */
 1291   2146   
        }
        2147  +
        /* ServerBuilderGenerator.kt:331 */
 1292   2148   
        #[allow(missing_docs)] // documentation missing in model
        2149  +
                               /* ServerBuilderGenerator.kt:343 */
 1293   2150   
        pub fn struct_with_json_name(
 1294   2151   
            mut self,
 1295   2152   
            input: ::std::option::Option<crate::model::StructWithJsonName>,
 1296   2153   
        ) -> Self {
 1297         -
            self.struct_with_json_name = input;
        2154  +
            /* ServerBuilderGenerator.kt:344 */
        2155  +
            self.struct_with_json_name =
        2156  +
                /* ServerBuilderGenerator.kt:376 */input
        2157  +
            /* ServerBuilderGenerator.kt:344 */;
 1298   2158   
            self
        2159  +
            /* ServerBuilderGenerator.kt:343 */
 1299   2160   
        }
        2161  +
        /* ServerBuilderGenerator.kt:331 */
 1300   2162   
        #[allow(missing_docs)] // documentation missing in model
        2163  +
                               /* ServerBuilderGenerator.kt:343 */
 1301   2164   
        pub fn timestamp(
 1302   2165   
            mut self,
 1303   2166   
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
 1304   2167   
        ) -> Self {
 1305         -
            self.timestamp = input;
        2168  +
            /* ServerBuilderGenerator.kt:344 */
        2169  +
            self.timestamp =
        2170  +
                /* ServerBuilderGenerator.kt:376 */input
        2171  +
            /* ServerBuilderGenerator.kt:344 */;
 1306   2172   
            self
        2173  +
            /* ServerBuilderGenerator.kt:343 */
 1307   2174   
        }
        2175  +
        /* ServerBuilderGenerator.kt:331 */
 1308   2176   
        #[allow(missing_docs)] // documentation missing in model
        2177  +
                               /* ServerBuilderGenerator.kt:343 */
 1309   2178   
        pub fn unix_timestamp(
 1310   2179   
            mut self,
 1311   2180   
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
 1312   2181   
        ) -> Self {
 1313         -
            self.unix_timestamp = input;
        2182  +
            /* ServerBuilderGenerator.kt:344 */
        2183  +
            self.unix_timestamp =
        2184  +
                /* ServerBuilderGenerator.kt:376 */input
        2185  +
            /* ServerBuilderGenerator.kt:344 */;
 1314   2186   
            self
        2187  +
            /* ServerBuilderGenerator.kt:343 */
 1315   2188   
        }
 1316         -
        /// Consumes the builder and constructs a [`KitchenSinkOperationOutput`](crate::output::KitchenSinkOperationOutput).
        2189  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`KitchenSinkOperationOutput`](crate::output::KitchenSinkOperationOutput).
        2190  +
        /* ServerBuilderGenerator.kt:271 */
 1317   2191   
        pub fn build(self) -> crate::output::KitchenSinkOperationOutput {
 1318   2192   
            self.build_enforcing_all_constraints()
 1319   2193   
        }
        2194  +
        /* ServerBuilderGenerator.kt:283 */
 1320   2195   
        fn build_enforcing_all_constraints(self) -> crate::output::KitchenSinkOperationOutput {
        2196  +
            /* ServerBuilderGenerator.kt:542 */
 1321   2197   
            crate::output::KitchenSinkOperationOutput {
        2198  +
                /* ServerBuilderGenerator.kt:546 */
 1322   2199   
                blob: self.blob,
        2200  +
                /* ServerBuilderGenerator.kt:546 */
 1323   2201   
                boolean: self.boolean,
        2202  +
                /* ServerBuilderGenerator.kt:546 */
 1324   2203   
                double: self.double,
        2204  +
                /* ServerBuilderGenerator.kt:546 */
 1325   2205   
                empty_struct: self.empty_struct,
        2206  +
                /* ServerBuilderGenerator.kt:546 */
 1326   2207   
                float: self.float,
        2208  +
                /* ServerBuilderGenerator.kt:546 */
 1327   2209   
                httpdate_timestamp: self.httpdate_timestamp,
        2210  +
                /* ServerBuilderGenerator.kt:546 */
 1328   2211   
                integer: self.integer,
        2212  +
                /* ServerBuilderGenerator.kt:546 */
 1329   2213   
                iso8601_timestamp: self.iso8601_timestamp,
        2214  +
                /* ServerBuilderGenerator.kt:546 */
 1330   2215   
                json_value: self.json_value,
        2216  +
                /* ServerBuilderGenerator.kt:546 */
 1331   2217   
                list_of_lists: self.list_of_lists,
        2218  +
                /* ServerBuilderGenerator.kt:546 */
 1332   2219   
                list_of_maps_of_strings: self.list_of_maps_of_strings,
        2220  +
                /* ServerBuilderGenerator.kt:546 */
 1333   2221   
                list_of_strings: self.list_of_strings,
        2222  +
                /* ServerBuilderGenerator.kt:546 */
 1334   2223   
                list_of_structs: self.list_of_structs,
        2224  +
                /* ServerBuilderGenerator.kt:546 */
 1335   2225   
                long: self.long,
        2226  +
                /* ServerBuilderGenerator.kt:546 */
 1336   2227   
                map_of_lists_of_strings: self.map_of_lists_of_strings,
        2228  +
                /* ServerBuilderGenerator.kt:546 */
 1337   2229   
                map_of_maps: self.map_of_maps,
        2230  +
                /* ServerBuilderGenerator.kt:546 */
 1338   2231   
                map_of_strings: self.map_of_strings,
        2232  +
                /* ServerBuilderGenerator.kt:546 */
 1339   2233   
                map_of_structs: self.map_of_structs,
        2234  +
                /* ServerBuilderGenerator.kt:546 */
 1340   2235   
                recursive_list: self.recursive_list,
        2236  +
                /* ServerBuilderGenerator.kt:546 */
 1341   2237   
                recursive_map: self.recursive_map,
        2238  +
                /* ServerBuilderGenerator.kt:546 */
 1342   2239   
                recursive_struct: self.recursive_struct,
        2240  +
                /* ServerBuilderGenerator.kt:546 */
 1343   2241   
                simple_struct: self.simple_struct,
        2242  +
                /* ServerBuilderGenerator.kt:546 */
 1344   2243   
                string: self.string,
        2244  +
                /* ServerBuilderGenerator.kt:546 */
 1345   2245   
                struct_with_json_name: self.struct_with_json_name,
        2246  +
                /* ServerBuilderGenerator.kt:546 */
 1346   2247   
                timestamp: self.timestamp,
        2248  +
                /* ServerBuilderGenerator.kt:546 */
 1347   2249   
                unix_timestamp: self.unix_timestamp,
        2250  +
                /* ServerBuilderGenerator.kt:542 */
 1348   2251   
            }
        2252  +
            /* ServerBuilderGenerator.kt:283 */
 1349   2253   
        }
        2254  +
        /* ServerBuilderGenerator.kt:215 */
 1350   2255   
    }
        2256  +
        2257  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 1351   2258   
}
 1352         -
/// See [`EmptyOperationOutput`](crate::output::EmptyOperationOutput).
        2259  +
/// /* ServerBuilderGenerator.kt:171 */See [`EmptyOperationOutput`](crate::output::EmptyOperationOutput).
 1353   2260   
pub mod empty_operation_output {
 1354   2261   
        2262  +
    /* ServerBuilderGenerator.kt:461 */
 1355   2263   
    impl ::std::convert::From<Builder> for crate::output::EmptyOperationOutput {
 1356   2264   
        fn from(builder: Builder) -> Self {
 1357   2265   
            builder.build()
 1358   2266   
        }
 1359   2267   
    }
 1360         -
    /// A builder for [`EmptyOperationOutput`](crate::output::EmptyOperationOutput).
        2268  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`EmptyOperationOutput`](crate::output::EmptyOperationOutput).
        2269  +
    /* RustType.kt:516 */
 1361   2270   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1362         -
    pub struct Builder {}
        2271  +
    /* ServerBuilderGenerator.kt:211 */
        2272  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
        2273  +
    /* ServerBuilderGenerator.kt:215 */
 1363   2274   
    impl Builder {
 1364         -
        /// Consumes the builder and constructs a [`EmptyOperationOutput`](crate::output::EmptyOperationOutput).
        2275  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`EmptyOperationOutput`](crate::output::EmptyOperationOutput).
        2276  +
        /* ServerBuilderGenerator.kt:271 */
 1365   2277   
        pub fn build(self) -> crate::output::EmptyOperationOutput {
 1366   2278   
            self.build_enforcing_all_constraints()
 1367   2279   
        }
        2280  +
        /* ServerBuilderGenerator.kt:283 */
 1368   2281   
        fn build_enforcing_all_constraints(self) -> crate::output::EmptyOperationOutput {
 1369         -
            crate::output::EmptyOperationOutput {}
        2282  +
            /* ServerBuilderGenerator.kt:542 */
        2283  +
            crate::output::EmptyOperationOutput {
        2284  +
            /* ServerBuilderGenerator.kt:542 */}
        2285  +
            /* ServerBuilderGenerator.kt:283 */
 1370   2286   
        }
        2287  +
        /* ServerBuilderGenerator.kt:215 */
 1371   2288   
    }
        2289  +
        2290  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 1372   2291   
}