Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/query-compat-test/rust-client-codegen/src/protocol_serde.rs

@@ -1,1 +41,44 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ResponseDeserializerGenerator.kt:170 */
    2      3   
pub(crate) fn type_erase_result<O, E>(
    3      4   
    result: ::std::result::Result<O, E>,
    4      5   
) -> ::std::result::Result<
    5      6   
    ::aws_smithy_runtime_api::client::interceptors::context::Output,
    6      7   
    ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError<::aws_smithy_runtime_api::client::interceptors::context::Error>,
    7      8   
>
    8      9   
where
    9     10   
    O: ::std::fmt::Debug + ::std::marker::Send + ::std::marker::Sync + 'static,
   10     11   
    E: ::std::error::Error + std::fmt::Debug + ::std::marker::Send + ::std::marker::Sync + 'static,
   11     12   
{
   12     13   
    result
   13     14   
        .map(|output| ::aws_smithy_runtime_api::client::interceptors::context::Output::erase(output))
   14     15   
        .map_err(|error| ::aws_smithy_runtime_api::client::interceptors::context::Error::erase(error))
   15     16   
        .map_err(::std::convert::Into::into)
   16     17   
}
   17     18   
          19  +
/* AwsQueryCompatible.kt:87 */
   18     20   
pub fn parse_http_error_metadata(
   19     21   
    _response_status: u16,
   20     22   
    response_headers: &::aws_smithy_runtime_api::http::Headers,
   21     23   
    response_body: &[u8],
   22     24   
) -> ::std::result::Result<::aws_smithy_types::error::metadata::Builder, ::aws_smithy_json::deserialize::error::DeserializeError> {
   23     25   
    let mut builder = crate::json_errors::parse_error_metadata(response_body, response_headers)?;
   24     26   
    if let Some((error_code, error_type)) = crate::aws_query_compatible_errors::parse_aws_query_compatible_error(response_headers) {
   25     27   
        builder = builder.code(error_code);
   26     28   
        builder = builder.custom("type", error_type);
   27     29   
    }
   28     30   
    Ok(builder)
   29     31   
}
   30     32   
   31     33   
pub(crate) mod shape_operation;
   32     34   
          35  +
/* JsonParserGenerator.kt:227 */
   33     36   
pub(crate) fn or_empty_doc(data: &[u8]) -> &[u8] {
   34     37   
    if data.is_empty() {
   35     38   
        b"{}"
   36     39   
    } else {
   37     40   
        data
   38     41   
    }
   39     42   
}
   40     43   
   41     44   
pub(crate) mod shape_operation_input;

tmp-codegen-diff/codegen-client-test/query-compat-test/rust-client-codegen/src/protocol_serde/shape_operation.rs

@@ -1,1 +74,120 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[allow(clippy::unnecessary_wraps)]
           4  +
/* ProtocolParserGenerator.kt:99 */
    3      5   
pub fn de_operation_http_error(
    4      6   
    _response_status: u16,
    5      7   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
    6      8   
    _response_body: &[u8],
    7      9   
) -> std::result::Result<crate::operation::operation::OperationOutput, crate::operation::operation::OperationError> {
          10  +
    /* RustType.kt:516 */
    8     11   
    #[allow(unused_mut)]
          12  +
    /* ProtocolParserGenerator.kt:106 */
    9     13   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
   10     14   
        .map_err(crate::operation::operation::OperationError::unhandled)?;
          15  +
    /* ProtocolParserGenerator.kt:120 */
   11     16   
    let generic = generic_builder.build();
          17  +
    /* ProtocolParserGenerator.kt:185 */
   12     18   
    Err(crate::operation::operation::OperationError::generic(generic))
          19  +
    /* ProtocolParserGenerator.kt:99 */
   13     20   
}
   14     21   
          22  +
/* RustType.kt:516 */
   15     23   
#[allow(clippy::unnecessary_wraps)]
          24  +
/* ProtocolParserGenerator.kt:71 */
   16     25   
pub fn de_operation_http_response(
   17     26   
    _response_status: u16,
   18     27   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
   19     28   
    _response_body: &[u8],
   20     29   
) -> std::result::Result<crate::operation::operation::OperationOutput, crate::operation::operation::OperationError> {
          30  +
    /* ProtocolParserGenerator.kt:77 */
   21     31   
    Ok({
          32  +
        /* RustType.kt:516 */
   22     33   
        #[allow(unused_mut)]
          34  +
        /* ProtocolParserGenerator.kt:240 */
   23     35   
        let mut output = crate::operation::operation::builders::OperationOutputBuilder::default();
          36  +
        /* ProtocolParserGenerator.kt:247 */
   24     37   
        output = crate::protocol_serde::shape_operation::de_operation(_response_body, output)
   25     38   
            .map_err(crate::operation::operation::OperationError::unhandled)?;
          39  +
        /* ClientBuilderInstantiator.kt:56 */
   26     40   
        output.build()
          41  +
        /* ProtocolParserGenerator.kt:77 */
   27     42   
    })
          43  +
    /* ProtocolParserGenerator.kt:71 */
   28     44   
}
   29     45   
          46  +
/* JsonSerializerGenerator.kt:287 */
   30     47   
