Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_global_tables/builders.rs

@@ -1,1 +158,179 @@
    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::list_global_tables::_list_global_tables_output::ListGlobalTablesOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::list_global_tables::_list_global_tables_input::ListGlobalTablesInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::list_global_tables::builders::ListGlobalTablesInputBuilder {
    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::list_global_tables::ListGlobalTablesOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::list_global_tables::ListGlobalTablesError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.list_global_tables();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `ListGlobalTables`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `ListGlobalTables`.
   24     27   
///
   25         -
/// <p>Lists all global tables that have a replica in the specified Region.</p><note>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>Lists all global tables that have a replica in the specified Region.</p><note>
   26     29   
/// <p>This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html">Version 2017.11.29</a> of global tables.</p>
   27     30   
/// </note>
          31  +
/* RustType.kt:516 */
   28     32   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          33  +
/* FluentBuilderGenerator.kt:270 */
   29     34   
pub struct ListGlobalTablesFluentBuilder {
   30     35   
    handle: ::std::sync::Arc<crate::client::Handle>,
   31     36   
    inner: crate::operation::list_global_tables::builders::ListGlobalTablesInputBuilder,
   32     37   
    config_override: ::std::option::Option<crate::config::Builder>,
   33     38   
}
          39  +
/* FluentBuilderGenerator.kt:381 */
   34     40   
impl
   35     41   
    crate::client::customize::internal::CustomizableSend<
   36     42   
        crate::operation::list_global_tables::ListGlobalTablesOutput,
   37     43   
        crate::operation::list_global_tables::ListGlobalTablesError,
   38     44   
    > for ListGlobalTablesFluentBuilder
   39     45   
{
   40     46   
    fn send(
   41     47   
        self,
   42     48   
        config_override: crate::config::Builder,
   43     49   
    ) -> crate::client::customize::internal::BoxFuture<
   44     50   
        crate::client::customize::internal::SendResult<
   45     51   
            crate::operation::list_global_tables::ListGlobalTablesOutput,
   46     52   
            crate::operation::list_global_tables::ListGlobalTablesError,
   47     53   
        >,
   48     54   
    > {
   49     55   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   50     56   
    }
   51     57   
}
          58  +
/* FluentBuilderGenerator.kt:282 */
   52     59   
impl ListGlobalTablesFluentBuilder {
          60  +
    /* FluentBuilderGenerator.kt:288 */
   53     61   
    /// Creates a new `ListGlobalTablesFluentBuilder`.
   54     62   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   55     63   
        Self {
   56     64   
            handle,
   57     65   
            inner: ::std::default::Default::default(),
   58     66   
            config_override: ::std::option::Option::None,
   59     67   
        }
   60     68   
    }
          69  +
    /* FluentBuilderGenerator.kt:301 */
   61     70   
    /// Access the ListGlobalTables as a reference.
   62     71   
    pub fn as_input(&self) -> &crate::operation::list_global_tables::builders::ListGlobalTablesInputBuilder {
   63     72   
        &self.inner
   64     73   
    }
          74  +
    /* FluentBuilderGenerator.kt:145 */
   65     75   
    /// Sends the request and returns the response.
   66     76   
    ///
   67     77   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   68     78   
    /// can be matched against.
   69     79   
    ///
   70     80   
    /// By default, any retryable failures will be retried twice. Retry behavior
   71     81   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   72     82   
    /// set when configuring the client.
   73     83   
    pub async fn send(
   74     84   
        self,
   75     85   
    ) -> ::std::result::Result<
   76     86   
        crate::operation::list_global_tables::ListGlobalTablesOutput,
   77     87   
        ::aws_smithy_runtime_api::client::result::SdkError<
   78     88   
            crate::operation::list_global_tables::ListGlobalTablesError,
   79     89   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   80     90   
        >,
   81     91   
    > {
   82     92   
        let input = self
   83     93   
            .inner
   84     94   
            .build()
   85     95   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   86     96   
        let runtime_plugins = crate::operation::list_global_tables::ListGlobalTables::operation_runtime_plugins(
   87     97   
            self.handle.runtime_plugins.clone(),
   88     98   
            &self.handle.conf,
   89     99   
            self.config_override,
   90    100   
        );
   91    101   
        crate::operation::list_global_tables::ListGlobalTables::orchestrate(&runtime_plugins, input).await
   92    102   
    }
   93    103   
   94    104   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   95    105   
    pub fn customize(
   96    106   
        self,
   97    107   
    ) -> crate::client::customize::CustomizableOperation<
   98    108   
        crate::operation::list_global_tables::ListGlobalTablesOutput,
   99    109   
        crate::operation::list_global_tables::ListGlobalTablesError,
  100    110   
        Self,
  101    111   
    > {
  102    112   
        crate::client::customize::CustomizableOperation::new(self)
  103    113   
    }
         114  +
    /* FluentBuilderGenerator.kt:315 */
  104    115   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  105    116   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  106    117   
        self
  107    118   
    }
  108    119   
  109    120   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  110    121   
        self.config_override = config_override;
  111    122   
        self
  112    123   
    }
  113         -
    /// <p>The first global table name that this operation will evaluate.</p>
         124  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The first global table name that this operation will evaluate.</p>
         125  +
    /* FluentBuilderGenerator.kt:500 */
  114    126   
    pub fn exclusive_start_global_table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  115    127   
        self.inner = self.inner.exclusive_start_global_table_name(input.into());
  116    128   
        self
  117    129   
    }
  118         -
    /// <p>The first global table name that this operation will evaluate.</p>
         130  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The first global table name that this operation will evaluate.</p>
         131  +
    /* FluentBuilderGenerator.kt:500 */
  119    132   
    pub fn set_exclusive_start_global_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  120    133   
        self.inner = self.inner.set_exclusive_start_global_table_name(input);
  121    134   
        self
  122    135   
    }
  123         -
    /// <p>The first global table name that this operation will evaluate.</p>
         136  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The first global table name that this operation will evaluate.</p>
         137  +
    /* FluentBuilderGenerator.kt:520 */
  124    138   
    pub fn get_exclusive_start_global_table_name(&self) -> &::std::option::Option<::std::string::String> {
  125    139   
        self.inner.get_exclusive_start_global_table_name()
  126    140   
    }
  127         -
    /// <p>The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100.</p>
         141  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100.</p>
  128    142   
    /// <p>If the number of global tables DynamoDB finds reaches this limit, it stops the operation and returns the table names collected up to that point, with a table name in the <code>LastEvaluatedGlobalTableName</code> to apply in a subsequent operation to the <code>ExclusiveStartGlobalTableName</code> parameter.</p>
         143  +
    /* FluentBuilderGenerator.kt:500 */
  129    144   
    pub fn limit(mut self, input: i32) -> Self {
  130    145   
        self.inner = self.inner.limit(input);
  131    146   
        self
  132    147   
    }
  133         -
    /// <p>The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100.</p>
         148  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100.</p>
  134    149   
    /// <p>If the number of global tables DynamoDB finds reaches this limit, it stops the operation and returns the table names collected up to that point, with a table name in the <code>LastEvaluatedGlobalTableName</code> to apply in a subsequent operation to the <code>ExclusiveStartGlobalTableName</code> parameter.</p>
         150  +
    /* FluentBuilderGenerator.kt:500 */
  135    151   
    pub fn set_limit(mut self, input: ::std::option::Option<i32>) -> Self {
  136    152   
        self.inner = self.inner.set_limit(input);
  137    153   
        self
  138    154   
    }
  139         -
    /// <p>The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100.</p>
         155  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100.</p>
  140    156   
    /// <p>If the number of global tables DynamoDB finds reaches this limit, it stops the operation and returns the table names collected up to that point, with a table name in the <code>LastEvaluatedGlobalTableName</code> to apply in a subsequent operation to the <code>ExclusiveStartGlobalTableName</code> parameter.</p>
         157  +
    /* FluentBuilderGenerator.kt:520 */
  141    158   
    pub fn get_limit(&self) -> &::std::option::Option<i32> {
  142    159   
        self.inner.get_limit()
  143    160   
    }
  144         -
    /// <p>Lists the global tables in a specific Region.</p>
         161  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Lists the global tables in a specific Region.</p>
         162  +
    /* FluentBuilderGenerator.kt:500 */
  145    163   
    pub fn region_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  146    164   
        self.inner = self.inner.region_name(input.into());
  147    165   
        self
  148    166   
    }
  149         -
    /// <p>Lists the global tables in a specific Region.</p>
         167  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Lists the global tables in a specific Region.</p>
         168  +
    /* FluentBuilderGenerator.kt:500 */
  150    169   
    pub fn set_region_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  151    170   
        self.inner = self.inner.set_region_name(input);
  152    171   
        self
  153    172   
    }
  154         -
    /// <p>Lists the global tables in a specific Region.</p>
         173  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Lists the global tables in a specific Region.</p>
         174  +
    /* FluentBuilderGenerator.kt:520 */
  155    175   
    pub fn get_region_name(&self) -> &::std::option::Option<::std::string::String> {
  156    176   
        self.inner.get_region_name()
  157    177   
    }
         178  +
    /* FluentBuilderGenerator.kt:282 */
  158    179   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tables.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 `ListTables`.
           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 ListTables;
          10  +
/* OperationGenerator.kt:85 */
    6     11   
impl ListTables {
    7         -
    /// Creates a new `ListTables`
          12  +
    /// /* OperationGenerator.kt:86 */Creates a new `ListTables`
          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::list_tables::ListTablesInput,
   14     23   
    ) -> ::std::result::Result<
   15     24   
        crate::operation::list_tables::ListTablesOutput,
   16     25   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     26   
            crate::operation::list_tables::ListTablesError,
   18     27   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     28   
        >,
   20     29   
    > {
@@ -57,66 +352,472 @@
   77     86   
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
   78     87   
            }
   79     88   
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
   80     89   
                config_override,
   81     90   
                client_config.config.clone(),
   82     91   
                &client_config.runtime_components,
   83     92   
            ));
   84     93   
        }
   85     94   
        runtime_plugins
   86     95   
    }
          96  +
    /* OperationGenerator.kt:85 */
   87     97   
}
          98  +
/* OperationRuntimePluginGenerator.kt:55 */
   88     99   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ListTables {
   89    100   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
   90    101   
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("ListTables");
   91    102   
   92    103   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
   93    104   
            ListTablesRequestSerializer,
   94    105   
        ));
   95    106   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
   96    107   
            ListTablesResponseDeserializer,
   97    108   
        ));
   98    109   
   99    110   
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
  100    111   
            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
  101    112   
        ));
  102    113   
  103    114   
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("ListTables", "DynamoDB"));
  104    115   
  105    116   
        ::std::option::Option::Some(cfg.freeze())
  106    117   
    }
  107    118   
  108    119   
    fn runtime_components(
  109    120   
        &self,
  110    121   
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
  111    122   
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
  112    123   
        #[allow(unused_mut)]
  113    124   
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("ListTables")
  114    125   
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  115    126   
            .with_interceptor(ListTablesEndpointParamsInterceptor)
  116    127   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  117    128   
                crate::operation::list_tables::ListTablesError,
  118    129   
            >::new())
  119    130   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  120    131   
                crate::operation::list_tables::ListTablesError,
  121    132   
            >::new());
  122    133   
  123    134   
        ::std::borrow::Cow::Owned(rcb)
  124    135   
    }
  125    136   
}
  126    137   
         138  +
/* ResponseDeserializerGenerator.kt:64 */
  127    139   
#[derive(Debug)]
  128    140   
struct ListTablesResponseDeserializer;
  129    141   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListTablesResponseDeserializer {
  130    142   
    fn deserialize_nonstreaming(
  131    143   
        &self,
  132    144   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  133    145   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  134    146   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  135    147   
        let headers = response.headers();
  136    148   
        let body = response.body().bytes().expect("body loaded");
  137    149   
        #[allow(unused_mut)]
  138    150   
        let mut force_error = false;
  139    151   
  140    152   
        let parse_result = if !success && status != 200 || force_error {
  141    153   
            crate::protocol_serde::shape_list_tables::de_list_tables_http_error(status, headers, body)
  142    154   
        } else {
  143    155   
            crate::protocol_serde::shape_list_tables::de_list_tables_http_response(status, headers, body)
  144    156   
        };
  145    157   
        crate::protocol_serde::type_erase_result(parse_result)
  146    158   
    }
  147    159   
}
         160  +
/* RequestSerializerGenerator.kt:67 */
  148    161   
#[derive(Debug)]
  149    162   
struct ListTablesRequestSerializer;
  150    163   
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for ListTablesRequestSerializer {
  151    164   
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
  152    165   
    fn serialize_input(
  153    166   
        &self,
  154    167   
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
  155    168   
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  156    169   
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
  157    170   
        let input = input.downcast::<crate::operation::list_tables::ListTablesInput>().expect("correct type");
  158    171   
        let _header_serialization_settings = _cfg
  159    172   
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
  160    173   
            .cloned()
  161    174   
            .unwrap_or_default();
  162    175   
        let mut request_builder = {
  163    176   
            fn uri_base(
  164    177   
                _input: &crate::operation::list_tables::ListTablesInput,
  165    178   
                output: &mut ::std::string::String,
  166    179   
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  167    180   
                use ::std::fmt::Write as _;
  168    181   
                ::std::write!(output, "/").expect("formatting should succeed");
  169    182   
                ::std::result::Result::Ok(())
  170    183   
            }
  171    184   
            #[allow(clippy::unnecessary_wraps)]
  172    185   
            fn update_http_builder(
  173    186   
                input: &crate::operation::list_tables::ListTablesInput,
  174    187   
                builder: ::http::request::Builder,
  175    188   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  176    189   
                let mut uri = ::std::string::String::new();
  177    190   
                uri_base(input, &mut uri)?;
  178    191   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  179    192   
            }
  180    193   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  181    194   
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
  182    195   
            builder = _header_serialization_settings.set_default_header(
  183    196   
                builder,
  184    197   
                ::http::header::HeaderName::from_static("x-amz-target"),
  185    198   
                "DynamoDB_20120810.ListTables",
  186    199   
            );
  187    200   
            builder
  188    201   
        };
  189    202   
        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_list_tables::ser_list_tables_input(&input)?);
  190    203   
        if let Some(content_length) = body.content_length() {
  191    204   
            let content_length = content_length.to_string();
  192    205   
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  193    206   
        }
  194    207   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  195    208   
    }
  196    209   
}
         210  +
/* EndpointParamsInterceptorGenerator.kt:86 */
  197    211   
#[derive(Debug)]
  198    212   
struct ListTablesEndpointParamsInterceptor;
  199    213   
  200    214   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for ListTablesEndpointParamsInterceptor {
  201    215   
    fn name(&self) -> &'static str {
  202    216   
        "ListTablesEndpointParamsInterceptor"
  203    217   
    }
  204    218   
  205    219   
    fn read_before_execution(
  206    220   
        &self,
  207    221   
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  208    222   
            '_,
  209    223   
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  210    224   
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  211    225   
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  212    226   
        >,
  213    227   
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  214    228   
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  215    229   
        let _input = context
  216    230   
            .input()
  217    231   
            .downcast_ref::<ListTablesInput>()
  218    232   
            .ok_or("failed to downcast to ListTablesInput")?;
  219    233   
  220    234   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  221    235   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  222    236   
        })?;
  223    237   
        cfg.interceptor_state()
  224    238   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  225    239   
        ::std::result::Result::Ok(())
  226    240   
    }
  227    241   
}
  228    242   
  229    243   
// The get_* functions below are generated from JMESPath expressions in the
  230    244   
// operationContextParams trait. They target the operation's input shape.
  231    245   
         246  +
/* OperationErrorGenerator.kt:79 */
  232    247   
/// Error type for the `ListTablesError` operation.
         248  +
/* RustType.kt:516 */
  233    249   
#[non_exhaustive]
         250  +
/* RustType.kt:516 */
  234    251   
#[derive(::std::fmt::Debug)]
  235         -
