Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_defaults/builders.rs

@@ -1,1 +166,202 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* CodegenDelegator.kt:255 */
    2      3   
pub use crate::operation::operation_with_defaults::_operation_with_defaults_output::OperationWithDefaultsOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::operation_with_defaults::_operation_with_defaults_input::OperationWithDefaultsInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::operation_with_defaults::builders::OperationWithDefaultsInputBuilder {
    7     10   
    /// Sends a request with this input using the given client.
    8     11   
    pub async fn send_with(
    9     12   
        self,
   10     13   
        client: &crate::Client,
   11     14   
    ) -> ::std::result::Result<
   12     15   
        crate::operation::operation_with_defaults::OperationWithDefaultsOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::operation_with_defaults::OperationWithDefaultsError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.operation_with_defaults();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `OperationWithDefaults`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `OperationWithDefaults`.
   24     27   
///
          28  +
/* RustType.kt:516 */
   25     29   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          30  +
/* FluentBuilderGenerator.kt:270 */
   26     31   
pub struct OperationWithDefaultsFluentBuilder {
   27     32   
    handle: ::std::sync::Arc<crate::client::Handle>,
   28     33   
    inner: crate::operation::operation_with_defaults::builders::OperationWithDefaultsInputBuilder,
   29     34   
    config_override: ::std::option::Option<crate::config::Builder>,
   30     35   
}
          36  +
/* FluentBuilderGenerator.kt:381 */
   31     37   
impl
   32     38   
    crate::client::customize::internal::CustomizableSend<
   33     39   
        crate::operation::operation_with_defaults::OperationWithDefaultsOutput,
   34     40   
        crate::operation::operation_with_defaults::OperationWithDefaultsError,
   35     41   
    > for OperationWithDefaultsFluentBuilder
   36     42   
{
   37     43   
    fn send(
   38     44   
        self,
   39     45   
        config_override: crate::config::Builder,
   40     46   
    ) -> crate::client::customize::internal::BoxFuture<
   41     47   
        crate::client::customize::internal::SendResult<
   42     48   
            crate::operation::operation_with_defaults::OperationWithDefaultsOutput,
   43     49   
            crate::operation::operation_with_defaults::OperationWithDefaultsError,
   44     50   
        >,
   45     51   
    > {
   46     52   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   47     53   
    }
   48     54   
}
          55  +
/* FluentBuilderGenerator.kt:282 */
   49     56   
impl OperationWithDefaultsFluentBuilder {
          57  +
    /* FluentBuilderGenerator.kt:288 */
   50     58   
    /// Creates a new `OperationWithDefaultsFluentBuilder`.
   51     59   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   52     60   
        Self {
   53     61   
            handle,
   54     62   
            inner: ::std::default::Default::default(),
   55     63   
            config_override: ::std::option::Option::None,
   56     64   
        }
   57     65   
    }
          66  +
    /* FluentBuilderGenerator.kt:301 */
   58     67   
    /// Access the OperationWithDefaults as a reference.
   59     68   
    pub fn as_input(&self) -> &crate::operation::operation_with_defaults::builders::OperationWithDefaultsInputBuilder {
   60     69   
        &self.inner
   61     70   
    }
          71  +
    /* FluentBuilderGenerator.kt:145 */
   62     72   
    /// Sends the request and returns the response.
   63     73   
    ///
   64     74   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   65     75   
    /// can be matched against.
   66     76   
    ///
   67     77   
    /// By default, any retryable failures will be retried twice. Retry behavior
   68     78   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   69     79   
    /// set when configuring the client.
   70     80   
    pub async fn send(
   71     81   
        self,
   72     82   
    ) -> ::std::result::Result<
   73     83   
        crate::operation::operation_with_defaults::OperationWithDefaultsOutput,
   74     84   
        ::aws_smithy_runtime_api::client::result::SdkError<
   75     85   
            crate::operation::operation_with_defaults::OperationWithDefaultsError,
   76     86   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   77     87   
        >,
   78     88   
    > {
   79     89   
        let input = self
   80     90   
            .inner
   81     91   
            .build()
   82     92   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   83     93   
        let runtime_plugins = crate::operation::operation_with_defaults::OperationWithDefaults::operation_runtime_plugins(
   84     94   
            self.handle.runtime_plugins.clone(),
   85     95   
            &self.handle.conf,
   86     96   
            self.config_override,
   87     97   
        );
   88     98   
        crate::operation::operation_with_defaults::OperationWithDefaults::orchestrate(&runtime_plugins, input).await
   89     99   
    }
   90    100   
   91    101   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   92    102   
    pub fn customize(
   93    103   
        self,
   94    104   
    ) -> crate::client::customize::CustomizableOperation<
   95    105   
        crate::operation::operation_with_defaults::OperationWithDefaultsOutput,
   96    106   
        crate::operation::operation_with_defaults::OperationWithDefaultsError,
   97    107   
        Self,
   98    108   
    > {
   99    109   
        crate::client::customize::CustomizableOperation::new(self)
  100    110   
    }
         111  +
    /* FluentBuilderGenerator.kt:315 */
  101    112   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  102    113   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  103    114   
        self
  104    115   
    }
  105    116   
  106    117   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  107    118   
        self.config_override = config_override;
  108    119   
        self
  109    120   
    }
         121  +
    /* FluentBuilderGenerator.kt:498 */
  110    122   
    #[allow(missing_docs)] // documentation missing in model
         123  +
                           /* FluentBuilderGenerator.kt:500 */
  111    124   
    pub fn defaults(mut self, input: crate::types::Defaults) -> Self {
  112    125   
        self.inner = self.inner.defaults(input);
  113    126   
        self
  114    127   
    }
         128  +
    /* FluentBuilderGenerator.kt:498 */
  115    129   
    #[allow(missing_docs)] // documentation missing in model
         130  +
                           /* FluentBuilderGenerator.kt:500 */
  116    131   
    pub fn set_defaults(mut self, input: ::std::option::Option<crate::types::Defaults>) -> Self {
  117    132   
        self.inner = self.inner.set_defaults(input);
  118    133   
        self
  119    134   
    }
         135  +
    /* FluentBuilderGenerator.kt:518 */
  120    136   
    #[allow(missing_docs)] // documentation missing in model
         137  +
                           /* FluentBuilderGenerator.kt:520 */
  121    138   
    pub fn get_defaults(&self) -> &::std::option::Option<crate::types::Defaults> {
  122    139   
        self.inner.get_defaults()
  123    140   
    }
         141  +
    /* FluentBuilderGenerator.kt:498 */
  124    142   
    #[allow(missing_docs)] // documentation missing in model
         143  +
                           /* FluentBuilderGenerator.kt:500 */
  125    144   
    pub fn client_optional_defaults(mut self, input: crate::types::ClientOptionalDefaults) -> Self {
  126    145   
        self.inner = self.inner.client_optional_defaults(input);
  127    146   
        self
  128    147   
    }
         148  +
    /* FluentBuilderGenerator.kt:498 */
  129    149   
    #[allow(missing_docs)] // documentation missing in model
         150  +
                           /* FluentBuilderGenerator.kt:500 */
  130    151   
    pub fn set_client_optional_defaults(mut self, input: ::std::option::Option<crate::types::ClientOptionalDefaults>) -> Self {
  131    152   
        self.inner = self.inner.set_client_optional_defaults(input);
  132    153   
        self
  133    154   
    }
         155  +
    /* FluentBuilderGenerator.kt:518 */
  134    156   
    #[allow(missing_docs)] // documentation missing in model
         157  +
                           /* FluentBuilderGenerator.kt:520 */
  135    158   
    pub fn get_client_optional_defaults(&self) -> &::std::option::Option<crate::types::ClientOptionalDefaults> {
  136    159   
        self.inner.get_client_optional_defaults()
  137    160   
    }
         161  +
    /* FluentBuilderGenerator.kt:498 */
  138    162   
    #[allow(missing_docs)] // documentation missing in model
         163  +
                           /* FluentBuilderGenerator.kt:500 */
  139    164   
    pub fn top_level_default(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  140    165   
        self.inner = self.inner.top_level_default(input.into());
  141    166   
        self
  142    167   
    }
         168  +
    /* FluentBuilderGenerator.kt:498 */
  143    169   
    #[allow(missing_docs)] // documentation missing in model
         170  +
                           /* FluentBuilderGenerator.kt:500 */
  144    171   
    pub fn set_top_level_default(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  145    172   
        self.inner = self.inner.set_top_level_default(input);
  146    173   
        self
  147    174   
    }
         175  +
    /* FluentBuilderGenerator.kt:518 */
  148    176   
    #[allow(missing_docs)] // documentation missing in model
         177  +
                           /* FluentBuilderGenerator.kt:520 */
  149    178   
    pub fn get_top_level_default(&self) -> &::std::option::Option<::std::string::String> {
  150    179   
        self.inner.get_top_level_default()
  151    180   
    }
         181  +
    /* FluentBuilderGenerator.kt:498 */
  152    182   
    #[allow(missing_docs)] // documentation missing in model
         183  +
                           /* FluentBuilderGenerator.kt:500 */
  153    184   
    pub fn other_top_level_default(mut self, input: i32) -> Self {
  154    185   
        self.inner = self.inner.other_top_level_default(input);
  155    186   
        self
  156    187   
    }
         188  +
    /* FluentBuilderGenerator.kt:498 */
  157    189   
    #[allow(missing_docs)] // documentation missing in model
         190  +
                           /* FluentBuilderGenerator.kt:500 */
  158    191   
    pub fn set_other_top_level_default(mut self, input: ::std::option::Option<i32>) -> Self {
  159    192   
        self.inner = self.inner.set_other_top_level_default(input);
  160    193   
        self
  161    194   
    }
         195  +
    /* FluentBuilderGenerator.kt:518 */
  162    196   
    #[allow(missing_docs)] // documentation missing in model
         197  +
                           /* FluentBuilderGenerator.kt:520 */
  163    198   
    pub fn get_other_top_level_default(&self) -> &::std::option::Option<i32> {
  164    199   
        self.inner.get_other_top_level_default()
  165    200   
    }
         201  +
    /* FluentBuilderGenerator.kt:282 */
  166    202   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_nested_structure.rs

@@ -1,1 +40,49 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* OperationGenerator.kt:77 */
    2      3   
/// Orchestration and serialization glue logic for `OperationWithNestedStructure`.
           4  +
/* RustType.kt:516 */
    3      5   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           6  +
/* RustType.kt:516 */
    4      7   
#[non_exhaustive]
           8  +
/* OperationGenerator.kt:84 */
    5      9   
pub struct OperationWithNestedStructure;
          10  +
/* OperationGenerator.kt:85 */
    6     11   
impl OperationWithNestedStructure {
    7         -
    /// Creates a new `OperationWithNestedStructure`
          12  +
    /// /* OperationGenerator.kt:86 */Creates a new `OperationWithNestedStructure`
          13  +
    /* OperationGenerator.kt:87 */
    8     14   
    pub fn new() -> Self {
          15  +
        /* OperationGenerator.kt:88 */
    9     16   
        Self
          17  +
        /* OperationGenerator.kt:87 */
   10     18   
    }
          19  +
    /* OperationGenerator.kt:138 */
   11     20   
    pub(crate) async fn orchestrate(
   12     21   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     22   
        input: crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput,
   14     23   
    ) -> ::std::result::Result<
   15     24   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput,
   16     25   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     26   
            crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
   18     27   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     28   
        >,
   20     29   
    > {
@@ -63,72 +276,293 @@
   83     92   
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
   84     93   
            }
   85     94   
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
   86     95   
                config_override,
   87     96   
                client_config.config.clone(),
   88     97   
                &client_config.runtime_components,
   89     98   
            ));
   90     99   
        }
   91    100   
        runtime_plugins
   92    101   
    }
         102  +
    /* OperationGenerator.kt:85 */
   93    103   
}
         104  +
/* OperationRuntimePluginGenerator.kt:55 */
   94    105   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for OperationWithNestedStructure {
   95    106   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
   96    107   
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("OperationWithNestedStructure");
   97    108   
   98    109   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
   99    110   
            OperationWithNestedStructureRequestSerializer,
  100    111   
        ));
  101    112   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
  102    113   
            OperationWithNestedStructureResponseDeserializer,
  103    114   
        ));
  104    115   
  105    116   
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
  106    117   
            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
  107    118   
        ));
  108    119   
  109    120   
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
  110    121   
            "OperationWithNestedStructure",
  111    122   
            "JSON RPC 10",
  112    123   
        ));
  113    124   
  114    125   
        ::std::option::Option::Some(cfg.freeze())
  115    126   
    }
  116    127   
  117    128   
    fn runtime_components(
  118    129   
        &self,
  119    130   
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
  120    131   
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
  121    132   
        #[allow(unused_mut)]
  122    133   
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("OperationWithNestedStructure")
  123    134   
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  124    135   
            .with_interceptor(OperationWithNestedStructureEndpointParamsInterceptor)
  125    136   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  126    137   
                crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
  127    138   
            >::new())
  128    139   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  129    140   
                crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
  130    141   
            >::new());
  131    142   
  132    143   
        ::std::borrow::Cow::Owned(rcb)
  133    144   
    }
  134    145   
}
  135    146   
         147  +
/* ResponseDeserializerGenerator.kt:64 */
  136    148   
#[derive(Debug)]
  137    149   
struct OperationWithNestedStructureResponseDeserializer;
  138    150   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for OperationWithNestedStructureResponseDeserializer {
  139    151   
    fn deserialize_nonstreaming(
  140    152   
        &self,
  141    153   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  142    154   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  143    155   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  144    156   
        let headers = response.headers();
  145    157   
        let body = response.body().bytes().expect("body loaded");
  146    158   
        #[allow(unused_mut)]
  147    159   
        let mut force_error = false;
  148    160   
  149    161   
        let parse_result = if !success && status != 200 || force_error {
  150    162   
            crate::protocol_serde::shape_operation_with_nested_structure::de_operation_with_nested_structure_http_error(status, headers, body)
  151    163   
        } else {
  152    164   
            crate::protocol_serde::shape_operation_with_nested_structure::de_operation_with_nested_structure_http_response(status, headers, body)
  153    165   
        };
  154    166   
        crate::protocol_serde::type_erase_result(parse_result)
  155    167   
    }
  156    168   
}
         169  +
/* RequestSerializerGenerator.kt:67 */
  157    170   
#[derive(Debug)]
  158    171   
struct OperationWithNestedStructureRequestSerializer;
  159    172   
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for OperationWithNestedStructureRequestSerializer {
  160    173   
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
  161    174   
    fn serialize_input(
  162    175   
        &self,
  163    176   
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
  164    177   
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  165    178   
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
  166    179   
        let input = input
  167    180   
            .downcast::<crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput>()
  168    181   
            .expect("correct type");
  169    182   
        let _header_serialization_settings = _cfg
  170    183   
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
  171    184   
            .cloned()
  172    185   
            .unwrap_or_default();
  173    186   
        let mut request_builder = {
  174    187   
            fn uri_base(
  175    188   
                _input: &crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput,
  176    189   
                output: &mut ::std::string::String,
  177    190   
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  178    191   
                use ::std::fmt::Write as _;
  179    192   
                ::std::write!(output, "/").expect("formatting should succeed");
  180    193   
                ::std::result::Result::Ok(())
  181    194   
            }
  182    195   
            #[allow(clippy::unnecessary_wraps)]
  183    196   
            fn update_http_builder(
  184    197   
                input: &crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput,
  185    198   
                builder: ::http::request::Builder,
  186    199   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  187    200   
                let mut uri = ::std::string::String::new();
  188    201   
                uri_base(input, &mut uri)?;
  189    202   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  190    203   
            }
  191    204   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  192    205   
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
  193    206   
            builder = _header_serialization_settings.set_default_header(
  194    207   
                builder,
  195    208   
                ::http::header::HeaderName::from_static("x-amz-target"),
  196    209   
                "JsonRpc10.OperationWithNestedStructure",
  197    210   
            );
  198    211   
            builder
  199    212   
        };
  200    213   
        let body = ::aws_smithy_types::body::SdkBody::from(
  201    214   
            crate::protocol_serde::shape_operation_with_nested_structure::ser_operation_with_nested_structure_input(&input)?,
  202    215   
        );
  203    216   
        if let Some(content_length) = body.content_length() {
  204    217   
            let content_length = content_length.to_string();
  205    218   
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  206    219   
        }
  207    220   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  208    221   
    }
  209    222   
}
         223  +
/* EndpointParamsInterceptorGenerator.kt:86 */
  210    224   
#[derive(Debug)]
  211    225   
struct OperationWithNestedStructureEndpointParamsInterceptor;
  212    226   
  213    227   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for OperationWithNestedStructureEndpointParamsInterceptor {
  214    228   
    fn name(&self) -> &'static str {
  215    229   
        "OperationWithNestedStructureEndpointParamsInterceptor"
  216    230   
    }
  217    231   
  218    232   
    fn read_before_execution(
  219    233   
        &self,
  220    234   
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  221    235   
            '_,
  222    236   
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  223    237   
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  224    238   
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  225    239   
        >,
  226    240   
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  227    241   
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  228    242   
        let _input = context
  229    243   
            .input()
  230    244   
            .downcast_ref::<OperationWithNestedStructureInput>()
  231    245   
            .ok_or("failed to downcast to OperationWithNestedStructureInput")?;
  232    246   
  233    247   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  234    248   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  235    249   
        })?;
  236    250   
        cfg.interceptor_state()
  237    251   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  238    252   
        ::std::result::Result::Ok(())
  239    253   
    }
  240    254   
}
  241    255   
  242    256   
// The get_* functions below are generated from JMESPath expressions in the
  243    257   
// operationContextParams trait. They target the operation's input shape.
  244    258   
         259  +
/* RustType.kt:516 */
  245    260   
#[allow(unreachable_code, unused_variables)]
         261  +
/* RustType.kt:516 */
  246    262   
#[cfg(test)]
         263  +
/* ProtocolTestGenerator.kt:98 */
  247    264   
mod operation_with_nested_structure_test {
  248    265   
  249    266   
    /// Client populates nested default values when missing.
  250    267   
    /// Test ID: AwsJson10ClientPopulatesNestedDefaultValuesWhenMissing
  251    268   
    #[::tokio::test]
  252    269   
    #[::tracing_test::traced_test]
  253    270   
    async fn aws_json10_client_populates_nested_default_values_when_missing_request() {
  254    271   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  255    272   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  256    273   
@@ -395,412 +524,600 @@
  415    432   
            de.deserialize_nonstreaming(&http_response)
  416    433   
        });
  417    434   
        let parsed = parsed
  418    435   
            .expect("should be successful response")
  419    436   
            .downcast::<crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput>()
  420    437   
            .unwrap();
  421    438   
        ::pretty_assertions::assert_eq!(parsed.dialog, expected_output.dialog, "Unexpected value for `dialog`");
  422    439   
        ::pretty_assertions::assert_eq!(parsed.dialog_list, expected_output.dialog_list, "Unexpected value for `dialog_list`");
  423    440   
        ::pretty_assertions::assert_eq!(parsed.dialog_map, expected_output.dialog_map, "Unexpected value for `dialog_map`");
  424    441   
    }
         442  +
         443  +
    /* ProtocolTestGenerator.kt:98 */
  425    444   
}
  426    445   
         446  +
/* OperationErrorGenerator.kt:79 */
  427    447   
/// Error type for the `OperationWithNestedStructureError` operation.
         448  +
/* RustType.kt:516 */
  428    449   
#[non_exhaustive]
         450  +