pub fn ser_operation_input(
   31     48   
    input: &crate::operation::operation::OperationInput,
   32     49   
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
          50  +
    /* JsonSerializerGenerator.kt:291 */
   33     51   
    let mut out = String::new();
          52  +
    /* JsonSerializerGenerator.kt:292 */
   34     53   
    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
          54  +
    /* JsonSerializerGenerator.kt:375 */
   35     55   
    crate::protocol_serde::shape_operation_input::ser_operation_input_input(&mut object, input)?;
          56  +
    /* JsonSerializerGenerator.kt:295 */
   36     57   
    object.finish();
          58  +
    /* JsonSerializerGenerator.kt:296 */
   37     59   
    Ok(::aws_smithy_types::body::SdkBody::from(out))
          60  +
    /* JsonSerializerGenerator.kt:287 */
   38     61   
}
   39     62   
          63  +
/* JsonParserGenerator.kt:148 */
   40     64   
pub(crate) fn de_operation(
   41     65   
    value: &[u8],
   42     66   
    mut builder: crate::operation::operation::builders::OperationOutputBuilder,
   43     67   
) -> ::std::result::Result<crate::operation::operation::builders::OperationOutputBuilder, ::aws_smithy_json::deserialize::error::DeserializeError> {
          68  +
    /* JsonParserGenerator.kt:153 */
   44     69   
    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
   45     70   
    let tokens = &mut tokens_owned;
   46     71   
    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
          72  +
    /* JsonParserGenerator.kt:684 */
   47     73   
    loop {
          74  +
        /* JsonParserGenerator.kt:685 */
   48     75   
        match tokens.next().transpose()? {
   49         -
            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   50         -
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          76  +
            /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          77  +
            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          78  +
                /* JsonParserGenerator.kt:260 */
          79  +
                match key.to_unescaped()?.as_ref() {
          80  +
                    /* JsonParserGenerator.kt:262 */
   51     81   
                    "message" => {
          82  +
                        /* JsonParserGenerator.kt:265 */
   52     83   
                        builder = builder.set_message(
          84  +
                            /* JsonParserGenerator.kt:354 */
   53     85   
                            ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   54         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   55         -
                            .transpose()?,
          86  +
                                .map(|s|
          87  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          88  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          89  +
                                /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          90  +
                                .transpose()?, /* JsonParserGenerator.kt:265 */
   56     91   
                        );
          92  +
                        /* JsonParserGenerator.kt:262 */
   57     93   
                    }
   58         -
                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   59         -
            },
          94  +
                    /* JsonParserGenerator.kt:290 */
          95  +
                    _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
          96  +
                }
          97  +
                /* JsonParserGenerator.kt:686 */
          98  +
            }
          99  +
            /* JsonParserGenerator.kt:695 */
   60    100   
            other => {
   61    101   
                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   62    102   
                    "expected object key or end object, found: {:?}",
   63    103   
                    other
   64    104   
                )))
         105  +
            } /* JsonParserGenerator.kt:685 */
   65    106   
        }
         107  +
        /* JsonParserGenerator.kt:684 */
   66    108   
    }
   67         -
    }
         109  +
    /* JsonParserGenerator.kt:250 */
   68    110   
    if tokens.next().is_some() {
         111  +
        /* JsonParserGenerator.kt:251 */
   69    112   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   70    113   
            "found more JSON tokens after completing parsing",
   71    114   
        ));
         115  +
        /* JsonParserGenerator.kt:250 */
   72    116   
    }
         117  +
    /* JsonParserGenerator.kt:163 */
   73    118   
    Ok(builder)
         119  +
    /* JsonParserGenerator.kt:148 */
   74    120   
}

tmp-codegen-diff/codegen-client-test/query-compat-test/rust-client-codegen/src/protocol_serde/shape_operation_input.rs

@@ -1,1 +10,16 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_operation_input_input(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::operation::operation::OperationInput,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:382 */
    6      8   
    if let Some(var_1) = &input.message {
           9  +
        /* JsonSerializerGenerator.kt:423 */
    7     10   
        object.key("message").string(var_1.as_str());
          11  +
        /* JsonSerializerGenerator.kt:382 */
    8     12   
    }
          13  +
    /* JsonSerializerGenerator.kt:372 */
    9     14   
    Ok(())
          15  +
    /* JsonSerializerGenerator.kt:358 */
   10     16   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client.rs

@@ -1,1 +31,32 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:105 */
    2      3   
#[derive(Debug)]
    3      4   
pub(crate) struct Handle {
    4      5   
    pub(crate) conf: crate::Config,
    5      6   
    #[allow(dead_code)] // unused when a service does not provide any operations
    6      7   
    pub(crate) runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
    7      8   
}
    8      9   
    9     10   
///
   10     11   
/// An ergonomic client for Sample Rest Json Protocol Service.
   11     12   
///
@@ -77,78 +334,436 @@
   97     98   
    fn validate_config(handle: &Handle) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
   98     99   
        let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
   99    100   
        handle
  100    101   
            .runtime_plugins
  101    102   
            .apply_client_configuration(&mut cfg)?
  102    103   
            .validate_base_client_config(&cfg)?;
  103    104   
        Ok(())
  104    105   
    }
  105    106   
}
  106    107   
         108  +
/* RustModule.kt:172 */
  107    109   
mod all_query_string_types;
  108    110   
         111  +
/* RustModule.kt:172 */
  109    112   
mod constant_and_variable_query_string;
  110    113   
         114  +
/* RustModule.kt:172 */
  111    115   
mod constant_query_string;
  112    116   
         117  +
/* RustModule.kt:172 */
  113    118   