pub enum ListTablesError {
  236         -
    /// <p>An error occurred on the server side.</p>
         252  +
pub /* OperationErrorGenerator.kt:81 */ enum ListTablesError {
         253  +
    /// /* OperationErrorGenerator.kt:83 */<p>An error occurred on the server side.</p>
         254  +
    /* OperationErrorGenerator.kt:86 */
  237    255   
    InternalServerError(crate::types::error::InternalServerError),
         256  +
    /* OperationErrorGenerator.kt:83 */
  238    257   
    #[allow(missing_docs)] // documentation missing in model
         258  +
    /* OperationErrorGenerator.kt:86 */
  239    259   
    InvalidEndpointError(crate::types::error::InvalidEndpointError),
         260  +
    /* OperationErrorGenerator.kt:88 */
  240    261   
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  241    262   
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  242    263   
    variable wildcard pattern and check `.code()`:
  243    264   
     \
  244    265   
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  245    266   
     \
  246    267   
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-ListTablesError) for what information is available for the error.")]
  247    268   
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         269  +
    /* OperationErrorGenerator.kt:81 */
  248    270   
}
         271  +
/* OperationErrorGenerator.kt:218 */
  249    272   
impl ListTablesError {
         273  +
    /* OperationErrorGenerator.kt:219 */
  250    274   
    /// Creates the `ListTablesError::Unhandled` variant from any error type.
  251    275   
    pub fn unhandled(
  252    276   
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  253    277   
    ) -> Self {
  254    278   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  255    279   
            source: err.into(),
  256    280   
            meta: ::std::default::Default::default(),
  257    281   
        })
  258    282   
    }
  259    283   
  260    284   
    /// Creates the `ListTablesError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  261    285   
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  262    286   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  263    287   
            source: err.clone().into(),
  264    288   
            meta: err,
  265    289   
        })
  266    290   
    }
  267         -
    ///
         291  +
    /// /* OperationErrorGenerator.kt:236 */
  268    292   
    /// Returns error metadata, which includes the error code, message,
  269    293   
    /// request ID, and potentially additional information.
  270    294   
    ///
         295  +
    /* OperationErrorGenerator.kt:242 */
  271    296   
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         297  +
        /* OperationErrorGenerator.kt:243 */
  272    298   
        match self {
         299  +
            /* OperationErrorGenerator.kt:246 */
  273    300   
            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         301  +
            /* OperationErrorGenerator.kt:246 */
  274    302   
            Self::InvalidEndpointError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
  275         -
            Self::Unhandled(e) => &e.meta,
         303  +
            /* OperationErrorGenerator.kt:251 */ Self::Unhandled(e) => &e.meta,
         304  +
            /* OperationErrorGenerator.kt:243 */
  276    305   
        }
         306  +
        /* OperationErrorGenerator.kt:242 */
  277    307   
    }
         308  +
    /* OperationErrorGenerator.kt:257 */
  278    309   
    /// Returns `true` if the error kind is `ListTablesError::InternalServerError`.
         310  +
    /* OperationErrorGenerator.kt:258 */
  279    311   
    pub fn is_internal_server_error(&self) -> bool {
         312  +
        /* OperationErrorGenerator.kt:259 */
  280    313   
        matches!(self, Self::InternalServerError(_))
         314  +
        /* OperationErrorGenerator.kt:258 */
  281    315   
    }
         316  +
    /* OperationErrorGenerator.kt:257 */
  282    317   
    /// Returns `true` if the error kind is `ListTablesError::InvalidEndpointError`.
         318  +
    /* OperationErrorGenerator.kt:258 */
  283    319   
    pub fn is_invalid_endpoint_error(&self) -> bool {
         320  +
        /* OperationErrorGenerator.kt:259 */
  284    321   
        matches!(self, Self::InvalidEndpointError(_))
         322  +
        /* OperationErrorGenerator.kt:258 */
  285    323   
    }
         324  +
    /* OperationErrorGenerator.kt:218 */
  286    325   
}
         326  +
/* OperationErrorGenerator.kt:269 */
  287    327   
impl ::std::error::Error for ListTablesError {
         328  +
    /* OperationErrorGenerator.kt:270 */
  288    329   
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         330  +
        /* OperationErrorGenerator.kt:318 */
  289    331   
        match self {
  290         -
            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
  291         -
            Self::InvalidEndpointError(_inner) => ::std::option::Option::Some(_inner),
  292         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         332  +
            /* OperationErrorGenerator.kt:321 */
         333  +
            Self::InternalServerError(_inner) =>
         334  +
            /* OperationErrorGenerator.kt:283 */
         335  +
            {
         336  +
                ::std::option::Option::Some(_inner)
         337  +
            }
         338  +
            ,
         339  +
            /* OperationErrorGenerator.kt:321 */
         340  +
            Self::InvalidEndpointError(_inner) =>
         341  +
            /* OperationErrorGenerator.kt:283 */
         342  +
            {
         343  +
                ::std::option::Option::Some(_inner)
         344  +
            }
         345  +
            ,
         346  +
            /* OperationErrorGenerator.kt:326 */
         347  +
            Self::Unhandled(_inner) => {
         348  +
                /* OperationErrorGenerator.kt:279 */
         349  +
                ::std::option::Option::Some(&*_inner.source)
         350  +
                /* OperationErrorGenerator.kt:326 */
         351  +
            } /* OperationErrorGenerator.kt:318 */
  293    352   
        }
         353  +
        /* OperationErrorGenerator.kt:270 */
  294    354   
    }
         355  +
    /* OperationErrorGenerator.kt:269 */
  295    356   
}
         357  +
/* OperationErrorGenerator.kt:133 */
  296    358   
impl ::std::fmt::Display for ListTablesError {
         359  +
    /* OperationErrorGenerator.kt:134 */
  297    360   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         361  +
        /* OperationErrorGenerator.kt:318 */
  298    362   
        match self {
  299         -
            Self::InternalServerError(_inner) => _inner.fmt(f),
  300         -
            Self::InvalidEndpointError(_inner) => _inner.fmt(f),
         363  +
            /* OperationErrorGenerator.kt:321 */
         364  +
            Self::InternalServerError(_inner) =>
         365  +
            /* OperationErrorGenerator.kt:151 */
         366  +
            {
         367  +
                _inner.fmt(f)
         368  +
            }
         369  +
            ,
         370  +
            /* OperationErrorGenerator.kt:321 */
         371  +
            Self::InvalidEndpointError(_inner) =>
         372  +
            /* OperationErrorGenerator.kt:151 */
         373  +
            {
         374  +
                _inner.fmt(f)
         375  +
            }
         376  +
            ,
         377  +
            /* OperationErrorGenerator.kt:326 */
  301    378   
            Self::Unhandled(_inner) => {
         379  +
                /* OperationErrorGenerator.kt:139 */
  302    380   
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  303    381   
                    write!(f, "unhandled error ({code})")
  304    382   
                } else {
  305    383   
                    f.write_str("unhandled error")
  306    384   
                }
  307         -
            }
         385  +
                /* OperationErrorGenerator.kt:326 */
         386  +
            } /* OperationErrorGenerator.kt:318 */
  308    387   
        }
         388  +
        /* OperationErrorGenerator.kt:134 */
  309    389   
    }
         390  +
    /* OperationErrorGenerator.kt:133 */
  310    391   
}
         392  +
/* OperationErrorGenerator.kt:182 */
  311    393   
impl ::aws_smithy_types::retry::ProvideErrorKind for ListTablesError {
         394  +
    /* OperationErrorGenerator.kt:186 */
  312    395   
    fn code(&self) -> ::std::option::Option<&str> {
         396  +
        /* OperationErrorGenerator.kt:187 */
  313    397   
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         398  +
        /* OperationErrorGenerator.kt:186 */
  314    399   
    }
         400  +
    /* OperationErrorGenerator.kt:190 */
  315    401   
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         402  +
        /* OperationErrorGenerator.kt:197 */
  316    403   
        ::std::option::Option::None
         404  +
        /* OperationErrorGenerator.kt:190 */
  317    405   
    }
         406  +
    /* OperationErrorGenerator.kt:182 */
  318    407   
}
         408  +
/* OperationErrorGenerator.kt:163 */
  319    409   
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for ListTablesError {
         410  +
    /* OperationErrorGenerator.kt:164 */
  320    411   
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         412  +
        /* OperationErrorGenerator.kt:318 */
  321    413   
        match self {
  322         -
            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  323         -
            Self::InvalidEndpointError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  324         -
            Self::Unhandled(_inner) => &_inner.meta,
         414  +
            /* OperationErrorGenerator.kt:321 */
         415  +
            Self::InternalServerError(_inner) =>
         416  +
            /* OperationErrorGenerator.kt:169 */
         417  +
            {
         418  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         419  +
            }
         420  +
            ,
         421  +
            /* OperationErrorGenerator.kt:321 */
         422  +
            Self::InvalidEndpointError(_inner) =>
         423  +
            /* OperationErrorGenerator.kt:169 */
         424  +
            {
         425  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         426  +
            }
         427  +
            ,
         428  +
            /* OperationErrorGenerator.kt:326 */
         429  +
            Self::Unhandled(_inner) => {
         430  +
                /* OperationErrorGenerator.kt:168 */
         431  +
                &_inner.meta
         432  +
                /* OperationErrorGenerator.kt:326 */
         433  +
            } /* OperationErrorGenerator.kt:318 */
  325    434   
        }
         435  +
        /* OperationErrorGenerator.kt:164 */
  326    436   
    }
         437  +
    /* OperationErrorGenerator.kt:163 */
  327    438   
}
         439  +
/* OperationErrorGenerator.kt:109 */
  328    440   
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for ListTablesError {
         441  +
    /* OperationErrorGenerator.kt:110 */
  329    442   
    fn create_unhandled_error(
  330    443   
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  331    444   
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  332    445   
    ) -> Self {
         446  +
        /* OperationErrorGenerator.kt:121 */
  333    447   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  334    448   
            source,
  335    449   
            meta: meta.unwrap_or_default(),
  336    450   
        })
         451  +
        /* OperationErrorGenerator.kt:110 */
  337    452   
    }
         453  +
    /* OperationErrorGenerator.kt:109 */
  338    454   
}
  339    455   
         456  +
/* CodegenDelegator.kt:255 */
  340    457   
pub use crate::operation::list_tables::_list_tables_output::ListTablesOutput;
  341    458   
         459  +
/* CodegenDelegator.kt:255 */
  342    460   
pub use crate::operation::list_tables::_list_tables_input::ListTablesInput;
  343    461   
         462  +
/* RustModule.kt:172 */
  344    463   
mod _list_tables_input;
  345    464   
         465  +
/* RustModule.kt:172 */
  346    466   
mod _list_tables_output;
  347    467   
  348         -
/// Builders
         468  +
/// /* CodegenDelegator.kt:51 */Builders
  349    469   
pub mod builders;
  350    470   
  351         -
/// Paginator for this operation
         471  +
/// /* CodegenDelegator.kt:51 */Paginator for this operation
  352    472   
pub mod paginator;

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tables/_list_tables_input.rs

@@ -1,1 +72,122 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the input of a <code>ListTables</code> operation.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the input of a <code>ListTables</code> operation.</p>
           4  +
/* RustType.kt:516 */
    4      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    5      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct ListTablesInput {
    7         -
    /// <p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct ListTablesInput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
    8     10   
    pub exclusive_start_table_name: ::std::option::Option<::std::string::String>,
    9         -
    /// <p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
   10     12   
    pub limit: ::std::option::Option<i32>,
          13  +
    /* StructureGenerator.kt:201 */
   11     14   
}
          15  +
/* StructureGenerator.kt:135 */
   12     16   
impl ListTablesInput {
   13         -
    /// <p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
          18  +
    /* StructureGenerator.kt:166 */
   14     19   
    pub fn exclusive_start_table_name(&self) -> ::std::option::Option<&str> {
          20  +
        /* StructureGenerator.kt:169 */
   15     21   
        self.exclusive_start_table_name.as_deref()
          22  +
        /* StructureGenerator.kt:166 */
   16     23   
    }
   17         -
    /// <p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
          25  +
    /* StructureGenerator.kt:166 */
   18     26   
    pub fn limit(&self) -> ::std::option::Option<i32> {
          27  +
        /* StructureGenerator.kt:168 */
   19     28   
        self.limit
          29  +
        /* StructureGenerator.kt:166 */
   20     30   
    }
          31  +
    /* StructureGenerator.kt:135 */
   21     32   
}
          33  +
/* ClientCodegenVisitor.kt:237 */
   22     34   
impl ListTablesInput {
   23         -
    /// Creates a new builder-style object to manufacture [`ListTablesInput`](crate::operation::list_tables::ListTablesInput).
          35  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`ListTablesInput`](crate::operation::list_tables::ListTablesInput).
          36  +
    /* BuilderGenerator.kt:175 */
   24     37   
    pub fn builder() -> crate::operation::list_tables::builders::ListTablesInputBuilder {
          38  +
        /* BuilderGenerator.kt:176 */
   25     39   
        crate::operation::list_tables::builders::ListTablesInputBuilder::default()
          40  +
        /* BuilderGenerator.kt:175 */
   26     41   
    }
          42  +
    /* ClientCodegenVisitor.kt:237 */
   27     43   
}
   28     44   
   29         -
/// A builder for [`ListTablesInput`](crate::operation::list_tables::ListTablesInput).
          45  +
/// /* BuilderGenerator.kt:342 */A builder for [`ListTablesInput`](crate::operation::list_tables::ListTablesInput).
          46  +
/* RustType.kt:516 */
   30     47   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          48  +
/* RustType.kt:516 */
   31     49   
#[non_exhaustive]
          50  +
/* BuilderGenerator.kt:345 */
   32     51   
pub struct ListTablesInputBuilder {
   33         -
    pub(crate) exclusive_start_table_name: ::std::option::Option<::std::string::String>,
   34         -
    pub(crate) limit: ::std::option::Option<i32>,
          52  +
    /* BuilderGenerator.kt:275 */ pub(crate) exclusive_start_table_name: ::std::option::Option<::std::string::String>,
          53  +
    /* BuilderGenerator.kt:275 */ pub(crate) limit: ::std::option::Option<i32>,
          54  +
    /* BuilderGenerator.kt:345 */
   35     55   
}
          56  +
/* BuilderGenerator.kt:355 */
   36     57   