/* RustType.kt:516 */
  429    451   
#[derive(::std::fmt::Debug)]
  430         -
pub enum OperationWithNestedStructureError {
         452  +
pub /* OperationErrorGenerator.kt:81 */ enum OperationWithNestedStructureError {
         453  +
    /* OperationErrorGenerator.kt:88 */
  431    454   
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  432    455   
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  433    456   
    variable wildcard pattern and check `.code()`:
  434    457   
     \
  435    458   
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  436    459   
     \
  437    460   
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-OperationWithNestedStructureError) for what information is available for the error.")]
  438    461   
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         462  +
    /* OperationErrorGenerator.kt:81 */
  439    463   
}
         464  +
/* OperationErrorGenerator.kt:218 */
  440    465   
impl OperationWithNestedStructureError {
         466  +
    /* OperationErrorGenerator.kt:219 */
  441    467   
    /// Creates the `OperationWithNestedStructureError::Unhandled` variant from any error type.
  442    468   
    pub fn unhandled(
  443    469   
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  444    470   
    ) -> Self {
  445    471   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  446    472   
            source: err.into(),
  447    473   
            meta: ::std::default::Default::default(),
  448    474   
        })
  449    475   
    }
  450    476   
  451    477   
    /// Creates the `OperationWithNestedStructureError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  452    478   
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  453    479   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  454    480   
            source: err.clone().into(),
  455    481   
            meta: err,
  456    482   
        })
  457    483   
    }
  458         -
    ///
         484  +
    /// /* OperationErrorGenerator.kt:236 */
  459    485   
    /// Returns error metadata, which includes the error code, message,
  460    486   
    /// request ID, and potentially additional information.
  461    487   
    ///
         488  +
    /* OperationErrorGenerator.kt:242 */
  462    489   
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         490  +
        /* OperationErrorGenerator.kt:243 */
  463    491   
        match self {
  464         -
            Self::Unhandled(e) => &e.meta,
         492  +
            /* OperationErrorGenerator.kt:251 */ Self::Unhandled(e) => &e.meta,
         493  +
            /* OperationErrorGenerator.kt:243 */
  465    494   
        }
         495  +
        /* OperationErrorGenerator.kt:242 */
  466    496   
    }
         497  +
    /* OperationErrorGenerator.kt:218 */
  467    498   
}
         499  +
/* OperationErrorGenerator.kt:269 */
  468    500   
impl ::std::error::Error for OperationWithNestedStructureError {
         501  +
    /* OperationErrorGenerator.kt:270 */
  469    502   
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         503  +
        /* OperationErrorGenerator.kt:318 */
  470    504   
        match self {
  471         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         505  +
            /* OperationErrorGenerator.kt:326 */
         506  +
            Self::Unhandled(_inner) => {
         507  +
                /* OperationErrorGenerator.kt:279 */
         508  +
                ::std::option::Option::Some(&*_inner.source)
         509  +
                /* OperationErrorGenerator.kt:326 */
         510  +
            } /* OperationErrorGenerator.kt:318 */
  472    511   
        }
         512  +
        /* OperationErrorGenerator.kt:270 */
  473    513   
    }
         514  +
    /* OperationErrorGenerator.kt:269 */
  474    515   
}
         516  +
/* OperationErrorGenerator.kt:133 */
  475    517   
impl ::std::fmt::Display for OperationWithNestedStructureError {
         518  +
    /* OperationErrorGenerator.kt:134 */
  476    519   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         520  +
        /* OperationErrorGenerator.kt:318 */
  477    521   
        match self {
         522  +
            /* OperationErrorGenerator.kt:326 */
  478    523   
            Self::Unhandled(_inner) => {
         524  +
                /* OperationErrorGenerator.kt:139 */
  479    525   
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  480    526   
                    write!(f, "unhandled error ({code})")
  481    527   
                } else {
  482    528   
                    f.write_str("unhandled error")
  483    529   
                }
  484         -
            }
         530  +
                /* OperationErrorGenerator.kt:326 */
         531  +
            } /* OperationErrorGenerator.kt:318 */
  485    532   
        }
         533  +
        /* OperationErrorGenerator.kt:134 */
  486    534   
    }
         535  +
    /* OperationErrorGenerator.kt:133 */
  487    536   
}
         537  +
/* OperationErrorGenerator.kt:182 */
  488    538   
impl ::aws_smithy_types::retry::ProvideErrorKind for OperationWithNestedStructureError {
         539  +
    /* OperationErrorGenerator.kt:186 */
  489    540   
    fn code(&self) -> ::std::option::Option<&str> {
         541  +
        /* OperationErrorGenerator.kt:187 */
  490    542   
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         543  +
        /* OperationErrorGenerator.kt:186 */
  491    544   
    }
         545  +
    /* OperationErrorGenerator.kt:190 */
  492    546   
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         547  +
        /* OperationErrorGenerator.kt:197 */
  493    548   
        ::std::option::Option::None
         549  +
        /* OperationErrorGenerator.kt:190 */
  494    550   
    }
         551  +
    /* OperationErrorGenerator.kt:182 */
  495    552   
}
         553  +
/* OperationErrorGenerator.kt:163 */
  496    554   
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for OperationWithNestedStructureError {
         555  +
    /* OperationErrorGenerator.kt:164 */
  497    556   
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         557  +
        /* OperationErrorGenerator.kt:318 */
  498    558   
        match self {
  499         -
            Self::Unhandled(_inner) => &_inner.meta,
         559  +
            /* OperationErrorGenerator.kt:326 */
         560  +
            Self::Unhandled(_inner) => {
         561  +
                /* OperationErrorGenerator.kt:168 */
         562  +
                &_inner.meta
         563  +
                /* OperationErrorGenerator.kt:326 */
         564  +
            } /* OperationErrorGenerator.kt:318 */
  500    565   
        }
         566  +
        /* OperationErrorGenerator.kt:164 */
  501    567   
    }
         568  +
    /* OperationErrorGenerator.kt:163 */
  502    569   
}
         570  +
/* OperationErrorGenerator.kt:109 */
  503    571   
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for OperationWithNestedStructureError {
         572  +
    /* OperationErrorGenerator.kt:110 */
  504    573   
    fn create_unhandled_error(
  505    574   
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  506    575   
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  507    576   
    ) -> Self {
         577  +
        /* OperationErrorGenerator.kt:121 */
  508    578   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  509    579   
            source,
  510    580   
            meta: meta.unwrap_or_default(),
  511    581   
        })
         582  +
        /* OperationErrorGenerator.kt:110 */
  512    583   
    }
         584  +
    /* OperationErrorGenerator.kt:109 */
  513    585   
}
  514    586   
         587  +
/* CodegenDelegator.kt:255 */
  515    588   
pub use crate::operation::operation_with_nested_structure::_operation_with_nested_structure_output::OperationWithNestedStructureOutput;
  516    589   
         590  +
/* CodegenDelegator.kt:255 */
  517    591   
pub use crate::operation::operation_with_nested_structure::_operation_with_nested_structure_input::OperationWithNestedStructureInput;
  518    592   
         593  +
/* RustModule.kt:172 */
  519    594   
mod _operation_with_nested_structure_input;
  520    595   
         596  +
/* RustModule.kt:172 */
  521    597   
mod _operation_with_nested_structure_output;
  522    598   
  523         -
/// Builders
         599  +
/// /* CodegenDelegator.kt:51 */Builders
  524    600   
pub mod builders;

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_nested_structure/_operation_with_nested_structure_input.rs

@@ -1,1 +53,97 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    4      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct OperationWithNestedStructureInput {
           8  +
pub /* StructureGenerator.kt:201 */ struct OperationWithNestedStructureInput {
           9  +
    /* StructureGenerator.kt:231 */
    6     10   
    #[allow(missing_docs)] // documentation missing in model
    7     11   
    pub top_level: ::std::option::Option<crate::types::TopLevel>,
          12  +
    /* StructureGenerator.kt:201 */
    8     13   
}
          14  +
/* StructureGenerator.kt:135 */
    9     15   
impl OperationWithNestedStructureInput {
          16  +
    /* StructureGenerator.kt:231 */
   10     17   
    #[allow(missing_docs)] // documentation missing in model
          18  +
                           /* StructureGenerator.kt:166 */
   11     19   
    pub fn top_level(&self) -> ::std::option::Option<&crate::types::TopLevel> {
          20  +
        /* StructureGenerator.kt:170 */
   12     21   
        self.top_level.as_ref()
          22  +
        /* StructureGenerator.kt:166 */
   13     23   
    }
          24  +
    /* StructureGenerator.kt:135 */
   14     25   
}
          26  +
/* ClientCodegenVisitor.kt:237 */
   15     27   
impl OperationWithNestedStructureInput {
   16         -
    /// Creates a new builder-style object to manufacture [`OperationWithNestedStructureInput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput).
          28  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`OperationWithNestedStructureInput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput).
          29  +
    /* BuilderGenerator.kt:175 */
   17     30   
    pub fn builder() -> crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureInputBuilder {
          31  +
        /* BuilderGenerator.kt:176 */
   18     32   
        crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureInputBuilder::default()
          33  +
        /* BuilderGenerator.kt:175 */
   19     34   
    }
          35  +
    /* ClientCodegenVisitor.kt:237 */
   20     36   
}
   21     37   
   22         -
/// A builder for [`OperationWithNestedStructureInput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput).
          38  +
/// /* BuilderGenerator.kt:342 */A builder for [`OperationWithNestedStructureInput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput).
          39  +
/* RustType.kt:516 */
   23     40   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          41  +
/* RustType.kt:516 */
   24     42   
#[non_exhaustive]
          43  +
/* BuilderGenerator.kt:345 */
   25     44   
pub struct OperationWithNestedStructureInputBuilder {
   26         -
    pub(crate) top_level: ::std::option::Option<crate::types::TopLevel>,
          45  +
    /* BuilderGenerator.kt:275 */ pub(crate) top_level: ::std::option::Option<crate::types::TopLevel>,
          46  +
    /* BuilderGenerator.kt:345 */
   27     47   
}
          48  +
/* BuilderGenerator.kt:355 */
   28     49   
impl OperationWithNestedStructureInputBuilder {
          50  +
    /* BuilderGenerator.kt:286 */
   29     51   
    #[allow(missing_docs)] // documentation missing in model
   30         -
    /// This field is required.
          52  +
    /// /* BuilderGenerator.kt:288 */This field is required.
          53  +
    /* BuilderGenerator.kt:291 */
   31     54   
    pub fn top_level(mut self, input: crate::types::TopLevel) -> Self {
          55  +
        /* BuilderGenerator.kt:292 */
   32     56   
        self.top_level = ::std::option::Option::Some(input);
          57  +
        /* BuilderGenerator.kt:293 */
   33     58   
        self
          59  +
        /* BuilderGenerator.kt:291 */
   34     60   
    }
          61  +
    /* BuilderGenerator.kt:312 */
   35     62   
    #[allow(missing_docs)] // documentation missing in model
          63  +
                           /* BuilderGenerator.kt:314 */
   36     64   
    pub fn set_top_level(mut self, input: ::std::option::Option<crate::types::TopLevel>) -> Self {
          65  +
        /* BuilderGenerator.kt:315 */
   37     66   
        self.top_level = input;
   38     67   
        self
          68  +
        /* BuilderGenerator.kt:314 */
   39     69   
    }
          70  +
    /* BuilderGenerator.kt:334 */
   40     71   
    #[allow(missing_docs)] // documentation missing in model
          72  +
                           /* BuilderGenerator.kt:336 */
   41     73   
    pub fn get_top_level(&self) -> &::std::option::Option<crate::types::TopLevel> {
          74  +
        /* BuilderGenerator.kt:337 */
   42     75   
        &self.top_level
          76  +
        /* BuilderGenerator.kt:336 */
   43     77   
    }
   44         -
    /// Consumes the builder and constructs a [`OperationWithNestedStructureInput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput).
          78  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`OperationWithNestedStructureInput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput).
          79  +
    /* BuilderGenerator.kt:253 */
   45     80   
    pub fn build(
   46     81   
        self,
   47     82   
    ) -> ::std::result::Result<
   48     83   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput,
   49     84   
        ::aws_smithy_types::error::operation::BuildError,
   50     85   
    > {
   51         -
        ::std::result::Result::Ok(crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput { top_level: self.top_level })
          86  +
        /* BuilderGenerator.kt:254 */
          87  +
        ::std::result::Result::Ok(
          88  +
            /* BuilderGenerator.kt:477 */
          89  +
            crate::operation::operation_with_nested_structure::OperationWithNestedStructureInput {
          90  +
                /* BuilderGenerator.kt:481 */ top_level: self.top_level,
          91  +
                /* BuilderGenerator.kt:477 */
          92  +
            }, /* BuilderGenerator.kt:254 */
          93  +
        )
          94  +
        /* BuilderGenerator.kt:253 */
   52     95   
    }
          96  +
    /* BuilderGenerator.kt:355 */
   53     97   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_nested_structure/_operation_with_nested_structure_output.rs

@@ -1,1 +117,196 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    4      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct OperationWithNestedStructureOutput {
    6         -
    #[allow(missing_docs)] // documentation missing in model
           8  +
pub /* StructureGenerator.kt:201 */ struct OperationWithNestedStructureOutput {
           9  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
    7     10   
    pub dialog: crate::types::Dialog,
          11  +
    /* StructureGenerator.kt:231 */
    8     12   
    #[allow(missing_docs)] // documentation missing in model
    9     13   
    pub dialog_list: ::std::vec::Vec<crate::types::Dialog>,
          14  +
    /* StructureGenerator.kt:231 */
   10     15   
    #[allow(missing_docs)] // documentation missing in model
   11     16   
    pub dialog_map: ::std::collections::HashMap<::std::string::String, crate::types::Dialog>,
          17  +
    /* StructureGenerator.kt:201 */
   12     18   
}
          19  +
/* StructureGenerator.kt:135 */
   13     20   
impl OperationWithNestedStructureOutput {
          21  +
    /* StructureGenerator.kt:231 */
   14     22   
    #[allow(missing_docs)] // documentation missing in model
          23  +
                           /* StructureGenerator.kt:166 */
   15     24   
    pub fn dialog(&self) -> &crate::types::Dialog {
          25  +
        /* StructureGenerator.kt:172 */
   16     26   
        &self.dialog
          27  +
        /* StructureGenerator.kt:166 */
   17     28   
    }
          29  +
    /* StructureGenerator.kt:231 */
   18     30   
    #[allow(missing_docs)] // documentation missing in model
          31  +
                           /* StructureGenerator.kt:166 */
   19     32   
    pub fn dialog_list(&self) -> &[crate::types::Dialog] {
          33  +
        /* StructureGenerator.kt:171 */
   20     34   
        use std::ops::Deref;
   21     35   
        self.dialog_list.deref()
          36  +
        /* StructureGenerator.kt:166 */
   22     37   
    }
          38  +
    /* StructureGenerator.kt:231 */
   23     39   
    #[allow(missing_docs)] // documentation missing in model
          40  +
                           /* StructureGenerator.kt:166 */
   24     41   
    pub fn dialog_map(&self) -> &::std::collections::HashMap<::std::string::String, crate::types::Dialog> {
          42  +
        /* StructureGenerator.kt:172 */
   25     43   
        &self.dialog_map
          44  +
        /* StructureGenerator.kt:166 */
   26     45   
    }
          46  +
    /* StructureGenerator.kt:135 */
   27     47   
}
          48  +
/* ClientCodegenVisitor.kt:237 */
   28     49   
impl OperationWithNestedStructureOutput {
   29         -
    /// Creates a new builder-style object to manufacture [`OperationWithNestedStructureOutput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput).
          50  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`OperationWithNestedStructureOutput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput).
          51  +
    /* BuilderGenerator.kt:175 */
   30     52   
    pub fn builder() -> crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder {
          53  +
        /* BuilderGenerator.kt:176 */
   31     54   
        crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder::default()
          55  +
        /* BuilderGenerator.kt:175 */
   32     56   
    }
          57  +
    /* ClientCodegenVisitor.kt:237 */
   33     58   
}
   34     59   
   35         -
/// A builder for [`OperationWithNestedStructureOutput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput).
          60  +
/// /* BuilderGenerator.kt:342 */A builder for [`OperationWithNestedStructureOutput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput).
          61  +
/* RustType.kt:516 */
   36     62   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          63  +
/* RustType.kt:516 */
   37     64   
#[non_exhaustive]
          65  +
/* BuilderGenerator.kt:345 */
   38     66   
pub struct OperationWithNestedStructureOutputBuilder {
   39         -
    pub(crate) dialog: ::std::option::Option<crate::types::Dialog>,
   40         -
    pub(crate) dialog_list: ::std::option::Option<::std::vec::Vec<crate::types::Dialog>>,
          67  +
    /* BuilderGenerator.kt:275 */ pub(crate) dialog: ::std::option::Option<crate::types::Dialog>,
          68  +
    /* BuilderGenerator.kt:275 */ pub(crate) dialog_list: ::std::option::Option<::std::vec::Vec<crate::types::Dialog>>,
          69  +
    /* BuilderGenerator.kt:275 */
   41     70   
    pub(crate) dialog_map: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Dialog>>,
          71  +
    /* BuilderGenerator.kt:345 */
   42     72   
}
          73  +
/* BuilderGenerator.kt:355 */
   43     74   
