Server Test

Server Test

rev. d838bf488731ae5e751cce0fe13f339a5b9be858

Files changed:

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/lib.rs

@@ -1,1 +53,54 @@
    5      5   
#![allow(clippy::large_enum_variant)]
    6      6   
#![allow(clippy::wrong_self_convention)]
    7      7   
#![allow(clippy::should_implement_trait)]
    8      8   
#![allow(clippy::disallowed_names)]
    9      9   
#![allow(clippy::vec_init_then_push)]
   10     10   
#![allow(clippy::type_complexity)]
   11     11   
#![allow(clippy::needless_return)]
   12     12   
#![allow(clippy::derive_partial_eq_without_eq)]
   13     13   
#![allow(clippy::result_large_err)]
   14     14   
#![allow(clippy::unnecessary_map_on_constructor)]
          15  +
#![allow(clippy::useless_conversion)]
   15     16   
#![allow(clippy::deprecated_semver)]
   16     17   
#![allow(clippy::uninlined_format_args)]
   17     18   
#![allow(rustdoc::bare_urls)]
   18     19   
#![allow(rustdoc::redundant_explicit_links)]
   19     20   
#![allow(rustdoc::broken_intra_doc_links)]
   20     21   
#![allow(rustdoc::invalid_html_tags)]
   21     22   
#![forbid(unsafe_code)]
   22     23   
#![cfg_attr(docsrs, feature(doc_cfg))]
   23         -
//! A REST JSON service that sends JSON requests and responses.
          24  +
//! rest_json-http0x
   24     25   
   25     26   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
   26     27   
/* ServerRootGenerator.kt:207 */
   27     28   
//! A fast and customizable Rust implementation of the RestJson Smithy service.
   28     29   
//!
   29     30   
//! # Using RestJson
   30     31   
//!
   31     32   
//! The primary entrypoint is [`RestJson`]: it satisfies the [`Service<http::Request, Response = http::Response>`](::tower::Service)
   32     33   
//! trait and therefore can be handed to a [`hyper` server](https://github.com/hyperium/hyper) via [`RestJson::into_make_service`]
   33     34   
//! or used in AWS Lambda
@@ -151,152 +283,292 @@
  171    172   
//!    let config = RestJsonConfig::builder().build();
  172    173   
//!    let app = RestJson::builder(config)
  173    174   
//!        .all_query_string_types(all_query_string_types)
  174    175   
//!        .constant_and_variable_query_string(constant_and_variable_query_string)
  175    176   
//!        .constant_query_string(constant_query_string)
  176    177   
//!        .content_type_parameters(content_type_parameters)
  177    178   
//!        .datetime_offsets(datetime_offsets)
  178    179   
//!        .document_type(document_type)
  179    180   
//!        .document_type_as_map_value(document_type_as_map_value)
  180    181   
//!        .document_type_as_payload(document_type_as_payload)
         182  +
//!        .duplex_stream(duplex_stream)
         183  +
//!        .duplex_stream_with_distinct_streams(duplex_stream_with_distinct_streams)
         184  +
//!        .duplex_stream_with_initial_messages(duplex_stream_with_initial_messages)
  181    185   
//!        .empty_input_and_empty_output(empty_input_and_empty_output)
  182    186   
//!        .endpoint_operation(endpoint_operation)
  183    187   
//!        .endpoint_with_host_label_operation(endpoint_with_host_label_operation)
  184    188   
//!        .fractional_seconds(fractional_seconds)
  185    189   
//!        .greeting_with_errors(greeting_with_errors)
  186    190   
//!        .host_with_path_operation(host_with_path_operation)
  187    191   
//!        .http_checksum_required(http_checksum_required)
  188    192   
//!        .http_empty_prefix_headers(http_empty_prefix_headers)
  189    193   
//!        .http_enum_payload(http_enum_payload)
  190    194   
//!        .http_payload_traits(http_payload_traits)
  191    195   
//!        .http_payload_traits_with_media_type(http_payload_traits_with_media_type)
  192    196   
//!        .http_payload_with_structure(http_payload_with_structure)
  193    197   
//!        .http_payload_with_union(http_payload_with_union)
  194    198   
//!        .http_prefix_headers(http_prefix_headers)
  195    199   
//!        .http_prefix_headers_in_response(http_prefix_headers_in_response)
         200  +
//!        .http_query_params_only_operation(http_query_params_only_operation)
  196    201   
//!        .http_request_with_float_labels(http_request_with_float_labels)
  197    202   
//!        .http_request_with_greedy_label_in_path(http_request_with_greedy_label_in_path)
  198    203   
//!        .http_request_with_labels(http_request_with_labels)
  199    204   
//!        .http_request_with_labels_and_timestamp_format(http_request_with_labels_and_timestamp_format)
  200    205   
//!        .http_request_with_regex_literal(http_request_with_regex_literal)
  201    206   
//!        .http_response_code(http_response_code)
  202    207   
//!        .http_string_payload(http_string_payload)
  203    208   
//!        .ignore_query_params_in_response(ignore_query_params_in_response)
  204    209   
//!        .input_and_output_with_headers(input_and_output_with_headers)
         210  +
//!        .input_stream(input_stream)
         211  +
//!        .input_stream_with_initial_request(input_stream_with_initial_request)
  205    212   
//!        .json_blobs(json_blobs)
  206    213   
//!        .json_enums(json_enums)
  207    214   
//!        .json_int_enums(json_int_enums)
  208    215   
//!        .json_lists(json_lists)
  209    216   
//!        .json_maps(json_maps)
  210    217   
//!        .json_timestamps(json_timestamps)
  211    218   
//!        .json_unions(json_unions)
  212    219   
//!        .malformed_accept_with_body(malformed_accept_with_body)
  213    220   
//!        .malformed_accept_with_generic_string(malformed_accept_with_generic_string)
  214    221   
//!        .malformed_accept_with_payload(malformed_accept_with_payload)
  215    222   
//!        .malformed_blob(malformed_blob)
  216    223   
//!        .malformed_boolean(malformed_boolean)
  217    224   
//!        .malformed_byte(malformed_byte)
  218    225   
//!        .malformed_content_type_with_body(malformed_content_type_with_body)
  219    226   
//!        .malformed_content_type_with_generic_string(malformed_content_type_with_generic_string)
  220    227   
//!        .malformed_content_type_without_body(malformed_content_type_without_body)
  221    228   
//!        .malformed_content_type_without_body_empty_input(malformed_content_type_without_body_empty_input)
  222    229   
//!        .malformed_content_type_with_payload(malformed_content_type_with_payload)
  223    230   
//!        .malformed_double(malformed_double)
  224    231   
//!        .malformed_float(malformed_float)
  225    232   
//!        .malformed_integer(malformed_integer)
  226    233   
//!        .malformed_list(malformed_list)
  227    234   
//!        .malformed_long(malformed_long)
  228    235   
//!        .malformed_map(malformed_map)
  229    236   
//!        .malformed_request_body(malformed_request_body)
  230    237   
//!        .malformed_short(malformed_short)
  231    238   
//!        .malformed_string(malformed_string)
  232    239   
//!        .malformed_timestamp_body_date_time(malformed_timestamp_body_date_time)
  233    240   
//!        .malformed_timestamp_body_default(malformed_timestamp_body_default)
  234    241   
//!        .malformed_timestamp_body_http_date(malformed_timestamp_body_http_date)
  235    242   
//!        .malformed_timestamp_header_date_time(malformed_timestamp_header_date_time)
  236    243   
//!        .malformed_timestamp_header_default(malformed_timestamp_header_default)
  237    244   
//!        .malformed_timestamp_header_epoch(malformed_timestamp_header_epoch)
  238    245   
//!        .malformed_timestamp_path_default(malformed_timestamp_path_default)
  239    246   
//!        .malformed_timestamp_path_epoch(malformed_timestamp_path_epoch)
  240    247   
//!        .malformed_timestamp_path_http_date(malformed_timestamp_path_http_date)
  241    248   
//!        .malformed_timestamp_query_default(malformed_timestamp_query_default)
  242    249   
//!        .malformed_timestamp_query_epoch(malformed_timestamp_query_epoch)
  243    250   
//!        .malformed_timestamp_query_http_date(malformed_timestamp_query_http_date)
  244    251   
//!        .malformed_union(malformed_union)
  245    252   
//!        .media_type_header(media_type_header)
  246    253   
//!        .no_input_and_no_output(no_input_and_no_output)
  247    254   
//!        .no_input_and_output(no_input_and_output)
  248    255   
//!        .null_and_empty_headers_client(null_and_empty_headers_client)
  249    256   
//!        .null_and_empty_headers_server(null_and_empty_headers_server)
  250    257   
//!        .omits_null_serializes_empty_string(omits_null_serializes_empty_string)
  251    258   
//!        .omits_serializing_empty_lists(omits_serializing_empty_lists)
  252    259   
//!        .operation_with_defaults(operation_with_defaults)
  253    260   
//!        .operation_with_nested_structure(operation_with_nested_structure)
         261  +
//!        .output_stream(output_stream)
         262  +
//!        .output_stream_with_initial_response(output_stream_with_initial_response)
  254    263   
//!        .post_player_action(post_player_action)
  255    264   
//!        .post_union_with_json_name(post_union_with_json_name)
  256    265   
//!        .put_with_content_encoding(put_with_content_encoding)
  257    266   
//!        .query_idempotency_token_auto_fill(query_idempotency_token_auto_fill)
  258    267   
//!        .query_params_as_string_list_map(query_params_as_string_list_map)
  259    268   
//!        .query_precedence(query_precedence)
  260    269   
//!        .recursive_shapes(recursive_shapes)
  261    270   
//!        .response_code_http_fallback(response_code_http_fallback)
  262    271   
//!        .response_code_required(response_code_required)
  263    272   
//!        .simple_scalar_properties(simple_scalar_properties)
@@ -296,305 +451,484 @@
  316    325   
//! }
  317    326   
//!
  318    327   
//! async fn document_type_as_map_value(input: input::DocumentTypeAsMapValueInput) -> output::DocumentTypeAsMapValueOutput {
  319    328   
//!     todo!()
  320    329   
//! }
  321    330   
//!
  322    331   
//! async fn document_type_as_payload(input: input::DocumentTypeAsPayloadInput) -> output::DocumentTypeAsPayloadOutput {
  323    332   
//!     todo!()
  324    333   
//! }
  325    334   
//!
         335  +
//! async fn duplex_stream(input: input::DuplexStreamInput) -> Result<output::DuplexStreamOutput, error::DuplexStreamError> {
         336  +
//!     todo!()
         337  +
//! }
         338  +
//!
         339  +
//! async fn duplex_stream_with_distinct_streams(input: input::DuplexStreamWithDistinctStreamsInput) -> Result<output::DuplexStreamWithDistinctStreamsOutput, error::DuplexStreamWithDistinctStreamsError> {
         340  +
//!     todo!()
         341  +
//! }
         342  +
//!
         343  +
//! async fn duplex_stream_with_initial_messages(input: input::DuplexStreamWithInitialMessagesInput) -> Result<output::DuplexStreamWithInitialMessagesOutput, error::DuplexStreamWithInitialMessagesError> {
         344  +
//!     todo!()
         345  +
//! }
         346  +
//!
  326    347   
//! async fn empty_input_and_empty_output(input: input::EmptyInputAndEmptyOutputInput) -> output::EmptyInputAndEmptyOutputOutput {
  327    348   
//!     todo!()
  328    349   
//! }
  329    350   
//!
  330    351   
//! async fn endpoint_operation(input: input::EndpointOperationInput) -> output::EndpointOperationOutput {
  331    352   
//!     todo!()
  332    353   
//! }
  333    354   
//!
  334    355   
//! async fn endpoint_with_host_label_operation(input: input::EndpointWithHostLabelOperationInput) -> Result<output::EndpointWithHostLabelOperationOutput, error::EndpointWithHostLabelOperationError> {
  335    356   
//!     todo!()
  336    357   
//! }
  337    358   
//!
  338    359   
//! async fn fractional_seconds(input: input::FractionalSecondsInput) -> output::FractionalSecondsOutput {
  339    360   
//!     todo!()
  340    361   
//! }
  341    362   
//!
  342    363   
//! async fn greeting_with_errors(input: input::GreetingWithErrorsInput) -> Result<output::GreetingWithErrorsOutput, error::GreetingWithErrorsError> {
  343    364   
//!     todo!()
  344    365   
//! }
  345    366   
//!
  346    367   
//! async fn host_with_path_operation(input: input::HostWithPathOperationInput) -> output::HostWithPathOperationOutput {
  347    368   
//!     todo!()
  348    369   
//! }
  349    370   
//!
  350    371   
//! async fn http_checksum_required(input: input::HttpChecksumRequiredInput) -> output::HttpChecksumRequiredOutput {
  351    372   
//!     todo!()
  352    373   
//! }
  353    374   
//!
  354    375   
//! async fn http_empty_prefix_headers(input: input::HttpEmptyPrefixHeadersInput) -> output::HttpEmptyPrefixHeadersOutput {
  355    376   
//!     todo!()
  356    377   
//! }
  357    378   
//!
  358    379   
//! async fn http_enum_payload(input: input::HttpEnumPayloadInput) -> Result<output::HttpEnumPayloadOutput, error::HttpEnumPayloadError> {
  359    380   
//!     todo!()
  360    381   
//! }
  361    382   
//!
  362    383   
//! async fn http_payload_traits(input: input::HttpPayloadTraitsInput) -> output::HttpPayloadTraitsOutput {
  363    384   
//!     todo!()
  364    385   
//! }
  365    386   
//!
  366    387   
//! async fn http_payload_traits_with_media_type(input: input::HttpPayloadTraitsWithMediaTypeInput) -> output::HttpPayloadTraitsWithMediaTypeOutput {
  367    388   
//!     todo!()
  368    389   
//! }
  369    390   
//!
  370    391   
//! async fn http_payload_with_structure(input: input::HttpPayloadWithStructureInput) -> output::HttpPayloadWithStructureOutput {
  371    392   
//!     todo!()
  372    393   
//! }
  373    394   
//!
  374    395   
//! async fn http_payload_with_union(input: input::HttpPayloadWithUnionInput) -> output::HttpPayloadWithUnionOutput {
  375    396   
//!     todo!()
  376    397   
//! }
  377    398   
//!
  378    399   
//! async fn http_prefix_headers(input: input::HttpPrefixHeadersInput) -> output::HttpPrefixHeadersOutput {
  379    400   
//!     todo!()
  380    401   
//! }
  381    402   
//!
  382    403   
//! async fn http_prefix_headers_in_response(input: input::HttpPrefixHeadersInResponseInput) -> output::HttpPrefixHeadersInResponseOutput {
  383    404   
//!     todo!()
  384    405   
//! }
  385    406   
//!
         407  +
//! async fn http_query_params_only_operation(input: input::HttpQueryParamsOnlyOperationInput) -> output::HttpQueryParamsOnlyOperationOutput {
         408  +
//!     todo!()
         409  +
//! }
         410  +
//!
  386    411   
//! async fn http_request_with_float_labels(input: input::HttpRequestWithFloatLabelsInput) -> Result<output::HttpRequestWithFloatLabelsOutput, error::HttpRequestWithFloatLabelsError> {
  387    412   
//!     todo!()
  388    413   
//! }
  389    414   
//!
  390    415   
//! async fn http_request_with_greedy_label_in_path(input: input::HttpRequestWithGreedyLabelInPathInput) -> Result<output::HttpRequestWithGreedyLabelInPathOutput, error::HttpRequestWithGreedyLabelInPathError> {
  391    416   
//!     todo!()
  392    417   
//! }
  393    418   
//!
  394    419   
//! async fn http_request_with_labels(input: input::HttpRequestWithLabelsInput) -> Result<output::HttpRequestWithLabelsOutput, error::HttpRequestWithLabelsError> {
  395    420   
//!     todo!()
  396    421   
//! }
  397    422   
//!
  398    423   
//! async fn http_request_with_labels_and_timestamp_format(input: input::HttpRequestWithLabelsAndTimestampFormatInput) -> Result<output::HttpRequestWithLabelsAndTimestampFormatOutput, error::HttpRequestWithLabelsAndTimestampFormatError> {
  399    424   
//!     todo!()
  400    425   
//! }
  401    426   
//!
  402    427   
//! async fn http_request_with_regex_literal(input: input::HttpRequestWithRegexLiteralInput) -> Result<output::HttpRequestWithRegexLiteralOutput, error::HttpRequestWithRegexLiteralError> {
  403    428   
//!     todo!()
  404    429   
//! }
  405    430   
//!
  406    431   
//! async fn http_response_code(input: input::HttpResponseCodeInput) -> output::HttpResponseCodeOutput {
  407    432   
//!     todo!()
  408    433   
//! }
  409    434   
//!
  410    435   
//! async fn http_string_payload(input: input::HttpStringPayloadInput) -> output::HttpStringPayloadOutput {
  411    436   
//!     todo!()
  412    437   
//! }
  413    438   
//!
  414    439   
//! async fn ignore_query_params_in_response(input: input::IgnoreQueryParamsInResponseInput) -> output::IgnoreQueryParamsInResponseOutput {
  415    440   
//!     todo!()
  416    441   
//! }
  417    442   
//!
  418    443   
//! async fn input_and_output_with_headers(input: input::InputAndOutputWithHeadersInput) -> Result<output::InputAndOutputWithHeadersOutput, error::InputAndOutputWithHeadersError> {
  419    444   
//!     todo!()
  420    445   
//! }
  421    446   
//!
         447  +
//! async fn input_stream(input: input::InputStreamInput) -> Result<output::InputStreamOutput, error::InputStreamError> {
         448  +
//!     todo!()
         449  +
//! }
         450  +
//!
         451  +
//! async fn input_stream_with_initial_request(input: input::InputStreamWithInitialRequestInput) -> Result<output::InputStreamWithInitialRequestOutput, error::InputStreamWithInitialRequestError> {
         452  +
//!     todo!()
         453  +
//! }
         454  +
//!
  422    455   
//! async fn json_blobs(input: input::JsonBlobsInput) -> output::JsonBlobsOutput {
  423    456   
//!     todo!()
  424    457   
//! }
  425    458   
//!
  426    459   
//! async fn json_enums(input: input::JsonEnumsInput) -> Result<output::JsonEnumsOutput, error::JsonEnumsError> {
  427    460   
//!     todo!()
  428    461   
//! }
  429    462   
//!
  430    463   
//! async fn json_int_enums(input: input::JsonIntEnumsInput) -> Result<output::JsonIntEnumsOutput, error::JsonIntEnumsError> {
  431    464   
//!     todo!()
@@ -588,621 +647,688 @@
  608    641   
//! }
  609    642   
//!
  610    643   
//! async fn operation_with_defaults(input: input::OperationWithDefaultsInput) -> Result<output::OperationWithDefaultsOutput, error::OperationWithDefaultsError> {
  611    644   
//!     todo!()
  612    645   
//! }
  613    646   
//!
  614    647   
//! async fn operation_with_nested_structure(input: input::OperationWithNestedStructureInput) -> Result<output::OperationWithNestedStructureOutput, error::OperationWithNestedStructureError> {
  615    648   
//!     todo!()
  616    649   
//! }
  617    650   
//!
         651  +
//! async fn output_stream(input: input::OutputStreamInput) -> Result<output::OutputStreamOutput, error::OutputStreamError> {
         652  +
//!     todo!()
         653  +
//! }
         654  +
//!
         655  +
//! async fn output_stream_with_initial_response(input: input::OutputStreamWithInitialResponseInput) -> Result<output::OutputStreamWithInitialResponseOutput, error::OutputStreamWithInitialResponseError> {
         656  +
//!     todo!()
         657  +
//! }
         658  +
//!
  618    659   
//! async fn post_player_action(input: input::PostPlayerActionInput) -> output::PostPlayerActionOutput {
  619    660   
//!     todo!()
  620    661   
//! }
  621    662   
//!
  622    663   
//! async fn post_union_with_json_name(input: input::PostUnionWithJsonNameInput) -> output::PostUnionWithJsonNameOutput {
  623    664   
//!     todo!()
  624    665   
//! }
  625    666   
//!
  626    667   
//! async fn put_with_content_encoding(input: input::PutWithContentEncodingInput) -> output::PutWithContentEncodingOutput {
  627    668   
//!     todo!()
@@ -751,792 +781,828 @@
  771    812   
/// /* ServerRustModule.kt:55 */Data primitives referenced by other data types.
  772    813   
pub mod types;
  773    814   
  774    815   
/// /* ServerRustModule.kt:55 */Unconstrained types for constrained shapes.
  775    816   
/* RustModule.kt:172 */
  776    817   
mod unconstrained;
  777    818   
  778    819   
/* RustModule.kt:172 */
  779    820   
mod mimes;
  780    821   
         822  +
/// /* CodegenDelegator.kt:52 */Support structures for SigV4 signed event streams
         823  +
pub mod sigv4_event_stream;
         824  +
         825  +
/* RustModule.kt:172 */
         826  +
mod event_stream_serde;
         827  +
  781    828   
pub(crate) mod protocol_serde;

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/mimes.rs

@@ -1,1 +0,41 @@
    9      9   
   10     10   
/* ServerHttpBoundProtocolGenerator.kt:394 */
   11     11   
pub(crate) static CONTENT_TYPE_TEXT_PLAIN: std::sync::LazyLock<::mime::Mime> =
   12     12   
    std::sync::LazyLock::new(|| {
   13     13   
        "text/plain"
   14     14   
            .parse::<::mime::Mime>()
   15     15   
            .expect("BUG: MIME parsing failed, content_type is not valid")
   16     16   
    });
   17     17   
   18     18   
/* ServerHttpBoundProtocolGenerator.kt:394 */
   19         -
pub(crate) static CONTENT_TYPE_IMAGE_JPEG: std::sync::LazyLock<::mime::Mime> =
          19  +
pub(crate) static CONTENT_TYPE_APPLICATION_OCTET_STREAM: std::sync::LazyLock<::mime::Mime> =
   20     20   
    std::sync::LazyLock::new(|| {
   21         -
        "image/jpeg"
          21  +
        "application/octet-stream"
   22     22   
            .parse::<::mime::Mime>()
   23     23   
            .expect("BUG: MIME parsing failed, content_type is not valid")
   24     24   
    });
   25     25   
   26     26   
/* ServerHttpBoundProtocolGenerator.kt:394 */
   27         -
pub(crate) static CONTENT_TYPE_APPLICATION_OCTET_STREAM: std::sync::LazyLock<::mime::Mime> =
          27  +
pub(crate) static CONTENT_TYPE_IMAGE_JPEG: std::sync::LazyLock<::mime::Mime> =
   28     28   
    std::sync::LazyLock::new(|| {
   29         -
        "application/octet-stream"
          29  +
        "image/jpeg"
   30     30   
            .parse::<::mime::Mime>()
   31     31   
            .expect("BUG: MIME parsing failed, content_type is not valid")
   32     32   
    });
          33  +
          34  +
/* ServerHttpBoundProtocolGenerator.kt:394 */
          35  +
pub(crate) static CONTENT_TYPE_APPLICATION_VND_AMAZON_EVENTSTREAM: std::sync::LazyLock<
          36  +
    ::mime::Mime,
          37  +
> = std::sync::LazyLock::new(|| {
          38  +
    "application/vnd.amazon.eventstream"
          39  +
        .parse::<::mime::Mime>()
          40  +
        .expect("BUG: MIME parsing failed, content_type is not valid")
          41  +
});

tmp-codegen-diff/codegen-server-test/rest_json-http0x/rust-server-codegen/src/model.rs

@@ -1,1 +2853,3782 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
/* StructureGenerator.kt:197 */
    3         -
/// /* StructureGenerator.kt:197 */Describes one specific validation failure for an input member.
           2  +
/* ConstrainedCollectionGenerator.kt:93 */
           3  +
#[allow(missing_docs)] // documentation missing in model
           4  +
/// /* ConstrainedCollectionGenerator.kt:94 */
           5  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
           6  +
/// [constraint traits]. Use [`StringSet::try_from`] to construct values of this type.
           7  +
///
           8  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
           9  +
///
    4     10   
/* RustType.kt:534 */
    5     11   
#[derive(
    6     12   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
    7     13   
)]
    8         -
pub /* StructureGenerator.kt:201 */ struct ValidationExceptionField {
    9         -
    /// /* StructureGenerator.kt:231 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
   10         -
    pub path: ::std::string::String,
   11         -
    /// /* StructureGenerator.kt:231 */A detailed description of the validation failure.
   12         -
    pub message: ::std::string::String,
   13         -
    /* StructureGenerator.kt:201 */
   14         -
}
   15         -
/* StructureGenerator.kt:135 */
   16         -
impl ValidationExceptionField {
   17         -
    /// /* StructureGenerator.kt:231 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
   18         -
    /* StructureGenerator.kt:166 */
   19         -
    pub fn path(&self) -> &str {
   20         -
        /* StructureGenerator.kt:171 */
   21         -
        use std::ops::Deref;
   22         -
        self.path.deref()
   23         -
        /* StructureGenerator.kt:166 */
          14  +
pub /* ConstrainedCollectionGenerator.kt:97 */ struct StringSet(
          15  +
    pub(crate) ::std::vec::Vec<::std::string::String>,
          16  +
);
          17  +
/* ConstrainedCollectionGenerator.kt:104 */
          18  +
impl StringSet {
          19  +
    /* ConstrainedCollectionGenerator.kt:106 */
          20  +
    /// Returns an immutable reference to the underlying [`::std::vec::Vec<::std::string::String>`].
          21  +
    pub fn inner(&self) -> &::std::vec::Vec<::std::string::String> {
          22  +
        &self.0
   24     23   
    }
   25         -
    /// /* StructureGenerator.kt:231 */A detailed description of the validation failure.
   26         -
    /* StructureGenerator.kt:166 */
   27         -
    pub fn message(&self) -> &str {
   28         -
        /* StructureGenerator.kt:171 */
   29         -
        use std::ops::Deref;
   30         -
        self.message.deref()
   31         -
        /* StructureGenerator.kt:166 */
          24  +
    /* ConstrainedCollectionGenerator.kt:116 */
          25  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::string::String>`].
          26  +
    pub fn into_inner(self) -> ::std::vec::Vec<::std::string::String> {
          27  +
        self.0
   32     28   
    }
   33         -
    /* StructureGenerator.kt:135 */
          29  +
          30  +
    fn check_unique_items(
          31  +
        items: ::std::vec::Vec<::std::string::String>,
          32  +
    ) -> ::std::result::Result<
          33  +
        ::std::vec::Vec<::std::string::String>,
          34  +
        crate::model::string_set::ConstraintViolation,
          35  +
    > {
          36  +
        let mut seen = ::std::collections::HashMap::new();
          37  +
        let mut duplicate_indices = ::std::vec::Vec::new();
          38  +
        for (idx, item) in items.iter().enumerate() {
          39  +
            if let Some(prev_idx) = seen.insert(item, idx) {
          40  +
                duplicate_indices.push(prev_idx);
          41  +
            }
          42  +
        }
          43  +
          44  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
          45  +
        for idx in &duplicate_indices {
          46  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
          47  +
                last_duplicate_indices.push(prev_idx);
          48  +
            }
          49  +
        }
          50  +
        duplicate_indices.extend(last_duplicate_indices);
          51  +
          52  +
        if !duplicate_indices.is_empty() {
          53  +
            debug_assert!(duplicate_indices.len() >= 2);
          54  +
            Err(crate::model::string_set::ConstraintViolation::UniqueItems {
          55  +
                duplicate_indices,
          56  +
                original: items,
          57  +
            })
          58  +
        } else {
          59  +
            Ok(items)
          60  +
        }
          61  +
    }
          62  +
    /* ConstrainedCollectionGenerator.kt:104 */
   34     63   
}
   35         -
/* ServerCodegenVisitor.kt:356 */
   36         -
impl ValidationExceptionField {
   37         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ValidationExceptionField`](crate::model::ValidationExceptionField).
   38         -
    /* ServerBuilderGenerator.kt:295 */
   39         -
    pub fn builder() -> crate::model::validation_exception_field::Builder {
   40         -
        /* ServerBuilderGenerator.kt:296 */
   41         -
        crate::model::validation_exception_field::Builder::default()
   42         -
        /* ServerBuilderGenerator.kt:295 */
          64  +
/* ConstrainedCollectionGenerator.kt:133 */
          65  +
impl ::std::convert::TryFrom<::std::vec::Vec<::std::string::String>> for StringSet {
          66  +
    type Error = crate::model::string_set::ConstraintViolation;
          67  +
          68  +
    /// Constructs a `StringSet` from an [`::std::vec::Vec<::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
          69  +
    fn try_from(
          70  +
        value: ::std::vec::Vec<::std::string::String>,
          71  +
    ) -> ::std::result::Result<Self, Self::Error> {
          72  +
        let value = Self::check_unique_items(value)?;
          73  +
          74  +
        Ok(Self(value))
   43     75   
    }
   44         -
    /* ServerCodegenVisitor.kt:356 */
   45     76   
}
   46     77   
   47         -
/* StructureGenerator.kt:197 */
          78  +
impl ::std::convert::From<StringSet> for ::std::vec::Vec<::std::string::String> {
          79  +
    fn from(value: StringSet) -> Self {
          80  +
        value.into_inner()
          81  +
    }
          82  +
}
          83  +
/* ConstrainedCollectionGenerator.kt:181 */
          84  +
impl crate::constrained::Constrained for StringSet {
          85  +
    type Unconstrained = crate::unconstrained::string_set_unconstrained::StringSetUnconstrained;
          86  +
}
          87  +
          88  +
/* EnumGenerator.kt:181 */
   48     89   
#[allow(missing_docs)] // documentation missing in model
   49     90   
/* RustType.kt:534 */
   50     91   
#[derive(
   51         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          92  +
    ::std::clone::Clone,
          93  +
    ::std::cmp::Eq,
          94  +
    ::std::cmp::Ord,
          95  +
    ::std::cmp::PartialEq,
          96  +
    ::std::cmp::PartialOrd,
          97  +
    ::std::fmt::Debug,
          98  +
    ::std::hash::Hash,
   52     99   
)]
   53         -
pub /* StructureGenerator.kt:201 */ struct Dialog {
   54         -
    /* StructureGenerator.kt:231 */
         100  +
pub /* EnumGenerator.kt:298 */ enum FooEnum {
         101  +
    /* EnumGenerator.kt:181 */
   55    102   
    #[allow(missing_docs)] // documentation missing in model
   56         -
    pub language: ::std::option::Option<::std::string::String>,
   57         -
    /* StructureGenerator.kt:231 */
         103  +
    /* EnumGenerator.kt:170 */
         104  +
    Zero,
         105  +
    /* EnumGenerator.kt:181 */
   58    106   
    #[allow(missing_docs)] // documentation missing in model
   59         -
    pub greeting: ::std::string::String,
   60         -
    /* StructureGenerator.kt:231 */
         107  +
    /* EnumGenerator.kt:170 */
         108  +
    One,
         109  +
    /* EnumGenerator.kt:181 */
   61    110   
    #[allow(missing_docs)] // documentation missing in model
   62         -
    pub farewell: ::std::option::Option<crate::model::Farewell>,
   63         -
    /* StructureGenerator.kt:201 */
   64         -
}
   65         -
/* StructureGenerator.kt:135 */
   66         -
impl Dialog {
   67         -
    /* StructureGenerator.kt:231 */
         111  +
    /* EnumGenerator.kt:170 */
         112  +
    Bar,
         113  +
    /* EnumGenerator.kt:181 */
   68    114   
    #[allow(missing_docs)] // documentation missing in model
   69         -
                           /* StructureGenerator.kt:166 */
   70         -
    pub fn language(&self) -> ::std::option::Option<&str> {
   71         -
        /* StructureGenerator.kt:169 */
   72         -
        self.language.as_deref()
   73         -
        /* StructureGenerator.kt:166 */
   74         -
    }
   75         -
    /* StructureGenerator.kt:231 */
         115  +
    /* EnumGenerator.kt:170 */
         116  +
    Baz,
         117  +
    /* EnumGenerator.kt:181 */
   76    118   
    #[allow(missing_docs)] // documentation missing in model
   77         -
                           /* StructureGenerator.kt:166 */
   78         -
    pub fn greeting(&self) -> &str {
   79         -
        /* StructureGenerator.kt:171 */
   80         -
        use std::ops::Deref;
   81         -
        self.greeting.deref()
   82         -
        /* StructureGenerator.kt:166 */
         119  +
    /* EnumGenerator.kt:170 */
         120  +
    Foo,
         121  +
    /* EnumGenerator.kt:298 */
         122  +
}
         123  +
/// /* CodegenDelegator.kt:52 */See [`FooEnum`](crate::model::FooEnum).
         124  +
pub mod foo_enum {
         125  +
    #[derive(Debug, PartialEq)]
         126  +
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
         127  +
         128  +
    impl ::std::fmt::Display for ConstraintViolation {
         129  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         130  +
            write!(
         131  +
                f,
         132  +
                r#"Value provided for 'aws.protocoltests.shared#FooEnum' failed to satisfy constraint: Member must satisfy enum value set: [Foo, Baz, Bar, 1, 0]"#
         133  +
            )
         134  +
        }
   83    135   
    }
   84         -
    /* StructureGenerator.kt:231 */
   85         -
    #[allow(missing_docs)] // documentation missing in model
   86         -
                           /* StructureGenerator.kt:166 */
   87         -
    pub fn farewell(&self) -> ::std::option::Option<&crate::model::Farewell> {
   88         -
        /* StructureGenerator.kt:170 */
   89         -
        self.farewell.as_ref()
   90         -
        /* StructureGenerator.kt:166 */
         136  +
         137  +
    impl ::std::error::Error for ConstraintViolation {}
         138  +
    impl ConstraintViolation {
         139  +
        pub(crate) fn as_validation_exception_field(
         140  +
            self,
         141  +
            path: ::std::string::String,
         142  +
        ) -> crate::model::ValidationExceptionField {
         143  +
            crate::model::ValidationExceptionField {
         144  +
                message: format!(
         145  +
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [Foo, Baz, Bar, 1, 0]"#,
         146  +
                    &path
         147  +
                ),
         148  +
                path,
         149  +
            }
         150  +
        }
   91    151   
    }
   92         -
    /* StructureGenerator.kt:135 */
         152  +
         153  +
    /* ServerEnumGenerator.kt:47 */
   93    154   
}
   94         -
/* ServerCodegenVisitor.kt:356 */
   95         -
impl Dialog {
   96         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Dialog`](crate::model::Dialog).
   97         -
    /* ServerBuilderGenerator.kt:295 */
   98         -
    pub fn builder() -> crate::model::dialog::Builder {
   99         -
        /* ServerBuilderGenerator.kt:296 */
  100         -
        crate::model::dialog::Builder::default()
  101         -
        /* ServerBuilderGenerator.kt:295 */
         155  +
/* ServerEnumGenerator.kt:88 */
         156  +
impl ::std::convert::TryFrom<&str> for FooEnum {
         157  +
    type Error = crate::model::foo_enum::ConstraintViolation;
         158  +
    fn try_from(
         159  +
        s: &str,
         160  +
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
         161  +
        match s {
         162  +
            "0" => Ok(FooEnum::Zero),
         163  +
            "1" => Ok(FooEnum::One),
         164  +
            "Bar" => Ok(FooEnum::Bar),
         165  +
            "Baz" => Ok(FooEnum::Baz),
         166  +
            "Foo" => Ok(FooEnum::Foo),
         167  +
            _ => Err(crate::model::foo_enum::ConstraintViolation(s.to_owned())),
         168  +
        }
  102    169   
    }
  103         -
    /* ServerCodegenVisitor.kt:356 */
  104    170   
}
  105         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
  106         -
impl crate::constrained::Constrained for crate::model::Dialog {
  107         -
    type Unconstrained = crate::model::dialog::Builder;
         171  +
impl ::std::convert::TryFrom<::std::string::String> for FooEnum {
         172  +
    type Error = crate::model::foo_enum::ConstraintViolation;
         173  +
    fn try_from(
         174  +
        s: ::std::string::String,
         175  +
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
         176  +
    {
         177  +
        s.as_str().try_into()
         178  +
    }
  108    179   
}
  109         -
  110         -
/* StructureGenerator.kt:197 */
  111         -
#[allow(missing_docs)] // documentation missing in model
  112         -
/* RustType.kt:534 */
  113         -
#[derive(
  114         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  115         -
)]
  116         -
pub /* StructureGenerator.kt:201 */ struct Farewell {
  117         -
    /* StructureGenerator.kt:231 */
  118         -
    #[allow(missing_docs)] // documentation missing in model
  119         -
    pub phrase: ::std::string::String,
  120         -
    /* StructureGenerator.kt:201 */
         180  +
/* ServerEnumGenerator.kt:148 */
         181  +
impl std::str::FromStr for FooEnum {
         182  +
    type Err = crate::model::foo_enum::ConstraintViolation;
         183  +
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
         184  +
        Self::try_from(s)
         185  +
    }
  121    186   
}
  122         -
/* StructureGenerator.kt:135 */
  123         -
impl Farewell {
  124         -
    /* StructureGenerator.kt:231 */
  125         -
    #[allow(missing_docs)] // documentation missing in model
  126         -
                           /* StructureGenerator.kt:166 */
  127         -
    pub fn phrase(&self) -> &str {
  128         -
        /* StructureGenerator.kt:171 */
  129         -
        use std::ops::Deref;
  130         -
        self.phrase.deref()
  131         -
        /* StructureGenerator.kt:166 */
         187  +
/* EnumGenerator.kt:309 */
         188  +
impl FooEnum {
         189  +
    /// Returns the `&str` value of the enum member.
         190  +
    pub fn as_str(&self) -> &str {
         191  +
        match self {
         192  +
            FooEnum::Zero => "0",
         193  +
            FooEnum::One => "1",
         194  +
            FooEnum::Bar => "Bar",
         195  +
            FooEnum::Baz => "Baz",
         196  +
            FooEnum::Foo => "Foo",
         197  +
        }
         198  +
    }
         199  +
    /// Returns all the `&str` representations of the enum members.
         200  +
    pub const fn values() -> &'static [&'static str] {
         201  +
        &["0", "1", "Bar", "Baz", "Foo"]
  132    202   
    }
  133         -
    /* StructureGenerator.kt:135 */
  134    203   
}
  135         -
/* ServerCodegenVisitor.kt:356 */
  136         -
impl Farewell {
  137         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Farewell`](crate::model::Farewell).
  138         -
    /* ServerBuilderGenerator.kt:295 */
  139         -
    pub fn builder() -> crate::model::farewell::Builder {
  140         -
        /* ServerBuilderGenerator.kt:296 */
  141         -
        crate::model::farewell::Builder::default()
  142         -
        /* ServerBuilderGenerator.kt:295 */
         204  +
/* EnumGenerator.kt:254 */
         205  +
impl ::std::convert::AsRef<str> for FooEnum {
         206  +
    fn as_ref(&self) -> &str {
         207  +
        self.as_str()
  143    208   
    }
  144         -
    /* ServerCodegenVisitor.kt:356 */
  145    209   
}
  146         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
  147         -
impl crate::constrained::Constrained for crate::model::Farewell {
  148         -
    type Unconstrained = crate::model::farewell::Builder;
         210  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
         211  +
impl crate::constrained::Constrained for FooEnum {
         212  +
    type Unconstrained = ::std::string::String;
         213  +
}
         214  +
         215  +
impl ::std::convert::From<::std::string::String>
         216  +
    for crate::constrained::MaybeConstrained<crate::model::FooEnum>
         217  +
{
         218  +
    fn from(value: ::std::string::String) -> Self {
         219  +
        Self::Unconstrained(value)
         220  +
    }
         221  +
}
         222  +
         223  +
/* ConstrainedCollectionGenerator.kt:93 */
         224  +
#[allow(missing_docs)] // documentation missing in model
         225  +
/// /* ConstrainedCollectionGenerator.kt:94 */
         226  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
         227  +
/// [constraint traits]. Use [`IntegerSet::try_from`] to construct values of this type.
         228  +
///
         229  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
         230  +
///
         231  +
/* RustType.kt:534 */
         232  +
#[derive(
         233  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         234  +
)]
         235  +
pub /* ConstrainedCollectionGenerator.kt:97 */ struct IntegerSet(pub(crate) ::std::vec::Vec<i32>);
         236  +
/* ConstrainedCollectionGenerator.kt:104 */
         237  +
impl IntegerSet {
         238  +
    /* ConstrainedCollectionGenerator.kt:106 */
         239  +
    /// Returns an immutable reference to the underlying [`::std::vec::Vec<i32>`].
         240  +
    pub fn inner(&self) -> &::std::vec::Vec<i32> {
         241  +
        &self.0
         242  +
    }
         243  +
    /* ConstrainedCollectionGenerator.kt:116 */
         244  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<i32>`].
         245  +
    pub fn into_inner(self) -> ::std::vec::Vec<i32> {
         246  +
        self.0
         247  +
    }
         248  +
         249  +
    fn check_unique_items(
         250  +
        items: ::std::vec::Vec<i32>,
         251  +
    ) -> ::std::result::Result<::std::vec::Vec<i32>, crate::model::integer_set::ConstraintViolation>
         252  +
    {
         253  +
        let mut seen = ::std::collections::HashMap::new();
         254  +
        let mut duplicate_indices = ::std::vec::Vec::new();
         255  +
        for (idx, item) in items.iter().enumerate() {
         256  +
            if let Some(prev_idx) = seen.insert(item, idx) {
         257  +
                duplicate_indices.push(prev_idx);
         258  +
            }
         259  +
        }
         260  +
         261  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
         262  +
        for idx in &duplicate_indices {
         263  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
         264  +
                last_duplicate_indices.push(prev_idx);
         265  +
            }
         266  +
        }
         267  +
        duplicate_indices.extend(last_duplicate_indices);
         268  +
         269  +
        if !duplicate_indices.is_empty() {
         270  +
            debug_assert!(duplicate_indices.len() >= 2);
         271  +
            Err(
         272  +
                crate::model::integer_set::ConstraintViolation::UniqueItems {
         273  +
                    duplicate_indices,
         274  +
                    original: items,
         275  +
                },
         276  +
            )
         277  +
        } else {
         278  +
            Ok(items)
         279  +
        }
         280  +
    }
         281  +
    /* ConstrainedCollectionGenerator.kt:104 */
         282  +
}
         283  +
/* ConstrainedCollectionGenerator.kt:133 */
         284  +
impl ::std::convert::TryFrom<::std::vec::Vec<i32>> for IntegerSet {
         285  +
    type Error = crate::model::integer_set::ConstraintViolation;
         286  +
         287  +
    /// Constructs a `IntegerSet` from an [`::std::vec::Vec<i32>`], failing when the provided value does not satisfy the modeled constraints.
         288  +
    fn try_from(value: ::std::vec::Vec<i32>) -> ::std::result::Result<Self, Self::Error> {
         289  +
        let value = Self::check_unique_items(value)?;
         290  +
         291  +
        Ok(Self(value))
         292  +
    }
         293  +
}
         294  +
         295  +
impl ::std::convert::From<IntegerSet> for ::std::vec::Vec<i32> {
         296  +
    fn from(value: IntegerSet) -> Self {
         297  +
        value.into_inner()
         298  +
    }
         299  +
}
         300  +
/* ConstrainedCollectionGenerator.kt:181 */
         301  +
impl crate::constrained::Constrained for IntegerSet {
         302  +
    type Unconstrained = crate::unconstrained::integer_set_unconstrained::IntegerSetUnconstrained;
  149    303   
}
  150    304   
  151    305   
/* StructureGenerator.kt:197 */
  152    306   
#[allow(missing_docs)] // documentation missing in model
  153    307   
/* RustType.kt:534 */
  154         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  155         -
pub /* StructureGenerator.kt:201 */ struct TopLevel {
  156         -
    /* StructureGenerator.kt:231 */
  157         -
    #[allow(missing_docs)] // documentation missing in model
  158         -
    pub dialog: crate::model::Dialog,
         308  +
#[derive(
         309  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         310  +
)]
         311  +
pub /* StructureGenerator.kt:201 */ struct NestedPayload {
  159    312   
    /* StructureGenerator.kt:231 */
  160    313   
    #[allow(missing_docs)] // documentation missing in model
  161         -
    pub dialog_list: ::std::vec::Vec<crate::model::Dialog>,
         314  +
    pub greeting: ::std::option::Option<::std::string::String>,
  162    315   
    /* StructureGenerator.kt:231 */
  163    316   
    #[allow(missing_docs)] // documentation missing in model
  164         -
    pub dialog_map: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
         317  +
    pub name: ::std::option::Option<::std::string::String>,
  165    318   
    /* StructureGenerator.kt:201 */
  166    319   
}
  167    320   
/* StructureGenerator.kt:135 */
  168         -
impl TopLevel {
  169         -
    /* StructureGenerator.kt:231 */
  170         -
    #[allow(missing_docs)] // documentation missing in model
  171         -
                           /* StructureGenerator.kt:166 */
  172         -
    pub fn dialog(&self) -> &crate::model::Dialog {
  173         -
        /* StructureGenerator.kt:172 */
  174         -
        &self.dialog
  175         -
        /* StructureGenerator.kt:166 */
  176         -
    }
         321  +
impl NestedPayload {
  177    322   
    /* StructureGenerator.kt:231 */
  178    323   
    #[allow(missing_docs)] // documentation missing in model
  179    324   
                           /* StructureGenerator.kt:166 */
  180         -
    pub fn dialog_list(&self) -> &[crate::model::Dialog] {
  181         -
        /* StructureGenerator.kt:171 */
  182         -
        use std::ops::Deref;
  183         -
        self.dialog_list.deref()
         325  +
    pub fn greeting(&self) -> ::std::option::Option<&str> {
         326  +
        /* StructureGenerator.kt:169 */
         327  +
        self.greeting.as_deref()
  184    328   
        /* StructureGenerator.kt:166 */
  185    329   
    }
  186    330   
    /* StructureGenerator.kt:231 */
  187    331   
    #[allow(missing_docs)] // documentation missing in model
  188    332   
                           /* StructureGenerator.kt:166 */
  189         -
    pub fn dialog_map(
  190         -
        &self,
  191         -
    ) -> &::std::collections::HashMap<::std::string::String, crate::model::Dialog> {
  192         -
        /* StructureGenerator.kt:172 */
  193         -
        &self.dialog_map
         333  +
    pub fn name(&self) -> ::std::option::Option<&str> {
         334  +
        /* StructureGenerator.kt:169 */
         335  +
        self.name.as_deref()
  194    336   
        /* StructureGenerator.kt:166 */
  195    337   
    }
  196    338   
    /* StructureGenerator.kt:135 */
  197    339   
}
  198    340   
/* ServerCodegenVisitor.kt:356 */
  199         -
impl TopLevel {
  200         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`TopLevel`](crate::model::TopLevel).
         341  +
impl NestedPayload {
         342  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`NestedPayload`](crate::model::NestedPayload).
  201    343   
    /* ServerBuilderGenerator.kt:295 */
  202         -
    pub fn builder() -> crate::model::top_level::Builder {
         344  +
    pub fn builder() -> crate::model::nested_payload::Builder {
  203    345   
        /* ServerBuilderGenerator.kt:296 */
  204         -
        crate::model::top_level::Builder::default()
         346  +
        crate::model::nested_payload::Builder::default()
  205    347   
        /* ServerBuilderGenerator.kt:295 */
  206    348   
    }
  207    349   
    /* ServerCodegenVisitor.kt:356 */
  208    350   
}
  209    351   
/* ServerStructureConstrainedTraitImpl.kt:21 */
  210         -
impl crate::constrained::Constrained for crate::model::TopLevel {
  211         -
    type Unconstrained = crate::model::top_level::Builder;
         352  +
impl crate::constrained::Constrained for crate::model::NestedPayload {
         353  +
    type Unconstrained = crate::model::nested_payload::Builder;
  212    354   
}
  213    355   
  214    356   
/* EnumGenerator.kt:181 */
  215    357   
#[allow(missing_docs)] // documentation missing in model
  216    358   
/* RustType.kt:534 */
  217    359   
#[derive(
  218    360   
    ::std::clone::Clone,
  219    361   
    ::std::cmp::Eq,
  220    362   
    ::std::cmp::Ord,
  221    363   
    ::std::cmp::PartialEq,
  222    364   
    ::std::cmp::PartialOrd,
  223    365   
    ::std::fmt::Debug,
  224    366   
    ::std::hash::Hash,
  225    367   
)]
  226         -
pub /* EnumGenerator.kt:298 */ enum TestEnum {
  227         -
    /* EnumGenerator.kt:181 */
  228         -
    #[allow(missing_docs)] // documentation missing in model
  229         -
    /* EnumGenerator.kt:170 */
  230         -
    Bar,
  231         -
    /* EnumGenerator.kt:181 */
  232         -
    #[allow(missing_docs)] // documentation missing in model
  233         -
    /* EnumGenerator.kt:170 */
  234         -
    Baz,
         368  +
pub /* EnumGenerator.kt:298 */ enum StringEnum {
  235    369   
    /* EnumGenerator.kt:181 */
  236    370   
    #[allow(missing_docs)] // documentation missing in model
  237    371   
    /* EnumGenerator.kt:170 */
  238         -
    Foo,
         372  +
    V,
  239    373   
    /* EnumGenerator.kt:298 */
  240    374   
}
  241         -
/// /* CodegenDelegator.kt:52 */See [`TestEnum`](crate::model::TestEnum).
  242         -
pub mod test_enum {
         375  +
/// /* CodegenDelegator.kt:52 */See [`StringEnum`](crate::model::StringEnum).
         376  +
pub mod string_enum {
  243    377   
    #[derive(Debug, PartialEq)]
  244    378   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  245    379   
  246    380   
    impl ::std::fmt::Display for ConstraintViolation {
  247    381   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  248    382   
            write!(
  249    383   
                f,
  250         -
                r#"Value provided for 'aws.protocoltests.restjson#TestEnum' failed to satisfy constraint: Member must satisfy enum value set: [FOO, BAR, BAZ]"#
         384  +
                r#"Value provided for 'aws.protocoltests.restjson#StringEnum' failed to satisfy constraint: Member must satisfy enum value set: [enumvalue]"#
  251    385   
            )
  252    386   
        }
  253    387   
    }
  254    388   
  255    389   
    impl ::std::error::Error for ConstraintViolation {}
  256    390   
    impl ConstraintViolation {
  257    391   
        pub(crate) fn as_validation_exception_field(
  258    392   
            self,
  259    393   
            path: ::std::string::String,
  260    394   
        ) -> crate::model::ValidationExceptionField {
  261    395   
            crate::model::ValidationExceptionField {
  262    396   
                message: format!(
  263         -
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [FOO, BAR, BAZ]"#,
         397  +
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [enumvalue]"#,
  264    398   
                    &path
  265    399   
                ),
  266    400   
                path,
  267    401   
            }
  268    402   
        }
  269    403   
    }
  270    404   
  271    405   
    /* ServerEnumGenerator.kt:47 */
  272    406   
}
  273    407   
/* ServerEnumGenerator.kt:88 */
  274         -
impl ::std::convert::TryFrom<&str> for TestEnum {
  275         -
    type Error = crate::model::test_enum::ConstraintViolation;
         408  +
impl ::std::convert::TryFrom<&str> for StringEnum {
         409  +
    type Error = crate::model::string_enum::ConstraintViolation;
  276    410   
    fn try_from(
  277    411   
        s: &str,
  278    412   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  279    413   
        match s {
  280         -
            "BAR" => Ok(TestEnum::Bar),
  281         -
            "BAZ" => Ok(TestEnum::Baz),
  282         -
            "FOO" => Ok(TestEnum::Foo),
  283         -
            _ => Err(crate::model::test_enum::ConstraintViolation(s.to_owned())),
         414  +
            "enumvalue" => Ok(StringEnum::V),
         415  +
            _ => Err(crate::model::string_enum::ConstraintViolation(s.to_owned())),
  284    416   
        }
  285    417   
    }
  286    418   
}
  287         -
impl ::std::convert::TryFrom<::std::string::String> for TestEnum {
  288         -
    type Error = crate::model::test_enum::ConstraintViolation;
         419  +
impl ::std::convert::TryFrom<::std::string::String> for StringEnum {
         420  +
    type Error = crate::model::string_enum::ConstraintViolation;
  289    421   
    fn try_from(
  290    422   
        s: ::std::string::String,
  291    423   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  292    424   
    {
  293    425   
        s.as_str().try_into()
  294    426   
    }
  295    427   
}
  296    428   
/* ServerEnumGenerator.kt:148 */
  297         -
impl std::str::FromStr for TestEnum {
  298         -
    type Err = crate::model::test_enum::ConstraintViolation;
         429  +
impl std::str::FromStr for StringEnum {
         430  +
    type Err = crate::model::string_enum::ConstraintViolation;
  299    431   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  300    432   
        Self::try_from(s)
  301    433   
    }
  302    434   
}
  303    435   
/* EnumGenerator.kt:309 */
  304         -
impl TestEnum {
         436  +
impl StringEnum {
  305    437   
    /// Returns the `&str` value of the enum member.
  306    438   
    pub fn as_str(&self) -> &str {
  307    439   
        match self {
  308         -
            TestEnum::Bar => "BAR",
  309         -
            TestEnum::Baz => "BAZ",
  310         -
            TestEnum::Foo => "FOO",
         440  +
            StringEnum::V => "enumvalue",
  311    441   
        }
  312    442   
    }
  313    443   
    /// Returns all the `&str` representations of the enum members.
  314    444   
    pub const fn values() -> &'static [&'static str] {
  315         -
        &["BAR", "BAZ", "FOO"]
         445  +
        &["enumvalue"]
  316    446   
    }
  317    447   
}
  318    448   
/* EnumGenerator.kt:254 */
  319         -
impl ::std::convert::AsRef<str> for TestEnum {
         449  +
impl ::std::convert::AsRef<str> for StringEnum {
  320    450   
    fn as_ref(&self) -> &str {
  321    451   
        self.as_str()
  322    452   
    }
  323    453   
}
  324    454   
/* ConstrainedTraitForEnumGenerator.kt:36 */
  325         -
impl crate::constrained::Constrained for TestEnum {
         455  +
impl crate::constrained::Constrained for StringEnum {
  326    456   
    type Unconstrained = ::std::string::String;
  327    457   
}
  328    458   
  329    459   
impl ::std::convert::From<::std::string::String>
  330         -
    for crate::constrained::MaybeConstrained<crate::model::TestEnum>
         460  +
    for crate::constrained::MaybeConstrained<crate::model::StringEnum>
  331    461   
{
  332    462   
    fn from(value: ::std::string::String) -> Self {
  333    463   
        Self::Unconstrained(value)
  334    464   
    }
  335    465   
}
  336    466   
  337         -
/* StructureGenerator.kt:197 */
         467  +
/* UnionGenerator.kt:67 */
  338    468   
#[allow(missing_docs)] // documentation missing in model
  339    469   
/* RustType.kt:534 */
  340    470   
#[derive(
  341    471   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  342    472   
)]
  343         -
pub /* StructureGenerator.kt:201 */ struct ClientOptionalDefaults {
  344         -
    /* StructureGenerator.kt:231 */
         473  +
pub /* UnionGenerator.kt:85 */ enum UnionPayload {
         474  +
    /* UnionGenerator.kt:90 */
  345    475   
    #[allow(missing_docs)] // documentation missing in model
  346         -
    pub member: i32,
  347         -
    /* StructureGenerator.kt:201 */
         476  +
    /* UnionGenerator.kt:190 */
         477  +
    Greeting(::std::string::String),
         478  +
    /* UnionGenerator.kt:85 */
  348    479   
}
  349         -
/* StructureGenerator.kt:135 */
  350         -
impl ClientOptionalDefaults {
  351         -
    /* StructureGenerator.kt:231 */
  352         -
    #[allow(missing_docs)] // documentation missing in model
  353         -
                           /* StructureGenerator.kt:166 */
  354         -
    pub fn member(&self) -> i32 {
  355         -
        /* StructureGenerator.kt:168 */
  356         -
        self.member
  357         -
        /* StructureGenerator.kt:166 */
  358         -
    }
  359         -
    /* StructureGenerator.kt:135 */
  360         -
}
  361         -
/* ServerCodegenVisitor.kt:356 */
  362         -
impl ClientOptionalDefaults {
  363         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ClientOptionalDefaults`](crate::model::ClientOptionalDefaults).
  364         -
    /* ServerBuilderGenerator.kt:295 */
  365         -
    pub fn builder() -> crate::model::client_optional_defaults::Builder {
  366         -
        /* ServerBuilderGenerator.kt:296 */
  367         -
        crate::model::client_optional_defaults::Builder::default()
  368         -
        /* ServerBuilderGenerator.kt:295 */
         480  +
/* UnionGenerator.kt:111 */
         481  +
impl UnionPayload {
         482  +
    /* RustType.kt:534 */
         483  +
    #[allow(irrefutable_let_patterns)]
         484  +
    /* UnionGenerator.kt:217 */
         485  +
    /// Tries to convert the enum instance into [`Greeting`](crate::model::UnionPayload::Greeting), extracting the inner [`String`](::std::string::String).
         486  +
    /* UnionGenerator.kt:222 */
         487  +
    /// Returns `Err(&Self)` if it can't be converted.
         488  +
    /* UnionGenerator.kt:223 */
         489  +
    pub fn as_greeting(&self) -> ::std::result::Result<&::std::string::String, &Self> {
         490  +
        /* UnionGenerator.kt:227 */
         491  +
        if let UnionPayload::Greeting(val) = &self {
         492  +
            ::std::result::Result::Ok(val)
         493  +
        } else {
         494  +
            ::std::result::Result::Err(self)
         495  +
        }
         496  +
        /* UnionGenerator.kt:223 */
  369    497   
    }
  370         -
    /* ServerCodegenVisitor.kt:356 */
  371         -
}
  372         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
  373         -
impl crate::constrained::Constrained for crate::model::ClientOptionalDefaults {
  374         -
    type Unconstrained = crate::model::client_optional_defaults::Builder;
         498  +
    /* UnionGenerator.kt:121 */
         499  +
    /// Returns true if this is a [`Greeting`](crate::model::UnionPayload::Greeting).
         500  +
    /* UnionGenerator.kt:122 */
         501  +
    pub fn is_greeting(&self) -> bool {
         502  +
        /* UnionGenerator.kt:123 */
         503  +
        self.as_greeting().is_ok()
         504  +
        /* UnionGenerator.kt:122 */
         505  +
    }
         506  +
    /* UnionGenerator.kt:111 */
  375    507   
}
  376    508   
  377    509   
/* StructureGenerator.kt:197 */
  378    510   
#[allow(missing_docs)] // documentation missing in model
  379    511   
/* RustType.kt:534 */
  380         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  381         -
pub /* StructureGenerator.kt:201 */ struct Defaults {
  382         -
    /* StructureGenerator.kt:231 */
  383         -
    #[allow(missing_docs)] // documentation missing in model
  384         -
    pub default_string: ::std::string::String,
  385         -
    /* StructureGenerator.kt:231 */
  386         -
    #[allow(missing_docs)] // documentation missing in model
  387         -
    pub default_boolean: bool,
  388         -
    /* StructureGenerator.kt:231 */
  389         -
    #[allow(missing_docs)] // documentation missing in model
  390         -
    pub default_list: ::std::vec::Vec<::std::string::String>,
  391         -
    /* StructureGenerator.kt:231 */
  392         -
    #[allow(missing_docs)] // documentation missing in model
  393         -
    pub default_document_map: ::aws_smithy_types::Document,
  394         -
    /* StructureGenerator.kt:231 */
  395         -
    #[allow(missing_docs)] // documentation missing in model
  396         -
    pub default_document_string: ::aws_smithy_types::Document,
  397         -
    /* StructureGenerator.kt:231 */
  398         -
    #[allow(missing_docs)] // documentation missing in model
  399         -
    pub default_document_boolean: ::aws_smithy_types::Document,
  400         -
    /* StructureGenerator.kt:231 */
  401         -
    #[allow(missing_docs)] // documentation missing in model
  402         -
    pub default_document_list: ::aws_smithy_types::Document,
  403         -
    /* StructureGenerator.kt:231 */
  404         -
    #[allow(missing_docs)] // documentation missing in model
  405         -
    pub default_null_document: ::std::option::Option<::aws_smithy_types::Document>,
  406         -
    /* StructureGenerator.kt:231 */
  407         -
    #[allow(missing_docs)] // documentation missing in model
  408         -
    pub default_timestamp: ::aws_smithy_types::DateTime,
  409         -
    /* StructureGenerator.kt:231 */
  410         -
    #[allow(missing_docs)] // documentation missing in model
  411         -
    pub default_blob: ::aws_smithy_types::Blob,
  412         -
    /* StructureGenerator.kt:231 */
  413         -
    #[allow(missing_docs)] // documentation missing in model
  414         -
    pub default_byte: i8,
  415         -
    /* StructureGenerator.kt:231 */
  416         -
    #[allow(missing_docs)] // documentation missing in model
  417         -
    pub default_short: i16,
  418         -
    /* StructureGenerator.kt:231 */
  419         -
    #[allow(missing_docs)] // documentation missing in model
  420         -
    pub default_integer: i32,
  421         -
    /* StructureGenerator.kt:231 */
  422         -
    #[allow(missing_docs)] // documentation missing in model
  423         -
    pub default_long: i64,
  424         -
    /* StructureGenerator.kt:231 */
  425         -
    #[allow(missing_docs)] // documentation missing in model
  426         -
    pub default_float: f32,
  427         -
    /* StructureGenerator.kt:231 */
  428         -
    #[allow(missing_docs)] // documentation missing in model
  429         -
    pub default_double: f64,
  430         -
    /* StructureGenerator.kt:231 */
  431         -
    #[allow(missing_docs)] // documentation missing in model
  432         -
    pub default_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  433         -
    /* StructureGenerator.kt:231 */
  434         -
    #[allow(missing_docs)] // documentation missing in model
  435         -
    pub default_enum: crate::model::TestEnum,
  436         -
    /* StructureGenerator.kt:231 */
  437         -
    #[allow(missing_docs)] // documentation missing in model
  438         -
    pub default_int_enum: i32,
  439         -
    /* StructureGenerator.kt:231 */
  440         -
    #[allow(missing_docs)] // documentation missing in model
  441         -
    pub empty_string: ::std::string::String,
  442         -
    /* StructureGenerator.kt:231 */
  443         -
    #[allow(missing_docs)] // documentation missing in model
  444         -
    pub false_boolean: bool,
  445         -
    /* StructureGenerator.kt:231 */
  446         -
    #[allow(missing_docs)] // documentation missing in model
  447         -
    pub empty_blob: ::aws_smithy_types::Blob,
  448         -
    /* StructureGenerator.kt:231 */
  449         -
    #[allow(missing_docs)] // documentation missing in model
  450         -
    pub zero_byte: i8,
  451         -
    /* StructureGenerator.kt:231 */
  452         -
    #[allow(missing_docs)] // documentation missing in model
  453         -
    pub zero_short: i16,
  454         -
    /* StructureGenerator.kt:231 */
  455         -
    #[allow(missing_docs)] // documentation missing in model
  456         -
    pub zero_integer: i32,
  457         -
    /* StructureGenerator.kt:231 */
  458         -
    #[allow(missing_docs)] // documentation missing in model
  459         -
    pub zero_long: i64,
  460         -
    /* StructureGenerator.kt:231 */
  461         -
    #[allow(missing_docs)] // documentation missing in model
  462         -
    pub zero_float: f32,
         512  +
#[derive(
         513  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         514  +
)]
         515  +
pub /* StructureGenerator.kt:201 */ struct ComplexNestedErrorData {
  463    516   
    /* StructureGenerator.kt:231 */
  464    517   
    #[allow(missing_docs)] // documentation missing in model
  465         -
    pub zero_double: f64,
         518  +
    pub foo: ::std::option::Option<::std::string::String>,
  466    519   
    /* StructureGenerator.kt:201 */
  467    520   
}
  468    521   
/* StructureGenerator.kt:135 */
  469         -
impl Defaults {
  470         -
    /* StructureGenerator.kt:231 */
  471         -
    #[allow(missing_docs)] // documentation missing in model
  472         -
                           /* StructureGenerator.kt:166 */
  473         -
    pub fn default_string(&self) -> &str {
  474         -
        /* StructureGenerator.kt:171 */
  475         -
        use std::ops::Deref;
  476         -
        self.default_string.deref()
  477         -
        /* StructureGenerator.kt:166 */
  478         -
    }
  479         -
    /* StructureGenerator.kt:231 */
  480         -
    #[allow(missing_docs)] // documentation missing in model
  481         -
                           /* StructureGenerator.kt:166 */
  482         -
    pub fn default_boolean(&self) -> bool {
  483         -
        /* StructureGenerator.kt:168 */
  484         -
        self.default_boolean
  485         -
        /* StructureGenerator.kt:166 */
  486         -
    }
         522  +
impl ComplexNestedErrorData {
  487    523   
    /* StructureGenerator.kt:231 */
  488    524   
    #[allow(missing_docs)] // documentation missing in model
  489    525   
                           /* StructureGenerator.kt:166 */
  490         -
    pub fn default_list(&self) -> &[::std::string::String] {
  491         -
        /* StructureGenerator.kt:171 */
  492         -
        use std::ops::Deref;
  493         -
        self.default_list.deref()
         526  +
    pub fn foo(&self) -> ::std::option::Option<&str> {
         527  +
        /* StructureGenerator.kt:169 */
         528  +
        self.foo.as_deref()
  494    529   
        /* StructureGenerator.kt:166 */
  495    530   
    }
  496         -
    /* StructureGenerator.kt:231 */
  497         -
    #[allow(missing_docs)] // documentation missing in model
  498         -
                           /* StructureGenerator.kt:166 */
  499         -
    pub fn default_document_map(&self) -> &::aws_smithy_types::Document {
  500         -
        /* StructureGenerator.kt:172 */
  501         -
        &self.default_document_map
  502         -
        /* StructureGenerator.kt:166 */
         531  +
    /* StructureGenerator.kt:135 */
         532  +
}
         533  +
/* ServerCodegenVisitor.kt:356 */
         534  +
impl ComplexNestedErrorData {
         535  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ComplexNestedErrorData`](crate::model::ComplexNestedErrorData).
         536  +
    /* ServerBuilderGenerator.kt:295 */
         537  +
    pub fn builder() -> crate::model::complex_nested_error_data::Builder {
         538  +
        /* ServerBuilderGenerator.kt:296 */
         539  +
        crate::model::complex_nested_error_data::Builder::default()
         540  +
        /* ServerBuilderGenerator.kt:295 */
  503    541   
    }
  504         -
    /* StructureGenerator.kt:231 */
  505         -
    #[allow(missing_docs)] // documentation missing in model
  506         -
                           /* StructureGenerator.kt:166 */
  507         -
    pub fn default_document_string(&self) -> &::aws_smithy_types::Document {
  508         -
        /* StructureGenerator.kt:172 */
  509         -
        &self.default_document_string
  510         -
        /* StructureGenerator.kt:166 */
         542  +
    /* ServerCodegenVisitor.kt:356 */
         543  +
}
         544  +
         545  +
/* ConstrainedCollectionGenerator.kt:93 */
         546  +
#[allow(missing_docs)] // documentation missing in model
         547  +
/// /* ConstrainedCollectionGenerator.kt:94 */
         548  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
         549  +
/// [constraint traits]. Use [`FooEnumSet::try_from`] to construct values of this type.
         550  +
///
         551  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
         552  +
///
         553  +
/* RustType.kt:534 */
         554  +
#[derive(
         555  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         556  +
)]
         557  +
pub /* ConstrainedCollectionGenerator.kt:97 */ struct FooEnumSet(
         558  +
    pub(crate) ::std::vec::Vec<crate::model::FooEnum>,
         559  +
);
         560  +
/* ConstrainedCollectionGenerator.kt:104 */
         561  +
impl FooEnumSet {
         562  +
    /* ConstrainedCollectionGenerator.kt:106 */
         563  +
    /// Returns an immutable reference to the underlying [`::std::vec::Vec<crate::model::FooEnum>`].
         564  +
    pub fn inner(&self) -> &::std::vec::Vec<crate::model::FooEnum> {
         565  +
        &self.0
  511    566   
    }
  512         -
    /* StructureGenerator.kt:231 */
  513         -
    #[allow(missing_docs)] // documentation missing in model
  514         -
                           /* StructureGenerator.kt:166 */
  515         -
    pub fn default_document_boolean(&self) -> &::aws_smithy_types::Document {
  516         -
        /* StructureGenerator.kt:172 */
  517         -
        &self.default_document_boolean
  518         -
        /* StructureGenerator.kt:166 */
         567  +
    /* ConstrainedCollectionGenerator.kt:116 */
         568  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::FooEnum>`].
         569  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::FooEnum> {
         570  +
        self.0
  519    571   
    }
  520         -
    /* StructureGenerator.kt:231 */
  521         -
    #[allow(missing_docs)] // documentation missing in model
  522         -
                           /* StructureGenerator.kt:166 */
  523         -
    pub fn default_document_list(&self) -> &::aws_smithy_types::Document {
  524         -
        /* StructureGenerator.kt:172 */
  525         -
        &self.default_document_list
  526         -
        /* StructureGenerator.kt:166 */
         572  +
         573  +
    fn check_unique_items(
         574  +
        items: ::std::vec::Vec<crate::model::FooEnum>,
         575  +
    ) -> ::std::result::Result<
         576  +
        ::std::vec::Vec<crate::model::FooEnum>,
         577  +
        crate::model::foo_enum_set::ConstraintViolation,
         578  +
    > {
         579  +
        let mut seen = ::std::collections::HashMap::new();
         580  +
        let mut duplicate_indices = ::std::vec::Vec::new();
         581  +
        for (idx, item) in items.iter().enumerate() {
         582  +
            if let Some(prev_idx) = seen.insert(item, idx) {
         583  +
                duplicate_indices.push(prev_idx);
         584  +
            }
         585  +
        }
         586  +
         587  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
         588  +
        for idx in &duplicate_indices {
         589  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
         590  +
                last_duplicate_indices.push(prev_idx);
         591  +
            }
         592  +
        }
         593  +
        duplicate_indices.extend(last_duplicate_indices);
         594  +
         595  +
        if !duplicate_indices.is_empty() {
         596  +
            debug_assert!(duplicate_indices.len() >= 2);
         597  +
            Err(
         598  +
                crate::model::foo_enum_set::ConstraintViolation::UniqueItems {
         599  +
                    duplicate_indices,
         600  +
                    original: items,
         601  +
                },
         602  +
            )
         603  +
        } else {
         604  +
            Ok(items)
         605  +
        }
  527    606   
    }
  528         -
    /* StructureGenerator.kt:231 */
  529         -
    #[allow(missing_docs)] // documentation missing in model
  530         -
                           /* StructureGenerator.kt:166 */
  531         -
    pub fn default_null_document(&self) -> ::std::option::Option<&::aws_smithy_types::Document> {
  532         -
        /* StructureGenerator.kt:170 */
  533         -
        self.default_null_document.as_ref()
  534         -
        /* StructureGenerator.kt:166 */
         607  +
    /* ConstrainedCollectionGenerator.kt:104 */
         608  +
}
         609  +
/* ConstrainedCollectionGenerator.kt:133 */
         610  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::FooEnum>> for FooEnumSet {
         611  +
    type Error = crate::model::foo_enum_set::ConstraintViolation;
         612  +
         613  +
    /// Constructs a `FooEnumSet` from an [`::std::vec::Vec<crate::model::FooEnum>`], failing when the provided value does not satisfy the modeled constraints.
         614  +
    fn try_from(
         615  +
        value: ::std::vec::Vec<crate::model::FooEnum>,
         616  +
    ) -> ::std::result::Result<Self, Self::Error> {
         617  +
        let value = Self::check_unique_items(value)?;
         618  +
         619  +
        Ok(Self(value))
  535    620   
    }
  536         -
    /* StructureGenerator.kt:231 */
  537         -
    #[allow(missing_docs)] // documentation missing in model
  538         -
                           /* StructureGenerator.kt:166 */
  539         -
    pub fn default_timestamp(&self) -> &::aws_smithy_types::DateTime {
  540         -
        /* StructureGenerator.kt:172 */
  541         -
        &self.default_timestamp
  542         -
        /* StructureGenerator.kt:166 */
         621  +
}
         622  +
         623  +
impl ::std::convert::From<FooEnumSet> for ::std::vec::Vec<crate::model::FooEnum> {
         624  +
    fn from(value: FooEnumSet) -> Self {
         625  +
        value.into_inner()
  543    626   
    }
  544         -
    /* StructureGenerator.kt:231 */
  545         -
    #[allow(missing_docs)] // documentation missing in model
  546         -
                           /* StructureGenerator.kt:166 */
  547         -
    pub fn default_blob(&self) -> &::aws_smithy_types::Blob {
  548         -
        /* StructureGenerator.kt:172 */
  549         -
        &self.default_blob
  550         -
        /* StructureGenerator.kt:166 */
         627  +
}
         628  +
/* ConstrainedCollectionGenerator.kt:181 */
         629  +
impl crate::constrained::Constrained for FooEnumSet {
         630  +
    type Unconstrained = crate::unconstrained::foo_enum_set_unconstrained::FooEnumSetUnconstrained;
         631  +
}
         632  +
         633  +
/* ConstrainedCollectionGenerator.kt:93 */
         634  +
#[allow(missing_docs)] // documentation missing in model
         635  +
/// /* ConstrainedCollectionGenerator.kt:94 */
         636  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
         637  +
/// [constraint traits]. Use [`IntegerEnumSet::try_from`] to construct values of this type.
         638  +
///
         639  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
         640  +
///
         641  +
/* RustType.kt:534 */
         642  +
#[derive(
         643  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         644  +
)]
         645  +
pub /* ConstrainedCollectionGenerator.kt:97 */ struct IntegerEnumSet(
         646  +
    pub(crate) ::std::vec::Vec<i32>,
         647  +
);
         648  +
/* ConstrainedCollectionGenerator.kt:104 */
         649  +
impl IntegerEnumSet {
         650  +
    /* ConstrainedCollectionGenerator.kt:106 */
         651  +
    /// Returns an immutable reference to the underlying [`::std::vec::Vec<i32>`].
         652  +
    pub fn inner(&self) -> &::std::vec::Vec<i32> {
         653  +
        &self.0
  551    654   
    }
  552         -
    /* StructureGenerator.kt:231 */
  553         -
    #[allow(missing_docs)] // documentation missing in model
  554         -
                           /* StructureGenerator.kt:166 */
  555         -
    pub fn default_byte(&self) -> i8 {
  556         -
        /* StructureGenerator.kt:168 */
  557         -
        self.default_byte
  558         -
        /* StructureGenerator.kt:166 */
         655  +
    /* ConstrainedCollectionGenerator.kt:116 */
         656  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<i32>`].
         657  +
    pub fn into_inner(self) -> ::std::vec::Vec<i32> {
         658  +
        self.0
  559    659   
    }
  560         -
    /* StructureGenerator.kt:231 */
  561         -
    #[allow(missing_docs)] // documentation missing in model
  562         -
                           /* StructureGenerator.kt:166 */
  563         -
    pub fn default_short(&self) -> i16 {
  564         -
        /* StructureGenerator.kt:168 */
  565         -
        self.default_short
  566         -
        /* StructureGenerator.kt:166 */
         660  +
         661  +
    fn check_unique_items(
         662  +
        items: ::std::vec::Vec<i32>,
         663  +
    ) -> ::std::result::Result<
         664  +
        ::std::vec::Vec<i32>,
         665  +
        crate::model::integer_enum_set::ConstraintViolation,
         666  +
    > {
         667  +
        let mut seen = ::std::collections::HashMap::new();
         668  +
        let mut duplicate_indices = ::std::vec::Vec::new();
         669  +
        for (idx, item) in items.iter().enumerate() {
         670  +
            if let Some(prev_idx) = seen.insert(item, idx) {
         671  +
                duplicate_indices.push(prev_idx);
         672  +
            }
         673  +
        }
         674  +
         675  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
         676  +
        for idx in &duplicate_indices {
         677  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
         678  +
                last_duplicate_indices.push(prev_idx);
         679  +
            }
         680  +
        }
         681  +
        duplicate_indices.extend(last_duplicate_indices);
         682  +
         683  +
        if !duplicate_indices.is_empty() {
         684  +
            debug_assert!(duplicate_indices.len() >= 2);
         685  +
            Err(
         686  +
                crate::model::integer_enum_set::ConstraintViolation::UniqueItems {
         687  +
                    duplicate_indices,
         688  +
                    original: items,
         689  +
                },
         690  +
            )
         691  +
        } else {
         692  +
            Ok(items)
         693  +
        }
  567    694   
    }
  568         -
    /* StructureGenerator.kt:231 */
  569         -
    #[allow(missing_docs)] // documentation missing in model
  570         -
                           /* StructureGenerator.kt:166 */
  571         -
    pub fn default_integer(&self) -> i32 {
  572         -
        /* StructureGenerator.kt:168 */
  573         -
        self.default_integer
  574         -
        /* StructureGenerator.kt:166 */
         695  +
    /* ConstrainedCollectionGenerator.kt:104 */
         696  +
}
         697  +
/* ConstrainedCollectionGenerator.kt:133 */
         698  +
impl ::std::convert::TryFrom<::std::vec::Vec<i32>> for IntegerEnumSet {
         699  +
    type Error = crate::model::integer_enum_set::ConstraintViolation;
         700  +
         701  +
    /// Constructs a `IntegerEnumSet` from an [`::std::vec::Vec<i32>`], failing when the provided value does not satisfy the modeled constraints.
         702  +
    fn try_from(value: ::std::vec::Vec<i32>) -> ::std::result::Result<Self, Self::Error> {
         703  +
        let value = Self::check_unique_items(value)?;
         704  +
         705  +
        Ok(Self(value))
         706  +
    }
         707  +
}
         708  +
         709  +
impl ::std::convert::From<IntegerEnumSet> for ::std::vec::Vec<i32> {
         710  +
    fn from(value: IntegerEnumSet) -> Self {
         711  +
        value.into_inner()
  575    712   
    }
         713  +
}
         714  +
/* ConstrainedCollectionGenerator.kt:181 */
         715  +
impl crate::constrained::Constrained for IntegerEnumSet {
         716  +
    type Unconstrained =
         717  +
        crate::unconstrained::integer_enum_set_unconstrained::IntegerEnumSetUnconstrained;
         718  +
}
         719  +
         720  +
/* StructureGenerator.kt:197 */
         721  +
#[allow(missing_docs)] // documentation missing in model
         722  +
/* RustType.kt:534 */
         723  +
#[derive(
         724  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         725  +
)]
         726  +
pub /* StructureGenerator.kt:201 */ struct RecursiveShapesInputOutputNested1 {
  576    727   
    /* StructureGenerator.kt:231 */
  577    728   
    #[allow(missing_docs)] // documentation missing in model
  578         -
                           /* StructureGenerator.kt:166 */
  579         -
    pub fn default_long(&self) -> i64 {
  580         -
        /* StructureGenerator.kt:168 */
  581         -
        self.default_long
  582         -
        /* StructureGenerator.kt:166 */
  583         -
    }
         729  +
    pub foo: ::std::option::Option<::std::string::String>,
  584    730   
    /* StructureGenerator.kt:231 */
  585    731   
    #[allow(missing_docs)] // documentation missing in model
  586         -
                           /* StructureGenerator.kt:166 */
  587         -
    pub fn default_float(&self) -> f32 {
  588         -
        /* StructureGenerator.kt:168 */
  589         -
        self.default_float
  590         -
        /* StructureGenerator.kt:166 */
  591         -
    }
         732  +
    pub nested:
         733  +
        ::std::option::Option<::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>>,
         734  +
    /* StructureGenerator.kt:201 */
         735  +
}
         736  +
/* StructureGenerator.kt:135 */
         737  +
impl RecursiveShapesInputOutputNested1 {
  592    738   
    /* StructureGenerator.kt:231 */
  593    739   
    #[allow(missing_docs)] // documentation missing in model
  594    740   
                           /* StructureGenerator.kt:166 */
  595         -
    pub fn default_double(&self) -> f64 {
  596         -
        /* StructureGenerator.kt:168 */
  597         -
        self.default_double
         741  +
    pub fn foo(&self) -> ::std::option::Option<&str> {
         742  +
        /* StructureGenerator.kt:169 */
         743  +
        self.foo.as_deref()
  598    744   
        /* StructureGenerator.kt:166 */
  599    745   
    }
  600    746   
    /* StructureGenerator.kt:231 */
  601    747   
    #[allow(missing_docs)] // documentation missing in model
  602    748   
                           /* StructureGenerator.kt:166 */
  603         -
    pub fn default_map(
         749  +
    pub fn nested(
  604    750   
        &self,
  605         -
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
  606         -
        /* StructureGenerator.kt:172 */
  607         -
        &self.default_map
         751  +
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested2> {
         752  +
        /* StructureGenerator.kt:169 */
         753  +
        self.nested.as_deref()
  608    754   
        /* StructureGenerator.kt:166 */
  609    755   
    }
  610         -
    /* StructureGenerator.kt:231 */
  611         -
    #[allow(missing_docs)] // documentation missing in model
  612         -
                           /* StructureGenerator.kt:166 */
  613         -
    pub fn default_enum(&self) -> &crate::model::TestEnum {
  614         -
        /* StructureGenerator.kt:172 */
  615         -
        &self.default_enum
  616         -
        /* StructureGenerator.kt:166 */
         756  +
    /* StructureGenerator.kt:135 */
         757  +
}
         758  +
/* ServerCodegenVisitor.kt:356 */
         759  +
impl RecursiveShapesInputOutputNested1 {
         760  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
         761  +
    /* ServerBuilderGenerator.kt:295 */
         762  +
    pub fn builder() -> crate::model::recursive_shapes_input_output_nested1::Builder {
         763  +
        /* ServerBuilderGenerator.kt:296 */
         764  +
        crate::model::recursive_shapes_input_output_nested1::Builder::default()
         765  +
        /* ServerBuilderGenerator.kt:295 */
  617    766   
    }
  618         -
    /* StructureGenerator.kt:231 */
         767  +
    /* ServerCodegenVisitor.kt:356 */
         768  +
}
         769  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
         770  +
impl crate::constrained::Constrained for crate::model::RecursiveShapesInputOutputNested1 {
         771  +
    type Unconstrained = crate::model::recursive_shapes_input_output_nested1::Builder;
         772  +
}
         773  +
         774  +
/// /* UnionGenerator.kt:67 */A union with a representative set of types for members.
         775  +
/* RustType.kt:534 */
         776  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         777  +
pub /* UnionGenerator.kt:85 */ enum MyUnion {
         778  +
    /* UnionGenerator.kt:90 */
  619    779   
    #[allow(missing_docs)] // documentation missing in model
  620         -
                           /* StructureGenerator.kt:166 */
  621         -
    pub fn default_int_enum(&self) -> i32 {
  622         -
        /* StructureGenerator.kt:168 */
  623         -
        self.default_int_enum
  624         -
        /* StructureGenerator.kt:166 */
  625         -
    }
  626         -
    /* StructureGenerator.kt:231 */
         780  +
    /* UnionGenerator.kt:190 */
         781  +
    BlobValue(::aws_smithy_types::Blob),
         782  +
    /* UnionGenerator.kt:90 */
  627    783   
    #[allow(missing_docs)] // documentation missing in model
  628         -
                           /* StructureGenerator.kt:166 */
  629         -
    pub fn empty_string(&self) -> &str {
  630         -
        /* StructureGenerator.kt:171 */
  631         -
        use std::ops::Deref;
  632         -
        self.empty_string.deref()
  633         -
        /* StructureGenerator.kt:166 */
  634         -
    }
  635         -
    /* StructureGenerator.kt:231 */
         784  +
    /* UnionGenerator.kt:190 */
         785  +
    BooleanValue(bool),
         786  +
    /* UnionGenerator.kt:90 */
  636    787   
    #[allow(missing_docs)] // documentation missing in model
  637         -
                           /* StructureGenerator.kt:166 */
  638         -
    pub fn false_boolean(&self) -> bool {
  639         -
        /* StructureGenerator.kt:168 */
  640         -
        self.false_boolean
  641         -
        /* StructureGenerator.kt:166 */
  642         -
    }
  643         -
    /* StructureGenerator.kt:231 */
         788  +
    /* UnionGenerator.kt:190 */
         789  +
    EnumValue(crate::model::FooEnum),
         790  +
    /* UnionGenerator.kt:90 */
  644    791   
    #[allow(missing_docs)] // documentation missing in model
  645         -
                           /* StructureGenerator.kt:166 */
  646         -
    pub fn empty_blob(&self) -> &::aws_smithy_types::Blob {
  647         -
        /* StructureGenerator.kt:172 */
  648         -
        &self.empty_blob
  649         -
        /* StructureGenerator.kt:166 */
  650         -
    }
  651         -
    /* StructureGenerator.kt:231 */
  652         -
    #[allow(missing_docs)] // documentation missing in model
  653         -
                           /* StructureGenerator.kt:166 */
  654         -
    pub fn zero_byte(&self) -> i8 {
  655         -
        /* StructureGenerator.kt:168 */
  656         -
        self.zero_byte
  657         -
        /* StructureGenerator.kt:166 */
  658         -
    }
  659         -
    /* StructureGenerator.kt:231 */
  660         -
    #[allow(missing_docs)] // documentation missing in model
  661         -
                           /* StructureGenerator.kt:166 */
  662         -
    pub fn zero_short(&self) -> i16 {
  663         -
        /* StructureGenerator.kt:168 */
  664         -
        self.zero_short
  665         -
        /* StructureGenerator.kt:166 */
  666         -
    }
  667         -
    /* StructureGenerator.kt:231 */
  668         -
    #[allow(missing_docs)] // documentation missing in model
  669         -
                           /* StructureGenerator.kt:166 */
  670         -
    pub fn zero_integer(&self) -> i32 {
  671         -
        /* StructureGenerator.kt:168 */
  672         -
        self.zero_integer
  673         -
        /* StructureGenerator.kt:166 */
  674         -
    }
  675         -
    /* StructureGenerator.kt:231 */
  676         -
    #[allow(missing_docs)] // documentation missing in model
  677         -
                           /* StructureGenerator.kt:166 */
  678         -
    pub fn zero_long(&self) -> i64 {
  679         -
        /* StructureGenerator.kt:168 */
  680         -
        self.zero_long
  681         -
        /* StructureGenerator.kt:166 */
  682         -
    }
  683         -
    /* StructureGenerator.kt:231 */
  684         -
    #[allow(missing_docs)] // documentation missing in model
  685         -
                           /* StructureGenerator.kt:166 */
  686         -
    pub fn zero_float(&self) -> f32 {
  687         -
        /* StructureGenerator.kt:168 */
  688         -
        self.zero_float
  689         -
        /* StructureGenerator.kt:166 */
  690         -
    }
  691         -
    /* StructureGenerator.kt:231 */
  692         -
    #[allow(missing_docs)] // documentation missing in model
  693         -
                           /* StructureGenerator.kt:166 */
  694         -
    pub fn zero_double(&self) -> f64 {
  695         -
        /* StructureGenerator.kt:168 */
  696         -
        self.zero_double
  697         -
        /* StructureGenerator.kt:166 */
  698         -
    }
  699         -
    /* StructureGenerator.kt:135 */
  700         -
}
  701         -
/* ServerCodegenVisitor.kt:356 */
  702         -
impl Defaults {
  703         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Defaults`](crate::model::Defaults).
  704         -
    /* ServerBuilderGenerator.kt:295 */
  705         -
    pub fn builder() -> crate::model::defaults::Builder {
  706         -
        /* ServerBuilderGenerator.kt:296 */
  707         -
        crate::model::defaults::Builder::default()
  708         -
        /* ServerBuilderGenerator.kt:295 */
  709         -
    }
  710         -
    /* ServerCodegenVisitor.kt:356 */
  711         -
}
  712         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
  713         -
impl crate::constrained::Constrained for crate::model::Defaults {
  714         -
    type Unconstrained = crate::model::defaults::Builder;
  715         -
}
  716         -
  717         -
/* StructureGenerator.kt:197 */
  718         -
#[allow(missing_docs)] // documentation missing in model
  719         -
/* RustType.kt:534 */
  720         -
#[derive(
  721         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  722         -
)]
  723         -
pub /* StructureGenerator.kt:201 */ struct PayloadConfig {
  724         -
    /* StructureGenerator.kt:231 */
         792  +
    /* UnionGenerator.kt:190 */
         793  +
    ListValue(::std::vec::Vec<::std::string::String>),
         794  +
    /* UnionGenerator.kt:90 */
  725    795   
    #[allow(missing_docs)] // documentation missing in model
  726         -
    pub data: ::std::option::Option<i32>,
  727         -
    /* StructureGenerator.kt:201 */
  728         -
}
  729         -
/* StructureGenerator.kt:135 */
  730         -
impl PayloadConfig {
  731         -
    /* StructureGenerator.kt:231 */
         796  +
    /* UnionGenerator.kt:190 */
         797  +
    MapValue(::std::collections::HashMap<::std::string::String, ::std::string::String>),
         798  +
    /* UnionGenerator.kt:90 */
  732    799   
    #[allow(missing_docs)] // documentation missing in model
  733         -
                           /* StructureGenerator.kt:166 */
  734         -
    pub fn data(&self) -> ::std::option::Option<i32> {
  735         -
        /* StructureGenerator.kt:168 */
  736         -
        self.data
  737         -
        /* StructureGenerator.kt:166 */
  738         -
    }
  739         -
    /* StructureGenerator.kt:135 */
  740         -
}
  741         -
/* ServerCodegenVisitor.kt:356 */
  742         -
impl PayloadConfig {
  743         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`PayloadConfig`](crate::model::PayloadConfig).
  744         -
    /* ServerBuilderGenerator.kt:295 */
  745         -
    pub fn builder() -> crate::model::payload_config::Builder {
  746         -
        /* ServerBuilderGenerator.kt:296 */
  747         -
        crate::model::payload_config::Builder::default()
  748         -
        /* ServerBuilderGenerator.kt:295 */
  749         -
    }
  750         -
    /* ServerCodegenVisitor.kt:356 */
  751         -
}
  752         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
  753         -
impl crate::constrained::Constrained for crate::model::PayloadConfig {
  754         -
    type Unconstrained = crate::model::payload_config::Builder;
  755         -
}
  756         -
  757         -
/* StructureGenerator.kt:197 */
  758         -
#[allow(missing_docs)] // documentation missing in model
  759         -
/* RustType.kt:534 */
  760         -
#[derive(
  761         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  762         -
)]
  763         -
pub /* StructureGenerator.kt:201 */ struct TestConfig {
  764         -
    /* StructureGenerator.kt:231 */
         800  +
    /* UnionGenerator.kt:190 */
         801  +
    NumberValue(i32),
         802  +
    /* UnionGenerator.kt:90 */
  765    803   
    #[allow(missing_docs)] // documentation missing in model
  766         -
    pub timeout: ::std::option::Option<i32>,
  767         -
    /* StructureGenerator.kt:201 */
  768         -
}
  769         -
/* StructureGenerator.kt:135 */
  770         -
impl TestConfig {
  771         -
    /* StructureGenerator.kt:231 */
         804  +
    /* UnionGenerator.kt:190 */
         805  +
    RenamedStructureValue(crate::model::RenamedGreeting),
         806  +
    /* UnionGenerator.kt:90 */
  772    807   
    #[allow(missing_docs)] // documentation missing in model
  773         -
                           /* StructureGenerator.kt:166 */
  774         -
    pub fn timeout(&self) -> ::std::option::Option<i32> {
  775         -
        /* StructureGenerator.kt:168 */
  776         -
        self.timeout
  777         -
        /* StructureGenerator.kt:166 */
  778         -
    }
  779         -
    /* StructureGenerator.kt:135 */
  780         -
}
  781         -
/* ServerCodegenVisitor.kt:356 */
  782         -
impl TestConfig {
  783         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`TestConfig`](crate::model::TestConfig).
  784         -
    /* ServerBuilderGenerator.kt:295 */
  785         -
    pub fn builder() -> crate::model::test_config::Builder {
  786         -
        /* ServerBuilderGenerator.kt:296 */
  787         -
        crate::model::test_config::Builder::default()
  788         -
        /* ServerBuilderGenerator.kt:295 */
  789         -
    }
  790         -
    /* ServerCodegenVisitor.kt:356 */
  791         -
}
  792         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
  793         -
impl crate::constrained::Constrained for crate::model::TestConfig {
  794         -
    type Unconstrained = crate::model::test_config::Builder;
  795         -
}
  796         -
  797         -
/* UnionGenerator.kt:67 */
  798         -
#[allow(missing_docs)] // documentation missing in model
  799         -
/* RustType.kt:534 */
  800         -
#[derive(
  801         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  802         -
)]
  803         -
pub /* UnionGenerator.kt:85 */ enum SimpleUnion {
         808  +
    /* UnionGenerator.kt:190 */
         809  +
    StringValue(::std::string::String),
  804    810   
    /* UnionGenerator.kt:90 */
  805    811   
    #[allow(missing_docs)] // documentation missing in model
  806    812   
    /* UnionGenerator.kt:190 */
  807         -
    Int(i32),
         813  +
    StructureValue(crate::model::GreetingStruct),
  808    814   
    /* UnionGenerator.kt:90 */
  809    815   
    #[allow(missing_docs)] // documentation missing in model
  810    816   
    /* UnionGenerator.kt:190 */
  811         -
    String(::std::string::String),
         817  +
    TimestampValue(::aws_smithy_types::DateTime),
  812    818   
    /* UnionGenerator.kt:85 */
  813    819   
}
  814    820   
/* UnionGenerator.kt:111 */
  815         -
impl SimpleUnion {
         821  +
impl MyUnion {
  816    822   
    /* UnionGenerator.kt:217 */
  817         -
    /// Tries to convert the enum instance into [`Int`](crate::model::SimpleUnion::Int), extracting the inner [`i32`](i32).
         823  +
    /// Tries to convert the enum instance into [`BlobValue`](crate::model::MyUnion::BlobValue), extracting the inner [`Blob`](::aws_smithy_types::Blob).
  818    824   
    /* UnionGenerator.kt:222 */
  819    825   
    /// Returns `Err(&Self)` if it can't be converted.
  820    826   
    /* UnionGenerator.kt:223 */
  821         -
    pub fn as_int(&self) -> ::std::result::Result<&i32, &Self> {
         827  +
    pub fn as_blob_value(&self) -> ::std::result::Result<&::aws_smithy_types::Blob, &Self> {
  822    828   
        /* UnionGenerator.kt:227 */
  823         -
        if let SimpleUnion::Int(val) = &self {
         829  +
        if let MyUnion::BlobValue(val) = &self {
  824    830   
            ::std::result::Result::Ok(val)
  825    831   
        } else {
  826    832   
            ::std::result::Result::Err(self)
  827    833   
        }
  828    834   
        /* UnionGenerator.kt:223 */
  829    835   
    }
  830    836   
    /* UnionGenerator.kt:121 */
  831         -
    /// Returns true if this is a [`Int`](crate::model::SimpleUnion::Int).
         837  +
    /// Returns true if this is a [`BlobValue`](crate::model::MyUnion::BlobValue).
  832    838   
    /* UnionGenerator.kt:122 */
  833         -
    pub fn is_int(&self) -> bool {
         839  +
    pub fn is_blob_value(&self) -> bool {
  834    840   
        /* UnionGenerator.kt:123 */
  835         -
        self.as_int().is_ok()
         841  +
        self.as_blob_value().is_ok()
  836    842   
        /* UnionGenerator.kt:122 */
  837    843   
    }
  838    844   
    /* UnionGenerator.kt:217 */
  839         -
    /// Tries to convert the enum instance into [`String`](crate::model::SimpleUnion::String), extracting the inner [`String`](::std::string::String).
         845  +
    /// Tries to convert the enum instance into [`BooleanValue`](crate::model::MyUnion::BooleanValue), extracting the inner [`bool`](bool).
  840    846   
    /* UnionGenerator.kt:222 */
  841    847   
    /// Returns `Err(&Self)` if it can't be converted.
  842    848   
    /* UnionGenerator.kt:223 */
  843         -
    pub fn as_string(&self) -> ::std::result::Result<&::std::string::String, &Self> {
         849  +
    pub fn as_boolean_value(&self) -> ::std::result::Result<&bool, &Self> {
  844    850   
        /* UnionGenerator.kt:227 */
  845         -
        if let SimpleUnion::String(val) = &self {
         851  +
        if let MyUnion::BooleanValue(val) = &self {
  846    852   
            ::std::result::Result::Ok(val)
  847    853   
        } else {
  848    854   
            ::std::result::Result::Err(self)
  849    855   
        }
  850    856   
        /* UnionGenerator.kt:223 */
  851    857   
    }
  852    858   
    /* UnionGenerator.kt:121 */
  853         -
    /// Returns true if this is a [`String`](crate::model::SimpleUnion::String).
         859  +
    /// Returns true if this is a [`BooleanValue`](crate::model::MyUnion::BooleanValue).
  854    860   
    /* UnionGenerator.kt:122 */
  855         -
    pub fn is_string(&self) -> bool {
         861  +
    pub fn is_boolean_value(&self) -> bool {
  856    862   
        /* UnionGenerator.kt:123 */
  857         -
        self.as_string().is_ok()
         863  +
        self.as_boolean_value().is_ok()
  858    864   
        /* UnionGenerator.kt:122 */
  859    865   
    }
  860         -
    /* UnionGenerator.kt:111 */
  861         -
}
  862         -
  863         -
/* UnionGenerator.kt:67 */
  864         -
#[allow(missing_docs)] // documentation missing in model
  865         -
/* RustType.kt:534 */
  866         -
#[derive(
  867         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  868         -
)]
  869         -
pub /* UnionGenerator.kt:85 */ enum UnionWithJsonName {
  870         -
    /* UnionGenerator.kt:90 */
  871         -
    #[allow(missing_docs)] // documentation missing in model
  872         -
    /* UnionGenerator.kt:190 */
  873         -
    Bar(::std::string::String),
  874         -
    /* UnionGenerator.kt:90 */
  875         -
    #[allow(missing_docs)] // documentation missing in model
  876         -
    /* UnionGenerator.kt:190 */
  877         -
    Baz(::std::string::String),
  878         -
    /* UnionGenerator.kt:90 */
  879         -
    #[allow(missing_docs)] // documentation missing in model
  880         -
    /* UnionGenerator.kt:190 */
  881         -
    Foo(::std::string::String),
  882         -
    /* UnionGenerator.kt:85 */
  883         -
}
  884         -
/* UnionGenerator.kt:111 */
  885         -
impl UnionWithJsonName {
  886    866   
    /* UnionGenerator.kt:217 */
  887         -
    /// Tries to convert the enum instance into [`Bar`](crate::model::UnionWithJsonName::Bar), extracting the inner [`String`](::std::string::String).
         867  +
    /// Tries to convert the enum instance into [`EnumValue`](crate::model::MyUnion::EnumValue), extracting the inner [`FooEnum`](crate::model::FooEnum).
  888    868   
    /* UnionGenerator.kt:222 */
  889    869   
    /// Returns `Err(&Self)` if it can't be converted.
  890    870   
    /* UnionGenerator.kt:223 */
  891         -
    pub fn as_bar(&self) -> ::std::result::Result<&::std::string::String, &Self> {
         871  +
    pub fn as_enum_value(&self) -> ::std::result::Result<&crate::model::FooEnum, &Self> {
  892    872   
        /* UnionGenerator.kt:227 */
  893         -
        if let UnionWithJsonName::Bar(val) = &self {
         873  +
        if let MyUnion::EnumValue(val) = &self {
  894    874   
            ::std::result::Result::Ok(val)
  895    875   
        } else {
  896    876   
            ::std::result::Result::Err(self)
  897    877   
        }
  898    878   
        /* UnionGenerator.kt:223 */
  899    879   
    }
  900    880   
    /* UnionGenerator.kt:121 */
  901         -
    /// Returns true if this is a [`Bar`](crate::model::UnionWithJsonName::Bar).
         881  +
    /// Returns true if this is a [`EnumValue`](crate::model::MyUnion::EnumValue).
  902    882   
    /* UnionGenerator.kt:122 */
  903         -
    pub fn is_bar(&self) -> bool {
         883  +
    pub fn is_enum_value(&self) -> bool {
  904    884   
        /* UnionGenerator.kt:123 */
  905         -
        self.as_bar().is_ok()
         885  +
        self.as_enum_value().is_ok()
  906    886   
        /* UnionGenerator.kt:122 */
  907    887   
    }
  908    888   
    /* UnionGenerator.kt:217 */
  909         -
    /// Tries to convert the enum instance into [`Baz`](crate::model::UnionWithJsonName::Baz), extracting the inner [`String`](::std::string::String).
         889  +
    /// Tries to convert the enum instance into [`ListValue`](crate::model::MyUnion::ListValue), extracting the inner [`Vec`](::std::vec::Vec).
  910    890   
    /* UnionGenerator.kt:222 */
  911    891   
    /// Returns `Err(&Self)` if it can't be converted.
  912    892   
    /* UnionGenerator.kt:223 */
  913         -
    pub fn as_baz(&self) -> ::std::result::Result<&::std::string::String, &Self> {
         893  +
    pub fn as_list_value(
         894  +
        &self,
         895  +
    ) -> ::std::result::Result<&::std::vec::Vec<::std::string::String>, &Self> {
  914    896   
        /* UnionGenerator.kt:227 */
  915         -
        if let UnionWithJsonName::Baz(val) = &self {
         897  +
        if let MyUnion::ListValue(val) = &self {
  916    898   
            ::std::result::Result::Ok(val)
  917    899   
        } else {
  918    900   
            ::std::result::Result::Err(self)
  919    901   
        }
  920    902   
        /* UnionGenerator.kt:223 */
  921    903   
    }
  922    904   
    /* UnionGenerator.kt:121 */
  923         -
    /// Returns true if this is a [`Baz`](crate::model::UnionWithJsonName::Baz).
         905  +
    /// Returns true if this is a [`ListValue`](crate::model::MyUnion::ListValue).
  924    906   
    /* UnionGenerator.kt:122 */
  925         -
    pub fn is_baz(&self) -> bool {
         907  +
    pub fn is_list_value(&self) -> bool {
  926    908   
        /* UnionGenerator.kt:123 */
  927         -
        self.as_baz().is_ok()
         909  +
        self.as_list_value().is_ok()
  928    910   
        /* UnionGenerator.kt:122 */
  929    911   
    }
  930    912   
    /* UnionGenerator.kt:217 */
  931         -
    /// Tries to convert the enum instance into [`Foo`](crate::model::UnionWithJsonName::Foo), extracting the inner [`String`](::std::string::String).
         913  +
    /// Tries to convert the enum instance into [`MapValue`](crate::model::MyUnion::MapValue), extracting the inner [`HashMap`](::std::collections::HashMap).
  932    914   
    /* UnionGenerator.kt:222 */
  933    915   
    /// Returns `Err(&Self)` if it can't be converted.
  934    916   
    /* UnionGenerator.kt:223 */
  935         -
    pub fn as_foo(&self) -> ::std::result::Result<&::std::string::String, &Self> {
         917  +
    pub fn as_map_value(
         918  +
        &self,
         919  +
    ) -> ::std::result::Result<
         920  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
         921  +
        &Self,
         922  +
    > {
  936    923   
        /* UnionGenerator.kt:227 */
  937         -
        if let UnionWithJsonName::Foo(val) = &self {
         924  +
        if let MyUnion::MapValue(val) = &self {
  938    925   
            ::std::result::Result::Ok(val)
  939    926   
        } else {
  940    927   
            ::std::result::Result::Err(self)
  941    928   
        }
  942    929   
        /* UnionGenerator.kt:223 */
  943    930   
    }
  944    931   
    /* UnionGenerator.kt:121 */
  945         -
    /// Returns true if this is a [`Foo`](crate::model::UnionWithJsonName::Foo).
         932  +
    /// Returns true if this is a [`MapValue`](crate::model::MyUnion::MapValue).
  946    933   
    /* UnionGenerator.kt:122 */
  947         -
    pub fn is_foo(&self) -> bool {
         934  +
    pub fn is_map_value(&self) -> bool {
  948    935   
        /* UnionGenerator.kt:123 */
  949         -
        self.as_foo().is_ok()
         936  +
        self.as_map_value().is_ok()
         937  +
        /* UnionGenerator.kt:122 */
         938  +
    }
         939  +
    /* UnionGenerator.kt:217 */
         940  +
    /// Tries to convert the enum instance into [`NumberValue`](crate::model::MyUnion::NumberValue), extracting the inner [`i32`](i32).
         941  +
    /* UnionGenerator.kt:222 */
         942  +
    /// Returns `Err(&Self)` if it can't be converted.
         943  +
    /* UnionGenerator.kt:223 */
         944  +
    pub fn as_number_value(&self) -> ::std::result::Result<&i32, &Self> {
         945  +
        /* UnionGenerator.kt:227 */
         946  +
        if let MyUnion::NumberValue(val) = &self {
         947  +
            ::std::result::Result::Ok(val)
         948  +
        } else {
         949  +
            ::std::result::Result::Err(self)
         950  +
        }
         951  +
        /* UnionGenerator.kt:223 */
         952  +
    }
         953  +
    /* UnionGenerator.kt:121 */
         954  +
    /// Returns true if this is a [`NumberValue`](crate::model::MyUnion::NumberValue).
         955  +
    /* UnionGenerator.kt:122 */
         956  +
    pub fn is_number_value(&self) -> bool {
         957  +
        /* UnionGenerator.kt:123 */
         958  +
        self.as_number_value().is_ok()
         959  +
        /* UnionGenerator.kt:122 */
         960  +
    }
         961  +
    /* UnionGenerator.kt:217 */
         962  +
    /// Tries to convert the enum instance into [`RenamedStructureValue`](crate::model::MyUnion::RenamedStructureValue), extracting the inner [`RenamedGreeting`](crate::model::RenamedGreeting).
         963  +
    /* UnionGenerator.kt:222 */
         964  +
    /// Returns `Err(&Self)` if it can't be converted.
         965  +
    /* UnionGenerator.kt:223 */
         966  +
    pub fn as_renamed_structure_value(
         967  +
        &self,
         968  +
    ) -> ::std::result::Result<&crate::model::RenamedGreeting, &Self> {
         969  +
        /* UnionGenerator.kt:227 */
         970  +
        if let MyUnion::RenamedStructureValue(val) = &self {
         971  +
            ::std::result::Result::Ok(val)
         972  +
        } else {
         973  +
            ::std::result::Result::Err(self)
         974  +
        }
         975  +
        /* UnionGenerator.kt:223 */
         976  +
    }
         977  +
    /* UnionGenerator.kt:121 */
         978  +
    /// Returns true if this is a [`RenamedStructureValue`](crate::model::MyUnion::RenamedStructureValue).
         979  +
    /* UnionGenerator.kt:122 */
         980  +
    pub fn is_renamed_structure_value(&self) -> bool {
         981  +
        /* UnionGenerator.kt:123 */
         982  +
        self.as_renamed_structure_value().is_ok()
         983  +
        /* UnionGenerator.kt:122 */
         984  +
    }
         985  +
    /* UnionGenerator.kt:217 */
         986  +
    /// Tries to convert the enum instance into [`StringValue`](crate::model::MyUnion::StringValue), extracting the inner [`String`](::std::string::String).
         987  +
    /* UnionGenerator.kt:222 */
         988  +
    /// Returns `Err(&Self)` if it can't be converted.
         989  +
    /* UnionGenerator.kt:223 */
         990  +
    pub fn as_string_value(&self) -> ::std::result::Result<&::std::string::String, &Self> {
         991  +
        /* UnionGenerator.kt:227 */
         992  +
        if let MyUnion::StringValue(val) = &self {
         993  +
            ::std::result::Result::Ok(val)
         994  +
        } else {
         995  +
            ::std::result::Result::Err(self)
         996  +
        }
         997  +
        /* UnionGenerator.kt:223 */
         998  +
    }
         999  +
    /* UnionGenerator.kt:121 */
        1000  +
    /// Returns true if this is a [`StringValue`](crate::model::MyUnion::StringValue).
        1001  +
    /* UnionGenerator.kt:122 */
        1002  +
    pub fn is_string_value(&self) -> bool {
        1003  +
        /* UnionGenerator.kt:123 */
        1004  +
        self.as_string_value().is_ok()
        1005  +
        /* UnionGenerator.kt:122 */
        1006  +
    }
        1007  +
    /* UnionGenerator.kt:217 */
        1008  +
    /// Tries to convert the enum instance into [`StructureValue`](crate::model::MyUnion::StructureValue), extracting the inner [`GreetingStruct`](crate::model::GreetingStruct).
        1009  +
    /* UnionGenerator.kt:222 */
        1010  +
    /// Returns `Err(&Self)` if it can't be converted.
        1011  +
    /* UnionGenerator.kt:223 */
        1012  +
    pub fn as_structure_value(
        1013  +
        &self,
        1014  +
    ) -> ::std::result::Result<&crate::model::GreetingStruct, &Self> {
        1015  +
        /* UnionGenerator.kt:227 */
        1016  +
        if let MyUnion::StructureValue(val) = &self {
        1017  +
            ::std::result::Result::Ok(val)
        1018  +
        } else {
        1019  +
            ::std::result::Result::Err(self)
        1020  +
        }
        1021  +
        /* UnionGenerator.kt:223 */
        1022  +
    }
        1023  +
    /* UnionGenerator.kt:121 */
        1024  +
    /// Returns true if this is a [`StructureValue`](crate::model::MyUnion::StructureValue).
        1025  +
    /* UnionGenerator.kt:122 */
        1026  +
    pub fn is_structure_value(&self) -> bool {
        1027  +
        /* UnionGenerator.kt:123 */
        1028  +
        self.as_structure_value().is_ok()
        1029  +
        /* UnionGenerator.kt:122 */
        1030  +
    }
        1031  +
    /* UnionGenerator.kt:217 */
        1032  +
    /// Tries to convert the enum instance into [`TimestampValue`](crate::model::MyUnion::TimestampValue), extracting the inner [`DateTime`](::aws_smithy_types::DateTime).
        1033  +
    /* UnionGenerator.kt:222 */
        1034  +
    /// Returns `Err(&Self)` if it can't be converted.
        1035  +
    /* UnionGenerator.kt:223 */
        1036  +
    pub fn as_timestamp_value(
        1037  +
        &self,
        1038  +
    ) -> ::std::result::Result<&::aws_smithy_types::DateTime, &Self> {
        1039  +
        /* UnionGenerator.kt:227 */
        1040  +
        if let MyUnion::TimestampValue(val) = &self {
        1041  +
            ::std::result::Result::Ok(val)
        1042  +
        } else {
        1043  +
            ::std::result::Result::Err(self)
        1044  +
        }
        1045  +
        /* UnionGenerator.kt:223 */
        1046  +
    }
        1047  +
    /* UnionGenerator.kt:121 */
        1048  +
    /// Returns true if this is a [`TimestampValue`](crate::model::MyUnion::TimestampValue).
        1049  +
    /* UnionGenerator.kt:122 */
        1050  +
    pub fn is_timestamp_value(&self) -> bool {
        1051  +
        /* UnionGenerator.kt:123 */
        1052  +
        self.as_timestamp_value().is_ok()
  950   1053   
        /* UnionGenerator.kt:122 */
  951   1054   
    }
  952   1055   
    /* UnionGenerator.kt:111 */
  953   1056   
}
  954   1057   
  955   1058   
/* UnionGenerator.kt:67 */
  956   1059   
#[allow(missing_docs)] // documentation missing in model
  957   1060   
/* RustType.kt:534 */
  958   1061   
#[derive(
  959   1062   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  960   1063   
)]
  961   1064   
pub /* UnionGenerator.kt:85 */ enum PlayerAction {
  962   1065   
    /// /* UnionGenerator.kt:90 */Quit the game.
  963   1066   
    /* UnionGenerator.kt:188 */
  964   1067   
    Quit,
  965   1068   
    /* UnionGenerator.kt:85 */
  966   1069   
}
  967   1070   
/* UnionGenerator.kt:111 */
  968   1071   
impl PlayerAction {
  969   1072   
    /* RustType.kt:534 */
  970   1073   
    #[allow(irrefutable_let_patterns)]
  971   1074   
    /* UnionGenerator.kt:203 */
  972   1075   
    /// Tries to convert the enum instance into [`Quit`](crate::model::PlayerAction::Quit), extracting the inner `()`.
  973   1076   
    /* UnionGenerator.kt:207 */
  974   1077   
    /// Returns `Err(&Self)` if it can't be converted.
  975   1078   
    /* UnionGenerator.kt:208 */
  976   1079   
    pub fn as_quit(&self) -> ::std::result::Result<(), &Self> {
  977   1080   
        /* UnionGenerator.kt:209 */
  978   1081   
        if let PlayerAction::Quit = &self {
  979   1082   
            ::std::result::Result::Ok(())
  980   1083   
        } else {
  981   1084   
            ::std::result::Result::Err(self)
  982   1085   
        }
  983   1086   
        /* UnionGenerator.kt:208 */
  984   1087   
    }
  985   1088   
    /* UnionGenerator.kt:121 */
  986   1089   
    /// Returns true if this is a [`Quit`](crate::model::PlayerAction::Quit).
  987   1090   
    /* UnionGenerator.kt:122 */
  988   1091   
    pub fn is_quit(&self) -> bool {
  989   1092   
        /* UnionGenerator.kt:123 */
  990   1093   
        self.as_quit().is_ok()
  991   1094   
        /* UnionGenerator.kt:122 */
  992   1095   
    }
  993   1096   
    /* UnionGenerator.kt:111 */
  994   1097   
}
  995   1098   
  996         -
/* StructureGenerator.kt:197 */
        1099  +
/* UnionGenerator.kt:67 */
  997   1100   
#[allow(missing_docs)] // documentation missing in model
  998   1101   
/* RustType.kt:534 */
  999   1102   
#[derive(
 1000   1103   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1001   1104   
)]
 1002         -
pub /* StructureGenerator.kt:201 */ struct Unit {/* StructureGenerator.kt:201 */}
 1003         -
/* ServerCodegenVisitor.kt:356 */
 1004         -
impl Unit {
 1005         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Unit`](crate::model::Unit).
 1006         -
    /* ServerBuilderGenerator.kt:295 */
 1007         -
    pub fn builder() -> crate::model::unit::Builder {
 1008         -
        /* ServerBuilderGenerator.kt:296 */
 1009         -
        crate::model::unit::Builder::default()
 1010         -
        /* ServerBuilderGenerator.kt:295 */
 1011         -
    }
 1012         -
    /* ServerCodegenVisitor.kt:356 */
 1013         -
}
 1014         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
 1015         -
impl crate::constrained::Constrained for crate::model::Unit {
 1016         -
    type Unconstrained = crate::model::unit::Builder;
 1017         -
}
 1018         -
 1019         -
/// /* UnionGenerator.kt:67 */A union with a representative set of types for members.
 1020         -
/* RustType.kt:534 */
 1021         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 1022         -
pub /* UnionGenerator.kt:85 */ enum MyUnion {
 1023         -
    /* UnionGenerator.kt:90 */
 1024         -
    #[allow(missing_docs)] // documentation missing in model
 1025         -
    /* UnionGenerator.kt:190 */
 1026         -
    BlobValue(::aws_smithy_types::Blob),
 1027         -
    /* UnionGenerator.kt:90 */
 1028         -
    #[allow(missing_docs)] // documentation missing in model
 1029         -
    /* UnionGenerator.kt:190 */
 1030         -
    BooleanValue(bool),
 1031         -
    /* UnionGenerator.kt:90 */
 1032         -
    #[allow(missing_docs)] // documentation missing in model
 1033         -
    /* UnionGenerator.kt:190 */
 1034         -
    EnumValue(crate::model::FooEnum),
 1035         -
    /* UnionGenerator.kt:90 */
 1036         -
    #[allow(missing_docs)] // documentation missing in model
 1037         -
    /* UnionGenerator.kt:190 */
 1038         -
    ListValue(::std::vec::Vec<::std::string::String>),
 1039         -
    /* UnionGenerator.kt:90 */
 1040         -
    #[allow(missing_docs)] // documentation missing in model
 1041         -
    /* UnionGenerator.kt:190 */
 1042         -
    MapValue(::std::collections::HashMap<::std::string::String, ::std::string::String>),
 1043         -
    /* UnionGenerator.kt:90 */
 1044         -
    #[allow(missing_docs)] // documentation missing in model
 1045         -
    /* UnionGenerator.kt:190 */
 1046         -
    NumberValue(i32),
 1047         -
    /* UnionGenerator.kt:90 */
 1048         -
    #[allow(missing_docs)] // documentation missing in model
 1049         -
    /* UnionGenerator.kt:190 */
 1050         -
    RenamedStructureValue(crate::model::RenamedGreeting),
        1105  +
pub /* UnionGenerator.kt:85 */ enum UnionWithJsonName {
 1051   1106   
    /* UnionGenerator.kt:90 */
 1052   1107   
    #[allow(missing_docs)] // documentation missing in model
 1053   1108   
    /* UnionGenerator.kt:190 */
 1054         -
    StringValue(::std::string::String),
        1109  +
    Bar(::std::string::String),
 1055   1110   
    /* UnionGenerator.kt:90 */
 1056   1111   
    #[allow(missing_docs)] // documentation missing in model
 1057   1112   
    /* UnionGenerator.kt:190 */
 1058         -
    StructureValue(crate::model::GreetingStruct),
        1113  +
    Baz(::std::string::String),
 1059   1114   
    /* UnionGenerator.kt:90 */
 1060   1115   
    #[allow(missing_docs)] // documentation missing in model
 1061   1116   
    /* UnionGenerator.kt:190 */
 1062         -
    TimestampValue(::aws_smithy_types::DateTime),
        1117  +
    Foo(::std::string::String),
 1063   1118   
    /* UnionGenerator.kt:85 */
 1064   1119   
}
 1065   1120   
/* UnionGenerator.kt:111 */
 1066         -
impl MyUnion {
        1121  +
impl UnionWithJsonName {
 1067   1122   
    /* UnionGenerator.kt:217 */
 1068         -
    /// Tries to convert the enum instance into [`BlobValue`](crate::model::MyUnion::BlobValue), extracting the inner [`Blob`](::aws_smithy_types::Blob).
        1123  +
    /// Tries to convert the enum instance into [`Bar`](crate::model::UnionWithJsonName::Bar), extracting the inner [`String`](::std::string::String).
 1069   1124   
    /* UnionGenerator.kt:222 */
 1070   1125   
    /// Returns `Err(&Self)` if it can't be converted.
 1071   1126   
    /* UnionGenerator.kt:223 */
 1072         -
    pub fn as_blob_value(&self) -> ::std::result::Result<&::aws_smithy_types::Blob, &Self> {
        1127  +
    pub fn as_bar(&self) -> ::std::result::Result<&::std::string::String, &Self> {
 1073   1128   
        /* UnionGenerator.kt:227 */
 1074         -
        if let MyUnion::BlobValue(val) = &self {
        1129  +
        if let UnionWithJsonName::Bar(val) = &self {
 1075   1130   
            ::std::result::Result::Ok(val)
 1076   1131   
        } else {
 1077   1132   
            ::std::result::Result::Err(self)
 1078   1133   
        }
 1079   1134   
        /* UnionGenerator.kt:223 */
 1080   1135   
    }
 1081   1136   
    /* UnionGenerator.kt:121 */
 1082         -
    /// Returns true if this is a [`BlobValue`](crate::model::MyUnion::BlobValue).
        1137  +
    /// Returns true if this is a [`Bar`](crate::model::UnionWithJsonName::Bar).
 1083   1138   
    /* UnionGenerator.kt:122 */
 1084         -
    pub fn is_blob_value(&self) -> bool {
        1139  +
    pub fn is_bar(&self) -> bool {
 1085   1140   
        /* UnionGenerator.kt:123 */
 1086         -
        self.as_blob_value().is_ok()
        1141  +
        self.as_bar().is_ok()
 1087   1142   
        /* UnionGenerator.kt:122 */
 1088   1143   
    }
 1089   1144   
    /* UnionGenerator.kt:217 */
 1090         -
    /// Tries to convert the enum instance into [`BooleanValue`](crate::model::MyUnion::BooleanValue), extracting the inner [`bool`](bool).
        1145  +
    /// Tries to convert the enum instance into [`Baz`](crate::model::UnionWithJsonName::Baz), extracting the inner [`String`](::std::string::String).
 1091   1146   
    /* UnionGenerator.kt:222 */
 1092   1147   
    /// Returns `Err(&Self)` if it can't be converted.
 1093   1148   
    /* UnionGenerator.kt:223 */
 1094         -
    pub fn as_boolean_value(&self) -> ::std::result::Result<&bool, &Self> {
        1149  +
    pub fn as_baz(&self) -> ::std::result::Result<&::std::string::String, &Self> {
 1095   1150   
        /* UnionGenerator.kt:227 */
 1096         -
        if let MyUnion::BooleanValue(val) = &self {
        1151  +
        if let UnionWithJsonName::Baz(val) = &self {
 1097   1152   
            ::std::result::Result::Ok(val)
 1098   1153   
        } else {
 1099   1154   
            ::std::result::Result::Err(self)
 1100   1155   
        }
 1101   1156   
        /* UnionGenerator.kt:223 */
 1102   1157   
    }
 1103   1158   
    /* UnionGenerator.kt:121 */
 1104         -
    /// Returns true if this is a [`BooleanValue`](crate::model::MyUnion::BooleanValue).
        1159  +
    /// Returns true if this is a [`Baz`](crate::model::UnionWithJsonName::Baz).
 1105   1160   
    /* UnionGenerator.kt:122 */
 1106         -
    pub fn is_boolean_value(&self) -> bool {
        1161  +
    pub fn is_baz(&self) -> bool {
 1107   1162   
        /* UnionGenerator.kt:123 */
 1108         -
        self.as_boolean_value().is_ok()
        1163  +
        self.as_baz().is_ok()
 1109   1164   
        /* UnionGenerator.kt:122 */
 1110   1165   
    }
 1111   1166   
    /* UnionGenerator.kt:217 */
 1112         -
    /// Tries to convert the enum instance into [`EnumValue`](crate::model::MyUnion::EnumValue), extracting the inner [`FooEnum`](crate::model::FooEnum).
        1167  +
    /// Tries to convert the enum instance into [`Foo`](crate::model::UnionWithJsonName::Foo), extracting the inner [`String`](::std::string::String).
 1113   1168   
    /* UnionGenerator.kt:222 */
 1114   1169   
    /// Returns `Err(&Self)` if it can't be converted.
 1115   1170   
    /* UnionGenerator.kt:223 */
 1116         -
    pub fn as_enum_value(&self) -> ::std::result::Result<&crate::model::FooEnum, &Self> {
        1171  +
    pub fn as_foo(&self) -> ::std::result::Result<&::std::string::String, &Self> {
 1117   1172   
        /* UnionGenerator.kt:227 */
 1118         -
        if let MyUnion::EnumValue(val) = &self {
        1173  +
        if let UnionWithJsonName::Foo(val) = &self {
 1119   1174   
            ::std::result::Result::Ok(val)
 1120   1175   
        } else {
 1121   1176   
            ::std::result::Result::Err(self)
 1122   1177   
        }
 1123   1178   
        /* UnionGenerator.kt:223 */
 1124   1179   
    }
 1125   1180   
    /* UnionGenerator.kt:121 */
 1126         -
    /// Returns true if this is a [`EnumValue`](crate::model::MyUnion::EnumValue).
        1181  +
    /// Returns true if this is a [`Foo`](crate::model::UnionWithJsonName::Foo).
 1127   1182   
    /* UnionGenerator.kt:122 */
 1128         -
    pub fn is_enum_value(&self) -> bool {
        1183  +
    pub fn is_foo(&self) -> bool {
 1129   1184   
        /* UnionGenerator.kt:123 */
 1130         -
        self.as_enum_value().is_ok()
        1185  +
        self.as_foo().is_ok()
 1131   1186   
        /* UnionGenerator.kt:122 */
 1132   1187   
    }
        1188  +
    /* UnionGenerator.kt:111 */
        1189  +
}
        1190  +
        1191  +
/* UnionGenerator.kt:67 */
        1192  +
#[allow(missing_docs)] // documentation missing in model
        1193  +
/* RustType.kt:534 */
        1194  +
#[derive(
        1195  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        1196  +
)]
        1197  +
pub /* UnionGenerator.kt:85 */ enum SimpleUnion {
        1198  +
    /* UnionGenerator.kt:90 */
        1199  +
    #[allow(missing_docs)] // documentation missing in model
        1200  +
    /* UnionGenerator.kt:190 */
        1201  +
    Int(i32),
        1202  +
    /* UnionGenerator.kt:90 */
        1203  +
    #[allow(missing_docs)] // documentation missing in model
        1204  +
    /* UnionGenerator.kt:190 */
        1205  +
    String(::std::string::String),
        1206  +
    /* UnionGenerator.kt:85 */
        1207  +
}
        1208  +
/* UnionGenerator.kt:111 */
        1209  +
impl SimpleUnion {
 1133   1210   
    /* UnionGenerator.kt:217 */
 1134         -
    /// Tries to convert the enum instance into [`ListValue`](crate::model::MyUnion::ListValue), extracting the inner [`Vec`](::std::vec::Vec).
        1211  +
    /// Tries to convert the enum instance into [`Int`](crate::model::SimpleUnion::Int), extracting the inner [`i32`](i32).
 1135   1212   
    /* UnionGenerator.kt:222 */
 1136   1213   
    /// Returns `Err(&Self)` if it can't be converted.
 1137   1214   
    /* UnionGenerator.kt:223 */
 1138         -
    pub fn as_list_value(
 1139         -
        &self,
 1140         -
    ) -> ::std::result::Result<&::std::vec::Vec<::std::string::String>, &Self> {
        1215  +
    pub fn as_int(&self) -> ::std::result::Result<&i32, &Self> {
 1141   1216   
        /* UnionGenerator.kt:227 */
 1142         -
        if let MyUnion::ListValue(val) = &self {
        1217  +
        if let SimpleUnion::Int(val) = &self {
 1143   1218   
            ::std::result::Result::Ok(val)
 1144   1219   
        } else {
 1145   1220   
            ::std::result::Result::Err(self)
 1146   1221   
        }
 1147   1222   
        /* UnionGenerator.kt:223 */
 1148   1223   
    }
 1149   1224   
    /* UnionGenerator.kt:121 */
 1150         -
    /// Returns true if this is a [`ListValue`](crate::model::MyUnion::ListValue).
        1225  +
    /// Returns true if this is a [`Int`](crate::model::SimpleUnion::Int).
 1151   1226   
    /* UnionGenerator.kt:122 */
 1152         -
    pub fn is_list_value(&self) -> bool {
        1227  +
    pub fn is_int(&self) -> bool {
 1153   1228   
        /* UnionGenerator.kt:123 */
 1154         -
        self.as_list_value().is_ok()
        1229  +
        self.as_int().is_ok()
 1155   1230   
        /* UnionGenerator.kt:122 */
 1156   1231   
    }
 1157   1232   
    /* UnionGenerator.kt:217 */
 1158         -
    /// Tries to convert the enum instance into [`MapValue`](crate::model::MyUnion::MapValue), extracting the inner [`HashMap`](::std::collections::HashMap).
        1233  +
    /// Tries to convert the enum instance into [`String`](crate::model::SimpleUnion::String), extracting the inner [`String`](::std::string::String).
 1159   1234   
    /* UnionGenerator.kt:222 */
 1160   1235   
    /// Returns `Err(&Self)` if it can't be converted.
 1161   1236   
    /* UnionGenerator.kt:223 */
 1162         -
    pub fn as_map_value(
 1163         -
        &self,
 1164         -
    ) -> ::std::result::Result<
 1165         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1166         -
        &Self,
 1167         -
    > {
 1168         -
        /* UnionGenerator.kt:227 */
 1169         -
        if let MyUnion::MapValue(val) = &self {
 1170         -
            ::std::result::Result::Ok(val)
 1171         -
        } else {
 1172         -
            ::std::result::Result::Err(self)
 1173         -
        }
 1174         -
        /* UnionGenerator.kt:223 */
 1175         -
    }
 1176         -
    /* UnionGenerator.kt:121 */
 1177         -
    /// Returns true if this is a [`MapValue`](crate::model::MyUnion::MapValue).
 1178         -
    /* UnionGenerator.kt:122 */
 1179         -
    pub fn is_map_value(&self) -> bool {
 1180         -
        /* UnionGenerator.kt:123 */
 1181         -
        self.as_map_value().is_ok()
 1182         -
        /* UnionGenerator.kt:122 */
 1183         -
    }
 1184         -
    /* UnionGenerator.kt:217 */
 1185         -
    /// Tries to convert the enum instance into [`NumberValue`](crate::model::MyUnion::NumberValue), extracting the inner [`i32`](i32).
 1186         -
    /* UnionGenerator.kt:222 */
 1187         -
    /// Returns `Err(&Self)` if it can't be converted.
 1188         -
    /* UnionGenerator.kt:223 */
 1189         -
    pub fn as_number_value(&self) -> ::std::result::Result<&i32, &Self> {
 1190         -
        /* UnionGenerator.kt:227 */
 1191         -
        if let MyUnion::NumberValue(val) = &self {
 1192         -
            ::std::result::Result::Ok(val)
 1193         -
        } else {
 1194         -
            ::std::result::Result::Err(self)
 1195         -
        }
 1196         -
        /* UnionGenerator.kt:223 */
 1197         -
    }
 1198         -
    /* UnionGenerator.kt:121 */
 1199         -
    /// Returns true if this is a [`NumberValue`](crate::model::MyUnion::NumberValue).
 1200         -
    /* UnionGenerator.kt:122 */
 1201         -
    pub fn is_number_value(&self) -> bool {
 1202         -
        /* UnionGenerator.kt:123 */
 1203         -
        self.as_number_value().is_ok()
 1204         -
        /* UnionGenerator.kt:122 */
 1205         -
    }
 1206         -
    /* UnionGenerator.kt:217 */
 1207         -
    /// Tries to convert the enum instance into [`RenamedStructureValue`](crate::model::MyUnion::RenamedStructureValue), extracting the inner [`RenamedGreeting`](crate::model::RenamedGreeting).
 1208         -
    /* UnionGenerator.kt:222 */
 1209         -
    /// Returns `Err(&Self)` if it can't be converted.
 1210         -
    /* UnionGenerator.kt:223 */
 1211         -
    pub fn as_renamed_structure_value(
 1212         -
        &self,
 1213         -
    ) -> ::std::result::Result<&crate::model::RenamedGreeting, &Self> {
 1214         -
        /* UnionGenerator.kt:227 */
 1215         -
        if let MyUnion::RenamedStructureValue(val) = &self {
 1216         -
            ::std::result::Result::Ok(val)
 1217         -
        } else {
 1218         -
            ::std::result::Result::Err(self)
 1219         -
        }
 1220         -
        /* UnionGenerator.kt:223 */
 1221         -
    }
 1222         -
    /* UnionGenerator.kt:121 */
 1223         -
    /// Returns true if this is a [`RenamedStructureValue`](crate::model::MyUnion::RenamedStructureValue).
 1224         -
    /* UnionGenerator.kt:122 */
 1225         -
    pub fn is_renamed_structure_value(&self) -> bool {
 1226         -
        /* UnionGenerator.kt:123 */
 1227         -
        self.as_renamed_structure_value().is_ok()
 1228         -
        /* UnionGenerator.kt:122 */
 1229         -
    }
 1230         -
    /* UnionGenerator.kt:217 */
 1231         -
    /// Tries to convert the enum instance into [`StringValue`](crate::model::MyUnion::StringValue), extracting the inner [`String`](::std::string::String).
 1232         -
    /* UnionGenerator.kt:222 */
 1233         -
    /// Returns `Err(&Self)` if it can't be converted.
 1234         -
    /* UnionGenerator.kt:223 */
 1235         -
    pub fn as_string_value(&self) -> ::std::result::Result<&::std::string::String, &Self> {
 1236         -
        /* UnionGenerator.kt:227 */
 1237         -
        if let MyUnion::StringValue(val) = &self {
 1238         -
            ::std::result::Result::Ok(val)
 1239         -
        } else {
 1240         -
            ::std::result::Result::Err(self)
 1241         -
        }
 1242         -
        /* UnionGenerator.kt:223 */
 1243         -
    }
 1244         -
    /* UnionGenerator.kt:121 */
 1245         -
    /// Returns true if this is a [`StringValue`](crate::model::MyUnion::StringValue).
 1246         -
    /* UnionGenerator.kt:122 */
 1247         -
    pub fn is_string_value(&self) -> bool {
 1248         -
        /* UnionGenerator.kt:123 */
 1249         -
        self.as_string_value().is_ok()
 1250         -
        /* UnionGenerator.kt:122 */
 1251         -
    }
 1252         -
    /* UnionGenerator.kt:217 */
 1253         -
    /// Tries to convert the enum instance into [`StructureValue`](crate::model::MyUnion::StructureValue), extracting the inner [`GreetingStruct`](crate::model::GreetingStruct).
 1254         -
    /* UnionGenerator.kt:222 */
 1255         -
    /// Returns `Err(&Self)` if it can't be converted.
 1256         -
    /* UnionGenerator.kt:223 */
 1257         -
    pub fn as_structure_value(
 1258         -
        &self,
 1259         -
    ) -> ::std::result::Result<&crate::model::GreetingStruct, &Self> {
 1260         -
        /* UnionGenerator.kt:227 */
 1261         -
        if let MyUnion::StructureValue(val) = &self {
 1262         -
            ::std::result::Result::Ok(val)
 1263         -
        } else {
 1264         -
            ::std::result::Result::Err(self)
 1265         -
        }
 1266         -
        /* UnionGenerator.kt:223 */
 1267         -
    }
 1268         -
    /* UnionGenerator.kt:121 */
 1269         -
    /// Returns true if this is a [`StructureValue`](crate::model::MyUnion::StructureValue).
 1270         -
    /* UnionGenerator.kt:122 */
 1271         -
    pub fn is_structure_value(&self) -> bool {
 1272         -
        /* UnionGenerator.kt:123 */
 1273         -
        self.as_structure_value().is_ok()
 1274         -
        /* UnionGenerator.kt:122 */
 1275         -
    }
 1276         -
    /* UnionGenerator.kt:217 */
 1277         -
    /// Tries to convert the enum instance into [`TimestampValue`](crate::model::MyUnion::TimestampValue), extracting the inner [`DateTime`](::aws_smithy_types::DateTime).
 1278         -
    /* UnionGenerator.kt:222 */
 1279         -
    /// Returns `Err(&Self)` if it can't be converted.
 1280         -
    /* UnionGenerator.kt:223 */
 1281         -
    pub fn as_timestamp_value(
 1282         -
        &self,
 1283         -
    ) -> ::std::result::Result<&::aws_smithy_types::DateTime, &Self> {
        1237  +
    pub fn as_string(&self) -> ::std::result::Result<&::std::string::String, &Self> {
 1284   1238   
        /* UnionGenerator.kt:227 */
 1285         -
        if let MyUnion::TimestampValue(val) = &self {
        1239  +
        if let SimpleUnion::String(val) = &self {
 1286   1240   
            ::std::result::Result::Ok(val)
 1287   1241   
        } else {
 1288   1242   
            ::std::result::Result::Err(self)
 1289   1243   
        }
 1290   1244   
        /* UnionGenerator.kt:223 */
 1291   1245   
    }
 1292   1246   
    /* UnionGenerator.kt:121 */
 1293         -
    /// Returns true if this is a [`TimestampValue`](crate::model::MyUnion::TimestampValue).
        1247  +
    /// Returns true if this is a [`String`](crate::model::SimpleUnion::String).
 1294   1248   
    /* UnionGenerator.kt:122 */
 1295         -
    pub fn is_timestamp_value(&self) -> bool {
        1249  +
    pub fn is_string(&self) -> bool {
 1296   1250   
        /* UnionGenerator.kt:123 */
 1297         -
        self.as_timestamp_value().is_ok()
        1251  +
        self.as_string().is_ok()
 1298   1252   
        /* UnionGenerator.kt:122 */
 1299   1253   
    }
 1300   1254   
    /* UnionGenerator.kt:111 */
 1301   1255   
}
 1302   1256   
 1303   1257   
/* StructureGenerator.kt:197 */
 1304   1258   
#[allow(missing_docs)] // documentation missing in model
 1305   1259   
/* RustType.kt:534 */
 1306   1260   
#[derive(
 1307   1261   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1308   1262   
)]
 1309         -
pub /* StructureGenerator.kt:201 */ struct RenamedGreeting {
        1263  +
pub /* StructureGenerator.kt:201 */ struct TestConfig {
 1310   1264   
    /* StructureGenerator.kt:231 */
 1311   1265   
    #[allow(missing_docs)] // documentation missing in model
 1312         -
    pub salutation: ::std::option::Option<::std::string::String>,
        1266  +
    pub timeout: ::std::option::Option<i32>,
 1313   1267   
    /* StructureGenerator.kt:201 */
 1314   1268   
}
 1315   1269   
/* StructureGenerator.kt:135 */
 1316         -
impl RenamedGreeting {
        1270  +
impl TestConfig {
 1317   1271   
    /* StructureGenerator.kt:231 */
 1318   1272   
    #[allow(missing_docs)] // documentation missing in model
 1319   1273   
                           /* StructureGenerator.kt:166 */
 1320         -
    pub fn salutation(&self) -> ::std::option::Option<&str> {
 1321         -
        /* StructureGenerator.kt:169 */
 1322         -
        self.salutation.as_deref()
        1274  +
    pub fn timeout(&self) -> ::std::option::Option<i32> {
        1275  +
        /* StructureGenerator.kt:168 */
        1276  +
        self.timeout
 1323   1277   
        /* StructureGenerator.kt:166 */
 1324   1278   
    }
 1325   1279   
    /* StructureGenerator.kt:135 */
 1326   1280   
}
 1327   1281   
/* ServerCodegenVisitor.kt:356 */
 1328         -
impl RenamedGreeting {
 1329         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`RenamedGreeting`](crate::model::RenamedGreeting).
        1282  +
impl TestConfig {
        1283  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`TestConfig`](crate::model::TestConfig).
 1330   1284   
    /* ServerBuilderGenerator.kt:295 */
 1331         -
    pub fn builder() -> crate::model::renamed_greeting::Builder {
        1285  +
    pub fn builder() -> crate::model::test_config::Builder {
 1332   1286   
        /* ServerBuilderGenerator.kt:296 */
 1333         -
        crate::model::renamed_greeting::Builder::default()
        1287  +
        crate::model::test_config::Builder::default()
 1334   1288   
        /* ServerBuilderGenerator.kt:295 */
 1335   1289   
    }
 1336   1290   
    /* ServerCodegenVisitor.kt:356 */
 1337   1291   
}
 1338   1292   
/* ServerStructureConstrainedTraitImpl.kt:21 */
 1339         -
impl crate::constrained::Constrained for crate::model::RenamedGreeting {
 1340         -
    type Unconstrained = crate::model::renamed_greeting::Builder;
        1293  +
impl crate::constrained::Constrained for crate::model::TestConfig {
        1294  +
    type Unconstrained = crate::model::test_config::Builder;
 1341   1295   
}
 1342   1296   
 1343   1297   
/* StructureGenerator.kt:197 */
 1344   1298   
#[allow(missing_docs)] // documentation missing in model
 1345   1299   
/* RustType.kt:534 */
 1346   1300   
#[derive(
 1347   1301   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1348   1302   
)]
 1349         -
pub /* StructureGenerator.kt:201 */ struct GreetingStruct {
        1303  +
pub /* StructureGenerator.kt:201 */ struct PayloadConfig {
 1350   1304   
    /* StructureGenerator.kt:231 */
 1351   1305   
    #[allow(missing_docs)] // documentation missing in model
 1352         -
    pub hi: ::std::option::Option<::std::string::String>,
        1306  +
    pub data: ::std::option::Option<i32>,
 1353   1307   
    /* StructureGenerator.kt:201 */
 1354   1308   
}
 1355   1309   
/* StructureGenerator.kt:135 */
 1356         -
impl GreetingStruct {
        1310  +
impl PayloadConfig {
 1357   1311   
    /* StructureGenerator.kt:231 */
 1358   1312   
    #[allow(missing_docs)] // documentation missing in model
 1359   1313   
                           /* StructureGenerator.kt:166 */
 1360         -
    pub fn hi(&self) -> ::std::option::Option<&str> {
 1361         -
        /* StructureGenerator.kt:169 */
 1362         -
        self.hi.as_deref()
        1314  +
    pub fn data(&self) -> ::std::option::Option<i32> {
        1315  +
        /* StructureGenerator.kt:168 */
        1316  +
        self.data
 1363   1317   
        /* StructureGenerator.kt:166 */
 1364   1318   
    }
 1365   1319   
    /* StructureGenerator.kt:135 */
 1366   1320   
}
 1367   1321   
/* ServerCodegenVisitor.kt:356 */
 1368         -
impl GreetingStruct {
 1369         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`GreetingStruct`](crate::model::GreetingStruct).
        1322  +
impl PayloadConfig {
        1323  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`PayloadConfig`](crate::model::PayloadConfig).
 1370   1324   
    /* ServerBuilderGenerator.kt:295 */
 1371         -
    pub fn builder() -> crate::model::greeting_struct::Builder {
        1325  +
    pub fn builder() -> crate::model::payload_config::Builder {
 1372   1326   
        /* ServerBuilderGenerator.kt:296 */
 1373         -
        crate::model::greeting_struct::Builder::default()
        1327  +
        crate::model::payload_config::Builder::default()
 1374   1328   
        /* ServerBuilderGenerator.kt:295 */
 1375   1329   
    }
 1376   1330   
    /* ServerCodegenVisitor.kt:356 */
 1377   1331   
}
 1378   1332   
/* ServerStructureConstrainedTraitImpl.kt:21 */
 1379         -
impl crate::constrained::Constrained for crate::model::GreetingStruct {
 1380         -
    type Unconstrained = crate::model::greeting_struct::Builder;
        1333  +
impl crate::constrained::Constrained for crate::model::PayloadConfig {
        1334  +
    type Unconstrained = crate::model::payload_config::Builder;
 1381   1335   
}
 1382   1336   
 1383         -
/* EnumGenerator.kt:181 */
        1337  +
/* StructureGenerator.kt:197 */
 1384   1338   
#[allow(missing_docs)] // documentation missing in model
 1385   1339   
/* RustType.kt:534 */
 1386         -
#[derive(
 1387         -
    ::std::clone::Clone,
 1388         -
    ::std::cmp::Eq,
 1389         -
    ::std::cmp::Ord,
 1390         -
    ::std::cmp::PartialEq,
 1391         -
    ::std::cmp::PartialOrd,
 1392         -
    ::std::fmt::Debug,
 1393         -
    ::std::hash::Hash,
 1394         -
)]
 1395         -
pub /* EnumGenerator.kt:298 */ enum FooEnum {
 1396         -
    /* EnumGenerator.kt:181 */
        1340  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        1341  +
pub /* StructureGenerator.kt:201 */ struct Defaults {
        1342  +
    /* StructureGenerator.kt:231 */
 1397   1343   
    #[allow(missing_docs)] // documentation missing in model
 1398         -
    /* EnumGenerator.kt:170 */
 1399         -
    Zero,
 1400         -
    /* EnumGenerator.kt:181 */
        1344  +
    pub default_string: ::std::string::String,
        1345  +
    /* StructureGenerator.kt:231 */
 1401   1346   
    #[allow(missing_docs)] // documentation missing in model
 1402         -
    /* EnumGenerator.kt:170 */
 1403         -
    One,
 1404         -
    /* EnumGenerator.kt:181 */
        1347  +
    pub default_boolean: bool,
        1348  +
    /* StructureGenerator.kt:231 */
 1405   1349   
    #[allow(missing_docs)] // documentation missing in model
 1406         -
    /* EnumGenerator.kt:170 */
 1407         -
    Bar,
 1408         -
    /* EnumGenerator.kt:181 */
        1350  +
    pub default_list: ::std::vec::Vec<::std::string::String>,
        1351  +
    /* StructureGenerator.kt:231 */
 1409   1352   
    #[allow(missing_docs)] // documentation missing in model
 1410         -
    /* EnumGenerator.kt:170 */
 1411         -
    Baz,
 1412         -
    /* EnumGenerator.kt:181 */
        1353  +
    pub default_document_map: ::aws_smithy_types::Document,
        1354  +
    /* StructureGenerator.kt:231 */
 1413   1355   
    #[allow(missing_docs)] // documentation missing in model
 1414         -
    /* EnumGenerator.kt:170 */
 1415         -
    Foo,
 1416         -
    /* EnumGenerator.kt:298 */
 1417         -
}
 1418         -
/// /* CodegenDelegator.kt:52 */See [`FooEnum`](crate::model::FooEnum).
 1419         -
pub mod foo_enum {
 1420         -
    #[derive(Debug, PartialEq)]
 1421         -
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
 1422         -
 1423         -
    impl ::std::fmt::Display for ConstraintViolation {
 1424         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1425         -
            write!(
 1426         -
                f,
 1427         -
                r#"Value provided for 'aws.protocoltests.shared#FooEnum' failed to satisfy constraint: Member must satisfy enum value set: [Foo, Baz, Bar, 1, 0]"#
 1428         -
            )
 1429         -
        }
 1430         -
    }
 1431         -
 1432         -
    impl ::std::error::Error for ConstraintViolation {}
 1433         -
    impl ConstraintViolation {
 1434         -
        pub(crate) fn as_validation_exception_field(
 1435         -
            self,
 1436         -
            path: ::std::string::String,
 1437         -
        ) -> crate::model::ValidationExceptionField {
 1438         -
            crate::model::ValidationExceptionField {
 1439         -
                message: format!(
 1440         -
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [Foo, Baz, Bar, 1, 0]"#,
 1441         -
                    &path
 1442         -
                ),
 1443         -
                path,
 1444         -
            }
 1445         -
        }
 1446         -
    }
 1447         -
 1448         -
    /* ServerEnumGenerator.kt:47 */
 1449         -
}
 1450         -
/* ServerEnumGenerator.kt:88 */
 1451         -
impl ::std::convert::TryFrom<&str> for FooEnum {
 1452         -
    type Error = crate::model::foo_enum::ConstraintViolation;
 1453         -
    fn try_from(
 1454         -
        s: &str,
 1455         -
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
 1456         -
        match s {
 1457         -
            "0" => Ok(FooEnum::Zero),
 1458         -
            "1" => Ok(FooEnum::One),
 1459         -
            "Bar" => Ok(FooEnum::Bar),
 1460         -
            "Baz" => Ok(FooEnum::Baz),
 1461         -
            "Foo" => Ok(FooEnum::Foo),
 1462         -
            _ => Err(crate::model::foo_enum::ConstraintViolation(s.to_owned())),
 1463         -
        }
 1464         -
    }
 1465         -
}
 1466         -
impl ::std::convert::TryFrom<::std::string::String> for FooEnum {
 1467         -
    type Error = crate::model::foo_enum::ConstraintViolation;
 1468         -
    fn try_from(
 1469         -
        s: ::std::string::String,
 1470         -
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
 1471         -
    {
 1472         -
        s.as_str().try_into()
 1473         -
    }
 1474         -
}
 1475         -
/* ServerEnumGenerator.kt:148 */
 1476         -
impl std::str::FromStr for FooEnum {
 1477         -
    type Err = crate::model::foo_enum::ConstraintViolation;
 1478         -
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
 1479         -
        Self::try_from(s)
 1480         -
    }
 1481         -
}
 1482         -
/* EnumGenerator.kt:309 */
 1483         -
impl FooEnum {
 1484         -
    /// Returns the `&str` value of the enum member.
 1485         -
    pub fn as_str(&self) -> &str {
 1486         -
        match self {
 1487         -
            FooEnum::Zero => "0",
 1488         -
            FooEnum::One => "1",
 1489         -
            FooEnum::Bar => "Bar",
 1490         -
            FooEnum::Baz => "Baz",
 1491         -
            FooEnum::Foo => "Foo",
 1492         -
        }
 1493         -
    }
 1494         -
    /// Returns all the `&str` representations of the enum members.
 1495         -
    pub const fn values() -> &'static [&'static str] {
 1496         -
        &["0", "1", "Bar", "Baz", "Foo"]
 1497         -
    }
 1498         -
}
 1499         -
/* EnumGenerator.kt:254 */
 1500         -
impl ::std::convert::AsRef<str> for FooEnum {
 1501         -
    fn as_ref(&self) -> &str {
 1502         -
        self.as_str()
 1503         -
    }
 1504         -
}
 1505         -
/* ConstrainedTraitForEnumGenerator.kt:36 */
 1506         -
impl crate::constrained::Constrained for FooEnum {
 1507         -
    type Unconstrained = ::std::string::String;
 1508         -
}
 1509         -
 1510         -
impl ::std::convert::From<::std::string::String>
 1511         -
    for crate::constrained::MaybeConstrained<crate::model::FooEnum>
 1512         -
{
 1513         -
    fn from(value: ::std::string::String) -> Self {
 1514         -
        Self::Unconstrained(value)
 1515         -
    }
 1516         -
}
 1517         -
 1518         -
/* ConstrainedCollectionGenerator.kt:93 */
 1519         -
#[allow(missing_docs)] // documentation missing in model
 1520         -
/// /* ConstrainedCollectionGenerator.kt:94 */
 1521         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1522         -
/// [constraint traits]. Use [`StringSet::try_from`] to construct values of this type.
 1523         -
///
 1524         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1525         -
///
 1526         -
/* RustType.kt:534 */
 1527         -
#[derive(
 1528         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1529         -
)]
 1530         -
pub /* ConstrainedCollectionGenerator.kt:97 */ struct StringSet(
 1531         -
    pub(crate) ::std::vec::Vec<::std::string::String>,
 1532         -
);
 1533         -
/* ConstrainedCollectionGenerator.kt:104 */
 1534         -
impl StringSet {
 1535         -
    /* ConstrainedCollectionGenerator.kt:106 */
 1536         -
    /// Returns an immutable reference to the underlying [`::std::vec::Vec<::std::string::String>`].
 1537         -
    pub fn inner(&self) -> &::std::vec::Vec<::std::string::String> {
 1538         -
        &self.0
 1539         -
    }
 1540         -
    /* ConstrainedCollectionGenerator.kt:116 */
 1541         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::string::String>`].
 1542         -
    pub fn into_inner(self) -> ::std::vec::Vec<::std::string::String> {
 1543         -
        self.0
 1544         -
    }
 1545         -
 1546         -
    fn check_unique_items(
 1547         -
        items: ::std::vec::Vec<::std::string::String>,
 1548         -
    ) -> ::std::result::Result<
 1549         -
        ::std::vec::Vec<::std::string::String>,
 1550         -
        crate::model::string_set::ConstraintViolation,
 1551         -
    > {
 1552         -
        let mut seen = ::std::collections::HashMap::new();
 1553         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 1554         -
        for (idx, item) in items.iter().enumerate() {
 1555         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 1556         -
                duplicate_indices.push(prev_idx);
 1557         -
            }
 1558         -
        }
 1559         -
 1560         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 1561         -
        for idx in &duplicate_indices {
 1562         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 1563         -
                last_duplicate_indices.push(prev_idx);
 1564         -
            }
 1565         -
        }
 1566         -
        duplicate_indices.extend(last_duplicate_indices);
 1567         -
 1568         -
        if !duplicate_indices.is_empty() {
 1569         -
            debug_assert!(duplicate_indices.len() >= 2);
 1570         -
            Err(crate::model::string_set::ConstraintViolation::UniqueItems {
 1571         -
                duplicate_indices,
 1572         -
                original: items,
 1573         -
            })
 1574         -
        } else {
 1575         -
            Ok(items)
 1576         -
        }
 1577         -
    }
 1578         -
    /* ConstrainedCollectionGenerator.kt:104 */
 1579         -
}
 1580         -
/* ConstrainedCollectionGenerator.kt:133 */
 1581         -
impl ::std::convert::TryFrom<::std::vec::Vec<::std::string::String>> for StringSet {
 1582         -
    type Error = crate::model::string_set::ConstraintViolation;
 1583         -
 1584         -
    /// Constructs a `StringSet` from an [`::std::vec::Vec<::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
 1585         -
    fn try_from(
 1586         -
        value: ::std::vec::Vec<::std::string::String>,
 1587         -
    ) -> ::std::result::Result<Self, Self::Error> {
 1588         -
        let value = Self::check_unique_items(value)?;
 1589         -
 1590         -
        Ok(Self(value))
 1591         -
    }
 1592         -
}
 1593         -
 1594         -
impl ::std::convert::From<StringSet> for ::std::vec::Vec<::std::string::String> {
 1595         -
    fn from(value: StringSet) -> Self {
 1596         -
        value.into_inner()
 1597         -
    }
 1598         -
}
 1599         -
/* ConstrainedCollectionGenerator.kt:181 */
 1600         -
impl crate::constrained::Constrained for StringSet {
 1601         -
    type Unconstrained = crate::unconstrained::string_set_unconstrained::StringSetUnconstrained;
 1602         -
}
 1603         -
 1604         -
/* StructureGenerator.kt:197 */
 1605         -
#[allow(missing_docs)] // documentation missing in model
 1606         -
/* RustType.kt:534 */
 1607         -
#[derive(
 1608         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1609         -
)]
 1610         -
pub /* StructureGenerator.kt:201 */ struct StructureListMember {
        1356  +
    pub default_document_string: ::aws_smithy_types::Document,
 1611   1357   
    /* StructureGenerator.kt:231 */
 1612   1358   
    #[allow(missing_docs)] // documentation missing in model
 1613         -
    pub a: ::std::option::Option<::std::string::String>,
        1359  +
    pub default_document_boolean: ::aws_smithy_types::Document,
 1614   1360   
    /* StructureGenerator.kt:231 */
 1615   1361   
    #[allow(missing_docs)] // documentation missing in model
 1616         -
    pub b: ::std::option::Option<::std::string::String>,
 1617         -
    /* StructureGenerator.kt:201 */
 1618         -
}
 1619         -
/* StructureGenerator.kt:135 */
 1620         -
impl StructureListMember {
        1362  +
    pub default_document_list: ::aws_smithy_types::Document,
 1621   1363   
    /* StructureGenerator.kt:231 */
 1622   1364   
    #[allow(missing_docs)] // documentation missing in model
 1623         -
                           /* StructureGenerator.kt:166 */
 1624         -
    pub fn a(&self) -> ::std::option::Option<&str> {
 1625         -
        /* StructureGenerator.kt:169 */
 1626         -
        self.a.as_deref()
 1627         -
        /* StructureGenerator.kt:166 */
 1628         -
    }
        1365  +
    pub default_null_document: ::std::option::Option<::aws_smithy_types::Document>,
 1629   1366   
    /* StructureGenerator.kt:231 */
 1630   1367   
    #[allow(missing_docs)] // documentation missing in model
 1631         -
                           /* StructureGenerator.kt:166 */
 1632         -
    pub fn b(&self) -> ::std::option::Option<&str> {
 1633         -
        /* StructureGenerator.kt:169 */
 1634         -
        self.b.as_deref()
 1635         -
        /* StructureGenerator.kt:166 */
 1636         -
    }
 1637         -
    /* StructureGenerator.kt:135 */
 1638         -
}
 1639         -
/* ServerCodegenVisitor.kt:356 */
 1640         -
impl StructureListMember {
 1641         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`StructureListMember`](crate::model::StructureListMember).
 1642         -
    /* ServerBuilderGenerator.kt:295 */
 1643         -
    pub fn builder() -> crate::model::structure_list_member::Builder {
 1644         -
        /* ServerBuilderGenerator.kt:296 */
 1645         -
        crate::model::structure_list_member::Builder::default()
 1646         -
        /* ServerBuilderGenerator.kt:295 */
 1647         -
    }
 1648         -
    /* ServerCodegenVisitor.kt:356 */
 1649         -
}
 1650         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
 1651         -
impl crate::constrained::Constrained for crate::model::StructureListMember {
 1652         -
    type Unconstrained = crate::model::structure_list_member::Builder;
 1653         -
}
 1654         -
 1655         -
/* StructureGenerator.kt:197 */
 1656         -
#[allow(missing_docs)] // documentation missing in model
 1657         -
/* RustType.kt:534 */
 1658         -
#[derive(
 1659         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1660         -
)]
 1661         -
pub /* StructureGenerator.kt:201 */ struct RecursiveShapesInputOutputNested1 {
        1368  +
    pub default_timestamp: ::aws_smithy_types::DateTime,
 1662   1369   
    /* StructureGenerator.kt:231 */
 1663   1370   
    #[allow(missing_docs)] // documentation missing in model
 1664         -
    pub foo: ::std::option::Option<::std::string::String>,
        1371  +
    pub default_blob: ::aws_smithy_types::Blob,
 1665   1372   
    /* StructureGenerator.kt:231 */
 1666   1373   
    #[allow(missing_docs)] // documentation missing in model
 1667         -
    pub nested:
 1668         -
        ::std::option::Option<::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>>,
 1669         -
    /* StructureGenerator.kt:201 */
 1670         -
}
 1671         -
/* StructureGenerator.kt:135 */
 1672         -
impl RecursiveShapesInputOutputNested1 {
        1374  +
    pub default_byte: i8,
 1673   1375   
    /* StructureGenerator.kt:231 */
 1674   1376   
    #[allow(missing_docs)] // documentation missing in model
 1675         -
                           /* StructureGenerator.kt:166 */
 1676         -
    pub fn foo(&self) -> ::std::option::Option<&str> {
 1677         -
        /* StructureGenerator.kt:169 */
 1678         -
        self.foo.as_deref()
 1679         -
        /* StructureGenerator.kt:166 */
 1680         -
    }
        1377  +
    pub default_short: i16,
 1681   1378   
    /* StructureGenerator.kt:231 */
 1682   1379   
    #[allow(missing_docs)] // documentation missing in model
 1683         -
                           /* StructureGenerator.kt:166 */
 1684         -
    pub fn nested(
 1685         -
        &self,
 1686         -
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested2> {
 1687         -
        /* StructureGenerator.kt:169 */
 1688         -
        self.nested.as_deref()
 1689         -
        /* StructureGenerator.kt:166 */
 1690         -
    }
 1691         -
    /* StructureGenerator.kt:135 */
 1692         -
}
 1693         -
/* ServerCodegenVisitor.kt:356 */
 1694         -
impl RecursiveShapesInputOutputNested1 {
 1695         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 1696         -
    /* ServerBuilderGenerator.kt:295 */
 1697         -
    pub fn builder() -> crate::model::recursive_shapes_input_output_nested1::Builder {
 1698         -
        /* ServerBuilderGenerator.kt:296 */
 1699         -
        crate::model::recursive_shapes_input_output_nested1::Builder::default()
 1700         -
        /* ServerBuilderGenerator.kt:295 */
 1701         -
    }
 1702         -
    /* ServerCodegenVisitor.kt:356 */
 1703         -
}
 1704         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
 1705         -
impl crate::constrained::Constrained for crate::model::RecursiveShapesInputOutputNested1 {
 1706         -
    type Unconstrained = crate::model::recursive_shapes_input_output_nested1::Builder;
 1707         -
}
 1708         -
 1709         -
/* StructureGenerator.kt:197 */
 1710         -
#[allow(missing_docs)] // documentation missing in model
 1711         -
/* RustType.kt:534 */
 1712         -
#[derive(
 1713         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1714         -
)]
 1715         -
pub /* StructureGenerator.kt:201 */ struct RecursiveShapesInputOutputNested2 {
        1380  +
    pub default_integer: i32,
 1716   1381   
    /* StructureGenerator.kt:231 */
 1717   1382   
    #[allow(missing_docs)] // documentation missing in model
 1718         -
    pub bar: ::std::option::Option<::std::string::String>,
        1383  +
    pub default_long: i64,
 1719   1384   
    /* StructureGenerator.kt:231 */
 1720   1385   
    #[allow(missing_docs)] // documentation missing in model
 1721         -
    pub recursive_member: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
        1386  +
    pub default_float: f32,
        1387  +
    /* StructureGenerator.kt:231 */
        1388  +
    #[allow(missing_docs)] // documentation missing in model
        1389  +
    pub default_double: f64,
        1390  +
    /* StructureGenerator.kt:231 */
        1391  +
    #[allow(missing_docs)] // documentation missing in model
        1392  +
    pub default_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1393  +
    /* StructureGenerator.kt:231 */
        1394  +
    #[allow(missing_docs)] // documentation missing in model
        1395  +
    pub default_enum: crate::model::TestEnum,
        1396  +
    /* StructureGenerator.kt:231 */
        1397  +
    #[allow(missing_docs)] // documentation missing in model
        1398  +
    pub default_int_enum: i32,
        1399  +
    /* StructureGenerator.kt:231 */
        1400  +
    #[allow(missing_docs)] // documentation missing in model
        1401  +
    pub empty_string: ::std::string::String,
        1402  +
    /* StructureGenerator.kt:231 */
        1403  +
    #[allow(missing_docs)] // documentation missing in model
        1404  +
    pub false_boolean: bool,
        1405  +
    /* StructureGenerator.kt:231 */
        1406  +
    #[allow(missing_docs)] // documentation missing in model
        1407  +
    pub empty_blob: ::aws_smithy_types::Blob,
        1408  +
    /* StructureGenerator.kt:231 */
        1409  +
    #[allow(missing_docs)] // documentation missing in model
        1410  +
    pub zero_byte: i8,
        1411  +
    /* StructureGenerator.kt:231 */
        1412  +
    #[allow(missing_docs)] // documentation missing in model
        1413  +
    pub zero_short: i16,
        1414  +
    /* StructureGenerator.kt:231 */
        1415  +
    #[allow(missing_docs)] // documentation missing in model
        1416  +
    pub zero_integer: i32,
        1417  +
    /* StructureGenerator.kt:231 */
        1418  +
    #[allow(missing_docs)] // documentation missing in model
        1419  +
    pub zero_long: i64,
        1420  +
    /* StructureGenerator.kt:231 */
        1421  +
    #[allow(missing_docs)] // documentation missing in model
        1422  +
    pub zero_float: f32,
        1423  +
    /* StructureGenerator.kt:231 */
        1424  +
    #[allow(missing_docs)] // documentation missing in model
        1425  +
    pub zero_double: f64,
 1722   1426   
    /* StructureGenerator.kt:201 */
 1723   1427   
}
 1724   1428   
/* StructureGenerator.kt:135 */
 1725         -
impl RecursiveShapesInputOutputNested2 {
        1429  +
impl Defaults {
 1726   1430   
    /* StructureGenerator.kt:231 */
 1727   1431   
    #[allow(missing_docs)] // documentation missing in model
 1728   1432   
                           /* StructureGenerator.kt:166 */
 1729         -
    pub fn bar(&self) -> ::std::option::Option<&str> {
 1730         -
        /* StructureGenerator.kt:169 */
 1731         -
        self.bar.as_deref()
        1433  +
    pub fn default_string(&self) -> &str {
        1434  +
        /* StructureGenerator.kt:171 */
        1435  +
        use std::ops::Deref;
        1436  +
        self.default_string.deref()
 1732   1437   
        /* StructureGenerator.kt:166 */
 1733   1438   
    }
 1734   1439   
    /* StructureGenerator.kt:231 */
 1735   1440   
    #[allow(missing_docs)] // documentation missing in model
 1736   1441   
                           /* StructureGenerator.kt:166 */
 1737         -
    pub fn recursive_member(
 1738         -
        &self,
 1739         -
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested1> {
 1740         -
        /* StructureGenerator.kt:170 */
 1741         -
        self.recursive_member.as_ref()
        1442  +
    pub fn default_boolean(&self) -> bool {
        1443  +
        /* StructureGenerator.kt:168 */
        1444  +
        self.default_boolean
 1742   1445   
        /* StructureGenerator.kt:166 */
 1743   1446   
    }
 1744         -
    /* StructureGenerator.kt:135 */
 1745         -
}
 1746         -
/* ServerCodegenVisitor.kt:356 */
 1747         -
impl RecursiveShapesInputOutputNested2 {
 1748         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 1749         -
    /* ServerBuilderGenerator.kt:295 */
 1750         -
    pub fn builder() -> crate::model::recursive_shapes_input_output_nested2::Builder {
 1751         -
        /* ServerBuilderGenerator.kt:296 */
 1752         -
        crate::model::recursive_shapes_input_output_nested2::Builder::default()
 1753         -
        /* ServerBuilderGenerator.kt:295 */
        1447  +
    /* StructureGenerator.kt:231 */
        1448  +
    #[allow(missing_docs)] // documentation missing in model
        1449  +
                           /* StructureGenerator.kt:166 */
        1450  +
    pub fn default_list(&self) -> &[::std::string::String] {
        1451  +
        /* StructureGenerator.kt:171 */
        1452  +
        use std::ops::Deref;
        1453  +
        self.default_list.deref()
        1454  +
        /* StructureGenerator.kt:166 */
 1754   1455   
    }
 1755         -
    /* ServerCodegenVisitor.kt:356 */
 1756         -
}
 1757         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
 1758         -
impl crate::constrained::Constrained for crate::model::RecursiveShapesInputOutputNested2 {
 1759         -
    type Unconstrained = crate::model::recursive_shapes_input_output_nested2::Builder;
 1760         -
}
 1761         -
 1762         -
/* ConstrainedCollectionGenerator.kt:93 */
 1763         -
#[allow(missing_docs)] // documentation missing in model
 1764         -
/// /* ConstrainedCollectionGenerator.kt:94 */
 1765         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1766         -
/// [constraint traits]. Use [`IntegerEnumSet::try_from`] to construct values of this type.
 1767         -
///
 1768         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1769         -
///
 1770         -
/* RustType.kt:534 */
 1771         -
#[derive(
 1772         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1773         -
)]
 1774         -
pub /* ConstrainedCollectionGenerator.kt:97 */ struct IntegerEnumSet(
 1775         -
    pub(crate) ::std::vec::Vec<i32>,
 1776         -
);
 1777         -
/* ConstrainedCollectionGenerator.kt:104 */
 1778         -
impl IntegerEnumSet {
 1779         -
    /* ConstrainedCollectionGenerator.kt:106 */
 1780         -
    /// Returns an immutable reference to the underlying [`::std::vec::Vec<i32>`].
 1781         -
    pub fn inner(&self) -> &::std::vec::Vec<i32> {
 1782         -
        &self.0
        1456  +
    /* StructureGenerator.kt:231 */
        1457  +
    #[allow(missing_docs)] // documentation missing in model
        1458  +
                           /* StructureGenerator.kt:166 */
        1459  +
    pub fn default_document_map(&self) -> &::aws_smithy_types::Document {
        1460  +
        /* StructureGenerator.kt:172 */
        1461  +
        &self.default_document_map
        1462  +
        /* StructureGenerator.kt:166 */
 1783   1463   
    }
 1784         -
    /* ConstrainedCollectionGenerator.kt:116 */
 1785         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<i32>`].
 1786         -
    pub fn into_inner(self) -> ::std::vec::Vec<i32> {
 1787         -
        self.0
        1464  +
    /* StructureGenerator.kt:231 */
        1465  +
    #[allow(missing_docs)] // documentation missing in model
        1466  +
                           /* StructureGenerator.kt:166 */
        1467  +
    pub fn default_document_string(&self) -> &::aws_smithy_types::Document {
        1468  +
        /* StructureGenerator.kt:172 */
        1469  +
        &self.default_document_string
        1470  +
        /* StructureGenerator.kt:166 */
 1788   1471   
    }
 1789         -
 1790         -
    fn check_unique_items(
 1791         -
        items: ::std::vec::Vec<i32>,
 1792         -
    ) -> ::std::result::Result<
 1793         -
        ::std::vec::Vec<i32>,
 1794         -
        crate::model::integer_enum_set::ConstraintViolation,
 1795         -
    > {
 1796         -
        let mut seen = ::std::collections::HashMap::new();
 1797         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 1798         -
        for (idx, item) in items.iter().enumerate() {
 1799         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 1800         -
                duplicate_indices.push(prev_idx);
 1801         -
            }
 1802         -
        }
 1803         -
 1804         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 1805         -
        for idx in &duplicate_indices {
 1806         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 1807         -
                last_duplicate_indices.push(prev_idx);
 1808         -
            }
 1809         -
        }
 1810         -
        duplicate_indices.extend(last_duplicate_indices);
 1811         -
 1812         -
        if !duplicate_indices.is_empty() {
 1813         -
            debug_assert!(duplicate_indices.len() >= 2);
 1814         -
            Err(
 1815         -
                crate::model::integer_enum_set::ConstraintViolation::UniqueItems {
 1816         -
                    duplicate_indices,
 1817         -
                    original: items,
 1818         -
                },
 1819         -
            )
 1820         -
        } else {
 1821         -
            Ok(items)
 1822         -
        }
        1472  +
    /* StructureGenerator.kt:231 */
        1473  +
    #[allow(missing_docs)] // documentation missing in model
        1474  +
                           /* StructureGenerator.kt:166 */
        1475  +
    pub fn default_document_boolean(&self) -> &::aws_smithy_types::Document {
        1476  +
        /* StructureGenerator.kt:172 */
        1477  +
        &self.default_document_boolean
        1478  +
        /* StructureGenerator.kt:166 */
 1823   1479   
    }
 1824         -
    /* ConstrainedCollectionGenerator.kt:104 */
 1825         -
}
 1826         -
/* ConstrainedCollectionGenerator.kt:133 */
 1827         -
impl ::std::convert::TryFrom<::std::vec::Vec<i32>> for IntegerEnumSet {
 1828         -
    type Error = crate::model::integer_enum_set::ConstraintViolation;
 1829         -
 1830         -
    /// Constructs a `IntegerEnumSet` from an [`::std::vec::Vec<i32>`], failing when the provided value does not satisfy the modeled constraints.
 1831         -
    fn try_from(value: ::std::vec::Vec<i32>) -> ::std::result::Result<Self, Self::Error> {
 1832         -
        let value = Self::check_unique_items(value)?;
 1833         -
 1834         -
        Ok(Self(value))
        1480  +
    /* StructureGenerator.kt:231 */
        1481  +
    #[allow(missing_docs)] // documentation missing in model
        1482  +
                           /* StructureGenerator.kt:166 */
        1483  +
    pub fn default_document_list(&self) -> &::aws_smithy_types::Document {
        1484  +
        /* StructureGenerator.kt:172 */
        1485  +
        &self.default_document_list
        1486  +
        /* StructureGenerator.kt:166 */
 1835   1487   
    }
 1836         -
}
 1837         -
 1838         -
impl ::std::convert::From<IntegerEnumSet> for ::std::vec::Vec<i32> {
 1839         -
    fn from(value: IntegerEnumSet) -> Self {
 1840         -
        value.into_inner()
        1488  +
    /* StructureGenerator.kt:231 */
        1489  +
    #[allow(missing_docs)] // documentation missing in model
        1490  +
                           /* StructureGenerator.kt:166 */
        1491  +
    pub fn default_null_document(&self) -> ::std::option::Option<&::aws_smithy_types::Document> {
        1492  +
        /* StructureGenerator.kt:170 */
        1493  +
        self.default_null_document.as_ref()
        1494  +
        /* StructureGenerator.kt:166 */
 1841   1495   
    }
 1842         -
}
 1843         -
/* ConstrainedCollectionGenerator.kt:181 */
 1844         -
impl crate::constrained::Constrained for IntegerEnumSet {
 1845         -
    type Unconstrained =
 1846         -
        crate::unconstrained::integer_enum_set_unconstrained::IntegerEnumSetUnconstrained;
 1847         -
}
 1848         -
 1849         -
/* ConstrainedCollectionGenerator.kt:93 */
 1850         -
#[allow(missing_docs)] // documentation missing in model
 1851         -
/// /* ConstrainedCollectionGenerator.kt:94 */
 1852         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1853         -
/// [constraint traits]. Use [`FooEnumSet::try_from`] to construct values of this type.
 1854         -
///
 1855         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1856         -
///
 1857         -
/* RustType.kt:534 */
 1858         -
#[derive(
 1859         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1860         -
)]
 1861         -
pub /* ConstrainedCollectionGenerator.kt:97 */ struct FooEnumSet(
 1862         -
    pub(crate) ::std::vec::Vec<crate::model::FooEnum>,
 1863         -
);
 1864         -
/* ConstrainedCollectionGenerator.kt:104 */
 1865         -
impl FooEnumSet {
 1866         -
    /* ConstrainedCollectionGenerator.kt:106 */
 1867         -
    /// Returns an immutable reference to the underlying [`::std::vec::Vec<crate::model::FooEnum>`].
 1868         -
    pub fn inner(&self) -> &::std::vec::Vec<crate::model::FooEnum> {
 1869         -
        &self.0
        1496  +
    /* StructureGenerator.kt:231 */
        1497  +
    #[allow(missing_docs)] // documentation missing in model
        1498  +
                           /* StructureGenerator.kt:166 */
        1499  +
    pub fn default_timestamp(&self) -> &::aws_smithy_types::DateTime {
        1500  +
        /* StructureGenerator.kt:172 */
        1501  +
        &self.default_timestamp
        1502  +
        /* StructureGenerator.kt:166 */
 1870   1503   
    }
 1871         -
    /* ConstrainedCollectionGenerator.kt:116 */
 1872         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::FooEnum>`].
 1873         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::FooEnum> {
 1874         -
        self.0
        1504  +
    /* StructureGenerator.kt:231 */
        1505  +
    #[allow(missing_docs)] // documentation missing in model
        1506  +
                           /* StructureGenerator.kt:166 */
        1507  +
    pub fn default_blob(&self) -> &::aws_smithy_types::Blob {
        1508  +
        /* StructureGenerator.kt:172 */
        1509  +
        &self.default_blob
        1510  +
        /* StructureGenerator.kt:166 */
 1875   1511   
    }
 1876         -
 1877         -
    fn check_unique_items(
 1878         -
        items: ::std::vec::Vec<crate::model::FooEnum>,
 1879         -
    ) -> ::std::result::Result<
 1880         -
        ::std::vec::Vec<crate::model::FooEnum>,
 1881         -
        crate::model::foo_enum_set::ConstraintViolation,
 1882         -
    > {
 1883         -
        let mut seen = ::std::collections::HashMap::new();
 1884         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 1885         -
        for (idx, item) in items.iter().enumerate() {
 1886         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 1887         -
                duplicate_indices.push(prev_idx);
 1888         -
            }
 1889         -
        }
 1890         -
 1891         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 1892         -
        for idx in &duplicate_indices {
 1893         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 1894         -
                last_duplicate_indices.push(prev_idx);
 1895         -
            }
 1896         -
        }
 1897         -
        duplicate_indices.extend(last_duplicate_indices);
 1898         -
 1899         -
        if !duplicate_indices.is_empty() {
 1900         -
            debug_assert!(duplicate_indices.len() >= 2);
 1901         -
            Err(
 1902         -
                crate::model::foo_enum_set::ConstraintViolation::UniqueItems {
 1903         -
                    duplicate_indices,
 1904         -
                    original: items,
 1905         -
                },
 1906         -
            )
 1907         -
        } else {
 1908         -
            Ok(items)
 1909         -
        }
        1512  +
    /* StructureGenerator.kt:231 */
        1513  +
    #[allow(missing_docs)] // documentation missing in model
        1514  +
                           /* StructureGenerator.kt:166 */
        1515  +
    pub fn default_byte(&self) -> i8 {
        1516  +
        /* StructureGenerator.kt:168 */
        1517  +
        self.default_byte
        1518  +
        /* StructureGenerator.kt:166 */
 1910   1519   
    }
 1911         -
    /* ConstrainedCollectionGenerator.kt:104 */
 1912         -
}
 1913         -
/* ConstrainedCollectionGenerator.kt:133 */
 1914         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::FooEnum>> for FooEnumSet {
 1915         -
    type Error = crate::model::foo_enum_set::ConstraintViolation;
 1916         -
 1917         -
    /// Constructs a `FooEnumSet` from an [`::std::vec::Vec<crate::model::FooEnum>`], failing when the provided value does not satisfy the modeled constraints.
 1918         -
    fn try_from(
 1919         -
        value: ::std::vec::Vec<crate::model::FooEnum>,
 1920         -
    ) -> ::std::result::Result<Self, Self::Error> {
 1921         -
        let value = Self::check_unique_items(value)?;
 1922         -
 1923         -
        Ok(Self(value))
        1520  +
    /* StructureGenerator.kt:231 */
        1521  +
    #[allow(missing_docs)] // documentation missing in model
        1522  +
                           /* StructureGenerator.kt:166 */
        1523  +
    pub fn default_short(&self) -> i16 {
        1524  +
        /* StructureGenerator.kt:168 */
        1525  +
        self.default_short
        1526  +
        /* StructureGenerator.kt:166 */
        1527  +
    }
        1528  +
    /* StructureGenerator.kt:231 */
        1529  +
    #[allow(missing_docs)] // documentation missing in model
        1530  +
                           /* StructureGenerator.kt:166 */
        1531  +
    pub fn default_integer(&self) -> i32 {
        1532  +
        /* StructureGenerator.kt:168 */
        1533  +
        self.default_integer
        1534  +
        /* StructureGenerator.kt:166 */
        1535  +
    }
        1536  +
    /* StructureGenerator.kt:231 */
        1537  +
    #[allow(missing_docs)] // documentation missing in model
        1538  +
                           /* StructureGenerator.kt:166 */
        1539  +
    pub fn default_long(&self) -> i64 {
        1540  +
        /* StructureGenerator.kt:168 */
        1541  +
        self.default_long
        1542  +
        /* StructureGenerator.kt:166 */
        1543  +
    }
        1544  +
    /* StructureGenerator.kt:231 */
        1545  +
    #[allow(missing_docs)] // documentation missing in model
        1546  +
                           /* StructureGenerator.kt:166 */
        1547  +
    pub fn default_float(&self) -> f32 {
        1548  +
        /* StructureGenerator.kt:168 */
        1549  +
        self.default_float
        1550  +
        /* StructureGenerator.kt:166 */
        1551  +
    }
        1552  +
    /* StructureGenerator.kt:231 */
        1553  +
    #[allow(missing_docs)] // documentation missing in model
        1554  +
                           /* StructureGenerator.kt:166 */
        1555  +
    pub fn default_double(&self) -> f64 {
        1556  +
        /* StructureGenerator.kt:168 */
        1557  +
        self.default_double
        1558  +
        /* StructureGenerator.kt:166 */
        1559  +
    }
        1560  +
    /* StructureGenerator.kt:231 */
        1561  +
    #[allow(missing_docs)] // documentation missing in model
        1562  +
                           /* StructureGenerator.kt:166 */
        1563  +
    pub fn default_map(
        1564  +
        &self,
        1565  +
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
        1566  +
        /* StructureGenerator.kt:172 */
        1567  +
        &self.default_map
        1568  +
        /* StructureGenerator.kt:166 */
        1569  +
    }
        1570  +
    /* StructureGenerator.kt:231 */
        1571  +
    #[allow(missing_docs)] // documentation missing in model
        1572  +
                           /* StructureGenerator.kt:166 */
        1573  +
    pub fn default_enum(&self) -> &crate::model::TestEnum {
        1574  +
        /* StructureGenerator.kt:172 */
        1575  +
        &self.default_enum
        1576  +
        /* StructureGenerator.kt:166 */
        1577  +
    }
        1578  +
    /* StructureGenerator.kt:231 */
        1579  +
    #[allow(missing_docs)] // documentation missing in model
        1580  +
                           /* StructureGenerator.kt:166 */
        1581  +
    pub fn default_int_enum(&self) -> i32 {
        1582  +
        /* StructureGenerator.kt:168 */
        1583  +
        self.default_int_enum
        1584  +
        /* StructureGenerator.kt:166 */
        1585  +
    }
        1586  +
    /* StructureGenerator.kt:231 */
        1587  +
    #[allow(missing_docs)] // documentation missing in model
        1588  +
                           /* StructureGenerator.kt:166 */
        1589  +
    pub fn empty_string(&self) -> &str {
        1590  +
        /* StructureGenerator.kt:171 */
        1591  +
        use std::ops::Deref;
        1592  +
        self.empty_string.deref()
        1593  +
        /* StructureGenerator.kt:166 */
        1594  +
    }
        1595  +
    /* StructureGenerator.kt:231 */
        1596  +
    #[allow(missing_docs)] // documentation missing in model
        1597  +
                           /* StructureGenerator.kt:166 */
        1598  +
    pub fn false_boolean(&self) -> bool {
        1599  +
        /* StructureGenerator.kt:168 */
        1600  +
        self.false_boolean
        1601  +
        /* StructureGenerator.kt:166 */
        1602  +
    }
        1603  +
    /* StructureGenerator.kt:231 */
        1604  +
    #[allow(missing_docs)] // documentation missing in model
        1605  +
                           /* StructureGenerator.kt:166 */
        1606  +
    pub fn empty_blob(&self) -> &::aws_smithy_types::Blob {
        1607  +
        /* StructureGenerator.kt:172 */
        1608  +
        &self.empty_blob
        1609  +
        /* StructureGenerator.kt:166 */
        1610  +
    }
        1611  +
    /* StructureGenerator.kt:231 */
        1612  +
    #[allow(missing_docs)] // documentation missing in model
        1613  +
                           /* StructureGenerator.kt:166 */
        1614  +
    pub fn zero_byte(&self) -> i8 {
        1615  +
        /* StructureGenerator.kt:168 */
        1616  +
        self.zero_byte
        1617  +
        /* StructureGenerator.kt:166 */
        1618  +
    }
        1619  +
    /* StructureGenerator.kt:231 */
        1620  +
    #[allow(missing_docs)] // documentation missing in model
        1621  +
                           /* StructureGenerator.kt:166 */
        1622  +
    pub fn zero_short(&self) -> i16 {
        1623  +
        /* StructureGenerator.kt:168 */
        1624  +
        self.zero_short
        1625  +
        /* StructureGenerator.kt:166 */
        1626  +
    }
        1627  +
    /* StructureGenerator.kt:231 */
        1628  +
    #[allow(missing_docs)] // documentation missing in model
        1629  +
                           /* StructureGenerator.kt:166 */
        1630  +
    pub fn zero_integer(&self) -> i32 {
        1631  +
        /* StructureGenerator.kt:168 */
        1632  +
        self.zero_integer
        1633  +
        /* StructureGenerator.kt:166 */
        1634  +
    }
        1635  +
    /* StructureGenerator.kt:231 */
        1636  +
    #[allow(missing_docs)] // documentation missing in model
        1637  +
                           /* StructureGenerator.kt:166 */
        1638  +
    pub fn zero_long(&self) -> i64 {
        1639  +
        /* StructureGenerator.kt:168 */
        1640  +
        self.zero_long
        1641  +
        /* StructureGenerator.kt:166 */
        1642  +
    }
        1643  +
    /* StructureGenerator.kt:231 */
        1644  +
    #[allow(missing_docs)] // documentation missing in model
        1645  +
                           /* StructureGenerator.kt:166 */
        1646  +
    pub fn zero_float(&self) -> f32 {
        1647  +
        /* StructureGenerator.kt:168 */
        1648  +
        self.zero_float
        1649  +
        /* StructureGenerator.kt:166 */
        1650  +
    }
        1651  +
    /* StructureGenerator.kt:231 */
        1652  +
    #[allow(missing_docs)] // documentation missing in model
        1653  +
                           /* StructureGenerator.kt:166 */
        1654  +
    pub fn zero_double(&self) -> f64 {
        1655  +
        /* StructureGenerator.kt:168 */
        1656  +
        self.zero_double
        1657  +
        /* StructureGenerator.kt:166 */
 1924   1658   
    }
        1659  +
    /* StructureGenerator.kt:135 */
 1925   1660   
}
 1926         -
 1927         -
impl ::std::convert::From<FooEnumSet> for ::std::vec::Vec<crate::model::FooEnum> {
 1928         -
    fn from(value: FooEnumSet) -> Self {
 1929         -
        value.into_inner()
        1661  +
/* ServerCodegenVisitor.kt:356 */
        1662  +
impl Defaults {
        1663  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Defaults`](crate::model::Defaults).
        1664  +
    /* ServerBuilderGenerator.kt:295 */
        1665  +
    pub fn builder() -> crate::model::defaults::Builder {
        1666  +
        /* ServerBuilderGenerator.kt:296 */
        1667  +
        crate::model::defaults::Builder::default()
        1668  +
        /* ServerBuilderGenerator.kt:295 */
 1930   1669   
    }
        1670  +
    /* ServerCodegenVisitor.kt:356 */
 1931   1671   
}
 1932         -
/* ConstrainedCollectionGenerator.kt:181 */
 1933         -
impl crate::constrained::Constrained for FooEnumSet {
 1934         -
    type Unconstrained = crate::unconstrained::foo_enum_set_unconstrained::FooEnumSetUnconstrained;
        1672  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        1673  +
impl crate::constrained::Constrained for crate::model::Defaults {
        1674  +
    type Unconstrained = crate::model::defaults::Builder;
 1935   1675   
}
 1936   1676   
 1937   1677   
/* StructureGenerator.kt:197 */
 1938   1678   
#[allow(missing_docs)] // documentation missing in model
 1939   1679   
/* RustType.kt:534 */
 1940   1680   
#[derive(
 1941   1681   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1942   1682   
)]
 1943         -
pub /* StructureGenerator.kt:201 */ struct ComplexNestedErrorData {
        1683  +
pub /* StructureGenerator.kt:201 */ struct ClientOptionalDefaults {
 1944   1684   
    /* StructureGenerator.kt:231 */
 1945   1685   
    #[allow(missing_docs)] // documentation missing in model
 1946         -
    pub foo: ::std::option::Option<::std::string::String>,
        1686  +
    pub member: i32,
 1947   1687   
    /* StructureGenerator.kt:201 */
 1948   1688   
}
 1949   1689   
/* StructureGenerator.kt:135 */
 1950         -
impl ComplexNestedErrorData {
        1690  +
impl ClientOptionalDefaults {
 1951   1691   
    /* StructureGenerator.kt:231 */
 1952   1692   
    #[allow(missing_docs)] // documentation missing in model
 1953   1693   
                           /* StructureGenerator.kt:166 */
 1954         -
    pub fn foo(&self) -> ::std::option::Option<&str> {
 1955         -
        /* StructureGenerator.kt:169 */
 1956         -
        self.foo.as_deref()
        1694  +
    pub fn member(&self) -> i32 {
        1695  +
        /* StructureGenerator.kt:168 */
        1696  +
        self.member
 1957   1697   
        /* StructureGenerator.kt:166 */
 1958   1698   
    }
 1959   1699   
    /* StructureGenerator.kt:135 */
 1960   1700   
}
 1961   1701   
/* ServerCodegenVisitor.kt:356 */
 1962         -
impl ComplexNestedErrorData {
 1963         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ComplexNestedErrorData`](crate::model::ComplexNestedErrorData).
        1702  +
impl ClientOptionalDefaults {
        1703  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ClientOptionalDefaults`](crate::model::ClientOptionalDefaults).
 1964   1704   
    /* ServerBuilderGenerator.kt:295 */
 1965         -
    pub fn builder() -> crate::model::complex_nested_error_data::Builder {
        1705  +
    pub fn builder() -> crate::model::client_optional_defaults::Builder {
 1966   1706   
        /* ServerBuilderGenerator.kt:296 */
 1967         -
        crate::model::complex_nested_error_data::Builder::default()
        1707  +
        crate::model::client_optional_defaults::Builder::default()
 1968   1708   
        /* ServerBuilderGenerator.kt:295 */
 1969   1709   
    }
 1970   1710   
    /* ServerCodegenVisitor.kt:356 */
 1971   1711   
}
        1712  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        1713  +
impl crate::constrained::Constrained for crate::model::ClientOptionalDefaults {
        1714  +
    type Unconstrained = crate::model::client_optional_defaults::Builder;
        1715  +
}
 1972   1716   
 1973         -
/* UnionGenerator.kt:67 */
        1717  +
/* EnumGenerator.kt:181 */
 1974   1718   
#[allow(missing_docs)] // documentation missing in model
 1975   1719   
/* RustType.kt:534 */
 1976   1720   
#[derive(
 1977         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        1721  +
    ::std::clone::Clone,
        1722  +
    ::std::cmp::Eq,
        1723  +
    ::std::cmp::Ord,
        1724  +
    ::std::cmp::PartialEq,
        1725  +
    ::std::cmp::PartialOrd,
        1726  +
    ::std::fmt::Debug,
        1727  +
    ::std::hash::Hash,
 1978   1728   
)]
 1979         -
pub /* UnionGenerator.kt:85 */ enum UnionPayload {
 1980         -
    /* UnionGenerator.kt:90 */
        1729  +
pub /* EnumGenerator.kt:298 */ enum TestEnum {
        1730  +
    /* EnumGenerator.kt:181 */
 1981   1731   
    #[allow(missing_docs)] // documentation missing in model
 1982         -
    /* UnionGenerator.kt:190 */
 1983         -
    Greeting(::std::string::String),
 1984         -
    /* UnionGenerator.kt:85 */
        1732  +
    /* EnumGenerator.kt:170 */
        1733  +
    Bar,
        1734  +
    /* EnumGenerator.kt:181 */
        1735  +
    #[allow(missing_docs)] // documentation missing in model
        1736  +
    /* EnumGenerator.kt:170 */
        1737  +
    Baz,
        1738  +
    /* EnumGenerator.kt:181 */
        1739  +
    #[allow(missing_docs)] // documentation missing in model
        1740  +
    /* EnumGenerator.kt:170 */
        1741  +
    Foo,
        1742  +
    /* EnumGenerator.kt:298 */
 1985   1743   
}
 1986         -
/* UnionGenerator.kt:111 */
 1987         -
impl UnionPayload {
 1988         -
    /* RustType.kt:534 */
 1989         -
    #[allow(irrefutable_let_patterns)]
 1990         -
    /* UnionGenerator.kt:217 */
 1991         -
    /// Tries to convert the enum instance into [`Greeting`](crate::model::UnionPayload::Greeting), extracting the inner [`String`](::std::string::String).
 1992         -
    /* UnionGenerator.kt:222 */
 1993         -
    /// Returns `Err(&Self)` if it can't be converted.
 1994         -
    /* UnionGenerator.kt:223 */
 1995         -
    pub fn as_greeting(&self) -> ::std::result::Result<&::std::string::String, &Self> {
 1996         -
        /* UnionGenerator.kt:227 */
 1997         -
        if let UnionPayload::Greeting(val) = &self {
 1998         -
            ::std::result::Result::Ok(val)
 1999         -
        } else {
 2000         -
            ::std::result::Result::Err(self)
        1744  +
/// /* CodegenDelegator.kt:52 */See [`TestEnum`](crate::model::TestEnum).
        1745  +
pub mod test_enum {
        1746  +
    #[derive(Debug, PartialEq)]
        1747  +
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
        1748  +
        1749  +
    impl ::std::fmt::Display for ConstraintViolation {
        1750  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        1751  +
            write!(
        1752  +
                f,
        1753  +
                r#"Value provided for 'aws.protocoltests.restjson#TestEnum' failed to satisfy constraint: Member must satisfy enum value set: [FOO, BAR, BAZ]"#
        1754  +
            )
 2001   1755   
        }
 2002         -
        /* UnionGenerator.kt:223 */
 2003   1756   
    }
 2004         -
    /* UnionGenerator.kt:121 */
 2005         -
    /// Returns true if this is a [`Greeting`](crate::model::UnionPayload::Greeting).
 2006         -
    /* UnionGenerator.kt:122 */
 2007         -
    pub fn is_greeting(&self) -> bool {
 2008         -
        /* UnionGenerator.kt:123 */
 2009         -
        self.as_greeting().is_ok()
 2010         -
        /* UnionGenerator.kt:122 */
        1757  +
        1758  +
    impl ::std::error::Error for ConstraintViolation {}
        1759  +
    impl ConstraintViolation {
        1760  +
        pub(crate) fn as_validation_exception_field(
        1761  +
            self,
        1762  +
            path: ::std::string::String,
        1763  +
        ) -> crate::model::ValidationExceptionField {
        1764  +
            crate::model::ValidationExceptionField {
        1765  +
                message: format!(
        1766  +
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [FOO, BAR, BAZ]"#,
        1767  +
                    &path
        1768  +
                ),
        1769  +
                path,
        1770  +
            }
        1771  +
        }
 2011   1772   
    }
 2012         -
    /* UnionGenerator.kt:111 */
        1773  +
        1774  +
    /* ServerEnumGenerator.kt:47 */
        1775  +
}
        1776  +
/* ServerEnumGenerator.kt:88 */
        1777  +
impl ::std::convert::TryFrom<&str> for TestEnum {
        1778  +
    type Error = crate::model::test_enum::ConstraintViolation;
        1779  +
    fn try_from(
        1780  +
        s: &str,
        1781  +
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
        1782  +
        match s {
        1783  +
            "BAR" => Ok(TestEnum::Bar),
        1784  +
            "BAZ" => Ok(TestEnum::Baz),
        1785  +
            "FOO" => Ok(TestEnum::Foo),
        1786  +
            _ => Err(crate::model::test_enum::ConstraintViolation(s.to_owned())),
        1787  +
        }
        1788  +
    }
        1789  +
}
        1790  +
impl ::std::convert::TryFrom<::std::string::String> for TestEnum {
        1791  +
    type Error = crate::model::test_enum::ConstraintViolation;
        1792  +
    fn try_from(
        1793  +
        s: ::std::string::String,
        1794  +
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
        1795  +
    {
        1796  +
        s.as_str().try_into()
        1797  +
    }
        1798  +
}
        1799  +
/* ServerEnumGenerator.kt:148 */
        1800  +
impl std::str::FromStr for TestEnum {
        1801  +
    type Err = crate::model::test_enum::ConstraintViolation;
        1802  +
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
        1803  +
        Self::try_from(s)
        1804  +
    }
        1805  +
}
        1806  +
/* EnumGenerator.kt:309 */
        1807  +
impl TestEnum {
        1808  +
    /// Returns the `&str` value of the enum member.
        1809  +
    pub fn as_str(&self) -> &str {
        1810  +
        match self {
        1811  +
            TestEnum::Bar => "BAR",
        1812  +
            TestEnum::Baz => "BAZ",
        1813  +
            TestEnum::Foo => "FOO",
        1814  +
        }
        1815  +
    }
        1816  +
    /// Returns all the `&str` representations of the enum members.
        1817  +
    pub const fn values() -> &'static [&'static str] {
        1818  +
        &["BAR", "BAZ", "FOO"]
        1819  +
    }
        1820  +
}
        1821  +
/* EnumGenerator.kt:254 */
        1822  +
impl ::std::convert::AsRef<str> for TestEnum {
        1823  +
    fn as_ref(&self) -> &str {
        1824  +
        self.as_str()
        1825  +
    }
        1826  +
}
        1827  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
        1828  +
impl crate::constrained::Constrained for TestEnum {
        1829  +
    type Unconstrained = ::std::string::String;
 2013   1830   
}
 2014   1831   
 2015         -
/* EnumGenerator.kt:181 */
        1832  +
impl ::std::convert::From<::std::string::String>
        1833  +
    for crate::constrained::MaybeConstrained<crate::model::TestEnum>
        1834  +
{
        1835  +
    fn from(value: ::std::string::String) -> Self {
        1836  +
        Self::Unconstrained(value)
        1837  +
    }
        1838  +
}
        1839  +
        1840  +
/* StructureGenerator.kt:197 */
        1841  +
#[allow(missing_docs)] // documentation missing in model
        1842  +
/* RustType.kt:534 */
        1843  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        1844  +
pub /* StructureGenerator.kt:201 */ struct TopLevel {
        1845  +
    /* StructureGenerator.kt:231 */
        1846  +
    #[allow(missing_docs)] // documentation missing in model
        1847  +
    pub dialog: crate::model::Dialog,
        1848  +
    /* StructureGenerator.kt:231 */
        1849  +
    #[allow(missing_docs)] // documentation missing in model
        1850  +
    pub dialog_list: ::std::vec::Vec<crate::model::Dialog>,
        1851  +
    /* StructureGenerator.kt:231 */
        1852  +
    #[allow(missing_docs)] // documentation missing in model
        1853  +
    pub dialog_map: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
        1854  +
    /* StructureGenerator.kt:201 */
        1855  +
}
        1856  +
/* StructureGenerator.kt:135 */
        1857  +
impl TopLevel {
        1858  +
    /* StructureGenerator.kt:231 */
        1859  +
    #[allow(missing_docs)] // documentation missing in model
        1860  +
                           /* StructureGenerator.kt:166 */
        1861  +
    pub fn dialog(&self) -> &crate::model::Dialog {
        1862  +
        /* StructureGenerator.kt:172 */
        1863  +
        &self.dialog
        1864  +
        /* StructureGenerator.kt:166 */
        1865  +
    }
        1866  +
    /* StructureGenerator.kt:231 */
        1867  +
    #[allow(missing_docs)] // documentation missing in model
        1868  +
                           /* StructureGenerator.kt:166 */
        1869  +
    pub fn dialog_list(&self) -> &[crate::model::Dialog] {
        1870  +
        /* StructureGenerator.kt:171 */
        1871  +
        use std::ops::Deref;
        1872  +
        self.dialog_list.deref()
        1873  +
        /* StructureGenerator.kt:166 */
        1874  +
    }
        1875  +
    /* StructureGenerator.kt:231 */
        1876  +
    #[allow(missing_docs)] // documentation missing in model
        1877  +
                           /* StructureGenerator.kt:166 */
        1878  +
    pub fn dialog_map(
        1879  +
        &self,
        1880  +
    ) -> &::std::collections::HashMap<::std::string::String, crate::model::Dialog> {
        1881  +
        /* StructureGenerator.kt:172 */
        1882  +
        &self.dialog_map
        1883  +
        /* StructureGenerator.kt:166 */
        1884  +
    }
        1885  +
    /* StructureGenerator.kt:135 */
        1886  +
}
        1887  +
/* ServerCodegenVisitor.kt:356 */
        1888  +
impl TopLevel {
        1889  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`TopLevel`](crate::model::TopLevel).
        1890  +
    /* ServerBuilderGenerator.kt:295 */
        1891  +
    pub fn builder() -> crate::model::top_level::Builder {
        1892  +
        /* ServerBuilderGenerator.kt:296 */
        1893  +
        crate::model::top_level::Builder::default()
        1894  +
        /* ServerBuilderGenerator.kt:295 */
        1895  +
    }
        1896  +
    /* ServerCodegenVisitor.kt:356 */
        1897  +
}
        1898  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        1899  +
impl crate::constrained::Constrained for crate::model::TopLevel {
        1900  +
    type Unconstrained = crate::model::top_level::Builder;
        1901  +
}
        1902  +
        1903  +
/* StructureGenerator.kt:197 */
 2016   1904   
#[allow(missing_docs)] // documentation missing in model
 2017   1905   
/* RustType.kt:534 */
 2018   1906   
#[derive(
 2019         -
    ::std::clone::Clone,
 2020         -
    ::std::cmp::Eq,
 2021         -
    ::std::cmp::Ord,
 2022         -
    ::std::cmp::PartialEq,
 2023         -
    ::std::cmp::PartialOrd,
 2024         -
    ::std::fmt::Debug,
 2025         -
    ::std::hash::Hash,
        1907  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2026   1908   
)]
 2027         -
pub /* EnumGenerator.kt:298 */ enum StringEnum {
 2028         -
    /* EnumGenerator.kt:181 */
        1909  +
pub /* StructureGenerator.kt:201 */ struct Dialog {
        1910  +
    /* StructureGenerator.kt:231 */
 2029   1911   
    #[allow(missing_docs)] // documentation missing in model
 2030         -
    /* EnumGenerator.kt:170 */
 2031         -
    V,
 2032         -
    /* EnumGenerator.kt:298 */
        1912  +
    pub language: ::std::option::Option<::std::string::String>,
        1913  +
    /* StructureGenerator.kt:231 */
        1914  +
    #[allow(missing_docs)] // documentation missing in model
        1915  +
    pub greeting: ::std::string::String,
        1916  +
    /* StructureGenerator.kt:231 */
        1917  +
    #[allow(missing_docs)] // documentation missing in model
        1918  +
    pub farewell: ::std::option::Option<crate::model::Farewell>,
        1919  +
    /* StructureGenerator.kt:201 */
        1920  +
}
        1921  +
/* StructureGenerator.kt:135 */
        1922  +
impl Dialog {
        1923  +
    /* StructureGenerator.kt:231 */
        1924  +
    #[allow(missing_docs)] // documentation missing in model
        1925  +
                           /* StructureGenerator.kt:166 */
        1926  +
    pub fn language(&self) -> ::std::option::Option<&str> {
        1927  +
        /* StructureGenerator.kt:169 */
        1928  +
        self.language.as_deref()
        1929  +
        /* StructureGenerator.kt:166 */
        1930  +
    }
        1931  +
    /* StructureGenerator.kt:231 */
        1932  +
    #[allow(missing_docs)] // documentation missing in model
        1933  +
                           /* StructureGenerator.kt:166 */
        1934  +
    pub fn greeting(&self) -> &str {
        1935  +
        /* StructureGenerator.kt:171 */
        1936  +
        use std::ops::Deref;
        1937  +
        self.greeting.deref()
        1938  +
        /* StructureGenerator.kt:166 */
        1939  +
    }
        1940  +
    /* StructureGenerator.kt:231 */
        1941  +
    #[allow(missing_docs)] // documentation missing in model
        1942  +
                           /* StructureGenerator.kt:166 */
        1943  +
    pub fn farewell(&self) -> ::std::option::Option<&crate::model::Farewell> {
        1944  +
        /* StructureGenerator.kt:170 */
        1945  +
        self.farewell.as_ref()
        1946  +
        /* StructureGenerator.kt:166 */
        1947  +
    }
        1948  +
    /* StructureGenerator.kt:135 */
        1949  +
}
        1950  +
/* ServerCodegenVisitor.kt:356 */
        1951  +
impl Dialog {
        1952  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Dialog`](crate::model::Dialog).
        1953  +
    /* ServerBuilderGenerator.kt:295 */
        1954  +
    pub fn builder() -> crate::model::dialog::Builder {
        1955  +
        /* ServerBuilderGenerator.kt:296 */
        1956  +
        crate::model::dialog::Builder::default()
        1957  +
        /* ServerBuilderGenerator.kt:295 */
        1958  +
    }
        1959  +
    /* ServerCodegenVisitor.kt:356 */
        1960  +
}
        1961  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        1962  +
impl crate::constrained::Constrained for crate::model::Dialog {
        1963  +
    type Unconstrained = crate::model::dialog::Builder;
 2033   1964   
}
 2034         -
/// /* CodegenDelegator.kt:52 */See [`StringEnum`](crate::model::StringEnum).
 2035         -
pub mod string_enum {
 2036         -
    #[derive(Debug, PartialEq)]
 2037         -
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
 2038   1965   
 2039         -
    impl ::std::fmt::Display for ConstraintViolation {
 2040         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2041         -
            write!(
 2042         -
                f,
 2043         -
                r#"Value provided for 'aws.protocoltests.restjson#StringEnum' failed to satisfy constraint: Member must satisfy enum value set: [enumvalue]"#
 2044         -
            )
        1966  +
/* UnionGenerator.kt:67 */
        1967  +
#[allow(missing_docs)] // documentation missing in model
        1968  +
/* RustType.kt:534 */
        1969  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        1970  +
pub /* UnionGenerator.kt:85 */ enum EventStream {
        1971  +
    /* UnionGenerator.kt:90 */
        1972  +
    #[allow(missing_docs)] // documentation missing in model
        1973  +
    /* UnionGenerator.kt:190 */
        1974  +
    BlobPayload(crate::model::BlobPayloadEvent),
        1975  +
    /* UnionGenerator.kt:90 */
        1976  +
    #[allow(missing_docs)] // documentation missing in model
        1977  +
    /* UnionGenerator.kt:190 */
        1978  +
    Headers(crate::model::HeadersEvent),
        1979  +
    /* UnionGenerator.kt:90 */
        1980  +
    #[allow(missing_docs)] // documentation missing in model
        1981  +
    /* UnionGenerator.kt:190 */
        1982  +
    HeadersAndExplicitPayload(crate::model::HeadersAndExplicitPayloadEvent),
        1983  +
    /* UnionGenerator.kt:90 */
        1984  +
    #[allow(missing_docs)] // documentation missing in model
        1985  +
    /* UnionGenerator.kt:190 */
        1986  +
    HeadersAndImplicitPayload(crate::model::HeadersAndImplicitPayloadEvent),
        1987  +
    /* UnionGenerator.kt:90 */
        1988  +
    #[allow(missing_docs)] // documentation missing in model
        1989  +
    /* UnionGenerator.kt:190 */
        1990  +
    StringPayload(crate::model::StringPayloadEvent),
        1991  +
    /* UnionGenerator.kt:90 */
        1992  +
    #[allow(missing_docs)] // documentation missing in model
        1993  +
    /* UnionGenerator.kt:190 */
        1994  +
    StructurePayload(crate::model::StructurePayloadEvent),
        1995  +
    /* UnionGenerator.kt:90 */
        1996  +
    #[allow(missing_docs)] // documentation missing in model
        1997  +
    /* UnionGenerator.kt:190 */
        1998  +
    UnionPayload(crate::model::UnionPayloadEvent),
        1999  +
    /* UnionGenerator.kt:85 */
        2000  +
}
        2001  +
/* UnionGenerator.kt:111 */
        2002  +
impl EventStream {
        2003  +
    /* UnionGenerator.kt:217 */
        2004  +
    /// Tries to convert the enum instance into [`BlobPayload`](crate::model::EventStream::BlobPayload), extracting the inner [`BlobPayloadEvent`](crate::model::BlobPayloadEvent).
        2005  +
    /* UnionGenerator.kt:222 */
        2006  +
    /// Returns `Err(&Self)` if it can't be converted.
        2007  +
    /* UnionGenerator.kt:223 */
        2008  +
    pub fn as_blob_payload(&self) -> ::std::result::Result<&crate::model::BlobPayloadEvent, &Self> {
        2009  +
        /* UnionGenerator.kt:227 */
        2010  +
        if let EventStream::BlobPayload(val) = &self {
        2011  +
            ::std::result::Result::Ok(val)
        2012  +
        } else {
        2013  +
            ::std::result::Result::Err(self)
        2014  +
        }
        2015  +
        /* UnionGenerator.kt:223 */
        2016  +
    }
        2017  +
    /* UnionGenerator.kt:121 */
        2018  +
    /// Returns true if this is a [`BlobPayload`](crate::model::EventStream::BlobPayload).
        2019  +
    /* UnionGenerator.kt:122 */
        2020  +
    pub fn is_blob_payload(&self) -> bool {
        2021  +
        /* UnionGenerator.kt:123 */
        2022  +
        self.as_blob_payload().is_ok()
        2023  +
        /* UnionGenerator.kt:122 */
        2024  +
    }
        2025  +
    /* UnionGenerator.kt:217 */
        2026  +
    /// Tries to convert the enum instance into [`Headers`](crate::model::EventStream::Headers), extracting the inner [`HeadersEvent`](crate::model::HeadersEvent).
        2027  +
    /* UnionGenerator.kt:222 */
        2028  +
    /// Returns `Err(&Self)` if it can't be converted.
        2029  +
    /* UnionGenerator.kt:223 */
        2030  +
    pub fn as_headers(&self) -> ::std::result::Result<&crate::model::HeadersEvent, &Self> {
        2031  +
        /* UnionGenerator.kt:227 */
        2032  +
        if let EventStream::Headers(val) = &self {
        2033  +
            ::std::result::Result::Ok(val)
        2034  +
        } else {
        2035  +
            ::std::result::Result::Err(self)
        2036  +
        }
        2037  +
        /* UnionGenerator.kt:223 */
        2038  +
    }
        2039  +
    /* UnionGenerator.kt:121 */
        2040  +
    /// Returns true if this is a [`Headers`](crate::model::EventStream::Headers).
        2041  +
    /* UnionGenerator.kt:122 */
        2042  +
    pub fn is_headers(&self) -> bool {
        2043  +
        /* UnionGenerator.kt:123 */
        2044  +
        self.as_headers().is_ok()
        2045  +
        /* UnionGenerator.kt:122 */
        2046  +
    }
        2047  +
    /* UnionGenerator.kt:217 */
        2048  +
    /// Tries to convert the enum instance into [`HeadersAndExplicitPayload`](crate::model::EventStream::HeadersAndExplicitPayload), extracting the inner [`HeadersAndExplicitPayloadEvent`](crate::model::HeadersAndExplicitPayloadEvent).
        2049  +
    /* UnionGenerator.kt:222 */
        2050  +
    /// Returns `Err(&Self)` if it can't be converted.
        2051  +
    /* UnionGenerator.kt:223 */
        2052  +
    pub fn as_headers_and_explicit_payload(
        2053  +
        &self,
        2054  +
    ) -> ::std::result::Result<&crate::model::HeadersAndExplicitPayloadEvent, &Self> {
        2055  +
        /* UnionGenerator.kt:227 */
        2056  +
        if let EventStream::HeadersAndExplicitPayload(val) = &self {
        2057  +
            ::std::result::Result::Ok(val)
        2058  +
        } else {
        2059  +
            ::std::result::Result::Err(self)
        2060  +
        }
        2061  +
        /* UnionGenerator.kt:223 */
        2062  +
    }
        2063  +
    /* UnionGenerator.kt:121 */
        2064  +
    /// Returns true if this is a [`HeadersAndExplicitPayload`](crate::model::EventStream::HeadersAndExplicitPayload).
        2065  +
    /* UnionGenerator.kt:122 */
        2066  +
    pub fn is_headers_and_explicit_payload(&self) -> bool {
        2067  +
        /* UnionGenerator.kt:123 */
        2068  +
        self.as_headers_and_explicit_payload().is_ok()
        2069  +
        /* UnionGenerator.kt:122 */
        2070  +
    }
        2071  +
    /* UnionGenerator.kt:217 */
        2072  +
    /// Tries to convert the enum instance into [`HeadersAndImplicitPayload`](crate::model::EventStream::HeadersAndImplicitPayload), extracting the inner [`HeadersAndImplicitPayloadEvent`](crate::model::HeadersAndImplicitPayloadEvent).
        2073  +
    /* UnionGenerator.kt:222 */
        2074  +
    /// Returns `Err(&Self)` if it can't be converted.
        2075  +
    /* UnionGenerator.kt:223 */
        2076  +
    pub fn as_headers_and_implicit_payload(
        2077  +
        &self,
        2078  +
    ) -> ::std::result::Result<&crate::model::HeadersAndImplicitPayloadEvent, &Self> {
        2079  +
        /* UnionGenerator.kt:227 */
        2080  +
        if let EventStream::HeadersAndImplicitPayload(val) = &self {
        2081  +
            ::std::result::Result::Ok(val)
        2082  +
        } else {
        2083  +
            ::std::result::Result::Err(self)
        2084  +
        }
        2085  +
        /* UnionGenerator.kt:223 */
        2086  +
    }
        2087  +
    /* UnionGenerator.kt:121 */
        2088  +
    /// Returns true if this is a [`HeadersAndImplicitPayload`](crate::model::EventStream::HeadersAndImplicitPayload).
        2089  +
    /* UnionGenerator.kt:122 */
        2090  +
    pub fn is_headers_and_implicit_payload(&self) -> bool {
        2091  +
        /* UnionGenerator.kt:123 */
        2092  +
        self.as_headers_and_implicit_payload().is_ok()
        2093  +
        /* UnionGenerator.kt:122 */
        2094  +
    }
        2095  +
    /* UnionGenerator.kt:217 */
        2096  +
    /// Tries to convert the enum instance into [`StringPayload`](crate::model::EventStream::StringPayload), extracting the inner [`StringPayloadEvent`](crate::model::StringPayloadEvent).
        2097  +
    /* UnionGenerator.kt:222 */
        2098  +
    /// Returns `Err(&Self)` if it can't be converted.
        2099  +
    /* UnionGenerator.kt:223 */
        2100  +
    pub fn as_string_payload(
        2101  +
        &self,
        2102  +
    ) -> ::std::result::Result<&crate::model::StringPayloadEvent, &Self> {
        2103  +
        /* UnionGenerator.kt:227 */
        2104  +
        if let EventStream::StringPayload(val) = &self {
        2105  +
            ::std::result::Result::Ok(val)
        2106  +
        } else {
        2107  +
            ::std::result::Result::Err(self)
        2108  +
        }
        2109  +
        /* UnionGenerator.kt:223 */
        2110  +
    }
        2111  +
    /* UnionGenerator.kt:121 */
        2112  +
    /// Returns true if this is a [`StringPayload`](crate::model::EventStream::StringPayload).
        2113  +
    /* UnionGenerator.kt:122 */
        2114  +
    pub fn is_string_payload(&self) -> bool {
        2115  +
        /* UnionGenerator.kt:123 */
        2116  +
        self.as_string_payload().is_ok()
        2117  +
        /* UnionGenerator.kt:122 */
        2118  +
    }
        2119  +
    /* UnionGenerator.kt:217 */
        2120  +
    /// Tries to convert the enum instance into [`StructurePayload`](crate::model::EventStream::StructurePayload), extracting the inner [`StructurePayloadEvent`](crate::model::StructurePayloadEvent).
        2121  +
    /* UnionGenerator.kt:222 */
        2122  +
    /// Returns `Err(&Self)` if it can't be converted.
        2123  +
    /* UnionGenerator.kt:223 */
        2124  +
    pub fn as_structure_payload(
        2125  +
        &self,
        2126  +
    ) -> ::std::result::Result<&crate::model::StructurePayloadEvent, &Self> {
        2127  +
        /* UnionGenerator.kt:227 */
        2128  +
        if let EventStream::StructurePayload(val) = &self {
        2129  +
            ::std::result::Result::Ok(val)
        2130  +
        } else {
        2131  +
            ::std::result::Result::Err(self)
        2132  +
        }
        2133  +
        /* UnionGenerator.kt:223 */
        2134  +
    }
        2135  +
    /* UnionGenerator.kt:121 */
        2136  +
    /// Returns true if this is a [`StructurePayload`](crate::model::EventStream::StructurePayload).
        2137  +
    /* UnionGenerator.kt:122 */
        2138  +
    pub fn is_structure_payload(&self) -> bool {
        2139  +
        /* UnionGenerator.kt:123 */
        2140  +
        self.as_structure_payload().is_ok()
        2141  +
        /* UnionGenerator.kt:122 */
        2142  +
    }
        2143  +
    /* UnionGenerator.kt:217 */
        2144  +
    /// Tries to convert the enum instance into [`UnionPayload`](crate::model::EventStream::UnionPayload), extracting the inner [`UnionPayloadEvent`](crate::model::UnionPayloadEvent).
        2145  +
    /* UnionGenerator.kt:222 */
        2146  +
    /// Returns `Err(&Self)` if it can't be converted.
        2147  +
    /* UnionGenerator.kt:223 */
        2148  +
    pub fn as_union_payload(
        2149  +
        &self,
        2150  +
    ) -> ::std::result::Result<&crate::model::UnionPayloadEvent, &Self> {
        2151  +
        /* UnionGenerator.kt:227 */
        2152  +
        if let EventStream::UnionPayload(val) = &self {
        2153  +
            ::std::result::Result::Ok(val)
        2154  +
        } else {
        2155  +
            ::std::result::Result::Err(self)
        2156  +
        }
        2157  +
        /* UnionGenerator.kt:223 */
        2158  +
    }
        2159  +
    /* UnionGenerator.kt:121 */
        2160  +
    /// Returns true if this is a [`UnionPayload`](crate::model::EventStream::UnionPayload).
        2161  +
    /* UnionGenerator.kt:122 */
        2162  +
    pub fn is_union_payload(&self) -> bool {
        2163  +
        /* UnionGenerator.kt:123 */
        2164  +
        self.as_union_payload().is_ok()
        2165  +
        /* UnionGenerator.kt:122 */
        2166  +
    }
        2167  +
    /* UnionGenerator.kt:111 */
        2168  +
}
        2169  +
        2170  +
/* UnionGenerator.kt:67 */
        2171  +
#[allow(missing_docs)] // documentation missing in model
        2172  +
/* RustType.kt:534 */
        2173  +
#[derive(
        2174  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2175  +
)]
        2176  +
pub /* UnionGenerator.kt:85 */ enum SingletonEventStream {
        2177  +
    /* UnionGenerator.kt:90 */
        2178  +
    #[allow(missing_docs)] // documentation missing in model
        2179  +
    /* UnionGenerator.kt:190 */
        2180  +
    Singleton(crate::model::SingletonEvent),
        2181  +
    /* UnionGenerator.kt:85 */
        2182  +
}
        2183  +
/* UnionGenerator.kt:111 */
        2184  +
impl SingletonEventStream {
        2185  +
    /* RustType.kt:534 */
        2186  +
    #[allow(irrefutable_let_patterns)]
        2187  +
    /* UnionGenerator.kt:217 */
        2188  +
    /// Tries to convert the enum instance into [`Singleton`](crate::model::SingletonEventStream::Singleton), extracting the inner [`SingletonEvent`](crate::model::SingletonEvent).
        2189  +
    /* UnionGenerator.kt:222 */
        2190  +
    /// Returns `Err(&Self)` if it can't be converted.
        2191  +
    /* UnionGenerator.kt:223 */
        2192  +
    pub fn as_singleton(&self) -> ::std::result::Result<&crate::model::SingletonEvent, &Self> {
        2193  +
        /* UnionGenerator.kt:227 */
        2194  +
        if let SingletonEventStream::Singleton(val) = &self {
        2195  +
            ::std::result::Result::Ok(val)
        2196  +
        } else {
        2197  +
            ::std::result::Result::Err(self)
        2198  +
        }
        2199  +
        /* UnionGenerator.kt:223 */
        2200  +
    }
        2201  +
    /* UnionGenerator.kt:121 */
        2202  +
    /// Returns true if this is a [`Singleton`](crate::model::SingletonEventStream::Singleton).
        2203  +
    /* UnionGenerator.kt:122 */
        2204  +
    pub fn is_singleton(&self) -> bool {
        2205  +
        /* UnionGenerator.kt:123 */
        2206  +
        self.as_singleton().is_ok()
        2207  +
        /* UnionGenerator.kt:122 */
        2208  +
    }
        2209  +
    /* UnionGenerator.kt:111 */
        2210  +
}
        2211  +
        2212  +
/// /* StructureGenerator.kt:197 */Describes one specific validation failure for an input member.
        2213  +
/* RustType.kt:534 */
        2214  +
#[derive(
        2215  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2216  +
)]
        2217  +
pub /* StructureGenerator.kt:201 */ struct ValidationExceptionField {
        2218  +
    /// /* StructureGenerator.kt:231 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
        2219  +
    pub path: ::std::string::String,
        2220  +
    /// /* StructureGenerator.kt:231 */A detailed description of the validation failure.
        2221  +
    pub message: ::std::string::String,
        2222  +
    /* StructureGenerator.kt:201 */
        2223  +
}
        2224  +
/* StructureGenerator.kt:135 */
        2225  +
impl ValidationExceptionField {
        2226  +
    /// /* StructureGenerator.kt:231 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
        2227  +
    /* StructureGenerator.kt:166 */
        2228  +
    pub fn path(&self) -> &str {
        2229  +
        /* StructureGenerator.kt:171 */
        2230  +
        use std::ops::Deref;
        2231  +
        self.path.deref()
        2232  +
        /* StructureGenerator.kt:166 */
        2233  +
    }
        2234  +
    /// /* StructureGenerator.kt:231 */A detailed description of the validation failure.
        2235  +
    /* StructureGenerator.kt:166 */
        2236  +
    pub fn message(&self) -> &str {
        2237  +
        /* StructureGenerator.kt:171 */
        2238  +
        use std::ops::Deref;
        2239  +
        self.message.deref()
        2240  +
        /* StructureGenerator.kt:166 */
        2241  +
    }
        2242  +
    /* StructureGenerator.kt:135 */
        2243  +
}
        2244  +
/* ServerCodegenVisitor.kt:356 */
        2245  +
impl ValidationExceptionField {
        2246  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`ValidationExceptionField`](crate::model::ValidationExceptionField).
        2247  +
    /* ServerBuilderGenerator.kt:295 */
        2248  +
    pub fn builder() -> crate::model::validation_exception_field::Builder {
        2249  +
        /* ServerBuilderGenerator.kt:296 */
        2250  +
        crate::model::validation_exception_field::Builder::default()
        2251  +
        /* ServerBuilderGenerator.kt:295 */
        2252  +
    }
        2253  +
    /* ServerCodegenVisitor.kt:356 */
        2254  +
}
        2255  +
        2256  +
/* StructureGenerator.kt:197 */
        2257  +
#[allow(missing_docs)] // documentation missing in model
        2258  +
/* RustType.kt:534 */
        2259  +
#[derive(
        2260  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2261  +
)]
        2262  +
pub /* StructureGenerator.kt:201 */ struct RecursiveShapesInputOutputNested2 {
        2263  +
    /* StructureGenerator.kt:231 */
        2264  +
    #[allow(missing_docs)] // documentation missing in model
        2265  +
    pub bar: ::std::option::Option<::std::string::String>,
        2266  +
    /* StructureGenerator.kt:231 */
        2267  +
    #[allow(missing_docs)] // documentation missing in model
        2268  +
    pub recursive_member: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
        2269  +
    /* StructureGenerator.kt:201 */
        2270  +
}
        2271  +
/* StructureGenerator.kt:135 */
        2272  +
impl RecursiveShapesInputOutputNested2 {
        2273  +
    /* StructureGenerator.kt:231 */
        2274  +
    #[allow(missing_docs)] // documentation missing in model
        2275  +
                           /* StructureGenerator.kt:166 */
        2276  +
    pub fn bar(&self) -> ::std::option::Option<&str> {
        2277  +
        /* StructureGenerator.kt:169 */
        2278  +
        self.bar.as_deref()
        2279  +
        /* StructureGenerator.kt:166 */
        2280  +
    }
        2281  +
    /* StructureGenerator.kt:231 */
        2282  +
    #[allow(missing_docs)] // documentation missing in model
        2283  +
                           /* StructureGenerator.kt:166 */
        2284  +
    pub fn recursive_member(
        2285  +
        &self,
        2286  +
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested1> {
        2287  +
        /* StructureGenerator.kt:170 */
        2288  +
        self.recursive_member.as_ref()
        2289  +
        /* StructureGenerator.kt:166 */
        2290  +
    }
        2291  +
    /* StructureGenerator.kt:135 */
        2292  +
}
        2293  +
/* ServerCodegenVisitor.kt:356 */
        2294  +
impl RecursiveShapesInputOutputNested2 {
        2295  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
        2296  +
    /* ServerBuilderGenerator.kt:295 */
        2297  +
    pub fn builder() -> crate::model::recursive_shapes_input_output_nested2::Builder {
        2298  +
        /* ServerBuilderGenerator.kt:296 */
        2299  +
        crate::model::recursive_shapes_input_output_nested2::Builder::default()
        2300  +
        /* ServerBuilderGenerator.kt:295 */
        2301  +
    }
        2302  +
    /* ServerCodegenVisitor.kt:356 */
        2303  +
}
        2304  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2305  +
impl crate::constrained::Constrained for crate::model::RecursiveShapesInputOutputNested2 {
        2306  +
    type Unconstrained = crate::model::recursive_shapes_input_output_nested2::Builder;
        2307  +
}
        2308  +
        2309  +
/* StructureGenerator.kt:197 */
        2310  +
#[allow(missing_docs)] // documentation missing in model
        2311  +
/* RustType.kt:534 */
        2312  +
#[derive(
        2313  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2314  +
)]
        2315  +
pub /* StructureGenerator.kt:201 */ struct StructureListMember {
        2316  +
    /* StructureGenerator.kt:231 */
        2317  +
    #[allow(missing_docs)] // documentation missing in model
        2318  +
    pub a: ::std::option::Option<::std::string::String>,
        2319  +
    /* StructureGenerator.kt:231 */
        2320  +
    #[allow(missing_docs)] // documentation missing in model
        2321  +
    pub b: ::std::option::Option<::std::string::String>,
        2322  +
    /* StructureGenerator.kt:201 */
        2323  +
}
        2324  +
/* StructureGenerator.kt:135 */
        2325  +
impl StructureListMember {
        2326  +
    /* StructureGenerator.kt:231 */
        2327  +
    #[allow(missing_docs)] // documentation missing in model
        2328  +
                           /* StructureGenerator.kt:166 */
        2329  +
    pub fn a(&self) -> ::std::option::Option<&str> {
        2330  +
        /* StructureGenerator.kt:169 */
        2331  +
        self.a.as_deref()
        2332  +
        /* StructureGenerator.kt:166 */
        2333  +
    }
        2334  +
    /* StructureGenerator.kt:231 */
        2335  +
    #[allow(missing_docs)] // documentation missing in model
        2336  +
                           /* StructureGenerator.kt:166 */
        2337  +
    pub fn b(&self) -> ::std::option::Option<&str> {
        2338  +
        /* StructureGenerator.kt:169 */
        2339  +
        self.b.as_deref()
        2340  +
        /* StructureGenerator.kt:166 */
        2341  +
    }
        2342  +
    /* StructureGenerator.kt:135 */
        2343  +
}
        2344  +
/* ServerCodegenVisitor.kt:356 */
        2345  +
impl StructureListMember {
        2346  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`StructureListMember`](crate::model::StructureListMember).
        2347  +
    /* ServerBuilderGenerator.kt:295 */
        2348  +
    pub fn builder() -> crate::model::structure_list_member::Builder {
        2349  +
        /* ServerBuilderGenerator.kt:296 */
        2350  +
        crate::model::structure_list_member::Builder::default()
        2351  +
        /* ServerBuilderGenerator.kt:295 */
        2352  +
    }
        2353  +
    /* ServerCodegenVisitor.kt:356 */
        2354  +
}
        2355  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2356  +
impl crate::constrained::Constrained for crate::model::StructureListMember {
        2357  +
    type Unconstrained = crate::model::structure_list_member::Builder;
        2358  +
}
        2359  +
        2360  +
/* StructureGenerator.kt:197 */
        2361  +
#[allow(missing_docs)] // documentation missing in model
        2362  +
/* RustType.kt:534 */
        2363  +
#[derive(
        2364  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2365  +
)]
        2366  +
pub /* StructureGenerator.kt:201 */ struct GreetingStruct {
        2367  +
    /* StructureGenerator.kt:231 */
        2368  +
    #[allow(missing_docs)] // documentation missing in model
        2369  +
    pub hi: ::std::option::Option<::std::string::String>,
        2370  +
    /* StructureGenerator.kt:201 */
        2371  +
}
        2372  +
/* StructureGenerator.kt:135 */
        2373  +
impl GreetingStruct {
        2374  +
    /* StructureGenerator.kt:231 */
        2375  +
    #[allow(missing_docs)] // documentation missing in model
        2376  +
                           /* StructureGenerator.kt:166 */
        2377  +
    pub fn hi(&self) -> ::std::option::Option<&str> {
        2378  +
        /* StructureGenerator.kt:169 */
        2379  +
        self.hi.as_deref()
        2380  +
        /* StructureGenerator.kt:166 */
        2381  +
    }
        2382  +
    /* StructureGenerator.kt:135 */
        2383  +
}
        2384  +
/* ServerCodegenVisitor.kt:356 */
        2385  +
impl GreetingStruct {
        2386  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`GreetingStruct`](crate::model::GreetingStruct).
        2387  +
    /* ServerBuilderGenerator.kt:295 */
        2388  +
    pub fn builder() -> crate::model::greeting_struct::Builder {
        2389  +
        /* ServerBuilderGenerator.kt:296 */
        2390  +
        crate::model::greeting_struct::Builder::default()
        2391  +
        /* ServerBuilderGenerator.kt:295 */
        2392  +
    }
        2393  +
    /* ServerCodegenVisitor.kt:356 */
        2394  +
}
        2395  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2396  +
impl crate::constrained::Constrained for crate::model::GreetingStruct {
        2397  +
    type Unconstrained = crate::model::greeting_struct::Builder;
        2398  +
}
        2399  +
        2400  +
/* StructureGenerator.kt:197 */
        2401  +
#[allow(missing_docs)] // documentation missing in model
        2402  +
/* RustType.kt:534 */
        2403  +
#[derive(
        2404  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2405  +
)]
        2406  +
pub /* StructureGenerator.kt:201 */ struct RenamedGreeting {
        2407  +
    /* StructureGenerator.kt:231 */
        2408  +
    #[allow(missing_docs)] // documentation missing in model
        2409  +
    pub salutation: ::std::option::Option<::std::string::String>,
        2410  +
    /* StructureGenerator.kt:201 */
        2411  +
}
        2412  +
/* StructureGenerator.kt:135 */
        2413  +
impl RenamedGreeting {
        2414  +
    /* StructureGenerator.kt:231 */
        2415  +
    #[allow(missing_docs)] // documentation missing in model
        2416  +
                           /* StructureGenerator.kt:166 */
        2417  +
    pub fn salutation(&self) -> ::std::option::Option<&str> {
        2418  +
        /* StructureGenerator.kt:169 */
        2419  +
        self.salutation.as_deref()
        2420  +
        /* StructureGenerator.kt:166 */
        2421  +
    }
        2422  +
    /* StructureGenerator.kt:135 */
        2423  +
}
        2424  +
/* ServerCodegenVisitor.kt:356 */
        2425  +
impl RenamedGreeting {
        2426  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`RenamedGreeting`](crate::model::RenamedGreeting).
        2427  +
    /* ServerBuilderGenerator.kt:295 */
        2428  +
    pub fn builder() -> crate::model::renamed_greeting::Builder {
        2429  +
        /* ServerBuilderGenerator.kt:296 */
        2430  +
        crate::model::renamed_greeting::Builder::default()
        2431  +
        /* ServerBuilderGenerator.kt:295 */
        2432  +
    }
        2433  +
    /* ServerCodegenVisitor.kt:356 */
        2434  +
}
        2435  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2436  +
impl crate::constrained::Constrained for crate::model::RenamedGreeting {
        2437  +
    type Unconstrained = crate::model::renamed_greeting::Builder;
        2438  +
}
        2439  +
        2440  +
/* StructureGenerator.kt:197 */
        2441  +
#[allow(missing_docs)] // documentation missing in model
        2442  +
/* RustType.kt:534 */
        2443  +
#[derive(
        2444  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2445  +
)]
        2446  +
pub /* StructureGenerator.kt:201 */ struct Unit {/* StructureGenerator.kt:201 */}
        2447  +
/* ServerCodegenVisitor.kt:356 */
        2448  +
impl Unit {
        2449  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Unit`](crate::model::Unit).
        2450  +
    /* ServerBuilderGenerator.kt:295 */
        2451  +
    pub fn builder() -> crate::model::unit::Builder {
        2452  +
        /* ServerBuilderGenerator.kt:296 */
        2453  +
        crate::model::unit::Builder::default()
        2454  +
        /* ServerBuilderGenerator.kt:295 */
        2455  +
    }
        2456  +
    /* ServerCodegenVisitor.kt:356 */
        2457  +
}
        2458  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2459  +
impl crate::constrained::Constrained for crate::model::Unit {
        2460  +
    type Unconstrained = crate::model::unit::Builder;
        2461  +
}
        2462  +
        2463  +
/* StructureGenerator.kt:197 */
        2464  +
#[allow(missing_docs)] // documentation missing in model
        2465  +
/* RustType.kt:534 */
        2466  +
#[derive(
        2467  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2468  +
)]
        2469  +
pub /* StructureGenerator.kt:201 */ struct Farewell {
        2470  +
    /* StructureGenerator.kt:231 */
        2471  +
    #[allow(missing_docs)] // documentation missing in model
        2472  +
    pub phrase: ::std::string::String,
        2473  +
    /* StructureGenerator.kt:201 */
        2474  +
}
        2475  +
/* StructureGenerator.kt:135 */
        2476  +
impl Farewell {
        2477  +
    /* StructureGenerator.kt:231 */
        2478  +
    #[allow(missing_docs)] // documentation missing in model
        2479  +
                           /* StructureGenerator.kt:166 */
        2480  +
    pub fn phrase(&self) -> &str {
        2481  +
        /* StructureGenerator.kt:171 */
        2482  +
        use std::ops::Deref;
        2483  +
        self.phrase.deref()
        2484  +
        /* StructureGenerator.kt:166 */
        2485  +
    }
        2486  +
    /* StructureGenerator.kt:135 */
        2487  +
}
        2488  +
/* ServerCodegenVisitor.kt:356 */
        2489  +
impl Farewell {
        2490  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`Farewell`](crate::model::Farewell).
        2491  +
    /* ServerBuilderGenerator.kt:295 */
        2492  +
    pub fn builder() -> crate::model::farewell::Builder {
        2493  +
        /* ServerBuilderGenerator.kt:296 */
        2494  +
        crate::model::farewell::Builder::default()
        2495  +
        /* ServerBuilderGenerator.kt:295 */
        2496  +
    }
        2497  +
    /* ServerCodegenVisitor.kt:356 */
        2498  +
}
        2499  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2500  +
impl crate::constrained::Constrained for crate::model::Farewell {
        2501  +
    type Unconstrained = crate::model::farewell::Builder;
        2502  +
}
        2503  +
        2504  +
/* StructureGenerator.kt:197 */
        2505  +
#[allow(missing_docs)] // documentation missing in model
        2506  +
/* RustType.kt:534 */
        2507  +
#[derive(
        2508  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2509  +
)]
        2510  +
pub /* StructureGenerator.kt:201 */ struct HeadersEvent {
        2511  +
    /* StructureGenerator.kt:231 */
        2512  +
    #[allow(missing_docs)] // documentation missing in model
        2513  +
    pub boolean_header: ::std::option::Option<bool>,
        2514  +
    /* StructureGenerator.kt:231 */
        2515  +
    #[allow(missing_docs)] // documentation missing in model
        2516  +
    pub byte_header: ::std::option::Option<i8>,
        2517  +
    /* StructureGenerator.kt:231 */
        2518  +
    #[allow(missing_docs)] // documentation missing in model
        2519  +
    pub short_header: ::std::option::Option<i16>,
        2520  +
    /* StructureGenerator.kt:231 */
        2521  +
    #[allow(missing_docs)] // documentation missing in model
        2522  +
    pub int_header: ::std::option::Option<i32>,
        2523  +
    /* StructureGenerator.kt:231 */
        2524  +
    #[allow(missing_docs)] // documentation missing in model
        2525  +
    pub long_header: ::std::option::Option<i64>,
        2526  +
    /* StructureGenerator.kt:231 */
        2527  +
    #[allow(missing_docs)] // documentation missing in model
        2528  +
    pub blob_header: ::std::option::Option<::aws_smithy_types::Blob>,
        2529  +
    /* StructureGenerator.kt:231 */
        2530  +
    #[allow(missing_docs)] // documentation missing in model
        2531  +
    pub string_header: ::std::option::Option<::std::string::String>,
        2532  +
    /* StructureGenerator.kt:231 */
        2533  +
    #[allow(missing_docs)] // documentation missing in model
        2534  +
    pub timestamp_header: ::std::option::Option<::aws_smithy_types::DateTime>,
        2535  +
    /* StructureGenerator.kt:201 */
        2536  +
}
        2537  +
/* StructureGenerator.kt:135 */
        2538  +
impl HeadersEvent {
        2539  +
    /* StructureGenerator.kt:231 */
        2540  +
    #[allow(missing_docs)] // documentation missing in model
        2541  +
                           /* StructureGenerator.kt:166 */
        2542  +
    pub fn boolean_header(&self) -> ::std::option::Option<bool> {
        2543  +
        /* StructureGenerator.kt:168 */
        2544  +
        self.boolean_header
        2545  +
        /* StructureGenerator.kt:166 */
        2546  +
    }
        2547  +
    /* StructureGenerator.kt:231 */
        2548  +
    #[allow(missing_docs)] // documentation missing in model
        2549  +
                           /* StructureGenerator.kt:166 */
        2550  +
    pub fn byte_header(&self) -> ::std::option::Option<i8> {
        2551  +
        /* StructureGenerator.kt:168 */
        2552  +
        self.byte_header
        2553  +
        /* StructureGenerator.kt:166 */
        2554  +
    }
        2555  +
    /* StructureGenerator.kt:231 */
        2556  +
    #[allow(missing_docs)] // documentation missing in model
        2557  +
                           /* StructureGenerator.kt:166 */
        2558  +
    pub fn short_header(&self) -> ::std::option::Option<i16> {
        2559  +
        /* StructureGenerator.kt:168 */
        2560  +
        self.short_header
        2561  +
        /* StructureGenerator.kt:166 */
        2562  +
    }
        2563  +
    /* StructureGenerator.kt:231 */
        2564  +
    #[allow(missing_docs)] // documentation missing in model
        2565  +
                           /* StructureGenerator.kt:166 */
        2566  +
    pub fn int_header(&self) -> ::std::option::Option<i32> {
        2567  +
        /* StructureGenerator.kt:168 */
        2568  +
        self.int_header
        2569  +
        /* StructureGenerator.kt:166 */
        2570  +
    }
        2571  +
    /* StructureGenerator.kt:231 */
        2572  +
    #[allow(missing_docs)] // documentation missing in model
        2573  +
                           /* StructureGenerator.kt:166 */
        2574  +
    pub fn long_header(&self) -> ::std::option::Option<i64> {
        2575  +
        /* StructureGenerator.kt:168 */
        2576  +
        self.long_header
        2577  +
        /* StructureGenerator.kt:166 */
        2578  +
    }
        2579  +
    /* StructureGenerator.kt:231 */
        2580  +
    #[allow(missing_docs)] // documentation missing in model
        2581  +
                           /* StructureGenerator.kt:166 */
        2582  +
    pub fn blob_header(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
        2583  +
        /* StructureGenerator.kt:170 */
        2584  +
        self.blob_header.as_ref()
        2585  +
        /* StructureGenerator.kt:166 */
        2586  +
    }
        2587  +
    /* StructureGenerator.kt:231 */
        2588  +
    #[allow(missing_docs)] // documentation missing in model
        2589  +
                           /* StructureGenerator.kt:166 */
        2590  +
    pub fn string_header(&self) -> ::std::option::Option<&str> {
        2591  +
        /* StructureGenerator.kt:169 */
        2592  +
        self.string_header.as_deref()
        2593  +
        /* StructureGenerator.kt:166 */
        2594  +
    }
        2595  +
    /* StructureGenerator.kt:231 */
        2596  +
    #[allow(missing_docs)] // documentation missing in model
        2597  +
                           /* StructureGenerator.kt:166 */
        2598  +
    pub fn timestamp_header(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        2599  +
        /* StructureGenerator.kt:170 */
        2600  +
        self.timestamp_header.as_ref()
        2601  +
        /* StructureGenerator.kt:166 */
        2602  +
    }
        2603  +
    /* StructureGenerator.kt:135 */
        2604  +
}
        2605  +
/* ServerCodegenVisitor.kt:356 */
        2606  +
impl HeadersEvent {
        2607  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`HeadersEvent`](crate::model::HeadersEvent).
        2608  +
    /* ServerBuilderGenerator.kt:295 */
        2609  +
    pub fn builder() -> crate::model::headers_event::Builder {
        2610  +
        /* ServerBuilderGenerator.kt:296 */
        2611  +
        crate::model::headers_event::Builder::default()
        2612  +
        /* ServerBuilderGenerator.kt:295 */
        2613  +
    }
        2614  +
    /* ServerCodegenVisitor.kt:356 */
        2615  +
}
        2616  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2617  +
impl crate::constrained::Constrained for crate::model::HeadersEvent {
        2618  +
    type Unconstrained = crate::model::headers_event::Builder;
        2619  +
}
        2620  +
        2621  +
/* StructureGenerator.kt:197 */
        2622  +
#[allow(missing_docs)] // documentation missing in model
        2623  +
/* RustType.kt:534 */
        2624  +
#[derive(
        2625  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2626  +
)]
        2627  +
pub /* StructureGenerator.kt:201 */ struct BlobPayloadEvent {
        2628  +
    /* StructureGenerator.kt:231 */
        2629  +
    #[allow(missing_docs)] // documentation missing in model
        2630  +
    pub payload: ::std::option::Option<::aws_smithy_types::Blob>,
        2631  +
    /* StructureGenerator.kt:201 */
        2632  +
}
        2633  +
/* StructureGenerator.kt:135 */
        2634  +
impl BlobPayloadEvent {
        2635  +
    /* StructureGenerator.kt:231 */
        2636  +
    #[allow(missing_docs)] // documentation missing in model
        2637  +
                           /* StructureGenerator.kt:166 */
        2638  +
    pub fn payload(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
        2639  +
        /* StructureGenerator.kt:170 */
        2640  +
        self.payload.as_ref()
        2641  +
        /* StructureGenerator.kt:166 */
        2642  +
    }
        2643  +
    /* StructureGenerator.kt:135 */
        2644  +
}
        2645  +
/* ServerCodegenVisitor.kt:356 */
        2646  +
impl BlobPayloadEvent {
        2647  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`BlobPayloadEvent`](crate::model::BlobPayloadEvent).
        2648  +
    /* ServerBuilderGenerator.kt:295 */
        2649  +
    pub fn builder() -> crate::model::blob_payload_event::Builder {
        2650  +
        /* ServerBuilderGenerator.kt:296 */
        2651  +
        crate::model::blob_payload_event::Builder::default()
        2652  +
        /* ServerBuilderGenerator.kt:295 */
        2653  +
    }
        2654  +
    /* ServerCodegenVisitor.kt:356 */
        2655  +
}
        2656  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2657  +
impl crate::constrained::Constrained for crate::model::BlobPayloadEvent {
        2658  +
    type Unconstrained = crate::model::blob_payload_event::Builder;
        2659  +
}
        2660  +
        2661  +
/* StructureGenerator.kt:197 */
        2662  +
#[allow(missing_docs)] // documentation missing in model
        2663  +
/* RustType.kt:534 */
        2664  +
#[derive(
        2665  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2666  +
)]
        2667  +
pub /* StructureGenerator.kt:201 */ struct StringPayloadEvent {
        2668  +
    /* StructureGenerator.kt:231 */
        2669  +
    #[allow(missing_docs)] // documentation missing in model
        2670  +
    pub payload: ::std::option::Option<::std::string::String>,
        2671  +
    /* StructureGenerator.kt:201 */
        2672  +
}
        2673  +
/* StructureGenerator.kt:135 */
        2674  +
impl StringPayloadEvent {
        2675  +
    /* StructureGenerator.kt:231 */
        2676  +
    #[allow(missing_docs)] // documentation missing in model
        2677  +
                           /* StructureGenerator.kt:166 */
        2678  +
    pub fn payload(&self) -> ::std::option::Option<&str> {
        2679  +
        /* StructureGenerator.kt:169 */
        2680  +
        self.payload.as_deref()
        2681  +
        /* StructureGenerator.kt:166 */
        2682  +
    }
        2683  +
    /* StructureGenerator.kt:135 */
        2684  +
}
        2685  +
/* ServerCodegenVisitor.kt:356 */
        2686  +
impl StringPayloadEvent {
        2687  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`StringPayloadEvent`](crate::model::StringPayloadEvent).
        2688  +
    /* ServerBuilderGenerator.kt:295 */
        2689  +
    pub fn builder() -> crate::model::string_payload_event::Builder {
        2690  +
        /* ServerBuilderGenerator.kt:296 */
        2691  +
        crate::model::string_payload_event::Builder::default()
        2692  +
        /* ServerBuilderGenerator.kt:295 */
        2693  +
    }
        2694  +
    /* ServerCodegenVisitor.kt:356 */
        2695  +
}
        2696  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2697  +
impl crate::constrained::Constrained for crate::model::StringPayloadEvent {
        2698  +
    type Unconstrained = crate::model::string_payload_event::Builder;
        2699  +
}
        2700  +
        2701  +
/* StructureGenerator.kt:197 */
        2702  +
#[allow(missing_docs)] // documentation missing in model
        2703  +
/* RustType.kt:534 */
        2704  +
#[derive(
        2705  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2706  +
)]
        2707  +
pub /* StructureGenerator.kt:201 */ struct StructurePayloadEvent {
        2708  +
    /* StructureGenerator.kt:231 */
        2709  +
    #[allow(missing_docs)] // documentation missing in model
        2710  +
    pub payload: ::std::option::Option<crate::model::PayloadStructure>,
        2711  +
    /* StructureGenerator.kt:201 */
        2712  +
}
        2713  +
/* StructureGenerator.kt:135 */
        2714  +
impl StructurePayloadEvent {
        2715  +
    /* StructureGenerator.kt:231 */
        2716  +
    #[allow(missing_docs)] // documentation missing in model
        2717  +
                           /* StructureGenerator.kt:166 */
        2718  +
    pub fn payload(&self) -> ::std::option::Option<&crate::model::PayloadStructure> {
        2719  +
        /* StructureGenerator.kt:170 */
        2720  +
        self.payload.as_ref()
        2721  +
        /* StructureGenerator.kt:166 */
        2722  +
    }
        2723  +
    /* StructureGenerator.kt:135 */
        2724  +
}
        2725  +
/* ServerCodegenVisitor.kt:356 */
        2726  +
impl StructurePayloadEvent {
        2727  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`StructurePayloadEvent`](crate::model::StructurePayloadEvent).
        2728  +
    /* ServerBuilderGenerator.kt:295 */
        2729  +
    pub fn builder() -> crate::model::structure_payload_event::Builder {
        2730  +
        /* ServerBuilderGenerator.kt:296 */
        2731  +
        crate::model::structure_payload_event::Builder::default()
        2732  +
        /* ServerBuilderGenerator.kt:295 */
        2733  +
    }
        2734  +
    /* ServerCodegenVisitor.kt:356 */
        2735  +
}
        2736  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2737  +
impl crate::constrained::Constrained for crate::model::StructurePayloadEvent {
        2738  +
    type Unconstrained = crate::model::structure_payload_event::Builder;
        2739  +
}
        2740  +
        2741  +
/* StructureGenerator.kt:197 */
        2742  +
#[allow(missing_docs)] // documentation missing in model
        2743  +
/* RustType.kt:534 */
        2744  +
#[derive(
        2745  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2746  +
)]
        2747  +
pub /* StructureGenerator.kt:201 */ struct UnionPayloadEvent {
        2748  +
    /* StructureGenerator.kt:231 */
        2749  +
    #[allow(missing_docs)] // documentation missing in model
        2750  +
    pub payload: ::std::option::Option<crate::model::PayloadUnion>,
        2751  +
    /* StructureGenerator.kt:201 */
        2752  +
}
        2753  +
/* StructureGenerator.kt:135 */
        2754  +
impl UnionPayloadEvent {
        2755  +
    /* StructureGenerator.kt:231 */
        2756  +
    #[allow(missing_docs)] // documentation missing in model
        2757  +
                           /* StructureGenerator.kt:166 */
        2758  +
    pub fn payload(&self) -> ::std::option::Option<&crate::model::PayloadUnion> {
        2759  +
        /* StructureGenerator.kt:170 */
        2760  +
        self.payload.as_ref()
        2761  +
        /* StructureGenerator.kt:166 */
        2762  +
    }
        2763  +
    /* StructureGenerator.kt:135 */
        2764  +
}
        2765  +
/* ServerCodegenVisitor.kt:356 */
        2766  +
impl UnionPayloadEvent {
        2767  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`UnionPayloadEvent`](crate::model::UnionPayloadEvent).
        2768  +
    /* ServerBuilderGenerator.kt:295 */
        2769  +
    pub fn builder() -> crate::model::union_payload_event::Builder {
        2770  +
        /* ServerBuilderGenerator.kt:296 */
        2771  +
        crate::model::union_payload_event::Builder::default()
        2772  +
        /* ServerBuilderGenerator.kt:295 */
        2773  +
    }
        2774  +
    /* ServerCodegenVisitor.kt:356 */
        2775  +
}
        2776  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2777  +
impl crate::constrained::Constrained for crate::model::UnionPayloadEvent {
        2778  +
    type Unconstrained = crate::model::union_payload_event::Builder;
        2779  +
}
        2780  +
        2781  +
/* StructureGenerator.kt:197 */
        2782  +
#[allow(missing_docs)] // documentation missing in model
        2783  +
/* RustType.kt:534 */
        2784  +
#[derive(
        2785  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2786  +
)]
        2787  +
pub /* StructureGenerator.kt:201 */ struct HeadersAndExplicitPayloadEvent {
        2788  +
    /* StructureGenerator.kt:231 */
        2789  +
    #[allow(missing_docs)] // documentation missing in model
        2790  +
    pub header: ::std::option::Option<::std::string::String>,
        2791  +
    /* StructureGenerator.kt:231 */
        2792  +
    #[allow(missing_docs)] // documentation missing in model
        2793  +
    pub payload: ::std::option::Option<crate::model::PayloadStructure>,
        2794  +
    /* StructureGenerator.kt:201 */
        2795  +
}
        2796  +
/* StructureGenerator.kt:135 */
        2797  +
impl HeadersAndExplicitPayloadEvent {
        2798  +
    /* StructureGenerator.kt:231 */
        2799  +
    #[allow(missing_docs)] // documentation missing in model
        2800  +
                           /* StructureGenerator.kt:166 */
        2801  +
    pub fn header(&self) -> ::std::option::Option<&str> {
        2802  +
        /* StructureGenerator.kt:169 */
        2803  +
        self.header.as_deref()
        2804  +
        /* StructureGenerator.kt:166 */
        2805  +
    }
        2806  +
    /* StructureGenerator.kt:231 */
        2807  +
    #[allow(missing_docs)] // documentation missing in model
        2808  +
                           /* StructureGenerator.kt:166 */
        2809  +
    pub fn payload(&self) -> ::std::option::Option<&crate::model::PayloadStructure> {
        2810  +
        /* StructureGenerator.kt:170 */
        2811  +
        self.payload.as_ref()
        2812  +
        /* StructureGenerator.kt:166 */
        2813  +
    }
        2814  +
    /* StructureGenerator.kt:135 */
        2815  +
}
        2816  +
/* ServerCodegenVisitor.kt:356 */
        2817  +
impl HeadersAndExplicitPayloadEvent {
        2818  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`HeadersAndExplicitPayloadEvent`](crate::model::HeadersAndExplicitPayloadEvent).
        2819  +
    /* ServerBuilderGenerator.kt:295 */
        2820  +
    pub fn builder() -> crate::model::headers_and_explicit_payload_event::Builder {
        2821  +
        /* ServerBuilderGenerator.kt:296 */
        2822  +
        crate::model::headers_and_explicit_payload_event::Builder::default()
        2823  +
        /* ServerBuilderGenerator.kt:295 */
        2824  +
    }
        2825  +
    /* ServerCodegenVisitor.kt:356 */
        2826  +
}
        2827  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2828  +
impl crate::constrained::Constrained for crate::model::HeadersAndExplicitPayloadEvent {
        2829  +
    type Unconstrained = crate::model::headers_and_explicit_payload_event::Builder;
        2830  +
}
        2831  +
        2832  +
/* StructureGenerator.kt:197 */
        2833  +
#[allow(missing_docs)] // documentation missing in model
        2834  +
/* RustType.kt:534 */
        2835  +
#[derive(
        2836  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2837  +
)]
        2838  +
pub /* StructureGenerator.kt:201 */ struct HeadersAndImplicitPayloadEvent {
        2839  +
    /* StructureGenerator.kt:231 */
        2840  +
    #[allow(missing_docs)] // documentation missing in model
        2841  +
    pub header: ::std::option::Option<::std::string::String>,
        2842  +
    /* StructureGenerator.kt:231 */
        2843  +
    #[allow(missing_docs)] // documentation missing in model
        2844  +
    pub payload: ::std::option::Option<::std::string::String>,
        2845  +
    /* StructureGenerator.kt:201 */
        2846  +
}
        2847  +
/* StructureGenerator.kt:135 */
        2848  +
impl HeadersAndImplicitPayloadEvent {
        2849  +
    /* StructureGenerator.kt:231 */
        2850  +
    #[allow(missing_docs)] // documentation missing in model
        2851  +
                           /* StructureGenerator.kt:166 */
        2852  +
    pub fn header(&self) -> ::std::option::Option<&str> {
        2853  +
        /* StructureGenerator.kt:169 */
        2854  +
        self.header.as_deref()
        2855  +
        /* StructureGenerator.kt:166 */
        2856  +
    }
        2857  +
    /* StructureGenerator.kt:231 */
        2858  +
    #[allow(missing_docs)] // documentation missing in model
        2859  +
                           /* StructureGenerator.kt:166 */
        2860  +
    pub fn payload(&self) -> ::std::option::Option<&str> {
        2861  +
        /* StructureGenerator.kt:169 */
        2862  +
        self.payload.as_deref()
        2863  +
        /* StructureGenerator.kt:166 */
        2864  +
    }
        2865  +
    /* StructureGenerator.kt:135 */
        2866  +
}
        2867  +
/* ServerCodegenVisitor.kt:356 */
        2868  +
impl HeadersAndImplicitPayloadEvent {
        2869  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`HeadersAndImplicitPayloadEvent`](crate::model::HeadersAndImplicitPayloadEvent).
        2870  +
    /* ServerBuilderGenerator.kt:295 */
        2871  +
    pub fn builder() -> crate::model::headers_and_implicit_payload_event::Builder {
        2872  +
        /* ServerBuilderGenerator.kt:296 */
        2873  +
        crate::model::headers_and_implicit_payload_event::Builder::default()
        2874  +
        /* ServerBuilderGenerator.kt:295 */
        2875  +
    }
        2876  +
    /* ServerCodegenVisitor.kt:356 */
        2877  +
}
        2878  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2879  +
impl crate::constrained::Constrained for crate::model::HeadersAndImplicitPayloadEvent {
        2880  +
    type Unconstrained = crate::model::headers_and_implicit_payload_event::Builder;
        2881  +
}
        2882  +
        2883  +
/* StructureGenerator.kt:197 */
        2884  +
#[allow(missing_docs)] // documentation missing in model
        2885  +
/* RustType.kt:534 */
        2886  +
#[derive(
        2887  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2888  +
)]
        2889  +
pub /* StructureGenerator.kt:201 */ struct SingletonEvent {
        2890  +
    /* StructureGenerator.kt:231 */
        2891  +
    #[allow(missing_docs)] // documentation missing in model
        2892  +
    pub value: ::std::option::Option<::std::string::String>,
        2893  +
    /* StructureGenerator.kt:201 */
        2894  +
}
        2895  +
/* StructureGenerator.kt:135 */
        2896  +
impl SingletonEvent {
        2897  +
    /* StructureGenerator.kt:231 */
        2898  +
    #[allow(missing_docs)] // documentation missing in model
        2899  +
                           /* StructureGenerator.kt:166 */
        2900  +
    pub fn value(&self) -> ::std::option::Option<&str> {
        2901  +
        /* StructureGenerator.kt:169 */
        2902  +
        self.value.as_deref()
        2903  +
        /* StructureGenerator.kt:166 */
        2904  +
    }
        2905  +
    /* StructureGenerator.kt:135 */
        2906  +
}
        2907  +
/* ServerCodegenVisitor.kt:356 */
        2908  +
impl SingletonEvent {
        2909  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`SingletonEvent`](crate::model::SingletonEvent).
        2910  +
    /* ServerBuilderGenerator.kt:295 */
        2911  +
    pub fn builder() -> crate::model::singleton_event::Builder {
        2912  +
        /* ServerBuilderGenerator.kt:296 */
        2913  +
        crate::model::singleton_event::Builder::default()
        2914  +
        /* ServerBuilderGenerator.kt:295 */
        2915  +
    }
        2916  +
    /* ServerCodegenVisitor.kt:356 */
        2917  +
}
        2918  +
        2919  +
/* StructureGenerator.kt:197 */
        2920  +
#[allow(missing_docs)] // documentation missing in model
        2921  +
/* RustType.kt:534 */
        2922  +
#[derive(
        2923  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2924  +
)]
        2925  +
pub /* StructureGenerator.kt:201 */ struct PayloadStructure {
        2926  +
    /* StructureGenerator.kt:231 */
        2927  +
    #[allow(missing_docs)] // documentation missing in model
        2928  +
    pub structure_member: ::std::option::Option<::std::string::String>,
        2929  +
    /* StructureGenerator.kt:201 */
        2930  +
}
        2931  +
/* StructureGenerator.kt:135 */
        2932  +
impl PayloadStructure {
        2933  +
    /* StructureGenerator.kt:231 */
        2934  +
    #[allow(missing_docs)] // documentation missing in model
        2935  +
                           /* StructureGenerator.kt:166 */
        2936  +
    pub fn structure_member(&self) -> ::std::option::Option<&str> {
        2937  +
        /* StructureGenerator.kt:169 */
        2938  +
        self.structure_member.as_deref()
        2939  +
        /* StructureGenerator.kt:166 */
        2940  +
    }
        2941  +
    /* StructureGenerator.kt:135 */
        2942  +
}
        2943  +
/* ServerCodegenVisitor.kt:356 */
        2944  +
impl PayloadStructure {
        2945  +
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`PayloadStructure`](crate::model::PayloadStructure).
        2946  +
    /* ServerBuilderGenerator.kt:295 */
        2947  +
    pub fn builder() -> crate::model::payload_structure::Builder {
        2948  +
        /* ServerBuilderGenerator.kt:296 */
        2949  +
        crate::model::payload_structure::Builder::default()
        2950  +
        /* ServerBuilderGenerator.kt:295 */
        2951  +
    }
        2952  +
    /* ServerCodegenVisitor.kt:356 */
        2953  +
}
        2954  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
        2955  +
impl crate::constrained::Constrained for crate::model::PayloadStructure {
        2956  +
    type Unconstrained = crate::model::payload_structure::Builder;
        2957  +
}
        2958  +
        2959  +
/* UnionGenerator.kt:67 */
        2960  +
#[allow(missing_docs)] // documentation missing in model
        2961  +
/* RustType.kt:534 */
        2962  +
#[derive(
        2963  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2964  +
)]
        2965  +
pub /* UnionGenerator.kt:85 */ enum PayloadUnion {
        2966  +
    /* UnionGenerator.kt:90 */
        2967  +
    #[allow(missing_docs)] // documentation missing in model
        2968  +
    /* UnionGenerator.kt:190 */
        2969  +
    UnionMember(::std::string::String),
        2970  +
    /* UnionGenerator.kt:85 */
        2971  +
}
        2972  +
/* UnionGenerator.kt:111 */
        2973  +
impl PayloadUnion {
        2974  +
    /* RustType.kt:534 */
        2975  +
    #[allow(irrefutable_let_patterns)]
        2976  +
    /* UnionGenerator.kt:217 */
        2977  +
    /// Tries to convert the enum instance into [`UnionMember`](crate::model::PayloadUnion::UnionMember), extracting the inner [`String`](::std::string::String).
        2978  +
    /* UnionGenerator.kt:222 */
        2979  +
    /// Returns `Err(&Self)` if it can't be converted.
        2980  +
    /* UnionGenerator.kt:223 */
        2981  +
    pub fn as_union_member(&self) -> ::std::result::Result<&::std::string::String, &Self> {
        2982  +
        /* UnionGenerator.kt:227 */
        2983  +
        if let PayloadUnion::UnionMember(val) = &self {
        2984  +
            ::std::result::Result::Ok(val)
        2985  +
        } else {
        2986  +
            ::std::result::Result::Err(self)
        2987  +
        }
        2988  +
        /* UnionGenerator.kt:223 */
        2989  +
    }
        2990  +
    /* UnionGenerator.kt:121 */
        2991  +
    /// Returns true if this is a [`UnionMember`](crate::model::PayloadUnion::UnionMember).
        2992  +
    /* UnionGenerator.kt:122 */
        2993  +
    pub fn is_union_member(&self) -> bool {
        2994  +
        /* UnionGenerator.kt:123 */
        2995  +
        self.as_union_member().is_ok()
        2996  +
        /* UnionGenerator.kt:122 */
        2997  +
    }
        2998  +
    /* UnionGenerator.kt:111 */
        2999  +
}
        3000  +
/// /* CodegenDelegator.kt:52 */See [`StringSet`](crate::model::StringSet).
        3001  +
pub mod string_set {
        3002  +
        3003  +
    /* CollectionConstraintViolationGenerator.kt:78 */
        3004  +
    #[allow(clippy::enum_variant_names)]
        3005  +
    #[derive(Debug, PartialEq)]
        3006  +
    pub enum ConstraintViolation {
        3007  +
        /// Constraint violation error when the list does not contain unique items
        3008  +
        UniqueItems {
        3009  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        3010  +
            /// at least two elements.
        3011  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        3012  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        3013  +
            /// Nothing is guaranteed about the order of the indices.
        3014  +
            duplicate_indices: ::std::vec::Vec<usize>,
        3015  +
            /// The original vector, that contains duplicate items.
        3016  +
            original: ::std::vec::Vec<::std::string::String>,
        3017  +
        },
        3018  +
    }
        3019  +
        3020  +
    impl ::std::fmt::Display for ConstraintViolation {
        3021  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3022  +
            let message = match self {
        3023  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        3024  +
                            format!("Value with repeated values at indices {:?} provided for 'aws.protocoltests.shared#StringSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        3025  +
                            };
        3026  +
            write!(f, "{message}")
        3027  +
        }
        3028  +
    }
        3029  +
        3030  +
    impl ::std::error::Error for ConstraintViolation {}
        3031  +
    /* CollectionConstraintViolationGenerator.kt:104 */
        3032  +
    impl ConstraintViolation {
        3033  +
        pub(crate) fn as_validation_exception_field(
        3034  +
            self,
        3035  +
            path: ::std::string::String,
        3036  +
        ) -> crate::model::ValidationExceptionField {
        3037  +
            match self {
        3038  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        3039  +
                                crate::model::ValidationExceptionField {
        3040  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        3041  +
                                    path,
        3042  +
                                },
        3043  +
                    }
        3044  +
        }
        3045  +
    }
        3046  +
        3047  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3048  +
}
        3049  +
pub mod foo_enum_list {
        3050  +
        3051  +
    /* CollectionConstraintViolationGenerator.kt:78 */
        3052  +
    #[allow(clippy::enum_variant_names)]
        3053  +
    #[derive(Debug, PartialEq)]
        3054  +
    pub enum ConstraintViolation {
        3055  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        3056  +
        /// The first component of the tuple is the index in the collection where the
        3057  +
        /// first constraint violation was found.
        3058  +
        #[doc(hidden)]
        3059  +
        Member(usize, crate::model::foo_enum::ConstraintViolation),
        3060  +
    }
        3061  +
        3062  +
    impl ::std::fmt::Display for ConstraintViolation {
        3063  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3064  +
            let message = match self {
        3065  +
                Self::Member(index, failing_member) => format!(
        3066  +
                    "Value at index {index} failed to satisfy constraint. {}",
        3067  +
                    failing_member
        3068  +
                ),
        3069  +
            };
        3070  +
            write!(f, "{message}")
        3071  +
        }
        3072  +
    }
        3073  +
        3074  +
    impl ::std::error::Error for ConstraintViolation {}
        3075  +
    /* CollectionConstraintViolationGenerator.kt:104 */
        3076  +
    impl ConstraintViolation {
        3077  +
        pub(crate) fn as_validation_exception_field(
        3078  +
            self,
        3079  +
            path: ::std::string::String,
        3080  +
        ) -> crate::model::ValidationExceptionField {
        3081  +
            match self {
        3082  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
        3083  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        3084  +
            }
        3085  +
        }
        3086  +
    }
        3087  +
        3088  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3089  +
}
        3090  +
/// /* CodegenDelegator.kt:52 */See [`IntegerSet`](crate::model::IntegerSet).
        3091  +
pub mod integer_set {
        3092  +
        3093  +
    /* CollectionConstraintViolationGenerator.kt:78 */
        3094  +
    #[allow(clippy::enum_variant_names)]
        3095  +
    #[derive(Debug, PartialEq)]
        3096  +
    pub enum ConstraintViolation {
        3097  +
        /// Constraint violation error when the list does not contain unique items
        3098  +
        UniqueItems {
        3099  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        3100  +
            /// at least two elements.
        3101  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        3102  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        3103  +
            /// Nothing is guaranteed about the order of the indices.
        3104  +
            duplicate_indices: ::std::vec::Vec<usize>,
        3105  +
            /// The original vector, that contains duplicate items.
        3106  +
            original: ::std::vec::Vec<i32>,
        3107  +
        },
        3108  +
    }
        3109  +
        3110  +
    impl ::std::fmt::Display for ConstraintViolation {
        3111  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3112  +
            let message = match self {
        3113  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        3114  +
                            format!("Value with repeated values at indices {:?} provided for 'aws.protocoltests.shared#IntegerSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        3115  +
                            };
        3116  +
            write!(f, "{message}")
        3117  +
        }
        3118  +
    }
        3119  +
        3120  +
    impl ::std::error::Error for ConstraintViolation {}
        3121  +
    /* CollectionConstraintViolationGenerator.kt:104 */
        3122  +
    impl ConstraintViolation {
        3123  +
        pub(crate) fn as_validation_exception_field(
        3124  +
            self,
        3125  +
            path: ::std::string::String,
        3126  +
        ) -> crate::model::ValidationExceptionField {
        3127  +
            match self {
        3128  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        3129  +
                                crate::model::ValidationExceptionField {
        3130  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        3131  +
                                    path,
        3132  +
                                },
        3133  +
                    }
        3134  +
        }
        3135  +
    }
        3136  +
        3137  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3138  +
}
        3139  +
/// /* ServerBuilderGenerator.kt:171 */See [`NestedPayload`](crate::model::NestedPayload).
        3140  +
pub mod nested_payload {
        3141  +
        3142  +
    /* ServerBuilderGenerator.kt:461 */
        3143  +
    impl ::std::convert::From<Builder> for crate::model::NestedPayload {
        3144  +
        fn from(builder: Builder) -> Self {
        3145  +
            builder.build()
        3146  +
        }
        3147  +
    }
        3148  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`NestedPayload`](crate::model::NestedPayload).
        3149  +
    /* RustType.kt:534 */
        3150  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        3151  +
    /* ServerBuilderGenerator.kt:211 */
        3152  +
    pub struct Builder {
        3153  +
        /* ServerBuilderGenerator.kt:308 */
        3154  +
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        3155  +
        /* ServerBuilderGenerator.kt:308 */
        3156  +
        pub(crate) name: ::std::option::Option<::std::string::String>,
        3157  +
        /* ServerBuilderGenerator.kt:211 */
        3158  +
    }
        3159  +
    /* ServerBuilderGenerator.kt:215 */
        3160  +
    impl Builder {
        3161  +
        /* ServerBuilderGenerator.kt:331 */
        3162  +
        #[allow(missing_docs)] // documentation missing in model
        3163  +
                               /* ServerBuilderGenerator.kt:343 */
        3164  +
        pub fn greeting(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        3165  +
            /* ServerBuilderGenerator.kt:344 */
        3166  +
            self.greeting =
        3167  +
                /* ServerBuilderGenerator.kt:376 */input
        3168  +
            /* ServerBuilderGenerator.kt:344 */;
        3169  +
            self
        3170  +
            /* ServerBuilderGenerator.kt:343 */
        3171  +
        }
        3172  +
        /* ServerBuilderGenerator.kt:426 */
        3173  +
        #[allow(missing_docs)] // documentation missing in model
        3174  +
                               /* ServerBuilderGenerator.kt:428 */
        3175  +
        pub(crate) fn set_greeting(
        3176  +
            mut self,
        3177  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        3178  +
        ) -> Self {
        3179  +
            /* ServerBuilderGenerator.kt:429 */
        3180  +
            self.greeting = input.map(|v| v.into());
        3181  +
            self
        3182  +
            /* ServerBuilderGenerator.kt:428 */
        3183  +
        }
        3184  +
        /* ServerBuilderGenerator.kt:331 */
        3185  +
        #[allow(missing_docs)] // documentation missing in model
        3186  +
                               /* ServerBuilderGenerator.kt:343 */
        3187  +
        pub fn name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        3188  +
            /* ServerBuilderGenerator.kt:344 */
        3189  +
            self.name =
        3190  +
                /* ServerBuilderGenerator.kt:376 */input
        3191  +
            /* ServerBuilderGenerator.kt:344 */;
        3192  +
            self
        3193  +
            /* ServerBuilderGenerator.kt:343 */
        3194  +
        }
        3195  +
        /* ServerBuilderGenerator.kt:426 */
        3196  +
        #[allow(missing_docs)] // documentation missing in model
        3197  +
                               /* ServerBuilderGenerator.kt:428 */
        3198  +
        pub(crate) fn set_name(
        3199  +
            mut self,
        3200  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        3201  +
        ) -> Self {
        3202  +
            /* ServerBuilderGenerator.kt:429 */
        3203  +
            self.name = input.map(|v| v.into());
        3204  +
            self
        3205  +
            /* ServerBuilderGenerator.kt:428 */
        3206  +
        }
        3207  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`NestedPayload`](crate::model::NestedPayload).
        3208  +
        /* ServerBuilderGenerator.kt:271 */
        3209  +
        pub fn build(self) -> crate::model::NestedPayload {
        3210  +
            self.build_enforcing_all_constraints()
        3211  +
        }
        3212  +
        /* ServerBuilderGenerator.kt:283 */
        3213  +
        fn build_enforcing_all_constraints(self) -> crate::model::NestedPayload {
        3214  +
            /* ServerBuilderGenerator.kt:542 */
        3215  +
            crate::model::NestedPayload {
        3216  +
                /* ServerBuilderGenerator.kt:546 */
        3217  +
                greeting: self.greeting,
        3218  +
                /* ServerBuilderGenerator.kt:546 */
        3219  +
                name: self.name,
        3220  +
                /* ServerBuilderGenerator.kt:542 */
        3221  +
            }
        3222  +
            /* ServerBuilderGenerator.kt:283 */
        3223  +
        }
        3224  +
        /* ServerBuilderGenerator.kt:215 */
        3225  +
    }
        3226  +
        3227  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3228  +
}
        3229  +
/// /* ServerBuilderGenerator.kt:171 */See [`ComplexNestedErrorData`](crate::model::ComplexNestedErrorData).
        3230  +
pub mod complex_nested_error_data {
        3231  +
        3232  +
    /* ServerBuilderGenerator.kt:461 */
        3233  +
    impl ::std::convert::From<Builder> for crate::model::ComplexNestedErrorData {
        3234  +
        fn from(builder: Builder) -> Self {
        3235  +
            builder.build()
        3236  +
        }
        3237  +
    }
        3238  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ComplexNestedErrorData`](crate::model::ComplexNestedErrorData).
        3239  +
    /* RustType.kt:534 */
        3240  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        3241  +
    /* ServerBuilderGenerator.kt:211 */
        3242  +
    pub struct Builder {
        3243  +
        /* ServerBuilderGenerator.kt:308 */
        3244  +
        pub(crate) foo: ::std::option::Option<::std::string::String>,
        3245  +
        /* ServerBuilderGenerator.kt:211 */
        3246  +
    }
        3247  +
    /* ServerBuilderGenerator.kt:215 */
        3248  +
    impl Builder {
        3249  +
        /* ServerBuilderGenerator.kt:331 */
        3250  +
        #[allow(missing_docs)] // documentation missing in model
        3251  +
                               /* ServerBuilderGenerator.kt:343 */
        3252  +
        pub fn foo(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        3253  +
            /* ServerBuilderGenerator.kt:344 */
        3254  +
            self.foo =
        3255  +
                /* ServerBuilderGenerator.kt:376 */input
        3256  +
            /* ServerBuilderGenerator.kt:344 */;
        3257  +
            self
        3258  +
            /* ServerBuilderGenerator.kt:343 */
        3259  +
        }
        3260  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ComplexNestedErrorData`](crate::model::ComplexNestedErrorData).
        3261  +
        /* ServerBuilderGenerator.kt:271 */
        3262  +
        pub fn build(self) -> crate::model::ComplexNestedErrorData {
        3263  +
            self.build_enforcing_all_constraints()
        3264  +
        }
        3265  +
        /* ServerBuilderGenerator.kt:283 */
        3266  +
        fn build_enforcing_all_constraints(self) -> crate::model::ComplexNestedErrorData {
        3267  +
            /* ServerBuilderGenerator.kt:542 */
        3268  +
            crate::model::ComplexNestedErrorData {
        3269  +
                /* ServerBuilderGenerator.kt:546 */
        3270  +
                foo: self.foo,
        3271  +
                /* ServerBuilderGenerator.kt:542 */
        3272  +
            }
        3273  +
            /* ServerBuilderGenerator.kt:283 */
        3274  +
        }
        3275  +
        /* ServerBuilderGenerator.kt:215 */
        3276  +
    }
        3277  +
        3278  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3279  +
}
        3280  +
/// /* CodegenDelegator.kt:52 */See [`FooEnumSet`](crate::model::FooEnumSet).
        3281  +
pub mod foo_enum_set {
        3282  +
        3283  +
    /* CollectionConstraintViolationGenerator.kt:78 */
        3284  +
    #[allow(clippy::enum_variant_names)]
        3285  +
    #[derive(Debug, PartialEq)]
        3286  +
    pub enum ConstraintViolation {
        3287  +
        /// Constraint violation error when the list does not contain unique items
        3288  +
        UniqueItems {
        3289  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        3290  +
            /// at least two elements.
        3291  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        3292  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        3293  +
            /// Nothing is guaranteed about the order of the indices.
        3294  +
            duplicate_indices: ::std::vec::Vec<usize>,
        3295  +
            /// The original vector, that contains duplicate items.
        3296  +
            original: ::std::vec::Vec<crate::model::FooEnum>,
        3297  +
        },
        3298  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        3299  +
        /// The first component of the tuple is the index in the collection where the
        3300  +
        /// first constraint violation was found.
        3301  +
        #[doc(hidden)]
        3302  +
        Member(usize, crate::model::foo_enum::ConstraintViolation),
        3303  +
    }
        3304  +
        3305  +
    impl ::std::fmt::Display for ConstraintViolation {
        3306  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3307  +
            let message = match self {
        3308  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        3309  +
                            format!("Value with repeated values at indices {:?} provided for 'aws.protocoltests.shared#FooEnumSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        3310  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
        3311  +
                           failing_member)
        3312  +
                            };
        3313  +
            write!(f, "{message}")
 2045   3314   
        }
 2046   3315   
    }
 2047   3316   
 2048   3317   
    impl ::std::error::Error for ConstraintViolation {}
        3318  +
    /* CollectionConstraintViolationGenerator.kt:104 */
 2049   3319   
    impl ConstraintViolation {
 2050   3320   
        pub(crate) fn as_validation_exception_field(
 2051   3321   
            self,
 2052   3322   
            path: ::std::string::String,
 2053   3323   
        ) -> crate::model::ValidationExceptionField {
 2054         -
            crate::model::ValidationExceptionField {
 2055         -
                message: format!(
 2056         -
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [enumvalue]"#,
 2057         -
                    &path
 2058         -
                ),
 2059         -
                path,
 2060         -
            }
 2061         -
        }
 2062         -
    }
 2063         -
 2064         -
    /* ServerEnumGenerator.kt:47 */
 2065         -
}
 2066         -
/* ServerEnumGenerator.kt:88 */
 2067         -
impl ::std::convert::TryFrom<&str> for StringEnum {
 2068         -
    type Error = crate::model::string_enum::ConstraintViolation;
 2069         -
    fn try_from(
 2070         -
        s: &str,
 2071         -
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
 2072         -
        match s {
 2073         -
            "enumvalue" => Ok(StringEnum::V),
 2074         -
            _ => Err(crate::model::string_enum::ConstraintViolation(s.to_owned())),
 2075         -
        }
 2076         -
    }
 2077         -
}
 2078         -
impl ::std::convert::TryFrom<::std::string::String> for StringEnum {
 2079         -
    type Error = crate::model::string_enum::ConstraintViolation;
 2080         -
    fn try_from(
 2081         -
        s: ::std::string::String,
 2082         -
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
 2083         -
    {
 2084         -
        s.as_str().try_into()
 2085         -
    }
 2086         -
}
 2087         -
/* ServerEnumGenerator.kt:148 */
 2088         -
impl std::str::FromStr for StringEnum {
 2089         -
    type Err = crate::model::string_enum::ConstraintViolation;
 2090         -
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
 2091         -
        Self::try_from(s)
 2092         -
    }
 2093         -
}
 2094         -
/* EnumGenerator.kt:309 */
 2095         -
impl StringEnum {
 2096         -
    /// Returns the `&str` value of the enum member.
 2097         -
    pub fn as_str(&self) -> &str {
 2098         -
        match self {
 2099         -
            StringEnum::V => "enumvalue",
        3324  +
            match self {
        3325  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        3326  +
                                crate::model::ValidationExceptionField {
        3327  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        3328  +
                                    path,
        3329  +
                                },
        3330  +
    Self::Member(index, member_constraint_violation) =>
        3331  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
        3332  +
                    }
 2100   3333   
        }
 2101   3334   
    }
 2102         -
    /// Returns all the `&str` representations of the enum members.
 2103         -
    pub const fn values() -> &'static [&'static str] {
 2104         -
        &["enumvalue"]
 2105         -
    }
 2106         -
}
 2107         -
/* EnumGenerator.kt:254 */
 2108         -
impl ::std::convert::AsRef<str> for StringEnum {
 2109         -
    fn as_ref(&self) -> &str {
 2110         -
        self.as_str()
 2111         -
    }
 2112         -
}
 2113         -
/* ConstrainedTraitForEnumGenerator.kt:36 */
 2114         -
impl crate::constrained::Constrained for StringEnum {
 2115         -
    type Unconstrained = ::std::string::String;
 2116         -
}
 2117         -
 2118         -
impl ::std::convert::From<::std::string::String>
 2119         -
    for crate::constrained::MaybeConstrained<crate::model::StringEnum>
 2120         -
{
 2121         -
    fn from(value: ::std::string::String) -> Self {
 2122         -
        Self::Unconstrained(value)
 2123         -
    }
 2124         -
}
 2125   3335   
 2126         -
/* StructureGenerator.kt:197 */
 2127         -
#[allow(missing_docs)] // documentation missing in model
 2128         -
/* RustType.kt:534 */
 2129         -
#[derive(
 2130         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2131         -
)]
 2132         -
pub /* StructureGenerator.kt:201 */ struct NestedPayload {
 2133         -
    /* StructureGenerator.kt:231 */
 2134         -
    #[allow(missing_docs)] // documentation missing in model
 2135         -
    pub greeting: ::std::option::Option<::std::string::String>,
 2136         -
    /* StructureGenerator.kt:231 */
 2137         -
    #[allow(missing_docs)] // documentation missing in model
 2138         -
    pub name: ::std::option::Option<::std::string::String>,
 2139         -
    /* StructureGenerator.kt:201 */
 2140         -
}
 2141         -
/* StructureGenerator.kt:135 */
 2142         -
impl NestedPayload {
 2143         -
    /* StructureGenerator.kt:231 */
 2144         -
    #[allow(missing_docs)] // documentation missing in model
 2145         -
                           /* StructureGenerator.kt:166 */
 2146         -
    pub fn greeting(&self) -> ::std::option::Option<&str> {
 2147         -
        /* StructureGenerator.kt:169 */
 2148         -
        self.greeting.as_deref()
 2149         -
        /* StructureGenerator.kt:166 */
 2150         -
    }
 2151         -
    /* StructureGenerator.kt:231 */
 2152         -
    #[allow(missing_docs)] // documentation missing in model
 2153         -
                           /* StructureGenerator.kt:166 */
 2154         -
    pub fn name(&self) -> ::std::option::Option<&str> {
 2155         -
        /* StructureGenerator.kt:169 */
 2156         -
        self.name.as_deref()
 2157         -
        /* StructureGenerator.kt:166 */
 2158         -
    }
 2159         -
    /* StructureGenerator.kt:135 */
 2160         -
}
 2161         -
/* ServerCodegenVisitor.kt:356 */
 2162         -
impl NestedPayload {
 2163         -
    /// /* ServerBuilderGenerator.kt:294 */Creates a new builder-style object to manufacture [`NestedPayload`](crate::model::NestedPayload).
 2164         -
    /* ServerBuilderGenerator.kt:295 */
 2165         -
    pub fn builder() -> crate::model::nested_payload::Builder {
 2166         -
        /* ServerBuilderGenerator.kt:296 */
 2167         -
        crate::model::nested_payload::Builder::default()
 2168         -
        /* ServerBuilderGenerator.kt:295 */
 2169         -
    }
 2170         -
    /* ServerCodegenVisitor.kt:356 */
 2171         -
}
 2172         -
/* ServerStructureConstrainedTraitImpl.kt:21 */
 2173         -
impl crate::constrained::Constrained for crate::model::NestedPayload {
 2174         -
    type Unconstrained = crate::model::nested_payload::Builder;
        3336  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2175   3337   
}
        3338  +
pub mod foo_enum_map {
 2176   3339   
 2177         -
/* ConstrainedCollectionGenerator.kt:93 */
 2178         -
#[allow(missing_docs)] // documentation missing in model
 2179         -
/// /* ConstrainedCollectionGenerator.kt:94 */
 2180         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2181         -
/// [constraint traits]. Use [`IntegerSet::try_from`] to construct values of this type.
 2182         -
///
 2183         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2184         -
///
 2185         -
/* RustType.kt:534 */
 2186         -
#[derive(
 2187         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2188         -
)]
 2189         -
pub /* ConstrainedCollectionGenerator.kt:97 */ struct IntegerSet(pub(crate) ::std::vec::Vec<i32>);
 2190         -
/* ConstrainedCollectionGenerator.kt:104 */
 2191         -
impl IntegerSet {
 2192         -
    /* ConstrainedCollectionGenerator.kt:106 */
 2193         -
    /// Returns an immutable reference to the underlying [`::std::vec::Vec<i32>`].
 2194         -
    pub fn inner(&self) -> &::std::vec::Vec<i32> {
 2195         -
        &self.0
 2196         -
    }
 2197         -
    /* ConstrainedCollectionGenerator.kt:116 */
 2198         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<i32>`].
 2199         -
    pub fn into_inner(self) -> ::std::vec::Vec<i32> {
 2200         -
        self.0
        3340  +
    /* MapConstraintViolationGenerator.kt:82 */
        3341  +
    #[allow(clippy::enum_variant_names)]
        3342  +
    #[derive(Debug, PartialEq)]
        3343  +
    pub enum ConstraintViolation {
        3344  +
        #[doc(hidden)]
        3345  +
        Value(
        3346  +
            ::std::string::String,
        3347  +
            crate::model::foo_enum::ConstraintViolation,
        3348  +
        ),
 2201   3349   
    }
 2202   3350   
 2203         -
    fn check_unique_items(
 2204         -
        items: ::std::vec::Vec<i32>,
 2205         -
    ) -> ::std::result::Result<::std::vec::Vec<i32>, crate::model::integer_set::ConstraintViolation>
 2206         -
    {
 2207         -
        let mut seen = ::std::collections::HashMap::new();
 2208         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 2209         -
        for (idx, item) in items.iter().enumerate() {
 2210         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 2211         -
                duplicate_indices.push(prev_idx);
        3351  +
    impl ::std::fmt::Display for ConstraintViolation {
        3352  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3353  +
            match self {
        3354  +
                Self::Value(_, value_constraint_violation) => {
        3355  +
                    write!(f, "{}", value_constraint_violation)
        3356  +
                }
 2212   3357   
            }
 2213   3358   
        }
        3359  +
    }
 2214   3360   
 2215         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 2216         -
        for idx in &duplicate_indices {
 2217         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 2218         -
                last_duplicate_indices.push(prev_idx);
        3361  +
    impl ::std::error::Error for ConstraintViolation {}
        3362  +
    /* MapConstraintViolationGenerator.kt:111 */
        3363  +
    impl ConstraintViolation {
        3364  +
        pub(crate) fn as_validation_exception_field(
        3365  +
            self,
        3366  +
            path: ::std::string::String,
        3367  +
        ) -> crate::model::ValidationExceptionField {
        3368  +
            match self {
        3369  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        3370  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
 2219   3371   
            }
 2220   3372   
        }
 2221         -
        duplicate_indices.extend(last_duplicate_indices);
 2222         -
 2223         -
        if !duplicate_indices.is_empty() {
 2224         -
            debug_assert!(duplicate_indices.len() >= 2);
 2225         -
            Err(
 2226         -
                crate::model::integer_set::ConstraintViolation::UniqueItems {
 2227         -
                    duplicate_indices,
 2228         -
                    original: items,
 2229         -
                },
 2230         -
            )
 2231         -
        } else {
 2232         -
            Ok(items)
 2233         -
        }
 2234         -
    }
 2235         -
    /* ConstrainedCollectionGenerator.kt:104 */
 2236         -
}
 2237         -
/* ConstrainedCollectionGenerator.kt:133 */
 2238         -
impl ::std::convert::TryFrom<::std::vec::Vec<i32>> for IntegerSet {
 2239         -
    type Error = crate::model::integer_set::ConstraintViolation;
 2240         -
 2241         -
    /// Constructs a `IntegerSet` from an [`::std::vec::Vec<i32>`], failing when the provided value does not satisfy the modeled constraints.
 2242         -
    fn try_from(value: ::std::vec::Vec<i32>) -> ::std::result::Result<Self, Self::Error> {
 2243         -
        let value = Self::check_unique_items(value)?;
 2244         -
 2245         -
        Ok(Self(value))
 2246   3373   
    }
 2247         -
}
 2248   3374   
 2249         -
impl ::std::convert::From<IntegerSet> for ::std::vec::Vec<i32> {
 2250         -
    fn from(value: IntegerSet) -> Self {
 2251         -
        value.into_inner()
 2252         -
    }
 2253         -
}
 2254         -
/* ConstrainedCollectionGenerator.kt:181 */
 2255         -
impl crate::constrained::Constrained for IntegerSet {
 2256         -
    type Unconstrained = crate::unconstrained::integer_set_unconstrained::IntegerSetUnconstrained;
        3375  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2257   3376   
}
        3377  +
/// /* CodegenDelegator.kt:52 */See [`IntegerEnumSet`](crate::model::IntegerEnumSet).
        3378  +
pub mod integer_enum_set {
 2258   3379   
 2259         -
/// /* ServerBuilderGenerator.kt:171 */See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 2260         -
pub mod validation_exception_field {
 2261         -
 2262         -
    /* RustType.kt:534 */
 2263         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2264         -
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
 2265         -
    /* RustType.kt:534 */
 2266         -
    #[non_exhaustive]
 2267         -
    /* ServerBuilderConstraintViolations.kt:75 */
        3380  +
    /* CollectionConstraintViolationGenerator.kt:78 */
 2268   3381   
    #[allow(clippy::enum_variant_names)]
        3382  +
    #[derive(Debug, PartialEq)]
 2269   3383   
    pub enum ConstraintViolation {
 2270         -
        /// /* ServerBuilderConstraintViolations.kt:137 */`path` was not provided but it is required when building `ValidationExceptionField`.
 2271         -
        /* ServerBuilderConstraintViolations.kt:144 */
 2272         -
        MissingPath,
 2273         -
        /// /* ServerBuilderConstraintViolations.kt:137 */`message` was not provided but it is required when building `ValidationExceptionField`.
 2274         -
        /* ServerBuilderConstraintViolations.kt:144 */
 2275         -
        MissingMessage,
 2276         -
        /* ServerBuilderConstraintViolations.kt:75 */
        3384  +
        /// Constraint violation error when the list does not contain unique items
        3385  +
        UniqueItems {
        3386  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        3387  +
            /// at least two elements.
        3388  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        3389  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        3390  +
            /// Nothing is guaranteed about the order of the indices.
        3391  +
            duplicate_indices: ::std::vec::Vec<usize>,
        3392  +
            /// The original vector, that contains duplicate items.
        3393  +
            original: ::std::vec::Vec<i32>,
        3394  +
        },
 2277   3395   
    }
 2278         -
    /* ServerBuilderConstraintViolations.kt:116 */
        3396  +
 2279   3397   
    impl ::std::fmt::Display for ConstraintViolation {
 2280         -
        /* ServerBuilderConstraintViolations.kt:117 */
 2281   3398   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2282         -
            /* ServerBuilderConstraintViolations.kt:118 */
 2283         -
            match self {
 2284         -
                /* ServerBuilderConstraintViolations.kt:126 */ConstraintViolation::MissingPath => write!(f, "`path` was not provided but it is required when building `ValidationExceptionField`"),
 2285         -
                /* ServerBuilderConstraintViolations.kt:126 */ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationExceptionField`"),
 2286         -
            /* ServerBuilderConstraintViolations.kt:118 */}
 2287         -
            /* ServerBuilderConstraintViolations.kt:117 */
        3399  +
            let message = match self {
        3400  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        3401  +
                            format!("Value with repeated values at indices {:?} provided for 'aws.protocoltests.shared#IntegerEnumSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        3402  +
                            };
        3403  +
            write!(f, "{message}")
 2288   3404   
        }
 2289         -
        /* ServerBuilderConstraintViolations.kt:116 */
 2290   3405   
    }
 2291         -
    /* ServerBuilderConstraintViolations.kt:83 */
 2292         -
    impl ::std::error::Error for ConstraintViolation {}
 2293         -
    /* ServerBuilderGenerator.kt:446 */
 2294         -
    impl ::std::convert::TryFrom<Builder> for crate::model::ValidationExceptionField {
 2295         -
        type Error = ConstraintViolation;
 2296   3406   
 2297         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 2298         -
            builder.build()
 2299         -
        }
 2300         -
    }
 2301         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 2302         -
    /* RustType.kt:534 */
 2303         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2304         -
    /* ServerBuilderGenerator.kt:211 */
 2305         -
    pub struct Builder {
 2306         -
        /* ServerBuilderGenerator.kt:308 */
 2307         -
        pub(crate) path: ::std::option::Option<::std::string::String>,
 2308         -
        /* ServerBuilderGenerator.kt:308 */
 2309         -
        pub(crate) message: ::std::option::Option<::std::string::String>,
 2310         -
        /* ServerBuilderGenerator.kt:211 */
 2311         -
    }
 2312         -
    /* ServerBuilderGenerator.kt:215 */
 2313         -
    impl Builder {
 2314         -
        /// /* ServerBuilderGenerator.kt:331 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
 2315         -
        /* ServerBuilderGenerator.kt:343 */
 2316         -
        pub fn path(mut self, input: ::std::string::String) -> Self {
 2317         -
            /* ServerBuilderGenerator.kt:344 */
 2318         -
            self.path =
 2319         -
                /* ServerBuilderGenerator.kt:345 */Some(
 2320         -
                    /* ServerBuilderGenerator.kt:376 */input
 2321         -
                /* ServerBuilderGenerator.kt:345 */)
 2322         -
            /* ServerBuilderGenerator.kt:344 */;
 2323         -
            self
 2324         -
            /* ServerBuilderGenerator.kt:343 */
 2325         -
        }
 2326         -
        /// /* ServerBuilderGenerator.kt:331 */A detailed description of the validation failure.
 2327         -
        /* ServerBuilderGenerator.kt:343 */
 2328         -
        pub fn message(mut self, input: ::std::string::String) -> Self {
 2329         -
            /* ServerBuilderGenerator.kt:344 */
 2330         -
            self.message =
 2331         -
                /* ServerBuilderGenerator.kt:345 */Some(
 2332         -
                    /* ServerBuilderGenerator.kt:376 */input
 2333         -
                /* ServerBuilderGenerator.kt:345 */)
 2334         -
            /* ServerBuilderGenerator.kt:344 */;
 2335         -
            self
 2336         -
            /* ServerBuilderGenerator.kt:343 */
 2337         -
        }
 2338         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 2339         -
        /// /* ServerBuilderGenerator.kt:260 */
 2340         -
        /// The builder fails to construct a [`ValidationExceptionField`](crate::model::ValidationExceptionField) if a [`ConstraintViolation`] occurs.
 2341         -
        ///
 2342         -
        /// /* ServerBuilderGenerator.kt:268 */If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
 2343         -
        /* ServerBuilderGenerator.kt:271 */
 2344         -
        pub fn build(self) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
 2345         -
            self.build_enforcing_all_constraints()
 2346         -
        }
 2347         -
        /* ServerBuilderGenerator.kt:283 */
 2348         -
        fn build_enforcing_all_constraints(
        3407  +
    impl ::std::error::Error for ConstraintViolation {}
        3408  +
    /* CollectionConstraintViolationGenerator.kt:104 */
        3409  +
    impl ConstraintViolation {
        3410  +
        pub(crate) fn as_validation_exception_field(
 2349   3411   
            self,
 2350         -
        ) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
 2351         -
            /* ServerBuilderGenerator.kt:287 */
 2352         -
            Ok(
 2353         -
                /* ServerBuilderGenerator.kt:542 */
 2354         -
                crate::model::ValidationExceptionField {
 2355         -
                    /* ServerBuilderGenerator.kt:546 */
 2356         -
                    path: self
 2357         -
                        .path
 2358         -
                        /* ServerBuilderGenerator.kt:569 */
 2359         -
                        .ok_or(ConstraintViolation::MissingPath)?,
 2360         -
                    /* ServerBuilderGenerator.kt:546 */
 2361         -
                    message: self
 2362         -
                        .message
 2363         -
                        /* ServerBuilderGenerator.kt:569 */
 2364         -
                        .ok_or(ConstraintViolation::MissingMessage)?,
 2365         -
                    /* ServerBuilderGenerator.kt:542 */
 2366         -
                }, /* ServerBuilderGenerator.kt:287 */
 2367         -
            )
 2368         -
            /* ServerBuilderGenerator.kt:283 */
        3412  +
            path: ::std::string::String,
        3413  +
        ) -> crate::model::ValidationExceptionField {
        3414  +
            match self {
        3415  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        3416  +
                                crate::model::ValidationExceptionField {
        3417  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        3418  +
                                    path,
        3419  +
                                },
        3420  +
                    }
 2369   3421   
        }
 2370         -
        /* ServerBuilderGenerator.kt:215 */
 2371   3422   
    }
 2372   3423   
 2373   3424   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2374   3425   
}
 2375         -
/// /* ServerBuilderGenerator.kt:171 */See [`Dialog`](crate::model::Dialog).
 2376         -
pub mod dialog {
        3426  +
/// /* ServerBuilderGenerator.kt:171 */See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
        3427  +
pub mod recursive_shapes_input_output_nested1 {
 2377   3428   
 2378   3429   
    /* ServerBuilderGenerator.kt:461 */
 2379         -
    impl ::std::convert::From<Builder> for crate::model::Dialog {
        3430  +
    impl ::std::convert::From<Builder> for crate::model::RecursiveShapesInputOutputNested1 {
 2380   3431   
        fn from(builder: Builder) -> Self {
 2381   3432   
            builder.build()
 2382   3433   
        }
 2383   3434   
    }
 2384         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Dialog`](crate::model::Dialog).
        3435  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 2385   3436   
    /* RustType.kt:534 */
 2386   3437   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2387   3438   
    /* ServerBuilderGenerator.kt:211 */
 2388   3439   
    pub struct Builder {
 2389   3440   
        /* ServerBuilderGenerator.kt:308 */
 2390         -
        pub(crate) language: ::std::option::Option<::std::string::String>,
 2391         -
        /* ServerBuilderGenerator.kt:308 */
 2392         -
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        3441  +
        pub(crate) foo: ::std::option::Option<::std::string::String>,
 2393   3442   
        /* ServerBuilderGenerator.kt:308 */
 2394         -
        pub(crate) farewell: ::std::option::Option<crate::model::Farewell>,
        3443  +
        pub(crate) nested: ::std::option::Option<
        3444  +
            ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
        3445  +
        >,
 2395   3446   
        /* ServerBuilderGenerator.kt:211 */
 2396   3447   
    }
 2397   3448   
    /* ServerBuilderGenerator.kt:215 */
 2398   3449   
    impl Builder {
 2399   3450   
        /* ServerBuilderGenerator.kt:331 */
 2400   3451   
        #[allow(missing_docs)] // documentation missing in model
 2401   3452   
                               /* ServerBuilderGenerator.kt:343 */
 2402         -
        pub fn language(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        3453  +
        pub fn foo(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 2403   3454   
            /* ServerBuilderGenerator.kt:344 */
 2404         -
            self.language =
        3455  +
            self.foo =
 2405   3456   
                /* ServerBuilderGenerator.kt:376 */input
 2406   3457   
            /* ServerBuilderGenerator.kt:344 */;
 2407   3458   
            self
 2408   3459   
            /* ServerBuilderGenerator.kt:343 */
 2409   3460   
        }
 2410   3461   
        /* ServerBuilderGenerator.kt:426 */
 2411   3462   
        #[allow(missing_docs)] // documentation missing in model
 2412   3463   
                               /* ServerBuilderGenerator.kt:428 */
 2413         -
        pub(crate) fn set_language(
        3464  +
        pub(crate) fn set_foo(
 2414   3465   
            mut self,
 2415   3466   
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 2416   3467   
        ) -> Self {
 2417   3468   
            /* ServerBuilderGenerator.kt:429 */
 2418         -
            self.language = input.map(|v| v.into());
        3469  +
            self.foo = input.map(|v| v.into());
 2419   3470   
            self
 2420   3471   
            /* ServerBuilderGenerator.kt:428 */
 2421   3472   
        }
 2422   3473   
        /* ServerBuilderGenerator.kt:331 */
 2423   3474   
        #[allow(missing_docs)] // documentation missing in model
 2424   3475   
                               /* ServerBuilderGenerator.kt:343 */
 2425         -
        pub fn greeting(mut self, input: ::std::string::String) -> Self {
 2426         -
            /* ServerBuilderGenerator.kt:344 */
 2427         -
            self.greeting =
 2428         -
                /* ServerBuilderGenerator.kt:345 */Some(
 2429         -
                    /* ServerBuilderGenerator.kt:376 */input
 2430         -
                /* ServerBuilderGenerator.kt:345 */)
 2431         -
            /* ServerBuilderGenerator.kt:344 */;
 2432         -
            self
 2433         -
            /* ServerBuilderGenerator.kt:343 */
 2434         -
        }
 2435         -
        /* ServerBuilderGenerator.kt:426 */
 2436         -
        #[allow(missing_docs)] // documentation missing in model
 2437         -
                               /* ServerBuilderGenerator.kt:428 */
 2438         -
        pub(crate) fn set_greeting(
        3476  +
        pub fn nested(
 2439   3477   
            mut self,
 2440         -
            input: impl ::std::convert::Into<::std::string::String>,
        3478  +
            input: ::std::option::Option<
        3479  +
                ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
        3480  +
            >,
 2441   3481   
        ) -> Self {
 2442         -
            /* ServerBuilderGenerator.kt:429 */
 2443         -
            self.greeting = Some(input.into());
 2444         -
            self
 2445         -
            /* ServerBuilderGenerator.kt:428 */
 2446         -
        }
 2447         -
        /* ServerBuilderGenerator.kt:331 */
 2448         -
        #[allow(missing_docs)] // documentation missing in model
 2449         -
                               /* ServerBuilderGenerator.kt:343 */
 2450         -
        pub fn farewell(mut self, input: ::std::option::Option<crate::model::Farewell>) -> Self {
 2451   3482   
            /* ServerBuilderGenerator.kt:344 */
 2452         -
            self.farewell =
        3483  +
            self.nested =
 2453   3484   
                /* ServerBuilderGenerator.kt:376 */input
 2454   3485   
            /* ServerBuilderGenerator.kt:344 */;
 2455   3486   
            self
 2456   3487   
            /* ServerBuilderGenerator.kt:343 */
 2457   3488   
        }
 2458   3489   
        /* ServerBuilderGenerator.kt:426 */
 2459   3490   
        #[allow(missing_docs)] // documentation missing in model
 2460   3491   
                               /* ServerBuilderGenerator.kt:428 */
 2461         -
        pub(crate) fn set_farewell(
        3492  +
        pub(crate) fn set_nested(
 2462   3493   
            mut self,
 2463         -
            input: Option<impl ::std::convert::Into<crate::model::Farewell>>,
        3494  +
            input: Option<
        3495  +
                impl ::std::convert::Into<
        3496  +
                    ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
        3497  +
                >,
        3498  +
            >,
 2464   3499   
        ) -> Self {
 2465   3500   
            /* ServerBuilderGenerator.kt:429 */
 2466         -
            self.farewell = input.map(|v| v.into());
        3501  +
            self.nested = input.map(|v| v.into());
 2467   3502   
            self
 2468   3503   
            /* ServerBuilderGenerator.kt:428 */
 2469   3504   
        }
 2470         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Dialog`](crate::model::Dialog).
        3505  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 2471   3506   
        /* ServerBuilderGenerator.kt:271 */
 2472         -
        pub fn build(self) -> crate::model::Dialog {
        3507  +
        pub fn build(self) -> crate::model::RecursiveShapesInputOutputNested1 {
 2473   3508   
            self.build_enforcing_all_constraints()
 2474   3509   
        }
 2475   3510   
        /* ServerBuilderGenerator.kt:283 */
 2476         -
        fn build_enforcing_all_constraints(self) -> crate::model::Dialog {
        3511  +
        fn build_enforcing_all_constraints(
        3512  +
            self,
        3513  +
        ) -> crate::model::RecursiveShapesInputOutputNested1 {
 2477   3514   
            /* ServerBuilderGenerator.kt:542 */
 2478         -
            crate::model::Dialog {
 2479         -
                /* ServerBuilderGenerator.kt:546 */
 2480         -
                language: self.language,
 2481         -
                /* ServerBuilderGenerator.kt:546 */
 2482         -
                greeting: self
 2483         -
                    .greeting
 2484         -
                    /* ServerBuilderGeneratorCommon.kt:129 */
 2485         -
                    .unwrap_or_else(|| String::from("hi")),
        3515  +
            crate::model::RecursiveShapesInputOutputNested1 {
 2486   3516   
                /* ServerBuilderGenerator.kt:546 */
 2487         -
                farewell: self.farewell,
 2488         -
                /* ServerBuilderGenerator.kt:542 */
 2489         -
            }
 2490         -
            /* ServerBuilderGenerator.kt:283 */
 2491         -
        }
 2492         -
        /* ServerBuilderGenerator.kt:215 */
 2493         -
    }
 2494         -
 2495         -
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2496         -
}
 2497         -
/// /* ServerBuilderGenerator.kt:171 */See [`Farewell`](crate::model::Farewell).
 2498         -
pub mod farewell {
 2499         -
 2500         -
    /* ServerBuilderGenerator.kt:461 */
 2501         -
    impl ::std::convert::From<Builder> for crate::model::Farewell {
 2502         -
        fn from(builder: Builder) -> Self {
 2503         -
            builder.build()
 2504         -
        }
 2505         -
    }
 2506         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Farewell`](crate::model::Farewell).
 2507         -
    /* RustType.kt:534 */
 2508         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2509         -
    /* ServerBuilderGenerator.kt:211 */
 2510         -
    pub struct Builder {
 2511         -
        /* ServerBuilderGenerator.kt:308 */
 2512         -
        pub(crate) phrase: ::std::option::Option<::std::string::String>,
 2513         -
        /* ServerBuilderGenerator.kt:211 */
 2514         -
    }
 2515         -
    /* ServerBuilderGenerator.kt:215 */
 2516         -
    impl Builder {
 2517         -
        /* ServerBuilderGenerator.kt:331 */
 2518         -
        #[allow(missing_docs)] // documentation missing in model
 2519         -
                               /* ServerBuilderGenerator.kt:343 */
 2520         -
        pub fn phrase(mut self, input: ::std::string::String) -> Self {
 2521         -
            /* ServerBuilderGenerator.kt:344 */
 2522         -
            self.phrase =
 2523         -
                /* ServerBuilderGenerator.kt:345 */Some(
 2524         -
                    /* ServerBuilderGenerator.kt:376 */input
 2525         -
                /* ServerBuilderGenerator.kt:345 */)
 2526         -
            /* ServerBuilderGenerator.kt:344 */;
 2527         -
            self
 2528         -
            /* ServerBuilderGenerator.kt:343 */
 2529         -
        }
 2530         -
        /* ServerBuilderGenerator.kt:426 */
 2531         -
        #[allow(missing_docs)] // documentation missing in model
 2532         -
                               /* ServerBuilderGenerator.kt:428 */
 2533         -
        pub(crate) fn set_phrase(
 2534         -
            mut self,
 2535         -
            input: impl ::std::convert::Into<::std::string::String>,
 2536         -
        ) -> Self {
 2537         -
            /* ServerBuilderGenerator.kt:429 */
 2538         -
            self.phrase = Some(input.into());
 2539         -
            self
 2540         -
            /* ServerBuilderGenerator.kt:428 */
 2541         -
        }
 2542         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Farewell`](crate::model::Farewell).
 2543         -
        /* ServerBuilderGenerator.kt:271 */
 2544         -
        pub fn build(self) -> crate::model::Farewell {
 2545         -
            self.build_enforcing_all_constraints()
 2546         -
        }
 2547         -
        /* ServerBuilderGenerator.kt:283 */
 2548         -
        fn build_enforcing_all_constraints(self) -> crate::model::Farewell {
 2549         -
            /* ServerBuilderGenerator.kt:542 */
 2550         -
            crate::model::Farewell {
        3517  +
                foo: self.foo,
 2551   3518   
                /* ServerBuilderGenerator.kt:546 */
 2552         -
                phrase: self
 2553         -
                    .phrase
 2554         -
                    /* ServerBuilderGeneratorCommon.kt:129 */
 2555         -
                    .unwrap_or_else(|| String::from("bye")),
        3519  +
                nested: self.nested,
 2556   3520   
                /* ServerBuilderGenerator.kt:542 */
 2557   3521   
            }
 2558   3522   
            /* ServerBuilderGenerator.kt:283 */
 2559   3523   
        }
 2560   3524   
        /* ServerBuilderGenerator.kt:215 */
 2561   3525   
    }
 2562   3526   
 2563   3527   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2564   3528   
}
 2565         -
/// /* ServerBuilderGenerator.kt:171 */See [`TopLevel`](crate::model::TopLevel).
 2566         -
pub mod top_level {
        3529  +
pub mod dense_set_map {
 2567   3530   
 2568         -
    /* RustType.kt:534 */
 2569         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2570         -
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
 2571         -
    /* RustType.kt:534 */
 2572         -
    #[non_exhaustive]
 2573         -
    /* ServerBuilderConstraintViolations.kt:75 */
        3531  +
    /* MapConstraintViolationGenerator.kt:82 */
 2574   3532   
    #[allow(clippy::enum_variant_names)]
        3533  +
    #[derive(Debug, PartialEq)]
 2575   3534   
    pub enum ConstraintViolation {
 2576         -
        /// /* ServerBuilderConstraintViolations.kt:137 */`dialog` was not provided but it is required when building `TopLevel`.
 2577         -
        /* ServerBuilderConstraintViolations.kt:144 */
 2578         -
        MissingDialog,
 2579         -
        /* ServerBuilderConstraintViolations.kt:75 */
        3535  +
        #[doc(hidden)]
        3536  +
        Value(
        3537  +
            ::std::string::String,
        3538  +
            crate::model::string_set::ConstraintViolation,
        3539  +
        ),
 2580   3540   
    }
 2581         -
    /* ServerBuilderConstraintViolations.kt:116 */
        3541  +
 2582   3542   
    impl ::std::fmt::Display for ConstraintViolation {
 2583         -
        /* ServerBuilderConstraintViolations.kt:117 */
 2584   3543   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2585         -
            /* ServerBuilderConstraintViolations.kt:118 */
 2586   3544   
            match self {
 2587         -
                /* ServerBuilderConstraintViolations.kt:126 */
 2588         -
                ConstraintViolation::MissingDialog => write!(
 2589         -
                    f,
 2590         -
                    "`dialog` was not provided but it is required when building `TopLevel`"
 2591         -
                ),
 2592         -
                /* ServerBuilderConstraintViolations.kt:118 */
        3545  +
                Self::Value(_, value_constraint_violation) => {
        3546  +
                    write!(f, "{}", value_constraint_violation)
        3547  +
                }
 2593   3548   
            }
 2594         -
            /* ServerBuilderConstraintViolations.kt:117 */
 2595   3549   
        }
 2596         -
        /* ServerBuilderConstraintViolations.kt:116 */
 2597   3550   
    }
 2598         -
    /* ServerBuilderConstraintViolations.kt:83 */
        3551  +
 2599   3552   
    impl ::std::error::Error for ConstraintViolation {}
 2600         -
    /* ServerBuilderConstraintViolations.kt:172 */
        3553  +
    /* MapConstraintViolationGenerator.kt:111 */
 2601   3554   
    impl ConstraintViolation {
 2602   3555   
        pub(crate) fn as_validation_exception_field(
 2603   3556   
            self,
 2604   3557   
            path: ::std::string::String,
 2605   3558   
        ) -> crate::model::ValidationExceptionField {
 2606   3559   
            match self {
 2607         -
            ConstraintViolation::MissingDialog => crate::model::ValidationExceptionField {
 2608         -
                                                message: format!("Value at '{}/dialog' failed to satisfy constraint: Member must not be null", path),
 2609         -
                                                path: path + "/dialog",
 2610         -
                                            },
        3560  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        3561  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        3562  +
            }
        3563  +
        }
        3564  +
    }
        3565  +
        3566  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3567  +
}
        3568  +
pub mod sparse_set_map {
        3569  +
        3570  +
    /* MapConstraintViolationGenerator.kt:82 */
        3571  +
    #[allow(clippy::enum_variant_names)]
        3572  +
    #[derive(Debug, PartialEq)]
        3573  +
    pub enum ConstraintViolation {
        3574  +
        #[doc(hidden)]
        3575  +
        Value(
        3576  +
            ::std::string::String,
        3577  +
            crate::model::string_set::ConstraintViolation,
        3578  +
        ),
        3579  +
    }
        3580  +
        3581  +
    impl ::std::fmt::Display for ConstraintViolation {
        3582  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3583  +
            match self {
        3584  +
                Self::Value(_, value_constraint_violation) => {
        3585  +
                    write!(f, "{}", value_constraint_violation)
        3586  +
                }
        3587  +
            }
 2611   3588   
        }
        3589  +
    }
        3590  +
        3591  +
    impl ::std::error::Error for ConstraintViolation {}
        3592  +
    /* MapConstraintViolationGenerator.kt:111 */
        3593  +
    impl ConstraintViolation {
        3594  +
        pub(crate) fn as_validation_exception_field(
        3595  +
            self,
        3596  +
            path: ::std::string::String,
        3597  +
        ) -> crate::model::ValidationExceptionField {
        3598  +
            match self {
        3599  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        3600  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        3601  +
            }
 2612   3602   
        }
 2613   3603   
    }
 2614         -
    /* ServerBuilderGenerator.kt:244 */
 2615         -
    impl ::std::convert::From<Builder>
 2616         -
        for crate::constrained::MaybeConstrained<crate::model::TopLevel>
 2617         -
    {
 2618         -
        fn from(builder: Builder) -> Self {
 2619         -
            Self::Unconstrained(builder)
        3604  +
        3605  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3606  +
}
        3607  +
pub mod my_union {
        3608  +
        3609  +
    /* RustType.kt:534 */
        3610  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        3611  +
    /* UnconstrainedUnionGenerator.kt:150 */
        3612  +
    #[allow(clippy::enum_variant_names)]
        3613  +
    pub enum ConstraintViolation {
        3614  +
        /* UnconstrainedUnionGenerator.kt:218 */
        3615  +
        EnumValue(crate::model::foo_enum::ConstraintViolation),
        3616  +
        /* UnconstrainedUnionGenerator.kt:150 */
        3617  +
    }
        3618  +
    /* UnconstrainedUnionGenerator.kt:158 */
        3619  +
    impl ::std::fmt::Display for ConstraintViolation {
        3620  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3621  +
            match self {
        3622  +
                Self::EnumValue(inner) => write!(f, "{inner}"),
        3623  +
            }
 2620   3624   
        }
 2621   3625   
    }
 2622         -
    /* ServerBuilderGenerator.kt:446 */
 2623         -
    impl ::std::convert::TryFrom<Builder> for crate::model::TopLevel {
 2624         -
        type Error = ConstraintViolation;
 2625   3626   
 2626         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        3627  +
    impl ::std::error::Error for ConstraintViolation {}
        3628  +
    /* UnconstrainedUnionGenerator.kt:176 */
        3629  +
    impl ConstraintViolation {
        3630  +
        pub(crate) fn as_validation_exception_field(
        3631  +
            self,
        3632  +
            path: ::std::string::String,
        3633  +
        ) -> crate::model::ValidationExceptionField {
        3634  +
            match self {
        3635  +
                Self::EnumValue(inner) => inner.as_validation_exception_field(path + "/enumValue"),
        3636  +
            }
        3637  +
        }
        3638  +
    }
        3639  +
        3640  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3641  +
}
        3642  +
/// /* ServerBuilderGenerator.kt:171 */See [`TestConfig`](crate::model::TestConfig).
        3643  +
pub mod test_config {
        3644  +
        3645  +
    /* ServerBuilderGenerator.kt:461 */
        3646  +
    impl ::std::convert::From<Builder> for crate::model::TestConfig {
        3647  +
        fn from(builder: Builder) -> Self {
 2627   3648   
            builder.build()
 2628   3649   
        }
 2629   3650   
    }
 2630         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`TopLevel`](crate::model::TopLevel).
        3651  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`TestConfig`](crate::model::TestConfig).
 2631   3652   
    /* RustType.kt:534 */
 2632   3653   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2633   3654   
    /* ServerBuilderGenerator.kt:211 */
 2634   3655   
    pub struct Builder {
 2635   3656   
        /* ServerBuilderGenerator.kt:308 */
 2636         -
        pub(crate) dialog: ::std::option::Option<crate::model::Dialog>,
 2637         -
        /* ServerBuilderGenerator.kt:308 */
 2638         -
        pub(crate) dialog_list: ::std::option::Option<::std::vec::Vec<crate::model::Dialog>>,
 2639         -
        /* ServerBuilderGenerator.kt:308 */
 2640         -
        pub(crate) dialog_map: ::std::option::Option<
 2641         -
            ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
 2642         -
        >,
        3657  +
        pub(crate) timeout: ::std::option::Option<i32>,
 2643   3658   
        /* ServerBuilderGenerator.kt:211 */
 2644   3659   
    }
 2645   3660   
    /* ServerBuilderGenerator.kt:215 */
 2646   3661   
    impl Builder {
 2647   3662   
        /* ServerBuilderGenerator.kt:331 */
 2648   3663   
        #[allow(missing_docs)] // documentation missing in model
 2649   3664   
                               /* ServerBuilderGenerator.kt:343 */
 2650         -
        pub fn dialog(mut self, input: crate::model::Dialog) -> Self {
 2651         -
            /* ServerBuilderGenerator.kt:344 */
 2652         -
            self.dialog =
 2653         -
                /* ServerBuilderGenerator.kt:345 */Some(
 2654         -
                    /* ServerBuilderGenerator.kt:376 */input
 2655         -
                /* ServerBuilderGenerator.kt:345 */)
 2656         -
            /* ServerBuilderGenerator.kt:344 */;
 2657         -
            self
 2658         -
            /* ServerBuilderGenerator.kt:343 */
 2659         -
        }
 2660         -
        /* ServerBuilderGenerator.kt:426 */
 2661         -
        #[allow(missing_docs)] // documentation missing in model
 2662         -
                               /* ServerBuilderGenerator.kt:428 */
 2663         -
        pub(crate) fn set_dialog(
 2664         -
            mut self,
 2665         -
            input: impl ::std::convert::Into<crate::model::Dialog>,
 2666         -
        ) -> Self {
 2667         -
            /* ServerBuilderGenerator.kt:429 */
 2668         -
            self.dialog = Some(input.into());
 2669         -
            self
 2670         -
            /* ServerBuilderGenerator.kt:428 */
 2671         -
        }
 2672         -
        /* ServerBuilderGenerator.kt:331 */
 2673         -
        #[allow(missing_docs)] // documentation missing in model
 2674         -
                               /* ServerBuilderGenerator.kt:343 */
 2675         -
        pub fn dialog_list(mut self, input: ::std::vec::Vec<crate::model::Dialog>) -> Self {
 2676         -
            /* ServerBuilderGenerator.kt:344 */
 2677         -
            self.dialog_list =
 2678         -
                /* ServerBuilderGenerator.kt:345 */Some(
 2679         -
                    /* ServerBuilderGenerator.kt:376 */input
 2680         -
                /* ServerBuilderGenerator.kt:345 */)
 2681         -
            /* ServerBuilderGenerator.kt:344 */;
 2682         -
            self
 2683         -
            /* ServerBuilderGenerator.kt:343 */
 2684         -
        }
 2685         -
        /* ServerBuilderGenerator.kt:426 */
 2686         -
        #[allow(missing_docs)] // documentation missing in model
 2687         -
                               /* ServerBuilderGenerator.kt:428 */
 2688         -
        pub(crate) fn set_dialog_list(
 2689         -
            mut self,
 2690         -
            input: impl ::std::convert::Into<::std::vec::Vec<crate::model::Dialog>>,
 2691         -
        ) -> Self {
 2692         -
            /* ServerBuilderGenerator.kt:429 */
 2693         -
            self.dialog_list = Some(input.into());
 2694         -
            self
 2695         -
            /* ServerBuilderGenerator.kt:428 */
 2696         -
        }
 2697         -
        /* ServerBuilderGenerator.kt:331 */
 2698         -
        #[allow(missing_docs)] // documentation missing in model
 2699         -
                               /* ServerBuilderGenerator.kt:343 */
 2700         -
        pub fn dialog_map(
 2701         -
            mut self,
 2702         -
            input: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
 2703         -
        ) -> Self {
        3665  +
        pub fn timeout(mut self, input: ::std::option::Option<i32>) -> Self {
 2704   3666   
            /* ServerBuilderGenerator.kt:344 */
 2705         -
            self.dialog_map =
 2706         -
                /* ServerBuilderGenerator.kt:345 */Some(
 2707         -
                    /* ServerBuilderGenerator.kt:376 */input
 2708         -
                /* ServerBuilderGenerator.kt:345 */)
        3667  +
            self.timeout =
        3668  +
                /* ServerBuilderGenerator.kt:376 */input
 2709   3669   
            /* ServerBuilderGenerator.kt:344 */;
 2710   3670   
            self
 2711   3671   
            /* ServerBuilderGenerator.kt:343 */
 2712   3672   
        }
 2713   3673   
        /* ServerBuilderGenerator.kt:426 */
 2714   3674   
        #[allow(missing_docs)] // documentation missing in model
 2715   3675   
                               /* ServerBuilderGenerator.kt:428 */
 2716         -
        pub(crate) fn set_dialog_map(
 2717         -
            mut self,
 2718         -
            input: impl ::std::convert::Into<
 2719         -
                ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
 2720         -
            >,
 2721         -
        ) -> Self {
        3676  +
        pub(crate) fn set_timeout(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
 2722   3677   
            /* ServerBuilderGenerator.kt:429 */
 2723         -
            self.dialog_map = Some(input.into());
        3678  +
            self.timeout = input.map(|v| v.into());
 2724   3679   
            self
 2725   3680   
            /* ServerBuilderGenerator.kt:428 */
 2726         -
        }
 2727         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`TopLevel`](crate::model::TopLevel).
 2728         -
        /// /* ServerBuilderGenerator.kt:260 */
 2729         -
        /// The builder fails to construct a [`TopLevel`](crate::model::TopLevel) if a [`ConstraintViolation`] occurs.
 2730         -
        ///
 2731         -
        /* ServerBuilderGenerator.kt:271 */
 2732         -
        pub fn build(self) -> Result<crate::model::TopLevel, ConstraintViolation> {
 2733         -
            self.build_enforcing_all_constraints()
 2734         -
        }
 2735         -
        /* ServerBuilderGenerator.kt:283 */
 2736         -
        fn build_enforcing_all_constraints(
 2737         -
            self,
 2738         -
        ) -> Result<crate::model::TopLevel, ConstraintViolation> {
 2739         -
            /* ServerBuilderGenerator.kt:287 */
 2740         -
            Ok(
 2741         -
                /* ServerBuilderGenerator.kt:542 */
 2742         -
                crate::model::TopLevel {
 2743         -
                    /* ServerBuilderGenerator.kt:546 */
 2744         -
                    dialog: self
 2745         -
                        .dialog
 2746         -
                        /* ServerBuilderGenerator.kt:569 */
 2747         -
                        .ok_or(ConstraintViolation::MissingDialog)?,
 2748         -
                    /* ServerBuilderGenerator.kt:546 */
 2749         -
                    dialog_list: self
 2750         -
                        .dialog_list
 2751         -
                        /* ServerBuilderGeneratorCommon.kt:95 */
 2752         -
                        .unwrap_or_default(),
 2753         -
                    /* ServerBuilderGenerator.kt:546 */
 2754         -
                    dialog_map: self
 2755         -
                        .dialog_map
 2756         -
                        /* ServerBuilderGeneratorCommon.kt:95 */
 2757         -
                        .unwrap_or_default(),
 2758         -
                    /* ServerBuilderGenerator.kt:542 */
 2759         -
                }, /* ServerBuilderGenerator.kt:287 */
 2760         -
            )
        3681  +
        }
        3682  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`TestConfig`](crate::model::TestConfig).
        3683  +
        /* ServerBuilderGenerator.kt:271 */
        3684  +
        pub fn build(self) -> crate::model::TestConfig {
        3685  +
            self.build_enforcing_all_constraints()
        3686  +
        }
        3687  +
        /* ServerBuilderGenerator.kt:283 */
        3688  +
        fn build_enforcing_all_constraints(self) -> crate::model::TestConfig {
        3689  +
            /* ServerBuilderGenerator.kt:542 */
        3690  +
            crate::model::TestConfig {
        3691  +
                /* ServerBuilderGenerator.kt:546 */
        3692  +
                timeout: self.timeout,
        3693  +
                /* ServerBuilderGenerator.kt:542 */
        3694  +
            }
 2761   3695   
            /* ServerBuilderGenerator.kt:283 */
 2762   3696   
        }
 2763   3697   
        /* ServerBuilderGenerator.kt:215 */
 2764   3698   
    }
 2765   3699   
 2766   3700   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2767   3701   
}
 2768         -
/// /* ServerBuilderGenerator.kt:171 */See [`ClientOptionalDefaults`](crate::model::ClientOptionalDefaults).
 2769         -
pub mod client_optional_defaults {
        3702  +
/// /* ServerBuilderGenerator.kt:171 */See [`PayloadConfig`](crate::model::PayloadConfig).
        3703  +
pub mod payload_config {
 2770   3704   
 2771   3705   
    /* ServerBuilderGenerator.kt:461 */
 2772         -
    impl ::std::convert::From<Builder> for crate::model::ClientOptionalDefaults {
        3706  +
    impl ::std::convert::From<Builder> for crate::model::PayloadConfig {
 2773   3707   
        fn from(builder: Builder) -> Self {
 2774   3708   
            builder.build()
 2775   3709   
        }
 2776   3710   
    }
 2777         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ClientOptionalDefaults`](crate::model::ClientOptionalDefaults).
        3711  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`PayloadConfig`](crate::model::PayloadConfig).
 2778   3712   
    /* RustType.kt:534 */
 2779   3713   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2780   3714   
    /* ServerBuilderGenerator.kt:211 */
 2781   3715   
    pub struct Builder {
 2782   3716   
        /* ServerBuilderGenerator.kt:308 */
 2783         -
        pub(crate) member: ::std::option::Option<i32>,
        3717  +
        pub(crate) data: ::std::option::Option<i32>,
 2784   3718   
        /* ServerBuilderGenerator.kt:211 */
 2785   3719   
    }
 2786   3720   
    /* ServerBuilderGenerator.kt:215 */
 2787   3721   
    impl Builder {
 2788   3722   
        /* ServerBuilderGenerator.kt:331 */
 2789   3723   
        #[allow(missing_docs)] // documentation missing in model
 2790   3724   
                               /* ServerBuilderGenerator.kt:343 */
 2791         -
        pub fn member(mut self, input: i32) -> Self {
        3725  +
        pub fn data(mut self, input: ::std::option::Option<i32>) -> Self {
 2792   3726   
            /* ServerBuilderGenerator.kt:344 */
 2793         -
            self.member =
 2794         -
                /* ServerBuilderGenerator.kt:345 */Some(
 2795         -
                    /* ServerBuilderGenerator.kt:376 */input
 2796         -
                /* ServerBuilderGenerator.kt:345 */)
        3727  +
            self.data =
        3728  +
                /* ServerBuilderGenerator.kt:376 */input
 2797   3729   
            /* ServerBuilderGenerator.kt:344 */;
 2798   3730   
            self
 2799   3731   
            /* ServerBuilderGenerator.kt:343 */
 2800   3732   
        }
 2801   3733   
        /* ServerBuilderGenerator.kt:426 */
 2802   3734   
        #[allow(missing_docs)] // documentation missing in model
 2803   3735   
                               /* ServerBuilderGenerator.kt:428 */
 2804         -
        pub(crate) fn set_member(mut self, input: impl ::std::convert::Into<i32>) -> Self {
        3736  +
        pub(crate) fn set_data(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
 2805   3737   
            /* ServerBuilderGenerator.kt:429 */
 2806         -
            self.member = Some(input.into());
        3738  +
            self.data = input.map(|v| v.into());
 2807   3739   
            self
 2808   3740   
            /* ServerBuilderGenerator.kt:428 */
 2809   3741   
        }
 2810         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ClientOptionalDefaults`](crate::model::ClientOptionalDefaults).
        3742  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`PayloadConfig`](crate::model::PayloadConfig).
 2811   3743   
        /* ServerBuilderGenerator.kt:271 */
 2812         -
        pub fn build(self) -> crate::model::ClientOptionalDefaults {
        3744  +
        pub fn build(self) -> crate::model::PayloadConfig {
 2813   3745   
            self.build_enforcing_all_constraints()
 2814   3746   
        }
 2815   3747   
        /* ServerBuilderGenerator.kt:283 */
 2816         -
        fn build_enforcing_all_constraints(self) -> crate::model::ClientOptionalDefaults {
        3748  +
        fn build_enforcing_all_constraints(self) -> crate::model::PayloadConfig {
 2817   3749   
            /* ServerBuilderGenerator.kt:542 */
 2818         -
            crate::model::ClientOptionalDefaults {
        3750  +
            crate::model::PayloadConfig {
 2819   3751   
                /* ServerBuilderGenerator.kt:546 */
 2820         -
                member: self
 2821         -
                    .member
 2822         -
                    /* ServerBuilderGeneratorCommon.kt:125 */
 2823         -
                    .unwrap_or(0i32),
        3752  +
                data: self.data,
 2824   3753   
                /* ServerBuilderGenerator.kt:542 */
 2825   3754   
            }
 2826   3755   
            /* ServerBuilderGenerator.kt:283 */
 2827   3756   
        }
 2828   3757   
        /* ServerBuilderGenerator.kt:215 */
 2829   3758   
    }
 2830   3759   
 2831   3760   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2832   3761   
}
 2833   3762   
/// /* ServerBuilderGenerator.kt:171 */See [`Defaults`](crate::model::Defaults).
@@ -3113,4042 +4083,5455 @@
 3133   4062   
            /* ServerBuilderGenerator.kt:428 */
 3134   4063   
        }
 3135   4064   
        /* ServerBuilderGenerator.kt:331 */
 3136   4065   
        #[allow(missing_docs)] // documentation missing in model
 3137   4066   
                               /* ServerBuilderGenerator.kt:343 */
 3138   4067   
        pub fn default_null_document(
 3139   4068   
            mut self,
 3140   4069   
            input: ::std::option::Option<::aws_smithy_types::Document>,
 3141   4070   
        ) -> Self {
 3142   4071   
            /* ServerBuilderGenerator.kt:344 */
 3143         -
            self.default_null_document =
 3144         -
                /* ServerBuilderGenerator.kt:376 */input
        4072  +
            self.default_null_document =
        4073  +
                /* ServerBuilderGenerator.kt:376 */input
        4074  +
            /* ServerBuilderGenerator.kt:344 */;
        4075  +
            self
        4076  +
            /* ServerBuilderGenerator.kt:343 */
        4077  +
        }
        4078  +
        /* ServerBuilderGenerator.kt:426 */
        4079  +
        #[allow(missing_docs)] // documentation missing in model
        4080  +
                               /* ServerBuilderGenerator.kt:428 */
        4081  +
        pub(crate) fn set_default_null_document(
        4082  +
            mut self,
        4083  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Document>>,
        4084  +
        ) -> Self {
        4085  +
            /* ServerBuilderGenerator.kt:429 */
        4086  +
            self.default_null_document = input.map(|v| v.into());
        4087  +
            self
        4088  +
            /* ServerBuilderGenerator.kt:428 */
        4089  +
        }
        4090  +
        /* ServerBuilderGenerator.kt:331 */
        4091  +
        #[allow(missing_docs)] // documentation missing in model
        4092  +
                               /* ServerBuilderGenerator.kt:343 */
        4093  +
        pub fn default_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        4094  +
            /* ServerBuilderGenerator.kt:344 */
        4095  +
            self.default_timestamp =
        4096  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4097  +
                    /* ServerBuilderGenerator.kt:376 */input
        4098  +
                /* ServerBuilderGenerator.kt:345 */)
        4099  +
            /* ServerBuilderGenerator.kt:344 */;
        4100  +
            self
        4101  +
            /* ServerBuilderGenerator.kt:343 */
        4102  +
        }
        4103  +
        /* ServerBuilderGenerator.kt:426 */
        4104  +
        #[allow(missing_docs)] // documentation missing in model
        4105  +
                               /* ServerBuilderGenerator.kt:428 */
        4106  +
        pub(crate) fn set_default_timestamp(
        4107  +
            mut self,
        4108  +
            input: impl ::std::convert::Into<::aws_smithy_types::DateTime>,
        4109  +
        ) -> Self {
        4110  +
            /* ServerBuilderGenerator.kt:429 */
        4111  +
            self.default_timestamp = Some(input.into());
        4112  +
            self
        4113  +
            /* ServerBuilderGenerator.kt:428 */
        4114  +
        }
        4115  +
        /* ServerBuilderGenerator.kt:331 */
        4116  +
        #[allow(missing_docs)] // documentation missing in model
        4117  +
                               /* ServerBuilderGenerator.kt:343 */
        4118  +
        pub fn default_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
        4119  +
            /* ServerBuilderGenerator.kt:344 */
        4120  +
            self.default_blob =
        4121  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4122  +
                    /* ServerBuilderGenerator.kt:376 */input
        4123  +
                /* ServerBuilderGenerator.kt:345 */)
        4124  +
            /* ServerBuilderGenerator.kt:344 */;
        4125  +
            self
        4126  +
            /* ServerBuilderGenerator.kt:343 */
        4127  +
        }
        4128  +
        /* ServerBuilderGenerator.kt:426 */
        4129  +
        #[allow(missing_docs)] // documentation missing in model
        4130  +
                               /* ServerBuilderGenerator.kt:428 */
        4131  +
        pub(crate) fn set_default_blob(
        4132  +
            mut self,
        4133  +
            input: impl ::std::convert::Into<::aws_smithy_types::Blob>,
        4134  +
        ) -> Self {
        4135  +
            /* ServerBuilderGenerator.kt:429 */
        4136  +
            self.default_blob = Some(input.into());
        4137  +
            self
        4138  +
            /* ServerBuilderGenerator.kt:428 */
        4139  +
        }
        4140  +
        /* ServerBuilderGenerator.kt:331 */
        4141  +
        #[allow(missing_docs)] // documentation missing in model
        4142  +
                               /* ServerBuilderGenerator.kt:343 */
        4143  +
        pub fn default_byte(mut self, input: i8) -> Self {
        4144  +
            /* ServerBuilderGenerator.kt:344 */
        4145  +
            self.default_byte =
        4146  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4147  +
                    /* ServerBuilderGenerator.kt:376 */input
        4148  +
                /* ServerBuilderGenerator.kt:345 */)
        4149  +
            /* ServerBuilderGenerator.kt:344 */;
        4150  +
            self
        4151  +
            /* ServerBuilderGenerator.kt:343 */
        4152  +
        }
        4153  +
        /* ServerBuilderGenerator.kt:426 */
        4154  +
        #[allow(missing_docs)] // documentation missing in model
        4155  +
                               /* ServerBuilderGenerator.kt:428 */
        4156  +
        pub(crate) fn set_default_byte(mut self, input: impl ::std::convert::Into<i8>) -> Self {
        4157  +
            /* ServerBuilderGenerator.kt:429 */
        4158  +
            self.default_byte = Some(input.into());
        4159  +
            self
        4160  +
            /* ServerBuilderGenerator.kt:428 */
        4161  +
        }
        4162  +
        /* ServerBuilderGenerator.kt:331 */
        4163  +
        #[allow(missing_docs)] // documentation missing in model
        4164  +
                               /* ServerBuilderGenerator.kt:343 */
        4165  +
        pub fn default_short(mut self, input: i16) -> Self {
        4166  +
            /* ServerBuilderGenerator.kt:344 */
        4167  +
            self.default_short =
        4168  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4169  +
                    /* ServerBuilderGenerator.kt:376 */input
        4170  +
                /* ServerBuilderGenerator.kt:345 */)
        4171  +
            /* ServerBuilderGenerator.kt:344 */;
        4172  +
            self
        4173  +
            /* ServerBuilderGenerator.kt:343 */
        4174  +
        }
        4175  +
        /* ServerBuilderGenerator.kt:426 */
        4176  +
        #[allow(missing_docs)] // documentation missing in model
        4177  +
                               /* ServerBuilderGenerator.kt:428 */
        4178  +
        pub(crate) fn set_default_short(mut self, input: impl ::std::convert::Into<i16>) -> Self {
        4179  +
            /* ServerBuilderGenerator.kt:429 */
        4180  +
            self.default_short = Some(input.into());
        4181  +
            self
        4182  +
            /* ServerBuilderGenerator.kt:428 */
        4183  +
        }
        4184  +
        /* ServerBuilderGenerator.kt:331 */
        4185  +
        #[allow(missing_docs)] // documentation missing in model
        4186  +
                               /* ServerBuilderGenerator.kt:343 */
        4187  +
        pub fn default_integer(mut self, input: i32) -> Self {
        4188  +
            /* ServerBuilderGenerator.kt:344 */
        4189  +
            self.default_integer =
        4190  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4191  +
                    /* ServerBuilderGenerator.kt:376 */input
        4192  +
                /* ServerBuilderGenerator.kt:345 */)
        4193  +
            /* ServerBuilderGenerator.kt:344 */;
        4194  +
            self
        4195  +
            /* ServerBuilderGenerator.kt:343 */
        4196  +
        }
        4197  +
        /* ServerBuilderGenerator.kt:426 */
        4198  +
        #[allow(missing_docs)] // documentation missing in model
        4199  +
                               /* ServerBuilderGenerator.kt:428 */
        4200  +
        pub(crate) fn set_default_integer(mut self, input: impl ::std::convert::Into<i32>) -> Self {
        4201  +
            /* ServerBuilderGenerator.kt:429 */
        4202  +
            self.default_integer = Some(input.into());
        4203  +
            self
        4204  +
            /* ServerBuilderGenerator.kt:428 */
        4205  +
        }
        4206  +
        /* ServerBuilderGenerator.kt:331 */
        4207  +
        #[allow(missing_docs)] // documentation missing in model
        4208  +
                               /* ServerBuilderGenerator.kt:343 */
        4209  +
        pub fn default_long(mut self, input: i64) -> Self {
        4210  +
            /* ServerBuilderGenerator.kt:344 */
        4211  +
            self.default_long =
        4212  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4213  +
                    /* ServerBuilderGenerator.kt:376 */input
        4214  +
                /* ServerBuilderGenerator.kt:345 */)
        4215  +
            /* ServerBuilderGenerator.kt:344 */;
        4216  +
            self
        4217  +
            /* ServerBuilderGenerator.kt:343 */
        4218  +
        }
        4219  +
        /* ServerBuilderGenerator.kt:426 */
        4220  +
        #[allow(missing_docs)] // documentation missing in model
        4221  +
                               /* ServerBuilderGenerator.kt:428 */
        4222  +
        pub(crate) fn set_default_long(mut self, input: impl ::std::convert::Into<i64>) -> Self {
        4223  +
            /* ServerBuilderGenerator.kt:429 */
        4224  +
            self.default_long = Some(input.into());
        4225  +
            self
        4226  +
            /* ServerBuilderGenerator.kt:428 */
        4227  +
        }
        4228  +
        /* ServerBuilderGenerator.kt:331 */
        4229  +
        #[allow(missing_docs)] // documentation missing in model
        4230  +
                               /* ServerBuilderGenerator.kt:343 */
        4231  +
        pub fn default_float(mut self, input: f32) -> Self {
        4232  +
            /* ServerBuilderGenerator.kt:344 */
        4233  +
            self.default_float =
        4234  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4235  +
                    /* ServerBuilderGenerator.kt:376 */input
        4236  +
                /* ServerBuilderGenerator.kt:345 */)
        4237  +
            /* ServerBuilderGenerator.kt:344 */;
        4238  +
            self
        4239  +
            /* ServerBuilderGenerator.kt:343 */
        4240  +
        }
        4241  +
        /* ServerBuilderGenerator.kt:426 */
        4242  +
        #[allow(missing_docs)] // documentation missing in model
        4243  +
                               /* ServerBuilderGenerator.kt:428 */
        4244  +
        pub(crate) fn set_default_float(mut self, input: impl ::std::convert::Into<f32>) -> Self {
        4245  +
            /* ServerBuilderGenerator.kt:429 */
        4246  +
            self.default_float = Some(input.into());
        4247  +
            self
        4248  +
            /* ServerBuilderGenerator.kt:428 */
        4249  +
        }
        4250  +
        /* ServerBuilderGenerator.kt:331 */
        4251  +
        #[allow(missing_docs)] // documentation missing in model
        4252  +
                               /* ServerBuilderGenerator.kt:343 */
        4253  +
        pub fn default_double(mut self, input: f64) -> Self {
        4254  +
            /* ServerBuilderGenerator.kt:344 */
        4255  +
            self.default_double =
        4256  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4257  +
                    /* ServerBuilderGenerator.kt:376 */input
        4258  +
                /* ServerBuilderGenerator.kt:345 */)
        4259  +
            /* ServerBuilderGenerator.kt:344 */;
        4260  +
            self
        4261  +
            /* ServerBuilderGenerator.kt:343 */
        4262  +
        }
        4263  +
        /* ServerBuilderGenerator.kt:426 */
        4264  +
        #[allow(missing_docs)] // documentation missing in model
        4265  +
                               /* ServerBuilderGenerator.kt:428 */
        4266  +
        pub(crate) fn set_default_double(mut self, input: impl ::std::convert::Into<f64>) -> Self {
        4267  +
            /* ServerBuilderGenerator.kt:429 */
        4268  +
            self.default_double = Some(input.into());
        4269  +
            self
        4270  +
            /* ServerBuilderGenerator.kt:428 */
        4271  +
        }
        4272  +
        /* ServerBuilderGenerator.kt:331 */
        4273  +
        #[allow(missing_docs)] // documentation missing in model
        4274  +
                               /* ServerBuilderGenerator.kt:343 */
        4275  +
        pub fn default_map(
        4276  +
            mut self,
        4277  +
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        4278  +
        ) -> Self {
        4279  +
            /* ServerBuilderGenerator.kt:344 */
        4280  +
            self.default_map =
        4281  +
                /* ServerBuilderGenerator.kt:345 */Some(
        4282  +
                    /* ServerBuilderGenerator.kt:376 */input
        4283  +
                /* ServerBuilderGenerator.kt:345 */)
 3145   4284   
            /* ServerBuilderGenerator.kt:344 */;
 3146   4285   
            self
 3147   4286   
            /* ServerBuilderGenerator.kt:343 */
 3148   4287   
        }
 3149   4288   
        /* ServerBuilderGenerator.kt:426 */
 3150   4289   
        #[allow(missing_docs)] // documentation missing in model
 3151   4290   
                               /* ServerBuilderGenerator.kt:428 */
 3152         -
        pub(crate) fn set_default_null_document(
        4291  +
        pub(crate) fn set_default_map(
 3153   4292   
            mut self,
 3154         -
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Document>>,
        4293  +
            input: impl ::std::convert::Into<
        4294  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        4295  +
            >,
 3155   4296   
        ) -> Self {
 3156   4297   
            /* ServerBuilderGenerator.kt:429 */
 3157         -
            self.default_null_document = input.map(|v| v.into());
        4298  +
            self.default_map = Some(input.into());
 3158   4299   
            self
 3159   4300   
            /* ServerBuilderGenerator.kt:428 */
 3160   4301   
        }
 3161   4302   
        /* ServerBuilderGenerator.kt:331 */
 3162   4303   
        #[allow(missing_docs)] // documentation missing in model
 3163   4304   
                               /* ServerBuilderGenerator.kt:343 */
 3164         -
        pub fn default_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        4305  +
        pub fn default_enum(mut self, input: crate::model::TestEnum) -> Self {
 3165   4306   
            /* ServerBuilderGenerator.kt:344 */
 3166         -
            self.default_timestamp =
        4307  +
            self.default_enum =
 3167   4308   
                /* ServerBuilderGenerator.kt:345 */Some(
 3168         -
                    /* ServerBuilderGenerator.kt:376 */input
        4309  +
                    /* ServerBuilderGenerator.kt:372 */crate::constrained::MaybeConstrained::Constrained(input)
 3169   4310   
                /* ServerBuilderGenerator.kt:345 */)
 3170   4311   
            /* ServerBuilderGenerator.kt:344 */;
 3171   4312   
            self
 3172   4313   
            /* ServerBuilderGenerator.kt:343 */
 3173   4314   
        }
 3174   4315   
        /* ServerBuilderGenerator.kt:426 */
 3175   4316   
        #[allow(missing_docs)] // documentation missing in model
 3176   4317   
                               /* ServerBuilderGenerator.kt:428 */
 3177         -
        pub(crate) fn set_default_timestamp(
        4318  +
        pub(crate) fn set_default_enum(
 3178   4319   
            mut self,
 3179         -
            input: impl ::std::convert::Into<::aws_smithy_types::DateTime>,
        4320  +
            input: impl ::std::convert::Into<
        4321  +
                crate::constrained::MaybeConstrained<crate::model::TestEnum>,
        4322  +
            >,
 3180   4323   
        ) -> Self {
 3181   4324   
            /* ServerBuilderGenerator.kt:429 */
 3182         -
            self.default_timestamp = Some(input.into());
        4325  +
            self.default_enum = Some(input.into());
 3183   4326   
            self
 3184   4327   
            /* ServerBuilderGenerator.kt:428 */
 3185   4328   
        }
 3186   4329   
        /* ServerBuilderGenerator.kt:331 */
 3187   4330   
        #[allow(missing_docs)] // documentation missing in model
 3188   4331   
                               /* ServerBuilderGenerator.kt:343 */
 3189         -
        pub fn default_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
        4332  +
        pub fn default_int_enum(mut self, input: i32) -> Self {
 3190   4333   
            /* ServerBuilderGenerator.kt:344 */
 3191         -
            self.default_blob =
        4334  +
            self.default_int_enum =
 3192   4335   
                /* ServerBuilderGenerator.kt:345 */Some(
 3193   4336   
                    /* ServerBuilderGenerator.kt:376 */input
 3194   4337   
                /* ServerBuilderGenerator.kt:345 */)
 3195   4338   
            /* ServerBuilderGenerator.kt:344 */;
 3196   4339   
            self
 3197   4340   
            /* ServerBuilderGenerator.kt:343 */
 3198   4341   
        }
 3199   4342   
        /* ServerBuilderGenerator.kt:426 */
 3200   4343   
        #[allow(missing_docs)] // documentation missing in model
 3201   4344   
                               /* ServerBuilderGenerator.kt:428 */
 3202         -
        pub(crate) fn set_default_blob(
        4345  +
        pub(crate) fn set_default_int_enum(
 3203   4346   
            mut self,
 3204         -
            input: impl ::std::convert::Into<::aws_smithy_types::Blob>,
        4347  +
            input: impl ::std::convert::Into<i32>,
 3205   4348   
        ) -> Self {
 3206   4349   
            /* ServerBuilderGenerator.kt:429 */
 3207         -
            self.default_blob = Some(input.into());
        4350  +
            self.default_int_enum = Some(input.into());
 3208   4351   
            self
 3209   4352   
            /* ServerBuilderGenerator.kt:428 */
 3210   4353   
        }
 3211   4354   
        /* ServerBuilderGenerator.kt:331 */
 3212   4355   
        #[allow(missing_docs)] // documentation missing in model
 3213   4356   
                               /* ServerBuilderGenerator.kt:343 */
 3214         -
        pub fn default_byte(mut self, input: i8) -> Self {
        4357  +
        pub fn empty_string(mut self, input: ::std::string::String) -> Self {
 3215   4358   
            /* ServerBuilderGenerator.kt:344 */
 3216         -
            self.default_byte =
        4359  +
            self.empty_string =
 3217   4360   
                /* ServerBuilderGenerator.kt:345 */Some(
 3218   4361   
                    /* ServerBuilderGenerator.kt:376 */input
 3219   4362   
                /* ServerBuilderGenerator.kt:345 */)
 3220   4363   
            /* ServerBuilderGenerator.kt:344 */;
 3221   4364   
            self
 3222   4365   
            /* ServerBuilderGenerator.kt:343 */
 3223   4366   
        }
 3224   4367   
        /* ServerBuilderGenerator.kt:426 */
 3225   4368   
        #[allow(missing_docs)] // documentation missing in model
 3226   4369   
                               /* ServerBuilderGenerator.kt:428 */
 3227         -
        pub(crate) fn set_default_byte(mut self, input: impl ::std::convert::Into<i8>) -> Self {
        4370  +
        pub(crate) fn set_empty_string(
        4371  +
            mut self,
        4372  +
            input: impl ::std::convert::Into<::std::string::String>,
        4373  +
        ) -> Self {
 3228   4374   
            /* ServerBuilderGenerator.kt:429 */
 3229         -
            self.default_byte = Some(input.into());
        4375  +
            self.empty_string = Some(input.into());
 3230   4376   
            self
 3231   4377   
            /* ServerBuilderGenerator.kt:428 */
 3232   4378   
        }
 3233   4379   
        /* ServerBuilderGenerator.kt:331 */
 3234   4380   
        #[allow(missing_docs)] // documentation missing in model
 3235   4381   
                               /* ServerBuilderGenerator.kt:343 */
 3236         -
        pub fn default_short(mut self, input: i16) -> Self {
        4382  +
        pub fn false_boolean(mut self, input: bool) -> Self {
 3237   4383   
            /* ServerBuilderGenerator.kt:344 */
 3238         -
            self.default_short =
        4384  +
            self.false_boolean =
 3239   4385   
                /* ServerBuilderGenerator.kt:345 */Some(
 3240   4386   
                    /* ServerBuilderGenerator.kt:376 */input
 3241   4387   
                /* ServerBuilderGenerator.kt:345 */)
 3242   4388   
            /* ServerBuilderGenerator.kt:344 */;
 3243   4389   
            self
 3244   4390   
            /* ServerBuilderGenerator.kt:343 */
 3245   4391   
        }
 3246   4392   
        /* ServerBuilderGenerator.kt:426 */
 3247   4393   
        #[allow(missing_docs)] // documentation missing in model
 3248   4394   
                               /* ServerBuilderGenerator.kt:428 */
 3249         -
        pub(crate) fn set_default_short(mut self, input: impl ::std::convert::Into<i16>) -> Self {
        4395  +
        pub(crate) fn set_false_boolean(mut self, input: impl ::std::convert::Into<bool>) -> Self {
 3250   4396   
            /* ServerBuilderGenerator.kt:429 */
 3251         -
            self.default_short = Some(input.into());
        4397  +
            self.false_boolean = Some(input.into());
 3252   4398   
            self
 3253   4399   
            /* ServerBuilderGenerator.kt:428 */
 3254   4400   
        }
 3255   4401   
        /* ServerBuilderGenerator.kt:331 */
 3256   4402   
        #[allow(missing_docs)] // documentation missing in model
 3257   4403   
                               /* ServerBuilderGenerator.kt:343 */
 3258         -
        pub fn default_integer(mut self, input: i32) -> Self {
        4404  +
        pub fn empty_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
 3259   4405   
            /* ServerBuilderGenerator.kt:344 */
 3260         -
            self.default_integer =
        4406  +
            self.empty_blob =
 3261   4407   
                /* ServerBuilderGenerator.kt:345 */Some(
 3262   4408   
                    /* ServerBuilderGenerator.kt:376 */input
 3263   4409   
                /* ServerBuilderGenerator.kt:345 */)
 3264   4410   
            /* ServerBuilderGenerator.kt:344 */;
 3265   4411   
            self
 3266   4412   
            /* ServerBuilderGenerator.kt:343 */
 3267   4413   
        }
 3268   4414   
        /* ServerBuilderGenerator.kt:426 */
 3269   4415   
        #[allow(missing_docs)] // documentation missing in model
 3270   4416   
                               /* ServerBuilderGenerator.kt:428 */
 3271         -
        pub(crate) fn set_default_integer(mut self, input: impl ::std::convert::Into<i32>) -> Self {
        4417  +
        pub(crate) fn set_empty_blob(
        4418  +
            mut self,
        4419  +
            input: impl ::std::convert::Into<::aws_smithy_types::Blob>,
        4420  +
        ) -> Self {
 3272   4421   
            /* ServerBuilderGenerator.kt:429 */
 3273         -
            self.default_integer = Some(input.into());
        4422  +
            self.empty_blob = Some(input.into());
 3274   4423   
            self
 3275   4424   
            /* ServerBuilderGenerator.kt:428 */
 3276   4425   
        }
 3277   4426   
        /* ServerBuilderGenerator.kt:331 */
 3278   4427   
        #[allow(missing_docs)] // documentation missing in model
 3279   4428   
                               /* ServerBuilderGenerator.kt:343 */
 3280         -
        pub fn default_long(mut self, input: i64) -> Self {
        4429  +
        pub fn zero_byte(mut self, input: i8) -> Self {
 3281   4430   
            /* ServerBuilderGenerator.kt:344 */
 3282         -
            self.default_long =
        4431  +
            self.zero_byte =
 3283   4432   
                /* ServerBuilderGenerator.kt:345 */Some(
 3284   4433   
                    /* ServerBuilderGenerator.kt:376 */input
 3285   4434   
                /* ServerBuilderGenerator.kt:345 */)
 3286   4435   
            /* ServerBuilderGenerator.kt:344 */;
 3287   4436   
            self
 3288   4437   
            /* ServerBuilderGenerator.kt:343 */
 3289   4438   
        }
 3290   4439   
        /* ServerBuilderGenerator.kt:426 */
 3291   4440   
        #[allow(missing_docs)] // documentation missing in model
 3292   4441   
                               /* ServerBuilderGenerator.kt:428 */
 3293         -
        pub(crate) fn set_default_long(mut self, input: impl ::std::convert::Into<i64>) -> Self {
        4442  +
        pub(crate) fn set_zero_byte(mut self, input: impl ::std::convert::Into<i8>) -> Self {
 3294   4443   
            /* ServerBuilderGenerator.kt:429 */
 3295         -
            self.default_long = Some(input.into());
        4444  +
            self.zero_byte = Some(input.into());
 3296   4445   
            self
 3297   4446   
            /* ServerBuilderGenerator.kt:428 */
 3298   4447   
        }
 3299   4448   
        /* ServerBuilderGenerator.kt:331 */
 3300   4449   
        #[allow(missing_docs)] // documentation missing in model
 3301   4450   
                               /* ServerBuilderGenerator.kt:343 */
 3302         -
        pub fn default_float(mut self, input: f32) -> Self {
        4451  +
        pub fn zero_short(mut self, input: i16) -> Self {
 3303   4452   
            /* ServerBuilderGenerator.kt:344 */
 3304         -
            self.default_float =
        4453  +
            self.zero_short =
 3305   4454   
                /* ServerBuilderGenerator.kt:345 */Some(
 3306   4455   
                    /* ServerBuilderGenerator.kt:376 */input
 3307   4456   
                /* ServerBuilderGenerator.kt:345 */)
 3308   4457   
            /* ServerBuilderGenerator.kt:344 */;
 3309   4458   
            self
 3310   4459   
            /* ServerBuilderGenerator.kt:343 */
 3311   4460   
        }
 3312   4461   
        /* ServerBuilderGenerator.kt:426 */
 3313   4462   
        #[allow(missing_docs)] // documentation missing in model
 3314   4463   
                               /* ServerBuilderGenerator.kt:428 */
 3315         -
        pub(crate) fn set_default_float(mut self, input: impl ::std::convert::Into<f32>) -> Self {
        4464  +
        pub(crate) fn set_zero_short(mut self, input: impl ::std::convert::Into<i16>) -> Self {
 3316   4465   
            /* ServerBuilderGenerator.kt:429 */
 3317         -
            self.default_float = Some(input.into());
        4466  +
            self.zero_short = Some(input.into());
 3318   4467   
            self
 3319   4468   
            /* ServerBuilderGenerator.kt:428 */
 3320   4469   
        }
 3321   4470   
        /* ServerBuilderGenerator.kt:331 */
 3322   4471   
        #[allow(missing_docs)] // documentation missing in model
 3323   4472   
                               /* ServerBuilderGenerator.kt:343 */
 3324         -
        pub fn default_double(mut self, input: f64) -> Self {
        4473  +
        pub fn zero_integer(mut self, input: i32) -> Self {
 3325   4474   
            /* ServerBuilderGenerator.kt:344 */
 3326         -
            self.default_double =
        4475  +
            self.zero_integer =
 3327   4476   
                /* ServerBuilderGenerator.kt:345 */Some(
 3328   4477   
                    /* ServerBuilderGenerator.kt:376 */input
 3329   4478   
                /* ServerBuilderGenerator.kt:345 */)
 3330   4479   
            /* ServerBuilderGenerator.kt:344 */;
 3331   4480   
            self
 3332   4481   
            /* ServerBuilderGenerator.kt:343 */
 3333   4482   
        }
 3334   4483   
        /* ServerBuilderGenerator.kt:426 */
 3335   4484   
        #[allow(missing_docs)] // documentation missing in model
 3336   4485   
                               /* ServerBuilderGenerator.kt:428 */
 3337         -
        pub(crate) fn set_default_double(mut self, input: impl ::std::convert::Into<f64>) -> Self {
        4486  +
        pub(crate) fn set_zero_integer(mut self, input: impl ::std::convert::Into<i32>) -> Self {
 3338   4487   
            /* ServerBuilderGenerator.kt:429 */
 3339         -
            self.default_double = Some(input.into());
        4488  +
            self.zero_integer = Some(input.into());
 3340   4489   
            self
 3341   4490   
            /* ServerBuilderGenerator.kt:428 */
 3342   4491   
        }
 3343   4492   
        /* ServerBuilderGenerator.kt:331 */
 3344   4493   
        #[allow(missing_docs)] // documentation missing in model
 3345   4494   
                               /* ServerBuilderGenerator.kt:343 */
 3346         -
        pub fn default_map(
 3347         -
            mut self,
 3348         -
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 3349         -
        ) -> Self {
        4495  +
        pub fn zero_long(mut self, input: i64) -> Self {
 3350   4496   
            /* ServerBuilderGenerator.kt:344 */
 3351         -
            self.default_map =
        4497  +
            self.zero_long =
 3352   4498   
                /* ServerBuilderGenerator.kt:345 */Some(
 3353   4499   
                    /* ServerBuilderGenerator.kt:376 */input
 3354   4500   
                /* ServerBuilderGenerator.kt:345 */)
 3355   4501   
            /* ServerBuilderGenerator.kt:344 */;
 3356   4502   
            self
 3357   4503   
            /* ServerBuilderGenerator.kt:343 */
 3358   4504   
        }
 3359   4505   
        /* ServerBuilderGenerator.kt:426 */
 3360   4506   
        #[allow(missing_docs)] // documentation missing in model
 3361   4507   
                               /* ServerBuilderGenerator.kt:428 */
 3362         -
        pub(crate) fn set_default_map(
 3363         -
            mut self,
 3364         -
            input: impl ::std::convert::Into<
 3365         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 3366         -
            >,
 3367         -
        ) -> Self {
        4508  +
        pub(crate) fn set_zero_long(mut self, input: impl ::std::convert::Into<i64>) -> Self {
 3368   4509   
            /* ServerBuilderGenerator.kt:429 */
 3369         -
            self.default_map = Some(input.into());
        4510  +
            self.zero_long = Some(input.into());
 3370   4511   
            self
 3371   4512   
            /* ServerBuilderGenerator.kt:428 */
 3372   4513   
        }
 3373   4514   
        /* ServerBuilderGenerator.kt:331 */
 3374   4515   
        #[allow(missing_docs)] // documentation missing in model
 3375   4516   
                               /* ServerBuilderGenerator.kt:343 */
 3376         -
        pub fn default_enum(mut self, input: crate::model::TestEnum) -> Self {
        4517  +
        pub fn zero_float(mut self, input: f32) -> Self {
 3377   4518   
            /* ServerBuilderGenerator.kt:344 */
 3378         -
            self.default_enum =
        4519  +
            self.zero_float =
 3379   4520   
                /* ServerBuilderGenerator.kt:345 */Some(
 3380         -
                    /* ServerBuilderGenerator.kt:372 */crate::constrained::MaybeConstrained::Constrained(input)
        4521  +
                    /* ServerBuilderGenerator.kt:376 */input
 3381   4522   
                /* ServerBuilderGenerator.kt:345 */)
 3382   4523   
            /* ServerBuilderGenerator.kt:344 */;
 3383   4524   
            self
 3384   4525   
            /* ServerBuilderGenerator.kt:343 */
 3385   4526   
        }
 3386   4527   
        /* ServerBuilderGenerator.kt:426 */
 3387   4528   
        #[allow(missing_docs)] // documentation missing in model
 3388   4529   
                               /* ServerBuilderGenerator.kt:428 */
 3389         -
        pub(crate) fn set_default_enum(
 3390         -
            mut self,
 3391         -
            input: impl ::std::convert::Into<
 3392         -
                crate::constrained::MaybeConstrained<crate::model::TestEnum>,
 3393         -
            >,
 3394         -
        ) -> Self {
        4530  +
        pub(crate) fn set_zero_float(mut self, input: impl ::std::convert::Into<f32>) -> Self {
 3395   4531   
            /* ServerBuilderGenerator.kt:429 */
 3396         -
            self.default_enum = Some(input.into());
        4532  +
            self.zero_float = Some(input.into());
 3397   4533   
            self
 3398   4534   
            /* ServerBuilderGenerator.kt:428 */
 3399   4535   
        }
 3400   4536   
        /* ServerBuilderGenerator.kt:331 */
 3401   4537   
        #[allow(missing_docs)] // documentation missing in model
 3402   4538   
                               /* ServerBuilderGenerator.kt:343 */
 3403         -
        pub fn default_int_enum(mut self, input: i32) -> Self {
        4539  +
        pub fn zero_double(mut self, input: f64) -> Self {
 3404   4540   
            /* ServerBuilderGenerator.kt:344 */
 3405         -
            self.default_int_enum =
        4541  +
            self.zero_double =
 3406   4542   
                /* ServerBuilderGenerator.kt:345 */Some(
 3407   4543   
                    /* ServerBuilderGenerator.kt:376 */input
 3408   4544   
                /* ServerBuilderGenerator.kt:345 */)
 3409   4545   
            /* ServerBuilderGenerator.kt:344 */;
 3410   4546   
            self
 3411   4547   
            /* ServerBuilderGenerator.kt:343 */
 3412   4548   
        }
 3413   4549   
        /* ServerBuilderGenerator.kt:426 */
 3414   4550   
        #[allow(missing_docs)] // documentation missing in model
 3415   4551   
                               /* ServerBuilderGenerator.kt:428 */
 3416         -
        pub(crate) fn set_default_int_enum(
 3417         -
            mut self,
 3418         -
            input: impl ::std::convert::Into<i32>,
 3419         -
        ) -> Self {
        4552  +
        pub(crate) fn set_zero_double(mut self, input: impl ::std::convert::Into<f64>) -> Self {
 3420   4553   
            /* ServerBuilderGenerator.kt:429 */
 3421         -
            self.default_int_enum = Some(input.into());
        4554  +
            self.zero_double = Some(input.into());
 3422   4555   
            self
 3423   4556   
            /* ServerBuilderGenerator.kt:428 */
 3424   4557   
        }
 3425         -
        /* ServerBuilderGenerator.kt:331 */
 3426         -
        #[allow(missing_docs)] // documentation missing in model
 3427         -
                               /* ServerBuilderGenerator.kt:343 */
 3428         -
        pub fn empty_string(mut self, input: ::std::string::String) -> Self {
 3429         -
            /* ServerBuilderGenerator.kt:344 */
 3430         -
            self.empty_string =
 3431         -
                /* ServerBuilderGenerator.kt:345 */Some(
 3432         -
                    /* ServerBuilderGenerator.kt:376 */input
 3433         -
                /* ServerBuilderGenerator.kt:345 */)
 3434         -
            /* ServerBuilderGenerator.kt:344 */;
 3435         -
            self
 3436         -
            /* ServerBuilderGenerator.kt:343 */
        4558  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Defaults`](crate::model::Defaults).
        4559  +
        /// /* ServerBuilderGenerator.kt:260 */
        4560  +
        /// The builder fails to construct a [`Defaults`](crate::model::Defaults) if a [`ConstraintViolation`] occurs.
        4561  +
        ///
        4562  +
        /* ServerBuilderGenerator.kt:271 */
        4563  +
        pub fn build(self) -> Result<crate::model::Defaults, ConstraintViolation> {
        4564  +
            self.build_enforcing_all_constraints()
        4565  +
        }
        4566  +
        /* ServerBuilderGenerator.kt:283 */
        4567  +
        fn build_enforcing_all_constraints(
        4568  +
            self,
        4569  +
        ) -> Result<crate::model::Defaults, ConstraintViolation> {
        4570  +
            /* ServerBuilderGenerator.kt:287 */
        4571  +
            Ok(
        4572  +
                /* ServerBuilderGenerator.kt:542 */
        4573  +
                crate::model::Defaults {
        4574  +
                    /* ServerBuilderGenerator.kt:546 */
        4575  +
                    default_string: self
        4576  +
                        .default_string
        4577  +
                        /* ServerBuilderGeneratorCommon.kt:129 */
        4578  +
                        .unwrap_or_else(|| String::from("hi")),
        4579  +
                    /* ServerBuilderGenerator.kt:546 */
        4580  +
                    default_boolean: self
        4581  +
                        .default_boolean
        4582  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4583  +
                        .unwrap_or(true),
        4584  +
                    /* ServerBuilderGenerator.kt:546 */
        4585  +
                    default_list: self
        4586  +
                        .default_list
        4587  +
                        /* ServerBuilderGeneratorCommon.kt:95 */
        4588  +
                        .unwrap_or_default(),
        4589  +
                    /* ServerBuilderGenerator.kt:546 */
        4590  +
                    default_document_map: self
        4591  +
                        .default_document_map
        4592  +
                        /* ServerBuilderGeneratorCommon.kt:129 */
        4593  +
                        .unwrap_or_else(|| {
        4594  +
                            ::aws_smithy_types::Document::Object(::std::collections::HashMap::new())
        4595  +
                        }),
        4596  +
                    /* ServerBuilderGenerator.kt:546 */
        4597  +
                    default_document_string: self
        4598  +
                        .default_document_string
        4599  +
                        /* ServerBuilderGeneratorCommon.kt:129 */
        4600  +
                        .unwrap_or_else(|| {
        4601  +
                            ::aws_smithy_types::Document::String(::std::string::String::from("hi"))
        4602  +
                        }),
        4603  +
                    /* ServerBuilderGenerator.kt:546 */
        4604  +
                    default_document_boolean: self
        4605  +
                        .default_document_boolean
        4606  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4607  +
                        .unwrap_or(::aws_smithy_types::Document::Bool(true)),
        4608  +
                    /* ServerBuilderGenerator.kt:546 */
        4609  +
                    default_document_list: self
        4610  +
                        .default_document_list
        4611  +
                        /* ServerBuilderGeneratorCommon.kt:129 */
        4612  +
                        .unwrap_or_else(|| {
        4613  +
                            ::aws_smithy_types::Document::Array(::std::vec::Vec::new())
        4614  +
                        }),
        4615  +
                    /* ServerBuilderGenerator.kt:546 */
        4616  +
                    default_null_document: self.default_null_document,
        4617  +
                    /* ServerBuilderGenerator.kt:546 */
        4618  +
                    default_timestamp: self
        4619  +
                        .default_timestamp
        4620  +
                        /* ServerBuilderGeneratorCommon.kt:129 */
        4621  +
                        .unwrap_or_else(|| {
        4622  +
                            ::aws_smithy_types::DateTime::from_fractional_secs(0, 0_f64)
        4623  +
                        }),
        4624  +
                    /* ServerBuilderGenerator.kt:546 */
        4625  +
                    default_blob: self
        4626  +
                        .default_blob
        4627  +
                        /* ServerBuilderGeneratorCommon.kt:129 */
        4628  +
                        .unwrap_or_else(|| ::aws_smithy_types::Blob::new("YWJj")),
        4629  +
                    /* ServerBuilderGenerator.kt:546 */
        4630  +
                    default_byte: self
        4631  +
                        .default_byte
        4632  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4633  +
                        .unwrap_or(1i8),
        4634  +
                    /* ServerBuilderGenerator.kt:546 */
        4635  +
                    default_short: self
        4636  +
                        .default_short
        4637  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4638  +
                        .unwrap_or(1i16),
        4639  +
                    /* ServerBuilderGenerator.kt:546 */
        4640  +
                    default_integer: self
        4641  +
                        .default_integer
        4642  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4643  +
                        .unwrap_or(10i32),
        4644  +
                    /* ServerBuilderGenerator.kt:546 */
        4645  +
                    default_long: self
        4646  +
                        .default_long
        4647  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4648  +
                        .unwrap_or(100i64),
        4649  +
                    /* ServerBuilderGenerator.kt:546 */
        4650  +
                    default_float: self
        4651  +
                        .default_float
        4652  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4653  +
                        .unwrap_or(1.0f32),
        4654  +
                    /* ServerBuilderGenerator.kt:546 */
        4655  +
                    default_double: self
        4656  +
                        .default_double
        4657  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4658  +
                        .unwrap_or(1.0f64),
        4659  +
                    /* ServerBuilderGenerator.kt:546 */
        4660  +
                    default_map: self
        4661  +
                        .default_map
        4662  +
                        /* ServerBuilderGeneratorCommon.kt:95 */
        4663  +
                        .unwrap_or_default(),
        4664  +
                    /* ServerBuilderGenerator.kt:546 */
        4665  +
                    default_enum: self
        4666  +
                        .default_enum
        4667  +
                        /* ServerBuilderGenerator.kt:602 */
        4668  +
                        .map(|v| match v {
        4669  +
                            crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
        4670  +
                            crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
        4671  +
                        })
        4672  +
                        /* ServerBuilderGenerator.kt:614 */
        4673  +
                        .map(|res| res.map_err(ConstraintViolation::DefaultEnum))
        4674  +
                        .transpose()?
        4675  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4676  +
                        .unwrap_or(
        4677  +
                            "FOO"
        4678  +
                                .parse::<crate::model::TestEnum>()
        4679  +
                                .expect("static value validated to member"),
        4680  +
                        ),
        4681  +
                    /* ServerBuilderGenerator.kt:546 */
        4682  +
                    default_int_enum: self
        4683  +
                        .default_int_enum
        4684  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4685  +
                        .unwrap_or(1i32),
        4686  +
                    /* ServerBuilderGenerator.kt:546 */
        4687  +
                    empty_string: self
        4688  +
                        .empty_string
        4689  +
                        /* ServerBuilderGeneratorCommon.kt:129 */
        4690  +
                        .unwrap_or_else(|| String::from("")),
        4691  +
                    /* ServerBuilderGenerator.kt:546 */
        4692  +
                    false_boolean: self
        4693  +
                        .false_boolean
        4694  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4695  +
                        .unwrap_or(false),
        4696  +
                    /* ServerBuilderGenerator.kt:546 */
        4697  +
                    empty_blob: self
        4698  +
                        .empty_blob
        4699  +
                        /* ServerBuilderGeneratorCommon.kt:129 */
        4700  +
                        .unwrap_or_else(|| ::aws_smithy_types::Blob::new("")),
        4701  +
                    /* ServerBuilderGenerator.kt:546 */
        4702  +
                    zero_byte: self
        4703  +
                        .zero_byte
        4704  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4705  +
                        .unwrap_or(0i8),
        4706  +
                    /* ServerBuilderGenerator.kt:546 */
        4707  +
                    zero_short: self
        4708  +
                        .zero_short
        4709  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4710  +
                        .unwrap_or(0i16),
        4711  +
                    /* ServerBuilderGenerator.kt:546 */
        4712  +
                    zero_integer: self
        4713  +
                        .zero_integer
        4714  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4715  +
                        .unwrap_or(0i32),
        4716  +
                    /* ServerBuilderGenerator.kt:546 */
        4717  +
                    zero_long: self
        4718  +
                        .zero_long
        4719  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4720  +
                        .unwrap_or(0i64),
        4721  +
                    /* ServerBuilderGenerator.kt:546 */
        4722  +
                    zero_float: self
        4723  +
                        .zero_float
        4724  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4725  +
                        .unwrap_or(0.0f32),
        4726  +
                    /* ServerBuilderGenerator.kt:546 */
        4727  +
                    zero_double: self
        4728  +
                        .zero_double
        4729  +
                        /* ServerBuilderGeneratorCommon.kt:125 */
        4730  +
                        .unwrap_or(0.0f64),
        4731  +
                    /* ServerBuilderGenerator.kt:542 */
        4732  +
                }, /* ServerBuilderGenerator.kt:287 */
        4733  +
            )
        4734  +
            /* ServerBuilderGenerator.kt:283 */
 3437   4735   
        }
 3438         -
        /* ServerBuilderGenerator.kt:426 */
 3439         -
        #[allow(missing_docs)] // documentation missing in model
 3440         -
                               /* ServerBuilderGenerator.kt:428 */
 3441         -
        pub(crate) fn set_empty_string(
 3442         -
            mut self,
 3443         -
            input: impl ::std::convert::Into<::std::string::String>,
 3444         -
        ) -> Self {
 3445         -
            /* ServerBuilderGenerator.kt:429 */
 3446         -
            self.empty_string = Some(input.into());
 3447         -
            self
 3448         -
            /* ServerBuilderGenerator.kt:428 */
        4736  +
        /* ServerBuilderGenerator.kt:215 */
        4737  +
    }
        4738  +
        4739  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        4740  +
}
        4741  +
/// /* ServerBuilderGenerator.kt:171 */See [`ClientOptionalDefaults`](crate::model::ClientOptionalDefaults).
        4742  +
pub mod client_optional_defaults {
        4743  +
        4744  +
    /* ServerBuilderGenerator.kt:461 */
        4745  +
    impl ::std::convert::From<Builder> for crate::model::ClientOptionalDefaults {
        4746  +
        fn from(builder: Builder) -> Self {
        4747  +
            builder.build()
 3449   4748   
        }
        4749  +
    }
        4750  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ClientOptionalDefaults`](crate::model::ClientOptionalDefaults).
        4751  +
    /* RustType.kt:534 */
        4752  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        4753  +
    /* ServerBuilderGenerator.kt:211 */
        4754  +
    pub struct Builder {
        4755  +
        /* ServerBuilderGenerator.kt:308 */
        4756  +
        pub(crate) member: ::std::option::Option<i32>,
        4757  +
        /* ServerBuilderGenerator.kt:211 */
        4758  +
    }
        4759  +
    /* ServerBuilderGenerator.kt:215 */
        4760  +
    impl Builder {
 3450   4761   
        /* ServerBuilderGenerator.kt:331 */
 3451   4762   
        #[allow(missing_docs)] // documentation missing in model
 3452   4763   
                               /* ServerBuilderGenerator.kt:343 */
 3453         -
        pub fn false_boolean(mut self, input: bool) -> Self {
        4764  +
        pub fn member(mut self, input: i32) -> Self {
 3454   4765   
            /* ServerBuilderGenerator.kt:344 */
 3455         -
            self.false_boolean =
        4766  +
            self.member =
 3456   4767   
                /* ServerBuilderGenerator.kt:345 */Some(
 3457   4768   
                    /* ServerBuilderGenerator.kt:376 */input
 3458   4769   
                /* ServerBuilderGenerator.kt:345 */)
 3459   4770   
            /* ServerBuilderGenerator.kt:344 */;
 3460   4771   
            self
 3461   4772   
            /* ServerBuilderGenerator.kt:343 */
 3462   4773   
        }
 3463   4774   
        /* ServerBuilderGenerator.kt:426 */
 3464   4775   
        #[allow(missing_docs)] // documentation missing in model
 3465   4776   
                               /* ServerBuilderGenerator.kt:428 */
 3466         -
        pub(crate) fn set_false_boolean(mut self, input: impl ::std::convert::Into<bool>) -> Self {
        4777  +
        pub(crate) fn set_member(mut self, input: impl ::std::convert::Into<i32>) -> Self {
 3467   4778   
            /* ServerBuilderGenerator.kt:429 */
 3468         -
            self.false_boolean = Some(input.into());
        4779  +
            self.member = Some(input.into());
 3469   4780   
            self
 3470   4781   
            /* ServerBuilderGenerator.kt:428 */
 3471   4782   
        }
 3472         -
        /* ServerBuilderGenerator.kt:331 */
 3473         -
        #[allow(missing_docs)] // documentation missing in model
 3474         -
                               /* ServerBuilderGenerator.kt:343 */
 3475         -
        pub fn empty_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
 3476         -
            /* ServerBuilderGenerator.kt:344 */
 3477         -
            self.empty_blob =
 3478         -
                /* ServerBuilderGenerator.kt:345 */Some(
 3479         -
                    /* ServerBuilderGenerator.kt:376 */input
 3480         -
                /* ServerBuilderGenerator.kt:345 */)
 3481         -
            /* ServerBuilderGenerator.kt:344 */;
 3482         -
            self
 3483         -
            /* ServerBuilderGenerator.kt:343 */
 3484         -
        }
 3485         -
        /* ServerBuilderGenerator.kt:426 */
 3486         -
        #[allow(missing_docs)] // documentation missing in model
 3487         -
                               /* ServerBuilderGenerator.kt:428 */
 3488         -
        pub(crate) fn set_empty_blob(
 3489         -
            mut self,
 3490         -
            input: impl ::std::convert::Into<::aws_smithy_types::Blob>,
 3491         -
        ) -> Self {
 3492         -
            /* ServerBuilderGenerator.kt:429 */
 3493         -
            self.empty_blob = Some(input.into());
 3494         -
            self
 3495         -
            /* ServerBuilderGenerator.kt:428 */
        4783  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ClientOptionalDefaults`](crate::model::ClientOptionalDefaults).
        4784  +
        /* ServerBuilderGenerator.kt:271 */
        4785  +
        pub fn build(self) -> crate::model::ClientOptionalDefaults {
        4786  +
            self.build_enforcing_all_constraints()
 3496   4787   
        }
 3497         -
        /* ServerBuilderGenerator.kt:331 */
 3498         -
        #[allow(missing_docs)] // documentation missing in model
 3499         -
                               /* ServerBuilderGenerator.kt:343 */
 3500         -
        pub fn zero_byte(mut self, input: i8) -> Self {
 3501         -
            /* ServerBuilderGenerator.kt:344 */
 3502         -
            self.zero_byte =
 3503         -
                /* ServerBuilderGenerator.kt:345 */Some(
 3504         -
                    /* ServerBuilderGenerator.kt:376 */input
 3505         -
                /* ServerBuilderGenerator.kt:345 */)
 3506         -
            /* ServerBuilderGenerator.kt:344 */;
 3507         -
            self
 3508         -
            /* ServerBuilderGenerator.kt:343 */
        4788  +
        /* ServerBuilderGenerator.kt:283 */
        4789  +
        fn build_enforcing_all_constraints(self) -> crate::model::ClientOptionalDefaults {
        4790  +
            /* ServerBuilderGenerator.kt:542 */
        4791  +
            crate::model::ClientOptionalDefaults {
        4792  +
                /* ServerBuilderGenerator.kt:546 */
        4793  +
                member: self
        4794  +
                    .member
        4795  +
                    /* ServerBuilderGeneratorCommon.kt:125 */
        4796  +
                    .unwrap_or(0i32),
        4797  +
                /* ServerBuilderGenerator.kt:542 */
        4798  +
            }
        4799  +
            /* ServerBuilderGenerator.kt:283 */
 3509   4800   
        }
 3510         -
        /* ServerBuilderGenerator.kt:426 */
 3511         -
        #[allow(missing_docs)] // documentation missing in model
 3512         -
                               /* ServerBuilderGenerator.kt:428 */
 3513         -
        pub(crate) fn set_zero_byte(mut self, input: impl ::std::convert::Into<i8>) -> Self {
 3514         -
            /* ServerBuilderGenerator.kt:429 */
 3515         -
            self.zero_byte = Some(input.into());
 3516         -
            self
 3517         -
            /* ServerBuilderGenerator.kt:428 */
        4801  +
        /* ServerBuilderGenerator.kt:215 */
        4802  +
    }
        4803  +
        4804  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        4805  +
}
        4806  +
/// /* ServerBuilderGenerator.kt:171 */See [`TopLevel`](crate::model::TopLevel).
        4807  +
pub mod top_level {
        4808  +
        4809  +
    /* RustType.kt:534 */
        4810  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        4811  +
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
        4812  +
    /* RustType.kt:534 */
        4813  +
    #[non_exhaustive]
        4814  +
    /* ServerBuilderConstraintViolations.kt:75 */
        4815  +
    #[allow(clippy::enum_variant_names)]
        4816  +
    pub enum ConstraintViolation {
        4817  +
        /// /* ServerBuilderConstraintViolations.kt:137 */`dialog` was not provided but it is required when building `TopLevel`.
        4818  +
        /* ServerBuilderConstraintViolations.kt:144 */
        4819  +
        MissingDialog,
        4820  +
        /* ServerBuilderConstraintViolations.kt:75 */
        4821  +
    }
        4822  +
    /* ServerBuilderConstraintViolations.kt:116 */
        4823  +
    impl ::std::fmt::Display for ConstraintViolation {
        4824  +
        /* ServerBuilderConstraintViolations.kt:117 */
        4825  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        4826  +
            /* ServerBuilderConstraintViolations.kt:118 */
        4827  +
            match self {
        4828  +
                /* ServerBuilderConstraintViolations.kt:126 */
        4829  +
                ConstraintViolation::MissingDialog => write!(
        4830  +
                    f,
        4831  +
                    "`dialog` was not provided but it is required when building `TopLevel`"
        4832  +
                ),
        4833  +
                /* ServerBuilderConstraintViolations.kt:118 */
        4834  +
            }
        4835  +
            /* ServerBuilderConstraintViolations.kt:117 */
 3518   4836   
        }
 3519         -
        /* ServerBuilderGenerator.kt:331 */
 3520         -
        #[allow(missing_docs)] // documentation missing in model
 3521         -
                               /* ServerBuilderGenerator.kt:343 */
 3522         -
        pub fn zero_short(mut self, input: i16) -> Self {
 3523         -
            /* ServerBuilderGenerator.kt:344 */
 3524         -
            self.zero_short =
 3525         -
                /* ServerBuilderGenerator.kt:345 */Some(
 3526         -
                    /* ServerBuilderGenerator.kt:376 */input
 3527         -
                /* ServerBuilderGenerator.kt:345 */)
 3528         -
            /* ServerBuilderGenerator.kt:344 */;
 3529         -
            self
 3530         -
            /* ServerBuilderGenerator.kt:343 */
        4837  +
        /* ServerBuilderConstraintViolations.kt:116 */
        4838  +
    }
        4839  +
    /* ServerBuilderConstraintViolations.kt:83 */
        4840  +
    impl ::std::error::Error for ConstraintViolation {}
        4841  +
    /* ServerBuilderConstraintViolations.kt:172 */
        4842  +
    impl ConstraintViolation {
        4843  +
        pub(crate) fn as_validation_exception_field(
        4844  +
            self,
        4845  +
            path: ::std::string::String,
        4846  +
        ) -> crate::model::ValidationExceptionField {
        4847  +
            match self {
        4848  +
            ConstraintViolation::MissingDialog => crate::model::ValidationExceptionField {
        4849  +
                                                message: format!("Value at '{}/dialog' failed to satisfy constraint: Member must not be null", path),
        4850  +
                                                path: path + "/dialog",
        4851  +
                                            },
 3531   4852   
        }
 3532         -
        /* ServerBuilderGenerator.kt:426 */
 3533         -
        #[allow(missing_docs)] // documentation missing in model
 3534         -
                               /* ServerBuilderGenerator.kt:428 */
 3535         -
        pub(crate) fn set_zero_short(mut self, input: impl ::std::convert::Into<i16>) -> Self {
 3536         -
            /* ServerBuilderGenerator.kt:429 */
 3537         -
            self.zero_short = Some(input.into());
 3538         -
            self
 3539         -
            /* ServerBuilderGenerator.kt:428 */
 3540   4853   
        }
 3541         -
        /* ServerBuilderGenerator.kt:331 */
 3542         -
        #[allow(missing_docs)] // documentation missing in model
 3543         -
                               /* ServerBuilderGenerator.kt:343 */
 3544         -
        pub fn zero_integer(mut self, input: i32) -> Self {
 3545         -
            /* ServerBuilderGenerator.kt:344 */
 3546         -
            self.zero_integer =
 3547         -
                /* ServerBuilderGenerator.kt:345 */Some(
 3548         -
                    /* ServerBuilderGenerator.kt:376 */input
 3549         -
                /* ServerBuilderGenerator.kt:345 */)
 3550         -
            /* ServerBuilderGenerator.kt:344 */;
 3551         -
            self
 3552         -
            /* ServerBuilderGenerator.kt:343 */
        4854  +
    }
        4855  +
    /* ServerBuilderGenerator.kt:244 */
        4856  +
    impl ::std::convert::From<Builder>
        4857  +
        for crate::constrained::MaybeConstrained<crate::model::TopLevel>
        4858  +
    {
        4859  +
        fn from(builder: Builder) -> Self {
        4860  +
            Self::Unconstrained(builder)
 3553   4861   
        }
 3554         -
        /* ServerBuilderGenerator.kt:426 */
 3555         -
        #[allow(missing_docs)] // documentation missing in model
 3556         -
                               /* ServerBuilderGenerator.kt:428 */
 3557         -
        pub(crate) fn set_zero_integer(mut self, input: impl ::std::convert::Into<i32>) -> Self {
 3558         -
            /* ServerBuilderGenerator.kt:429 */
 3559         -
            self.zero_integer = Some(input.into());
 3560         -
            self
 3561         -
            /* ServerBuilderGenerator.kt:428 */
        4862  +
    }
        4863  +
    /* ServerBuilderGenerator.kt:446 */
        4864  +
    impl ::std::convert::TryFrom<Builder> for crate::model::TopLevel {
        4865  +
        type Error = ConstraintViolation;
        4866  +
        4867  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        4868  +
            builder.build()
 3562   4869   
        }
        4870  +
    }
        4871  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`TopLevel`](crate::model::TopLevel).
        4872  +
    /* RustType.kt:534 */
        4873  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        4874  +
    /* ServerBuilderGenerator.kt:211 */
        4875  +
    pub struct Builder {
        4876  +
        /* ServerBuilderGenerator.kt:308 */
        4877  +
        pub(crate) dialog: ::std::option::Option<crate::model::Dialog>,
        4878  +
        /* ServerBuilderGenerator.kt:308 */
        4879  +
        pub(crate) dialog_list: ::std::option::Option<::std::vec::Vec<crate::model::Dialog>>,
        4880  +
        /* ServerBuilderGenerator.kt:308 */
        4881  +
        pub(crate) dialog_map: ::std::option::Option<
        4882  +
            ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
        4883  +
        >,
        4884  +
        /* ServerBuilderGenerator.kt:211 */
        4885  +
    }
        4886  +
    /* ServerBuilderGenerator.kt:215 */
        4887  +
    impl Builder {
 3563   4888   
        /* ServerBuilderGenerator.kt:331 */
 3564   4889   
        #[allow(missing_docs)] // documentation missing in model
 3565   4890   
                               /* ServerBuilderGenerator.kt:343 */
 3566         -
        pub fn zero_long(mut self, input: i64) -> Self {
        4891  +
        pub fn dialog(mut self, input: crate::model::Dialog) -> Self {
 3567   4892   
            /* ServerBuilderGenerator.kt:344 */
 3568         -
            self.zero_long =
        4893  +
            self.dialog =
 3569   4894   
                /* ServerBuilderGenerator.kt:345 */Some(
 3570   4895   
                    /* ServerBuilderGenerator.kt:376 */input
 3571   4896   
                /* ServerBuilderGenerator.kt:345 */)
 3572   4897   
            /* ServerBuilderGenerator.kt:344 */;
 3573   4898   
            self
 3574   4899   
            /* ServerBuilderGenerator.kt:343 */
 3575   4900   
        }
 3576   4901   
        /* ServerBuilderGenerator.kt:426 */
 3577   4902   
        #[allow(missing_docs)] // documentation missing in model
 3578   4903   
                               /* ServerBuilderGenerator.kt:428 */
 3579         -
        pub(crate) fn set_zero_long(mut self, input: impl ::std::convert::Into<i64>) -> Self {
        4904  +
        pub(crate) fn set_dialog(
        4905  +
            mut self,
        4906  +
            input: impl ::std::convert::Into<crate::model::Dialog>,
        4907  +
        ) -> Self {
 3580   4908   
            /* ServerBuilderGenerator.kt:429 */
 3581         -
            self.zero_long = Some(input.into());
        4909  +
            self.dialog = Some(input.into());
 3582   4910   
            self
 3583   4911   
            /* ServerBuilderGenerator.kt:428 */
 3584   4912   
        }
 3585   4913   
        /* ServerBuilderGenerator.kt:331 */
 3586   4914   
        #[allow(missing_docs)] // documentation missing in model
 3587   4915   
                               /* ServerBuilderGenerator.kt:343 */
 3588         -
        pub fn zero_float(mut self, input: f32) -> Self {
        4916  +
        pub fn dialog_list(mut self, input: ::std::vec::Vec<crate::model::Dialog>) -> Self {
 3589   4917   
            /* ServerBuilderGenerator.kt:344 */
 3590         -
            self.zero_float =
        4918  +
            self.dialog_list =
 3591   4919   
                /* ServerBuilderGenerator.kt:345 */Some(
 3592   4920   
                    /* ServerBuilderGenerator.kt:376 */input
 3593   4921   
                /* ServerBuilderGenerator.kt:345 */)
 3594   4922   
            /* ServerBuilderGenerator.kt:344 */;
 3595   4923   
            self
 3596   4924   
            /* ServerBuilderGenerator.kt:343 */
 3597   4925   
        }
 3598   4926   
        /* ServerBuilderGenerator.kt:426 */
 3599   4927   
        #[allow(missing_docs)] // documentation missing in model
 3600   4928   
                               /* ServerBuilderGenerator.kt:428 */
 3601         -
        pub(crate) fn set_zero_float(mut self, input: impl ::std::convert::Into<f32>) -> Self {
        4929  +
        pub(crate) fn set_dialog_list(
        4930  +
            mut self,
        4931  +
            input: impl ::std::convert::Into<::std::vec::Vec<crate::model::Dialog>>,
        4932  +
        ) -> Self {
 3602   4933   
            /* ServerBuilderGenerator.kt:429 */
 3603         -
            self.zero_float = Some(input.into());
        4934  +
            self.dialog_list = Some(input.into());
 3604   4935   
            self
 3605   4936   
            /* ServerBuilderGenerator.kt:428 */
 3606   4937   
        }
 3607   4938   
        /* ServerBuilderGenerator.kt:331 */
 3608   4939   
        #[allow(missing_docs)] // documentation missing in model
 3609   4940   
                               /* ServerBuilderGenerator.kt:343 */
 3610         -
        pub fn zero_double(mut self, input: f64) -> Self {
        4941  +
        pub fn dialog_map(
        4942  +
            mut self,
        4943  +
            input: ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
        4944  +
        ) -> Self {
 3611   4945   
            /* ServerBuilderGenerator.kt:344 */
 3612         -
            self.zero_double =
        4946  +
            self.dialog_map =
 3613   4947   
                /* ServerBuilderGenerator.kt:345 */Some(
 3614   4948   
                    /* ServerBuilderGenerator.kt:376 */input
 3615   4949   
                /* ServerBuilderGenerator.kt:345 */)
 3616   4950   
            /* ServerBuilderGenerator.kt:344 */;
 3617   4951   
            self
 3618   4952   
            /* ServerBuilderGenerator.kt:343 */
 3619   4953   
        }
 3620   4954   
        /* ServerBuilderGenerator.kt:426 */
 3621   4955   
        #[allow(missing_docs)] // documentation missing in model
 3622   4956   
                               /* ServerBuilderGenerator.kt:428 */
 3623         -
        pub(crate) fn set_zero_double(mut self, input: impl ::std::convert::Into<f64>) -> Self {
        4957  +
        pub(crate) fn set_dialog_map(
        4958  +
            mut self,
        4959  +
            input: impl ::std::convert::Into<
        4960  +
                ::std::collections::HashMap<::std::string::String, crate::model::Dialog>,
        4961  +
            >,
        4962  +
        ) -> Self {
 3624   4963   
            /* ServerBuilderGenerator.kt:429 */
 3625         -
            self.zero_double = Some(input.into());
        4964  +
            self.dialog_map = Some(input.into());
 3626   4965   
            self
 3627   4966   
            /* ServerBuilderGenerator.kt:428 */
 3628   4967   
        }
 3629         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Defaults`](crate::model::Defaults).
        4968  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`TopLevel`](crate::model::TopLevel).
 3630   4969   
        /// /* ServerBuilderGenerator.kt:260 */
 3631         -
        /// The builder fails to construct a [`Defaults`](crate::model::Defaults) if a [`ConstraintViolation`] occurs.
        4970  +
        /// The builder fails to construct a [`TopLevel`](crate::model::TopLevel) if a [`ConstraintViolation`] occurs.
 3632   4971   
        ///
 3633   4972   
        /* ServerBuilderGenerator.kt:271 */
 3634         -
        pub fn build(self) -> Result<crate::model::Defaults, ConstraintViolation> {
        4973  +
        pub fn build(self) -> Result<crate::model::TopLevel, ConstraintViolation> {
 3635   4974   
            self.build_enforcing_all_constraints()
 3636   4975   
        }
 3637   4976   
        /* ServerBuilderGenerator.kt:283 */
 3638   4977   
        fn build_enforcing_all_constraints(
 3639   4978   
            self,
 3640         -
        ) -> Result<crate::model::Defaults, ConstraintViolation> {
        4979  +
        ) -> Result<crate::model::TopLevel, ConstraintViolation> {
 3641   4980   
            /* ServerBuilderGenerator.kt:287 */
 3642   4981   
            Ok(
 3643   4982   
                /* ServerBuilderGenerator.kt:542 */
 3644         -
                crate::model::Defaults {
 3645         -
                    /* ServerBuilderGenerator.kt:546 */
 3646         -
                    default_string: self
 3647         -
                        .default_string
 3648         -
                        /* ServerBuilderGeneratorCommon.kt:129 */
 3649         -
                        .unwrap_or_else(|| String::from("hi")),
        4983  +
                crate::model::TopLevel {
 3650   4984   
                    /* ServerBuilderGenerator.kt:546 */
 3651         -
                    default_boolean: self
 3652         -
                        .default_boolean
 3653         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3654         -
                        .unwrap_or(true),
        4985  +
                    dialog: self
        4986  +
                        .dialog
        4987  +
                        /* ServerBuilderGenerator.kt:569 */
        4988  +
                        .ok_or(ConstraintViolation::MissingDialog)?,
 3655   4989   
                    /* ServerBuilderGenerator.kt:546 */
 3656         -
                    default_list: self
 3657         -
                        .default_list
        4990  +
                    dialog_list: self
        4991  +
                        .dialog_list
 3658   4992   
                        /* ServerBuilderGeneratorCommon.kt:95 */
 3659   4993   
                        .unwrap_or_default(),
 3660   4994   
                    /* ServerBuilderGenerator.kt:546 */
 3661         -
                    default_document_map: self
 3662         -
                        .default_document_map
 3663         -
                        /* ServerBuilderGeneratorCommon.kt:129 */
 3664         -
                        .unwrap_or_else(|| {
 3665         -
                            ::aws_smithy_types::Document::Object(::std::collections::HashMap::new())
 3666         -
                        }),
 3667         -
                    /* ServerBuilderGenerator.kt:546 */
 3668         -
                    default_document_string: self
 3669         -
                        .default_document_string
 3670         -
                        /* ServerBuilderGeneratorCommon.kt:129 */
 3671         -
                        .unwrap_or_else(|| {
 3672         -
                            ::aws_smithy_types::Document::String(::std::string::String::from("hi"))
 3673         -
                        }),
 3674         -
                    /* ServerBuilderGenerator.kt:546 */
 3675         -
                    default_document_boolean: self
 3676         -
                        .default_document_boolean
 3677         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3678         -
                        .unwrap_or(::aws_smithy_types::Document::Bool(true)),
 3679         -
                    /* ServerBuilderGenerator.kt:546 */
 3680         -
                    default_document_list: self
 3681         -
                        .default_document_list
 3682         -
                        /* ServerBuilderGeneratorCommon.kt:129 */
 3683         -
                        .unwrap_or_else(|| {
 3684         -
                            ::aws_smithy_types::Document::Array(::std::vec::Vec::new())
 3685         -
                        }),
 3686         -
                    /* ServerBuilderGenerator.kt:546 */
 3687         -
                    default_null_document: self.default_null_document,
 3688         -
                    /* ServerBuilderGenerator.kt:546 */
 3689         -
                    default_timestamp: self
 3690         -
                        .default_timestamp
 3691         -
                        /* ServerBuilderGeneratorCommon.kt:129 */
 3692         -
                        .unwrap_or_else(|| {
 3693         -
                            ::aws_smithy_types::DateTime::from_fractional_secs(0, 0_f64)
 3694         -
                        }),
 3695         -
                    /* ServerBuilderGenerator.kt:546 */
 3696         -
                    default_blob: self
 3697         -
                        .default_blob
 3698         -
                        /* ServerBuilderGeneratorCommon.kt:129 */
 3699         -
                        .unwrap_or_else(|| ::aws_smithy_types::Blob::new("YWJj")),
 3700         -
                    /* ServerBuilderGenerator.kt:546 */
 3701         -
                    default_byte: self
 3702         -
                        .default_byte
 3703         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3704         -
                        .unwrap_or(1i8),
 3705         -
                    /* ServerBuilderGenerator.kt:546 */
 3706         -
                    default_short: self
 3707         -
                        .default_short
 3708         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3709         -
                        .unwrap_or(1i16),
 3710         -
                    /* ServerBuilderGenerator.kt:546 */
 3711         -
                    default_integer: self
 3712         -
                        .default_integer
 3713         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3714         -
                        .unwrap_or(10i32),
 3715         -
                    /* ServerBuilderGenerator.kt:546 */
 3716         -
                    default_long: self
 3717         -
                        .default_long
 3718         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3719         -
                        .unwrap_or(100i64),
 3720         -
                    /* ServerBuilderGenerator.kt:546 */
 3721         -
                    default_float: self
 3722         -
                        .default_float
 3723         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3724         -
                        .unwrap_or(1.0f32),
 3725         -
                    /* ServerBuilderGenerator.kt:546 */
 3726         -
                    default_double: self
 3727         -
                        .default_double
 3728         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3729         -
                        .unwrap_or(1.0f64),
 3730         -
                    /* ServerBuilderGenerator.kt:546 */
 3731         -
                    default_map: self
 3732         -
                        .default_map
        4995  +
                    dialog_map: self
        4996  +
                        .dialog_map
 3733   4997   
                        /* ServerBuilderGeneratorCommon.kt:95 */
 3734   4998   
                        .unwrap_or_default(),
 3735         -
                    /* ServerBuilderGenerator.kt:546 */
 3736         -
                    default_enum: self
 3737         -
                        .default_enum
 3738         -
                        /* ServerBuilderGenerator.kt:602 */
 3739         -
                        .map(|v| match v {
 3740         -
                            crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 3741         -
                            crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 3742         -
                        })
 3743         -
                        /* ServerBuilderGenerator.kt:614 */
 3744         -
                        .map(|res| res.map_err(ConstraintViolation::DefaultEnum))
 3745         -
                        .transpose()?
 3746         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3747         -
                        .unwrap_or(
 3748         -
                            "FOO"
 3749         -
                                .parse::<crate::model::TestEnum>()
 3750         -
                                .expect("static value validated to member"),
 3751         -
                        ),
 3752         -
                    /* ServerBuilderGenerator.kt:546 */
 3753         -
                    default_int_enum: self
 3754         -
                        .default_int_enum
 3755         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3756         -
                        .unwrap_or(1i32),
 3757         -
                    /* ServerBuilderGenerator.kt:546 */
 3758         -
                    empty_string: self
 3759         -
                        .empty_string
 3760         -
                        /* ServerBuilderGeneratorCommon.kt:129 */
 3761         -
                        .unwrap_or_else(|| String::from("")),
 3762         -
                    /* ServerBuilderGenerator.kt:546 */
 3763         -
                    false_boolean: self
 3764         -
                        .false_boolean
 3765         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3766         -
                        .unwrap_or(false),
 3767         -
                    /* ServerBuilderGenerator.kt:546 */
 3768         -
                    empty_blob: self
 3769         -
                        .empty_blob
 3770         -
                        /* ServerBuilderGeneratorCommon.kt:129 */
 3771         -
                        .unwrap_or_else(|| ::aws_smithy_types::Blob::new("")),
 3772         -
                    /* ServerBuilderGenerator.kt:546 */
 3773         -
                    zero_byte: self
 3774         -
                        .zero_byte
 3775         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3776         -
                        .unwrap_or(0i8),
 3777         -
                    /* ServerBuilderGenerator.kt:546 */
 3778         -
                    zero_short: self
 3779         -
                        .zero_short
 3780         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3781         -
                        .unwrap_or(0i16),
 3782         -
                    /* ServerBuilderGenerator.kt:546 */
 3783         -
                    zero_integer: self
 3784         -
                        .zero_integer
 3785         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3786         -
                        .unwrap_or(0i32),
 3787         -
                    /* ServerBuilderGenerator.kt:546 */
 3788         -
                    zero_long: self
 3789         -
                        .zero_long
 3790         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3791         -
                        .unwrap_or(0i64),
 3792         -
                    /* ServerBuilderGenerator.kt:546 */
 3793         -
                    zero_float: self
 3794         -
                        .zero_float
 3795         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3796         -
                        .unwrap_or(0.0f32),
 3797         -
                    /* ServerBuilderGenerator.kt:546 */
 3798         -
                    zero_double: self
 3799         -
                        .zero_double
 3800         -
                        /* ServerBuilderGeneratorCommon.kt:125 */
 3801         -
                        .unwrap_or(0.0f64),
 3802   4999   
                    /* ServerBuilderGenerator.kt:542 */
 3803   5000   
                }, /* ServerBuilderGenerator.kt:287 */
 3804   5001   
            )
 3805   5002   
            /* ServerBuilderGenerator.kt:283 */
 3806   5003   
        }
 3807   5004   
        /* ServerBuilderGenerator.kt:215 */
 3808   5005   
    }
 3809   5006   
 3810   5007   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3811   5008   
}
 3812         -
/// /* ServerBuilderGenerator.kt:171 */See [`PayloadConfig`](crate::model::PayloadConfig).
 3813         -
pub mod payload_config {
        5009  +
/// /* ServerBuilderGenerator.kt:171 */See [`Dialog`](crate::model::Dialog).
        5010  +
pub mod dialog {
 3814   5011   
 3815   5012   
    /* ServerBuilderGenerator.kt:461 */
 3816         -
    impl ::std::convert::From<Builder> for crate::model::PayloadConfig {
        5013  +
    impl ::std::convert::From<Builder> for crate::model::Dialog {
 3817   5014   
        fn from(builder: Builder) -> Self {
 3818   5015   
            builder.build()
 3819   5016   
        }
 3820   5017   
    }
 3821         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`PayloadConfig`](crate::model::PayloadConfig).
        5018  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Dialog`](crate::model::Dialog).
 3822   5019   
    /* RustType.kt:534 */
 3823   5020   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 3824   5021   
    /* ServerBuilderGenerator.kt:211 */
 3825   5022   
    pub struct Builder {
 3826   5023   
        /* ServerBuilderGenerator.kt:308 */
 3827         -
        pub(crate) data: ::std::option::Option<i32>,
        5024  +
        pub(crate) language: ::std::option::Option<::std::string::String>,
        5025  +
        /* ServerBuilderGenerator.kt:308 */
        5026  +
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        5027  +
        /* ServerBuilderGenerator.kt:308 */
        5028  +
        pub(crate) farewell: ::std::option::Option<crate::model::Farewell>,
 3828   5029   
        /* ServerBuilderGenerator.kt:211 */
 3829   5030   
    }
 3830   5031   
    /* ServerBuilderGenerator.kt:215 */
 3831   5032   
    impl Builder {
 3832   5033   
        /* ServerBuilderGenerator.kt:331 */
 3833   5034   
        #[allow(missing_docs)] // documentation missing in model
 3834   5035   
                               /* ServerBuilderGenerator.kt:343 */
 3835         -
        pub fn data(mut self, input: ::std::option::Option<i32>) -> Self {
        5036  +
        pub fn language(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 3836   5037   
            /* ServerBuilderGenerator.kt:344 */
 3837         -
            self.data =
        5038  +
            self.language =
 3838   5039   
                /* ServerBuilderGenerator.kt:376 */input
 3839   5040   
            /* ServerBuilderGenerator.kt:344 */;
 3840   5041   
            self
 3841   5042   
            /* ServerBuilderGenerator.kt:343 */
 3842   5043   
        }
 3843   5044   
        /* ServerBuilderGenerator.kt:426 */
 3844   5045   
        #[allow(missing_docs)] // documentation missing in model
 3845   5046   
                               /* ServerBuilderGenerator.kt:428 */
 3846         -
        pub(crate) fn set_data(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
        5047  +
        pub(crate) fn set_language(
        5048  +
            mut self,
        5049  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        5050  +
        ) -> Self {
 3847   5051   
            /* ServerBuilderGenerator.kt:429 */
 3848         -
            self.data = input.map(|v| v.into());
        5052  +
            self.language = input.map(|v| v.into());
 3849   5053   
            self
 3850   5054   
            /* ServerBuilderGenerator.kt:428 */
 3851   5055   
        }
 3852         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`PayloadConfig`](crate::model::PayloadConfig).
        5056  +
        /* ServerBuilderGenerator.kt:331 */
        5057  +
        #[allow(missing_docs)] // documentation missing in model
        5058  +
                               /* ServerBuilderGenerator.kt:343 */
        5059  +
        pub fn greeting(mut self, input: ::std::string::String) -> Self {
        5060  +
            /* ServerBuilderGenerator.kt:344 */
        5061  +
            self.greeting =
        5062  +
                /* ServerBuilderGenerator.kt:345 */Some(
        5063  +
                    /* ServerBuilderGenerator.kt:376 */input
        5064  +
                /* ServerBuilderGenerator.kt:345 */)
        5065  +
            /* ServerBuilderGenerator.kt:344 */;
        5066  +
            self
        5067  +
            /* ServerBuilderGenerator.kt:343 */
        5068  +
        }
        5069  +
        /* ServerBuilderGenerator.kt:426 */
        5070  +
        #[allow(missing_docs)] // documentation missing in model
        5071  +
                               /* ServerBuilderGenerator.kt:428 */
        5072  +
        pub(crate) fn set_greeting(
        5073  +
            mut self,
        5074  +
            input: impl ::std::convert::Into<::std::string::String>,
        5075  +
        ) -> Self {
        5076  +
            /* ServerBuilderGenerator.kt:429 */
        5077  +
            self.greeting = Some(input.into());
        5078  +
            self
        5079  +
            /* ServerBuilderGenerator.kt:428 */
        5080  +
        }
        5081  +
        /* ServerBuilderGenerator.kt:331 */
        5082  +
        #[allow(missing_docs)] // documentation missing in model
        5083  +
                               /* ServerBuilderGenerator.kt:343 */
        5084  +
        pub fn farewell(mut self, input: ::std::option::Option<crate::model::Farewell>) -> Self {
        5085  +
            /* ServerBuilderGenerator.kt:344 */
        5086  +
            self.farewell =
        5087  +
                /* ServerBuilderGenerator.kt:376 */input
        5088  +
            /* ServerBuilderGenerator.kt:344 */;
        5089  +
            self
        5090  +
            /* ServerBuilderGenerator.kt:343 */
        5091  +
        }
        5092  +
        /* ServerBuilderGenerator.kt:426 */
        5093  +
        #[allow(missing_docs)] // documentation missing in model
        5094  +
                               /* ServerBuilderGenerator.kt:428 */
        5095  +
        pub(crate) fn set_farewell(
        5096  +
            mut self,
        5097  +
            input: Option<impl ::std::convert::Into<crate::model::Farewell>>,
        5098  +
        ) -> Self {
        5099  +
            /* ServerBuilderGenerator.kt:429 */
        5100  +
            self.farewell = input.map(|v| v.into());
        5101  +
            self
        5102  +
            /* ServerBuilderGenerator.kt:428 */
        5103  +
        }
        5104  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Dialog`](crate::model::Dialog).
 3853   5105   
        /* ServerBuilderGenerator.kt:271 */
 3854         -
        pub fn build(self) -> crate::model::PayloadConfig {
        5106  +
        pub fn build(self) -> crate::model::Dialog {
 3855   5107   
            self.build_enforcing_all_constraints()
 3856   5108   
        }
 3857   5109   
        /* ServerBuilderGenerator.kt:283 */
 3858         -
        fn build_enforcing_all_constraints(self) -> crate::model::PayloadConfig {
        5110  +
        fn build_enforcing_all_constraints(self) -> crate::model::Dialog {
 3859   5111   
            /* ServerBuilderGenerator.kt:542 */
 3860         -
            crate::model::PayloadConfig {
        5112  +
            crate::model::Dialog {
 3861   5113   
                /* ServerBuilderGenerator.kt:546 */
 3862         -
                data: self.data,
        5114  +
                language: self.language,
        5115  +
                /* ServerBuilderGenerator.kt:546 */
        5116  +
                greeting: self
        5117  +
                    .greeting
        5118  +
                    /* ServerBuilderGeneratorCommon.kt:129 */
        5119  +
                    .unwrap_or_else(|| String::from("hi")),
        5120  +
                /* ServerBuilderGenerator.kt:546 */
        5121  +
                farewell: self.farewell,
 3863   5122   
                /* ServerBuilderGenerator.kt:542 */
 3864   5123   
            }
 3865   5124   
            /* ServerBuilderGenerator.kt:283 */
 3866   5125   
        }
 3867   5126   
        /* ServerBuilderGenerator.kt:215 */
 3868   5127   
    }
 3869   5128   
 3870   5129   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3871   5130   
}
 3872         -
/// /* ServerBuilderGenerator.kt:171 */See [`TestConfig`](crate::model::TestConfig).
 3873         -
pub mod test_config {
        5131  +
/// /* ServerBuilderGenerator.kt:171 */See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
        5132  +
pub mod validation_exception_field {
 3874   5133   
 3875         -
    /* ServerBuilderGenerator.kt:461 */
 3876         -
    impl ::std::convert::From<Builder> for crate::model::TestConfig {
 3877         -
        fn from(builder: Builder) -> Self {
        5134  +
    /* RustType.kt:534 */
        5135  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        5136  +
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
        5137  +
    /* RustType.kt:534 */
        5138  +
    #[non_exhaustive]
        5139  +
    /* ServerBuilderConstraintViolations.kt:75 */
        5140  +
    #[allow(clippy::enum_variant_names)]
        5141  +
    pub enum ConstraintViolation {
        5142  +
        /// /* ServerBuilderConstraintViolations.kt:137 */`path` was not provided but it is required when building `ValidationExceptionField`.
        5143  +
        /* ServerBuilderConstraintViolations.kt:144 */
        5144  +
        MissingPath,
        5145  +
        /// /* ServerBuilderConstraintViolations.kt:137 */`message` was not provided but it is required when building `ValidationExceptionField`.
        5146  +
        /* ServerBuilderConstraintViolations.kt:144 */
        5147  +
        MissingMessage,
        5148  +
        /* ServerBuilderConstraintViolations.kt:75 */
        5149  +
    }
        5150  +
    /* ServerBuilderConstraintViolations.kt:116 */
        5151  +
    impl ::std::fmt::Display for ConstraintViolation {
        5152  +
        /* ServerBuilderConstraintViolations.kt:117 */
        5153  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        5154  +
            /* ServerBuilderConstraintViolations.kt:118 */
        5155  +
            match self {
        5156  +
                /* ServerBuilderConstraintViolations.kt:126 */ConstraintViolation::MissingPath => write!(f, "`path` was not provided but it is required when building `ValidationExceptionField`"),
        5157  +
                /* ServerBuilderConstraintViolations.kt:126 */ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationExceptionField`"),
        5158  +
            /* ServerBuilderConstraintViolations.kt:118 */}
        5159  +
            /* ServerBuilderConstraintViolations.kt:117 */
        5160  +
        }
        5161  +
        /* ServerBuilderConstraintViolations.kt:116 */
        5162  +
    }
        5163  +
    /* ServerBuilderConstraintViolations.kt:83 */
        5164  +
    impl ::std::error::Error for ConstraintViolation {}
        5165  +
    /* ServerBuilderGenerator.kt:446 */
        5166  +
    impl ::std::convert::TryFrom<Builder> for crate::model::ValidationExceptionField {
        5167  +
        type Error = ConstraintViolation;
        5168  +
        5169  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 3878   5170   
            builder.build()
 3879   5171   
        }
 3880   5172   
    }
 3881         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`TestConfig`](crate::model::TestConfig).
        5173  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 3882   5174   
    /* RustType.kt:534 */
 3883   5175   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 3884   5176   
    /* ServerBuilderGenerator.kt:211 */
 3885   5177   
    pub struct Builder {
 3886   5178   
        /* ServerBuilderGenerator.kt:308 */
 3887         -
        pub(crate) timeout: ::std::option::Option<i32>,
        5179  +
        pub(crate) path: ::std::option::Option<::std::string::String>,
        5180  +
        /* ServerBuilderGenerator.kt:308 */
        5181  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
 3888   5182   
        /* ServerBuilderGenerator.kt:211 */
 3889   5183   
    }
 3890   5184   
    /* ServerBuilderGenerator.kt:215 */
 3891   5185   
    impl Builder {
 3892         -
        /* ServerBuilderGenerator.kt:331 */
 3893         -
        #[allow(missing_docs)] // documentation missing in model
 3894         -
                               /* ServerBuilderGenerator.kt:343 */
 3895         -
        pub fn timeout(mut self, input: ::std::option::Option<i32>) -> Self {
        5186  +
        /// /* ServerBuilderGenerator.kt:331 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
        5187  +
        /* ServerBuilderGenerator.kt:343 */
        5188  +
        pub fn path(mut self, input: ::std::string::String) -> Self {
 3896   5189   
            /* ServerBuilderGenerator.kt:344 */
 3897         -
            self.timeout =
 3898         -
                /* ServerBuilderGenerator.kt:376 */input
        5190  +
            self.path =
        5191  +
                /* ServerBuilderGenerator.kt:345 */Some(
        5192  +
                    /* ServerBuilderGenerator.kt:376 */input
        5193  +
                /* ServerBuilderGenerator.kt:345 */)
 3899   5194   
            /* ServerBuilderGenerator.kt:344 */;
 3900   5195   
            self
 3901   5196   
            /* ServerBuilderGenerator.kt:343 */
 3902   5197   
        }
 3903         -
        /* ServerBuilderGenerator.kt:426 */
 3904         -
        #[allow(missing_docs)] // documentation missing in model
 3905         -
                               /* ServerBuilderGenerator.kt:428 */
 3906         -
        pub(crate) fn set_timeout(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
 3907         -
            /* ServerBuilderGenerator.kt:429 */
 3908         -
            self.timeout = input.map(|v| v.into());
        5198  +
        /// /* ServerBuilderGenerator.kt:331 */A detailed description of the validation failure.
        5199  +
        /* ServerBuilderGenerator.kt:343 */
        5200  +
        pub fn message(mut self, input: ::std::string::String) -> Self {
        5201  +
            /* ServerBuilderGenerator.kt:344 */
        5202  +
            self.message =
        5203  +
                /* ServerBuilderGenerator.kt:345 */Some(
        5204  +
                    /* ServerBuilderGenerator.kt:376 */input
        5205  +
                /* ServerBuilderGenerator.kt:345 */)
        5206  +
            /* ServerBuilderGenerator.kt:344 */;
 3909   5207   
            self
 3910         -
            /* ServerBuilderGenerator.kt:428 */
        5208  +
            /* ServerBuilderGenerator.kt:343 */
 3911   5209   
        }
 3912         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`TestConfig`](crate::model::TestConfig).
        5210  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ValidationExceptionField`](crate::model::ValidationExceptionField).
        5211  +
        /// /* ServerBuilderGenerator.kt:260 */
        5212  +
        /// The builder fails to construct a [`ValidationExceptionField`](crate::model::ValidationExceptionField) if a [`ConstraintViolation`] occurs.
        5213  +
        ///
        5214  +
        /// /* ServerBuilderGenerator.kt:268 */If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
 3913   5215   
        /* ServerBuilderGenerator.kt:271 */
 3914         -
        pub fn build(self) -> crate::model::TestConfig {
        5216  +
        pub fn build(self) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
 3915   5217   
            self.build_enforcing_all_constraints()
 3916   5218   
        }
 3917   5219   
        /* ServerBuilderGenerator.kt:283 */
 3918         -
        fn build_enforcing_all_constraints(self) -> crate::model::TestConfig {
 3919         -
            /* ServerBuilderGenerator.kt:542 */
 3920         -
            crate::model::TestConfig {
 3921         -
                /* ServerBuilderGenerator.kt:546 */
 3922         -
                timeout: self.timeout,
        5220  +
        fn build_enforcing_all_constraints(
        5221  +
            self,
        5222  +
        ) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
        5223  +
            /* ServerBuilderGenerator.kt:287 */
        5224  +
            Ok(
 3923   5225   
                /* ServerBuilderGenerator.kt:542 */
 3924         -
            }
        5226  +
                crate::model::ValidationExceptionField {
        5227  +
                    /* ServerBuilderGenerator.kt:546 */
        5228  +
                    path: self
        5229  +
                        .path
        5230  +
                        /* ServerBuilderGenerator.kt:569 */
        5231  +
                        .ok_or(ConstraintViolation::MissingPath)?,
        5232  +
                    /* ServerBuilderGenerator.kt:546 */
        5233  +
                    message: self
        5234  +
                        .message
        5235  +
                        /* ServerBuilderGenerator.kt:569 */
        5236  +
                        .ok_or(ConstraintViolation::MissingMessage)?,
        5237  +
                    /* ServerBuilderGenerator.kt:542 */
        5238  +
                }, /* ServerBuilderGenerator.kt:287 */
        5239  +
            )
 3925   5240   
            /* ServerBuilderGenerator.kt:283 */
 3926   5241   
        }
 3927   5242   
        /* ServerBuilderGenerator.kt:215 */
 3928   5243   
    }
 3929   5244   
 3930   5245   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3931   5246   
}
 3932         -
/// /* ServerBuilderGenerator.kt:171 */See [`Unit`](crate::model::Unit).
 3933         -
pub mod unit {
        5247  +
/// /* ServerBuilderGenerator.kt:171 */See [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
        5248  +
pub mod recursive_shapes_input_output_nested2 {
 3934   5249   
 3935   5250   
    /* ServerBuilderGenerator.kt:461 */
 3936         -
    impl ::std::convert::From<Builder> for crate::model::Unit {
        5251  +
    impl ::std::convert::From<Builder> for crate::model::RecursiveShapesInputOutputNested2 {
 3937   5252   
        fn from(builder: Builder) -> Self {
 3938   5253   
            builder.build()
 3939   5254   
        }
 3940         -
    }
 3941         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Unit`](crate::model::Unit).
 3942         -
    /* RustType.kt:534 */
 3943         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 3944         -
    /* ServerBuilderGenerator.kt:211 */
 3945         -
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
 3946         -
    /* ServerBuilderGenerator.kt:215 */
 3947         -
    impl Builder {
 3948         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Unit`](crate::model::Unit).
        5255  +
    }
        5256  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
        5257  +
    /* RustType.kt:534 */
        5258  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        5259  +
    /* ServerBuilderGenerator.kt:211 */
        5260  +
    pub struct Builder {
        5261  +
        /* ServerBuilderGenerator.kt:308 */
        5262  +
        pub(crate) bar: ::std::option::Option<::std::string::String>,
        5263  +
        /* ServerBuilderGenerator.kt:308 */
        5264  +
        pub(crate) recursive_member:
        5265  +
            ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
        5266  +
        /* ServerBuilderGenerator.kt:211 */
        5267  +
    }
        5268  +
    /* ServerBuilderGenerator.kt:215 */
        5269  +
    impl Builder {
        5270  +
        /* ServerBuilderGenerator.kt:331 */
        5271  +
        #[allow(missing_docs)] // documentation missing in model
        5272  +
                               /* ServerBuilderGenerator.kt:343 */
        5273  +
        pub fn bar(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        5274  +
            /* ServerBuilderGenerator.kt:344 */
        5275  +
            self.bar =
        5276  +
                /* ServerBuilderGenerator.kt:376 */input
        5277  +
            /* ServerBuilderGenerator.kt:344 */;
        5278  +
            self
        5279  +
            /* ServerBuilderGenerator.kt:343 */
        5280  +
        }
        5281  +
        /* ServerBuilderGenerator.kt:426 */
        5282  +
        #[allow(missing_docs)] // documentation missing in model
        5283  +
                               /* ServerBuilderGenerator.kt:428 */
        5284  +
        pub(crate) fn set_bar(
        5285  +
            mut self,
        5286  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        5287  +
        ) -> Self {
        5288  +
            /* ServerBuilderGenerator.kt:429 */
        5289  +
            self.bar = input.map(|v| v.into());
        5290  +
            self
        5291  +
            /* ServerBuilderGenerator.kt:428 */
        5292  +
        }
        5293  +
        /* ServerBuilderGenerator.kt:331 */
        5294  +
        #[allow(missing_docs)] // documentation missing in model
        5295  +
                               /* ServerBuilderGenerator.kt:343 */
        5296  +
        pub fn recursive_member(
        5297  +
            mut self,
        5298  +
            input: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
        5299  +
        ) -> Self {
        5300  +
            /* ServerBuilderGenerator.kt:344 */
        5301  +
            self.recursive_member =
        5302  +
                /* ServerBuilderGenerator.kt:376 */input
        5303  +
            /* ServerBuilderGenerator.kt:344 */;
        5304  +
            self
        5305  +
            /* ServerBuilderGenerator.kt:343 */
        5306  +
        }
        5307  +
        /* ServerBuilderGenerator.kt:426 */
        5308  +
        #[allow(missing_docs)] // documentation missing in model
        5309  +
                               /* ServerBuilderGenerator.kt:428 */
        5310  +
        pub(crate) fn set_recursive_member(
        5311  +
            mut self,
        5312  +
            input: Option<
        5313  +
                impl ::std::convert::Into<crate::model::RecursiveShapesInputOutputNested1>,
        5314  +
            >,
        5315  +
        ) -> Self {
        5316  +
            /* ServerBuilderGenerator.kt:429 */
        5317  +
            self.recursive_member = input.map(|v| v.into());
        5318  +
            self
        5319  +
            /* ServerBuilderGenerator.kt:428 */
        5320  +
        }
        5321  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 3949   5322   
        /* ServerBuilderGenerator.kt:271 */
 3950         -
        pub fn build(self) -> crate::model::Unit {
        5323  +
        pub fn build(self) -> crate::model::RecursiveShapesInputOutputNested2 {
 3951   5324   
            self.build_enforcing_all_constraints()
 3952   5325   
        }
 3953   5326   
        /* ServerBuilderGenerator.kt:283 */
 3954         -
        fn build_enforcing_all_constraints(self) -> crate::model::Unit {
        5327  +
        fn build_enforcing_all_constraints(
        5328  +
            self,
        5329  +
        ) -> crate::model::RecursiveShapesInputOutputNested2 {
 3955   5330   
            /* ServerBuilderGenerator.kt:542 */
 3956         -
            crate::model::Unit {
 3957         -
            /* ServerBuilderGenerator.kt:542 */}
        5331  +
            crate::model::RecursiveShapesInputOutputNested2 {
        5332  +
                /* ServerBuilderGenerator.kt:546 */
        5333  +
                bar: self.bar,
        5334  +
                /* ServerBuilderGenerator.kt:546 */
        5335  +
                recursive_member: self.recursive_member,
        5336  +
                /* ServerBuilderGenerator.kt:542 */
        5337  +
            }
 3958   5338   
            /* ServerBuilderGenerator.kt:283 */
 3959   5339   
        }
 3960   5340   
        /* ServerBuilderGenerator.kt:215 */
 3961   5341   
    }
 3962   5342   
 3963   5343   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3964   5344   
}
 3965         -
pub mod my_union {
 3966         -
 3967         -
    /* RustType.kt:534 */
 3968         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 3969         -
    /* UnconstrainedUnionGenerator.kt:150 */
 3970         -
    #[allow(clippy::enum_variant_names)]
 3971         -
    pub enum ConstraintViolation {
 3972         -
        /* UnconstrainedUnionGenerator.kt:218 */
 3973         -
        EnumValue(crate::model::foo_enum::ConstraintViolation),
 3974         -
        /* UnconstrainedUnionGenerator.kt:150 */
 3975         -
    }
 3976         -
    /* UnconstrainedUnionGenerator.kt:158 */
 3977         -
    impl ::std::fmt::Display for ConstraintViolation {
 3978         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3979         -
            match self {
 3980         -
                Self::EnumValue(inner) => write!(f, "{inner}"),
 3981         -
            }
 3982         -
        }
 3983         -
    }
 3984         -
 3985         -
    impl ::std::error::Error for ConstraintViolation {}
 3986         -
    /* UnconstrainedUnionGenerator.kt:176 */
 3987         -
    impl ConstraintViolation {
 3988         -
        pub(crate) fn as_validation_exception_field(
 3989         -
            self,
 3990         -
            path: ::std::string::String,
 3991         -
        ) -> crate::model::ValidationExceptionField {
 3992         -
            match self {
 3993         -
                Self::EnumValue(inner) => inner.as_validation_exception_field(path + "/enumValue"),
 3994         -
            }
 3995         -
        }
 3996         -
    }
 3997         -
 3998         -
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3999         -
}
 4000         -
/// /* ServerBuilderGenerator.kt:171 */See [`RenamedGreeting`](crate::model::RenamedGreeting).
 4001         -
pub mod renamed_greeting {
        5345  +
/// /* ServerBuilderGenerator.kt:171 */See [`StructureListMember`](crate::model::StructureListMember).
        5346  +
pub mod structure_list_member {
 4002   5347   
 4003   5348   
    /* ServerBuilderGenerator.kt:461 */
 4004         -
    impl ::std::convert::From<Builder> for crate::model::RenamedGreeting {
        5349  +
    impl ::std::convert::From<Builder> for crate::model::StructureListMember {
 4005   5350   
        fn from(builder: Builder) -> Self {
 4006   5351   
            builder.build()
 4007   5352   
        }
 4008   5353   
    }
 4009         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`RenamedGreeting`](crate::model::RenamedGreeting).
        5354  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`StructureListMember`](crate::model::StructureListMember).
 4010   5355   
    /* RustType.kt:534 */
 4011   5356   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 4012   5357   
    /* ServerBuilderGenerator.kt:211 */
 4013   5358   
    pub struct Builder {
 4014   5359   
        /* ServerBuilderGenerator.kt:308 */
 4015         -
        pub(crate) salutation: ::std::option::Option<::std::string::String>,
        5360  +
        pub(crate) a: ::std::option::Option<::std::string::String>,
        5361  +
        /* ServerBuilderGenerator.kt:308 */
        5362  +
        pub(crate) b: ::std::option::Option<::std::string::String>,
 4016   5363   
        /* ServerBuilderGenerator.kt:211 */
 4017   5364   
    }
 4018   5365   
    /* ServerBuilderGenerator.kt:215 */
 4019   5366   
    impl Builder {
 4020   5367   
        /* ServerBuilderGenerator.kt:331 */
 4021   5368   
        #[allow(missing_docs)] // documentation missing in model
 4022   5369   
                               /* ServerBuilderGenerator.kt:343 */
 4023         -
        pub fn salutation(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        5370  +
        pub fn a(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4024   5371   
            /* ServerBuilderGenerator.kt:344 */
 4025         -
            self.salutation =
        5372  +
            self.a =
 4026   5373   
                /* ServerBuilderGenerator.kt:376 */input
 4027   5374   
            /* ServerBuilderGenerator.kt:344 */;
 4028   5375   
            self
 4029   5376   
            /* ServerBuilderGenerator.kt:343 */
 4030   5377   
        }
 4031   5378   
        /* ServerBuilderGenerator.kt:426 */
 4032   5379   
        #[allow(missing_docs)] // documentation missing in model
 4033   5380   
                               /* ServerBuilderGenerator.kt:428 */
 4034         -
        pub(crate) fn set_salutation(
        5381  +
        pub(crate) fn set_a(
 4035   5382   
            mut self,
 4036   5383   
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 4037   5384   
        ) -> Self {
 4038   5385   
            /* ServerBuilderGenerator.kt:429 */
 4039         -
            self.salutation = input.map(|v| v.into());
        5386  +
            self.a = input.map(|v| v.into());
 4040   5387   
            self
 4041   5388   
            /* ServerBuilderGenerator.kt:428 */
 4042   5389   
        }
 4043         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`RenamedGreeting`](crate::model::RenamedGreeting).
        5390  +
        /* ServerBuilderGenerator.kt:331 */
        5391  +
        #[allow(missing_docs)] // documentation missing in model
        5392  +
                               /* ServerBuilderGenerator.kt:343 */
        5393  +
        pub fn b(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        5394  +
            /* ServerBuilderGenerator.kt:344 */
        5395  +
            self.b =
        5396  +
                /* ServerBuilderGenerator.kt:376 */input
        5397  +
            /* ServerBuilderGenerator.kt:344 */;
        5398  +
            self
        5399  +
            /* ServerBuilderGenerator.kt:343 */
        5400  +
        }
        5401  +
        /* ServerBuilderGenerator.kt:426 */
        5402  +
        #[allow(missing_docs)] // documentation missing in model
        5403  +
                               /* ServerBuilderGenerator.kt:428 */
        5404  +
        pub(crate) fn set_b(
        5405  +
            mut self,
        5406  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        5407  +
        ) -> Self {
        5408  +
            /* ServerBuilderGenerator.kt:429 */
        5409  +
            self.b = input.map(|v| v.into());
        5410  +
            self
        5411  +
            /* ServerBuilderGenerator.kt:428 */
        5412  +
        }
        5413  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`StructureListMember`](crate::model::StructureListMember).
 4044   5414   
        /* ServerBuilderGenerator.kt:271 */
 4045         -
        pub fn build(self) -> crate::model::RenamedGreeting {
        5415  +
        pub fn build(self) -> crate::model::StructureListMember {
 4046   5416   
            self.build_enforcing_all_constraints()
 4047   5417   
        }
 4048   5418   
        /* ServerBuilderGenerator.kt:283 */
 4049         -
        fn build_enforcing_all_constraints(self) -> crate::model::RenamedGreeting {
        5419  +
        fn build_enforcing_all_constraints(self) -> crate::model::StructureListMember {
 4050   5420   
            /* ServerBuilderGenerator.kt:542 */
 4051         -
            crate::model::RenamedGreeting {
        5421  +
            crate::model::StructureListMember {
 4052   5422   
                /* ServerBuilderGenerator.kt:546 */
 4053         -
                salutation: self.salutation,
        5423  +
                a: self.a,
        5424  +
                /* ServerBuilderGenerator.kt:546 */
        5425  +
                b: self.b,
 4054   5426   
                /* ServerBuilderGenerator.kt:542 */
 4055   5427   
            }
 4056   5428   
            /* ServerBuilderGenerator.kt:283 */
 4057   5429   
        }
 4058   5430   
        /* ServerBuilderGenerator.kt:215 */
 4059   5431   
    }
 4060   5432   
 4061   5433   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4062   5434   
}
 4063   5435   
/// /* ServerBuilderGenerator.kt:171 */See [`GreetingStruct`](crate::model::GreetingStruct).
@@ -4096,5468 +4920,6477 @@
 4116   5488   
                hi: self.hi,
 4117   5489   
                /* ServerBuilderGenerator.kt:542 */
 4118   5490   
            }
 4119   5491   
            /* ServerBuilderGenerator.kt:283 */
 4120   5492   
        }
 4121   5493   
        /* ServerBuilderGenerator.kt:215 */
 4122   5494   
    }
 4123   5495   
 4124   5496   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4125   5497   
}
 4126         -
pub mod sparse_set_map {
 4127         -
 4128         -
    /* MapConstraintViolationGenerator.kt:82 */
 4129         -
    #[allow(clippy::enum_variant_names)]
 4130         -
    #[derive(Debug, PartialEq)]
 4131         -
    pub enum ConstraintViolation {
 4132         -
        #[doc(hidden)]
 4133         -
        Value(
 4134         -
            ::std::string::String,
 4135         -
            crate::model::string_set::ConstraintViolation,
 4136         -
        ),
 4137         -
    }
        5498  +
/// /* ServerBuilderGenerator.kt:171 */See [`RenamedGreeting`](crate::model::RenamedGreeting).
        5499  +
pub mod renamed_greeting {
 4138   5500   
 4139         -
    impl ::std::fmt::Display for ConstraintViolation {
 4140         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4141         -
            match self {
 4142         -
                Self::Value(_, value_constraint_violation) => {
 4143         -
                    write!(f, "{}", value_constraint_violation)
 4144         -
                }
 4145         -
            }
        5501  +
    /* ServerBuilderGenerator.kt:461 */
        5502  +
    impl ::std::convert::From<Builder> for crate::model::RenamedGreeting {
        5503  +
        fn from(builder: Builder) -> Self {
        5504  +
            builder.build()
 4146   5505   
        }
 4147   5506   
    }
 4148         -
 4149         -
    impl ::std::error::Error for ConstraintViolation {}
 4150         -
    /* MapConstraintViolationGenerator.kt:111 */
 4151         -
    impl ConstraintViolation {
 4152         -
        pub(crate) fn as_validation_exception_field(
 4153         -
            self,
 4154         -
            path: ::std::string::String,
 4155         -
        ) -> crate::model::ValidationExceptionField {
 4156         -
            match self {
 4157         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 4158         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
        5507  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`RenamedGreeting`](crate::model::RenamedGreeting).
        5508  +
    /* RustType.kt:534 */
        5509  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        5510  +
    /* ServerBuilderGenerator.kt:211 */
        5511  +
    pub struct Builder {
        5512  +
        /* ServerBuilderGenerator.kt:308 */
        5513  +
        pub(crate) salutation: ::std::option::Option<::std::string::String>,
        5514  +
        /* ServerBuilderGenerator.kt:211 */
        5515  +
    }
        5516  +
    /* ServerBuilderGenerator.kt:215 */
        5517  +
    impl Builder {
        5518  +
        /* ServerBuilderGenerator.kt:331 */
        5519  +
        #[allow(missing_docs)] // documentation missing in model
        5520  +
                               /* ServerBuilderGenerator.kt:343 */
        5521  +
        pub fn salutation(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        5522  +
            /* ServerBuilderGenerator.kt:344 */
        5523  +
            self.salutation =
        5524  +
                /* ServerBuilderGenerator.kt:376 */input
        5525  +
            /* ServerBuilderGenerator.kt:344 */;
        5526  +
            self
        5527  +
            /* ServerBuilderGenerator.kt:343 */
        5528  +
        }
        5529  +
        /* ServerBuilderGenerator.kt:426 */
        5530  +
        #[allow(missing_docs)] // documentation missing in model
        5531  +
                               /* ServerBuilderGenerator.kt:428 */
        5532  +
        pub(crate) fn set_salutation(
        5533  +
            mut self,
        5534  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        5535  +
        ) -> Self {
        5536  +
            /* ServerBuilderGenerator.kt:429 */
        5537  +
            self.salutation = input.map(|v| v.into());
        5538  +
            self
        5539  +
            /* ServerBuilderGenerator.kt:428 */
        5540  +
        }
        5541  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`RenamedGreeting`](crate::model::RenamedGreeting).
        5542  +
        /* ServerBuilderGenerator.kt:271 */
        5543  +
        pub fn build(self) -> crate::model::RenamedGreeting {
        5544  +
            self.build_enforcing_all_constraints()
        5545  +
        }
        5546  +
        /* ServerBuilderGenerator.kt:283 */
        5547  +
        fn build_enforcing_all_constraints(self) -> crate::model::RenamedGreeting {
        5548  +
            /* ServerBuilderGenerator.kt:542 */
        5549  +
            crate::model::RenamedGreeting {
        5550  +
                /* ServerBuilderGenerator.kt:546 */
        5551  +
                salutation: self.salutation,
        5552  +
                /* ServerBuilderGenerator.kt:542 */
 4159   5553   
            }
        5554  +
            /* ServerBuilderGenerator.kt:283 */
 4160   5555   
        }
        5556  +
        /* ServerBuilderGenerator.kt:215 */
 4161   5557   
    }
 4162   5558   
 4163   5559   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4164   5560   
}
 4165         -
/// /* CodegenDelegator.kt:52 */See [`StringSet`](crate::model::StringSet).
 4166         -
pub mod string_set {
 4167         -
 4168         -
    /* CollectionConstraintViolationGenerator.kt:78 */
 4169         -
    #[allow(clippy::enum_variant_names)]
 4170         -
    #[derive(Debug, PartialEq)]
 4171         -
    pub enum ConstraintViolation {
 4172         -
        /// Constraint violation error when the list does not contain unique items
 4173         -
        UniqueItems {
 4174         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 4175         -
            /// at least two elements.
 4176         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 4177         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 4178         -
            /// Nothing is guaranteed about the order of the indices.
 4179         -
            duplicate_indices: ::std::vec::Vec<usize>,
 4180         -
            /// The original vector, that contains duplicate items.
 4181         -
            original: ::std::vec::Vec<::std::string::String>,
 4182         -
        },
 4183         -
    }
        5561  +
/// /* ServerBuilderGenerator.kt:171 */See [`Unit`](crate::model::Unit).
        5562  +
pub mod unit {
 4184   5563   
 4185         -
    impl ::std::fmt::Display for ConstraintViolation {
 4186         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4187         -
            let message = match self {
 4188         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 4189         -
                            format!("Value with repeated values at indices {:?} provided for 'aws.protocoltests.shared#StringSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 4190         -
                            };
 4191         -
            write!(f, "{message}")
        5564  +
    /* ServerBuilderGenerator.kt:461 */
        5565  +
    impl ::std::convert::From<Builder> for crate::model::Unit {
        5566  +
        fn from(builder: Builder) -> Self {
        5567  +
            builder.build()
 4192   5568   
        }
 4193   5569   
    }
 4194         -
 4195         -
    impl ::std::error::Error for ConstraintViolation {}
 4196         -
    /* CollectionConstraintViolationGenerator.kt:104 */
 4197         -
    impl ConstraintViolation {
 4198         -
        pub(crate) fn as_validation_exception_field(
 4199         -
            self,
 4200         -
            path: ::std::string::String,
 4201         -
        ) -> crate::model::ValidationExceptionField {
 4202         -
            match self {
 4203         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 4204         -
                                crate::model::ValidationExceptionField {
 4205         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 4206         -
                                    path,
 4207         -
                                },
 4208         -
                    }
        5570  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Unit`](crate::model::Unit).
        5571  +
    /* RustType.kt:534 */
        5572  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        5573  +
    /* ServerBuilderGenerator.kt:211 */
        5574  +
    pub struct Builder {/* ServerBuilderGenerator.kt:211 */}
        5575  +
    /* ServerBuilderGenerator.kt:215 */
        5576  +
    impl Builder {
        5577  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Unit`](crate::model::Unit).
        5578  +
        /* ServerBuilderGenerator.kt:271 */
        5579  +
        pub fn build(self) -> crate::model::Unit {
        5580  +
            self.build_enforcing_all_constraints()
        5581  +
        }
        5582  +
        /* ServerBuilderGenerator.kt:283 */
        5583  +
        fn build_enforcing_all_constraints(self) -> crate::model::Unit {
        5584  +
            /* ServerBuilderGenerator.kt:542 */
        5585  +
            crate::model::Unit {
        5586  +
            /* ServerBuilderGenerator.kt:542 */}
        5587  +
            /* ServerBuilderGenerator.kt:283 */
 4209   5588   
        }
        5589  +
        /* ServerBuilderGenerator.kt:215 */
 4210   5590   
    }
 4211   5591   
 4212   5592   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4213   5593   
}
 4214         -
pub mod dense_set_map {
 4215         -
 4216         -
    /* MapConstraintViolationGenerator.kt:82 */
 4217         -
    #[allow(clippy::enum_variant_names)]
 4218         -
    #[derive(Debug, PartialEq)]
 4219         -
    pub enum ConstraintViolation {
 4220         -
        #[doc(hidden)]
 4221         -
        Value(
 4222         -
            ::std::string::String,
 4223         -
            crate::model::string_set::ConstraintViolation,
 4224         -
        ),
 4225         -
    }
        5594  +
/// /* ServerBuilderGenerator.kt:171 */See [`Farewell`](crate::model::Farewell).
        5595  +
pub mod farewell {
 4226   5596   
 4227         -
    impl ::std::fmt::Display for ConstraintViolation {
 4228         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4229         -
            match self {
 4230         -
                Self::Value(_, value_constraint_violation) => {
 4231         -
                    write!(f, "{}", value_constraint_violation)
 4232         -
                }
 4233         -
            }
        5597  +
    /* ServerBuilderGenerator.kt:461 */
        5598  +
    impl ::std::convert::From<Builder> for crate::model::Farewell {
        5599  +
        fn from(builder: Builder) -> Self {
        5600  +
            builder.build()
 4234   5601   
        }
 4235   5602   
    }
 4236         -
 4237         -
    impl ::std::error::Error for ConstraintViolation {}
 4238         -
    /* MapConstraintViolationGenerator.kt:111 */
 4239         -
    impl ConstraintViolation {
 4240         -
        pub(crate) fn as_validation_exception_field(
 4241         -
            self,
 4242         -
            path: ::std::string::String,
 4243         -
        ) -> crate::model::ValidationExceptionField {
 4244         -
            match self {
 4245         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 4246         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
        5603  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Farewell`](crate::model::Farewell).
        5604  +
    /* RustType.kt:534 */
        5605  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        5606  +
    /* ServerBuilderGenerator.kt:211 */
        5607  +
    pub struct Builder {
        5608  +
        /* ServerBuilderGenerator.kt:308 */
        5609  +
        pub(crate) phrase: ::std::option::Option<::std::string::String>,
        5610  +
        /* ServerBuilderGenerator.kt:211 */
        5611  +
    }
        5612  +
    /* ServerBuilderGenerator.kt:215 */
        5613  +
    impl Builder {
        5614  +
        /* ServerBuilderGenerator.kt:331 */
        5615  +
        #[allow(missing_docs)] // documentation missing in model
        5616  +
                               /* ServerBuilderGenerator.kt:343 */
        5617  +
        pub fn phrase(mut self, input: ::std::string::String) -> Self {
        5618  +
            /* ServerBuilderGenerator.kt:344 */
        5619  +
            self.phrase =
        5620  +
                /* ServerBuilderGenerator.kt:345 */Some(
        5621  +
                    /* ServerBuilderGenerator.kt:376 */input
        5622  +
                /* ServerBuilderGenerator.kt:345 */)
        5623  +
            /* ServerBuilderGenerator.kt:344 */;
        5624  +
            self
        5625  +
            /* ServerBuilderGenerator.kt:343 */
        5626  +
        }
        5627  +
        /* ServerBuilderGenerator.kt:426 */
        5628  +
        #[allow(missing_docs)] // documentation missing in model
        5629  +
                               /* ServerBuilderGenerator.kt:428 */
        5630  +
        pub(crate) fn set_phrase(
        5631  +
            mut self,
        5632  +
            input: impl ::std::convert::Into<::std::string::String>,
        5633  +
        ) -> Self {
        5634  +
            /* ServerBuilderGenerator.kt:429 */
        5635  +
            self.phrase = Some(input.into());
        5636  +
            self
        5637  +
            /* ServerBuilderGenerator.kt:428 */
        5638  +
        }
        5639  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Farewell`](crate::model::Farewell).
        5640  +
        /* ServerBuilderGenerator.kt:271 */
        5641  +
        pub fn build(self) -> crate::model::Farewell {
        5642  +
            self.build_enforcing_all_constraints()
        5643  +
        }
        5644  +
        /* ServerBuilderGenerator.kt:283 */
        5645  +
        fn build_enforcing_all_constraints(self) -> crate::model::Farewell {
        5646  +
            /* ServerBuilderGenerator.kt:542 */
        5647  +
            crate::model::Farewell {
        5648  +
                /* ServerBuilderGenerator.kt:546 */
        5649  +
                phrase: self
        5650  +
                    .phrase
        5651  +
                    /* ServerBuilderGeneratorCommon.kt:129 */
        5652  +
                    .unwrap_or_else(|| String::from("bye")),
        5653  +
                /* ServerBuilderGenerator.kt:542 */
 4247   5654   
            }
        5655  +
            /* ServerBuilderGenerator.kt:283 */
 4248   5656   
        }
        5657  +
        /* ServerBuilderGenerator.kt:215 */
 4249   5658   
    }
 4250   5659   
 4251   5660   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4252   5661   
}
 4253         -
/// /* ServerBuilderGenerator.kt:171 */See [`StructureListMember`](crate::model::StructureListMember).
 4254         -
pub mod structure_list_member {
        5662  +
/// /* ServerBuilderGenerator.kt:171 */See [`HeadersEvent`](crate::model::HeadersEvent).
        5663  +
pub mod headers_event {
 4255   5664   
 4256   5665   
    /* ServerBuilderGenerator.kt:461 */
 4257         -
    impl ::std::convert::From<Builder> for crate::model::StructureListMember {
        5666  +
    impl ::std::convert::From<Builder> for crate::model::HeadersEvent {
 4258   5667   
        fn from(builder: Builder) -> Self {
 4259   5668   
            builder.build()
 4260   5669   
        }
 4261   5670   
    }
 4262         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`StructureListMember`](crate::model::StructureListMember).
        5671  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`HeadersEvent`](crate::model::HeadersEvent).
 4263   5672   
    /* RustType.kt:534 */
 4264   5673   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 4265   5674   
    /* ServerBuilderGenerator.kt:211 */
 4266   5675   
    pub struct Builder {
 4267   5676   
        /* ServerBuilderGenerator.kt:308 */
 4268         -
        pub(crate) a: ::std::option::Option<::std::string::String>,
        5677  +
        pub(crate) boolean_header: ::std::option::Option<bool>,
 4269   5678   
        /* ServerBuilderGenerator.kt:308 */
 4270         -
        pub(crate) b: ::std::option::Option<::std::string::String>,
        5679  +
        pub(crate) byte_header: ::std::option::Option<i8>,
        5680  +
        /* ServerBuilderGenerator.kt:308 */
        5681  +
        pub(crate) short_header: ::std::option::Option<i16>,
        5682  +
        /* ServerBuilderGenerator.kt:308 */
        5683  +
        pub(crate) int_header: ::std::option::Option<i32>,
        5684  +
        /* ServerBuilderGenerator.kt:308 */
        5685  +
        pub(crate) long_header: ::std::option::Option<i64>,
        5686  +
        /* ServerBuilderGenerator.kt:308 */
        5687  +
        pub(crate) blob_header: ::std::option::Option<::aws_smithy_types::Blob>,
        5688  +
        /* ServerBuilderGenerator.kt:308 */
        5689  +
        pub(crate) string_header: ::std::option::Option<::std::string::String>,
        5690  +
        /* ServerBuilderGenerator.kt:308 */
        5691  +
        pub(crate) timestamp_header: ::std::option::Option<::aws_smithy_types::DateTime>,
 4271   5692   
        /* ServerBuilderGenerator.kt:211 */
 4272   5693   
    }
 4273   5694   
    /* ServerBuilderGenerator.kt:215 */
 4274   5695   
    impl Builder {
 4275   5696   
        /* ServerBuilderGenerator.kt:331 */
 4276   5697   
        #[allow(missing_docs)] // documentation missing in model
 4277   5698   
                               /* ServerBuilderGenerator.kt:343 */
 4278         -
        pub fn a(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        5699  +
        pub fn boolean_header(mut self, input: ::std::option::Option<bool>) -> Self {
 4279   5700   
            /* ServerBuilderGenerator.kt:344 */
 4280         -
            self.a =
        5701  +
            self.boolean_header =
 4281   5702   
                /* ServerBuilderGenerator.kt:376 */input
 4282   5703   
            /* ServerBuilderGenerator.kt:344 */;
 4283   5704   
            self
 4284   5705   
            /* ServerBuilderGenerator.kt:343 */
 4285   5706   
        }
 4286   5707   
        /* ServerBuilderGenerator.kt:426 */
 4287   5708   
        #[allow(missing_docs)] // documentation missing in model
 4288   5709   
                               /* ServerBuilderGenerator.kt:428 */
 4289         -
        pub(crate) fn set_a(
        5710  +
        pub(crate) fn set_boolean_header(
 4290   5711   
            mut self,
 4291         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        5712  +
            input: Option<impl ::std::convert::Into<bool>>,
 4292   5713   
        ) -> Self {
 4293   5714   
            /* ServerBuilderGenerator.kt:429 */
 4294         -
            self.a = input.map(|v| v.into());
        5715  +
            self.boolean_header = input.map(|v| v.into());
 4295   5716   
            self
 4296   5717   
            /* ServerBuilderGenerator.kt:428 */
 4297   5718   
        }
 4298   5719   
        /* ServerBuilderGenerator.kt:331 */
 4299   5720   
        #[allow(missing_docs)] // documentation missing in model
 4300   5721   
                               /* ServerBuilderGenerator.kt:343 */
 4301         -
        pub fn b(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        5722  +
        pub fn byte_header(mut self, input: ::std::option::Option<i8>) -> Self {
 4302   5723   
            /* ServerBuilderGenerator.kt:344 */
 4303         -
            self.b =
        5724  +
            self.byte_header =
 4304   5725   
                /* ServerBuilderGenerator.kt:376 */input
 4305   5726   
            /* ServerBuilderGenerator.kt:344 */;
 4306   5727   
            self
 4307   5728   
            /* ServerBuilderGenerator.kt:343 */
 4308   5729   
        }
 4309   5730   
        /* ServerBuilderGenerator.kt:426 */
 4310   5731   
        #[allow(missing_docs)] // documentation missing in model
 4311   5732   
                               /* ServerBuilderGenerator.kt:428 */
 4312         -
        pub(crate) fn set_b(
        5733  +
        pub(crate) fn set_byte_header(
 4313   5734   
            mut self,
 4314         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        5735  +
            input: Option<impl ::std::convert::Into<i8>>,
 4315   5736   
        ) -> Self {
 4316   5737   
            /* ServerBuilderGenerator.kt:429 */
 4317         -
            self.b = input.map(|v| v.into());
        5738  +
            self.byte_header = input.map(|v| v.into());
 4318   5739   
            self
 4319   5740   
            /* ServerBuilderGenerator.kt:428 */
 4320   5741   
        }
 4321         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`StructureListMember`](crate::model::StructureListMember).
 4322         -
        /* ServerBuilderGenerator.kt:271 */
 4323         -
        pub fn build(self) -> crate::model::StructureListMember {
 4324         -
            self.build_enforcing_all_constraints()
        5742  +
        /* ServerBuilderGenerator.kt:331 */
        5743  +
        #[allow(missing_docs)] // documentation missing in model
        5744  +
                               /* ServerBuilderGenerator.kt:343 */
        5745  +
        pub fn short_header(mut self, input: ::std::option::Option<i16>) -> Self {
        5746  +
            /* ServerBuilderGenerator.kt:344 */
        5747  +
            self.short_header =
        5748  +
                /* ServerBuilderGenerator.kt:376 */input
        5749  +
            /* ServerBuilderGenerator.kt:344 */;
        5750  +
            self
        5751  +
            /* ServerBuilderGenerator.kt:343 */
 4325   5752   
        }
 4326         -
        /* ServerBuilderGenerator.kt:283 */
 4327         -
        fn build_enforcing_all_constraints(self) -> crate::model::StructureListMember {
 4328         -
            /* ServerBuilderGenerator.kt:542 */
 4329         -
            crate::model::StructureListMember {
 4330         -
                /* ServerBuilderGenerator.kt:546 */
 4331         -
                a: self.a,
 4332         -
                /* ServerBuilderGenerator.kt:546 */
 4333         -
                b: self.b,
 4334         -
                /* ServerBuilderGenerator.kt:542 */
 4335         -
            }
 4336         -
            /* ServerBuilderGenerator.kt:283 */
        5753  +
        /* ServerBuilderGenerator.kt:426 */
        5754  +
        #[allow(missing_docs)] // documentation missing in model
        5755  +
                               /* ServerBuilderGenerator.kt:428 */
        5756  +
        pub(crate) fn set_short_header(
        5757  +
            mut self,
        5758  +
            input: Option<impl ::std::convert::Into<i16>>,
        5759  +
        ) -> Self {
        5760  +
            /* ServerBuilderGenerator.kt:429 */
        5761  +
            self.short_header = input.map(|v| v.into());
        5762  +
            self
        5763  +
            /* ServerBuilderGenerator.kt:428 */
 4337   5764   
        }
 4338         -
        /* ServerBuilderGenerator.kt:215 */
 4339         -
    }
 4340         -
 4341         -
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4342         -
}
 4343         -
pub mod foo_enum_list {
 4344         -
 4345         -
    /* CollectionConstraintViolationGenerator.kt:78 */
 4346         -
    #[allow(clippy::enum_variant_names)]
 4347         -
    #[derive(Debug, PartialEq)]
 4348         -
    pub enum ConstraintViolation {
 4349         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 4350         -
        /// The first component of the tuple is the index in the collection where the
 4351         -
        /// first constraint violation was found.
 4352         -
        #[doc(hidden)]
 4353         -
        Member(usize, crate::model::foo_enum::ConstraintViolation),
 4354         -
    }
 4355         -
 4356         -
    impl ::std::fmt::Display for ConstraintViolation {
 4357         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4358         -
            let message = match self {
 4359         -
                Self::Member(index, failing_member) => format!(
 4360         -
                    "Value at index {index} failed to satisfy constraint. {}",
 4361         -
                    failing_member
 4362         -
                ),
 4363         -
            };
 4364         -
            write!(f, "{message}")
        5765  +
        /* ServerBuilderGenerator.kt:331 */
        5766  +
        #[allow(missing_docs)] // documentation missing in model
        5767  +
                               /* ServerBuilderGenerator.kt:343 */
        5768  +
        pub fn int_header(mut self, input: ::std::option::Option<i32>) -> Self {
        5769  +
            /* ServerBuilderGenerator.kt:344 */
        5770  +
            self.int_header =
        5771  +
                /* ServerBuilderGenerator.kt:376 */input
        5772  +
            /* ServerBuilderGenerator.kt:344 */;
        5773  +
            self
        5774  +
            /* ServerBuilderGenerator.kt:343 */
 4365   5775   
        }
 4366         -
    }
 4367         -
 4368         -
    impl ::std::error::Error for ConstraintViolation {}
 4369         -
    /* CollectionConstraintViolationGenerator.kt:104 */
 4370         -
    impl ConstraintViolation {
 4371         -
        pub(crate) fn as_validation_exception_field(
 4372         -
            self,
 4373         -
            path: ::std::string::String,
 4374         -
        ) -> crate::model::ValidationExceptionField {
 4375         -
            match self {
 4376         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 4377         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 4378         -
            }
        5776  +
        /* ServerBuilderGenerator.kt:426 */
        5777  +
        #[allow(missing_docs)] // documentation missing in model
        5778  +
                               /* ServerBuilderGenerator.kt:428 */
        5779  +
        pub(crate) fn set_int_header(
        5780  +
            mut self,
        5781  +
            input: Option<impl ::std::convert::Into<i32>>,
        5782  +
        ) -> Self {
        5783  +
            /* ServerBuilderGenerator.kt:429 */
        5784  +
            self.int_header = input.map(|v| v.into());
        5785  +
            self
        5786  +
            /* ServerBuilderGenerator.kt:428 */
 4379   5787   
        }
 4380         -
    }
 4381         -
 4382         -
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4383         -
}
 4384         -
/// /* ServerBuilderGenerator.kt:171 */See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 4385         -
pub mod recursive_shapes_input_output_nested1 {
 4386         -
 4387         -
    /* ServerBuilderGenerator.kt:461 */
 4388         -
    impl ::std::convert::From<Builder> for crate::model::RecursiveShapesInputOutputNested1 {
 4389         -
        fn from(builder: Builder) -> Self {
 4390         -
            builder.build()
        5788  +
        /* ServerBuilderGenerator.kt:331 */
        5789  +
        #[allow(missing_docs)] // documentation missing in model
        5790  +
                               /* ServerBuilderGenerator.kt:343 */
        5791  +
        pub fn long_header(mut self, input: ::std::option::Option<i64>) -> Self {
        5792  +
            /* ServerBuilderGenerator.kt:344 */
        5793  +
            self.long_header =
        5794  +
                /* ServerBuilderGenerator.kt:376 */input
        5795  +
            /* ServerBuilderGenerator.kt:344 */;
        5796  +
            self
        5797  +
            /* ServerBuilderGenerator.kt:343 */
        5798  +
        }
        5799  +
        /* ServerBuilderGenerator.kt:426 */
        5800  +
        #[allow(missing_docs)] // documentation missing in model
        5801  +
                               /* ServerBuilderGenerator.kt:428 */
        5802  +
        pub(crate) fn set_long_header(
        5803  +
            mut self,
        5804  +
            input: Option<impl ::std::convert::Into<i64>>,
        5805  +
        ) -> Self {
        5806  +
            /* ServerBuilderGenerator.kt:429 */
        5807  +
            self.long_header = input.map(|v| v.into());
        5808  +
            self
        5809  +
            /* ServerBuilderGenerator.kt:428 */
        5810  +
        }
        5811  +
        /* ServerBuilderGenerator.kt:331 */
        5812  +
        #[allow(missing_docs)] // documentation missing in model
        5813  +
                               /* ServerBuilderGenerator.kt:343 */
        5814  +
        pub fn blob_header(
        5815  +
            mut self,
        5816  +
            input: ::std::option::Option<::aws_smithy_types::Blob>,
        5817  +
        ) -> Self {
        5818  +
            /* ServerBuilderGenerator.kt:344 */
        5819  +
            self.blob_header =
        5820  +
                /* ServerBuilderGenerator.kt:376 */input
        5821  +
            /* ServerBuilderGenerator.kt:344 */;
        5822  +
            self
        5823  +
            /* ServerBuilderGenerator.kt:343 */
        5824  +
        }
        5825  +
        /* ServerBuilderGenerator.kt:426 */
        5826  +
        #[allow(missing_docs)] // documentation missing in model
        5827  +
                               /* ServerBuilderGenerator.kt:428 */
        5828  +
        pub(crate) fn set_blob_header(
        5829  +
            mut self,
        5830  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Blob>>,
        5831  +
        ) -> Self {
        5832  +
            /* ServerBuilderGenerator.kt:429 */
        5833  +
            self.blob_header = input.map(|v| v.into());
        5834  +
            self
        5835  +
            /* ServerBuilderGenerator.kt:428 */
 4391   5836   
        }
 4392         -
    }
 4393         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 4394         -
    /* RustType.kt:534 */
 4395         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 4396         -
    /* ServerBuilderGenerator.kt:211 */
 4397         -
    pub struct Builder {
 4398         -
        /* ServerBuilderGenerator.kt:308 */
 4399         -
        pub(crate) foo: ::std::option::Option<::std::string::String>,
 4400         -
        /* ServerBuilderGenerator.kt:308 */
 4401         -
        pub(crate) nested: ::std::option::Option<
 4402         -
            ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
 4403         -
        >,
 4404         -
        /* ServerBuilderGenerator.kt:211 */
 4405         -
    }
 4406         -
    /* ServerBuilderGenerator.kt:215 */
 4407         -
    impl Builder {
 4408   5837   
        /* ServerBuilderGenerator.kt:331 */
 4409   5838   
        #[allow(missing_docs)] // documentation missing in model
 4410   5839   
                               /* ServerBuilderGenerator.kt:343 */
 4411         -
        pub fn foo(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        5840  +
        pub fn string_header(
        5841  +
            mut self,
        5842  +
            input: ::std::option::Option<::std::string::String>,
        5843  +
        ) -> Self {
 4412   5844   
            /* ServerBuilderGenerator.kt:344 */
 4413         -
            self.foo =
        5845  +
            self.string_header =
 4414   5846   
                /* ServerBuilderGenerator.kt:376 */input
 4415   5847   
            /* ServerBuilderGenerator.kt:344 */;
 4416   5848   
            self
 4417   5849   
            /* ServerBuilderGenerator.kt:343 */
 4418   5850   
        }
 4419   5851   
        /* ServerBuilderGenerator.kt:426 */
 4420   5852   
        #[allow(missing_docs)] // documentation missing in model
 4421   5853   
                               /* ServerBuilderGenerator.kt:428 */
 4422         -
        pub(crate) fn set_foo(
        5854  +
        pub(crate) fn set_string_header(
 4423   5855   
            mut self,
 4424   5856   
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 4425   5857   
        ) -> Self {
 4426   5858   
            /* ServerBuilderGenerator.kt:429 */
 4427         -
            self.foo = input.map(|v| v.into());
        5859  +
            self.string_header = input.map(|v| v.into());
 4428   5860   
            self
 4429   5861   
            /* ServerBuilderGenerator.kt:428 */
 4430   5862   
        }
 4431   5863   
        /* ServerBuilderGenerator.kt:331 */
 4432   5864   
        #[allow(missing_docs)] // documentation missing in model
 4433   5865   
                               /* ServerBuilderGenerator.kt:343 */
 4434         -
        pub fn nested(
        5866  +
        pub fn timestamp_header(
 4435   5867   
            mut self,
 4436         -
            input: ::std::option::Option<
 4437         -
                ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
 4438         -
            >,
        5868  +
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
 4439   5869   
        ) -> Self {
 4440   5870   
            /* ServerBuilderGenerator.kt:344 */
 4441         -
            self.nested =
        5871  +
            self.timestamp_header =
 4442   5872   
                /* ServerBuilderGenerator.kt:376 */input
 4443   5873   
            /* ServerBuilderGenerator.kt:344 */;
 4444   5874   
            self
 4445   5875   
            /* ServerBuilderGenerator.kt:343 */
 4446   5876   
        }
 4447   5877   
        /* ServerBuilderGenerator.kt:426 */
 4448   5878   
        #[allow(missing_docs)] // documentation missing in model
 4449   5879   
                               /* ServerBuilderGenerator.kt:428 */
 4450         -
        pub(crate) fn set_nested(
        5880  +
        pub(crate) fn set_timestamp_header(
 4451   5881   
            mut self,
 4452         -
            input: Option<
 4453         -
                impl ::std::convert::Into<
 4454         -
                    ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
 4455         -
                >,
 4456         -
            >,
        5882  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
 4457   5883   
        ) -> Self {
 4458   5884   
            /* ServerBuilderGenerator.kt:429 */
 4459         -
            self.nested = input.map(|v| v.into());
        5885  +
            self.timestamp_header = input.map(|v| v.into());
 4460   5886   
            self
 4461   5887   
            /* ServerBuilderGenerator.kt:428 */
 4462   5888   
        }
 4463         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
        5889  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`HeadersEvent`](crate::model::HeadersEvent).
 4464   5890   
        /* ServerBuilderGenerator.kt:271 */
 4465         -
        pub fn build(self) -> crate::model::RecursiveShapesInputOutputNested1 {
        5891  +
        pub fn build(self) -> crate::model::HeadersEvent {
 4466   5892   
            self.build_enforcing_all_constraints()
 4467   5893   
        }
 4468   5894   
        /* ServerBuilderGenerator.kt:283 */
 4469         -
        fn build_enforcing_all_constraints(
 4470         -
            self,
 4471         -
        ) -> crate::model::RecursiveShapesInputOutputNested1 {
        5895  +
        fn build_enforcing_all_constraints(self) -> crate::model::HeadersEvent {
 4472   5896   
            /* ServerBuilderGenerator.kt:542 */
 4473         -
            crate::model::RecursiveShapesInputOutputNested1 {
        5897  +
            crate::model::HeadersEvent {
 4474   5898   
                /* ServerBuilderGenerator.kt:546 */
 4475         -
                foo: self.foo,
        5899  +
                boolean_header: self.boolean_header,
 4476   5900   
                /* ServerBuilderGenerator.kt:546 */
 4477         -
                nested: self.nested,
        5901  +
                byte_header: self.byte_header,
        5902  +
                /* ServerBuilderGenerator.kt:546 */
        5903  +
                short_header: self.short_header,
        5904  +
                /* ServerBuilderGenerator.kt:546 */
        5905  +
                int_header: self.int_header,
        5906  +
                /* ServerBuilderGenerator.kt:546 */
        5907  +
                long_header: self.long_header,
        5908  +
                /* ServerBuilderGenerator.kt:546 */
        5909  +
                blob_header: self.blob_header,
        5910  +
                /* ServerBuilderGenerator.kt:546 */
        5911  +
                string_header: self.string_header,
        5912  +
                /* ServerBuilderGenerator.kt:546 */
        5913  +
                timestamp_header: self.timestamp_header,
 4478   5914   
                /* ServerBuilderGenerator.kt:542 */
 4479   5915   
            }
 4480   5916   
            /* ServerBuilderGenerator.kt:283 */
 4481   5917   
        }
 4482   5918   
        /* ServerBuilderGenerator.kt:215 */
 4483   5919   
    }
 4484   5920   
 4485   5921   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4486   5922   
}
 4487         -
/// /* ServerBuilderGenerator.kt:171 */See [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 4488         -
pub mod recursive_shapes_input_output_nested2 {
        5923  +
/// /* ServerBuilderGenerator.kt:171 */See [`BlobPayloadEvent`](crate::model::BlobPayloadEvent).
        5924  +
pub mod blob_payload_event {
 4489   5925   
 4490   5926   
    /* ServerBuilderGenerator.kt:461 */
 4491         -
    impl ::std::convert::From<Builder> for crate::model::RecursiveShapesInputOutputNested2 {
        5927  +
    impl ::std::convert::From<Builder> for crate::model::BlobPayloadEvent {
 4492   5928   
        fn from(builder: Builder) -> Self {
 4493   5929   
            builder.build()
 4494   5930   
        }
 4495   5931   
    }
 4496         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
        5932  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`BlobPayloadEvent`](crate::model::BlobPayloadEvent).
 4497   5933   
    /* RustType.kt:534 */
 4498   5934   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 4499   5935   
    /* ServerBuilderGenerator.kt:211 */
 4500   5936   
    pub struct Builder {
 4501   5937   
        /* ServerBuilderGenerator.kt:308 */
 4502         -
        pub(crate) bar: ::std::option::Option<::std::string::String>,
 4503         -
        /* ServerBuilderGenerator.kt:308 */
 4504         -
        pub(crate) recursive_member:
 4505         -
            ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
        5938  +
        pub(crate) payload: ::std::option::Option<::aws_smithy_types::Blob>,
 4506   5939   
        /* ServerBuilderGenerator.kt:211 */
 4507   5940   
    }
 4508   5941   
    /* ServerBuilderGenerator.kt:215 */
 4509   5942   
    impl Builder {
 4510   5943   
        /* ServerBuilderGenerator.kt:331 */
 4511   5944   
        #[allow(missing_docs)] // documentation missing in model
 4512   5945   
                               /* ServerBuilderGenerator.kt:343 */
 4513         -
        pub fn bar(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        5946  +
        pub fn payload(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
 4514   5947   
            /* ServerBuilderGenerator.kt:344 */
 4515         -
            self.bar =
        5948  +
            self.payload =
 4516   5949   
                /* ServerBuilderGenerator.kt:376 */input
 4517   5950   
            /* ServerBuilderGenerator.kt:344 */;
 4518   5951   
            self
 4519   5952   
            /* ServerBuilderGenerator.kt:343 */
 4520   5953   
        }
 4521   5954   
        /* ServerBuilderGenerator.kt:426 */
 4522   5955   
        #[allow(missing_docs)] // documentation missing in model
 4523   5956   
                               /* ServerBuilderGenerator.kt:428 */
 4524         -
        pub(crate) fn set_bar(
        5957  +
        pub(crate) fn set_payload(
 4525   5958   
            mut self,
 4526         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        5959  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Blob>>,
 4527   5960   
        ) -> Self {
 4528   5961   
            /* ServerBuilderGenerator.kt:429 */
 4529         -
            self.bar = input.map(|v| v.into());
        5962  +
            self.payload = input.map(|v| v.into());
 4530   5963   
            self
 4531   5964   
            /* ServerBuilderGenerator.kt:428 */
 4532   5965   
        }
        5966  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`BlobPayloadEvent`](crate::model::BlobPayloadEvent).
        5967  +
        /* ServerBuilderGenerator.kt:271 */
        5968  +
        pub fn build(self) -> crate::model::BlobPayloadEvent {
        5969  +
            self.build_enforcing_all_constraints()
        5970  +
        }
        5971  +
        /* ServerBuilderGenerator.kt:283 */
        5972  +
        fn build_enforcing_all_constraints(self) -> crate::model::BlobPayloadEvent {
        5973  +
            /* ServerBuilderGenerator.kt:542 */
        5974  +
            crate::model::BlobPayloadEvent {
        5975  +
                /* ServerBuilderGenerator.kt:546 */
        5976  +
                payload: self.payload,
        5977  +
                /* ServerBuilderGenerator.kt:542 */
        5978  +
            }
        5979  +
            /* ServerBuilderGenerator.kt:283 */
        5980  +
        }
        5981  +
        /* ServerBuilderGenerator.kt:215 */
        5982  +
    }
        5983  +
        5984  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        5985  +
}
        5986  +
/// /* ServerBuilderGenerator.kt:171 */See [`StringPayloadEvent`](crate::model::StringPayloadEvent).
        5987  +
pub mod string_payload_event {
        5988  +
        5989  +
    /* ServerBuilderGenerator.kt:461 */
        5990  +
    impl ::std::convert::From<Builder> for crate::model::StringPayloadEvent {
        5991  +
        fn from(builder: Builder) -> Self {
        5992  +
            builder.build()
        5993  +
        }
        5994  +
    }
        5995  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`StringPayloadEvent`](crate::model::StringPayloadEvent).
        5996  +
    /* RustType.kt:534 */
        5997  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        5998  +
    /* ServerBuilderGenerator.kt:211 */
        5999  +
    pub struct Builder {
        6000  +
        /* ServerBuilderGenerator.kt:308 */
        6001  +
        pub(crate) payload: ::std::option::Option<::std::string::String>,
        6002  +
        /* ServerBuilderGenerator.kt:211 */
        6003  +
    }
        6004  +
    /* ServerBuilderGenerator.kt:215 */
        6005  +
    impl Builder {
 4533   6006   
        /* ServerBuilderGenerator.kt:331 */
 4534   6007   
        #[allow(missing_docs)] // documentation missing in model
 4535   6008   
                               /* ServerBuilderGenerator.kt:343 */
 4536         -
        pub fn recursive_member(
 4537         -
            mut self,
 4538         -
            input: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
 4539         -
        ) -> Self {
        6009  +
        pub fn payload(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4540   6010   
            /* ServerBuilderGenerator.kt:344 */
 4541         -
            self.recursive_member =
        6011  +
            self.payload =
 4542   6012   
                /* ServerBuilderGenerator.kt:376 */input
 4543   6013   
            /* ServerBuilderGenerator.kt:344 */;
 4544   6014   
            self
 4545   6015   
            /* ServerBuilderGenerator.kt:343 */
 4546   6016   
        }
 4547   6017   
        /* ServerBuilderGenerator.kt:426 */
 4548   6018   
        #[allow(missing_docs)] // documentation missing in model
 4549   6019   
                               /* ServerBuilderGenerator.kt:428 */
 4550         -
        pub(crate) fn set_recursive_member(
        6020  +
        pub(crate) fn set_payload(
 4551   6021   
            mut self,
 4552         -
            input: Option<
 4553         -
                impl ::std::convert::Into<crate::model::RecursiveShapesInputOutputNested1>,
 4554         -
            >,
        6022  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 4555   6023   
        ) -> Self {
 4556   6024   
            /* ServerBuilderGenerator.kt:429 */
 4557         -
            self.recursive_member = input.map(|v| v.into());
        6025  +
            self.payload = input.map(|v| v.into());
 4558   6026   
            self
 4559   6027   
            /* ServerBuilderGenerator.kt:428 */
 4560   6028   
        }
 4561         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
        6029  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`StringPayloadEvent`](crate::model::StringPayloadEvent).
 4562   6030   
        /* ServerBuilderGenerator.kt:271 */
 4563         -
        pub fn build(self) -> crate::model::RecursiveShapesInputOutputNested2 {
        6031  +
        pub fn build(self) -> crate::model::StringPayloadEvent {
 4564   6032   
            self.build_enforcing_all_constraints()
 4565   6033   
        }
 4566   6034   
        /* ServerBuilderGenerator.kt:283 */
 4567         -
        fn build_enforcing_all_constraints(
 4568         -
            self,
 4569         -
        ) -> crate::model::RecursiveShapesInputOutputNested2 {
        6035  +
        fn build_enforcing_all_constraints(self) -> crate::model::StringPayloadEvent {
 4570   6036   
            /* ServerBuilderGenerator.kt:542 */
 4571         -
            crate::model::RecursiveShapesInputOutputNested2 {
        6037  +
            crate::model::StringPayloadEvent {
 4572   6038   
                /* ServerBuilderGenerator.kt:546 */
 4573         -
                bar: self.bar,
 4574         -
                /* ServerBuilderGenerator.kt:546 */
 4575         -
                recursive_member: self.recursive_member,
        6039  +
                payload: self.payload,
 4576   6040   
                /* ServerBuilderGenerator.kt:542 */
 4577   6041   
            }
 4578   6042   
            /* ServerBuilderGenerator.kt:283 */
 4579   6043   
        }
 4580   6044   
        /* ServerBuilderGenerator.kt:215 */
 4581   6045   
    }
 4582   6046   
 4583   6047   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4584   6048   
}
 4585         -
/// /* CodegenDelegator.kt:52 */See [`IntegerEnumSet`](crate::model::IntegerEnumSet).
 4586         -
pub mod integer_enum_set {
 4587         -
 4588         -
    /* CollectionConstraintViolationGenerator.kt:78 */
 4589         -
    #[allow(clippy::enum_variant_names)]
 4590         -
    #[derive(Debug, PartialEq)]
 4591         -
    pub enum ConstraintViolation {
 4592         -
        /// Constraint violation error when the list does not contain unique items
 4593         -
        UniqueItems {
 4594         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 4595         -
            /// at least two elements.
 4596         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 4597         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 4598         -
            /// Nothing is guaranteed about the order of the indices.
 4599         -
            duplicate_indices: ::std::vec::Vec<usize>,
 4600         -
            /// The original vector, that contains duplicate items.
 4601         -
            original: ::std::vec::Vec<i32>,
 4602         -
        },
 4603         -
    }
 4604         -
 4605         -
    impl ::std::fmt::Display for ConstraintViolation {
 4606         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4607         -
            let message = match self {
 4608         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 4609         -
                            format!("Value with repeated values at indices {:?} provided for 'aws.protocoltests.shared#IntegerEnumSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 4610         -
                            };
 4611         -
            write!(f, "{message}")
 4612         -
        }
 4613         -
    }
        6049  +
/// /* ServerBuilderGenerator.kt:171 */See [`StructurePayloadEvent`](crate::model::StructurePayloadEvent).
        6050  +
pub mod structure_payload_event {
 4614   6051   
 4615         -
    impl ::std::error::Error for ConstraintViolation {}
 4616         -
    /* CollectionConstraintViolationGenerator.kt:104 */
 4617         -
    impl ConstraintViolation {
 4618         -
        pub(crate) fn as_validation_exception_field(
 4619         -
            self,
 4620         -
            path: ::std::string::String,
 4621         -
        ) -> crate::model::ValidationExceptionField {
 4622         -
            match self {
 4623         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 4624         -
                                crate::model::ValidationExceptionField {
 4625         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 4626         -
                                    path,
 4627         -
                                },
 4628         -
                    }
        6052  +
    /* ServerBuilderGenerator.kt:461 */
        6053  +
    impl ::std::convert::From<Builder> for crate::model::StructurePayloadEvent {
        6054  +
        fn from(builder: Builder) -> Self {
        6055  +
            builder.build()
 4629   6056   
        }
 4630   6057   
    }
 4631         -
 4632         -
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4633         -
}
 4634         -
pub mod foo_enum_map {
 4635         -
 4636         -
    /* MapConstraintViolationGenerator.kt:82 */
 4637         -
    #[allow(clippy::enum_variant_names)]
 4638         -
    #[derive(Debug, PartialEq)]
 4639         -
    pub enum ConstraintViolation {
 4640         -
        #[doc(hidden)]
 4641         -
        Value(
 4642         -
            ::std::string::String,
 4643         -
            crate::model::foo_enum::ConstraintViolation,
 4644         -
        ),
        6058  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`StructurePayloadEvent`](crate::model::StructurePayloadEvent).
        6059  +
    /* RustType.kt:534 */
        6060  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        6061  +
    /* ServerBuilderGenerator.kt:211 */
        6062  +
    pub struct Builder {
        6063  +
        /* ServerBuilderGenerator.kt:308 */
        6064  +
        pub(crate) payload: ::std::option::Option<crate::model::PayloadStructure>,
        6065  +
        /* ServerBuilderGenerator.kt:211 */
 4645   6066   
    }
 4646         -
 4647         -
    impl ::std::fmt::Display for ConstraintViolation {
 4648         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4649         -
            match self {
 4650         -
                Self::Value(_, value_constraint_violation) => {
 4651         -
                    write!(f, "{}", value_constraint_violation)
 4652         -
                }
 4653         -
            }
        6067  +
    /* ServerBuilderGenerator.kt:215 */
        6068  +
    impl Builder {
        6069  +
        /* ServerBuilderGenerator.kt:331 */
        6070  +
        #[allow(missing_docs)] // documentation missing in model
        6071  +
                               /* ServerBuilderGenerator.kt:343 */
        6072  +
        pub fn payload(
        6073  +
            mut self,
        6074  +
            input: ::std::option::Option<crate::model::PayloadStructure>,
        6075  +
        ) -> Self {
        6076  +
            /* ServerBuilderGenerator.kt:344 */
        6077  +
            self.payload =
        6078  +
                /* ServerBuilderGenerator.kt:376 */input
        6079  +
            /* ServerBuilderGenerator.kt:344 */;
        6080  +
            self
        6081  +
            /* ServerBuilderGenerator.kt:343 */
 4654   6082   
        }
 4655         -
    }
 4656         -
 4657         -
    impl ::std::error::Error for ConstraintViolation {}
 4658         -
    /* MapConstraintViolationGenerator.kt:111 */
 4659         -
    impl ConstraintViolation {
 4660         -
        pub(crate) fn as_validation_exception_field(
 4661         -
            self,
 4662         -
            path: ::std::string::String,
 4663         -
        ) -> crate::model::ValidationExceptionField {
 4664         -
            match self {
 4665         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 4666         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 4667         -
            }
        6083  +
        /* ServerBuilderGenerator.kt:426 */
        6084  +
        #[allow(missing_docs)] // documentation missing in model
        6085  +
                               /* ServerBuilderGenerator.kt:428 */
        6086  +
        pub(crate) fn set_payload(
        6087  +
            mut self,
        6088  +
            input: Option<impl ::std::convert::Into<crate::model::PayloadStructure>>,
        6089  +
        ) -> Self {
        6090  +
            /* ServerBuilderGenerator.kt:429 */
        6091  +
            self.payload = input.map(|v| v.into());
        6092  +
            self
        6093  +
            /* ServerBuilderGenerator.kt:428 */
 4668   6094   
        }
        6095  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`StructurePayloadEvent`](crate::model::StructurePayloadEvent).
        6096  +
        /* ServerBuilderGenerator.kt:271 */
        6097  +
        pub fn build(self) -> crate::model::StructurePayloadEvent {
        6098  +
            self.build_enforcing_all_constraints()
        6099  +
        }
        6100  +
        /* ServerBuilderGenerator.kt:283 */
        6101  +
        fn build_enforcing_all_constraints(self) -> crate::model::StructurePayloadEvent {
        6102  +
            /* ServerBuilderGenerator.kt:542 */
        6103  +
            crate::model::StructurePayloadEvent {
        6104  +
                /* ServerBuilderGenerator.kt:546 */
        6105  +
                payload: self.payload,
        6106  +
                /* ServerBuilderGenerator.kt:542 */
        6107  +
            }
        6108  +
            /* ServerBuilderGenerator.kt:283 */
        6109  +
        }
        6110  +
        /* ServerBuilderGenerator.kt:215 */
 4669   6111   
    }
 4670   6112   
 4671         -
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4672         -
}
 4673         -
/// /* CodegenDelegator.kt:52 */See [`FooEnumSet`](crate::model::FooEnumSet).
 4674         -
pub mod foo_enum_set {
 4675         -
 4676         -
    /* CollectionConstraintViolationGenerator.kt:78 */
 4677         -
    #[allow(clippy::enum_variant_names)]
 4678         -
    #[derive(Debug, PartialEq)]
 4679         -
    pub enum ConstraintViolation {
 4680         -
        /// Constraint violation error when the list does not contain unique items
 4681         -
        UniqueItems {
 4682         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 4683         -
            /// at least two elements.
 4684         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 4685         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 4686         -
            /// Nothing is guaranteed about the order of the indices.
 4687         -
            duplicate_indices: ::std::vec::Vec<usize>,
 4688         -
            /// The original vector, that contains duplicate items.
 4689         -
            original: ::std::vec::Vec<crate::model::FooEnum>,
 4690         -
        },
 4691         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 4692         -
        /// The first component of the tuple is the index in the collection where the
 4693         -
        /// first constraint violation was found.
 4694         -
        #[doc(hidden)]
 4695         -
        Member(usize, crate::model::foo_enum::ConstraintViolation),
 4696         -
    }
 4697         -
 4698         -
    impl ::std::fmt::Display for ConstraintViolation {
 4699         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4700         -
            let message = match self {
 4701         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 4702         -
                            format!("Value with repeated values at indices {:?} provided for 'aws.protocoltests.shared#FooEnumSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 4703         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
 4704         -
                           failing_member)
 4705         -
                            };
 4706         -
            write!(f, "{message}")
        6113  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        6114  +
}
        6115  +
/// /* ServerBuilderGenerator.kt:171 */See [`UnionPayloadEvent`](crate::model::UnionPayloadEvent).
        6116  +
pub mod union_payload_event {
        6117  +
        6118  +
    /* ServerBuilderGenerator.kt:461 */
        6119  +
    impl ::std::convert::From<Builder> for crate::model::UnionPayloadEvent {
        6120  +
        fn from(builder: Builder) -> Self {
        6121  +
            builder.build()
 4707   6122   
        }
 4708   6123   
    }
 4709         -
 4710         -
    impl ::std::error::Error for ConstraintViolation {}
 4711         -
    /* CollectionConstraintViolationGenerator.kt:104 */
 4712         -
    impl ConstraintViolation {
 4713         -
        pub(crate) fn as_validation_exception_field(
 4714         -
            self,
 4715         -
            path: ::std::string::String,
 4716         -
        ) -> crate::model::ValidationExceptionField {
 4717         -
            match self {
 4718         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 4719         -
                                crate::model::ValidationExceptionField {
 4720         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 4721         -
                                    path,
 4722         -
                                },
 4723         -
    Self::Member(index, member_constraint_violation) =>
 4724         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 4725         -
                    }
        6124  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`UnionPayloadEvent`](crate::model::UnionPayloadEvent).
        6125  +
    /* RustType.kt:534 */
        6126  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        6127  +
    /* ServerBuilderGenerator.kt:211 */
        6128  +
    pub struct Builder {
        6129  +
        /* ServerBuilderGenerator.kt:308 */
        6130  +
        pub(crate) payload: ::std::option::Option<crate::model::PayloadUnion>,
        6131  +
        /* ServerBuilderGenerator.kt:211 */
        6132  +
    }
        6133  +
    /* ServerBuilderGenerator.kt:215 */
        6134  +
    impl Builder {
        6135  +
        /* ServerBuilderGenerator.kt:331 */
        6136  +
        #[allow(missing_docs)] // documentation missing in model
        6137  +
                               /* ServerBuilderGenerator.kt:343 */
        6138  +
        pub fn payload(mut self, input: ::std::option::Option<crate::model::PayloadUnion>) -> Self {
        6139  +
            /* ServerBuilderGenerator.kt:344 */
        6140  +
            self.payload =
        6141  +
                /* ServerBuilderGenerator.kt:376 */input
        6142  +
            /* ServerBuilderGenerator.kt:344 */;
        6143  +
            self
        6144  +
            /* ServerBuilderGenerator.kt:343 */
        6145  +
        }
        6146  +
        /* ServerBuilderGenerator.kt:426 */
        6147  +
        #[allow(missing_docs)] // documentation missing in model
        6148  +
                               /* ServerBuilderGenerator.kt:428 */
        6149  +
        pub(crate) fn set_payload(
        6150  +
            mut self,
        6151  +
            input: Option<impl ::std::convert::Into<crate::model::PayloadUnion>>,
        6152  +
        ) -> Self {
        6153  +
            /* ServerBuilderGenerator.kt:429 */
        6154  +
            self.payload = input.map(|v| v.into());
        6155  +
            self
        6156  +
            /* ServerBuilderGenerator.kt:428 */
        6157  +
        }
        6158  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`UnionPayloadEvent`](crate::model::UnionPayloadEvent).
        6159  +
        /* ServerBuilderGenerator.kt:271 */
        6160  +
        pub fn build(self) -> crate::model::UnionPayloadEvent {
        6161  +
            self.build_enforcing_all_constraints()
        6162  +
        }
        6163  +
        /* ServerBuilderGenerator.kt:283 */
        6164  +
        fn build_enforcing_all_constraints(self) -> crate::model::UnionPayloadEvent {
        6165  +
            /* ServerBuilderGenerator.kt:542 */
        6166  +
            crate::model::UnionPayloadEvent {
        6167  +
                /* ServerBuilderGenerator.kt:546 */
        6168  +
                payload: self.payload,
        6169  +
                /* ServerBuilderGenerator.kt:542 */
        6170  +
            }
        6171  +
            /* ServerBuilderGenerator.kt:283 */
 4726   6172   
        }
        6173  +
        /* ServerBuilderGenerator.kt:215 */
 4727   6174   
    }
 4728   6175   
 4729   6176   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4730   6177   
}
 4731         -
/// /* ServerBuilderGenerator.kt:171 */See [`ComplexNestedErrorData`](crate::model::ComplexNestedErrorData).
 4732         -
pub mod complex_nested_error_data {
        6178  +
/// /* ServerBuilderGenerator.kt:171 */See [`HeadersAndExplicitPayloadEvent`](crate::model::HeadersAndExplicitPayloadEvent).
        6179  +
pub mod headers_and_explicit_payload_event {
 4733   6180   
 4734   6181   
    /* ServerBuilderGenerator.kt:461 */
 4735         -
    impl ::std::convert::From<Builder> for crate::model::ComplexNestedErrorData {
        6182  +
    impl ::std::convert::From<Builder> for crate::model::HeadersAndExplicitPayloadEvent {
 4736   6183   
        fn from(builder: Builder) -> Self {
 4737   6184   
            builder.build()
 4738   6185   
        }
 4739   6186   
    }
 4740         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`ComplexNestedErrorData`](crate::model::ComplexNestedErrorData).
        6187  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`HeadersAndExplicitPayloadEvent`](crate::model::HeadersAndExplicitPayloadEvent).
 4741   6188   
    /* RustType.kt:534 */
 4742   6189   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 4743   6190   
    /* ServerBuilderGenerator.kt:211 */
 4744   6191   
    pub struct Builder {
 4745   6192   
        /* ServerBuilderGenerator.kt:308 */
 4746         -
        pub(crate) foo: ::std::option::Option<::std::string::String>,
        6193  +
        pub(crate) header: ::std::option::Option<::std::string::String>,
        6194  +
        /* ServerBuilderGenerator.kt:308 */
        6195  +
        pub(crate) payload: ::std::option::Option<crate::model::PayloadStructure>,
 4747   6196   
        /* ServerBuilderGenerator.kt:211 */
 4748   6197   
    }
 4749   6198   
    /* ServerBuilderGenerator.kt:215 */
 4750   6199   
    impl Builder {
 4751   6200   
        /* ServerBuilderGenerator.kt:331 */
 4752   6201   
        #[allow(missing_docs)] // documentation missing in model
 4753   6202   
                               /* ServerBuilderGenerator.kt:343 */
 4754         -
        pub fn foo(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        6203  +
        pub fn header(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4755   6204   
            /* ServerBuilderGenerator.kt:344 */
 4756         -
            self.foo =
        6205  +
            self.header =
 4757   6206   
                /* ServerBuilderGenerator.kt:376 */input
 4758   6207   
            /* ServerBuilderGenerator.kt:344 */;
 4759   6208   
            self
 4760   6209   
            /* ServerBuilderGenerator.kt:343 */
 4761   6210   
        }
 4762         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`ComplexNestedErrorData`](crate::model::ComplexNestedErrorData).
        6211  +
        /* ServerBuilderGenerator.kt:426 */
        6212  +
        #[allow(missing_docs)] // documentation missing in model
        6213  +
                               /* ServerBuilderGenerator.kt:428 */
        6214  +
        pub(crate) fn set_header(
        6215  +
            mut self,
        6216  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        6217  +
        ) -> Self {
        6218  +
            /* ServerBuilderGenerator.kt:429 */
        6219  +
            self.header = input.map(|v| v.into());
        6220  +
            self
        6221  +
            /* ServerBuilderGenerator.kt:428 */
        6222  +
        }
        6223  +
        /* ServerBuilderGenerator.kt:331 */
        6224  +
        #[allow(missing_docs)] // documentation missing in model
        6225  +
                               /* ServerBuilderGenerator.kt:343 */
        6226  +
        pub fn payload(
        6227  +
            mut self,
        6228  +
            input: ::std::option::Option<crate::model::PayloadStructure>,
        6229  +
        ) -> Self {
        6230  +
            /* ServerBuilderGenerator.kt:344 */
        6231  +
            self.payload =
        6232  +
                /* ServerBuilderGenerator.kt:376 */input
        6233  +
            /* ServerBuilderGenerator.kt:344 */;
        6234  +
            self
        6235  +
            /* ServerBuilderGenerator.kt:343 */
        6236  +
        }
        6237  +
        /* ServerBuilderGenerator.kt:426 */
        6238  +
        #[allow(missing_docs)] // documentation missing in model
        6239  +
                               /* ServerBuilderGenerator.kt:428 */
        6240  +
        pub(crate) fn set_payload(
        6241  +
            mut self,
        6242  +
            input: Option<impl ::std::convert::Into<crate::model::PayloadStructure>>,
        6243  +
        ) -> Self {
        6244  +
            /* ServerBuilderGenerator.kt:429 */
        6245  +
            self.payload = input.map(|v| v.into());
        6246  +
            self
        6247  +
            /* ServerBuilderGenerator.kt:428 */
        6248  +
        }
        6249  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`HeadersAndExplicitPayloadEvent`](crate::model::HeadersAndExplicitPayloadEvent).
 4763   6250   
        /* ServerBuilderGenerator.kt:271 */
 4764         -
        pub fn build(self) -> crate::model::ComplexNestedErrorData {
        6251  +
        pub fn build(self) -> crate::model::HeadersAndExplicitPayloadEvent {
 4765   6252   
            self.build_enforcing_all_constraints()
 4766   6253   
        }
 4767   6254   
        /* ServerBuilderGenerator.kt:283 */
 4768         -
        fn build_enforcing_all_constraints(self) -> crate::model::ComplexNestedErrorData {
        6255  +
        fn build_enforcing_all_constraints(self) -> crate::model::HeadersAndExplicitPayloadEvent {
 4769   6256   
            /* ServerBuilderGenerator.kt:542 */
 4770         -
            crate::model::ComplexNestedErrorData {
        6257  +
            crate::model::HeadersAndExplicitPayloadEvent {
 4771   6258   
                /* ServerBuilderGenerator.kt:546 */
 4772         -
                foo: self.foo,
        6259  +
                header: self.header,
        6260  +
                /* ServerBuilderGenerator.kt:546 */
        6261  +
                payload: self.payload,
 4773   6262   
                /* ServerBuilderGenerator.kt:542 */
 4774   6263   
            }
 4775   6264   
            /* ServerBuilderGenerator.kt:283 */
 4776   6265   
        }
 4777   6266   
        /* ServerBuilderGenerator.kt:215 */
 4778   6267   
    }
 4779   6268   
 4780   6269   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4781   6270   
}
 4782         -
/// /* ServerBuilderGenerator.kt:171 */See [`NestedPayload`](crate::model::NestedPayload).
 4783         -
pub mod nested_payload {
        6271  +
/// /* ServerBuilderGenerator.kt:171 */See [`HeadersAndImplicitPayloadEvent`](crate::model::HeadersAndImplicitPayloadEvent).
        6272  +
pub mod headers_and_implicit_payload_event {
 4784   6273   
 4785   6274   
    /* ServerBuilderGenerator.kt:461 */
 4786         -
    impl ::std::convert::From<Builder> for crate::model::NestedPayload {
        6275  +
    impl ::std::convert::From<Builder> for crate::model::HeadersAndImplicitPayloadEvent {
 4787   6276   
        fn from(builder: Builder) -> Self {
 4788   6277   
            builder.build()
 4789   6278   
        }
 4790   6279   
    }
 4791         -
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`NestedPayload`](crate::model::NestedPayload).
        6280  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`HeadersAndImplicitPayloadEvent`](crate::model::HeadersAndImplicitPayloadEvent).
 4792   6281   
    /* RustType.kt:534 */
 4793   6282   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 4794   6283   
    /* ServerBuilderGenerator.kt:211 */
 4795   6284   
    pub struct Builder {
 4796   6285   
        /* ServerBuilderGenerator.kt:308 */
 4797         -
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        6286  +
        pub(crate) header: ::std::option::Option<::std::string::String>,
 4798   6287   
        /* ServerBuilderGenerator.kt:308 */
 4799         -
        pub(crate) name: ::std::option::Option<::std::string::String>,
        6288  +
        pub(crate) payload: ::std::option::Option<::std::string::String>,
 4800   6289   
        /* ServerBuilderGenerator.kt:211 */
 4801   6290   
    }
 4802   6291   
    /* ServerBuilderGenerator.kt:215 */
 4803   6292   
    impl Builder {
 4804   6293   
        /* ServerBuilderGenerator.kt:331 */
 4805   6294   
        #[allow(missing_docs)] // documentation missing in model
 4806   6295   
                               /* ServerBuilderGenerator.kt:343 */
 4807         -
        pub fn greeting(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        6296  +
        pub fn header(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4808   6297   
            /* ServerBuilderGenerator.kt:344 */
 4809         -
            self.greeting =
        6298  +
            self.header =
 4810   6299   
                /* ServerBuilderGenerator.kt:376 */input
 4811   6300   
            /* ServerBuilderGenerator.kt:344 */;
 4812   6301   
            self
 4813   6302   
            /* ServerBuilderGenerator.kt:343 */
 4814   6303   
        }
 4815   6304   
        /* ServerBuilderGenerator.kt:426 */
 4816   6305   
        #[allow(missing_docs)] // documentation missing in model
 4817   6306   
                               /* ServerBuilderGenerator.kt:428 */
 4818         -
        pub(crate) fn set_greeting(
        6307  +
        pub(crate) fn set_header(
 4819   6308   
            mut self,
 4820   6309   
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 4821   6310   
        ) -> Self {
 4822   6311   
            /* ServerBuilderGenerator.kt:429 */
 4823         -
            self.greeting = input.map(|v| v.into());
        6312  +
            self.header = input.map(|v| v.into());
 4824   6313   
            self
 4825   6314   
            /* ServerBuilderGenerator.kt:428 */
 4826   6315   
        }
 4827   6316   
        /* ServerBuilderGenerator.kt:331 */
 4828   6317   
        #[allow(missing_docs)] // documentation missing in model
 4829   6318   
                               /* ServerBuilderGenerator.kt:343 */
 4830         -
        pub fn name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        6319  +
        pub fn payload(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4831   6320   
            /* ServerBuilderGenerator.kt:344 */
 4832         -
            self.name =
        6321  +
            self.payload =
 4833   6322   
                /* ServerBuilderGenerator.kt:376 */input
 4834   6323   
            /* ServerBuilderGenerator.kt:344 */;
 4835   6324   
            self
 4836   6325   
            /* ServerBuilderGenerator.kt:343 */
 4837   6326   
        }
 4838   6327   
        /* ServerBuilderGenerator.kt:426 */
 4839   6328   
        #[allow(missing_docs)] // documentation missing in model
 4840   6329   
                               /* ServerBuilderGenerator.kt:428 */
 4841         -
        pub(crate) fn set_name(
        6330  +
        pub(crate) fn set_payload(
 4842   6331   
            mut self,
 4843   6332   
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 4844   6333   
        ) -> Self {
 4845   6334   
            /* ServerBuilderGenerator.kt:429 */
 4846         -
            self.name = input.map(|v| v.into());
        6335  +
            self.payload = input.map(|v| v.into());
 4847   6336   
            self
 4848   6337   
            /* ServerBuilderGenerator.kt:428 */
 4849   6338   
        }
 4850         -
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`NestedPayload`](crate::model::NestedPayload).
        6339  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`HeadersAndImplicitPayloadEvent`](crate::model::HeadersAndImplicitPayloadEvent).
 4851   6340   
        /* ServerBuilderGenerator.kt:271 */
 4852         -
        pub fn build(self) -> crate::model::NestedPayload {
        6341  +
        pub fn build(self) -> crate::model::HeadersAndImplicitPayloadEvent {
 4853   6342   
            self.build_enforcing_all_constraints()
 4854   6343   
        }
 4855   6344   
        /* ServerBuilderGenerator.kt:283 */
 4856         -
        fn build_enforcing_all_constraints(self) -> crate::model::NestedPayload {
        6345  +
        fn build_enforcing_all_constraints(self) -> crate::model::HeadersAndImplicitPayloadEvent {
 4857   6346   
            /* ServerBuilderGenerator.kt:542 */
 4858         -
            crate::model::NestedPayload {
        6347  +
            crate::model::HeadersAndImplicitPayloadEvent {
 4859   6348   
                /* ServerBuilderGenerator.kt:546 */
 4860         -
                greeting: self.greeting,
        6349  +
                header: self.header,
 4861   6350   
                /* ServerBuilderGenerator.kt:546 */
 4862         -
                name: self.name,
        6351  +
                payload: self.payload,
 4863   6352   
                /* ServerBuilderGenerator.kt:542 */
 4864   6353   
            }
 4865   6354   
            /* ServerBuilderGenerator.kt:283 */
 4866   6355   
        }
 4867   6356   
        /* ServerBuilderGenerator.kt:215 */
 4868   6357   
    }
 4869   6358   
 4870   6359   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4871   6360   
}
 4872         -
/// /* CodegenDelegator.kt:52 */See [`IntegerSet`](crate::model::IntegerSet).
 4873         -
pub mod integer_set {
        6361  +
/// /* ServerBuilderGenerator.kt:171 */See [`SingletonEvent`](crate::model::SingletonEvent).
        6362  +
pub mod singleton_event {
 4874   6363   
 4875         -
    /* CollectionConstraintViolationGenerator.kt:78 */
 4876         -
    #[allow(clippy::enum_variant_names)]
 4877         -
    #[derive(Debug, PartialEq)]
 4878         -
    pub enum ConstraintViolation {
 4879         -
        /// Constraint violation error when the list does not contain unique items
 4880         -
        UniqueItems {
 4881         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 4882         -
            /// at least two elements.
 4883         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 4884         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 4885         -
            /// Nothing is guaranteed about the order of the indices.
 4886         -
            duplicate_indices: ::std::vec::Vec<usize>,
 4887         -
            /// The original vector, that contains duplicate items.
 4888         -
            original: ::std::vec::Vec<i32>,
 4889         -
        },
        6364  +
    /* ServerBuilderGenerator.kt:461 */
        6365  +
    impl ::std::convert::From<Builder> for crate::model::SingletonEvent {
        6366  +
        fn from(builder: Builder) -> Self {
        6367  +
            builder.build()
        6368  +
        }
 4890   6369   
    }
 4891         -
 4892         -
    impl ::std::fmt::Display for ConstraintViolation {
 4893         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4894         -
            let message = match self {
 4895         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 4896         -
                            format!("Value with repeated values at indices {:?} provided for 'aws.protocoltests.shared#IntegerSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 4897         -
                            };
 4898         -
            write!(f, "{message}")
        6370  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`SingletonEvent`](crate::model::SingletonEvent).
        6371  +
    /* RustType.kt:534 */
        6372  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        6373  +
    /* ServerBuilderGenerator.kt:211 */
        6374  +
    pub struct Builder {
        6375  +
        /* ServerBuilderGenerator.kt:308 */
        6376  +
        pub(crate) value: ::std::option::Option<::std::string::String>,
        6377  +
        /* ServerBuilderGenerator.kt:211 */
        6378  +
    }
        6379  +
    /* ServerBuilderGenerator.kt:215 */
        6380  +
    impl Builder {
        6381  +
        /* ServerBuilderGenerator.kt:331 */
        6382  +
        #[allow(missing_docs)] // documentation missing in model
        6383  +
                               /* ServerBuilderGenerator.kt:343 */
        6384  +
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        6385  +
            /* ServerBuilderGenerator.kt:344 */
        6386  +
            self.value =
        6387  +
                /* ServerBuilderGenerator.kt:376 */input
        6388  +
            /* ServerBuilderGenerator.kt:344 */;
        6389  +
            self
        6390  +
            /* ServerBuilderGenerator.kt:343 */
        6391  +
        }
        6392  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`SingletonEvent`](crate::model::SingletonEvent).
        6393  +
        /* ServerBuilderGenerator.kt:271 */
        6394  +
        pub fn build(self) -> crate::model::SingletonEvent {
        6395  +
            self.build_enforcing_all_constraints()
        6396  +
        }
        6397  +
        /* ServerBuilderGenerator.kt:283 */
        6398  +
        fn build_enforcing_all_constraints(self) -> crate::model::SingletonEvent {
        6399  +
            /* ServerBuilderGenerator.kt:542 */
        6400  +
            crate::model::SingletonEvent {
        6401  +
                /* ServerBuilderGenerator.kt:546 */
        6402  +
                value: self.value,
        6403  +
                /* ServerBuilderGenerator.kt:542 */
        6404  +
            }
        6405  +
            /* ServerBuilderGenerator.kt:283 */
 4899   6406   
        }
        6407  +
        /* ServerBuilderGenerator.kt:215 */
 4900   6408   
    }
 4901   6409   
 4902         -
    impl ::std::error::Error for ConstraintViolation {}
 4903         -
    /* CollectionConstraintViolationGenerator.kt:104 */
 4904         -
    impl ConstraintViolation {
 4905         -
        pub(crate) fn as_validation_exception_field(
 4906         -
            self,
 4907         -
            path: ::std::string::String,
 4908         -
        ) -> crate::model::ValidationExceptionField {
 4909         -
            match self {
 4910         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 4911         -
                                crate::model::ValidationExceptionField {
 4912         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 4913         -
                                    path,
 4914         -
                                },
 4915         -
                    }
        6410  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        6411  +
}
        6412  +
/// /* ServerBuilderGenerator.kt:171 */See [`PayloadStructure`](crate::model::PayloadStructure).
        6413  +
pub mod payload_structure {
        6414  +
        6415  +
    /* ServerBuilderGenerator.kt:461 */
        6416  +
    impl ::std::convert::From<Builder> for crate::model::PayloadStructure {
        6417  +
        fn from(builder: Builder) -> Self {
        6418  +
            builder.build()
        6419  +
        }
        6420  +
    }
        6421  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`PayloadStructure`](crate::model::PayloadStructure).
        6422  +
    /* RustType.kt:534 */
        6423  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        6424  +
    /* ServerBuilderGenerator.kt:211 */
        6425  +
    pub struct Builder {
        6426  +
        /* ServerBuilderGenerator.kt:308 */
        6427  +
        pub(crate) structure_member: ::std::option::Option<::std::string::String>,
        6428  +
        /* ServerBuilderGenerator.kt:211 */
        6429  +
    }
        6430  +
    /* ServerBuilderGenerator.kt:215 */
        6431  +
    impl Builder {
        6432  +
        /* ServerBuilderGenerator.kt:331 */
        6433  +
        #[allow(missing_docs)] // documentation missing in model
        6434  +
                               /* ServerBuilderGenerator.kt:343 */
        6435  +
        pub fn structure_member(
        6436  +
            mut self,
        6437  +
            input: ::std::option::Option<::std::string::String>,
        6438  +
        ) -> Self {
        6439  +
            /* ServerBuilderGenerator.kt:344 */
        6440  +
            self.structure_member =
        6441  +
                /* ServerBuilderGenerator.kt:376 */input
        6442  +
            /* ServerBuilderGenerator.kt:344 */;
        6443  +
            self
        6444  +
            /* ServerBuilderGenerator.kt:343 */
        6445  +
        }
        6446  +
        /* ServerBuilderGenerator.kt:426 */
        6447  +
        #[allow(missing_docs)] // documentation missing in model
        6448  +
                               /* ServerBuilderGenerator.kt:428 */
        6449  +
        pub(crate) fn set_structure_member(
        6450  +
            mut self,
        6451  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        6452  +
        ) -> Self {
        6453  +
            /* ServerBuilderGenerator.kt:429 */
        6454  +
            self.structure_member = input.map(|v| v.into());
        6455  +
            self
        6456  +
            /* ServerBuilderGenerator.kt:428 */
        6457  +
        }
        6458  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`PayloadStructure`](crate::model::PayloadStructure).
        6459  +
        /* ServerBuilderGenerator.kt:271 */
        6460  +
        pub fn build(self) -> crate::model::PayloadStructure {
        6461  +
            self.build_enforcing_all_constraints()
 4916   6462   
        }
        6463  +
        /* ServerBuilderGenerator.kt:283 */
        6464  +
        fn build_enforcing_all_constraints(self) -> crate::model::PayloadStructure {
        6465  +
            /* ServerBuilderGenerator.kt:542 */
        6466  +
            crate::model::PayloadStructure {
        6467  +
                /* ServerBuilderGenerator.kt:546 */
        6468  +
                structure_member: self.structure_member,
        6469  +
                /* ServerBuilderGenerator.kt:542 */
        6470  +
            }
        6471  +
            /* ServerBuilderGenerator.kt:283 */
        6472  +
        }
        6473  +
        /* ServerBuilderGenerator.kt:215 */
 4917   6474   
    }
 4918   6475   
 4919   6476   
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 4920   6477   
}