impl ListTablesInputBuilder {
   37         -
    /// <p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
          58  +
    /// /* BuilderGenerator.kt:286 */<p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
          59  +
    /* BuilderGenerator.kt:291 */
   38     60   
    pub fn exclusive_start_table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          61  +
        /* BuilderGenerator.kt:292 */
   39     62   
        self.exclusive_start_table_name = ::std::option::Option::Some(input.into());
          63  +
        /* BuilderGenerator.kt:293 */
   40     64   
        self
          65  +
        /* BuilderGenerator.kt:291 */
   41     66   
    }
   42         -
    /// <p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
          67  +
    /// /* BuilderGenerator.kt:312 */<p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
          68  +
    /* BuilderGenerator.kt:314 */
   43     69   
    pub fn set_exclusive_start_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          70  +
        /* BuilderGenerator.kt:315 */
   44     71   
        self.exclusive_start_table_name = input;
   45     72   
        self
          73  +
        /* BuilderGenerator.kt:314 */
   46     74   
    }
   47         -
    /// <p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
          75  +
    /// /* BuilderGenerator.kt:334 */<p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
          76  +
    /* BuilderGenerator.kt:336 */
   48     77   
    pub fn get_exclusive_start_table_name(&self) -> &::std::option::Option<::std::string::String> {
          78  +
        /* BuilderGenerator.kt:337 */
   49     79   
        &self.exclusive_start_table_name
          80  +
        /* BuilderGenerator.kt:336 */
   50     81   
    }
   51         -
    /// <p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
          82  +
    /// /* BuilderGenerator.kt:286 */<p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
          83  +
    /* BuilderGenerator.kt:291 */
   52     84   
    pub fn limit(mut self, input: i32) -> Self {
          85  +
        /* BuilderGenerator.kt:292 */
   53     86   
        self.limit = ::std::option::Option::Some(input);
          87  +
        /* BuilderGenerator.kt:293 */
   54     88   
        self
          89  +
        /* BuilderGenerator.kt:291 */
   55     90   
    }
   56         -
    /// <p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
          91  +
    /// /* BuilderGenerator.kt:312 */<p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
          92  +
    /* BuilderGenerator.kt:314 */
   57     93   
    pub fn set_limit(mut self, input: ::std::option::Option<i32>) -> Self {
          94  +
        /* BuilderGenerator.kt:315 */
   58     95   
        self.limit = input;
   59     96   
        self
          97  +
        /* BuilderGenerator.kt:314 */
   60     98   
    }
   61         -
    /// <p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
          99  +
    /// /* BuilderGenerator.kt:334 */<p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
         100  +
    /* BuilderGenerator.kt:336 */
   62    101   
    pub fn get_limit(&self) -> &::std::option::Option<i32> {
         102  +
        /* BuilderGenerator.kt:337 */
   63    103   
        &self.limit
         104  +
        /* BuilderGenerator.kt:336 */
   64    105   
    }
   65         -
    /// Consumes the builder and constructs a [`ListTablesInput`](crate::operation::list_tables::ListTablesInput).
         106  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`ListTablesInput`](crate::operation::list_tables::ListTablesInput).
         107  +
    /* BuilderGenerator.kt:253 */
   66    108   
    pub fn build(self) -> ::std::result::Result<crate::operation::list_tables::ListTablesInput, ::aws_smithy_types::error::operation::BuildError> {
   67         -
        ::std::result::Result::Ok(crate::operation::list_tables::ListTablesInput {
   68         -
            exclusive_start_table_name: self.exclusive_start_table_name,
   69         -
            limit: self.limit,
   70         -
        })
         109  +
        /* BuilderGenerator.kt:254 */
         110  +
        ::std::result::Result::Ok(
         111  +
            /* BuilderGenerator.kt:477 */
         112  +
            crate::operation::list_tables::ListTablesInput {
         113  +
                /* BuilderGenerator.kt:481 */ exclusive_start_table_name: self.exclusive_start_table_name,
         114  +
                /* BuilderGenerator.kt:481 */
         115  +
                limit: self.limit,
         116  +
                /* BuilderGenerator.kt:477 */
         117  +
            }, /* BuilderGenerator.kt:254 */
         118  +
        )
         119  +
        /* BuilderGenerator.kt:253 */
   71    120   
    }
         121  +
    /* BuilderGenerator.kt:355 */
   72    122   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tables/_list_tables_output.rs

@@ -1,1 +90,142 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the output of a <code>ListTables</code> operation.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the output of a <code>ListTables</code> operation.</p>
           4  +
/* RustType.kt:516 */
    4      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    5      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct ListTablesOutput {
    7         -
    /// <p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct ListTablesOutput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
    8     10   
    /// <p>If <code>LastEvaluatedTableName</code> also appears in the output, you can use this value as the <code>ExclusiveStartTableName</code> parameter in a subsequent <code>ListTables</code> request and obtain the next page of results.</p>
    9     11   
    pub table_names: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
   10         -
    /// <p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
          12  +
    /// /* StructureGenerator.kt:231 */<p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
   11     13   
    /// <p>If you do not receive a <code>LastEvaluatedTableName</code> value in the response, this means that there are no more table names to be retrieved.</p>
   12     14   
    pub last_evaluated_table_name: ::std::option::Option<::std::string::String>,
          15  +
    /* StructureGenerator.kt:201 */
   13     16   
}
          17  +
/* StructureGenerator.kt:135 */
   14     18   
impl ListTablesOutput {
   15         -
    /// <p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
          19  +
    /// /* StructureGenerator.kt:231 */<p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
   16     20   
    /// <p>If <code>LastEvaluatedTableName</code> also appears in the output, you can use this value as the <code>ExclusiveStartTableName</code> parameter in a subsequent <code>ListTables</code> request and obtain the next page of results.</p>
   17         -
    ///
   18         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.table_names.is_none()`.
          21  +
    /// /* StructureGenerator.kt:162 */
          22  +
    /// /* StructureGenerator.kt:163 */If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.table_names.is_none()`.
          23  +
    /* StructureGenerator.kt:166 */
   19     24   
    pub fn table_names(&self) -> &[::std::string::String] {
   20         -
        self.table_names.as_deref().unwrap_or_default()
          25  +
        /* StructureGenerator.kt:169 */
          26  +
        self.table_names
          27  +
            .as_deref()
          28  +
            /* StructureGenerator.kt:175 */
          29  +
            .unwrap_or_default()
          30  +
        /* StructureGenerator.kt:166 */
   21     31   
    }
   22         -
    /// <p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
          32  +
    /// /* StructureGenerator.kt:231 */<p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
   23     33   
    /// <p>If you do not receive a <code>LastEvaluatedTableName</code> value in the response, this means that there are no more table names to be retrieved.</p>
          34  +
    /* StructureGenerator.kt:166 */
   24     35   
    pub fn last_evaluated_table_name(&self) -> ::std::option::Option<&str> {
          36  +
        /* StructureGenerator.kt:169 */
   25     37   
        self.last_evaluated_table_name.as_deref()
          38  +
        /* StructureGenerator.kt:166 */
   26     39   
    }
          40  +
    /* StructureGenerator.kt:135 */
   27     41   
}
          42  +
/* ClientCodegenVisitor.kt:237 */
   28     43   
impl ListTablesOutput {
   29         -
    /// Creates a new builder-style object to manufacture [`ListTablesOutput`](crate::operation::list_tables::ListTablesOutput).
          44  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`ListTablesOutput`](crate::operation::list_tables::ListTablesOutput).
          45  +
    /* BuilderGenerator.kt:175 */
   30     46   
    pub fn builder() -> crate::operation::list_tables::builders::ListTablesOutputBuilder {
          47  +
        /* BuilderGenerator.kt:176 */
   31     48   
        crate::operation::list_tables::builders::ListTablesOutputBuilder::default()
          49  +
        /* BuilderGenerator.kt:175 */
   32     50   
    }
          51  +
    /* ClientCodegenVisitor.kt:237 */
   33     52   
}
   34     53   
   35         -
/// A builder for [`ListTablesOutput`](crate::operation::list_tables::ListTablesOutput).
          54  +
/// /* BuilderGenerator.kt:342 */A builder for [`ListTablesOutput`](crate::operation::list_tables::ListTablesOutput).
          55  +
/* RustType.kt:516 */
   36     56   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          57  +
/* RustType.kt:516 */
   37     58   
#[non_exhaustive]
          59  +
/* BuilderGenerator.kt:345 */
   38     60   
pub struct ListTablesOutputBuilder {
   39         -
    pub(crate) table_names: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          61  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_names: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          62  +
    /* BuilderGenerator.kt:275 */
   40     63   
    pub(crate) last_evaluated_table_name: ::std::option::Option<::std::string::String>,
          64  +
    /* BuilderGenerator.kt:345 */
   41     65   
}
          66  +
/* BuilderGenerator.kt:355 */
   42     67   