impl OperationWithNestedStructureOutputBuilder {
          75  +
    /* BuilderGenerator.kt:286 */
   44     76   
    #[allow(missing_docs)] // documentation missing in model
   45         -
    /// This field is required.
          77  +
    /// /* BuilderGenerator.kt:288 */This field is required.
          78  +
    /* BuilderGenerator.kt:291 */
   46     79   
    pub fn dialog(mut self, input: crate::types::Dialog) -> Self {
          80  +
        /* BuilderGenerator.kt:292 */
   47     81   
        self.dialog = ::std::option::Option::Some(input);
          82  +
        /* BuilderGenerator.kt:293 */
   48     83   
        self
          84  +
        /* BuilderGenerator.kt:291 */
   49     85   
    }
          86  +
    /* BuilderGenerator.kt:312 */
   50     87   
    #[allow(missing_docs)] // documentation missing in model
          88  +
                           /* BuilderGenerator.kt:314 */
   51     89   
    pub fn set_dialog(mut self, input: ::std::option::Option<crate::types::Dialog>) -> Self {
          90  +
        /* BuilderGenerator.kt:315 */
   52     91   
        self.dialog = input;
   53     92   
        self
          93  +
        /* BuilderGenerator.kt:314 */
   54     94   
    }
          95  +
    /* BuilderGenerator.kt:334 */
   55     96   
    #[allow(missing_docs)] // documentation missing in model
          97  +
                           /* BuilderGenerator.kt:336 */
   56     98   
    pub fn get_dialog(&self) -> &::std::option::Option<crate::types::Dialog> {
          99  +
        /* BuilderGenerator.kt:337 */
   57    100   
        &self.dialog
         101  +
        /* BuilderGenerator.kt:336 */
   58    102   
    }
   59         -
    /// Appends an item to `dialog_list`.
         103  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `dialog_list`.
         104  +
    /* BuilderGenerator.kt:411 */
   60    105   
    ///
   61         -
    /// To override the contents of this collection use [`set_dialog_list`](Self::set_dialog_list).
         106  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_dialog_list`](Self::set_dialog_list).
         107  +
    /* BuilderGenerator.kt:413 */
   62    108   
    ///
         109  +
    /* BuilderGenerator.kt:418 */
   63    110   
    pub fn dialog_list(mut self, input: crate::types::Dialog) -> Self {
         111  +
        /* BuilderGenerator.kt:419 */
   64    112   
        let mut v = self.dialog_list.unwrap_or_default();
   65    113   
        v.push(input);
   66    114   
        self.dialog_list = ::std::option::Option::Some(v);
   67    115   
        self
         116  +
        /* BuilderGenerator.kt:418 */
   68    117   
    }
         118  +
    /* BuilderGenerator.kt:312 */
   69    119   
    #[allow(missing_docs)] // documentation missing in model
         120  +
                           /* BuilderGenerator.kt:314 */
   70    121   
    pub fn set_dialog_list(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Dialog>>) -> Self {
         122  +
        /* BuilderGenerator.kt:315 */
   71    123   
        self.dialog_list = input;
   72    124   
        self
         125  +
        /* BuilderGenerator.kt:314 */
   73    126   
    }
         127  +
    /* BuilderGenerator.kt:334 */
   74    128   
    #[allow(missing_docs)] // documentation missing in model
         129  +
                           /* BuilderGenerator.kt:336 */
   75    130   
    pub fn get_dialog_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Dialog>> {
         131  +
        /* BuilderGenerator.kt:337 */
   76    132   
        &self.dialog_list
         133  +
        /* BuilderGenerator.kt:336 */
   77    134   
    }
   78         -
    /// Adds a key-value pair to `dialog_map`.
         135  +
    /// /* BuilderGenerator.kt:436 */Adds a key-value pair to `dialog_map`.
         136  +
    /* BuilderGenerator.kt:437 */
   79    137   
    ///
   80         -
    /// To override the contents of this collection use [`set_dialog_map`](Self::set_dialog_map).
         138  +
    /// /* BuilderGenerator.kt:438 */To override the contents of this collection use [`set_dialog_map`](Self::set_dialog_map).
         139  +
    /* BuilderGenerator.kt:439 */
   81    140   
    ///
         141  +
    /* BuilderGenerator.kt:445 */
   82    142   
    pub fn dialog_map(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::Dialog) -> Self {
         143  +
        /* BuilderGenerator.kt:448 */
   83    144   
        let mut hash_map = self.dialog_map.unwrap_or_default();
   84    145   
        hash_map.insert(k.into(), v);
   85    146   
        self.dialog_map = ::std::option::Option::Some(hash_map);
   86    147   
        self
         148  +
        /* BuilderGenerator.kt:445 */
   87    149   
    }
         150  +
    /* BuilderGenerator.kt:312 */
   88    151   
    #[allow(missing_docs)] // documentation missing in model
         152  +
                           /* BuilderGenerator.kt:314 */
   89    153   
    pub fn set_dialog_map(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Dialog>>) -> Self {
         154  +
        /* BuilderGenerator.kt:315 */
   90    155   
        self.dialog_map = input;
   91    156   
        self
         157  +
        /* BuilderGenerator.kt:314 */
   92    158   
    }
         159  +
    /* BuilderGenerator.kt:334 */
   93    160   
    #[allow(missing_docs)] // documentation missing in model
         161  +
                           /* BuilderGenerator.kt:336 */
   94    162   
    pub fn get_dialog_map(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::Dialog>> {
         163  +
        /* BuilderGenerator.kt:337 */
   95    164   
        &self.dialog_map
         165  +
        /* BuilderGenerator.kt:336 */
   96    166   
    }
   97         -
    /// Consumes the builder and constructs a [`OperationWithNestedStructureOutput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput).
   98         -
    /// This method will fail if any of the following fields are not set:
   99         -
    /// - [`dialog`](crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder::dialog)
         167  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`OperationWithNestedStructureOutput`](crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput).
         168  +
    /// /* BuilderGenerator.kt:243 */This method will fail if any of the following fields are not set:
         169  +
    /// /* BuilderGenerator.kt:246 */- [`dialog`](crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureOutputBuilder::dialog)
         170  +
    /* BuilderGenerator.kt:253 */
  100    171   
    pub fn build(
  101    172   
        self,
  102    173   
    ) -> ::std::result::Result<
  103    174   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput,
  104    175   
        ::aws_smithy_types::error::operation::BuildError,
  105    176   
    > {
  106         -
        ::std::result::Result::Ok(crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput {
  107         -
            dialog: self.dialog.ok_or_else(|| {
  108         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  109         -
                    "dialog",
  110         -
                    "dialog was not specified but it is required when building OperationWithNestedStructureOutput",
  111         -
                )
  112         -
            })?,
  113         -
            dialog_list: self.dialog_list.unwrap_or_default(),
  114         -
            dialog_map: self.dialog_map.unwrap_or_default(),
  115         -
        })
         177  +
        /* BuilderGenerator.kt:254 */
         178  +
        ::std::result::Result::Ok(
         179  +
            /* BuilderGenerator.kt:477 */crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput {
         180  +
                /* BuilderGenerator.kt:481 */dialog: self.dialog
         181  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         182  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("dialog", "dialog was not specified but it is required when building OperationWithNestedStructureOutput")
         183  +
                    /* BuilderGenerator.kt:494 */)?
         184  +
                ,
         185  +
                /* BuilderGenerator.kt:481 */dialog_list: self.dialog_list
         186  +
                    /* BuilderGenerator.kt:487 */.unwrap_or_default()
         187  +
                ,
         188  +
                /* BuilderGenerator.kt:481 */dialog_map: self.dialog_map
         189  +
                    /* BuilderGenerator.kt:487 */.unwrap_or_default()
         190  +
                ,
         191  +
            /* BuilderGenerator.kt:477 */}
         192  +
        /* BuilderGenerator.kt:254 */)
         193  +
        /* BuilderGenerator.kt:253 */
  116    194   
    }
         195  +
    /* BuilderGenerator.kt:355 */
  117    196   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_nested_structure/builders.rs

@@ -1,1 +124,142 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* CodegenDelegator.kt:255 */
    2      3   
pub use crate::operation::operation_with_nested_structure::_operation_with_nested_structure_output::OperationWithNestedStructureOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::operation_with_nested_structure::_operation_with_nested_structure_input::OperationWithNestedStructureInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureInputBuilder {
    7     10   
    /// Sends a request with this input using the given client.
    8     11   
    pub async fn send_with(
    9     12   
        self,
   10     13   
        client: &crate::Client,
   11     14   
    ) -> ::std::result::Result<
   12     15   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.operation_with_nested_structure();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `OperationWithNestedStructure`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `OperationWithNestedStructure`.
   24     27   
///
          28  +
/* RustType.kt:516 */
   25     29   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          30  +
/* FluentBuilderGenerator.kt:270 */
   26     31   
pub struct OperationWithNestedStructureFluentBuilder {
   27     32   
    handle: ::std::sync::Arc<crate::client::Handle>,
   28     33   
    inner: crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureInputBuilder,
   29     34   
    config_override: ::std::option::Option<crate::config::Builder>,
   30     35   
}
          36  +
/* FluentBuilderGenerator.kt:381 */
   31     37   
impl
   32     38   
    crate::client::customize::internal::CustomizableSend<
   33     39   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput,
   34     40   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
   35     41   
    > for OperationWithNestedStructureFluentBuilder
   36     42   
{
   37     43   
    fn send(
   38     44   
        self,
   39     45   
        config_override: crate::config::Builder,
   40     46   
    ) -> crate::client::customize::internal::BoxFuture<
   41     47   
        crate::client::customize::internal::SendResult<
   42     48   
            crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput,
   43     49   
            crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
   44     50   
        >,
   45     51   
    > {
   46     52   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   47     53   
    }
   48     54   
}
          55  +
/* FluentBuilderGenerator.kt:282 */
   49     56   
impl OperationWithNestedStructureFluentBuilder {
          57  +
    /* FluentBuilderGenerator.kt:288 */
   50     58   
    /// Creates a new `OperationWithNestedStructureFluentBuilder`.
   51     59   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   52     60   
        Self {
   53     61   
            handle,
   54     62   
            inner: ::std::default::Default::default(),
   55     63   
            config_override: ::std::option::Option::None,
   56     64   
        }
   57     65   
    }
          66  +
    /* FluentBuilderGenerator.kt:301 */
   58     67   
    /// Access the OperationWithNestedStructure as a reference.
   59     68   
    pub fn as_input(&self) -> &crate::operation::operation_with_nested_structure::builders::OperationWithNestedStructureInputBuilder {
   60     69   
        &self.inner
   61     70   
    }
          71  +
    /* FluentBuilderGenerator.kt:145 */
   62     72   
    /// Sends the request and returns the response.
   63     73   
    ///
   64     74   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   65     75   
    /// can be matched against.
   66     76   
    ///
   67     77   
    /// By default, any retryable failures will be retried twice. Retry behavior
   68     78   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   69     79   
    /// set when configuring the client.
   70     80   
    pub async fn send(
   71     81   
        self,
   72     82   
    ) -> ::std::result::Result<
   73     83   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput,
   74     84   
        ::aws_smithy_runtime_api::client::result::SdkError<
   75     85   
            crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
   76     86   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   77     87   
        >,
   78     88   
    > {
   79     89   
        let input = self
   80     90   
            .inner
   81     91   
            .build()
   82     92   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   83     93   
        let runtime_plugins = crate::operation::operation_with_nested_structure::OperationWithNestedStructure::operation_runtime_plugins(
   84     94   
            self.handle.runtime_plugins.clone(),
   85     95   
            &self.handle.conf,
   86     96   
            self.config_override,
   87     97   
        );
   88     98   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructure::orchestrate(&runtime_plugins, input).await
   89     99   
    }
   90    100   
   91    101   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   92    102   
    pub fn customize(
   93    103   
        self,
   94    104   
    ) -> crate::client::customize::CustomizableOperation<
   95    105   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureOutput,
   96    106   
        crate::operation::operation_with_nested_structure::OperationWithNestedStructureError,
   97    107   
        Self,
   98    108   
    > {
   99    109   
        crate::client::customize::CustomizableOperation::new(self)
  100    110   
    }
         111  +
    /* FluentBuilderGenerator.kt:315 */
  101    112   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  102    113   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  103    114   
        self
  104    115   
    }
  105    116   
  106    117   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  107    118   
        self.config_override = config_override;
  108    119   
        self
  109    120   
    }
         121  +
    /* FluentBuilderGenerator.kt:498 */
  110    122   
    #[allow(missing_docs)] // documentation missing in model
         123  +
                           /* FluentBuilderGenerator.kt:500 */
  111    124   
    pub fn top_level(mut self, input: crate::types::TopLevel) -> Self {
  112    125   
        self.inner = self.inner.top_level(input);
  113    126   
        self
  114    127   
    }
         128  +
    /* FluentBuilderGenerator.kt:498 */
  115    129   
    #[allow(missing_docs)] // documentation missing in model
         130  +
                           /* FluentBuilderGenerator.kt:500 */
  116    131   
    pub fn set_top_level(mut self, input: ::std::option::Option<crate::types::TopLevel>) -> Self {
  117    132   
        self.inner = self.inner.set_top_level(input);
  118    133   
        self
  119    134   
    }
         135  +
    /* FluentBuilderGenerator.kt:518 */
  120    136   
    #[allow(missing_docs)] // documentation missing in model
         137  +
                           /* FluentBuilderGenerator.kt:520 */
  121    138   
    pub fn get_top_level(&self) -> &::std::option::Option<crate::types::TopLevel> {
  122    139   
        self.inner.get_top_level()
  123    140   
    }
         141  +
    /* FluentBuilderGenerator.kt:282 */
  124    142   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_required_members.rs

@@ -1,1 +40,49 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* OperationGenerator.kt:77 */
    2      3   
/// Orchestration and serialization glue logic for `OperationWithRequiredMembers`.
           4  +
/* RustType.kt:516 */
    3      5   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           6  +
/* RustType.kt:516 */
    4      7   
#[non_exhaustive]
           8  +
/* OperationGenerator.kt:84 */
    5      9   
pub struct OperationWithRequiredMembers;
          10  +
/* OperationGenerator.kt:85 */
    6     11   
impl OperationWithRequiredMembers {
    7         -
    /// Creates a new `OperationWithRequiredMembers`
          12  +
    /// /* OperationGenerator.kt:86 */Creates a new `OperationWithRequiredMembers`
          13  +
    /* OperationGenerator.kt:87 */
    8     14   
    pub fn new() -> Self {
          15  +
        /* OperationGenerator.kt:88 */
    9     16   
        Self
          17  +
        /* OperationGenerator.kt:87 */
   10     18   
    }
          19  +
    /* OperationGenerator.kt:138 */
   11     20   
    pub(crate) async fn orchestrate(
   12     21   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     22   
        input: crate::operation::operation_with_required_members::OperationWithRequiredMembersInput,
   14     23   
    ) -> ::std::result::Result<
   15     24   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput,
   16     25   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     26   
            crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
   18     27   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     28   
        >,
   20     29   
    > {
@@ -63,72 +273,290 @@
   83     92   
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
   84     93   
            }
   85     94   
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
   86     95   
                config_override,
   87     96   
                client_config.config.clone(),
   88     97   
                &client_config.runtime_components,
   89     98   
            ));
   90     99   
        }
   91    100   
        runtime_plugins
   92    101   
    }
         102  +
    /* OperationGenerator.kt:85 */
   93    103   
}
         104  +
/* OperationRuntimePluginGenerator.kt:55 */
   94    105   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for OperationWithRequiredMembers {
   95    106   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
   96    107   
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("OperationWithRequiredMembers");
   97    108   
   98    109   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
   99    110   
            OperationWithRequiredMembersRequestSerializer,
  100    111   
        ));
  101    112   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
  102    113   
            OperationWithRequiredMembersResponseDeserializer,
  103    114   
        ));
  104    115   
  105    116   
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
  106    117   
            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
  107    118   
        ));
  108    119   
  109    120   
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
  110    121   
            "OperationWithRequiredMembers",
  111    122   
            "JSON RPC 10",
  112    123   
        ));
  113    124   
  114    125   
        ::std::option::Option::Some(cfg.freeze())
  115    126   
    }
  116    127   
  117    128   
    fn runtime_components(
  118    129   
        &self,
  119    130   
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
  120    131   
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
  121    132   
        #[allow(unused_mut)]
  122    133   
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("OperationWithRequiredMembers")
  123    134   
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  124    135   
            .with_interceptor(OperationWithRequiredMembersEndpointParamsInterceptor)
  125    136   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  126    137   
                crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
  127    138   
            >::new())
  128    139   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  129    140   
                crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
  130    141   
            >::new());
  131    142   
  132    143   
        ::std::borrow::Cow::Owned(rcb)
  133    144   
    }
  134    145   
}
  135    146   
         147  +
/* ResponseDeserializerGenerator.kt:64 */
  136    148   
#[derive(Debug)]
  137    149   
struct OperationWithRequiredMembersResponseDeserializer;
  138    150   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for OperationWithRequiredMembersResponseDeserializer {
  139    151   
    fn deserialize_nonstreaming(
  140    152   
        &self,
  141    153   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  142    154   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  143    155   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  144    156   
        let headers = response.headers();
  145    157   
        let body = response.body().bytes().expect("body loaded");
  146    158   
        #[allow(unused_mut)]
  147    159   
        let mut force_error = false;
  148    160   
  149    161   
        let parse_result = if !success && status != 200 || force_error {
  150    162   
            crate::protocol_serde::shape_operation_with_required_members::de_operation_with_required_members_http_error(status, headers, body)
  151    163   
        } else {
  152    164   
            crate::protocol_serde::shape_operation_with_required_members::de_operation_with_required_members_http_response(status, headers, body)
  153    165   
        };
  154    166   
        crate::protocol_serde::type_erase_result(parse_result)
  155    167   
    }
  156    168   
}
         169  +
/* RequestSerializerGenerator.kt:67 */
  157    170   
#[derive(Debug)]
  158    171   
struct OperationWithRequiredMembersRequestSerializer;
  159    172   
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for OperationWithRequiredMembersRequestSerializer {
  160    173   
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
  161    174   
    fn serialize_input(
  162    175   
        &self,
  163    176   
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
  164    177   
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  165    178   
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
  166    179   
        let input = input
  167    180   
            .downcast::<crate::operation::operation_with_required_members::OperationWithRequiredMembersInput>()
  168    181   
            .expect("correct type");
  169    182   
        let _header_serialization_settings = _cfg
  170    183   
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
  171    184   
            .cloned()
  172    185   
            .unwrap_or_default();
  173    186   
        let mut request_builder = {
  174    187   
            fn uri_base(
  175    188   
                _input: &crate::operation::operation_with_required_members::OperationWithRequiredMembersInput,
  176    189   
                output: &mut ::std::string::String,
  177    190   
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  178    191   
                use ::std::fmt::Write as _;
  179    192   
                ::std::write!(output, "/").expect("formatting should succeed");
  180    193   
                ::std::result::Result::Ok(())
  181    194   
            }
  182    195   
            #[allow(clippy::unnecessary_wraps)]
  183    196   
            fn update_http_builder(
  184    197   
                input: &crate::operation::operation_with_required_members::OperationWithRequiredMembersInput,
  185    198   
                builder: ::http::request::Builder,
  186    199   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  187    200   
                let mut uri = ::std::string::String::new();
  188    201   
                uri_base(input, &mut uri)?;
  189    202   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  190    203   
            }
  191    204   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  192    205   
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
  193    206   
            builder = _header_serialization_settings.set_default_header(
  194    207   
                builder,
  195    208   
                ::http::header::HeaderName::from_static("x-amz-target"),
  196    209   
                "JsonRpc10.OperationWithRequiredMembers",
  197    210   
            );
  198    211   
            builder
  199    212   
        };
  200    213   
        let body = ::aws_smithy_types::body::SdkBody::from(
  201    214   
            crate::protocol_serde::shape_operation_with_required_members::ser_operation_with_required_members_input(&input)?,
  202    215   
        );
  203    216   
  204    217   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  205    218   
    }
  206    219   
}
         220  +
/* EndpointParamsInterceptorGenerator.kt:86 */
  207    221   
#[derive(Debug)]
  208    222   
struct OperationWithRequiredMembersEndpointParamsInterceptor;
  209    223   
  210    224   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for OperationWithRequiredMembersEndpointParamsInterceptor {
  211    225   
    fn name(&self) -> &'static str {
  212    226   
        "OperationWithRequiredMembersEndpointParamsInterceptor"
  213    227   
    }
  214    228   
  215    229   
    fn read_before_execution(
  216    230   
        &self,
  217    231   
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  218    232   
            '_,
  219    233   
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  220    234   
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  221    235   
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  222    236   
        >,
  223    237   
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  224    238   
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  225    239   
        let _input = context
  226    240   
            .input()
  227    241   
            .downcast_ref::<OperationWithRequiredMembersInput>()
  228    242   
            .ok_or("failed to downcast to OperationWithRequiredMembersInput")?;
  229    243   
  230    244   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  231    245   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  232    246   
        })?;
  233    247   
        cfg.interceptor_state()
  234    248   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  235    249   
        ::std::result::Result::Ok(())
  236    250   
    }
  237    251   
}
  238    252   
  239    253   
// The get_* functions below are generated from JMESPath expressions in the
  240    254   
// operationContextParams trait. They target the operation's input shape.
  241    255   
         256  +
/* RustType.kt:516 */
  242    257   
#[allow(unreachable_code, unused_variables)]
         258  +
/* RustType.kt:516 */
  243    259   
#[cfg(test)]
         260  +
/* ProtocolTestGenerator.kt:98 */
  244    261   