mod content_type_parameters;
  114    119   
  115         -
/// Operation customization and supporting types.
         120  +
/// /* ClientRustModule.kt:161 */Operation customization and supporting types.
  116    121   
///
  117         -
/// The underlying HTTP requests made during an operation can be customized
         122  +
/// /* ClientRustModule.kt:170 */The underlying HTTP requests made during an operation can be customized
  118    123   
/// by calling the `customize()` method on the builder returned from a client
  119    124   
/// operation call. For example, this can be used to add an additional HTTP header:
  120    125   
///
  121    126   
/// ```ignore
  122    127   
/// # async fn wrapper() -> ::std::result::Result<(), rest_json::Error> {
  123    128   
/// # let client: rest_json::Client = unimplemented!();
  124    129   
/// use ::http::header::{HeaderName, HeaderValue};
  125    130   
///
  126    131   
/// let result = client.all_query_string_types()
  127    132   
///     .customize()
  128    133   
///     .mutate_request(|req| {
  129    134   
///         // Add `x-example-header` with value
  130    135   
///         req.headers_mut()
  131    136   
///             .insert(
  132    137   
///                 HeaderName::from_static("x-example-header"),
  133    138   
///                 HeaderValue::from_static("1"),
  134    139   
///             );
  135    140   
///     })
  136    141   
///     .send()
  137    142   
///     .await;
  138    143   
/// # }
  139    144   
/// ```
  140    145   
pub mod customize;
  141    146   
         147  +
/* RustModule.kt:172 */
  142    148   
mod datetime_offsets;
  143    149   
         150  +
/* RustModule.kt:172 */
  144    151   
mod document_type;
  145    152   
         153  +
/* RustModule.kt:172 */
  146    154   
mod document_type_as_map_value;
  147    155   
         156  +
/* RustModule.kt:172 */
  148    157   
mod document_type_as_payload;
  149    158   
         159  +
/* RustModule.kt:172 */
  150    160   
mod empty_input_and_empty_output;
  151    161   
         162  +
/* RustModule.kt:172 */
  152    163   
mod endpoint_operation;
  153    164   
         165  +
/* RustModule.kt:172 */
  154    166   
mod endpoint_with_host_label_operation;
  155    167   
         168  +
/* RustModule.kt:172 */
  156    169   
mod fractional_seconds;
  157    170   
         171  +
/* RustModule.kt:172 */
  158    172   
mod greeting_with_errors;
  159    173   
         174  +
/* RustModule.kt:172 */
  160    175   
mod host_with_path_operation;
  161    176   
         177  +
/* RustModule.kt:172 */
  162    178   
mod http_checksum_required;
  163    179   
         180  +
/* RustModule.kt:172 */
  164    181   
mod http_enum_payload;
  165    182   
         183  +
/* RustModule.kt:172 */
  166    184   
mod http_payload_traits;
  167    185   
         186  +
/* RustModule.kt:172 */
  168    187   
mod http_payload_traits_with_media_type;
  169    188   
         189  +
/* RustModule.kt:172 */
  170    190   
mod http_payload_with_structure;
  171    191   
         192  +
/* RustModule.kt:172 */
  172    193   
mod http_payload_with_union;
  173    194   
         195  +
/* RustModule.kt:172 */
  174    196   
mod http_prefix_headers;
  175    197   
         198  +
/* RustModule.kt:172 */
  176    199   
mod http_prefix_headers_in_response;
  177    200   
         201  +
/* RustModule.kt:172 */
  178    202   
mod http_request_with_float_labels;
  179    203   
         204  +
/* RustModule.kt:172 */
  180    205   
mod http_request_with_greedy_label_in_path;
  181    206   
         207  +
/* RustModule.kt:172 */
  182    208   
mod http_request_with_labels;
  183    209   
         210  +
/* RustModule.kt:172 */
  184    211   
mod http_request_with_labels_and_timestamp_format;
  185    212   
         213  +
/* RustModule.kt:172 */
  186    214   
mod http_request_with_regex_literal;
  187    215   
         216  +
/* RustModule.kt:172 */
  188    217   
mod http_response_code;
  189    218   
         219  +
/* RustModule.kt:172 */
  190    220   
mod http_string_payload;
  191    221   
         222  +
/* RustModule.kt:172 */
  192    223   
mod ignore_query_params_in_response;
  193    224   
         225  +
/* RustModule.kt:172 */
  194    226   
mod input_and_output_with_headers;
  195    227   
         228  +
/* RustModule.kt:172 */
  196    229   
mod json_blobs;
  197    230   
         231  +
/* RustModule.kt:172 */
  198    232   
mod json_enums;
  199    233   
         234  +
/* RustModule.kt:172 */
  200    235   
mod json_int_enums;
  201    236   
         237  +
/* RustModule.kt:172 */
  202    238   
mod json_lists;
  203    239   
         240  +
/* RustModule.kt:172 */
  204    241   
mod json_maps;
  205    242   
         243  +
/* RustModule.kt:172 */
  206    244   
mod json_timestamps;
  207    245   
         246  +
/* RustModule.kt:172 */
  208    247   
mod json_unions;
  209    248   
         249  +
/* RustModule.kt:172 */
  210    250   
mod malformed_accept_with_body;
  211    251   
         252  +
/* RustModule.kt:172 */
  212    253   
mod malformed_accept_with_generic_string;
  213    254   
         255  +
/* RustModule.kt:172 */
  214    256   