impl ListTablesOutputBuilder {
   43         -
    /// Appends an item to `table_names`.
          68  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `table_names`.
          69  +
    /* BuilderGenerator.kt:411 */
   44     70   
    ///
   45         -
    /// To override the contents of this collection use [`set_table_names`](Self::set_table_names).
          71  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_table_names`](Self::set_table_names).
          72  +
    /* BuilderGenerator.kt:413 */
   46     73   
    ///
   47         -
    /// <p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
          74  +
    /// /* BuilderGenerator.kt:414 */<p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
   48     75   
    /// <p>If <code>LastEvaluatedTableName</code> also appears in the output, you can use this value as the <code>ExclusiveStartTableName</code> parameter in a subsequent <code>ListTables</code> request and obtain the next page of results.</p>
          76  +
    /* BuilderGenerator.kt:418 */
   49     77   
    pub fn table_names(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          78  +
        /* BuilderGenerator.kt:419 */
   50     79   
        let mut v = self.table_names.unwrap_or_default();
   51     80   
        v.push(input.into());
   52     81   
        self.table_names = ::std::option::Option::Some(v);
   53     82   
        self
          83  +
        /* BuilderGenerator.kt:418 */
   54     84   
    }
   55         -
    /// <p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
          85  +
    /// /* BuilderGenerator.kt:312 */<p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
   56     86   
    /// <p>If <code>LastEvaluatedTableName</code> also appears in the output, you can use this value as the <code>ExclusiveStartTableName</code> parameter in a subsequent <code>ListTables</code> request and obtain the next page of results.</p>
          87  +
    /* BuilderGenerator.kt:314 */
   57     88   
    pub fn set_table_names(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
          89  +
        /* BuilderGenerator.kt:315 */
   58     90   
        self.table_names = input;
   59     91   
        self
          92  +
        /* BuilderGenerator.kt:314 */
   60     93   
    }
   61         -
    /// <p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
          94  +
    /// /* BuilderGenerator.kt:334 */<p>The names of the tables associated with the current account at the current endpoint. The maximum size of this array is 100.</p>
   62     95   
    /// <p>If <code>LastEvaluatedTableName</code> also appears in the output, you can use this value as the <code>ExclusiveStartTableName</code> parameter in a subsequent <code>ListTables</code> request and obtain the next page of results.</p>
          96  +
    /* BuilderGenerator.kt:336 */
   63     97   
    pub fn get_table_names(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
          98  +
        /* BuilderGenerator.kt:337 */
   64     99   
        &self.table_names
         100  +
        /* BuilderGenerator.kt:336 */
   65    101   
    }
   66         -
    /// <p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
         102  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
   67    103   
    /// <p>If you do not receive a <code>LastEvaluatedTableName</code> value in the response, this means that there are no more table names to be retrieved.</p>
         104  +
    /* BuilderGenerator.kt:291 */
   68    105   
    pub fn last_evaluated_table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         106  +
        /* BuilderGenerator.kt:292 */
   69    107   
        self.last_evaluated_table_name = ::std::option::Option::Some(input.into());
         108  +
        /* BuilderGenerator.kt:293 */
   70    109   
        self
         110  +
        /* BuilderGenerator.kt:291 */
   71    111   
    }
   72         -
    /// <p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
         112  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
   73    113   
    /// <p>If you do not receive a <code>LastEvaluatedTableName</code> value in the response, this means that there are no more table names to be retrieved.</p>
         114  +
    /* BuilderGenerator.kt:314 */
   74    115   
    pub fn set_last_evaluated_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         116  +
        /* BuilderGenerator.kt:315 */
   75    117   
        self.last_evaluated_table_name = input;
   76    118   
        self
         119  +
        /* BuilderGenerator.kt:314 */
   77    120   
    }
   78         -
    /// <p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
         121  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the last table in the current page of results. Use this value as the <code>ExclusiveStartTableName</code> in a new request to obtain the next page of results, until all the table names are returned.</p>
   79    122   
    /// <p>If you do not receive a <code>LastEvaluatedTableName</code> value in the response, this means that there are no more table names to be retrieved.</p>
         123  +
    /* BuilderGenerator.kt:336 */
   80    124   
    pub fn get_last_evaluated_table_name(&self) -> &::std::option::Option<::std::string::String> {
         125  +
        /* BuilderGenerator.kt:337 */
   81    126   
        &self.last_evaluated_table_name
         127  +
        /* BuilderGenerator.kt:336 */
   82    128   
    }
   83         -
    /// Consumes the builder and constructs a [`ListTablesOutput`](crate::operation::list_tables::ListTablesOutput).
         129  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`ListTablesOutput`](crate::operation::list_tables::ListTablesOutput).
         130  +
    /* BuilderGenerator.kt:253 */
   84    131   
    pub fn build(self) -> crate::operation::list_tables::ListTablesOutput {
         132  +
        /* BuilderGenerator.kt:477 */
   85    133   
        crate::operation::list_tables::ListTablesOutput {
   86         -
            table_names: self.table_names,
         134  +
            /* BuilderGenerator.kt:481 */ table_names: self.table_names,
         135  +
            /* BuilderGenerator.kt:481 */
   87    136   
            last_evaluated_table_name: self.last_evaluated_table_name,
         137  +
            /* BuilderGenerator.kt:477 */
   88    138   
        }
         139  +
        /* BuilderGenerator.kt:253 */
   89    140   
    }
         141  +
    /* BuilderGenerator.kt:355 */
   90    142   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tables/builders.rs

@@ -1,1 +145,164 @@
    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::list_tables::_list_tables_output::ListTablesOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::list_tables::_list_tables_input::ListTablesInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::list_tables::builders::ListTablesInputBuilder {
    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::list_tables::ListTablesOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::list_tables::ListTablesError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.list_tables();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `ListTables`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `ListTables`.
   24     27   
///
   25         -
/// <p>Returns an array of table names associated with the current account and endpoint. The output from <code>ListTables</code> is paginated, with each page returning a maximum of 100 table names.</p>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>Returns an array of table names associated with the current account and endpoint. The output from <code>ListTables</code> is paginated, with each page returning a maximum of 100 table names.</p>
          29  +
/* RustType.kt:516 */
   26     30   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          31  +
/* FluentBuilderGenerator.kt:270 */
   27     32   
pub struct ListTablesFluentBuilder {
   28     33   
    handle: ::std::sync::Arc<crate::client::Handle>,
   29     34   
    inner: crate::operation::list_tables::builders::ListTablesInputBuilder,
   30     35   
    config_override: ::std::option::Option<crate::config::Builder>,
   31     36   
}
          37  +
/* FluentBuilderGenerator.kt:381 */
   32     38   
impl
   33     39   
    crate::client::customize::internal::CustomizableSend<
   34     40   
        crate::operation::list_tables::ListTablesOutput,
   35     41   
        crate::operation::list_tables::ListTablesError,
   36     42   
    > for ListTablesFluentBuilder
   37     43   
{
   38     44   
    fn send(
   39     45   
        self,
   40     46   
        config_override: crate::config::Builder,
   41     47   
    ) -> crate::client::customize::internal::BoxFuture<
   42     48   
        crate::client::customize::internal::SendResult<
   43     49   
            crate::operation::list_tables::ListTablesOutput,
   44     50   
            crate::operation::list_tables::ListTablesError,
   45     51   
        >,
   46     52   
    > {
   47     53   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   48     54   
    }
   49     55   
}
          56  +
/* FluentBuilderGenerator.kt:282 */
   50     57   
impl ListTablesFluentBuilder {
          58  +
    /* FluentBuilderGenerator.kt:288 */
   51     59   
    /// Creates a new `ListTablesFluentBuilder`.
   52     60   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   53     61   
        Self {
   54     62   
            handle,
   55     63   
            inner: ::std::default::Default::default(),
   56     64   
            config_override: ::std::option::Option::None,
   57     65   
        }
   58     66   
    }
          67  +
    /* FluentBuilderGenerator.kt:301 */
   59     68   
    /// Access the ListTables as a reference.
   60     69   
    pub fn as_input(&self) -> &crate::operation::list_tables::builders::ListTablesInputBuilder {
   61     70   
        &self.inner
   62     71   
    }
          72  +
    /* FluentBuilderGenerator.kt:145 */
   63     73   
    /// Sends the request and returns the response.
   64     74   
    ///
   65     75   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   66     76   
    /// can be matched against.
   67     77   
    ///
   68     78   
    /// By default, any retryable failures will be retried twice. Retry behavior
   69     79   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   70     80   
    /// set when configuring the client.
   71     81   
    pub async fn send(
   72     82   
        self,
   73     83   
    ) -> ::std::result::Result<
   74     84   
        crate::operation::list_tables::ListTablesOutput,
   75     85   
        ::aws_smithy_runtime_api::client::result::SdkError<
   76     86   
            crate::operation::list_tables::ListTablesError,
   77     87   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   78     88   
        >,
   79     89   
    > {
   80     90   
        let input = self
   81     91   
            .inner
   82     92   
            .build()
   83     93   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   84     94   
        let runtime_plugins = crate::operation::list_tables::ListTables::operation_runtime_plugins(
   85     95   
            self.handle.runtime_plugins.clone(),
   86     96   
            &self.handle.conf,
   87     97   
            self.config_override,
   88     98   
        );
   89     99   
        crate::operation::list_tables::ListTables::orchestrate(&runtime_plugins, input).await
   90    100   
    }
   91    101   
   92    102   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   93    103   
    pub fn customize(
   94    104   
        self,
   95    105   
    ) -> crate::client::customize::CustomizableOperation<
   96    106   
        crate::operation::list_tables::ListTablesOutput,
   97    107   
        crate::operation::list_tables::ListTablesError,
   98    108   
        Self,
   99    109   
    > {
  100    110   
        crate::client::customize::CustomizableOperation::new(self)
  101    111   
    }
         112  +
    /* FluentBuilderGenerator.kt:315 */
  102    113   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  103    114   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  104    115   
        self
  105    116   
    }
  106    117   
  107    118   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  108    119   
        self.config_override = config_override;
  109    120   
        self
  110    121   
    }
         122  +
    /* FluentBuilderGenerator.kt:340 */
  111    123   
    /// Create a paginator for this request
  112    124   
    ///
  113    125   
    /// Paginators are used by calling [`send().await`](crate::operation::list_tables::paginator::ListTablesPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
  114    126   
    pub fn into_paginator(self) -> crate::operation::list_tables::paginator::ListTablesPaginator {
  115    127   
        crate::operation::list_tables::paginator::ListTablesPaginator::new(self.handle, self.inner)
  116    128   
    }
  117         -
    /// <p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
         129  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
         130  +
    /* FluentBuilderGenerator.kt:500 */
  118    131   
    pub fn exclusive_start_table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  119    132   
        self.inner = self.inner.exclusive_start_table_name(input.into());
  120    133   
        self
  121    134   
    }
  122         -
    /// <p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
         135  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
         136  +
    /* FluentBuilderGenerator.kt:500 */
  123    137   
    pub fn set_exclusive_start_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  124    138   
        self.inner = self.inner.set_exclusive_start_table_name(input);
  125    139   
        self
  126    140   
    }
  127         -
    /// <p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
         141  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The first table name that this operation will evaluate. Use the value that was returned for <code>LastEvaluatedTableName</code> in a previous operation, so that you can obtain the next page of results.</p>
         142  +
    /* FluentBuilderGenerator.kt:520 */
  128    143   
    pub fn get_exclusive_start_table_name(&self) -> &::std::option::Option<::std::string::String> {
  129    144   
        self.inner.get_exclusive_start_table_name()
  130    145   
    }
  131         -
    /// <p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
         146  +
    /// /* FluentBuilderGenerator.kt:498 */<p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
         147  +
    /* FluentBuilderGenerator.kt:500 */
  132    148   
    pub fn limit(mut self, input: i32) -> Self {
  133    149   
        self.inner = self.inner.limit(input);
  134    150   
        self
  135    151   
    }
  136         -
    /// <p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
         152  +
    /// /* FluentBuilderGenerator.kt:498 */<p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
         153  +
    /* FluentBuilderGenerator.kt:500 */
  137    154   
    pub fn set_limit(mut self, input: ::std::option::Option<i32>) -> Self {
  138    155   
        self.inner = self.inner.set_limit(input);
  139    156   
        self
  140    157   
    }
  141         -
    /// <p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
         158  +
    /// /* FluentBuilderGenerator.kt:518 */<p>A maximum number of table names to return. If this parameter is not specified, the limit is 100.</p>
         159  +
    /* FluentBuilderGenerator.kt:520 */
  142    160   
    pub fn get_limit(&self) -> &::std::option::Option<i32> {
  143    161   
        self.inner.get_limit()
  144    162   
    }
         163  +
    /* FluentBuilderGenerator.kt:282 */
  145    164   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tables/paginator.rs

@@ -1,1 +31,32 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* PaginatorGenerator.kt:121 */
    2      3   
/// Paginator for [`ListTables`](crate::operation::list_tables::ListTables)
    3      4   
pub struct ListTablesPaginator {
    4      5   
    handle: std::sync::Arc<crate::client::Handle>,
    5      6   
    builder: crate::operation::list_tables::builders::ListTablesInputBuilder,
    6      7   
    stop_on_duplicate_token: bool,
    7      8   
}
    8      9   
    9     10   
impl ListTablesPaginator {
   10     11   
    /// Create a new paginator-wrapper
   11     12   
    pub(crate) fn new(
@@ -89,90 +148,150 @@
  109    110   
                        if done {
  110    111   
                            return;
  111    112   
                        }
  112    113   
                    }
  113    114   
                })
  114    115   
            },
  115    116   
        ))
  116    117   
    }
  117    118   
}
  118    119   
         120  +
/* PaginatorGenerator.kt:301 */
  119    121   
/// Flattened paginator for `ListTablesPaginator`
  120    122   
///
  121    123   
/// This is created with [`.items()`](ListTablesPaginator::items)
  122    124   
pub struct ListTablesPaginatorItems(ListTablesPaginator);
  123    125   
  124    126   
impl ListTablesPaginatorItems {
  125    127   
    /// Create the pagination stream
  126    128   
    ///
  127    129   
    /// _Note_: No requests will be dispatched until the stream is used
  128    130   
    /// (e.g. with the [`.next().await`](aws_smithy_async::future::pagination_stream::PaginationStream::next) method).

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tags_of_resource.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 `ListTagsOfResource`.
           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 ListTagsOfResource;
          10  +
/* OperationGenerator.kt:85 */
    6     11   
impl ListTagsOfResource {
    7         -
    /// Creates a new `ListTagsOfResource`
          12  +
    /// /* OperationGenerator.kt:86 */Creates a new `ListTagsOfResource`
          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::list_tags_of_resource::ListTagsOfResourceInput,
   14     23   
    ) -> ::std::result::Result<
   15     24   
        crate::operation::list_tags_of_resource::ListTagsOfResourceOutput,
   16     25   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     26   
            crate::operation::list_tags_of_resource::ListTagsOfResourceError,
   18     27   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     28   
        >,
   20     29   
    > {
@@ -57,66 +366,510 @@
   77     86   
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
   78     87   
            }
   79     88   
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
   80     89   
                config_override,
   81     90   
                client_config.config.clone(),
   82     91   
                &client_config.runtime_components,
   83     92   
            ));
   84     93   
        }
   85     94   
        runtime_plugins
   86     95   
    }
          96  +
    /* OperationGenerator.kt:85 */
   87     97   
}
          98  +
/* OperationRuntimePluginGenerator.kt:55 */
   88     99   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ListTagsOfResource {
   89    100   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
   90    101   
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("ListTagsOfResource");
   91    102   
   92    103   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
   93    104   
            ListTagsOfResourceRequestSerializer,
   94    105   
        ));
   95    106   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
   96    107   
            ListTagsOfResourceResponseDeserializer,
   97    108   
        ));
   98    109   
   99    110   
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
  100    111   
            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
  101    112   
        ));
  102    113   
  103    114   
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
  104    115   
            "ListTagsOfResource",
  105    116   
            "DynamoDB",
  106    117   
        ));
  107    118   
  108    119   
        ::std::option::Option::Some(cfg.freeze())
  109    120   
    }
  110    121   
  111    122   
    fn runtime_components(
  112    123   
        &self,
  113    124   
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
  114    125   
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
  115    126   
        #[allow(unused_mut)]
  116    127   
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("ListTagsOfResource")
  117    128   
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  118    129   
            .with_interceptor(ListTagsOfResourceEndpointParamsInterceptor)
  119    130   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  120    131   
                crate::operation::list_tags_of_resource::ListTagsOfResourceError,
  121    132   
            >::new())
  122    133   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  123    134   
                crate::operation::list_tags_of_resource::ListTagsOfResourceError,
  124    135   
            >::new());
  125    136   
  126    137   
        ::std::borrow::Cow::Owned(rcb)
  127    138   
    }
  128    139   
}
  129    140   
         141  +
/* ResponseDeserializerGenerator.kt:64 */
  130    142   
#[derive(Debug)]
  131    143   
struct ListTagsOfResourceResponseDeserializer;
  132    144   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListTagsOfResourceResponseDeserializer {
  133    145   
    fn deserialize_nonstreaming(
  134    146   
        &self,
  135    147   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  136    148   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  137    149   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  138    150   
        let headers = response.headers();
  139    151   
        let body = response.body().bytes().expect("body loaded");
  140    152   
        #[allow(unused_mut)]
  141    153   
        let mut force_error = false;
  142    154   
  143    155   
        let parse_result = if !success && status != 200 || force_error {
  144    156   
            crate::protocol_serde::shape_list_tags_of_resource::de_list_tags_of_resource_http_error(status, headers, body)
  145    157   
        } else {
  146    158   
            crate::protocol_serde::shape_list_tags_of_resource::de_list_tags_of_resource_http_response(status, headers, body)
  147    159   
        };
  148    160   
        crate::protocol_serde::type_erase_result(parse_result)
  149    161   
    }
  150    162   
}
         163  +
/* RequestSerializerGenerator.kt:67 */
  151    164   
#[derive(Debug)]
  152    165   
struct ListTagsOfResourceRequestSerializer;
  153    166   
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for ListTagsOfResourceRequestSerializer {
  154    167   
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
  155    168   
    fn serialize_input(
  156    169   
        &self,
  157    170   
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
  158    171   
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  159    172   
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
  160    173   
        let input = input
  161    174   
            .downcast::<crate::operation::list_tags_of_resource::ListTagsOfResourceInput>()
  162    175   
            .expect("correct type");
  163    176   
        let _header_serialization_settings = _cfg
  164    177   
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
  165    178   
            .cloned()
  166    179   
            .unwrap_or_default();
  167    180   
        let mut request_builder = {
  168    181   
            fn uri_base(
  169    182   
                _input: &crate::operation::list_tags_of_resource::ListTagsOfResourceInput,
  170    183   
                output: &mut ::std::string::String,
  171    184   
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  172    185   
                use ::std::fmt::Write as _;
  173    186   
                ::std::write!(output, "/").expect("formatting should succeed");
  174    187   
                ::std::result::Result::Ok(())
  175    188   
            }
  176    189   
            #[allow(clippy::unnecessary_wraps)]
  177    190   
            fn update_http_builder(
  178    191   
                input: &crate::operation::list_tags_of_resource::ListTagsOfResourceInput,
  179    192   
                builder: ::http::request::Builder,
  180    193   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  181    194   
                let mut uri = ::std::string::String::new();
  182    195   
                uri_base(input, &mut uri)?;
  183    196   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  184    197   
            }
  185    198   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  186    199   
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
  187    200   
            builder = _header_serialization_settings.set_default_header(
  188    201   
                builder,
  189    202   
                ::http::header::HeaderName::from_static("x-amz-target"),
  190    203   
                "DynamoDB_20120810.ListTagsOfResource",
  191    204   
            );
  192    205   
            builder
  193    206   
        };
  194    207   
        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_list_tags_of_resource::ser_list_tags_of_resource_input(
  195    208   
            &input,
  196    209   
        )?);
  197    210   
        if let Some(content_length) = body.content_length() {
  198    211   
            let content_length = content_length.to_string();
  199    212   
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  200    213   
        }
  201    214   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  202    215   
    }
  203    216   
}
         217  +
/* EndpointParamsInterceptorGenerator.kt:86 */
  204    218   
#[derive(Debug)]
  205    219   
struct ListTagsOfResourceEndpointParamsInterceptor;
  206    220   
  207    221   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for ListTagsOfResourceEndpointParamsInterceptor {
  208    222   
    fn name(&self) -> &'static str {
  209    223   
        "ListTagsOfResourceEndpointParamsInterceptor"
  210    224   
    }
  211    225   
  212    226   
    fn read_before_execution(
  213    227   
        &self,
  214    228   
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  215    229   
            '_,
  216    230   
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  217    231   
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  218    232   
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  219    233   
        >,
  220    234   
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  221    235   
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  222    236   
        let _input = context
  223    237   
            .input()
  224    238   
            .downcast_ref::<ListTagsOfResourceInput>()
  225    239   
            .ok_or("failed to downcast to ListTagsOfResourceInput")?;
  226    240   
  227    241   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  228    242   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  229    243   
        })?;
  230    244   
        cfg.interceptor_state()
  231    245   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  232    246   
        ::std::result::Result::Ok(())
  233    247   
    }
  234    248   
}
  235    249   
  236    250   
// The get_* functions below are generated from JMESPath expressions in the
  237    251   
// operationContextParams trait. They target the operation's input shape.
  238    252   
         253  +
/* OperationErrorGenerator.kt:79 */
  239    254   
/// Error type for the `ListTagsOfResourceError` operation.
         255  +
/* RustType.kt:516 */
  240    256   
#[non_exhaustive]
         257  +
/* RustType.kt:516 */
  241    258   
#[derive(::std::fmt::Debug)]
  242         -
pub enum ListTagsOfResourceError {
  243         -
    /// <p>An error occurred on the server side.</p>
         259  +
pub /* OperationErrorGenerator.kt:81 */ enum ListTagsOfResourceError {
         260  +
    /// /* OperationErrorGenerator.kt:83 */<p>An error occurred on the server side.</p>
         261  +
    /* OperationErrorGenerator.kt:86 */
  244    262   
    InternalServerError(crate::types::error::InternalServerError),
         263  +
    /* OperationErrorGenerator.kt:83 */
  245    264   
    #[allow(missing_docs)] // documentation missing in model
         265  +
    /* OperationErrorGenerator.kt:86 */
  246    266   
    InvalidEndpointError(crate::types::error::InvalidEndpointError),
  247         -
    /// <p>The operation tried to access a nonexistent table or index. The resource might not be specified correctly, or its status might not be <code>ACTIVE</code>.</p>
         267  +
    /// /* OperationErrorGenerator.kt:83 */<p>The operation tried to access a nonexistent table or index. The resource might not be specified correctly, or its status might not be <code>ACTIVE</code>.</p>
         268  +
    /* OperationErrorGenerator.kt:86 */
  248    269   
    ResourceNotFoundError(crate::types::error::ResourceNotFoundError),
         270  +
    /* OperationErrorGenerator.kt:88 */
  249    271   
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  250    272   
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  251    273   
    variable wildcard pattern and check `.code()`:
  252    274   
     \
  253    275   
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  254    276   
     \
  255    277   
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-ListTagsOfResourceError) for what information is available for the error.")]
  256    278   
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         279  +
    /* OperationErrorGenerator.kt:81 */
  257    280   
}
         281  +
/* OperationErrorGenerator.kt:218 */
  258    282   
impl ListTagsOfResourceError {
         283  +
    /* OperationErrorGenerator.kt:219 */
  259    284   
    /// Creates the `ListTagsOfResourceError::Unhandled` variant from any error type.
  260    285   
    pub fn unhandled(
  261    286   
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  262    287   
    ) -> Self {
  263    288   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  264    289   
            source: err.into(),
  265    290   
            meta: ::std::default::Default::default(),
  266    291   
        })
  267    292   
    }
  268    293   
  269    294   
    /// Creates the `ListTagsOfResourceError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  270    295   
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  271    296   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  272    297   
            source: err.clone().into(),
  273    298   
            meta: err,
  274    299   
        })
  275    300   
    }
  276         -
    ///
         301  +
    /// /* OperationErrorGenerator.kt:236 */
  277    302   
    /// Returns error metadata, which includes the error code, message,
  278    303   
    /// request ID, and potentially additional information.
  279    304   
    ///
         305  +
    /* OperationErrorGenerator.kt:242 */
  280    306   
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         307  +
        /* OperationErrorGenerator.kt:243 */
  281    308   
        match self {
         309  +
            /* OperationErrorGenerator.kt:246 */
  282    310   
            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         311  +
            /* OperationErrorGenerator.kt:246 */
  283    312   
            Self::InvalidEndpointError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         313  +
            /* OperationErrorGenerator.kt:246 */
  284    314   
            Self::ResourceNotFoundError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
  285         -
            Self::Unhandled(e) => &e.meta,
         315  +
            /* OperationErrorGenerator.kt:251 */ Self::Unhandled(e) => &e.meta,
         316  +
            /* OperationErrorGenerator.kt:243 */
  286    317   
        }
         318  +
        /* OperationErrorGenerator.kt:242 */
  287    319   
    }
         320  +
    /* OperationErrorGenerator.kt:257 */
  288    321   
    /// Returns `true` if the error kind is `ListTagsOfResourceError::InternalServerError`.
         322  +
    /* OperationErrorGenerator.kt:258 */
  289    323   
    pub fn is_internal_server_error(&self) -> bool {
         324  +
        /* OperationErrorGenerator.kt:259 */
  290    325   
        matches!(self, Self::InternalServerError(_))
         326  +
        /* OperationErrorGenerator.kt:258 */
  291    327   
    }
         328  +
    /* OperationErrorGenerator.kt:257 */
  292    329   
    /// Returns `true` if the error kind is `ListTagsOfResourceError::InvalidEndpointError`.
         330  +
    /* OperationErrorGenerator.kt:258 */
  293    331   
    pub fn is_invalid_endpoint_error(&self) -> bool {
         332  +
        /* OperationErrorGenerator.kt:259 */
  294    333   
        matches!(self, Self::InvalidEndpointError(_))
         334  +
        /* OperationErrorGenerator.kt:258 */
  295    335   
    }
         336  +
    /* OperationErrorGenerator.kt:257 */
  296    337   
    /// Returns `true` if the error kind is `ListTagsOfResourceError::ResourceNotFoundError`.
         338  +
    /* OperationErrorGenerator.kt:258 */
  297    339   
    pub fn is_resource_not_found_error(&self) -> bool {
         340  +
        /* OperationErrorGenerator.kt:259 */
  298    341   
        matches!(self, Self::ResourceNotFoundError(_))
         342  +
        /* OperationErrorGenerator.kt:258 */
  299    343   
    }
         344  +
    /* OperationErrorGenerator.kt:218 */
  300    345   
}
         346  +