mod operation_with_required_members_test {
  245    262   
    use ::aws_smithy_protocol_test::FloatEquals;
  246    263   
  247    264   
    /// Client error corrects when server fails to serialize required values.
  248    265   
    /// Test ID: AwsJson10ClientErrorCorrectsWhenServerFailsToSerializeRequiredValues
  249    266   
    #[::tokio::test]
  250    267   
    #[::tracing_test::traced_test]
  251    268   
    async fn aws_json10_client_error_corrects_when_server_fails_to_serialize_required_values_response() {
  252    269   
        let expected_output = crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput::builder()
  253    270   
            .set_required_string(::std::option::Option::Some("".to_owned()))
@@ -327,344 +456,532 @@
  347    364   
            parsed.required_float
  348    365   
        );
  349    366   
        assert!(
  350    367   
            parsed.required_double.float_equals(&expected_output.required_double),
  351    368   
            "Unexpected value for `required_double` {:?} vs. {:?}",
  352    369   
            expected_output.required_double,
  353    370   
            parsed.required_double
  354    371   
        );
  355    372   
        ::pretty_assertions::assert_eq!(parsed.required_map, expected_output.required_map, "Unexpected value for `required_map`");
  356    373   
    }
         374  +
         375  +
    /* ProtocolTestGenerator.kt:98 */
  357    376   
}
  358    377   
         378  +
/* OperationErrorGenerator.kt:79 */
  359    379   
/// Error type for the `OperationWithRequiredMembersError` operation.
         380  +
/* RustType.kt:516 */
  360    381   
#[non_exhaustive]
         382  +
/* RustType.kt:516 */
  361    383   
#[derive(::std::fmt::Debug)]
  362         -
pub enum OperationWithRequiredMembersError {
         384  +
pub /* OperationErrorGenerator.kt:81 */ enum OperationWithRequiredMembersError {
         385  +
    /* OperationErrorGenerator.kt:88 */
  363    386   
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  364    387   
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  365    388   
    variable wildcard pattern and check `.code()`:
  366    389   
     \
  367    390   
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  368    391   
     \
  369    392   
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-OperationWithRequiredMembersError) for what information is available for the error.")]
  370    393   
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         394  +
    /* OperationErrorGenerator.kt:81 */
  371    395   
}
         396  +
/* OperationErrorGenerator.kt:218 */
  372    397   
impl OperationWithRequiredMembersError {
         398  +
    /* OperationErrorGenerator.kt:219 */
  373    399   
    /// Creates the `OperationWithRequiredMembersError::Unhandled` variant from any error type.
  374    400   
    pub fn unhandled(
  375    401   
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  376    402   
    ) -> Self {
  377    403   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  378    404   
            source: err.into(),
  379    405   
            meta: ::std::default::Default::default(),
  380    406   
        })
  381    407   
    }
  382    408   
  383    409   
    /// Creates the `OperationWithRequiredMembersError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  384    410   
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  385    411   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  386    412   
            source: err.clone().into(),
  387    413   
            meta: err,
  388    414   
        })
  389    415   
    }
  390         -
    ///
         416  +
    /// /* OperationErrorGenerator.kt:236 */
  391    417   
    /// Returns error metadata, which includes the error code, message,
  392    418   
    /// request ID, and potentially additional information.
  393    419   
    ///
         420  +
    /* OperationErrorGenerator.kt:242 */
  394    421   
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         422  +
        /* OperationErrorGenerator.kt:243 */
  395    423   
        match self {
  396         -
            Self::Unhandled(e) => &e.meta,
         424  +
            /* OperationErrorGenerator.kt:251 */ Self::Unhandled(e) => &e.meta,
         425  +
            /* OperationErrorGenerator.kt:243 */
  397    426   
        }
         427  +
        /* OperationErrorGenerator.kt:242 */
  398    428   
    }
         429  +
    /* OperationErrorGenerator.kt:218 */
  399    430   
}
         431  +
/* OperationErrorGenerator.kt:269 */
  400    432   
impl ::std::error::Error for OperationWithRequiredMembersError {
         433  +
    /* OperationErrorGenerator.kt:270 */
  401    434   
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         435  +
        /* OperationErrorGenerator.kt:318 */
  402    436   
        match self {
  403         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         437  +
            /* OperationErrorGenerator.kt:326 */
         438  +
            Self::Unhandled(_inner) => {
         439  +
                /* OperationErrorGenerator.kt:279 */
         440  +
                ::std::option::Option::Some(&*_inner.source)
         441  +
                /* OperationErrorGenerator.kt:326 */
         442  +
            } /* OperationErrorGenerator.kt:318 */
  404    443   
        }
         444  +
        /* OperationErrorGenerator.kt:270 */
  405    445   
    }
         446  +
    /* OperationErrorGenerator.kt:269 */
  406    447   
}
         448  +
/* OperationErrorGenerator.kt:133 */
  407    449   
impl ::std::fmt::Display for OperationWithRequiredMembersError {
         450  +
    /* OperationErrorGenerator.kt:134 */
  408    451   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         452  +
        /* OperationErrorGenerator.kt:318 */
  409    453   
        match self {
         454  +
            /* OperationErrorGenerator.kt:326 */
  410    455   
            Self::Unhandled(_inner) => {
         456  +
                /* OperationErrorGenerator.kt:139 */
  411    457   
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  412    458   
                    write!(f, "unhandled error ({code})")
  413    459   
                } else {
  414    460   
                    f.write_str("unhandled error")
  415    461   
                }
  416         -
            }
         462  +
                /* OperationErrorGenerator.kt:326 */
         463  +
            } /* OperationErrorGenerator.kt:318 */
  417    464   
        }
         465  +
        /* OperationErrorGenerator.kt:134 */
  418    466   
    }
         467  +
    /* OperationErrorGenerator.kt:133 */
  419    468   
}
         469  +
/* OperationErrorGenerator.kt:182 */
  420    470   
impl ::aws_smithy_types::retry::ProvideErrorKind for OperationWithRequiredMembersError {
         471  +
    /* OperationErrorGenerator.kt:186 */
  421    472   
    fn code(&self) -> ::std::option::Option<&str> {
         473  +
        /* OperationErrorGenerator.kt:187 */
  422    474   
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         475  +
        /* OperationErrorGenerator.kt:186 */
  423    476   
    }
         477  +
    /* OperationErrorGenerator.kt:190 */
  424    478   
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         479  +
        /* OperationErrorGenerator.kt:197 */
  425    480   
        ::std::option::Option::None
         481  +
        /* OperationErrorGenerator.kt:190 */
  426    482   
    }
         483  +
    /* OperationErrorGenerator.kt:182 */
  427    484   
}
         485  +
/* OperationErrorGenerator.kt:163 */
  428    486   
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for OperationWithRequiredMembersError {
         487  +
    /* OperationErrorGenerator.kt:164 */
  429    488   
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         489  +
        /* OperationErrorGenerator.kt:318 */
  430    490   
        match self {
  431         -
            Self::Unhandled(_inner) => &_inner.meta,
         491  +
            /* OperationErrorGenerator.kt:326 */
         492  +
            Self::Unhandled(_inner) => {
         493  +
                /* OperationErrorGenerator.kt:168 */
         494  +
                &_inner.meta
         495  +
                /* OperationErrorGenerator.kt:326 */
         496  +
            } /* OperationErrorGenerator.kt:318 */
  432    497   
        }
         498  +
        /* OperationErrorGenerator.kt:164 */
  433    499   
    }
         500  +
    /* OperationErrorGenerator.kt:163 */
  434    501   
}
         502  +
/* OperationErrorGenerator.kt:109 */
  435    503   
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for OperationWithRequiredMembersError {
         504  +
    /* OperationErrorGenerator.kt:110 */
  436    505   
    fn create_unhandled_error(
  437    506   
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  438    507   
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  439    508   
    ) -> Self {
         509  +
        /* OperationErrorGenerator.kt:121 */
  440    510   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  441    511   
            source,
  442    512   
            meta: meta.unwrap_or_default(),
  443    513   
        })
         514  +
        /* OperationErrorGenerator.kt:110 */
  444    515   
    }
         516  +
    /* OperationErrorGenerator.kt:109 */
  445    517   
}
  446    518   
         519  +
/* CodegenDelegator.kt:255 */
  447    520   
pub use crate::operation::operation_with_required_members::_operation_with_required_members_output::OperationWithRequiredMembersOutput;
  448    521   
         522  +
/* CodegenDelegator.kt:255 */
  449    523   
pub use crate::operation::operation_with_required_members::_operation_with_required_members_input::OperationWithRequiredMembersInput;
  450    524   
         525  +
/* RustModule.kt:172 */
  451    526   
mod _operation_with_required_members_input;
  452    527   
         528  +
/* RustModule.kt:172 */
  453    529   
mod _operation_with_required_members_output;
  454    530   
  455         -
/// Builders
         531  +
/// /* CodegenDelegator.kt:51 */Builders
  456    532   
pub mod builders;

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_required_members/_operation_with_required_members_input.rs

@@ -1,1 +27,47 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    4      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct OperationWithRequiredMembersInput {}
           8  +
pub /* StructureGenerator.kt:201 */ struct OperationWithRequiredMembersInput {/* StructureGenerator.kt:201 */}
           9  +
/* ClientCodegenVisitor.kt:237 */
    6     10   
impl OperationWithRequiredMembersInput {
    7         -
    /// Creates a new builder-style object to manufacture [`OperationWithRequiredMembersInput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersInput).
          11  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`OperationWithRequiredMembersInput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersInput).
          12  +
    /* BuilderGenerator.kt:175 */
    8     13   
    pub fn builder() -> crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersInputBuilder {
          14  +
        /* BuilderGenerator.kt:176 */
    9     15   
        crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersInputBuilder::default()
          16  +
        /* BuilderGenerator.kt:175 */
   10     17   
    }
          18  +
    /* ClientCodegenVisitor.kt:237 */
   11     19   
}
   12     20   
   13         -
/// A builder for [`OperationWithRequiredMembersInput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersInput).
          21  +
/// /* BuilderGenerator.kt:342 */A builder for [`OperationWithRequiredMembersInput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersInput).
          22  +
/* RustType.kt:516 */
   14     23   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          24  +
/* RustType.kt:516 */
   15     25   
#[non_exhaustive]
   16         -
pub struct OperationWithRequiredMembersInputBuilder {}
          26  +
/* BuilderGenerator.kt:345 */
          27  +
pub struct OperationWithRequiredMembersInputBuilder {/* BuilderGenerator.kt:345 */}
          28  +
/* BuilderGenerator.kt:355 */
   17     29   
impl OperationWithRequiredMembersInputBuilder {
   18         -
    /// Consumes the builder and constructs a [`OperationWithRequiredMembersInput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersInput).
          30  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`OperationWithRequiredMembersInput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersInput).
          31  +
    /* BuilderGenerator.kt:253 */
   19     32   
    pub fn build(
   20     33   
        self,
   21     34   
    ) -> ::std::result::Result<
   22     35   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersInput,
   23     36   
        ::aws_smithy_types::error::operation::BuildError,
   24     37   
    > {
   25         -
        ::std::result::Result::Ok(crate::operation::operation_with_required_members::OperationWithRequiredMembersInput {})
          38  +
        /* BuilderGenerator.kt:254 */
          39  +
        ::std::result::Result::Ok(
          40  +
            /* BuilderGenerator.kt:477 */
          41  +
            crate::operation::operation_with_required_members::OperationWithRequiredMembersInput {
          42  +
            /* BuilderGenerator.kt:477 */}, /* BuilderGenerator.kt:254 */
          43  +
        )
          44  +
        /* BuilderGenerator.kt:253 */
   26     45   
    }
          46  +
    /* BuilderGenerator.kt:355 */
   27     47   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_required_members/_operation_with_required_members_output.rs

@@ -1,1 +394,612 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    4      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct OperationWithRequiredMembersOutput {
    6         -
    #[allow(missing_docs)] // documentation missing in model
           8  +
pub /* StructureGenerator.kt:201 */ struct OperationWithRequiredMembersOutput {
           9  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
    7     10   
    pub required_string: ::std::string::String,
    8         -
    #[allow(missing_docs)] // documentation missing in model
          11  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
    9     12   
    pub required_boolean: bool,
          13  +
    /* StructureGenerator.kt:231 */
   10     14   
    #[allow(missing_docs)] // documentation missing in model
   11     15   
    pub required_list: ::std::vec::Vec<::std::string::String>,
          16  +
    /* StructureGenerator.kt:231 */
   12     17   
    #[allow(missing_docs)] // documentation missing in model
   13     18   
    pub required_timestamp: ::aws_smithy_types::DateTime,
   14         -
    #[allow(missing_docs)] // documentation missing in model
          19  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
   15     20   
    pub required_blob: ::aws_smithy_types::Blob,
   16         -
    #[allow(missing_docs)] // documentation missing in model
          21  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
   17     22   
    pub required_byte: i8,
   18         -
    #[allow(missing_docs)] // documentation missing in model
          23  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
   19     24   
    pub required_short: i16,
   20         -
    #[allow(missing_docs)] // documentation missing in model
          25  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
   21     26   
    pub required_integer: i32,
   22         -
    #[allow(missing_docs)] // documentation missing in model
          27  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
   23     28   
    pub required_long: i64,
   24         -
    #[allow(missing_docs)] // documentation missing in model
          29  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
   25     30   
    pub required_float: f32,
   26         -
    #[allow(missing_docs)] // documentation missing in model
          31  +
    /* StructureGenerator.kt:231 */ #[allow(missing_docs)] // documentation missing in model
   27     32   
    pub required_double: f64,
          33  +
    /* StructureGenerator.kt:231 */
   28     34   
    #[allow(missing_docs)] // documentation missing in model
   29     35   
    pub required_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
          36  +
    /* StructureGenerator.kt:201 */
   30     37   
}
          38  +
/* StructureGenerator.kt:135 */
   31     39   
impl OperationWithRequiredMembersOutput {
          40  +
    /* StructureGenerator.kt:231 */
   32     41   
    #[allow(missing_docs)] // documentation missing in model
          42  +
                           /* StructureGenerator.kt:166 */
   33     43   
    pub fn required_string(&self) -> &str {
          44  +
        /* StructureGenerator.kt:171 */
   34     45   
        use std::ops::Deref;
   35     46   
        self.required_string.deref()
          47  +
        /* StructureGenerator.kt:166 */
   36     48   
    }
          49  +
    /* StructureGenerator.kt:231 */
   37     50   
    #[allow(missing_docs)] // documentation missing in model
          51  +
                           /* StructureGenerator.kt:166 */
   38     52   
    pub fn required_boolean(&self) -> bool {
          53  +
        /* StructureGenerator.kt:168 */
   39     54   
        self.required_boolean
          55  +
        /* StructureGenerator.kt:166 */
   40     56   
    }
          57  +
    /* StructureGenerator.kt:231 */
   41     58   
    #[allow(missing_docs)] // documentation missing in model
          59  +
                           /* StructureGenerator.kt:166 */
   42     60   
    pub fn required_list(&self) -> &[::std::string::String] {
          61  +
        /* StructureGenerator.kt:171 */
   43     62   
        use std::ops::Deref;
   44     63   
        self.required_list.deref()
          64  +
        /* StructureGenerator.kt:166 */
   45     65   
    }
          66  +
    /* StructureGenerator.kt:231 */
   46     67   
    #[allow(missing_docs)] // documentation missing in model
          68  +
                           /* StructureGenerator.kt:166 */
   47     69   
    pub fn required_timestamp(&self) -> &::aws_smithy_types::DateTime {
          70  +
        /* StructureGenerator.kt:172 */
   48     71   
        &self.required_timestamp
          72  +
        /* StructureGenerator.kt:166 */
   49     73   
    }
          74  +
    /* StructureGenerator.kt:231 */
   50     75   
    #[allow(missing_docs)] // documentation missing in model
          76  +
                           /* StructureGenerator.kt:166 */
   51     77   
    pub fn required_blob(&self) -> &::aws_smithy_types::Blob {
          78  +
        /* StructureGenerator.kt:172 */
   52     79   
        &self.required_blob
          80  +
        /* StructureGenerator.kt:166 */
   53     81   
    }
          82  +
    /* StructureGenerator.kt:231 */
   54     83   
    #[allow(missing_docs)] // documentation missing in model
          84  +
                           /* StructureGenerator.kt:166 */
   55     85   
    pub fn required_byte(&self) -> i8 {
          86  +
        /* StructureGenerator.kt:168 */
   56     87   
        self.required_byte
          88  +
        /* StructureGenerator.kt:166 */
   57     89   
    }
          90  +
    /* StructureGenerator.kt:231 */
   58     91   
    #[allow(missing_docs)] // documentation missing in model
          92  +
                           /* StructureGenerator.kt:166 */
   59     93   
    pub fn required_short(&self) -> i16 {
          94  +
        /* StructureGenerator.kt:168 */
   60     95   
        self.required_short
          96  +
        /* StructureGenerator.kt:166 */
   61     97   
    }
          98  +
    /* StructureGenerator.kt:231 */
   62     99   
    #[allow(missing_docs)] // documentation missing in model
         100  +
                           /* StructureGenerator.kt:166 */
   63    101   
    pub fn required_integer(&self) -> i32 {
         102  +
        /* StructureGenerator.kt:168 */
   64    103   
        self.required_integer
         104  +
        /* StructureGenerator.kt:166 */
   65    105   
    }
         106  +
    /* StructureGenerator.kt:231 */
   66    107   
    #[allow(missing_docs)] // documentation missing in model
         108  +
                           /* StructureGenerator.kt:166 */
   67    109   
    pub fn required_long(&self) -> i64 {
         110  +
        /* StructureGenerator.kt:168 */
   68    111   
        self.required_long
         112  +
        /* StructureGenerator.kt:166 */
   69    113   
    }
         114  +
    /* StructureGenerator.kt:231 */
   70    115   
    #[allow(missing_docs)] // documentation missing in model
         116  +
                           /* StructureGenerator.kt:166 */
   71    117   
    pub fn required_float(&self) -> f32 {
         118  +
        /* StructureGenerator.kt:168 */
   72    119   
        self.required_float
         120  +
        /* StructureGenerator.kt:166 */
   73    121   
    }
         122  +
    /* StructureGenerator.kt:231 */
   74    123   
    #[allow(missing_docs)] // documentation missing in model
         124  +
                           /* StructureGenerator.kt:166 */
   75    125   
    pub fn required_double(&self) -> f64 {
         126  +
        /* StructureGenerator.kt:168 */
   76    127   
        self.required_double
         128  +
        /* StructureGenerator.kt:166 */
   77    129   
    }
         130  +
    /* StructureGenerator.kt:231 */
   78    131   
    #[allow(missing_docs)] // documentation missing in model
         132  +
                           /* StructureGenerator.kt:166 */
   79    133   
    pub fn required_map(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
         134  +
        /* StructureGenerator.kt:172 */
   80    135   
        &self.required_map
         136  +
        /* StructureGenerator.kt:166 */
   81    137   
    }
         138  +
    /* StructureGenerator.kt:135 */
   82    139   
}
         140  +
/* ClientCodegenVisitor.kt:237 */
   83    141   
impl OperationWithRequiredMembersOutput {
   84         -
    /// Creates a new builder-style object to manufacture [`OperationWithRequiredMembersOutput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput).
         142  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`OperationWithRequiredMembersOutput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput).
         143  +
    /* BuilderGenerator.kt:175 */
   85    144   
    pub fn builder() -> crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder {
         145  +
        /* BuilderGenerator.kt:176 */
   86    146   
        crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::default()
         147  +
        /* BuilderGenerator.kt:175 */
   87    148   
    }
         149  +
    /* ClientCodegenVisitor.kt:237 */
   88    150   
}
   89    151   
   90         -
/// A builder for [`OperationWithRequiredMembersOutput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput).
         152  +