mod malformed_accept_with_payload;
  215    257   
         258  +
/* RustModule.kt:172 */
  216    259   
mod malformed_blob;
  217    260   
         261  +
/* RustModule.kt:172 */
  218    262   
mod malformed_boolean;
  219    263   
         264  +
/* RustModule.kt:172 */
  220    265   
mod malformed_byte;
  221    266   
         267  +
/* RustModule.kt:172 */
  222    268   
mod malformed_content_type_with_body;
  223    269   
         270  +
/* RustModule.kt:172 */
  224    271   
mod malformed_content_type_with_generic_string;
  225    272   
         273  +
/* RustModule.kt:172 */
  226    274   
mod malformed_content_type_with_payload;
  227    275   
         276  +
/* RustModule.kt:172 */
  228    277   
mod malformed_content_type_without_body;
  229    278   
         279  +
/* RustModule.kt:172 */
  230    280   
mod malformed_double;
  231    281   
         282  +
/* RustModule.kt:172 */
  232    283   
mod malformed_float;
  233    284   
         285  +
/* RustModule.kt:172 */
  234    286   
mod malformed_integer;
  235    287   
         288  +
/* RustModule.kt:172 */
  236    289   
mod malformed_list;
  237    290   
         291  +
/* RustModule.kt:172 */
  238    292   
mod malformed_long;
  239    293   
         294  +
/* RustModule.kt:172 */
  240    295   
mod malformed_map;
  241    296   
         297  +
/* RustModule.kt:172 */
  242    298   
mod malformed_request_body;
  243    299   
         300  +
/* RustModule.kt:172 */
  244    301   
mod malformed_short;
  245    302   
         303  +
/* RustModule.kt:172 */
  246    304   
mod malformed_string;
  247    305   
         306  +
/* RustModule.kt:172 */
  248    307   
mod malformed_timestamp_body_date_time;
  249    308   
         309  +
/* RustModule.kt:172 */
  250    310   
mod malformed_timestamp_body_default;
  251    311   
         312  +
/* RustModule.kt:172 */
  252    313   
mod malformed_timestamp_body_http_date;
  253    314   
         315  +
/* RustModule.kt:172 */
  254    316   
mod malformed_timestamp_header_date_time;
  255    317   
         318  +
/* RustModule.kt:172 */
  256    319   
mod malformed_timestamp_header_default;
  257    320   
         321  +
/* RustModule.kt:172 */
  258    322   
mod malformed_timestamp_header_epoch;
  259    323   
         324  +
/* RustModule.kt:172 */
  260    325   
mod malformed_timestamp_path_default;
  261    326   
         327  +
/* RustModule.kt:172 */
  262    328   
mod malformed_timestamp_path_epoch;
  263    329   
         330  +
/* RustModule.kt:172 */
  264    331   
mod malformed_timestamp_path_http_date;
  265    332   
         333  +
/* RustModule.kt:172 */
  266    334   
mod malformed_timestamp_query_default;
  267    335   
         336  +
/* RustModule.kt:172 */
  268    337   
mod malformed_timestamp_query_epoch;
  269    338   
         339  +
/* RustModule.kt:172 */
  270    340   
mod malformed_timestamp_query_http_date;
  271    341   
         342  +
/* RustModule.kt:172 */
  272    343   
mod malformed_union;
  273    344   
         345  +
/* RustModule.kt:172 */
  274    346   
mod media_type_header;
  275    347   
         348  +
/* RustModule.kt:172 */
  276    349   
mod no_input_and_no_output;
  277    350   
         351  +
/* RustModule.kt:172 */
  278    352   
mod no_input_and_output;
  279    353   
         354  +
/* RustModule.kt:172 */
  280    355   
mod null_and_empty_headers_client;
  281    356   
         357  +
/* RustModule.kt:172 */
  282    358   
mod null_and_empty_headers_server;
  283    359   
         360  +
/* RustModule.kt:172 */
  284    361   
mod omits_null_serializes_empty_string;
  285    362   
         363  +
/* RustModule.kt:172 */
  286    364   
mod omits_serializing_empty_lists;
  287    365   
         366  +
/* RustModule.kt:172 */
  288    367   
mod operation_with_defaults;
  289    368   
         369  +
/* RustModule.kt:172 */
  290    370   
mod operation_with_nested_structure;
  291    371   
         372  +
/* RustModule.kt:172 */
  292    373   
mod post_player_action;
  293    374   
         375  +
/* RustModule.kt:172 */
  294    376   
mod post_union_with_json_name;
  295    377   
         378  +
/* RustModule.kt:172 */
  296    379   
mod put_with_content_encoding;
  297    380   
         381  +
/* RustModule.kt:172 */
  298    382   
mod query_idempotency_token_auto_fill;
  299    383   
         384  +
/* RustModule.kt:172 */
  300    385   
mod query_params_as_string_list_map;
  301    386   
         387  +
/* RustModule.kt:172 */
  302    388   
mod query_precedence;
  303    389   
         390  +
/* RustModule.kt:172 */
  304    391   
mod recursive_shapes;
  305    392   
         393  +
/* RustModule.kt:172 */
  306    394   
mod simple_scalar_properties;
  307    395   
         396  +
/* RustModule.kt:172 */
  308    397   
mod sparse_json_lists;
  309    398   
         399  +
/* RustModule.kt:172 */
  310    400   
mod sparse_json_maps;
  311    401   
         402  +