/* OperationErrorGenerator.kt:269 */
  301    347   
impl ::std::error::Error for ListTagsOfResourceError {
         348  +
    /* OperationErrorGenerator.kt:270 */
  302    349   
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         350  +
        /* OperationErrorGenerator.kt:318 */
  303    351   
        match self {
  304         -
            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
  305         -
            Self::InvalidEndpointError(_inner) => ::std::option::Option::Some(_inner),
  306         -
            Self::ResourceNotFoundError(_inner) => ::std::option::Option::Some(_inner),
  307         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         352  +
            /* OperationErrorGenerator.kt:321 */
         353  +
            Self::InternalServerError(_inner) =>
         354  +
            /* OperationErrorGenerator.kt:283 */
         355  +
            {
         356  +
                ::std::option::Option::Some(_inner)
         357  +
            }
         358  +
            ,
         359  +
            /* OperationErrorGenerator.kt:321 */
         360  +
            Self::InvalidEndpointError(_inner) =>
         361  +
            /* OperationErrorGenerator.kt:283 */
         362  +
            {
         363  +
                ::std::option::Option::Some(_inner)
         364  +
            }
         365  +
            ,
         366  +
            /* OperationErrorGenerator.kt:321 */
         367  +
            Self::ResourceNotFoundError(_inner) =>
         368  +
            /* OperationErrorGenerator.kt:283 */
         369  +
            {
         370  +
                ::std::option::Option::Some(_inner)
         371  +
            }
         372  +
            ,
         373  +
            /* OperationErrorGenerator.kt:326 */
         374  +
            Self::Unhandled(_inner) => {
         375  +
                /* OperationErrorGenerator.kt:279 */
         376  +
                ::std::option::Option::Some(&*_inner.source)
         377  +
                /* OperationErrorGenerator.kt:326 */
         378  +
            } /* OperationErrorGenerator.kt:318 */
  308    379   
        }
         380  +
        /* OperationErrorGenerator.kt:270 */
  309    381   
    }
         382  +
    /* OperationErrorGenerator.kt:269 */
  310    383   
}
         384  +
/* OperationErrorGenerator.kt:133 */
  311    385   
impl ::std::fmt::Display for ListTagsOfResourceError {
         386  +
    /* OperationErrorGenerator.kt:134 */
  312    387   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         388  +
        /* OperationErrorGenerator.kt:318 */
  313    389   
        match self {
  314         -
            Self::InternalServerError(_inner) => _inner.fmt(f),
  315         -
            Self::InvalidEndpointError(_inner) => _inner.fmt(f),
  316         -
            Self::ResourceNotFoundError(_inner) => _inner.fmt(f),
         390  +
            /* OperationErrorGenerator.kt:321 */
         391  +
            Self::InternalServerError(_inner) =>
         392  +
            /* OperationErrorGenerator.kt:151 */
         393  +
            {
         394  +
                _inner.fmt(f)
         395  +
            }
         396  +
            ,
         397  +
            /* OperationErrorGenerator.kt:321 */
         398  +
            Self::InvalidEndpointError(_inner) =>
         399  +
            /* OperationErrorGenerator.kt:151 */
         400  +
            {
         401  +
                _inner.fmt(f)
         402  +
            }
         403  +
            ,
         404  +
            /* OperationErrorGenerator.kt:321 */
         405  +
            Self::ResourceNotFoundError(_inner) =>
         406  +
            /* OperationErrorGenerator.kt:151 */
         407  +
            {
         408  +
                _inner.fmt(f)
         409  +
            }
         410  +
            ,
         411  +
            /* OperationErrorGenerator.kt:326 */
  317    412   
            Self::Unhandled(_inner) => {
         413  +
                /* OperationErrorGenerator.kt:139 */
  318    414   
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  319    415   
                    write!(f, "unhandled error ({code})")
  320    416   
                } else {
  321    417   
                    f.write_str("unhandled error")
  322    418   
                }
  323         -
            }
         419  +
                /* OperationErrorGenerator.kt:326 */
         420  +
            } /* OperationErrorGenerator.kt:318 */
  324    421   
        }
         422  +
        /* OperationErrorGenerator.kt:134 */
  325    423   
    }
         424  +
    /* OperationErrorGenerator.kt:133 */
  326    425   
}
         426  +
/* OperationErrorGenerator.kt:182 */
  327    427   
impl ::aws_smithy_types::retry::ProvideErrorKind for ListTagsOfResourceError {
         428  +
    /* OperationErrorGenerator.kt:186 */
  328    429   
    fn code(&self) -> ::std::option::Option<&str> {
         430  +
        /* OperationErrorGenerator.kt:187 */
  329    431   
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         432  +
        /* OperationErrorGenerator.kt:186 */
  330    433   
    }
         434  +
    /* OperationErrorGenerator.kt:190 */
  331    435   
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         436  +
        /* OperationErrorGenerator.kt:197 */
  332    437   
        ::std::option::Option::None
         438  +
        /* OperationErrorGenerator.kt:190 */
  333    439   
    }
         440  +
    /* OperationErrorGenerator.kt:182 */
  334    441   
}
         442  +
/* OperationErrorGenerator.kt:163 */
  335    443   
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for ListTagsOfResourceError {
         444  +
    /* OperationErrorGenerator.kt:164 */
  336    445   
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         446  +
        /* OperationErrorGenerator.kt:318 */
  337    447   
        match self {
  338         -
            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  339         -
            Self::InvalidEndpointError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  340         -
            Self::ResourceNotFoundError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  341         -
            Self::Unhandled(_inner) => &_inner.meta,
         448  +
            /* OperationErrorGenerator.kt:321 */
         449  +
            Self::InternalServerError(_inner) =>
         450  +
            /* OperationErrorGenerator.kt:169 */
         451  +
            {
         452  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         453  +
            }
         454  +
            ,
         455  +
            /* OperationErrorGenerator.kt:321 */
         456  +
            Self::InvalidEndpointError(_inner) =>
         457  +
            /* OperationErrorGenerator.kt:169 */
         458  +
            {
         459  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         460  +
            }
         461  +
            ,
         462  +
            /* OperationErrorGenerator.kt:321 */
         463  +
            Self::ResourceNotFoundError(_inner) =>
         464  +
            /* OperationErrorGenerator.kt:169 */
         465  +
            {
         466  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         467  +
            }
         468  +
            ,
         469  +
            /* OperationErrorGenerator.kt:326 */
         470  +
            Self::Unhandled(_inner) => {
         471  +
                /* OperationErrorGenerator.kt:168 */
         472  +
                &_inner.meta
         473  +
                /* OperationErrorGenerator.kt:326 */
         474  +
            } /* OperationErrorGenerator.kt:318 */
  342    475   
        }
         476  +
        /* OperationErrorGenerator.kt:164 */
  343    477   
    }
         478  +
    /* OperationErrorGenerator.kt:163 */
  344    479   
}
         480  +
/* OperationErrorGenerator.kt:109 */
  345    481   
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for ListTagsOfResourceError {
         482  +
    /* OperationErrorGenerator.kt:110 */
  346    483   
    fn create_unhandled_error(
  347    484   
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  348    485   
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  349    486   
    ) -> Self {
         487  +
        /* OperationErrorGenerator.kt:121 */
  350    488   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  351    489   
            source,
  352    490   
            meta: meta.unwrap_or_default(),
  353    491   
        })
         492  +
        /* OperationErrorGenerator.kt:110 */
  354    493   
    }
         494  +
    /* OperationErrorGenerator.kt:109 */
  355    495   
}
  356    496   
         497  +
/* CodegenDelegator.kt:255 */
  357    498   
pub use crate::operation::list_tags_of_resource::_list_tags_of_resource_output::ListTagsOfResourceOutput;
  358    499   
         500  +
/* CodegenDelegator.kt:255 */
  359    501   
pub use crate::operation::list_tags_of_resource::_list_tags_of_resource_input::ListTagsOfResourceInput;
  360    502   
         503  +
/* RustModule.kt:172 */
  361    504   
mod _list_tags_of_resource_input;
  362    505   
         506  +
/* RustModule.kt:172 */
  363    507   
mod _list_tags_of_resource_output;
  364    508   
  365         -
/// Builders
         509  +
/// /* CodegenDelegator.kt:51 */Builders
  366    510   
pub mod builders;

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tags_of_resource/_list_tags_of_resource_input.rs

@@ -1,1 +75,126 @@
    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 ListTagsOfResourceInput {
    6         -
    /// <p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct ListTagsOfResourceInput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
    7     10   
    pub resource_arn: ::std::option::Option<::std::string::String>,
    8         -
    /// <p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
    9     12   
    pub next_token: ::std::option::Option<::std::string::String>,
          13  +
    /* StructureGenerator.kt:201 */
   10     14   
}
          15  +
/* StructureGenerator.kt:135 */
   11     16   
impl ListTagsOfResourceInput {
   12         -
    /// <p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
          18  +
    /* StructureGenerator.kt:166 */
   13     19   
    pub fn resource_arn(&self) -> ::std::option::Option<&str> {
          20  +
        /* StructureGenerator.kt:169 */
   14     21   
        self.resource_arn.as_deref()
          22  +
        /* StructureGenerator.kt:166 */
   15     23   
    }
   16         -
    /// <p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
          25  +
    /* StructureGenerator.kt:166 */
   17     26   
    pub fn next_token(&self) -> ::std::option::Option<&str> {
          27  +
        /* StructureGenerator.kt:169 */
   18     28   
        self.next_token.as_deref()
          29  +
        /* StructureGenerator.kt:166 */
   19     30   
    }
          31  +
    /* StructureGenerator.kt:135 */
   20     32   
}
          33  +
/* ClientCodegenVisitor.kt:237 */
   21     34   
impl ListTagsOfResourceInput {
   22         -
    /// Creates a new builder-style object to manufacture [`ListTagsOfResourceInput`](crate::operation::list_tags_of_resource::ListTagsOfResourceInput).
          35  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`ListTagsOfResourceInput`](crate::operation::list_tags_of_resource::ListTagsOfResourceInput).
          36  +
    /* BuilderGenerator.kt:175 */
   23     37   
    pub fn builder() -> crate::operation::list_tags_of_resource::builders::ListTagsOfResourceInputBuilder {
          38  +
        /* BuilderGenerator.kt:176 */
   24     39   
        crate::operation::list_tags_of_resource::builders::ListTagsOfResourceInputBuilder::default()
          40  +
        /* BuilderGenerator.kt:175 */
   25     41   
    }
          42  +
    /* ClientCodegenVisitor.kt:237 */
   26     43   
}
   27     44   
   28         -
/// A builder for [`ListTagsOfResourceInput`](crate::operation::list_tags_of_resource::ListTagsOfResourceInput).
          45  +
/// /* BuilderGenerator.kt:342 */A builder for [`ListTagsOfResourceInput`](crate::operation::list_tags_of_resource::ListTagsOfResourceInput).
          46  +
/* RustType.kt:516 */
   29     47   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          48  +
/* RustType.kt:516 */
   30     49   
#[non_exhaustive]
          50  +
/* BuilderGenerator.kt:345 */
   31     51   
pub struct ListTagsOfResourceInputBuilder {
   32         -
    pub(crate) resource_arn: ::std::option::Option<::std::string::String>,
   33         -
    pub(crate) next_token: ::std::option::Option<::std::string::String>,
          52  +
    /* BuilderGenerator.kt:275 */ pub(crate) resource_arn: ::std::option::Option<::std::string::String>,
          53  +
    /* BuilderGenerator.kt:275 */ pub(crate) next_token: ::std::option::Option<::std::string::String>,
          54  +
    /* BuilderGenerator.kt:345 */
   34     55   
}
          56  +
/* BuilderGenerator.kt:355 */
   35     57   
impl ListTagsOfResourceInputBuilder {
   36         -
    /// <p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
   37         -
    /// This field is required.
          58  +
    /// /* BuilderGenerator.kt:286 */<p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
          59  +
    /// /* BuilderGenerator.kt:288 */This field is required.
          60  +
    /* BuilderGenerator.kt:291 */
   38     61   
    pub fn resource_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          62  +
        /* BuilderGenerator.kt:292 */
   39     63   
        self.resource_arn = ::std::option::Option::Some(input.into());
          64  +
        /* BuilderGenerator.kt:293 */
   40     65   
        self
          66  +
        /* BuilderGenerator.kt:291 */
   41     67   
    }
   42         -
    /// <p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
          68  +
    /// /* BuilderGenerator.kt:312 */<p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
          69  +
    /* BuilderGenerator.kt:314 */
   43     70   
    pub fn set_resource_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          71  +
        /* BuilderGenerator.kt:315 */
   44     72   
        self.resource_arn = input;
   45     73   
        self
          74  +
        /* BuilderGenerator.kt:314 */
   46     75   
    }
   47         -
    /// <p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
          76  +
    /// /* BuilderGenerator.kt:334 */<p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
          77  +
    /* BuilderGenerator.kt:336 */
   48     78   
    pub fn get_resource_arn(&self) -> &::std::option::Option<::std::string::String> {
          79  +
        /* BuilderGenerator.kt:337 */
   49     80   
        &self.resource_arn
          81  +
        /* BuilderGenerator.kt:336 */
   50     82   
    }
   51         -
    /// <p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
          83  +
    /// /* BuilderGenerator.kt:286 */<p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
          84  +
    /* BuilderGenerator.kt:291 */
   52     85   
    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          86  +
        /* BuilderGenerator.kt:292 */
   53     87   
        self.next_token = ::std::option::Option::Some(input.into());
          88  +
        /* BuilderGenerator.kt:293 */
   54     89   
        self
          90  +
        /* BuilderGenerator.kt:291 */
   55     91   
    }
   56         -
    /// <p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
          92  +
    /// /* BuilderGenerator.kt:312 */<p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
          93  +
    /* BuilderGenerator.kt:314 */
   57     94   
    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          95  +
        /* BuilderGenerator.kt:315 */
   58     96   
        self.next_token = input;
   59     97   
        self
          98  +
        /* BuilderGenerator.kt:314 */
   60     99   
    }
   61         -
    /// <p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
         100  +
    /// /* BuilderGenerator.kt:334 */<p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
         101  +
    /* BuilderGenerator.kt:336 */
   62    102   
    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
         103  +
        /* BuilderGenerator.kt:337 */
   63    104   
        &self.next_token
         105  +
        /* BuilderGenerator.kt:336 */
   64    106   
    }
   65         -
    /// Consumes the builder and constructs a [`ListTagsOfResourceInput`](crate::operation::list_tags_of_resource::ListTagsOfResourceInput).
         107  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`ListTagsOfResourceInput`](crate::operation::list_tags_of_resource::ListTagsOfResourceInput).
         108  +
    /* BuilderGenerator.kt:253 */
   66    109   
    pub fn build(
   67    110   
        self,
   68    111   
    ) -> ::std::result::Result<crate::operation::list_tags_of_resource::ListTagsOfResourceInput, ::aws_smithy_types::error::operation::BuildError>
   69    112   
    {
   70         -
        ::std::result::Result::Ok(crate::operation::list_tags_of_resource::ListTagsOfResourceInput {
   71         -
            resource_arn: self.resource_arn,
   72         -
            next_token: self.next_token,
   73         -
        })
         113  +
        /* BuilderGenerator.kt:254 */
         114  +
        ::std::result::Result::Ok(
         115  +
            /* BuilderGenerator.kt:477 */
         116  +
            crate::operation::list_tags_of_resource::ListTagsOfResourceInput {
         117  +
                /* BuilderGenerator.kt:481 */ resource_arn: self.resource_arn,
         118  +
                /* BuilderGenerator.kt:481 */
         119  +
                next_token: self.next_token,
         120  +
                /* BuilderGenerator.kt:477 */
         121  +
            }, /* BuilderGenerator.kt:254 */
         122  +
        )
         123  +
        /* BuilderGenerator.kt:253 */
   74    124   
    }
         125  +
    /* BuilderGenerator.kt:355 */
   75    126   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tags_of_resource/_list_tags_of_resource_output.rs