/// /* BuilderGenerator.kt:342 */A builder for [`OperationWithRequiredMembersOutput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput).
         153  +
/* RustType.kt:516 */
   91    154   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         155  +
/* RustType.kt:516 */
   92    156   
#[non_exhaustive]
         157  +
/* BuilderGenerator.kt:345 */
   93    158   
pub struct OperationWithRequiredMembersOutputBuilder {
   94         -
    pub(crate) required_string: ::std::option::Option<::std::string::String>,
   95         -
    pub(crate) required_boolean: ::std::option::Option<bool>,
   96         -
    pub(crate) required_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
   97         -
    pub(crate) required_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
   98         -
    pub(crate) required_blob: ::std::option::Option<::aws_smithy_types::Blob>,
   99         -
    pub(crate) required_byte: ::std::option::Option<i8>,
  100         -
    pub(crate) required_short: ::std::option::Option<i16>,
  101         -
    pub(crate) required_integer: ::std::option::Option<i32>,
  102         -
    pub(crate) required_long: ::std::option::Option<i64>,
  103         -
    pub(crate) required_float: ::std::option::Option<f32>,
  104         -
    pub(crate) required_double: ::std::option::Option<f64>,
         159  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_string: ::std::option::Option<::std::string::String>,
         160  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_boolean: ::std::option::Option<bool>,
         161  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         162  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         163  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_blob: ::std::option::Option<::aws_smithy_types::Blob>,
         164  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_byte: ::std::option::Option<i8>,
         165  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_short: ::std::option::Option<i16>,
         166  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_integer: ::std::option::Option<i32>,
         167  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_long: ::std::option::Option<i64>,
         168  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_float: ::std::option::Option<f32>,
         169  +
    /* BuilderGenerator.kt:275 */ pub(crate) required_double: ::std::option::Option<f64>,
         170  +
    /* BuilderGenerator.kt:275 */
  105    171   
    pub(crate) required_map: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
         172  +
    /* BuilderGenerator.kt:345 */
  106    173   
}
         174  +
/* BuilderGenerator.kt:355 */
  107    175   
impl OperationWithRequiredMembersOutputBuilder {
         176  +
    /* BuilderGenerator.kt:286 */
  108    177   
    #[allow(missing_docs)] // documentation missing in model
  109         -
    /// This field is required.
         178  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         179  +
    /* BuilderGenerator.kt:291 */
  110    180   
    pub fn required_string(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         181  +
        /* BuilderGenerator.kt:292 */
  111    182   
        self.required_string = ::std::option::Option::Some(input.into());
         183  +
        /* BuilderGenerator.kt:293 */
  112    184   
        self
         185  +
        /* BuilderGenerator.kt:291 */
  113    186   
    }
         187  +
    /* BuilderGenerator.kt:312 */
  114    188   
    #[allow(missing_docs)] // documentation missing in model
         189  +
                           /* BuilderGenerator.kt:314 */
  115    190   
    pub fn set_required_string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         191  +
        /* BuilderGenerator.kt:315 */
  116    192   
        self.required_string = input;
  117    193   
        self
         194  +
        /* BuilderGenerator.kt:314 */
  118    195   
    }
         196  +
    /* BuilderGenerator.kt:334 */
  119    197   
    #[allow(missing_docs)] // documentation missing in model
         198  +
                           /* BuilderGenerator.kt:336 */
  120    199   
    pub fn get_required_string(&self) -> &::std::option::Option<::std::string::String> {
         200  +
        /* BuilderGenerator.kt:337 */
  121    201   
        &self.required_string
         202  +
        /* BuilderGenerator.kt:336 */
  122    203   
    }
         204  +
    /* BuilderGenerator.kt:286 */
  123    205   
    #[allow(missing_docs)] // documentation missing in model
  124         -
    /// This field is required.
         206  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         207  +
    /* BuilderGenerator.kt:291 */
  125    208   
    pub fn required_boolean(mut self, input: bool) -> Self {
         209  +
        /* BuilderGenerator.kt:292 */
  126    210   
        self.required_boolean = ::std::option::Option::Some(input);
         211  +
        /* BuilderGenerator.kt:293 */
  127    212   
        self
         213  +
        /* BuilderGenerator.kt:291 */
  128    214   
    }
         215  +
    /* BuilderGenerator.kt:312 */
  129    216   
    #[allow(missing_docs)] // documentation missing in model
         217  +
                           /* BuilderGenerator.kt:314 */
  130    218   
    pub fn set_required_boolean(mut self, input: ::std::option::Option<bool>) -> Self {
         219  +
        /* BuilderGenerator.kt:315 */
  131    220   
        self.required_boolean = input;
  132    221   
        self
         222  +
        /* BuilderGenerator.kt:314 */
  133    223   
    }
         224  +
    /* BuilderGenerator.kt:334 */
  134    225   
    #[allow(missing_docs)] // documentation missing in model
         226  +
                           /* BuilderGenerator.kt:336 */
  135    227   
    pub fn get_required_boolean(&self) -> &::std::option::Option<bool> {
         228  +
        /* BuilderGenerator.kt:337 */
  136    229   
        &self.required_boolean
         230  +
        /* BuilderGenerator.kt:336 */
  137    231   
    }
  138         -
    /// Appends an item to `required_list`.
         232  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `required_list`.
         233  +
    /* BuilderGenerator.kt:411 */
  139    234   
    ///
  140         -
    /// To override the contents of this collection use [`set_required_list`](Self::set_required_list).
         235  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_required_list`](Self::set_required_list).
         236  +
    /* BuilderGenerator.kt:413 */
  141    237   
    ///
         238  +
    /* BuilderGenerator.kt:418 */
  142    239   
    pub fn required_list(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         240  +
        /* BuilderGenerator.kt:419 */
  143    241   
        let mut v = self.required_list.unwrap_or_default();
  144    242   
        v.push(input.into());
  145    243   
        self.required_list = ::std::option::Option::Some(v);
  146    244   
        self
         245  +
        /* BuilderGenerator.kt:418 */
  147    246   
    }
         247  +
    /* BuilderGenerator.kt:312 */
  148    248   
    #[allow(missing_docs)] // documentation missing in model
         249  +
                           /* BuilderGenerator.kt:314 */
  149    250   
    pub fn set_required_list(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
         251  +
        /* BuilderGenerator.kt:315 */
  150    252   
        self.required_list = input;
  151    253   
        self
         254  +
        /* BuilderGenerator.kt:314 */
  152    255   
    }
         256  +
    /* BuilderGenerator.kt:334 */
  153    257   
    #[allow(missing_docs)] // documentation missing in model
         258  +
                           /* BuilderGenerator.kt:336 */
  154    259   
    pub fn get_required_list(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
         260  +
        /* BuilderGenerator.kt:337 */
  155    261   
        &self.required_list
         262  +
        /* BuilderGenerator.kt:336 */
  156    263   
    }
         264  +
    /* BuilderGenerator.kt:286 */
  157    265   
    #[allow(missing_docs)] // documentation missing in model
  158         -
    /// This field is required.
         266  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         267  +
    /* BuilderGenerator.kt:291 */
  159    268   
    pub fn required_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         269  +
        /* BuilderGenerator.kt:292 */
  160    270   
        self.required_timestamp = ::std::option::Option::Some(input);
         271  +
        /* BuilderGenerator.kt:293 */
  161    272   
        self
         273  +
        /* BuilderGenerator.kt:291 */
  162    274   
    }
         275  +
    /* BuilderGenerator.kt:312 */
  163    276   
    #[allow(missing_docs)] // documentation missing in model
         277  +
                           /* BuilderGenerator.kt:314 */
  164    278   
    pub fn set_required_timestamp(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         279  +
        /* BuilderGenerator.kt:315 */
  165    280   
        self.required_timestamp = input;
  166    281   
        self
         282  +
        /* BuilderGenerator.kt:314 */
  167    283   
    }
         284  +
    /* BuilderGenerator.kt:334 */
  168    285   
    #[allow(missing_docs)] // documentation missing in model
         286  +
                           /* BuilderGenerator.kt:336 */
  169    287   
    pub fn get_required_timestamp(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         288  +
        /* BuilderGenerator.kt:337 */
  170    289   
        &self.required_timestamp
         290  +
        /* BuilderGenerator.kt:336 */
  171    291   
    }
         292  +
    /* BuilderGenerator.kt:286 */
  172    293   
    #[allow(missing_docs)] // documentation missing in model
  173         -
    /// This field is required.
         294  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         295  +
    /* BuilderGenerator.kt:291 */
  174    296   
    pub fn required_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
         297  +
        /* BuilderGenerator.kt:292 */
  175    298   
        self.required_blob = ::std::option::Option::Some(input);
         299  +
        /* BuilderGenerator.kt:293 */
  176    300   
        self
         301  +
        /* BuilderGenerator.kt:291 */
  177    302   
    }
         303  +
    /* BuilderGenerator.kt:312 */
  178    304   
    #[allow(missing_docs)] // documentation missing in model
         305  +
                           /* BuilderGenerator.kt:314 */
  179    306   
    pub fn set_required_blob(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
         307  +
        /* BuilderGenerator.kt:315 */
  180    308   
        self.required_blob = input;
  181    309   
        self
         310  +
        /* BuilderGenerator.kt:314 */
  182    311   
    }
         312  +
    /* BuilderGenerator.kt:334 */
  183    313   
    #[allow(missing_docs)] // documentation missing in model
         314  +
                           /* BuilderGenerator.kt:336 */
  184    315   
    pub fn get_required_blob(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
         316  +
        /* BuilderGenerator.kt:337 */
  185    317   
        &self.required_blob
         318  +
        /* BuilderGenerator.kt:336 */
  186    319   
    }
         320  +
    /* BuilderGenerator.kt:286 */
  187    321   
    #[allow(missing_docs)] // documentation missing in model
  188         -
    /// This field is required.
         322  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         323  +
    /* BuilderGenerator.kt:291 */
  189    324   
    pub fn required_byte(mut self, input: i8) -> Self {
         325  +
        /* BuilderGenerator.kt:292 */
  190    326   
        self.required_byte = ::std::option::Option::Some(input);
         327  +
        /* BuilderGenerator.kt:293 */
  191    328   
        self
         329  +
        /* BuilderGenerator.kt:291 */
  192    330   
    }
         331  +
    /* BuilderGenerator.kt:312 */
  193    332   
    #[allow(missing_docs)] // documentation missing in model
         333  +
                           /* BuilderGenerator.kt:314 */
  194    334   
    pub fn set_required_byte(mut self, input: ::std::option::Option<i8>) -> Self {
         335  +
        /* BuilderGenerator.kt:315 */
  195    336   
        self.required_byte = input;
  196    337   
        self
         338  +
        /* BuilderGenerator.kt:314 */
  197    339   
    }
         340  +
    /* BuilderGenerator.kt:334 */
  198    341   
    #[allow(missing_docs)] // documentation missing in model
         342  +
                           /* BuilderGenerator.kt:336 */
  199    343   
    pub fn get_required_byte(&self) -> &::std::option::Option<i8> {
         344  +
        /* BuilderGenerator.kt:337 */
  200    345   
        &self.required_byte
         346  +
        /* BuilderGenerator.kt:336 */
  201    347   
    }
         348  +
    /* BuilderGenerator.kt:286 */
  202    349   
    #[allow(missing_docs)] // documentation missing in model
  203         -
    /// This field is required.
         350  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         351  +
    /* BuilderGenerator.kt:291 */
  204    352   
    pub fn required_short(mut self, input: i16) -> Self {
         353  +
        /* BuilderGenerator.kt:292 */
  205    354   
        self.required_short = ::std::option::Option::Some(input);
         355  +
        /* BuilderGenerator.kt:293 */
  206    356   
        self
         357  +
        /* BuilderGenerator.kt:291 */
  207    358   
    }
         359  +
    /* BuilderGenerator.kt:312 */
  208    360   
    #[allow(missing_docs)] // documentation missing in model
         361  +
                           /* BuilderGenerator.kt:314 */
  209    362   
    pub fn set_required_short(mut self, input: ::std::option::Option<i16>) -> Self {
         363  +
        /* BuilderGenerator.kt:315 */
  210    364   
        self.required_short = input;
  211    365   
        self
         366  +
        /* BuilderGenerator.kt:314 */
  212    367   
    }
         368  +
    /* BuilderGenerator.kt:334 */
  213    369   
    #[allow(missing_docs)] // documentation missing in model
         370  +
                           /* BuilderGenerator.kt:336 */
  214    371   
    pub fn get_required_short(&self) -> &::std::option::Option<i16> {
         372  +
        /* BuilderGenerator.kt:337 */
  215    373   
        &self.required_short
         374  +
        /* BuilderGenerator.kt:336 */
  216    375   
    }
         376  +
    /* BuilderGenerator.kt:286 */
  217    377   
    #[allow(missing_docs)] // documentation missing in model
  218         -
    /// This field is required.
         378  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         379  +
    /* BuilderGenerator.kt:291 */
  219    380   
    pub fn required_integer(mut self, input: i32) -> Self {
         381  +
        /* BuilderGenerator.kt:292 */
  220    382   
        self.required_integer = ::std::option::Option::Some(input);
         383  +
        /* BuilderGenerator.kt:293 */
  221    384   
        self
         385  +
        /* BuilderGenerator.kt:291 */
  222    386   
    }
         387  +
    /* BuilderGenerator.kt:312 */
  223    388   
    #[allow(missing_docs)] // documentation missing in model
         389  +
                           /* BuilderGenerator.kt:314 */
  224    390   
    pub fn set_required_integer(mut self, input: ::std::option::Option<i32>) -> Self {
         391  +
        /* BuilderGenerator.kt:315 */
  225    392   
        self.required_integer = input;
  226    393   
        self
         394  +
        /* BuilderGenerator.kt:314 */
  227    395   
    }
         396  +
    /* BuilderGenerator.kt:334 */
  228    397   
    #[allow(missing_docs)] // documentation missing in model
         398  +
                           /* BuilderGenerator.kt:336 */
  229    399   
    pub fn get_required_integer(&self) -> &::std::option::Option<i32> {
         400  +
        /* BuilderGenerator.kt:337 */
  230    401   
        &self.required_integer
         402  +
        /* BuilderGenerator.kt:336 */
  231    403   
    }
         404  +
    /* BuilderGenerator.kt:286 */
  232    405   
    #[allow(missing_docs)] // documentation missing in model
  233         -
    /// This field is required.
         406  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         407  +
    /* BuilderGenerator.kt:291 */
  234    408   
    pub fn required_long(mut self, input: i64) -> Self {
         409  +
        /* BuilderGenerator.kt:292 */
  235    410   
        self.required_long = ::std::option::Option::Some(input);
         411  +
        /* BuilderGenerator.kt:293 */
  236    412   
        self
         413  +
        /* BuilderGenerator.kt:291 */
  237    414   
    }
         415  +
    /* BuilderGenerator.kt:312 */
  238    416   
    #[allow(missing_docs)] // documentation missing in model
         417  +
                           /* BuilderGenerator.kt:314 */
  239    418   
    pub fn set_required_long(mut self, input: ::std::option::Option<i64>) -> Self {
         419  +
        /* BuilderGenerator.kt:315 */
  240    420   
        self.required_long = input;
  241    421   
        self
         422  +
        /* BuilderGenerator.kt:314 */
  242    423   
    }
         424  +
    /* BuilderGenerator.kt:334 */
  243    425   
    #[allow(missing_docs)] // documentation missing in model
         426  +
                           /* BuilderGenerator.kt:336 */
  244    427   
    pub fn get_required_long(&self) -> &::std::option::Option<i64> {
         428  +
        /* BuilderGenerator.kt:337 */
  245    429   
        &self.required_long
         430  +
        /* BuilderGenerator.kt:336 */
  246    431   
    }
         432  +
    /* BuilderGenerator.kt:286 */
  247    433   
    #[allow(missing_docs)] // documentation missing in model
  248         -
    /// This field is required.
         434  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         435  +
    /* BuilderGenerator.kt:291 */
  249    436   
    pub fn required_float(mut self, input: f32) -> Self {
         437  +
        /* BuilderGenerator.kt:292 */
  250    438   
        self.required_float = ::std::option::Option::Some(input);
         439  +
        /* BuilderGenerator.kt:293 */
  251    440   
        self
         441  +
        /* BuilderGenerator.kt:291 */
  252    442   
    }
         443  +
    /* BuilderGenerator.kt:312 */
  253    444   
    #[allow(missing_docs)] // documentation missing in model
         445  +
                           /* BuilderGenerator.kt:314 */
  254    446   
    pub fn set_required_float(mut self, input: ::std::option::Option<f32>) -> Self {
         447  +
        /* BuilderGenerator.kt:315 */
  255    448   
        self.required_float = input;
  256    449   
        self
         450  +
        /* BuilderGenerator.kt:314 */
  257    451   
    }
         452  +
    /* BuilderGenerator.kt:334 */
  258    453   
    #[allow(missing_docs)] // documentation missing in model
         454  +
                           /* BuilderGenerator.kt:336 */
  259    455   
    pub fn get_required_float(&self) -> &::std::option::Option<f32> {
         456  +
        /* BuilderGenerator.kt:337 */
  260    457   
        &self.required_float
         458  +
        /* BuilderGenerator.kt:336 */
  261    459   
    }
         460  +
    /* BuilderGenerator.kt:286 */
  262    461   
    #[allow(missing_docs)] // documentation missing in model
  263         -
    /// This field is required.
         462  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         463  +
    /* BuilderGenerator.kt:291 */
  264    464   
    pub fn required_double(mut self, input: f64) -> Self {
         465  +
        /* BuilderGenerator.kt:292 */
  265    466   
        self.required_double = ::std::option::Option::Some(input);
         467  +
        /* BuilderGenerator.kt:293 */
  266    468   
        self
         469  +
        /* BuilderGenerator.kt:291 */
  267    470   
    }
         471  +
    /* BuilderGenerator.kt:312 */
  268    472   
    #[allow(missing_docs)] // documentation missing in model
         473  +
                           /* BuilderGenerator.kt:314 */
  269    474   
    pub fn set_required_double(mut self, input: ::std::option::Option<f64>) -> Self {
         475  +
        /* BuilderGenerator.kt:315 */
  270    476   
        self.required_double = input;
  271    477   
        self
         478  +
        /* BuilderGenerator.kt:314 */
  272    479   
    }
         480  +
    /* BuilderGenerator.kt:334 */
  273    481   
    #[allow(missing_docs)] // documentation missing in model
         482  +
                           /* BuilderGenerator.kt:336 */
  274    483   
    pub fn get_required_double(&self) -> &::std::option::Option<f64> {
         484  +
        /* BuilderGenerator.kt:337 */
  275    485   
        &self.required_double
         486  +
        /* BuilderGenerator.kt:336 */
  276    487   
    }
  277         -
    /// Adds a key-value pair to `required_map`.
         488  +
    /// /* BuilderGenerator.kt:436 */Adds a key-value pair to `required_map`.
         489  +
    /* BuilderGenerator.kt:437 */
  278    490   
    ///
  279         -
    /// To override the contents of this collection use [`set_required_map`](Self::set_required_map).
         491  +
    /// /* BuilderGenerator.kt:438 */To override the contents of this collection use [`set_required_map`](Self::set_required_map).
         492  +
    /* BuilderGenerator.kt:439 */
  280    493   
    ///
         494  +
    /* BuilderGenerator.kt:445 */
  281    495   
    pub fn required_map(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
         496  +
        /* BuilderGenerator.kt:448 */
  282    497   
        let mut hash_map = self.required_map.unwrap_or_default();
  283    498   
        hash_map.insert(k.into(), v.into());
  284    499   
        self.required_map = ::std::option::Option::Some(hash_map);
  285    500   
        self
         501  +
        /* BuilderGenerator.kt:445 */
  286    502   
    }
         503  +
    /* BuilderGenerator.kt:312 */
  287    504   
    #[allow(missing_docs)] // documentation missing in model
         505  +
                           /* BuilderGenerator.kt:314 */
  288    506   
    pub fn set_required_map(
  289    507   
        mut self,
  290    508   
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
  291    509   
    ) -> Self {
         510  +
        /* BuilderGenerator.kt:315 */
  292    511   
        self.required_map = input;
  293    512   
        self
         513  +
        /* BuilderGenerator.kt:314 */
  294    514   
    }
         515  +
    /* BuilderGenerator.kt:334 */
  295    516   
    #[allow(missing_docs)] // documentation missing in model
         517  +
                           /* BuilderGenerator.kt:336 */
  296    518   
    pub fn get_required_map(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
         519  +
        /* BuilderGenerator.kt:337 */
  297    520   
        &self.required_map
  298         -
    }
  299         -
    /// Consumes the builder and constructs a [`OperationWithRequiredMembersOutput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput).
  300         -
    /// This method will fail if any of the following fields are not set:
  301         -
    /// - [`required_string`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_string)
  302         -
    /// - [`required_boolean`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_boolean)
  303         -
    /// - [`required_list`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_list)
  304         -
    /// - [`required_timestamp`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_timestamp)
  305         -
    /// - [`required_blob`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_blob)
  306         -
    /// - [`required_byte`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_byte)
  307         -
    /// - [`required_short`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_short)
  308         -
    /// - [`required_integer`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_integer)
  309         -
    /// - [`required_long`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_long)
  310         -
    /// - [`required_float`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_float)
  311         -
    /// - [`required_double`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_double)
  312         -
    /// - [`required_map`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_map)
         521  +
        /* BuilderGenerator.kt:336 */
         522  +
    }
         523  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`OperationWithRequiredMembersOutput`](crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput).
         524  +
    /// /* BuilderGenerator.kt:243 */This method will fail if any of the following fields are not set:
         525  +
    /// /* BuilderGenerator.kt:246 */- [`required_string`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_string)
         526  +
    /// /* BuilderGenerator.kt:246 */- [`required_boolean`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_boolean)
         527  +
    /// /* BuilderGenerator.kt:246 */- [`required_list`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_list)
         528  +
    /// /* BuilderGenerator.kt:246 */- [`required_timestamp`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_timestamp)
         529  +
    /// /* BuilderGenerator.kt:246 */- [`required_blob`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_blob)
         530  +
    /// /* BuilderGenerator.kt:246 */- [`required_byte`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_byte)
         531  +
    /// /* BuilderGenerator.kt:246 */- [`required_short`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_short)
         532  +
    /// /* BuilderGenerator.kt:246 */- [`required_integer`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_integer)
         533  +
    /// /* BuilderGenerator.kt:246 */- [`required_long`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_long)
         534  +
    /// /* BuilderGenerator.kt:246 */- [`required_float`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_float)
         535  +
    /// /* BuilderGenerator.kt:246 */- [`required_double`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_double)
         536  +
    /// /* BuilderGenerator.kt:246 */- [`required_map`](crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersOutputBuilder::required_map)
         537  +
    /* BuilderGenerator.kt:253 */
  313    538   
    pub fn build(
  314    539   
        self,
  315    540   
    ) -> ::std::result::Result<
  316    541   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput,
  317    542   
        ::aws_smithy_types::error::operation::BuildError,
  318    543   
    > {
  319         -
        ::std::result::Result::Ok(crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput {
  320         -
            required_string: self.required_string.ok_or_else(|| {
  321         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  322         -
                    "required_string",
  323         -
                    "required_string was not specified but it is required when building OperationWithRequiredMembersOutput",
  324         -
                )
  325         -
            })?,
  326         -
            required_boolean: self.required_boolean.ok_or_else(|| {
  327         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  328         -
                    "required_boolean",
  329         -
                    "required_boolean was not specified but it is required when building OperationWithRequiredMembersOutput",
  330         -
                )
  331         -
            })?,
  332         -
            required_list: self.required_list.ok_or_else(|| {
  333         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  334         -
                    "required_list",
  335         -
                    "required_list was not specified but it is required when building OperationWithRequiredMembersOutput",
  336         -
                )
  337         -
            })?,
  338         -
            required_timestamp: self.required_timestamp.ok_or_else(|| {
  339         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  340         -
                    "required_timestamp",
  341         -
                    "required_timestamp was not specified but it is required when building OperationWithRequiredMembersOutput",
  342         -
                )
  343         -
            })?,
  344         -
            required_blob: self.required_blob.ok_or_else(|| {
  345         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  346         -
                    "required_blob",
  347         -
                    "required_blob was not specified but it is required when building OperationWithRequiredMembersOutput",
  348         -
                )
  349         -
            })?,
  350         -
            required_byte: self.required_byte.ok_or_else(|| {
  351         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  352         -
                    "required_byte",
  353         -
                    "required_byte was not specified but it is required when building OperationWithRequiredMembersOutput",
  354         -
                )
  355         -
            })?,
  356         -
            required_short: self.required_short.ok_or_else(|| {
  357         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  358         -
                    "required_short",
  359         -
                    "required_short was not specified but it is required when building OperationWithRequiredMembersOutput",
  360         -
                )
  361         -
            })?,
  362         -
            required_integer: self.required_integer.ok_or_else(|| {
  363         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  364         -
                    "required_integer",
  365         -
                    "required_integer was not specified but it is required when building OperationWithRequiredMembersOutput",
  366         -
                )
  367         -
            })?,
  368         -
            required_long: self.required_long.ok_or_else(|| {
  369         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  370         -
                    "required_long",
  371         -
                    "required_long was not specified but it is required when building OperationWithRequiredMembersOutput",
  372         -
                )
  373         -
            })?,
  374         -
            required_float: self.required_float.ok_or_else(|| {
  375         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  376         -
                    "required_float",
  377         -
                    "required_float was not specified but it is required when building OperationWithRequiredMembersOutput",
  378         -
                )
  379         -
            })?,
  380         -
            required_double: self.required_double.ok_or_else(|| {
  381         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  382         -
                    "required_double",
  383         -
                    "required_double was not specified but it is required when building OperationWithRequiredMembersOutput",
  384         -
                )
  385         -
            })?,
  386         -
            required_map: self.required_map.ok_or_else(|| {
  387         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  388         -
                    "required_map",
  389         -
                    "required_map was not specified but it is required when building OperationWithRequiredMembersOutput",
  390         -
                )
  391         -
            })?,
  392         -
        })
  393         -
    }
         544  +
        /* BuilderGenerator.kt:254 */
         545  +
        ::std::result::Result::Ok(
         546  +
            /* BuilderGenerator.kt:477 */crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput {
         547  +
                /* BuilderGenerator.kt:481 */required_string: self.required_string
         548  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         549  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_string", "required_string was not specified but it is required when building OperationWithRequiredMembersOutput")
         550  +
                    /* BuilderGenerator.kt:494 */)?
         551  +
                ,
         552  +
                /* BuilderGenerator.kt:481 */required_boolean: self.required_boolean
         553  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         554  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_boolean", "required_boolean was not specified but it is required when building OperationWithRequiredMembersOutput")
         555  +
                    /* BuilderGenerator.kt:494 */)?
         556  +
                ,
         557  +
                /* BuilderGenerator.kt:481 */required_list: self.required_list
         558  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         559  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_list", "required_list was not specified but it is required when building OperationWithRequiredMembersOutput")
         560  +
                    /* BuilderGenerator.kt:494 */)?
         561  +
                ,
         562  +
                /* BuilderGenerator.kt:481 */required_timestamp: self.required_timestamp
         563  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         564  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_timestamp", "required_timestamp was not specified but it is required when building OperationWithRequiredMembersOutput")
         565  +
                    /* BuilderGenerator.kt:494 */)?
         566  +
                ,
         567  +
                /* BuilderGenerator.kt:481 */required_blob: self.required_blob
         568  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         569  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_blob", "required_blob was not specified but it is required when building OperationWithRequiredMembersOutput")
         570  +
                    /* BuilderGenerator.kt:494 */)?
         571  +
                ,
         572  +
                /* BuilderGenerator.kt:481 */required_byte: self.required_byte
         573  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         574  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_byte", "required_byte was not specified but it is required when building OperationWithRequiredMembersOutput")
         575  +
                    /* BuilderGenerator.kt:494 */)?
         576  +
                ,
         577  +
                /* BuilderGenerator.kt:481 */required_short: self.required_short
         578  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         579  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_short", "required_short was not specified but it is required when building OperationWithRequiredMembersOutput")
         580  +
                    /* BuilderGenerator.kt:494 */)?
         581  +
                ,
         582  +
                /* BuilderGenerator.kt:481 */required_integer: self.required_integer
         583  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         584  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_integer", "required_integer was not specified but it is required when building OperationWithRequiredMembersOutput")
         585  +
                    /* BuilderGenerator.kt:494 */)?
         586  +
                ,
         587  +
                /* BuilderGenerator.kt:481 */required_long: self.required_long
         588  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         589  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_long", "required_long was not specified but it is required when building OperationWithRequiredMembersOutput")
         590  +
                    /* BuilderGenerator.kt:494 */)?
         591  +
                ,
         592  +
                /* BuilderGenerator.kt:481 */required_float: self.required_float
         593  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         594  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_float", "required_float was not specified but it is required when building OperationWithRequiredMembersOutput")
         595  +
                    /* BuilderGenerator.kt:494 */)?
         596  +
                ,
         597  +
                /* BuilderGenerator.kt:481 */required_double: self.required_double
         598  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         599  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_double", "required_double was not specified but it is required when building OperationWithRequiredMembersOutput")
         600  +
                    /* BuilderGenerator.kt:494 */)?
         601  +
                ,
         602  +
                /* BuilderGenerator.kt:481 */required_map: self.required_map
         603  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         604  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("required_map", "required_map was not specified but it is required when building OperationWithRequiredMembersOutput")
         605  +
                    /* BuilderGenerator.kt:494 */)?
         606  +
                ,
         607  +
            /* BuilderGenerator.kt:477 */}
         608  +
        /* BuilderGenerator.kt:254 */)
         609  +
        /* BuilderGenerator.kt:253 */
         610  +
    }
         611  +
    /* BuilderGenerator.kt:355 */
  394    612   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/operation_with_required_members/builders.rs