/* RustModule.kt:172 */
  312    403   
mod streaming_traits;
  313    404   
         405  +
/* RustModule.kt:172 */
  314    406   
mod streaming_traits_require_length;
  315    407   
         408  +
/* RustModule.kt:172 */
  316    409   
mod streaming_traits_with_media_type;
  317    410   
         411  +
/* RustModule.kt:172 */
  318    412   
mod test_body_structure;
  319    413   
         414  +
/* RustModule.kt:172 */
  320    415   
mod test_get_no_input_no_payload;
  321    416   
         417  +
/* RustModule.kt:172 */
  322    418   
mod test_get_no_payload;
  323    419   
         420  +
/* RustModule.kt:172 */
  324    421   
mod test_payload_blob;
  325    422   
         423  +
/* RustModule.kt:172 */
  326    424   
mod test_payload_structure;
  327    425   
         426  +
/* RustModule.kt:172 */
  328    427   
mod test_post_no_input_no_payload;
  329    428   
         429  +
/* RustModule.kt:172 */
  330    430   
mod test_post_no_payload;
  331    431   
         432  +
/* RustModule.kt:172 */
  332    433   
mod timestamp_format_headers;
  333    434   
         435  +
/* RustModule.kt:172 */
  334    436   
mod unit_input_and_output;

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/all_query_string_types.rs

@@ -1,1 +32,36 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`AllQueryStringTypes`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder is configurable:
    6      8   
    ///   - [`query_string(impl Into<String>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_string) / [`set_query_string(Option<String>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_string):<br>required: **false**<br>(undocumented)<br>
    7      9   
    ///   - [`query_string_list(impl Into<String>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_string_list) / [`set_query_string_list(Option<Vec::<String>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_string_list):<br>required: **false**<br>(undocumented)<br>
    8     10   
    ///   - [`query_string_set(impl Into<String>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_string_set) / [`set_query_string_set(Option<Vec::<String>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_string_set):<br>required: **false**<br>(undocumented)<br>
    9     11   
    ///   - [`query_byte(i8)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_byte) / [`set_query_byte(Option<i8>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_byte):<br>required: **false**<br>(undocumented)<br>
   10     12   
    ///   - [`query_short(i16)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_short) / [`set_query_short(Option<i16>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_short):<br>required: **false**<br>(undocumented)<br>
   11     13   
    ///   - [`query_integer(i32)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_integer) / [`set_query_integer(Option<i32>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_integer):<br>required: **false**<br>(undocumented)<br>
   12     14   
    ///   - [`query_integer_list(i32)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_integer_list) / [`set_query_integer_list(Option<Vec::<i32>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_integer_list):<br>required: **false**<br>(undocumented)<br>
   13     15   
    ///   - [`query_integer_set(i32)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_integer_set) / [`set_query_integer_set(Option<Vec::<i32>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_integer_set):<br>required: **false**<br>(undocumented)<br>
   14     16   
    ///   - [`query_long(i64)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_long) / [`set_query_long(Option<i64>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_long):<br>required: **false**<br>(undocumented)<br>
   15     17   
    ///   - [`query_float(f32)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_float) / [`set_query_float(Option<f32>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_float):<br>required: **false**<br>(undocumented)<br>
   16     18   
    ///   - [`query_double(f64)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_double) / [`set_query_double(Option<f64>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_double):<br>required: **false**<br>(undocumented)<br>
   17     19   
    ///   - [`query_double_list(f64)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_double_list) / [`set_query_double_list(Option<Vec::<f64>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_double_list):<br>required: **false**<br>(undocumented)<br>
   18     20   
    ///   - [`query_boolean(bool)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_boolean) / [`set_query_boolean(Option<bool>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_boolean):<br>required: **false**<br>(undocumented)<br>
   19     21   
    ///   - [`query_boolean_list(bool)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_boolean_list) / [`set_query_boolean_list(Option<Vec::<bool>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_boolean_list):<br>required: **false**<br>(undocumented)<br>
   20     22   
    ///   - [`query_timestamp(DateTime)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_timestamp) / [`set_query_timestamp(Option<DateTime>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_timestamp):<br>required: **false**<br>(undocumented)<br>
   21     23   
    ///   - [`query_timestamp_list(DateTime)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_timestamp_list) / [`set_query_timestamp_list(Option<Vec::<DateTime>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_timestamp_list):<br>required: **false**<br>(undocumented)<br>
   22     24   
    ///   - [`query_enum(FooEnum)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_enum) / [`set_query_enum(Option<FooEnum>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_enum):<br>required: **false**<br>(undocumented)<br>
   23     25   
    ///   - [`query_enum_list(FooEnum)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_enum_list) / [`set_query_enum_list(Option<Vec::<FooEnum>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_enum_list):<br>required: **false**<br>(undocumented)<br>
   24     26   
    ///   - [`query_integer_enum(i32)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_integer_enum) / [`set_query_integer_enum(Option<i32>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_integer_enum):<br>required: **false**<br>(undocumented)<br>
   25     27   
    ///   - [`query_integer_enum_list(i32)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_integer_enum_list) / [`set_query_integer_enum_list(Option<Vec::<i32>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_integer_enum_list):<br>required: **false**<br>(undocumented)<br>
   26     28   
    ///   - [`query_params_map_of_string_list(impl Into<String>, Vec::<String>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::query_params_map_of_string_list) / [`set_query_params_map_of_string_list(Option<HashMap::<String, Vec::<String>>>)`](crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::set_query_params_map_of_string_list):<br>required: **false**<br>(undocumented)<br>
   27     29   
    /// - On success, responds with [`AllQueryStringTypesOutput`](crate::operation::all_query_string_types::AllQueryStringTypesOutput)
   28     30   
    /// - On failure, responds with [`SdkError<AllQueryStringTypesError>`](crate::operation::all_query_string_types::AllQueryStringTypesError)
          31  +
    /* FluentClientGenerator.kt:234 */
   29     32   
    pub fn all_query_string_types(&self) -> crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder {
   30     33   
        crate::operation::all_query_string_types::builders::AllQueryStringTypesFluentBuilder::new(self.handle.clone())
   31     34   
    }
          35  +
    /* FluentClientGenerator.kt:187 */
   32     36   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/constant_and_variable_query_string.rs