@@ -1,1 +79,131 @@
    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 ListTagsOfResourceOutput {
    6         -
    /// <p>The tags currently associated with the Amazon DynamoDB resource.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct ListTagsOfResourceOutput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The tags currently associated with the Amazon DynamoDB resource.</p>
    7     10   
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
    8         -
    /// <p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
    9     12   
    pub next_token: ::std::option::Option<::std::string::String>,
          13  +
    /* StructureGenerator.kt:201 */
   10     14   
}
          15  +
/* StructureGenerator.kt:135 */
   11     16   
impl ListTagsOfResourceOutput {
   12         -
    /// <p>The tags currently associated with the Amazon DynamoDB resource.</p>
   13         -
    ///
   14         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
          17  +
    /// /* StructureGenerator.kt:231 */<p>The tags currently associated with the Amazon DynamoDB resource.</p>
          18  +
    /// /* StructureGenerator.kt:162 */
          19  +
    /// /* StructureGenerator.kt:163 */If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
          20  +
    /* StructureGenerator.kt:166 */
   15     21   
    pub fn tags(&self) -> &[crate::types::Tag] {
   16         -
        self.tags.as_deref().unwrap_or_default()
          22  +
        /* StructureGenerator.kt:169 */
          23  +
        self.tags
          24  +
            .as_deref()
          25  +
            /* StructureGenerator.kt:175 */
          26  +
            .unwrap_or_default()
          27  +
        /* StructureGenerator.kt:166 */
   17     28   
    }
   18         -
    /// <p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
          29  +
    /// /* StructureGenerator.kt:231 */<p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
          30  +
    /* StructureGenerator.kt:166 */
   19     31   
    pub fn next_token(&self) -> ::std::option::Option<&str> {
          32  +
        /* StructureGenerator.kt:169 */
   20     33   
        self.next_token.as_deref()
          34  +
        /* StructureGenerator.kt:166 */
   21     35   
    }
          36  +
    /* StructureGenerator.kt:135 */
   22     37   
}
          38  +
/* ClientCodegenVisitor.kt:237 */
   23     39   
impl ListTagsOfResourceOutput {
   24         -
    /// Creates a new builder-style object to manufacture [`ListTagsOfResourceOutput`](crate::operation::list_tags_of_resource::ListTagsOfResourceOutput).
          40  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`ListTagsOfResourceOutput`](crate::operation::list_tags_of_resource::ListTagsOfResourceOutput).
          41  +
    /* BuilderGenerator.kt:175 */
   25     42   
    pub fn builder() -> crate::operation::list_tags_of_resource::builders::ListTagsOfResourceOutputBuilder {
          43  +
        /* BuilderGenerator.kt:176 */
   26     44   
        crate::operation::list_tags_of_resource::builders::ListTagsOfResourceOutputBuilder::default()
          45  +
        /* BuilderGenerator.kt:175 */
   27     46   
    }
          47  +
    /* ClientCodegenVisitor.kt:237 */
   28     48   
}
   29     49   
   30         -
/// A builder for [`ListTagsOfResourceOutput`](crate::operation::list_tags_of_resource::ListTagsOfResourceOutput).
          50  +
/// /* BuilderGenerator.kt:342 */A builder for [`ListTagsOfResourceOutput`](crate::operation::list_tags_of_resource::ListTagsOfResourceOutput).
          51  +
/* RustType.kt:516 */
   31     52   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          53  +
/* RustType.kt:516 */
   32     54   
#[non_exhaustive]
          55  +
/* BuilderGenerator.kt:345 */
   33     56   
pub struct ListTagsOfResourceOutputBuilder {
   34         -
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
   35         -
    pub(crate) next_token: ::std::option::Option<::std::string::String>,
          57  +
    /* BuilderGenerator.kt:275 */ pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
          58  +
    /* BuilderGenerator.kt:275 */ pub(crate) next_token: ::std::option::Option<::std::string::String>,
          59  +
    /* BuilderGenerator.kt:345 */
   36     60   
}
          61  +
/* BuilderGenerator.kt:355 */
   37     62   