@@ -1,1 +110,122 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* CodegenDelegator.kt:255 */
    2      3   
pub use crate::operation::operation_with_required_members::_operation_with_required_members_output::OperationWithRequiredMembersOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::operation_with_required_members::_operation_with_required_members_input::OperationWithRequiredMembersInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersInputBuilder {
    7     10   
    /// Sends a request with this input using the given client.
    8     11   
    pub async fn send_with(
    9     12   
        self,
   10     13   
        client: &crate::Client,
   11     14   
    ) -> ::std::result::Result<
   12     15   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.operation_with_required_members();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `OperationWithRequiredMembers`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `OperationWithRequiredMembers`.
   24     27   
///
          28  +
/* RustType.kt:516 */
   25     29   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          30  +
/* FluentBuilderGenerator.kt:270 */
   26     31   
pub struct OperationWithRequiredMembersFluentBuilder {
   27     32   
    handle: ::std::sync::Arc<crate::client::Handle>,
   28     33   
    inner: crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersInputBuilder,
   29     34   
    config_override: ::std::option::Option<crate::config::Builder>,
   30     35   
}
          36  +
/* FluentBuilderGenerator.kt:381 */
   31     37   
impl
   32     38   
    crate::client::customize::internal::CustomizableSend<
   33     39   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput,
   34     40   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
   35     41   
    > for OperationWithRequiredMembersFluentBuilder
   36     42   
{
   37     43   
    fn send(
   38     44   
        self,
   39     45   
        config_override: crate::config::Builder,
   40     46   
    ) -> crate::client::customize::internal::BoxFuture<
   41     47   
        crate::client::customize::internal::SendResult<
   42     48   
            crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput,
   43     49   
            crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
   44     50   
        >,
   45     51   
    > {
   46     52   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   47     53   
    }
   48     54   
}
          55  +
/* FluentBuilderGenerator.kt:282 */
   49     56   
impl OperationWithRequiredMembersFluentBuilder {
          57  +
    /* FluentBuilderGenerator.kt:288 */
   50     58   
    /// Creates a new `OperationWithRequiredMembersFluentBuilder`.
   51     59   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   52     60   
        Self {
   53     61   
            handle,
   54     62   
            inner: ::std::default::Default::default(),
   55     63   
            config_override: ::std::option::Option::None,
   56     64   
        }
   57     65   
    }
          66  +
    /* FluentBuilderGenerator.kt:301 */
   58     67   
    /// Access the OperationWithRequiredMembers as a reference.
   59     68   
    pub fn as_input(&self) -> &crate::operation::operation_with_required_members::builders::OperationWithRequiredMembersInputBuilder {
   60     69   
        &self.inner
   61     70   
    }
          71  +
    /* FluentBuilderGenerator.kt:145 */
   62     72   
    /// Sends the request and returns the response.
   63     73   
    ///
   64     74   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   65     75   
    /// can be matched against.
   66     76   
    ///
   67     77   
    /// By default, any retryable failures will be retried twice. Retry behavior
   68     78   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   69     79   
    /// set when configuring the client.
   70     80   
    pub async fn send(
   71     81   
        self,
   72     82   
    ) -> ::std::result::Result<
   73     83   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput,
   74     84   
        ::aws_smithy_runtime_api::client::result::SdkError<
   75     85   
            crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
   76     86   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   77     87   
        >,
   78     88   
    > {
   79     89   
        let input = self
   80     90   
            .inner
   81     91   
            .build()
   82     92   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   83     93   
        let runtime_plugins = crate::operation::operation_with_required_members::OperationWithRequiredMembers::operation_runtime_plugins(
   84     94   
            self.handle.runtime_plugins.clone(),
   85     95   
            &self.handle.conf,
   86     96   
            self.config_override,
   87     97   
        );
   88     98   
        crate::operation::operation_with_required_members::OperationWithRequiredMembers::orchestrate(&runtime_plugins, input).await
   89     99   
    }
   90    100   
   91    101   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   92    102   
    pub fn customize(
   93    103   
        self,
   94    104   
    ) -> crate::client::customize::CustomizableOperation<
   95    105   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersOutput,
   96    106   
        crate::operation::operation_with_required_members::OperationWithRequiredMembersError,
   97    107   
        Self,
   98    108   
    > {
   99    109   
        crate::client::customize::CustomizableOperation::new(self)
  100    110   
    }
         111  +
    /* FluentBuilderGenerator.kt:315 */
  101    112   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  102    113   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  103    114   
        self
  104    115   
    }
  105    116   
  106    117   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  107    118   
        self.config_override = config_override;
  108    119   
        self
  109    120   
    }
         121  +
    /* FluentBuilderGenerator.kt:282 */
  110    122   
}

tmp-codegen-diff/codegen-client-test/json_rpc10/rust-client-codegen/src/operation/put_with_content_encoding.rs

@@ -1,1 +40,49 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* OperationGenerator.kt:77 */
    2      3   
/// Orchestration and serialization glue logic for `PutWithContentEncoding`.
           4  +
/* RustType.kt:516 */
    3      5   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           6  +
/* RustType.kt:516 */
    4      7   
#[non_exhaustive]
           8  +
/* OperationGenerator.kt:84 */
    5      9   
pub struct PutWithContentEncoding;
          10  +
/* OperationGenerator.kt:85 */
    6     11   
impl PutWithContentEncoding {
    7         -
    /// Creates a new `PutWithContentEncoding`
          12  +
    /// /* OperationGenerator.kt:86 */Creates a new `PutWithContentEncoding`
          13  +
    /* OperationGenerator.kt:87 */
    8     14   
    pub fn new() -> Self {
          15  +
        /* OperationGenerator.kt:88 */
    9     16   
        Self
          17  +
        /* OperationGenerator.kt:87 */
   10     18   
    }
          19  +
    /* OperationGenerator.kt:138 */
   11     20   
    pub(crate) async fn orchestrate(
   12     21   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     22   
        input: crate::operation::put_with_content_encoding::PutWithContentEncodingInput,
   14     23   
    ) -> ::std::result::Result<
   15     24   
        crate::operation::put_with_content_encoding::PutWithContentEncodingOutput,
   16     25   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     26   
            crate::operation::put_with_content_encoding::PutWithContentEncodingError,
   18     27   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     28   
        >,
   20     29   
    > {
@@ -65,74 +407,483 @@
   85     94   
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
   86     95   
            }
   87     96   
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
   88     97   
                config_override,
   89     98   
                client_config.config.clone(),
   90     99   
                &client_config.runtime_components,
   91    100   
            ));
   92    101   
        }
   93    102   
        runtime_plugins
   94    103   
    }
         104  +
    /* OperationGenerator.kt:85 */
   95    105   
}
         106  +
/* OperationRuntimePluginGenerator.kt:55 */
   96    107   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for PutWithContentEncoding {
   97    108   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
   98    109   
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("PutWithContentEncoding");
   99    110   
  100    111   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
  101    112   
            PutWithContentEncodingRequestSerializer,
  102    113   
        ));
  103    114   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
  104    115   
            PutWithContentEncodingResponseDeserializer,
  105    116   
        ));
  106    117   
  107    118   
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
  108    119   
            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
  109    120   
        ));
  110    121   
  111    122   
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
  112    123   
            "PutWithContentEncoding",
  113    124   
            "JSON RPC 10",
  114    125   
        ));
  115    126   
  116    127   
        ::std::option::Option::Some(cfg.freeze())
  117    128   
    }
  118    129   
  119    130   
    fn runtime_components(
  120    131   
        &self,
  121    132   
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
  122    133   
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
  123    134   
        #[allow(unused_mut)]
  124    135   
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("PutWithContentEncoding")
  125    136   
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  126    137   
            .with_interceptor(PutWithContentEncodingEndpointParamsInterceptor)
  127    138   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  128    139   
                crate::operation::put_with_content_encoding::PutWithContentEncodingError,
  129    140   
            >::new())
  130    141   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  131    142   
                crate::operation::put_with_content_encoding::PutWithContentEncodingError,
  132    143   
            >::new());
  133    144   
  134    145   
        ::std::borrow::Cow::Owned(rcb)
  135    146   
    }
  136    147   
}
  137    148   
         149  +
/* ResponseDeserializerGenerator.kt:64 */
  138    150   
#[derive(Debug)]
  139    151   