@@ -1,1 +15,19 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`ConstantAndVariableQueryString`](crate::operation::constant_and_variable_query_string::builders::ConstantAndVariableQueryStringFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder is configurable:
    6      8   
    ///   - [`baz(impl Into<String>)`](crate::operation::constant_and_variable_query_string::builders::ConstantAndVariableQueryStringFluentBuilder::baz) / [`set_baz(Option<String>)`](crate::operation::constant_and_variable_query_string::builders::ConstantAndVariableQueryStringFluentBuilder::set_baz):<br>required: **false**<br>(undocumented)<br>
    7      9   
    ///   - [`maybe_set(impl Into<String>)`](crate::operation::constant_and_variable_query_string::builders::ConstantAndVariableQueryStringFluentBuilder::maybe_set) / [`set_maybe_set(Option<String>)`](crate::operation::constant_and_variable_query_string::builders::ConstantAndVariableQueryStringFluentBuilder::set_maybe_set):<br>required: **false**<br>(undocumented)<br>
    8     10   
    /// - On success, responds with [`ConstantAndVariableQueryStringOutput`](crate::operation::constant_and_variable_query_string::ConstantAndVariableQueryStringOutput)
    9     11   
    /// - On failure, responds with [`SdkError<ConstantAndVariableQueryStringError>`](crate::operation::constant_and_variable_query_string::ConstantAndVariableQueryStringError)
          12  +
    /* FluentClientGenerator.kt:234 */
   10     13   
    pub fn constant_and_variable_query_string(
   11     14   
        &self,
   12     15   
    ) -> crate::operation::constant_and_variable_query_string::builders::ConstantAndVariableQueryStringFluentBuilder {
   13     16   
        crate::operation::constant_and_variable_query_string::builders::ConstantAndVariableQueryStringFluentBuilder::new(self.handle.clone())
   14     17   
    }
          18  +
    /* FluentClientGenerator.kt:187 */
   15     19   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/constant_query_string.rs

@@ -1,1 +12,16 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`ConstantQueryString`](crate::operation::constant_query_string::builders::ConstantQueryStringFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder is configurable:
    6      8   
    ///   - [`hello(impl Into<String>)`](crate::operation::constant_query_string::builders::ConstantQueryStringFluentBuilder::hello) / [`set_hello(Option<String>)`](crate::operation::constant_query_string::builders::ConstantQueryStringFluentBuilder::set_hello):<br>required: **true**<br>(undocumented)<br>
    7      9   
    /// - On success, responds with [`ConstantQueryStringOutput`](crate::operation::constant_query_string::ConstantQueryStringOutput)
    8     10   
    /// - On failure, responds with [`SdkError<ConstantQueryStringError>`](crate::operation::constant_query_string::ConstantQueryStringError)
          11  +
    /* FluentClientGenerator.kt:234 */
    9     12   
    pub fn constant_query_string(&self) -> crate::operation::constant_query_string::builders::ConstantQueryStringFluentBuilder {
   10     13   
        crate::operation::constant_query_string::builders::ConstantQueryStringFluentBuilder::new(self.handle.clone())
   11     14   
    }
          15  +
    /* FluentClientGenerator.kt:187 */
   12     16   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/content_type_parameters.rs

@@ -1,1 +12,16 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`ContentTypeParameters`](crate::operation::content_type_parameters::builders::ContentTypeParametersFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder is configurable:
    6      8   
    ///   - [`value(i32)`](crate::operation::content_type_parameters::builders::ContentTypeParametersFluentBuilder::value) / [`set_value(Option<i32>)`](crate::operation::content_type_parameters::builders::ContentTypeParametersFluentBuilder::set_value):<br>required: **false**<br>(undocumented)<br>
    7      9   
    /// - On success, responds with [`ContentTypeParametersOutput`](crate::operation::content_type_parameters::ContentTypeParametersOutput)
    8     10   
    /// - On failure, responds with [`SdkError<ContentTypeParametersError>`](crate::operation::content_type_parameters::ContentTypeParametersError)
          11  +
    /* FluentClientGenerator.kt:234 */
    9     12   
    pub fn content_type_parameters(&self) -> crate::operation::content_type_parameters::builders::ContentTypeParametersFluentBuilder {
   10     13   
        crate::operation::content_type_parameters::builders::ContentTypeParametersFluentBuilder::new(self.handle.clone())
   11     14   
    }
          15  +
    /* FluentClientGenerator.kt:187 */
   12     16   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/customize.rs

@@ -1,1 +32,33 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
           3  +
/* CustomizableOperationGenerator.kt:72 */
    3      4   
/// `CustomizableOperation` allows for configuring a single operation invocation before it is sent.
    4      5   
pub struct CustomizableOperation<T, E, B> {
    5      6   
    customizable_send: B,
    6      7   
    config_override: ::std::option::Option<crate::config::Builder>,
    7      8   
    interceptors: Vec<::aws_smithy_runtime_api::client::interceptors::SharedInterceptor>,
    8      9   
    runtime_plugins: Vec<::aws_smithy_runtime_api::client::runtime_plugin::SharedRuntimePlugin>,
    9     10   
    _output: ::std::marker::PhantomData<T>,
   10     11   
    _error: ::std::marker::PhantomData<E>,
   11     12   
}
   12     13   

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/customize/internal.rs

@@ -1,1 +12,13 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* CustomizableOperationGenerator.kt:204 */
    2      3   
pub type BoxFuture<T> = ::std::pin::Pin<::std::boxed::Box<dyn ::std::future::Future<Output = T> + ::std::marker::Send>>;
    3      4   
    4      5   
pub type SendResult<T, E> =
    5      6   
    ::std::result::Result<T, ::aws_smithy_runtime_api::client::result::SdkError<E, ::aws_smithy_runtime_api::client::orchestrator::HttpResponse>>;
    6      7   
    7      8   
pub trait CustomizableSend<T, E>: ::std::marker::Send + ::std::marker::Sync {
    8      9   
    // Takes an owned `self` as the implementation will internally call methods that take `self`.
    9     10   
    // If it took `&self`, that would make this trait object safe, but some implementing types do not
   10     11   
    // derive `Clone`, unable to yield `self` from `&self`.
   11     12   
    fn send(self, config_override: crate::config::Builder) -> BoxFuture<SendResult<T, E>>;

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/datetime_offsets.rs

@@ -1,1 +12,16 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`DatetimeOffsets`](crate::operation::datetime_offsets::builders::DatetimeOffsetsFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder takes no input, just [`send`](crate::operation::datetime_offsets::builders::DatetimeOffsetsFluentBuilder::send) it.
    6      8   
    /// - On success, responds with [`DatetimeOffsetsOutput`](crate::operation::datetime_offsets::DatetimeOffsetsOutput) with field(s):
    7      9   
    ///   - [`datetime(Option<DateTime>)`](crate::operation::datetime_offsets::DatetimeOffsetsOutput::datetime): (undocumented)
    8     10   
    /// - On failure, responds with [`SdkError<DatetimeOffsetsError>`](crate::operation::datetime_offsets::DatetimeOffsetsError)
          11  +
    /* FluentClientGenerator.kt:234 */
    9     12   
    pub fn datetime_offsets(&self) -> crate::operation::datetime_offsets::builders::DatetimeOffsetsFluentBuilder {
   10     13   
        crate::operation::datetime_offsets::builders::DatetimeOffsetsFluentBuilder::new(self.handle.clone())
   11     14   
    }
          15  +
    /* FluentClientGenerator.kt:187 */
   12     16   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/document_type.rs

@@ -1,1 +15,19 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`DocumentType`](crate::operation::document_type::builders::DocumentTypeFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder is configurable:
    6      8   
    ///   - [`string_value(impl Into<String>)`](crate::operation::document_type::builders::DocumentTypeFluentBuilder::string_value) / [`set_string_value(Option<String>)`](crate::operation::document_type::builders::DocumentTypeFluentBuilder::set_string_value):<br>required: **false**<br>(undocumented)<br>
    7      9   
    ///   - [`document_value(Document)`](crate::operation::document_type::builders::DocumentTypeFluentBuilder::document_value) / [`set_document_value(Option<Document>)`](crate::operation::document_type::builders::DocumentTypeFluentBuilder::set_document_value):<br>required: **false**<br>(undocumented)<br>
    8     10   
    /// - On success, responds with [`DocumentTypeOutput`](crate::operation::document_type::DocumentTypeOutput) with field(s):
    9     11   
    ///   - [`string_value(Option<String>)`](crate::operation::document_type::DocumentTypeOutput::string_value): (undocumented)
   10     12   
    ///   - [`document_value(Option<Document>)`](crate::operation::document_type::DocumentTypeOutput::document_value): (undocumented)
   11     13   
    /// - On failure, responds with [`SdkError<DocumentTypeError>`](crate::operation::document_type::DocumentTypeError)
          14  +
    /* FluentClientGenerator.kt:234 */
   12     15   
    pub fn document_type(&self) -> crate::operation::document_type::builders::DocumentTypeFluentBuilder {
   13     16   
        crate::operation::document_type::builders::DocumentTypeFluentBuilder::new(self.handle.clone())
   14     17   
    }
          18  +
    /* FluentClientGenerator.kt:187 */
   15     19   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/document_type_as_map_value.rs

@@ -1,1 +13,17 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`DocumentTypeAsMapValue`](crate::operation::document_type_as_map_value::builders::DocumentTypeAsMapValueFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder is configurable:
    6      8   
    ///   - [`doc_valued_map(impl Into<String>, Document)`](crate::operation::document_type_as_map_value::builders::DocumentTypeAsMapValueFluentBuilder::doc_valued_map) / [`set_doc_valued_map(Option<HashMap::<String, Document>>)`](crate::operation::document_type_as_map_value::builders::DocumentTypeAsMapValueFluentBuilder::set_doc_valued_map):<br>required: **false**<br>(undocumented)<br>
    7      9   
    /// - On success, responds with [`DocumentTypeAsMapValueOutput`](crate::operation::document_type_as_map_value::DocumentTypeAsMapValueOutput) with field(s):
    8     10   
    ///   - [`doc_valued_map(Option<HashMap::<String, Document>>)`](crate::operation::document_type_as_map_value::DocumentTypeAsMapValueOutput::doc_valued_map): (undocumented)
    9     11   
    /// - On failure, responds with [`SdkError<DocumentTypeAsMapValueError>`](crate::operation::document_type_as_map_value::DocumentTypeAsMapValueError)
          12  +
    /* FluentClientGenerator.kt:234 */
   10     13   
    pub fn document_type_as_map_value(&self) -> crate::operation::document_type_as_map_value::builders::DocumentTypeAsMapValueFluentBuilder {
   11     14   
        crate::operation::document_type_as_map_value::builders::DocumentTypeAsMapValueFluentBuilder::new(self.handle.clone())
   12     15   
    }
          16  +
    /* FluentClientGenerator.kt:187 */
   13     17   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/document_type_as_payload.rs

@@ -1,1 +13,17 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`DocumentTypeAsPayload`](crate::operation::document_type_as_payload::builders::DocumentTypeAsPayloadFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder is configurable:
    6      8   
    ///   - [`document_value(Document)`](crate::operation::document_type_as_payload::builders::DocumentTypeAsPayloadFluentBuilder::document_value) / [`set_document_value(Option<Document>)`](crate::operation::document_type_as_payload::builders::DocumentTypeAsPayloadFluentBuilder::set_document_value):<br>required: **false**<br>(undocumented)<br>
    7      9   
    /// - On success, responds with [`DocumentTypeAsPayloadOutput`](crate::operation::document_type_as_payload::DocumentTypeAsPayloadOutput) with field(s):
    8     10   
    ///   - [`document_value(Option<Document>)`](crate::operation::document_type_as_payload::DocumentTypeAsPayloadOutput::document_value): (undocumented)
    9     11   
    /// - On failure, responds with [`SdkError<DocumentTypeAsPayloadError>`](crate::operation::document_type_as_payload::DocumentTypeAsPayloadError)
          12  +
    /* FluentClientGenerator.kt:234 */
   10     13   
    pub fn document_type_as_payload(&self) -> crate::operation::document_type_as_payload::builders::DocumentTypeAsPayloadFluentBuilder {
   11     14   
        crate::operation::document_type_as_payload::builders::DocumentTypeAsPayloadFluentBuilder::new(self.handle.clone())
   12     15   
    }
          16  +
    /* FluentClientGenerator.kt:187 */
   13     17   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/empty_input_and_empty_output.rs

@@ -1,1 +11,15 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`EmptyInputAndEmptyOutput`](crate::operation::empty_input_and_empty_output::builders::EmptyInputAndEmptyOutputFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder takes no input, just [`send`](crate::operation::empty_input_and_empty_output::builders::EmptyInputAndEmptyOutputFluentBuilder::send) it.
    6      8   
    /// - On success, responds with [`EmptyInputAndEmptyOutputOutput`](crate::operation::empty_input_and_empty_output::EmptyInputAndEmptyOutputOutput)
    7      9   
    /// - On failure, responds with [`SdkError<EmptyInputAndEmptyOutputError>`](crate::operation::empty_input_and_empty_output::EmptyInputAndEmptyOutputError)
          10  +
    /* FluentClientGenerator.kt:234 */
    8     11   
    pub fn empty_input_and_empty_output(&self) -> crate::operation::empty_input_and_empty_output::builders::EmptyInputAndEmptyOutputFluentBuilder {
    9     12   
        crate::operation::empty_input_and_empty_output::builders::EmptyInputAndEmptyOutputFluentBuilder::new(self.handle.clone())
   10     13   
    }
          14  +
    /* FluentClientGenerator.kt:187 */
   11     15   
}

tmp-codegen-diff/codegen-client-test/rest_json/rust-client-codegen/src/client/endpoint_operation.rs

@@ -1,1 +11,15 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* FluentClientGenerator.kt:187 */
    2      3   
impl super::Client {
           4  +
    /* FluentClientGenerator.kt:221 */
    3      5   
    /// Constructs a fluent builder for the [`EndpointOperation`](crate::operation::endpoint_operation::builders::EndpointOperationFluentBuilder) operation.
    4      6   
    ///
    5      7   
    /// - The fluent builder takes no input, just [`send`](crate::operation::endpoint_operation::builders::EndpointOperationFluentBuilder::send) it.
    6      8   
    /// - On success, responds with [`EndpointOperationOutput`](crate::operation::endpoint_operation::EndpointOperationOutput)
    7      9   
    /// - On failure, responds with [`SdkError<EndpointOperationError>`](crate::operation::endpoint_operation::EndpointOperationError)
          10  +
    /* FluentClientGenerator.kt:234 */
    8     11   
    pub fn endpoint_operation(&self) -> crate::operation::endpoint_operation::builders::EndpointOperationFluentBuilder {
    9     12   
        crate::operation::endpoint_operation::builders::EndpointOperationFluentBuilder::new(self.handle.clone())
   10     13   
    }
          14  +
    /* FluentClientGenerator.kt:187 */
   11     15   
}