impl ListTagsOfResourceOutputBuilder {
   38         -
    /// Appends an item to `tags`.
          63  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `tags`.
          64  +
    /* BuilderGenerator.kt:411 */
   39     65   
    ///
   40         -
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
          66  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_tags`](Self::set_tags).
          67  +
    /* BuilderGenerator.kt:413 */
   41     68   
    ///
   42         -
    /// <p>The tags currently associated with the Amazon DynamoDB resource.</p>
          69  +
    /// /* BuilderGenerator.kt:414 */<p>The tags currently associated with the Amazon DynamoDB resource.</p>
          70  +
    /* BuilderGenerator.kt:418 */
   43     71   
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
          72  +
        /* BuilderGenerator.kt:419 */
   44     73   
        let mut v = self.tags.unwrap_or_default();
   45     74   
        v.push(input);
   46     75   
        self.tags = ::std::option::Option::Some(v);
   47     76   
        self
          77  +
        /* BuilderGenerator.kt:418 */
   48     78   
    }
   49         -
    /// <p>The tags currently associated with the Amazon DynamoDB resource.</p>
          79  +
    /// /* BuilderGenerator.kt:312 */<p>The tags currently associated with the Amazon DynamoDB resource.</p>
          80  +
    /* BuilderGenerator.kt:314 */
   50     81   
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
          82  +
        /* BuilderGenerator.kt:315 */
   51     83   
        self.tags = input;
   52     84   
        self
          85  +
        /* BuilderGenerator.kt:314 */
   53     86   
    }
   54         -
    /// <p>The tags currently associated with the Amazon DynamoDB resource.</p>
          87  +
    /// /* BuilderGenerator.kt:334 */<p>The tags currently associated with the Amazon DynamoDB resource.</p>
          88  +
    /* BuilderGenerator.kt:336 */
   55     89   
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
          90  +
        /* BuilderGenerator.kt:337 */
   56     91   
        &self.tags
          92  +
        /* BuilderGenerator.kt:336 */
   57     93   
    }
   58         -
    /// <p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
          94  +
    /// /* BuilderGenerator.kt:286 */<p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
          95  +
    /* BuilderGenerator.kt:291 */
   59     96   
    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          97  +
        /* BuilderGenerator.kt:292 */
   60     98   
        self.next_token = ::std::option::Option::Some(input.into());
          99  +
        /* BuilderGenerator.kt:293 */
   61    100   
        self
         101  +
        /* BuilderGenerator.kt:291 */
   62    102   
    }
   63         -
    /// <p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
         103  +
    /// /* BuilderGenerator.kt:312 */<p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
         104  +
    /* BuilderGenerator.kt:314 */
   64    105   
    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         106  +
        /* BuilderGenerator.kt:315 */
   65    107   
        self.next_token = input;
   66    108   
        self
         109  +
        /* BuilderGenerator.kt:314 */
   67    110   
    }
   68         -
    /// <p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
         111  +
    /// /* BuilderGenerator.kt:334 */<p>If this value is returned, there are additional results to be displayed. To retrieve them, call ListTagsOfResource again, with NextToken set to this value.</p>
         112  +
    /* BuilderGenerator.kt:336 */
   69    113   
    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
         114  +
        /* BuilderGenerator.kt:337 */
   70    115   
        &self.next_token
         116  +
        /* BuilderGenerator.kt:336 */
   71    117   
    }
   72         -
    /// Consumes the builder and constructs a [`ListTagsOfResourceOutput`](crate::operation::list_tags_of_resource::ListTagsOfResourceOutput).
         118  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`ListTagsOfResourceOutput`](crate::operation::list_tags_of_resource::ListTagsOfResourceOutput).
         119  +
    /* BuilderGenerator.kt:253 */
   73    120   
    pub fn build(self) -> crate::operation::list_tags_of_resource::ListTagsOfResourceOutput {
         121  +
        /* BuilderGenerator.kt:477 */
   74    122   
        crate::operation::list_tags_of_resource::ListTagsOfResourceOutput {
   75         -
            tags: self.tags,
         123  +
            /* BuilderGenerator.kt:481 */ tags: self.tags,
         124  +
            /* BuilderGenerator.kt:481 */
   76    125   
            next_token: self.next_token,
         126  +
            /* BuilderGenerator.kt:477 */
   77    127   
        }
         128  +
        /* BuilderGenerator.kt:253 */
   78    129   
    }
         130  +
    /* BuilderGenerator.kt:355 */
   79    131   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/list_tags_of_resource/builders.rs

@@ -1,1 +140,158 @@
    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::list_tags_of_resource::_list_tags_of_resource_output::ListTagsOfResourceOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::list_tags_of_resource::_list_tags_of_resource_input::ListTagsOfResourceInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::list_tags_of_resource::builders::ListTagsOfResourceInputBuilder {
    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::list_tags_of_resource::ListTagsOfResourceOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::list_tags_of_resource::ListTagsOfResourceError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.list_tags_of_resource();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `ListTagsOfResource`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `ListTagsOfResource`.
   24     27   
///
   25         -
/// <p>List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource up to 10 times per second, per account.</p>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>List all tags on an Amazon DynamoDB resource. You can call ListTagsOfResource up to 10 times per second, per account.</p>
   26     29   
/// <p>For an overview on tagging DynamoDB resources, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging for DynamoDB</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
          30  +
/* RustType.kt:516 */
   27     31   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          32  +
/* FluentBuilderGenerator.kt:270 */
   28     33   
pub struct ListTagsOfResourceFluentBuilder {
   29     34   
    handle: ::std::sync::Arc<crate::client::Handle>,
   30     35   
    inner: crate::operation::list_tags_of_resource::builders::ListTagsOfResourceInputBuilder,
   31     36   
    config_override: ::std::option::Option<crate::config::Builder>,
   32     37   
}
          38  +
/* FluentBuilderGenerator.kt:381 */
   33     39   
impl
   34     40   
    crate::client::customize::internal::CustomizableSend<
   35     41   
        crate::operation::list_tags_of_resource::ListTagsOfResourceOutput,
   36     42   
        crate::operation::list_tags_of_resource::ListTagsOfResourceError,
   37     43   
    > for ListTagsOfResourceFluentBuilder
   38     44   
{
   39     45   
    fn send(
   40     46   
        self,
   41     47   
        config_override: crate::config::Builder,
   42     48   
    ) -> crate::client::customize::internal::BoxFuture<
   43     49   
        crate::client::customize::internal::SendResult<
   44     50   
            crate::operation::list_tags_of_resource::ListTagsOfResourceOutput,
   45     51   
            crate::operation::list_tags_of_resource::ListTagsOfResourceError,
   46     52   
        >,
   47     53   
    > {
   48     54   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   49     55   
    }
   50     56   
}
          57  +
/* FluentBuilderGenerator.kt:282 */
   51     58   
impl ListTagsOfResourceFluentBuilder {
          59  +
    /* FluentBuilderGenerator.kt:288 */
   52     60   
    /// Creates a new `ListTagsOfResourceFluentBuilder`.
   53     61   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   54     62   
        Self {
   55     63   
            handle,
   56     64   
            inner: ::std::default::Default::default(),
   57     65   
            config_override: ::std::option::Option::None,
   58     66   
        }
   59     67   
    }
          68  +
    /* FluentBuilderGenerator.kt:301 */
   60     69   
    /// Access the ListTagsOfResource as a reference.
   61     70   
    pub fn as_input(&self) -> &crate::operation::list_tags_of_resource::builders::ListTagsOfResourceInputBuilder {
   62     71   
        &self.inner
   63     72   
    }
          73  +
    /* FluentBuilderGenerator.kt:145 */
   64     74   
    /// Sends the request and returns the response.
   65     75   
    ///
   66     76   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   67     77   
    /// can be matched against.
   68     78   
    ///
   69     79   
    /// By default, any retryable failures will be retried twice. Retry behavior
   70     80   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   71     81   
    /// set when configuring the client.
   72     82   
    pub async fn send(
   73     83   
        self,
   74     84   
    ) -> ::std::result::Result<
   75     85   
        crate::operation::list_tags_of_resource::ListTagsOfResourceOutput,
   76     86   
        ::aws_smithy_runtime_api::client::result::SdkError<
   77     87   
            crate::operation::list_tags_of_resource::ListTagsOfResourceError,
   78     88   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   79     89   
        >,
   80     90   
    > {
   81     91   
        let input = self
   82     92   
            .inner
   83     93   
            .build()
   84     94   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   85     95   
        let runtime_plugins = crate::operation::list_tags_of_resource::ListTagsOfResource::operation_runtime_plugins(
   86     96   
            self.handle.runtime_plugins.clone(),
   87     97   
            &self.handle.conf,
   88     98   
            self.config_override,
   89     99   
        );
   90    100   
        crate::operation::list_tags_of_resource::ListTagsOfResource::orchestrate(&runtime_plugins, input).await
   91    101   
    }
   92    102   
   93    103   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   94    104   
    pub fn customize(
   95    105   
        self,
   96    106   
    ) -> crate::client::customize::CustomizableOperation<
   97    107   
        crate::operation::list_tags_of_resource::ListTagsOfResourceOutput,
   98    108   
        crate::operation::list_tags_of_resource::ListTagsOfResourceError,
   99    109   
        Self,
  100    110   
    > {
  101    111   
        crate::client::customize::CustomizableOperation::new(self)
  102    112   
    }
         113  +
    /* FluentBuilderGenerator.kt:315 */
  103    114   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  104    115   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  105    116   
        self
  106    117   
    }
  107    118   
  108    119   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  109    120   
        self.config_override = config_override;
  110    121   
        self
  111    122   
    }
  112         -
    /// <p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
         123  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
         124  +
    /* FluentBuilderGenerator.kt:500 */
  113    125   
    pub fn resource_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  114    126   
        self.inner = self.inner.resource_arn(input.into());
  115    127   
        self
  116    128   
    }
  117         -
    /// <p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
         129  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
         130  +
    /* FluentBuilderGenerator.kt:500 */
  118    131   
    pub fn set_resource_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  119    132   
        self.inner = self.inner.set_resource_arn(input);
  120    133   
        self
  121    134   
    }
  122         -
    /// <p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
         135  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The Amazon DynamoDB resource with tags to be listed. This value is an Amazon Resource Name (ARN).</p>
         136  +
    /* FluentBuilderGenerator.kt:520 */
  123    137   
    pub fn get_resource_arn(&self) -> &::std::option::Option<::std::string::String> {
  124    138   
        self.inner.get_resource_arn()
  125    139   
    }
  126         -
    /// <p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
         140  +
    /// /* FluentBuilderGenerator.kt:498 */<p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
         141  +
    /* FluentBuilderGenerator.kt:500 */
  127    142   
    pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  128    143   
        self.inner = self.inner.next_token(input.into());
  129    144   
        self
  130    145   
    }
  131         -
    /// <p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
         146  +
    /// /* FluentBuilderGenerator.kt:498 */<p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
         147  +
    /* FluentBuilderGenerator.kt:500 */
  132    148   
    pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  133    149   
        self.inner = self.inner.set_next_token(input);
  134    150   
        self
  135    151   
    }
  136         -
    /// <p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
         152  +
    /// /* FluentBuilderGenerator.kt:518 */<p>An optional string that, if supplied, must be copied from the output of a previous call to ListTagOfResource. When provided in this manner, this API fetches the next page of results.</p>
         153  +
    /* FluentBuilderGenerator.kt:520 */
  137    154   
    pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
  138    155   
        self.inner.get_next_token()
  139    156   
    }
         157  +
    /* FluentBuilderGenerator.kt:282 */
  140    158   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/put_item.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 `PutItem`.
           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 PutItem;
          10  +
/* OperationGenerator.kt:85 */
    6     11   
impl PutItem {
    7         -
    /// Creates a new `PutItem`
          12  +
    /// /* OperationGenerator.kt:86 */Creates a new `PutItem`
          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_item::PutItemInput,
   14     23   
    ) -> ::std::result::Result<
   15     24   
        crate::operation::put_item::PutItemOutput,
   16     25   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     26   
            crate::operation::put_item::PutItemError,
   18     27   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     28   
        >,
   20     29   
    > {
@@ -53,62 +405,669 @@
   73     82   
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
   74     83   
            }
   75     84   
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
   76     85   
                config_override,
   77     86   
                client_config.config.clone(),
   78     87   
                &client_config.runtime_components,
   79     88   
            ));
   80     89   
        }
   81     90   
        runtime_plugins
   82     91   
    }
          92  +
    /* OperationGenerator.kt:85 */
   83     93   
}
          94  +
/* OperationRuntimePluginGenerator.kt:55 */
   84     95   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for PutItem {
   85     96   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
   86     97   
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("PutItem");
   87     98   
   88     99   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
   89    100   
            PutItemRequestSerializer,
   90    101   
        ));
   91    102   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
   92    103   
            PutItemResponseDeserializer,
   93    104   
        ));
   94    105   
   95    106   
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
   96    107   
            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
   97    108   
        ));
   98    109   
   99    110   
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("PutItem", "DynamoDB"));
  100    111   
  101    112   
        ::std::option::Option::Some(cfg.freeze())
  102    113   
    }
  103    114   
  104    115   
    fn runtime_components(
  105    116   
        &self,
  106    117   
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
  107    118   
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
  108    119   
        #[allow(unused_mut)]
  109    120   
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("PutItem")
  110    121   
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  111    122   
            .with_interceptor(PutItemEndpointParamsInterceptor)
  112    123   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  113    124   
                crate::operation::put_item::PutItemError,
  114    125   
            >::new())
  115    126   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  116    127   
                crate::operation::put_item::PutItemError,
  117    128   
            >::new());
  118    129   
  119    130   
        ::std::borrow::Cow::Owned(rcb)
  120    131   
    }
  121    132   
}
  122    133   
         134  +
/* ResponseDeserializerGenerator.kt:64 */
  123    135   
#[derive(Debug)]
  124    136   
struct PutItemResponseDeserializer;
  125    137   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutItemResponseDeserializer {
  126    138   
    fn deserialize_nonstreaming(
  127    139   
        &self,
  128    140   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  129    141   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  130    142   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  131    143   
        let headers = response.headers();
  132    144   
        let body = response.body().bytes().expect("body loaded");
  133    145   
        #[allow(unused_mut)]
  134    146   
        let mut force_error = false;
  135    147   
  136    148   
        let parse_result = if !success && status != 200 || force_error {
  137    149   
            crate::protocol_serde::shape_put_item::de_put_item_http_error(status, headers, body)
  138    150   
        } else {
  139    151   
            crate::protocol_serde::shape_put_item::de_put_item_http_response(status, headers, body)
  140    152   
        };
  141    153   
        crate::protocol_serde::type_erase_result(parse_result)
  142    154   
    }
  143    155   
}
         156  +
/* RequestSerializerGenerator.kt:67 */
  144    157   
#[derive(Debug)]
  145    158   
struct PutItemRequestSerializer;
  146    159   
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for PutItemRequestSerializer {
  147    160   
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
  148    161   
    fn serialize_input(
  149    162   
        &self,
  150    163   
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
  151    164   
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  152    165   
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
  153    166   
        let input = input.downcast::<crate::operation::put_item::PutItemInput>().expect("correct type");
  154    167   
        let _header_serialization_settings = _cfg
  155    168   
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
  156    169   
            .cloned()
  157    170   
            .unwrap_or_default();
  158    171   
        let mut request_builder = {
  159    172   
            fn uri_base(
  160    173   
                _input: &crate::operation::put_item::PutItemInput,
  161    174   
                output: &mut ::std::string::String,
  162    175   
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  163    176   
                use ::std::fmt::Write as _;
  164    177   
                ::std::write!(output, "/").expect("formatting should succeed");
  165    178   
                ::std::result::Result::Ok(())
  166    179   
            }
  167    180   
            #[allow(clippy::unnecessary_wraps)]
  168    181   
            fn update_http_builder(
  169    182   
                input: &crate::operation::put_item::PutItemInput,
  170    183   
                builder: ::http::request::Builder,
  171    184   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  172    185   
                let mut uri = ::std::string::String::new();
  173    186   
                uri_base(input, &mut uri)?;
  174    187   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  175    188   
            }
  176    189   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  177    190   
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
  178    191   
            builder = _header_serialization_settings.set_default_header(
  179    192   
                builder,
  180    193   
                ::http::header::HeaderName::from_static("x-amz-target"),
  181    194   
                "DynamoDB_20120810.PutItem",
  182    195   
            );
  183    196   
            builder
  184    197   
        };
  185    198   
        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_put_item::ser_put_item_input(&input)?);
  186    199   
        if let Some(content_length) = body.content_length() {
  187    200   
            let content_length = content_length.to_string();
  188    201   
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  189    202   
        }
  190    203   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  191    204   
    }
  192    205   
}
         206  +
/* EndpointParamsInterceptorGenerator.kt:86 */
  193    207   
#[derive(Debug)]
  194    208   
struct PutItemEndpointParamsInterceptor;
  195    209   
  196    210   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutItemEndpointParamsInterceptor {
  197    211   
    fn name(&self) -> &'static str {
  198    212   
        "PutItemEndpointParamsInterceptor"
  199    213   
    }
  200    214   
  201    215   
    fn read_before_execution(
  202    216   
        &self,
  203    217   
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  204    218   
            '_,
  205    219   
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  206    220   
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  207    221   
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  208    222   
        >,
  209    223   
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  210    224   
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  211    225   
        let _input = context
  212    226   
            .input()
  213    227   
            .downcast_ref::<PutItemInput>()
  214    228   
            .ok_or("failed to downcast to PutItemInput")?;
  215    229   
  216    230   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  217    231   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  218    232   
        })?;
  219    233   
        cfg.interceptor_state()
  220    234   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  221    235   
        ::std::result::Result::Ok(())
  222    236   
    }
  223    237   
}
  224    238   
  225    239   
// The get_* functions below are generated from JMESPath expressions in the
  226    240   
// operationContextParams trait. They target the operation's input shape.
  227    241   
         242  +
/* OperationErrorGenerator.kt:79 */
  228    243   
/// Error type for the `PutItemError` operation.
         244  +
/* RustType.kt:516 */
  229    245   
#[non_exhaustive]
         246  +
/* RustType.kt:516 */
  230    247   
#[derive(::std::fmt::Debug)]
  231         -
pub enum PutItemError {
  232         -
    /// <p>A condition specified in the operation could not be evaluated.</p>
         248  +
pub /* OperationErrorGenerator.kt:81 */ enum PutItemError {
         249  +
    /// /* OperationErrorGenerator.kt:83 */<p>A condition specified in the operation could not be evaluated.</p>
         250  +
    /* OperationErrorGenerator.kt:86 */
  233    251   
    ConditionalCheckFailedError(crate::types::error::ConditionalCheckFailedError),
  234         -
    /// <p>An error occurred on the server side.</p>
         252  +
    /// /* OperationErrorGenerator.kt:83 */<p>An error occurred on the server side.</p>
         253  +
    /* OperationErrorGenerator.kt:86 */
  235    254   
    InternalServerError(crate::types::error::InternalServerError),
         255  +
    /* OperationErrorGenerator.kt:83 */
  236    256   
    #[allow(missing_docs)] // documentation missing in model
         257  +
    /* OperationErrorGenerator.kt:86 */
  237    258   
    InvalidEndpointError(crate::types::error::InvalidEndpointError),
  238         -
    /// <p>An item collection is too large. This exception is only returned for tables that have one or more local secondary indexes.</p>
         259  +
    /// /* OperationErrorGenerator.kt:83 */<p>An item collection is too large. This exception is only returned for tables that have one or more local secondary indexes.</p>
         260  +
    /* OperationErrorGenerator.kt:86 */
  239    261   
    ItemCollectionSizeLimitExceededError(crate::types::error::ItemCollectionSizeLimitExceededError),
  240         -
    /// <p>Your request rate is too high. The AWS SDKs for DynamoDB automatically retry requests that receive this exception. Your request is eventually successful, unless your retry queue is too large to finish. Reduce the frequency of requests and use exponential backoff. For more information, go to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff">Error Retries and Exponential Backoff</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         262  +
    /// /* OperationErrorGenerator.kt:83 */<p>Your request rate is too high. The AWS SDKs for DynamoDB automatically retry requests that receive this exception. Your request is eventually successful, unless your retry queue is too large to finish. Reduce the frequency of requests and use exponential backoff. For more information, go to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html#Programming.Errors.RetryAndBackoff">Error Retries and Exponential Backoff</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         263  +
    /* OperationErrorGenerator.kt:86 */
  241    264   
    ProvisionedThroughputExceededError(crate::types::error::ProvisionedThroughputExceededError),
  242         -
    /// <p>Throughput exceeds the current throughput quota for your account. Please contact AWS Support at <a href="https://aws.amazon.com/support">AWS Support</a> to request a quota increase.</p>
         265  +
    /// /* OperationErrorGenerator.kt:83 */<p>Throughput exceeds the current throughput quota for your account. Please contact AWS Support at <a href="https://aws.amazon.com/support">AWS Support</a> to request a quota increase.</p>
         266  +
    /* OperationErrorGenerator.kt:86 */
  243    267   
    RequestLimitExceeded(crate::types::error::RequestLimitExceeded),
  244         -
    /// <p>The operation tried to access a nonexistent table or index. The resource might not be specified correctly, or its status might not be <code>ACTIVE</code>.</p>
         268  +
    /// /* OperationErrorGenerator.kt:83 */<p>The operation tried to access a nonexistent table or index. The resource might not be specified correctly, or its status might not be <code>ACTIVE</code>.</p>
         269  +
    /* OperationErrorGenerator.kt:86 */
  245    270   
    ResourceNotFoundError(crate::types::error::ResourceNotFoundError),
  246         -
    /// <p>Operation was rejected because there is an ongoing transaction for the item.</p>
         271  +
    /// /* OperationErrorGenerator.kt:83 */<p>Operation was rejected because there is an ongoing transaction for the item.</p>
         272  +
    /* OperationErrorGenerator.kt:86 */
  247    273   
    TransactionConflictError(crate::types::error::TransactionConflictError),
         274  +
    /* OperationErrorGenerator.kt:88 */
  248    275   
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  249    276   
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  250    277   
    variable wildcard pattern and check `.code()`:
  251    278   
     \
  252    279   
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  253    280   
     \
  254    281   
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-PutItemError) for what information is available for the error.")]
  255    282   
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         283  +
    /* OperationErrorGenerator.kt:81 */
  256    284   
}
         285  +
/* OperationErrorGenerator.kt:218 */
  257    286   
impl PutItemError {
         287  +
    /* OperationErrorGenerator.kt:219 */
  258    288   
    /// Creates the `PutItemError::Unhandled` variant from any error type.
  259    289   
    pub fn unhandled(
  260    290   
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  261    291   
    ) -> Self {
  262    292   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  263    293   
            source: err.into(),
  264    294   
            meta: ::std::default::Default::default(),
  265    295   
        })
  266    296   
    }
  267    297   
  268    298   
    /// Creates the `PutItemError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  269    299   
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  270    300   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  271    301   
            source: err.clone().into(),
  272    302   
            meta: err,
  273    303   
        })
  274    304   
    }
  275         -
    ///
         305  +
    /// /* OperationErrorGenerator.kt:236 */
  276    306   
    /// Returns error metadata, which includes the error code, message,
  277    307   
    /// request ID, and potentially additional information.
  278    308   
    ///
         309  +
    /* OperationErrorGenerator.kt:242 */
  279    310   
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         311  +
        /* OperationErrorGenerator.kt:243 */
  280    312   
        match self {
         313  +
            /* OperationErrorGenerator.kt:246 */
  281    314   
            Self::ConditionalCheckFailedError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         315  +
            /* OperationErrorGenerator.kt:246 */
  282    316   
            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         317  +
            /* OperationErrorGenerator.kt:246 */
  283    318   
            Self::InvalidEndpointError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         319  +
            /* OperationErrorGenerator.kt:246 */
  284    320   
            Self::ItemCollectionSizeLimitExceededError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         321  +
            /* OperationErrorGenerator.kt:246 */
  285    322   
            Self::ProvisionedThroughputExceededError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         323  +
            /* OperationErrorGenerator.kt:246 */
  286    324   
            Self::RequestLimitExceeded(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         325  +
            /* OperationErrorGenerator.kt:246 */
  287    326   
            Self::ResourceNotFoundError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         327  +
            /* OperationErrorGenerator.kt:246 */
  288    328   
            Self::TransactionConflictError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
  289         -
            Self::Unhandled(e) => &e.meta,
         329  +
            /* OperationErrorGenerator.kt:251 */ Self::Unhandled(e) => &e.meta,
         330  +
            /* OperationErrorGenerator.kt:243 */
  290    331   
        }
         332  +
        /* OperationErrorGenerator.kt:242 */
  291    333   
    }
         334  +
    /* OperationErrorGenerator.kt:257 */
  292    335   
    /// Returns `true` if the error kind is `PutItemError::ConditionalCheckFailedError`.
         336  +
    /* OperationErrorGenerator.kt:258 */
  293    337   
    pub fn is_conditional_check_failed_error(&self) -> bool {
         338  +
        /* OperationErrorGenerator.kt:259 */
  294    339   
        matches!(self, Self::ConditionalCheckFailedError(_))
         340  +
        /* OperationErrorGenerator.kt:258 */
  295    341   
    }
         342  +
    /* OperationErrorGenerator.kt:257 */
  296    343   
    /// Returns `true` if the error kind is `PutItemError::InternalServerError`.
         344  +
    /* OperationErrorGenerator.kt:258 */
  297    345   
    pub fn is_internal_server_error(&self) -> bool {
         346  +
        /* OperationErrorGenerator.kt:259 */
  298    347   
        matches!(self, Self::InternalServerError(_))
         348  +
        /* OperationErrorGenerator.kt:258 */
  299    349   
    }
         350  +
    /* OperationErrorGenerator.kt:257 */
  300    351   
    /// Returns `true` if the error kind is `PutItemError::InvalidEndpointError`.
         352  +
    /* OperationErrorGenerator.kt:258 */
  301    353   
    pub fn is_invalid_endpoint_error(&self) -> bool {
         354  +
        /* OperationErrorGenerator.kt:259 */
  302    355   
        matches!(self, Self::InvalidEndpointError(_))
         356  +
        /* OperationErrorGenerator.kt:258 */
  303    357   
    }
         358  +
    /* OperationErrorGenerator.kt:257 */
  304    359   
    /// Returns `true` if the error kind is `PutItemError::ItemCollectionSizeLimitExceededError`.
         360  +
    /* OperationErrorGenerator.kt:258 */
  305    361   
    pub fn is_item_collection_size_limit_exceeded_error(&self) -> bool {
         362  +
        /* OperationErrorGenerator.kt:259 */
  306    363   
        matches!(self, Self::ItemCollectionSizeLimitExceededError(_))
         364  +
        /* OperationErrorGenerator.kt:258 */
  307    365   
    }
         366  +
    /* OperationErrorGenerator.kt:257 */
  308    367   
    /// Returns `true` if the error kind is `PutItemError::ProvisionedThroughputExceededError`.
         368  +
    /* OperationErrorGenerator.kt:258 */
  309    369   
    pub fn is_provisioned_throughput_exceeded_error(&self) -> bool {
         370  +
        /* OperationErrorGenerator.kt:259 */
  310    371   
        matches!(self, Self::ProvisionedThroughputExceededError(_))
         372  +
        /* OperationErrorGenerator.kt:258 */
  311    373   
    }
         374  +
    /* OperationErrorGenerator.kt:257 */
  312    375   
    /// Returns `true` if the error kind is `PutItemError::RequestLimitExceeded`.
         376  +
    /* OperationErrorGenerator.kt:258 */
  313    377   
    pub fn is_request_limit_exceeded(&self) -> bool {
         378  +
        /* OperationErrorGenerator.kt:259 */
  314    379   
        matches!(self, Self::RequestLimitExceeded(_))
         380  +
        /* OperationErrorGenerator.kt:258 */
  315    381   
    }
         382  +
    /* OperationErrorGenerator.kt:257 */
  316    383   
    /// Returns `true` if the error kind is `PutItemError::ResourceNotFoundError`.
         384  +
    /* OperationErrorGenerator.kt:258 */
  317    385   
    pub fn is_resource_not_found_error(&self) -> bool {
         386  +
        /* OperationErrorGenerator.kt:259 */
  318    387   
        matches!(self, Self::ResourceNotFoundError(_))
         388  +
        /* OperationErrorGenerator.kt:258 */
  319    389   
    }
         390  +
    /* OperationErrorGenerator.kt:257 */
  320    391   
    /// Returns `true` if the error kind is `PutItemError::TransactionConflictError`.
         392  +
    /* OperationErrorGenerator.kt:258 */
  321    393   
    pub fn is_transaction_conflict_error(&self) -> bool {
         394  +
        /* OperationErrorGenerator.kt:259 */
  322    395   
        matches!(self, Self::TransactionConflictError(_))
         396  +
        /* OperationErrorGenerator.kt:258 */
  323    397   
    }
         398  +
    /* OperationErrorGenerator.kt:218 */
  324    399   
}
         400  +