struct PutWithContentEncodingResponseDeserializer;
  140    152   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutWithContentEncodingResponseDeserializer {
  141    153   
    fn deserialize_nonstreaming(
  142    154   
        &self,
  143    155   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  144    156   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  145    157   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  146    158   
        let headers = response.headers();
  147    159   
        let body = response.body().bytes().expect("body loaded");
  148    160   
        #[allow(unused_mut)]
  149    161   
        let mut force_error = false;
  150    162   
  151    163   
        let parse_result = if !success && status != 200 || force_error {
  152    164   
            crate::protocol_serde::shape_put_with_content_encoding::de_put_with_content_encoding_http_error(status, headers, body)
  153    165   
        } else {
  154    166   
            crate::protocol_serde::shape_put_with_content_encoding::de_put_with_content_encoding_http_response(status, headers, body)
  155    167   
        };
  156    168   
        crate::protocol_serde::type_erase_result(parse_result)
  157    169   
    }
  158    170   
}
         171  +
/* RequestSerializerGenerator.kt:67 */
  159    172   
#[derive(Debug)]
  160    173   
struct PutWithContentEncodingRequestSerializer;
  161    174   
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for PutWithContentEncodingRequestSerializer {
  162    175   
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
  163    176   
    fn serialize_input(
  164    177   
        &self,
  165    178   
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
  166    179   
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  167    180   
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
  168    181   
        let input = input
  169    182   
            .downcast::<crate::operation::put_with_content_encoding::PutWithContentEncodingInput>()
  170    183   
            .expect("correct type");
  171    184   
        let _header_serialization_settings = _cfg
  172    185   
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
  173    186   
            .cloned()
  174    187   
            .unwrap_or_default();
  175    188   
        let mut request_builder = {
  176    189   
            fn uri_base(
  177    190   
                _input: &crate::operation::put_with_content_encoding::PutWithContentEncodingInput,
  178    191   
                output: &mut ::std::string::String,
  179    192   
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  180    193   
                use ::std::fmt::Write as _;
  181    194   
                ::std::write!(output, "/").expect("formatting should succeed");
  182    195   
                ::std::result::Result::Ok(())
  183    196   
            }
  184    197   
            #[allow(clippy::unnecessary_wraps)]
  185    198   
            fn update_http_builder(
  186    199   
                input: &crate::operation::put_with_content_encoding::PutWithContentEncodingInput,
  187    200   
                builder: ::http::request::Builder,
  188    201   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  189    202   
                let mut uri = ::std::string::String::new();
  190    203   
                uri_base(input, &mut uri)?;
  191    204   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  192    205   
            }
  193    206   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  194    207   
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
  195    208   
            builder = _header_serialization_settings.set_default_header(
  196    209   
                builder,
  197    210   
                ::http::header::HeaderName::from_static("x-amz-target"),
  198    211   
                "JsonRpc10.PutWithContentEncoding",
  199    212   
            );
  200    213   
            builder
  201    214   
        };
  202    215   
        let body = ::aws_smithy_types::body::SdkBody::from(
  203    216   
            crate::protocol_serde::shape_put_with_content_encoding::ser_put_with_content_encoding_input(&input)?,
  204    217   
        );
  205    218   
        if let Some(content_length) = body.content_length() {
  206    219   
            let content_length = content_length.to_string();
  207    220   
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  208    221   
        }
  209    222   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  210    223   
    }
  211    224   
}
         225  +
/* EndpointParamsInterceptorGenerator.kt:86 */
  212    226   
#[derive(Debug)]
  213    227   
struct PutWithContentEncodingEndpointParamsInterceptor;
  214    228   
  215    229   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutWithContentEncodingEndpointParamsInterceptor {
  216    230   
    fn name(&self) -> &'static str {
  217    231   
        "PutWithContentEncodingEndpointParamsInterceptor"
  218    232   
    }
  219    233   
  220    234   
    fn read_before_execution(
  221    235   
        &self,
  222    236   
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  223    237   
            '_,
  224    238   
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  225    239   
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  226    240   
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  227    241   
        >,
  228    242   
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  229    243   
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  230    244   
        let _input = context
  231    245   
            .input()
  232    246   
            .downcast_ref::<PutWithContentEncodingInput>()
  233    247   
            .ok_or("failed to downcast to PutWithContentEncodingInput")?;
  234    248   
  235    249   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  236    250   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  237    251   
        })?;
  238    252   
        cfg.interceptor_state()
  239    253   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  240    254   
        ::std::result::Result::Ok(())
  241    255   
    }
  242    256   
}
  243    257   
  244    258   
// The get_* functions below are generated from JMESPath expressions in the
  245    259   
// operationContextParams trait. They target the operation's input shape.
  246    260   
         261  +
/* RustType.kt:516 */
  247    262   
#[allow(unreachable_code, unused_variables)]
         263  +
/* RustType.kt:516 */
  248    264   
#[cfg(test)]
         265  +
/* ProtocolTestGenerator.kt:98 */
  249    266   
mod put_with_content_encoding_test {
  250    267   
  251    268   
    /// Compression algorithm encoding is appended to the Content-Encoding header.
  252    269   
    /// Test ID: SDKAppliedContentEncoding_awsJson1_0
  253    270   
    #[::tokio::test]
  254    271   
    #[::tracing_test::traced_test]
  255    272   
    async fn sdk_applied_content_encoding_aws_json1_0_request() {
  256    273   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  257    274   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  258    275   
  259    276   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  260    277   
        let result = client.put_with_content_encoding()
  261    278   
        .set_data(
  262    279   
            ::std::option::Option::Some(
  263    280   
                "RjCEL3kBwqPivZUXGiyA5JCujtWgJAkKRlnTEsNYfBRGOS0f7LT6R3bCSOXeJ4auSHzQ4BEZZTklUyj5\n1HEojihShQC2jkQJrNdGOZNSW49yRO0XbnGmeczUHbZqZRelLFKW4xjru9uTuB8lFCtwoGgciFsgqTF8\n5HYcoqINTRxuAwGuRUMoNO473QT0BtCQoKUkAyVaypG0hBZdGNoJhunBfW0d3HWTYlzz9pXElyZhq3C1\n2PDB17GEoOYXmTxDecysmPOdo5z6T0HFhujfeJFIQQ8dirmXcG4F3v0bZdf6AZ3jsiVh6RnEXIPxPbOi\ngIXDWTMUr4Pg3f2LdYCM01eAb2qTdgsEN0MUDhEIfn68I2tnWvcozyUFpg1ez6pyWP8ssWVfFrckREIM\nMb0cTUVqSVSM8bnFiF9SoXM6ZoGMKfX1mT708OYk7SqZ1JlCTkecDJDoR5ED2q2MWKUGR6jjnEV0GtD8\nWJO6AcF0DptY9Hk16Bav3z6c5FeBvrGDrxTFVgRUk8SychzjrcqJ4qskwN8rL3zslC0oqobQRnLFOvwJ\nprSzBIwdH2yAuxokXAdVRa1u9NGNRvfWJfKkwbbVz8yV76RUF9KNhAUmwyYDrLnxNj8ROl8B7dv8Gans\n7Bit52wcdiJyjBW1pAodB7zqqVwtBx5RaSpF7kEMXexYXp9N0J1jlXzdeg5Wgg4pO7TJNr2joiPVAiFf\nefwMMCNBkYx2z7cRxVxCJZMXXzxSKMGgdTN24bJ5UgE0TxyV52RC0wGWG49S1x5jGrvmxKCIgYPs0w3Z\n0I3XcdB0WEj4x4xRztB9Cx2Mc4qFYQdzS9kOioAgNBti1rBySZ8lFZM2zqxvBsJTTJsmcKPr1crqiXjM\noVWdM4ObOO6QA7Pu4c1hT68CrTmbcecjFcxHkgsqdixnFtN6keMGL9Z2YMjZOjYYzbUEwLJqUVWalkIB\nBkgBRqZpzxx5nB5t0qDH35KjsfKM5cinQaFoRq9y9Z82xdCoKZOsUbxZkk1kVmy1jPDCBhkhixkc5PKS\nFoSKTbeK7kuCEZCtR9OfF2k2MqbygGFsFu2sgb1Zn2YdDbaRwRGeaLhswta09UNSMUo8aTixgoYVHxwy\nvraLB6olPSPegeLOnmBeWyKmEfPdbpdGm4ev4vA2AUFuLIeFz0LkCSN0NgQMrr8ALEm1UNpJLReg1ZAX\nzZh7gtQTZUaBVdMJokaJpLk6FPxSA6zkwB5TegSqhrFIsmvpY3VNWmTUq7H0iADdh3dRQ8Is97bTsbwu\nvAEOjh4FQ9wPSFzEtcSJeYQft5GfWYPisDImjjvHVFshFFkNy2nN18pJmhVPoJc456tgbdfEIdGhIADC\n6UPcSSzE1FxlPpILqZrp3i4NvvKoiOa4a8tnALd2XRHHmsvALn2Wmfu07b86gZlu4yOyuUFNoWI6tFvd\nbHnqSJYNQlFESv13gJw609DBzNnrIgBGYBAcDRrIGAnflRKwVDUnDFrUQmE8xNG6jRlyb1p2Y2RrfBtG\ncKqhuGNiT2DfxpY89ektZ98waPhJrFEPJToNH8EADzBorh3T0h4YP1IeLmaI7SOxeuVrk1kjRqMK0rUB\nlUJgJNtCE35jCyoHMwPQlyi78ZaVv8COVQ24zcGpw0MTy6JUsDzAC3jLNY6xCb40SZV9XzG7nWvXA5Ej\nYC1gTXxF4AtFexIdDZ4RJbtYMyXt8LsEJerwwpkfqvDwsiFuqYC6vIn9RoZO5kI0F35XtUITDQYKZ4eq\nWBV0itxTyyR5Rp6g30pZEmEqOusDaIh96CEmHpOBYAQZ7u1QTfzRdysIGMpzbx5gj9Dxm2PO1glWzY7P\nlVqQiBlXSGDOkBkrB6SkiAxknt9zsPdTTsf3r3nid4hdiPrZmGWNgjOO1khSxZSzBdltrCESNnQmlnP5\nZOHA0eSYXwy8j4od5ZmjA3IpFOEPW2MutMbxIbJpg5dIx2x7WxespftenRLgl3CxcpPDcnb9w8LCHBg7\nSEjrEer6Y8wVLFWsQiv6nTdCPZz9cGqwgtCaiHRy8lTWFgdfWd397vw9rduGld3uUFeFRGjYrphqEmHi\nhiG0GhE6wRFVUsGJtvOCYkVREvbEdxPFeJvlAvOcs9HKbtptlTusvYB86vR2bNcIY4f5JZu2X6sGa354\n7LRk0ps2zqYjat3hMR7XDC8KiKceBteFsXoDjfVxTYKelpedTxqWAafrKhaoAVuNM98PSnkuIWGzjSUC\nNsDJTt6vt1D1afBVPWVmnQ7ZQdtEtLIEwAWYjemAztreELIr1E9fPEILm1Ke4KctP9I0I72Dh4eylNZD\n0DEr2Hg7cWFckuZ0Av5d0IPRARXikEGDHl8uh12TXL9v2Uh0ZVSJMEYvxGSbZvkWz8TjWSk3hKA2a7GL\nJm3Ho7e1C34gE1XRGcEthxvURxt4OKBqN3ZNaMIuDTWinoQAutMcUqtm4MoL7RGPiCHUrvTwQPSirsmA\nQmOEu8nOpnP77Fivh9jLGx5ta7nL6jrsWUsBqiN1lzpdPYLRR4mUIAj6sNWiDEk4pkbHSMEcqbWw6Zl7\npsEyPDHalCNhWMA3RSK3skURzQDZ0oBV5W7vjVIZ4d3uCKsk6zrzEI9u5mx7p9RdNKodXfzqYt0ULdtc\n3RW0hIfw2KvrO3BD2QrtgAkfrFBGVvlJSUoh0MvLz8DeXxfuiuq9Ttu7wvsqVI4Piah6WNEXtHHGPJO3\nGhc75Bnv2To4VS2v8rmyKAPIIVTuYBHZN6sZ4FhFzbrslCIdk0eadaU60naqiNWU3CsxplIYGyeThmJ7\n9u4h6Y2OmiPZjFPS2bAzwgAozYTVefII9aEaWZ0hxHZeu1FW7r79dkdO73ZqRfas9u8Z7LLBPCw5pV0F\n5I0pHDgNb6MogoxF4NZJfVtIX1vCHhhVLrXjrYNJU2fD9Fw8kT8Ie2HDBJnqAvYKmryQ1r9ulo3Me3rH\nq9s2Y5uCDxu9iQNhnpwIm57WYGFeqd2fnQeY2IziD3Jgx0KSrmOH0jgi0RwJyfGXaORPq3bQQqljuACo\nkO6io9t5VI8PbNxSHTRbtYiPciUslbT0g7SpCLrRPOBRJ4DDk56pjghpeoUagJ5xJ4wjBzBuXnAGkNnP\nTfpiuz2r3oSBAi8sB9wiYK2z9sp4gZyQsqdVNzAEgKatOxBRBmJCBYpjO98ZQrF83XApPpfFg0ujB2PW\n1iYF9NkgwIKB5oB6KVTOmSKJk11mVermPgeugHbzdd2zUP6fP8fWbhseqk2t8ahGvqjs2CDHFIWXl5jc\nfCknbykE3ANt7lnAfJQ2ddduLGiqrX4HWx6jcWw08Es6BkleO0IDbaWrb95d5isvFlzJsf0TyDIXF4uq\nbBDCi0XPWqtRJ2iqmnJa2GbBe9GmAOWMkBFSilMyC4sR395WSDpD56fx0NGoU6cHrRu9xF2Bgh7RGSfl\nch2GXEeE02fDpSHFNvJBlOEqqfkIX6oCa6KY9NThqeIjYsT184XR2ZI7akXRaw1gMOGpk4FmUxk6WIuX\n4ei1SLQgSdl7OEdRtJklZ76eFrMbkJQ2TDhu8f7mVuiy53GUMIvCrP9xYGZGmCIDm2e4U2BDi3F7C5xK\n3bDZXwlQp6z4BSqTy2OVEWxXUJfjPMOL5Mc7AvDeKtxAS73pVIv0HgHIa4NBAdC7uLG0zXuu1FF6z2XY\nyUhk03fMZhYe7vVxsul3WE7U01fuN8z2y0eKwBW1RFBE1eKIaR9Y01sIWQWbSrfHfDrdZiElhmhHehfs\n0EfrR4sLYdQshJuvhTeKGJDaEhtPQwwJ9mUYGtuCL9RozWx1XI4bHNlzBTW0BVokYiJGlPe7wdxNzJD7\nJgS7Lwv6jGKngVf86imGZyzqwiteWFPdNUoWdTvUPSMO5xIUK9mo5QpwbBOAmyYzVq42o3Qs90N9khEV\nU36LB99fw8PtGHH5wsCHshfauwnNPj0blGXzke0kQ4JNCVH7Jtn0Y0aeejkSxFtwtxoYs6zHl1Lxxpsd\nsw5vBy49CEtoltDW367lVAwDjWdx20msGB7qJCkEDrzu7EXSO22782QX9NBRcN9ppX0C25I0FMA4Wnhz\n9zIpiXRrsTH35jzM8Cjt4EVLGNU3O0HuEvAer3cENnMJtngdrT86ox3fihMQbiuy4Bh4DEcP5in2VjbT\n3qbnoCNvOi8Fmmf7KlGlWAOceL5OHVE5lljjQEMzEQOCEgrk5mDKgwSBJQBNauIDSC1a5iEQjB8Xxp4C\nqeKyyWY9IOntNrtU5ny4lNprHJd36dKFeBLKcGCOvgHBXdOZloMF0YTRExw7hreEO9IoTGVHJ4teWsNr\nHdtagUHjkeZkdMMfnUGNv5aBNtFMqhcZH6EitEa9lGPkKBbJpoom3u8D8EHSIF1H5EZqqx9TLY5hWAIG\nPwJ4qwkpCGw5rCLVrjw7ARKukIFzNULANqjHUMcJ002TlUosJM4xJ4aAgckpLVGOGuPDhGAAexEcQmbg\nUsZdmqQrtuVUyyLteLbLbqtR6CTlcAIwY3xyMCmPgyefE0FEUODBoxQtRUuYTL9RC5o1sYb2PvcxUQfb\niJFi2CAl99pAzcckU2qVCxniARslIxM5pmMRGsQX9ZzYAfZrbg6ce6S74I8UMlgRQ2QVyvUjKKOE6IrJ\nLng370emHfe5m6LZULD5YiZutkD5ipjL2Bz77DvTE5kNPUhuoKBcTJcUgytfXAKUTWOcRKNlq0GImrxM\nJfr7AWbLFFNKGLeTrVDBwpcokJCv0zcOKWe8fd2xkeXkZTdmM66IgM27cyYmtQ6YF26Kd0qrWJeVZJV9\n3fyLYYvKN5csbRY2BHoYE5ERARRW65IrpkXMf48OrCXMtDIP0Z7wxI9DiTeKKeH4uuguhCJnwzR3WxLA\nVU6eBJEd7ZjS6JA83w7decq8uDI7LGKjcz1FySp3B7fE9DkHRGXxbsL7Fjar6vW2mAv8CuvI20B6jctp\n2yLDs24sPfB3sSxrrlhbuT1m6DZqiN0dl6umKx7NGZhmOTVGr20jfcxhqPQwTJfd7kel4rvxip4BqkvT\n7STy8knJ2BXGyJeNgwo1PXUZRDVy0LCTsSF1RFuRZe8cktHl9lgw8ntdPn1pVFL0MwJkJfdXBNUp5gNv\n50FTkrpo1t6wq4CVbcfj2XOrOzvBUzNH26sXGABI1gGxCdp2jEZrHgqQaWIaTJVTuguZhxqDvdYsrwFW\nYN58uuNcKHIrGdRSigyZInwQDYk0pjcqdSeU0WVU3Y9htzZBR7XRaCJr5YTZvq7fwermb5tuwb37lPLq\nB2IGg0iftkVbXaSyfCwVaRbfLBb88so0QqpmJGirFu8FcDiXOV1zTr8yW9XLdYQuUjh43xrXLdgsuYff\nCagInUk1eU1aLjVZoJRsNmStmOEpAqlYMwTvx7w6j2f421Cxr5cNZBIVlAxlXN2QiDqJ9v3sHhHkTanc\nlQuH8ptUyX8qncpBuXXBn7cSez9N0EoxCBl1GHUagbjstgJo4gzLvTmVIY6MiWYOBitzNUHfyqKwtKUr\nVoSCdZcGeA9lHUPA7PUprRRaT3m1hGKPyshtVS2ikG48w3oVerln1N1qGdtz46gZCrndw3LZ1B362RfW\nzDPuXbpsyLsRMTt1Rz1oKHRXp3iE41hkhQH6pxlvyCW2INnHt5XU8zRamOB3oW0udOhMpQFDjRkOcy06\nb4t0QTHvoRqmBna3WXzIMZyeK3GChF5eF8oDXRbjhk7BB6YKCgqwWUzEJ5K47HMSlhFkBUjaPRjdGM0z\nzOMwhW6b1NvSwP7XM1P5yi1oPvOspts1vr29SXqrMMrBhVogeodWyd69NqrO4jkyBxKmlXifoTowpfiY\n2cUCE0XMZqxUN39LCP09JqZifaEcBEo3mgtm1tWu5QR2GNq7UyQf4RIPSDOpDCAtwoPhRgdT1lJdcj4U\nlnH0wrJ8Uwu7c08L7ErnIrDATqCrOjpSbzGP1xHENABYONC4TknFPrJ8pe40A8fzGT0qBw9mAM1SKcHO\nfoiLcMC9AjHTqJzDG3xplSLPG9or2rMeq7Fzp9r0y7uJRMxgg51EbjfvYlH466A3ggvL2WQlDXjJqPW3\nBJGWAWDNN9LK8f46bADKPxakpkx23S9O47rGSXfDhVSIZsDympxWX1UOzWwMZRHkofVeKqizgbKkGgUT\nWykE9gRoRAOd9wfHZDYKa9i0LaPDiaUMvnU1gdBIqIoiVsdJ9swX47oxvMtOxtcS0zlD6llDkBuIiU5g\nPwRCYmtkkb25c8iRJXwGFPjI1wJ34I1z1ENicPdosPiUe9ZC2jnXIKzEdv01x2ER7DNDF3yxOwOhxNxI\nGqsmC92j25UQQFu9ZstOZ28AoCkuOYs0Uycm5u8jR1T39dMBwrko09rC65ENLnsxM8oebmyFCPiGJ1ED\n5Xqc9qZ237f1OnETAoEOwqUSvrdPTv56U7hV91EMTyC812MLQpr2710E3VVpsUCUMNhIxdt7UXZ1UNFb\njgzpZLXnf4DHrv6B7kq6UI50KMxcw1HZE2GpODfUTzNFLaqdrvzxKe5eUWdcojBaRbD4fFdVYJTElYDH\nNNVh6ofkoeWcs9CWGFmSBe0T4K8phFeygQg0prKMELNEy6qENzVtG9ZDcqj3a7L6ZLtvq50anWp7fAVu\nfwz55g4iM2Z2fA0pnwHDL7tt67zTxGITvsnJsZSpeq1EQsZcwtkBV9liu7Rl7jiVT1IIRtchB8TsTiaA\nwVHIQQ9RIOTiPQdKNqi1kC9iGlUqWK93gblNWlBw1eYB9Wk8FQogutwTf0caNMx8D4nPbANcmOOlskIy\nzALh15OlTrWnhP95rf08AN2J026zDE2DUF9k0eCevYBQIDjqKNW4XCZnjbHoIcKzbY5VzPbMs3ZyMz8K\nSucBmgPg6wrSK5ykbkapS5vuqvXc9GbjQJ8bPNzoxoWGyjbZvDs2OBrIqBmcQb2DLJ8v38McQ4mC4UsS\njf4PyfSCtpk274QZjvLCZbLiCBxQegk7jUU0NmTFJAcYCxd9xMWdlFkiszcltT2YzwuFFz7iA6aa4n5L\nHpBNfUA01GcAi1aCMYhmooS4zSlYcSOZkovMz36U3Fd9WtqIEOJLi7HMgHQDgNMdK6DTzAdHQtxerxVF\nHJnPrfNVG7270r3bp0bPnLNYLhObbAn6zqSAUeLtI2Y4KJDjBKCAh2vvYGbu0e2REYJWRj7MkGevsSSy\nb1kCXLt6tKGWAb7lt5c0xyJgUIJW7pdtnwgT0ZCa24BecCAwNnG5U2EwQbcjZGsFxqNGfaemd3oFEhES\nBaE0Fxms9UKTnMafu8wvZ2xymMrUduuRzOjDeX7oD5YsLC88V8CGMLxbbxIpt94KGykbr6e7L0R4oZl1\ntKMgFwQ2p9Txdbp0Y293LcsJymKizqI0F2xEp7y4SmWOJqHZtsbz80wVV9nv41CvtfxuSoGZJ5cNB7pI\nBgzNcQCeH3Jt0RaGGwboxxpuFbzilmkMFXxJm87tD4WNgu01nHfGCKeQcySEBZpVfJgi6sDFJ8uWnvKm\n9mPLHurtWzEfKqUEa1iC71bXjw5wrvhv9BYW8JSUELHmDquftQyKdq0DZXhULMHGQLf4e95WIaoA14LL\nbThz77kuhKULPTu2MNrBUKGorurhGugo5gs4ZUezSsUOe3KxYdrFMdGgny1GgTxMSMTp2RAZytKjv4kQ\nVx7XgzvpQLIbDjUPAkJv6lScwIRq1W3Ne0Rh0V6Bmn6U5uIuWnJjULmbaQiSODj3z0mAZvak0mSWIGwT\nTX83HztcC4W7e1f6a1thmcc5K61Icehla2hBELWPpixTkyC4eEVmk9Rq0m0ZXtx0JX2ZQXqXDEyePyMe\nJ70sdSzXk72zusqhY4yuOMGgbYNHqxOToK6NxujR7e4dV3Wk5JnSUthym8scjcPeCiKDNY4cHfTMnDXJ\n9zLVy01LtNKYpJ1s8FxVxigmxQNKEbIamxhx6yqwGC4aiISVOOUEjvNOdaUfXfUsE6jEwtwxyGxjlRK1\ncLyxXttq4QWN6PehgHv7jXykzPjInbEysebFvvPOOMdunmJvcCNMSvjUda8fL6xfGo0FDrLg8XZipd6S\noPVdYtyIM1Dg40KbBA3JuumPYtXuJaHrZnjZmdnM5OVo4ZNxktfCVT0c6bnD4bAeyn4bYt1ZPaX6hQHh\nJtvNYfpD0ONYlmqKuToQAMlz52Fh6bj45EbX89L5eLlSpWeyBlGotzriB0EPlclrGi5l2B5oPb1aB1ag\nyyYuu44l0F1oOVYnBIZsxIsHVITxi9lEuVPFkWASOUNuVQXfM4n5hxWR9qtuKnIcPsvbJsv1U10XlKh3\nKisqPhHU15xrCLr5gwFxPUKiNTLUBrkzgBOHXPVsHcLCiSD0YU56TRGfvEom43TWUKPPfl9Z54tgVQuT\njCRlaljAzeniQIcbbHZnn3f0HxbDG3DFYqWSxNrXabHhRsIOhhUHSPENyhGSTVO5t0XX5CdMspJPCd02\n3Oqv32ccbUK4O3YH6LEvp0WO3kSl5n50odVkI9B0i0iq4UPFGMkM8bEQJbgJoOH71P10vtdevJFQE4g2\nyhimiM53ZJRWgSZveHtENZc0Gjo0F9eioak9BnPpY1QxAFPC817svuhEstcU69bLCA4D1rO5R8AuIIBq\nyQJcifFLvbpAEYTLKJqysZrU8EEl3TSdC13A9hZvk4NC8VGEDAxcNrKw313dZp17kZPO5HSd1y6sljAW\nA9M1d6FMYV5SlBWf3WZNCUPS7qKNlda2YBsC6IUVB363f5RLGQOQHwbaijBSRCkrVoRxBHtc0Bd5J9V9\nP5uMTXkpZOxRcCQvImGgcmGuxxLb5zTqfS2xu7v3Sf3IIesSt9tVzcEcdbEvLGVJkLk4mb3G30DbIbri\nPZ09JkweDvMaQ3bxT2nfkz3Ilihkw9jqikkCCCz7E8h6z6KbhQErEW9VzJZzMCgJsyPjFam6iNwpe07S\nhyOvNVw2t9wpzL5xM11DvVzQwDaWEytNRHzDBs4KwEtpI2IpjUyVZHSwA0UGqqkzoCgrJFlNOvPlXqcS\nIcREouUIBmuttkrhPWJtSxOOgpsdvBR3kTOzAXNzSKxoaBAb0c5SDMUc6FIyGA8x5wg5DkUgjFUUodEt\nOYaB2VHVePW9mxHeBTdKWLzJow4ZZvjnoBuVigXljKCNh137ckV2y3Yg3Xi4UzJEI2V5Rw9AfnMs7xUw\nVHOFCg189maD3bmZAe7b4eaGZhyy4HVKjqCXmIH7vsEjRvbnfB0SQxxpuqBDJbHNCtW4vM643ZQQBVPP\na7oXSQIq9w2dHp0A7dtkocCZdQp9FKR9XdJAFIbVSHzIF1ZogeZlc0pXuNE0tagvD57xwDRFkAuoQyMu\nYDdZasXrpSmEE5UjHVkyYsISn8QsfXurzDybX468aoRoks654jjmRY5zi1oB8TcMdC2c3sicNaqfeuhd\nH1nPX7l4RpdqWMR7gGx9slXtG8S3KxpOi4qCD7yg3saD66nun4dzksQURoTUdXyrJR5UpHsfIlTF1aJa\nMdXyQtQnrkl00TeghQd00rRFZsCnhi0qrCSKiBfB2EVrd9RPpbgwJGZHuIQecdBmNetc2ylSEClqVBPR\nGOPPIxrnswEZjmnS0jxKW9VSM1QVxSPJnPFswCqT95SoKD6CP4xdX28WIUGiNaIKodXXJHEIsXBCxLsr\nPwWPCtoplC6hhpKmW5dQo92iCTyY2KioKzO8XR6FKm6qonMKVEwQNtlYE9c97KMtEnp25VOdMP46SQXS\nYsSVp7vm8LP87VYI8SOKcW3s2oedYFtt45rvDzoTF0GmS6wELQ9uo98HhjQAI1Dt91cgjJOwygNmLoZE\nX5K2zQiNA163uMCl5xzaBqY4YTL0wgALg3IFdYSp0RFYLWdt6IxoGI1tnoxcjlUEPo5eGIc3mS3SmaLn\nOdumfUQQ4Jgmgaa5anUVQsfBDrlAN5oaX7O0JO71SSPSWiHBsT9WIPy2J1Cace9ZZLRxblFPSXcvsuHh\nhvnhWQltEDAe7MgvkFQ8lGVFa8jhzijoF9kLmMhMILSzYnfXnZPNP7TlAAwlLHK1RqlpHskJqb6CPpGP\nQvOAhEMsM3zJ2KejZx0esxkjxA0ZufVvGAMN3vTUMplQaF4RiQkp9fzBXf3CMk01dWjOMMIEXTeKzIQe\nEcffzjixWU9FpAyGp2rVl4ETRgqljOGw4UgK31r0ZIEGnH0xGz1FtbW1OcQM008JVujRqulCucEMmntr\n".to_owned()
  264    281   
            )
  265    282   
        )
  266    283   
        .send().await;
  267    284   
        let _ = dbg!(result);
  268    285   
        let http_request = request_receiver.expect_request();
  269    286   
        let expected_headers = [("Content-Encoding", "gzip")];
  270    287   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  271    288   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  272    289   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  273    290   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  274    291   
    }
  275    292   
  276    293   
    /// Compression algorithm encoding is appended to the Content-Encoding header, and the
  277    294   
    /// user-provided content-encoding is NOT in the Content-Encoding header since HTTP binding
  278    295   
    /// traits are ignored in the awsJson1_0 protocol.
  279    296   
    ///
  280    297   
    /// Test ID: SDKAppendsGzipAndIgnoresHttpProvidedEncoding_awsJson1_0
  281    298   
    #[::tokio::test]
  282    299   
    #[::tracing_test::traced_test]
  283    300   
    async fn sdk_appends_gzip_and_ignores_http_provided_encoding_aws_json1_0_request() {
  284    301   
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  285    302   
        let config_builder = crate::config::Config::builder().with_test_defaults().endpoint_url("https://example.com");
  286    303   
  287    304   
        let client = crate::Client::from_conf(config_builder.http_client(http_client).build());
  288    305   
        let result = client.put_with_content_encoding()
  289    306   
        .set_encoding(
  290    307   
            ::std::option::Option::Some(
  291    308   
                "custom".to_owned()
  292    309   
            )
  293    310   
        )
  294    311   
        .set_data(
  295    312   
            ::std::option::Option::Some(
  296    313   
                "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\n".to_owned()
  297    314   
            )
  298    315   
        )
  299    316   
        .send().await;
  300    317   
        let _ = dbg!(result);
  301    318   
        let http_request = request_receiver.expect_request();
  302    319   
        let expected_headers = [("Content-Encoding", "gzip")];
  303    320   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  304    321   
        let uri: ::http::Uri = http_request.uri().parse().expect("invalid URI sent");
  305    322   
        ::pretty_assertions::assert_eq!(http_request.method(), "POST", "method was incorrect");
  306    323   
        ::pretty_assertions::assert_eq!(uri.path(), "/", "path was incorrect");
  307    324   
    }
         325  +
         326  +
    /* ProtocolTestGenerator.kt:98 */
  308    327   
}
  309    328   
         329  +