/* OperationErrorGenerator.kt:269 */
  325    401   
impl ::std::error::Error for PutItemError {
         402  +
    /* OperationErrorGenerator.kt:270 */
  326    403   
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         404  +
        /* OperationErrorGenerator.kt:318 */
  327    405   
        match self {
  328         -
            Self::ConditionalCheckFailedError(_inner) => ::std::option::Option::Some(_inner),
  329         -
            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
  330         -
            Self::InvalidEndpointError(_inner) => ::std::option::Option::Some(_inner),
  331         -
            Self::ItemCollectionSizeLimitExceededError(_inner) => ::std::option::Option::Some(_inner),
  332         -
            Self::ProvisionedThroughputExceededError(_inner) => ::std::option::Option::Some(_inner),
  333         -
            Self::RequestLimitExceeded(_inner) => ::std::option::Option::Some(_inner),
  334         -
            Self::ResourceNotFoundError(_inner) => ::std::option::Option::Some(_inner),
  335         -
            Self::TransactionConflictError(_inner) => ::std::option::Option::Some(_inner),
  336         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         406  +
            /* OperationErrorGenerator.kt:321 */
         407  +
            Self::ConditionalCheckFailedError(_inner) =>
         408  +
            /* OperationErrorGenerator.kt:283 */
         409  +
            {
         410  +
                ::std::option::Option::Some(_inner)
         411  +
            }
         412  +
            ,
         413  +
            /* OperationErrorGenerator.kt:321 */
         414  +
            Self::InternalServerError(_inner) =>
         415  +
            /* OperationErrorGenerator.kt:283 */
         416  +
            {
         417  +
                ::std::option::Option::Some(_inner)
         418  +
            }
         419  +
            ,
         420  +
            /* OperationErrorGenerator.kt:321 */
         421  +
            Self::InvalidEndpointError(_inner) =>
         422  +
            /* OperationErrorGenerator.kt:283 */
         423  +
            {
         424  +
                ::std::option::Option::Some(_inner)
         425  +
            }
         426  +
            ,
         427  +
            /* OperationErrorGenerator.kt:321 */
         428  +
            Self::ItemCollectionSizeLimitExceededError(_inner) =>
         429  +
            /* OperationErrorGenerator.kt:283 */
         430  +
            {
         431  +
                ::std::option::Option::Some(_inner)
         432  +
            }
         433  +
            ,
         434  +
            /* OperationErrorGenerator.kt:321 */
         435  +
            Self::ProvisionedThroughputExceededError(_inner) =>
         436  +
            /* OperationErrorGenerator.kt:283 */
         437  +
            {
         438  +
                ::std::option::Option::Some(_inner)
         439  +
            }
         440  +
            ,
         441  +
            /* OperationErrorGenerator.kt:321 */
         442  +
            Self::RequestLimitExceeded(_inner) =>
         443  +
            /* OperationErrorGenerator.kt:283 */
         444  +
            {
         445  +
                ::std::option::Option::Some(_inner)
         446  +
            }
         447  +
            ,
         448  +
            /* OperationErrorGenerator.kt:321 */
         449  +
            Self::ResourceNotFoundError(_inner) =>
         450  +
            /* OperationErrorGenerator.kt:283 */
         451  +
            {
         452  +
                ::std::option::Option::Some(_inner)
         453  +
            }
         454  +
            ,
         455  +
            /* OperationErrorGenerator.kt:321 */
         456  +
            Self::TransactionConflictError(_inner) =>
         457  +
            /* OperationErrorGenerator.kt:283 */
         458  +
            {
         459  +
                ::std::option::Option::Some(_inner)
         460  +
            }
         461  +
            ,
         462  +
            /* OperationErrorGenerator.kt:326 */
         463  +
            Self::Unhandled(_inner) => {
         464  +
                /* OperationErrorGenerator.kt:279 */
         465  +
                ::std::option::Option::Some(&*_inner.source)
         466  +
                /* OperationErrorGenerator.kt:326 */
         467  +
            } /* OperationErrorGenerator.kt:318 */
  337    468   
        }
         469  +
        /* OperationErrorGenerator.kt:270 */
  338    470   
    }
         471  +
    /* OperationErrorGenerator.kt:269 */
  339    472   
}
         473  +
/* OperationErrorGenerator.kt:133 */
  340    474   
impl ::std::fmt::Display for PutItemError {
         475  +
    /* OperationErrorGenerator.kt:134 */
  341    476   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         477  +
        /* OperationErrorGenerator.kt:318 */
  342    478   
        match self {
  343         -
            Self::ConditionalCheckFailedError(_inner) => _inner.fmt(f),
  344         -
            Self::InternalServerError(_inner) => _inner.fmt(f),
  345         -
            Self::InvalidEndpointError(_inner) => _inner.fmt(f),
  346         -
            Self::ItemCollectionSizeLimitExceededError(_inner) => _inner.fmt(f),
  347         -
            Self::ProvisionedThroughputExceededError(_inner) => _inner.fmt(f),
  348         -
            Self::RequestLimitExceeded(_inner) => _inner.fmt(f),
  349         -
            Self::ResourceNotFoundError(_inner) => _inner.fmt(f),
  350         -
            Self::TransactionConflictError(_inner) => _inner.fmt(f),
         479  +
            /* OperationErrorGenerator.kt:321 */
         480  +
            Self::ConditionalCheckFailedError(_inner) =>
         481  +
            /* OperationErrorGenerator.kt:151 */
         482  +
            {
         483  +
                _inner.fmt(f)
         484  +
            }
         485  +
            ,
         486  +
            /* OperationErrorGenerator.kt:321 */
         487  +
            Self::InternalServerError(_inner) =>
         488  +
            /* OperationErrorGenerator.kt:151 */
         489  +
            {
         490  +
                _inner.fmt(f)
         491  +
            }
         492  +
            ,
         493  +
            /* OperationErrorGenerator.kt:321 */
         494  +
            Self::InvalidEndpointError(_inner) =>
         495  +
            /* OperationErrorGenerator.kt:151 */
         496  +
            {
         497  +
                _inner.fmt(f)
         498  +
            }
         499  +
            ,
         500  +
            /* OperationErrorGenerator.kt:321 */
         501  +
            Self::ItemCollectionSizeLimitExceededError(_inner) =>
         502  +
            /* OperationErrorGenerator.kt:151 */
         503  +
            {
         504  +
                _inner.fmt(f)
         505  +
            }
         506  +
            ,
         507  +
            /* OperationErrorGenerator.kt:321 */
         508  +
            Self::ProvisionedThroughputExceededError(_inner) =>
         509  +
            /* OperationErrorGenerator.kt:151 */
         510  +
            {
         511  +
                _inner.fmt(f)
         512  +
            }
         513  +
            ,
         514  +
            /* OperationErrorGenerator.kt:321 */
         515  +
            Self::RequestLimitExceeded(_inner) =>
         516  +
            /* OperationErrorGenerator.kt:151 */
         517  +
            {
         518  +
                _inner.fmt(f)
         519  +
            }
         520  +
            ,
         521  +
            /* OperationErrorGenerator.kt:321 */
         522  +
            Self::ResourceNotFoundError(_inner) =>
         523  +
            /* OperationErrorGenerator.kt:151 */
         524  +
            {
         525  +
                _inner.fmt(f)
         526  +
            }
         527  +
            ,
         528  +
            /* OperationErrorGenerator.kt:321 */
         529  +
            Self::TransactionConflictError(_inner) =>
         530  +
            /* OperationErrorGenerator.kt:151 */
         531  +
            {
         532  +
                _inner.fmt(f)
         533  +
            }
         534  +
            ,
         535  +
            /* OperationErrorGenerator.kt:326 */
  351    536   
            Self::Unhandled(_inner) => {
         537  +
                /* OperationErrorGenerator.kt:139 */
  352    538   
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  353    539   
                    write!(f, "unhandled error ({code})")
  354    540   
                } else {
  355    541   
                    f.write_str("unhandled error")
  356    542   
                }
  357         -
            }
         543  +
                /* OperationErrorGenerator.kt:326 */
         544  +
            } /* OperationErrorGenerator.kt:318 */
  358    545   
        }
         546  +
        /* OperationErrorGenerator.kt:134 */
  359    547   
    }
         548  +
    /* OperationErrorGenerator.kt:133 */
  360    549   
}
         550  +
/* OperationErrorGenerator.kt:182 */
  361    551   
impl ::aws_smithy_types::retry::ProvideErrorKind for PutItemError {
         552  +
    /* OperationErrorGenerator.kt:186 */
  362    553   
    fn code(&self) -> ::std::option::Option<&str> {
         554  +
        /* OperationErrorGenerator.kt:187 */
  363    555   
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         556  +
        /* OperationErrorGenerator.kt:186 */
  364    557   
    }
         558  +
    /* OperationErrorGenerator.kt:190 */
  365    559   
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         560  +
        /* OperationErrorGenerator.kt:197 */
  366    561   
        ::std::option::Option::None
         562  +
        /* OperationErrorGenerator.kt:190 */
  367    563   
    }
         564  +
    /* OperationErrorGenerator.kt:182 */
  368    565   
}
         566  +
/* OperationErrorGenerator.kt:163 */
  369    567   
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for PutItemError {
         568  +
    /* OperationErrorGenerator.kt:164 */
  370    569   
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         570  +
        /* OperationErrorGenerator.kt:318 */
  371    571   
        match self {
  372         -
            Self::ConditionalCheckFailedError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  373         -
            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  374         -
            Self::InvalidEndpointError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  375         -
            Self::ItemCollectionSizeLimitExceededError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  376         -
            Self::ProvisionedThroughputExceededError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  377         -
            Self::RequestLimitExceeded(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  378         -
            Self::ResourceNotFoundError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  379         -
            Self::TransactionConflictError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  380         -
            Self::Unhandled(_inner) => &_inner.meta,
         572  +
            /* OperationErrorGenerator.kt:321 */
         573  +
            Self::ConditionalCheckFailedError(_inner) =>
         574  +
            /* OperationErrorGenerator.kt:169 */
         575  +
            {
         576  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         577  +
            }
         578  +
            ,
         579  +
            /* OperationErrorGenerator.kt:321 */
         580  +
            Self::InternalServerError(_inner) =>
         581  +
            /* OperationErrorGenerator.kt:169 */
         582  +
            {
         583  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         584  +
            }
         585  +
            ,
         586  +
            /* OperationErrorGenerator.kt:321 */
         587  +
            Self::InvalidEndpointError(_inner) =>
         588  +
            /* OperationErrorGenerator.kt:169 */
         589  +
            {
         590  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         591  +
            }
         592  +
            ,
         593  +
            /* OperationErrorGenerator.kt:321 */
         594  +
            Self::ItemCollectionSizeLimitExceededError(_inner) =>
         595  +
            /* OperationErrorGenerator.kt:169 */
         596  +
            {
         597  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         598  +
            }
         599  +
            ,
         600  +
            /* OperationErrorGenerator.kt:321 */
         601  +
            Self::ProvisionedThroughputExceededError(_inner) =>
         602  +
            /* OperationErrorGenerator.kt:169 */
         603  +
            {
         604  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         605  +
            }
         606  +
            ,
         607  +
            /* OperationErrorGenerator.kt:321 */
         608  +
            Self::RequestLimitExceeded(_inner) =>
         609  +
            /* OperationErrorGenerator.kt:169 */
         610  +
            {
         611  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         612  +
            }
         613  +
            ,
         614  +
            /* OperationErrorGenerator.kt:321 */
         615  +
            Self::ResourceNotFoundError(_inner) =>
         616  +
            /* OperationErrorGenerator.kt:169 */
         617  +
            {
         618  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         619  +
            }
         620  +
            ,
         621  +
            /* OperationErrorGenerator.kt:321 */
         622  +
            Self::TransactionConflictError(_inner) =>
         623  +
            /* OperationErrorGenerator.kt:169 */
         624  +
            {
         625  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         626  +
            }
         627  +
            ,
         628  +
            /* OperationErrorGenerator.kt:326 */
         629  +
            Self::Unhandled(_inner) => {
         630  +
                /* OperationErrorGenerator.kt:168 */
         631  +
                &_inner.meta
         632  +
                /* OperationErrorGenerator.kt:326 */
         633  +
            } /* OperationErrorGenerator.kt:318 */
  381    634   
        }
         635  +
        /* OperationErrorGenerator.kt:164 */
  382    636   
    }
         637  +
    /* OperationErrorGenerator.kt:163 */
  383    638   
}
         639  +
/* OperationErrorGenerator.kt:109 */
  384    640   
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for PutItemError {
         641  +
    /* OperationErrorGenerator.kt:110 */
  385    642   
    fn create_unhandled_error(
  386    643   
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  387    644   
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  388    645   
    ) -> Self {
         646  +
        /* OperationErrorGenerator.kt:121 */
  389    647   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  390    648   
            source,
  391    649   
            meta: meta.unwrap_or_default(),
  392    650   
        })
         651  +
        /* OperationErrorGenerator.kt:110 */
  393    652   
    }
         653  +
    /* OperationErrorGenerator.kt:109 */
  394    654   
}
  395    655   
         656  +
/* CodegenDelegator.kt:255 */
  396    657   
pub use crate::operation::put_item::_put_item_output::PutItemOutput;
  397    658   
         659  +
/* CodegenDelegator.kt:255 */
  398    660   
pub use crate::operation::put_item::_put_item_input::PutItemInput;
  399    661   
         662  +
/* RustModule.kt:172 */
  400    663   
mod _put_item_input;
  401    664   
         665  +
/* RustModule.kt:172 */
  402    666   
mod _put_item_output;
  403    667   
  404         -
/// Builders
         668  +
/// /* CodegenDelegator.kt:51 */Builders
  405    669   
pub mod builders;