/* OperationErrorGenerator.kt:79 */
  310    330   
/// Error type for the `PutWithContentEncodingError` operation.
         331  +
/* RustType.kt:516 */
  311    332   
#[non_exhaustive]
         333  +
/* RustType.kt:516 */
  312    334   
#[derive(::std::fmt::Debug)]
  313         -
pub enum PutWithContentEncodingError {
         335  +
pub /* OperationErrorGenerator.kt:81 */ enum PutWithContentEncodingError {
         336  +
    /* OperationErrorGenerator.kt:88 */
  314    337   
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  315    338   
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  316    339   
    variable wildcard pattern and check `.code()`:
  317    340   
     \
  318    341   
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  319    342   
     \
  320    343   
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-PutWithContentEncodingError) for what information is available for the error.")]
  321    344   
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         345  +
    /* OperationErrorGenerator.kt:81 */
  322    346   
}
         347  +
/* OperationErrorGenerator.kt:218 */
  323    348   
impl PutWithContentEncodingError {
         349  +
    /* OperationErrorGenerator.kt:219 */
  324    350   
    /// Creates the `PutWithContentEncodingError::Unhandled` variant from any error type.
  325    351   
    pub fn unhandled(
  326    352   
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  327    353   
    ) -> Self {
  328    354   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  329    355   
            source: err.into(),
  330    356   
            meta: ::std::default::Default::default(),
  331    357   
        })
  332    358   
    }
  333    359   
  334    360   
    /// Creates the `PutWithContentEncodingError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  335    361   
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  336    362   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  337    363   
            source: err.clone().into(),
  338    364   
            meta: err,
  339    365   
        })
  340    366   
    }
  341         -
    ///
         367  +
    /// /* OperationErrorGenerator.kt:236 */
  342    368   
    /// Returns error metadata, which includes the error code, message,
  343    369   
    /// request ID, and potentially additional information.
  344    370   
    ///
         371  +
    /* OperationErrorGenerator.kt:242 */
  345    372   
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         373  +
        /* OperationErrorGenerator.kt:243 */
  346    374   
        match self {
  347         -
            Self::Unhandled(e) => &e.meta,
         375  +
            /* OperationErrorGenerator.kt:251 */ Self::Unhandled(e) => &e.meta,
         376  +
            /* OperationErrorGenerator.kt:243 */
  348    377   
        }
         378  +
        /* OperationErrorGenerator.kt:242 */
  349    379   
    }
         380  +
    /* OperationErrorGenerator.kt:218 */
  350    381   
}
         382  +
/* OperationErrorGenerator.kt:269 */
  351    383   
impl ::std::error::Error for PutWithContentEncodingError {
         384  +
    /* OperationErrorGenerator.kt:270 */
  352    385   
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         386  +
        /* OperationErrorGenerator.kt:318 */
  353    387   
        match self {
  354         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         388  +
            /* OperationErrorGenerator.kt:326 */
         389  +
            Self::Unhandled(_inner) => {
         390  +
                /* OperationErrorGenerator.kt:279 */
         391  +
                ::std::option::Option::Some(&*_inner.source)
         392  +
                /* OperationErrorGenerator.kt:326 */
         393  +
            } /* OperationErrorGenerator.kt:318 */
  355    394   
        }
         395  +
        /* OperationErrorGenerator.kt:270 */
  356    396   
    }
         397  +
    /* OperationErrorGenerator.kt:269 */
  357    398   
}
         399  +
/* OperationErrorGenerator.kt:133 */
  358    400   
impl ::std::fmt::Display for PutWithContentEncodingError {
         401  +
    /* OperationErrorGenerator.kt:134 */
  359    402   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         403  +
        /* OperationErrorGenerator.kt:318 */
  360    404   
        match self {
         405  +
            /* OperationErrorGenerator.kt:326 */
  361    406   
            Self::Unhandled(_inner) => {
         407  +
                /* OperationErrorGenerator.kt:139 */
  362    408   
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  363    409   
                    write!(f, "unhandled error ({code})")
  364    410   
                } else {
  365    411   
                    f.write_str("unhandled error")
  366    412   
                }
  367         -
            }
         413  +
                /* OperationErrorGenerator.kt:326 */
         414  +
            } /* OperationErrorGenerator.kt:318 */
  368    415   
        }
         416  +
        /* OperationErrorGenerator.kt:134 */
  369    417   
    }
         418  +
    /* OperationErrorGenerator.kt:133 */
  370    419   
}
         420  +
/* OperationErrorGenerator.kt:182 */
  371    421   
impl ::aws_smithy_types::retry::ProvideErrorKind for PutWithContentEncodingError {
         422  +
    /* OperationErrorGenerator.kt:186 */
  372    423   
    fn code(&self) -> ::std::option::Option<&str> {
         424  +
        /* OperationErrorGenerator.kt:187 */
  373    425   
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         426  +
        /* OperationErrorGenerator.kt:186 */
  374    427   
    }
         428  +
    /* OperationErrorGenerator.kt:190 */
  375    429   
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         430  +
        /* OperationErrorGenerator.kt:197 */
  376    431   
        ::std::option::Option::None
         432  +
        /* OperationErrorGenerator.kt:190 */
  377    433   
    }
         434  +
    /* OperationErrorGenerator.kt:182 */
  378    435   
}
         436  +
/* OperationErrorGenerator.kt:163 */
  379    437   
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for PutWithContentEncodingError {
         438  +
    /* OperationErrorGenerator.kt:164 */
  380    439   
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         440  +
        /* OperationErrorGenerator.kt:318 */
  381    441   
        match self {
  382         -
            Self::Unhandled(_inner) => &_inner.meta,
         442  +
            /* OperationErrorGenerator.kt:326 */
         443  +
            Self::Unhandled(_inner) => {
         444  +
                /* OperationErrorGenerator.kt:168 */
         445  +
                &_inner.meta
         446  +
                /* OperationErrorGenerator.kt:326 */
         447  +
            } /* OperationErrorGenerator.kt:318 */
  383    448   
        }
         449  +
        /* OperationErrorGenerator.kt:164 */
  384    450   
    }
         451  +
    /* OperationErrorGenerator.kt:163 */
  385    452   
}
         453  +
/* OperationErrorGenerator.kt:109 */
  386    454   
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for PutWithContentEncodingError {
         455  +
    /* OperationErrorGenerator.kt:110 */
  387    456   
    fn create_unhandled_error(
  388    457   
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  389    458   
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  390    459   
    ) -> Self {
         460  +
        /* OperationErrorGenerator.kt:121 */
  391    461   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  392    462   
            source,
  393    463   
            meta: meta.unwrap_or_default(),
  394    464   
        })
         465  +
        /* OperationErrorGenerator.kt:110 */
  395    466   
    }
         467  +
    /* OperationErrorGenerator.kt:109 */
  396    468   
}
  397    469   
         470  +
/* CodegenDelegator.kt:255 */
  398    471   
pub use crate::operation::put_with_content_encoding::_put_with_content_encoding_output::PutWithContentEncodingOutput;
  399    472   
         473  +
/* CodegenDelegator.kt:255 */
  400    474   
pub use crate::operation::put_with_content_encoding::_put_with_content_encoding_input::PutWithContentEncodingInput;
  401    475   
         476  +
/* RustModule.kt:172 */
  402    477   
mod _put_with_content_encoding_input;
  403    478   
         479  +
/* RustModule.kt:172 */
  404    480   
mod _put_with_content_encoding_output;
  405    481   
  406         -
/// Builders
         482  +
/// /* CodegenDelegator.kt:51 */Builders
  407    483   
pub mod builders;