Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/update_table_replica_auto_scaling/_update_table_replica_auto_scaling_input.rs

@@ -1,1 +143,234 @@
    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 UpdateTableReplicaAutoScalingInput {
    6         -
    /// <p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct UpdateTableReplicaAutoScalingInput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
    7     10   
    pub global_secondary_index_updates: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexAutoScalingUpdate>>,
    8         -
    /// <p>The name of the global table to be updated.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>The name of the global table to be updated.</p>
    9     12   
    pub table_name: ::std::option::Option<::std::string::String>,
   10         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          13  +
    /// /* StructureGenerator.kt:231 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
   11     14   
    pub provisioned_write_capacity_auto_scaling_update: ::std::option::Option<crate::types::AutoScalingSettingsUpdate>,
   12         -
    /// <p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
          15  +
    /// /* StructureGenerator.kt:231 */<p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
   13     16   
    pub replica_updates: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaAutoScalingUpdate>>,
          17  +
    /* StructureGenerator.kt:201 */
   14     18   
}
          19  +
/* StructureGenerator.kt:135 */
   15     20   
impl UpdateTableReplicaAutoScalingInput {
   16         -
    /// <p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</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 `.global_secondary_index_updates.is_none()`.
          21  +
    /// /* StructureGenerator.kt:231 */<p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
          22  +
    /// /* StructureGenerator.kt:162 */
          23  +
    /// /* 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 `.global_secondary_index_updates.is_none()`.
          24  +
    /* StructureGenerator.kt:166 */
   19     25   
    pub fn global_secondary_index_updates(&self) -> &[crate::types::GlobalSecondaryIndexAutoScalingUpdate] {
   20         -
        self.global_secondary_index_updates.as_deref().unwrap_or_default()
   21         -
    }
   22         -
    /// <p>The name of the global table to be updated.</p>
          26  +
        /* StructureGenerator.kt:169 */
          27  +
        self.global_secondary_index_updates
          28  +
            .as_deref()
          29  +
            /* StructureGenerator.kt:175 */
          30  +
            .unwrap_or_default()
          31  +
        /* StructureGenerator.kt:166 */
          32  +
    }
          33  +
    /// /* StructureGenerator.kt:231 */<p>The name of the global table to be updated.</p>
          34  +
    /* StructureGenerator.kt:166 */
   23     35   
    pub fn table_name(&self) -> ::std::option::Option<&str> {
          36  +
        /* StructureGenerator.kt:169 */
   24     37   
        self.table_name.as_deref()
          38  +
        /* StructureGenerator.kt:166 */
   25     39   
    }
   26         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          40  +
    /// /* StructureGenerator.kt:231 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          41  +
    /* StructureGenerator.kt:166 */
   27     42   
    pub fn provisioned_write_capacity_auto_scaling_update(&self) -> ::std::option::Option<&crate::types::AutoScalingSettingsUpdate> {
          43  +
        /* StructureGenerator.kt:170 */
   28     44   
        self.provisioned_write_capacity_auto_scaling_update.as_ref()
          45  +
        /* StructureGenerator.kt:166 */
   29     46   
    }
   30         -
    /// <p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
   31         -
    ///
   32         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.replica_updates.is_none()`.
          47  +
    /// /* StructureGenerator.kt:231 */<p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
          48  +
    /// /* StructureGenerator.kt:162 */
          49  +
    /// /* 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 `.replica_updates.is_none()`.
          50  +
    /* StructureGenerator.kt:166 */
   33     51   
    pub fn replica_updates(&self) -> &[crate::types::ReplicaAutoScalingUpdate] {
   34         -
        self.replica_updates.as_deref().unwrap_or_default()
   35         -
    }
          52  +
        /* StructureGenerator.kt:169 */
          53  +
        self.replica_updates
          54  +
            .as_deref()
          55  +
            /* StructureGenerator.kt:175 */
          56  +
            .unwrap_or_default()
          57  +
        /* StructureGenerator.kt:166 */
          58  +
    }
          59  +
    /* StructureGenerator.kt:135 */
   36     60   
}
          61  +
/* ClientCodegenVisitor.kt:237 */
   37     62   
impl UpdateTableReplicaAutoScalingInput {
   38         -
    /// Creates a new builder-style object to manufacture [`UpdateTableReplicaAutoScalingInput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput).
          63  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`UpdateTableReplicaAutoScalingInput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput).
          64  +
    /* BuilderGenerator.kt:175 */
   39     65   
    pub fn builder() -> crate::operation::update_table_replica_auto_scaling::builders::UpdateTableReplicaAutoScalingInputBuilder {
          66  +
        /* BuilderGenerator.kt:176 */
   40     67   
        crate::operation::update_table_replica_auto_scaling::builders::UpdateTableReplicaAutoScalingInputBuilder::default()
          68  +
        /* BuilderGenerator.kt:175 */
   41     69   
    }
          70  +
    /* ClientCodegenVisitor.kt:237 */
   42     71   
}
   43     72   
   44         -
/// A builder for [`UpdateTableReplicaAutoScalingInput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput).
          73  +
/// /* BuilderGenerator.kt:342 */A builder for [`UpdateTableReplicaAutoScalingInput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput).
          74  +
/* RustType.kt:516 */
   45     75   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          76  +
/* RustType.kt:516 */
   46     77   
#[non_exhaustive]
          78  +
/* BuilderGenerator.kt:345 */
   47     79   
pub struct UpdateTableReplicaAutoScalingInputBuilder {
          80  +
    /* BuilderGenerator.kt:275 */
   48     81   
    pub(crate) global_secondary_index_updates: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexAutoScalingUpdate>>,
   49         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
          82  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_name: ::std::option::Option<::std::string::String>,
          83  +
    /* BuilderGenerator.kt:275 */
   50     84   
    pub(crate) provisioned_write_capacity_auto_scaling_update: ::std::option::Option<crate::types::AutoScalingSettingsUpdate>,
          85  +
    /* BuilderGenerator.kt:275 */
   51     86   
    pub(crate) replica_updates: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaAutoScalingUpdate>>,
          87  +
    /* BuilderGenerator.kt:345 */
   52     88   
}
          89  +
/* BuilderGenerator.kt:355 */
   53     90   
impl UpdateTableReplicaAutoScalingInputBuilder {
   54         -
    /// Appends an item to `global_secondary_index_updates`.
          91  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `global_secondary_index_updates`.
          92  +
    /* BuilderGenerator.kt:411 */
   55     93   
    ///
   56         -
    /// To override the contents of this collection use [`set_global_secondary_index_updates`](Self::set_global_secondary_index_updates).
          94  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_global_secondary_index_updates`](Self::set_global_secondary_index_updates).
          95  +
    /* BuilderGenerator.kt:413 */
   57     96   
    ///
   58         -
    /// <p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
          97  +
    /// /* BuilderGenerator.kt:414 */<p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
          98  +
    /* BuilderGenerator.kt:418 */
   59     99   
    pub fn global_secondary_index_updates(mut self, input: crate::types::GlobalSecondaryIndexAutoScalingUpdate) -> Self {
         100  +
        /* BuilderGenerator.kt:419 */
   60    101   
        let mut v = self.global_secondary_index_updates.unwrap_or_default();
   61    102   
        v.push(input);
   62    103   
        self.global_secondary_index_updates = ::std::option::Option::Some(v);
   63    104   
        self
         105  +
        /* BuilderGenerator.kt:418 */
   64    106   
    }
   65         -
    /// <p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         107  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         108  +
    /* BuilderGenerator.kt:314 */
   66    109   
    pub fn set_global_secondary_index_updates(
   67    110   
        mut self,
   68    111   
        input: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexAutoScalingUpdate>>,
   69    112   
    ) -> Self {
         113  +
        /* BuilderGenerator.kt:315 */
   70    114   
        self.global_secondary_index_updates = input;
   71    115   
        self
         116  +
        /* BuilderGenerator.kt:314 */
   72    117   
    }
   73         -
    /// <p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         118  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         119  +
    /* BuilderGenerator.kt:336 */
   74    120   
    pub fn get_global_secondary_index_updates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexAutoScalingUpdate>> {
         121  +
        /* BuilderGenerator.kt:337 */
   75    122   
        &self.global_secondary_index_updates
         123  +
        /* BuilderGenerator.kt:336 */
   76    124   
    }
   77         -
    /// <p>The name of the global table to be updated.</p>
   78         -
    /// This field is required.
         125  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the global table to be updated.</p>
         126  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         127  +
    /* BuilderGenerator.kt:291 */
   79    128   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         129  +
        /* BuilderGenerator.kt:292 */
   80    130   
        self.table_name = ::std::option::Option::Some(input.into());
         131  +
        /* BuilderGenerator.kt:293 */
   81    132   
        self
         133  +
        /* BuilderGenerator.kt:291 */
   82    134   
    }
   83         -
    /// <p>The name of the global table to be updated.</p>
         135  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the global table to be updated.</p>
         136  +
    /* BuilderGenerator.kt:314 */
   84    137   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         138  +
        /* BuilderGenerator.kt:315 */
   85    139   
        self.table_name = input;
   86    140   
        self
         141  +
        /* BuilderGenerator.kt:314 */
   87    142   
    }
   88         -
    /// <p>The name of the global table to be updated.</p>
         143  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the global table to be updated.</p>
         144  +
    /* BuilderGenerator.kt:336 */
   89    145   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
         146  +
        /* BuilderGenerator.kt:337 */
   90    147   
        &self.table_name
         148  +
        /* BuilderGenerator.kt:336 */
   91    149   
    }
   92         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         150  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         151  +
    /* BuilderGenerator.kt:291 */
   93    152   
    pub fn provisioned_write_capacity_auto_scaling_update(mut self, input: crate::types::AutoScalingSettingsUpdate) -> Self {
         153  +
        /* BuilderGenerator.kt:292 */
   94    154   
        self.provisioned_write_capacity_auto_scaling_update = ::std::option::Option::Some(input);
         155  +
        /* BuilderGenerator.kt:293 */
   95    156   
        self
         157  +
        /* BuilderGenerator.kt:291 */
   96    158   
    }
   97         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         159  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         160  +
    /* BuilderGenerator.kt:314 */
   98    161   
    pub fn set_provisioned_write_capacity_auto_scaling_update(
   99    162   
        mut self,
  100    163   
        input: ::std::option::Option<crate::types::AutoScalingSettingsUpdate>,
  101    164   
    ) -> Self {
         165  +
        /* BuilderGenerator.kt:315 */
  102    166   
        self.provisioned_write_capacity_auto_scaling_update = input;
  103    167   
        self
         168  +
        /* BuilderGenerator.kt:314 */
  104    169   
    }
  105         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         170  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         171  +
    /* BuilderGenerator.kt:336 */
  106    172   
    pub fn get_provisioned_write_capacity_auto_scaling_update(&self) -> &::std::option::Option<crate::types::AutoScalingSettingsUpdate> {
         173  +
        /* BuilderGenerator.kt:337 */
  107    174   
        &self.provisioned_write_capacity_auto_scaling_update
         175  +
        /* BuilderGenerator.kt:336 */
  108    176   
    }
  109         -
    /// Appends an item to `replica_updates`.
         177  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `replica_updates`.
         178  +
    /* BuilderGenerator.kt:411 */
  110    179   
    ///
  111         -
    /// To override the contents of this collection use [`set_replica_updates`](Self::set_replica_updates).
         180  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_replica_updates`](Self::set_replica_updates).
         181  +
    /* BuilderGenerator.kt:413 */
  112    182   
    ///
  113         -
    /// <p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         183  +
    /// /* BuilderGenerator.kt:414 */<p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         184  +
    /* BuilderGenerator.kt:418 */
  114    185   
    pub fn replica_updates(mut self, input: crate::types::ReplicaAutoScalingUpdate) -> Self {
         186  +
        /* BuilderGenerator.kt:419 */
  115    187   
        let mut v = self.replica_updates.unwrap_or_default();
  116    188   
        v.push(input);
  117    189   
        self.replica_updates = ::std::option::Option::Some(v);
  118    190   
        self
         191  +
        /* BuilderGenerator.kt:418 */
  119    192   
    }
  120         -
    /// <p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         193  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         194  +
    /* BuilderGenerator.kt:314 */
  121    195   
    pub fn set_replica_updates(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaAutoScalingUpdate>>) -> Self {
         196  +
        /* BuilderGenerator.kt:315 */
  122    197   
        self.replica_updates = input;
  123    198   
        self
         199  +
        /* BuilderGenerator.kt:314 */
  124    200   
    }
  125         -
    /// <p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         201  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         202  +
    /* BuilderGenerator.kt:336 */
  126    203   
    pub fn get_replica_updates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicaAutoScalingUpdate>> {
         204  +
        /* BuilderGenerator.kt:337 */
  127    205   
        &self.replica_updates
         206  +
        /* BuilderGenerator.kt:336 */
  128    207   
    }
  129         -
    /// Consumes the builder and constructs a [`UpdateTableReplicaAutoScalingInput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput).
         208  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`UpdateTableReplicaAutoScalingInput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput).
         209  +
    /* BuilderGenerator.kt:253 */
  130    210   
    pub fn build(
  131    211   
        self,
  132    212   
    ) -> ::std::result::Result<
  133    213   
        crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput,
  134    214   
        ::aws_smithy_types::error::operation::BuildError,
  135    215   
    > {
  136         -
        ::std::result::Result::Ok(crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput {
         216  +
        /* BuilderGenerator.kt:254 */
         217  +
        ::std::result::Result::Ok(
         218  +
            /* BuilderGenerator.kt:477 */
         219  +
            crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingInput {
         220  +
                /* BuilderGenerator.kt:481 */
  137    221   
                global_secondary_index_updates: self.global_secondary_index_updates,
         222  +
                /* BuilderGenerator.kt:481 */
  138    223   
                table_name: self.table_name,
         224  +
                /* BuilderGenerator.kt:481 */
  139    225   
                provisioned_write_capacity_auto_scaling_update: self.provisioned_write_capacity_auto_scaling_update,
         226  +
                /* BuilderGenerator.kt:481 */
  140    227   
                replica_updates: self.replica_updates,
  141         -
        })
         228  +
                /* BuilderGenerator.kt:477 */
         229  +
            }, /* BuilderGenerator.kt:254 */
         230  +
        )
         231  +
        /* BuilderGenerator.kt:253 */
  142    232   
    }
         233  +
    /* BuilderGenerator.kt:355 */
  143    234   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/update_table_replica_auto_scaling/_update_table_replica_auto_scaling_output.rs

@@ -1,1 +49,85 @@
    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 UpdateTableReplicaAutoScalingOutput {
    6         -
    /// <p>Returns information about the auto scaling settings of a table with replicas.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct UpdateTableReplicaAutoScalingOutput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>Returns information about the auto scaling settings of a table with replicas.</p>
    7     10   
    pub table_auto_scaling_description: ::std::option::Option<crate::types::TableAutoScalingDescription>,
          11  +
    /* StructureGenerator.kt:201 */
    8     12   
}
          13  +
/* StructureGenerator.kt:135 */
    9     14   
impl UpdateTableReplicaAutoScalingOutput {
   10         -
    /// <p>Returns information about the auto scaling settings of a table with replicas.</p>
          15  +
    /// /* StructureGenerator.kt:231 */<p>Returns information about the auto scaling settings of a table with replicas.</p>
          16  +
    /* StructureGenerator.kt:166 */
   11     17   
    pub fn table_auto_scaling_description(&self) -> ::std::option::Option<&crate::types::TableAutoScalingDescription> {
          18  +
        /* StructureGenerator.kt:170 */
   12     19   
        self.table_auto_scaling_description.as_ref()
          20  +
        /* StructureGenerator.kt:166 */
   13     21   
    }
          22  +
    /* StructureGenerator.kt:135 */
   14     23   
}
          24  +
/* ClientCodegenVisitor.kt:237 */
   15     25   
impl UpdateTableReplicaAutoScalingOutput {
   16         -
    /// Creates a new builder-style object to manufacture [`UpdateTableReplicaAutoScalingOutput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput).
          26  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`UpdateTableReplicaAutoScalingOutput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput).
          27  +
    /* BuilderGenerator.kt:175 */
   17     28   
    pub fn builder() -> crate::operation::update_table_replica_auto_scaling::builders::UpdateTableReplicaAutoScalingOutputBuilder {
          29  +
        /* BuilderGenerator.kt:176 */
   18     30   
        crate::operation::update_table_replica_auto_scaling::builders::UpdateTableReplicaAutoScalingOutputBuilder::default()
          31  +
        /* BuilderGenerator.kt:175 */
   19     32   
    }
          33  +
    /* ClientCodegenVisitor.kt:237 */
   20     34   
}
   21     35   
   22         -
/// A builder for [`UpdateTableReplicaAutoScalingOutput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput).
          36  +
/// /* BuilderGenerator.kt:342 */A builder for [`UpdateTableReplicaAutoScalingOutput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput).
          37  +
/* RustType.kt:516 */
   23     38   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          39  +
/* RustType.kt:516 */
   24     40   
#[non_exhaustive]
          41  +
/* BuilderGenerator.kt:345 */
   25     42   
pub struct UpdateTableReplicaAutoScalingOutputBuilder {
          43  +
    /* BuilderGenerator.kt:275 */
   26     44   
    pub(crate) table_auto_scaling_description: ::std::option::Option<crate::types::TableAutoScalingDescription>,
          45  +
    /* BuilderGenerator.kt:345 */
   27     46   
}
          47  +
/* BuilderGenerator.kt:355 */
   28     48   
impl UpdateTableReplicaAutoScalingOutputBuilder {
   29         -
    /// <p>Returns information about the auto scaling settings of a table with replicas.</p>
          49  +
    /// /* BuilderGenerator.kt:286 */<p>Returns information about the auto scaling settings of a table with replicas.</p>
          50  +
    /* BuilderGenerator.kt:291 */
   30     51   
    pub fn table_auto_scaling_description(mut self, input: crate::types::TableAutoScalingDescription) -> Self {
          52  +
        /* BuilderGenerator.kt:292 */
   31     53   
        self.table_auto_scaling_description = ::std::option::Option::Some(input);
          54  +
        /* BuilderGenerator.kt:293 */
   32     55   
        self
          56  +
        /* BuilderGenerator.kt:291 */
   33     57   
    }
   34         -
    /// <p>Returns information about the auto scaling settings of a table with replicas.</p>
          58  +
    /// /* BuilderGenerator.kt:312 */<p>Returns information about the auto scaling settings of a table with replicas.</p>
          59  +
    /* BuilderGenerator.kt:314 */
   35     60   
    pub fn set_table_auto_scaling_description(mut self, input: ::std::option::Option<crate::types::TableAutoScalingDescription>) -> Self {
          61  +
        /* BuilderGenerator.kt:315 */
   36     62   
        self.table_auto_scaling_description = input;
   37     63   
        self
          64  +
        /* BuilderGenerator.kt:314 */
   38     65   
    }
   39         -
    /// <p>Returns information about the auto scaling settings of a table with replicas.</p>
          66  +
    /// /* BuilderGenerator.kt:334 */<p>Returns information about the auto scaling settings of a table with replicas.</p>
          67  +
    /* BuilderGenerator.kt:336 */
   40     68   
    pub fn get_table_auto_scaling_description(&self) -> &::std::option::Option<crate::types::TableAutoScalingDescription> {
          69  +
        /* BuilderGenerator.kt:337 */
   41     70   
        &self.table_auto_scaling_description
          71  +
        /* BuilderGenerator.kt:336 */
   42     72   
    }
   43         -
    /// Consumes the builder and constructs a [`UpdateTableReplicaAutoScalingOutput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput).
          73  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`UpdateTableReplicaAutoScalingOutput`](crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput).
          74  +
    /* BuilderGenerator.kt:253 */
   44     75   
    pub fn build(self) -> crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput {
          76  +
        /* BuilderGenerator.kt:477 */
   45     77   
        crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput {
          78  +
            /* BuilderGenerator.kt:481 */
   46     79   
            table_auto_scaling_description: self.table_auto_scaling_description,
          80  +
            /* BuilderGenerator.kt:477 */
   47     81   
        }
          82  +
        /* BuilderGenerator.kt:253 */
   48     83   
    }
          84  +
    /* BuilderGenerator.kt:355 */
   49     85   
}

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

@@ -1,1 +185,209 @@
    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::update_table_replica_auto_scaling::_update_table_replica_auto_scaling_output::UpdateTableReplicaAutoScalingOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::update_table_replica_auto_scaling::_update_table_replica_auto_scaling_input::UpdateTableReplicaAutoScalingInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::update_table_replica_auto_scaling::builders::UpdateTableReplicaAutoScalingInputBuilder {
    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::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.update_table_replica_auto_scaling();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `UpdateTableReplicaAutoScaling`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `UpdateTableReplicaAutoScaling`.
   24     27   
///
   25         -
/// <p>Updates auto scaling settings on your global tables at once.</p><note>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>Updates auto scaling settings on your global tables at once.</p><note>
   26     29   
/// <p>This operation only applies to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 2019.11.21</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 UpdateTableReplicaAutoScalingFluentBuilder {
   30     35   
    handle: ::std::sync::Arc<crate::client::Handle>,
   31     36   
    inner: crate::operation::update_table_replica_auto_scaling::builders::UpdateTableReplicaAutoScalingInputBuilder,
   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::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput,
   37     43   
        crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingError,
   38     44   
    > for UpdateTableReplicaAutoScalingFluentBuilder
   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::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput,
   46     52   
            crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingError,
   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 UpdateTableReplicaAutoScalingFluentBuilder {
          60  +
    /* FluentBuilderGenerator.kt:288 */
   53     61   
    /// Creates a new `UpdateTableReplicaAutoScalingFluentBuilder`.
   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 UpdateTableReplicaAutoScaling as a reference.
   62     71   
    pub fn as_input(&self) -> &crate::operation::update_table_replica_auto_scaling::builders::UpdateTableReplicaAutoScalingInputBuilder {
   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::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput,
   77     87   
        ::aws_smithy_runtime_api::client::result::SdkError<
   78     88   
            crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingError,
   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::update_table_replica_auto_scaling::UpdateTableReplicaAutoScaling::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::update_table_replica_auto_scaling::UpdateTableReplicaAutoScaling::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::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingOutput,
   99    109   
        crate::operation::update_table_replica_auto_scaling::UpdateTableReplicaAutoScalingError,
  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         -
    ///
         124  +
    /// /* FluentBuilderGenerator.kt:436 */
  114    125   
    /// Appends an item to `GlobalSecondaryIndexUpdates`.
  115    126   
    ///
  116    127   
    /// To override the contents of this collection use [`set_global_secondary_index_updates`](Self::set_global_secondary_index_updates).
  117    128   
    ///
  118         -
    /// <p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         129  +
    /// /* FluentBuilderGenerator.kt:443 */<p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         130  +
    /* FluentBuilderGenerator.kt:446 */
  119    131   
    pub fn global_secondary_index_updates(mut self, input: crate::types::GlobalSecondaryIndexAutoScalingUpdate) -> Self {
  120    132   
        self.inner = self.inner.global_secondary_index_updates(input);
  121    133   
        self
  122    134   
    }
  123         -
    /// <p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         135  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         136  +
    /* FluentBuilderGenerator.kt:500 */
  124    137   
    pub fn set_global_secondary_index_updates(
  125    138   
        mut self,
  126    139   
        input: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexAutoScalingUpdate>>,
  127    140   
    ) -> Self {
  128    141   
        self.inner = self.inner.set_global_secondary_index_updates(input);
  129    142   
        self
  130    143   
    }
  131         -
    /// <p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         144  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Represents the auto scaling settings of the global secondary indexes of the replica to be updated.</p>
         145  +
    /* FluentBuilderGenerator.kt:520 */
  132    146   
    pub fn get_global_secondary_index_updates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexAutoScalingUpdate>> {
  133    147   
        self.inner.get_global_secondary_index_updates()
  134    148   
    }
  135         -
    /// <p>The name of the global table to be updated.</p>
         149  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the global table to be updated.</p>
         150  +
    /* FluentBuilderGenerator.kt:500 */
  136    151   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  137    152   
        self.inner = self.inner.table_name(input.into());
  138    153   
        self
  139    154   
    }
  140         -
    /// <p>The name of the global table to be updated.</p>
         155  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the global table to be updated.</p>
         156  +
    /* FluentBuilderGenerator.kt:500 */
  141    157   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  142    158   
        self.inner = self.inner.set_table_name(input);
  143    159   
        self
  144    160   
    }
  145         -
    /// <p>The name of the global table to be updated.</p>
         161  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The name of the global table to be updated.</p>
         162  +
    /* FluentBuilderGenerator.kt:520 */
  146    163   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
  147    164   
        self.inner.get_table_name()
  148    165   
    }
  149         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         166  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         167  +
    /* FluentBuilderGenerator.kt:500 */
  150    168   
    pub fn provisioned_write_capacity_auto_scaling_update(mut self, input: crate::types::AutoScalingSettingsUpdate) -> Self {
  151    169   
        self.inner = self.inner.provisioned_write_capacity_auto_scaling_update(input);
  152    170   
        self
  153    171   
    }
  154         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         172  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         173  +
    /* FluentBuilderGenerator.kt:500 */
  155    174   
    pub fn set_provisioned_write_capacity_auto_scaling_update(
  156    175   
        mut self,
  157    176   
        input: ::std::option::Option<crate::types::AutoScalingSettingsUpdate>,
  158    177   
    ) -> Self {
  159    178   
        self.inner = self.inner.set_provisioned_write_capacity_auto_scaling_update(input);
  160    179   
        self
  161    180   
    }
  162         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         181  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         182  +
    /* FluentBuilderGenerator.kt:520 */
  163    183   
    pub fn get_provisioned_write_capacity_auto_scaling_update(&self) -> &::std::option::Option<crate::types::AutoScalingSettingsUpdate> {
  164    184   
        self.inner.get_provisioned_write_capacity_auto_scaling_update()
  165    185   
    }
  166         -
    ///
         186  +
    /// /* FluentBuilderGenerator.kt:436 */
  167    187   
    /// Appends an item to `ReplicaUpdates`.
  168    188   
    ///
  169    189   
    /// To override the contents of this collection use [`set_replica_updates`](Self::set_replica_updates).
  170    190   
    ///
  171         -
    /// <p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         191  +
    /// /* FluentBuilderGenerator.kt:443 */<p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         192  +
    /* FluentBuilderGenerator.kt:446 */
  172    193   
    pub fn replica_updates(mut self, input: crate::types::ReplicaAutoScalingUpdate) -> Self {
  173    194   
        self.inner = self.inner.replica_updates(input);
  174    195   
        self
  175    196   
    }
  176         -
    /// <p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         197  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         198  +
    /* FluentBuilderGenerator.kt:500 */
  177    199   
    pub fn set_replica_updates(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaAutoScalingUpdate>>) -> Self {
  178    200   
        self.inner = self.inner.set_replica_updates(input);
  179    201   
        self
  180    202   
    }
  181         -
    /// <p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         203  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Represents the auto scaling settings of replicas of the table that will be modified.</p>
         204  +
    /* FluentBuilderGenerator.kt:520 */
  182    205   
    pub fn get_replica_updates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicaAutoScalingUpdate>> {
  183    206   
        self.inner.get_replica_updates()
  184    207   
    }
         208  +
    /* FluentBuilderGenerator.kt:282 */
  185    209   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/update_time_to_live.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 `UpdateTimeToLive`.
           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 UpdateTimeToLive;
          10  +
/* OperationGenerator.kt:85 */
    6     11   
impl UpdateTimeToLive {
    7         -
    /// Creates a new `UpdateTimeToLive`
          12  +
    /// /* OperationGenerator.kt:86 */Creates a new `UpdateTimeToLive`
          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::update_time_to_live::UpdateTimeToLiveInput,
   14     23   
    ) -> ::std::result::Result<
   15     24   
        crate::operation::update_time_to_live::UpdateTimeToLiveOutput,
   16     25   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     26   
            crate::operation::update_time_to_live::UpdateTimeToLiveError,
   18     27   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     28   
        >,
   20     29   
    > {
@@ -57,66 +387,579 @@
   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 UpdateTimeToLive {
   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("UpdateTimeToLive");
   91    102   
   92    103   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
   93    104   
            UpdateTimeToLiveRequestSerializer,
   94    105   
        ));
   95    106   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
   96    107   
            UpdateTimeToLiveResponseDeserializer,
   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   
            "UpdateTimeToLive",
  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("UpdateTimeToLive")
  117    128   
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  118    129   
            .with_interceptor(UpdateTimeToLiveEndpointParamsInterceptor)
  119    130   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  120    131   
                crate::operation::update_time_to_live::UpdateTimeToLiveError,
  121    132   
            >::new())
  122    133   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  123    134   
                crate::operation::update_time_to_live::UpdateTimeToLiveError,
  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 UpdateTimeToLiveResponseDeserializer;
  132    144   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UpdateTimeToLiveResponseDeserializer {
  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_update_time_to_live::de_update_time_to_live_http_error(status, headers, body)
  145    157   
        } else {
  146    158   
            crate::protocol_serde::shape_update_time_to_live::de_update_time_to_live_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 UpdateTimeToLiveRequestSerializer;
  153    166   
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UpdateTimeToLiveRequestSerializer {
  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::update_time_to_live::UpdateTimeToLiveInput>()
  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::update_time_to_live::UpdateTimeToLiveInput,
  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::update_time_to_live::UpdateTimeToLiveInput,
  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.UpdateTimeToLive",
  191    204   
            );
  192    205   
            builder
  193    206   
        };
  194    207   
        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_update_time_to_live::ser_update_time_to_live_input(&input)?);
  195    208   
        if let Some(content_length) = body.content_length() {
  196    209   
            let content_length = content_length.to_string();
  197    210   
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  198    211   
        }
  199    212   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  200    213   
    }
  201    214   
}
         215  +
/* EndpointParamsInterceptorGenerator.kt:86 */
  202    216   
#[derive(Debug)]
  203    217   
struct UpdateTimeToLiveEndpointParamsInterceptor;
  204    218   
  205    219   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateTimeToLiveEndpointParamsInterceptor {
  206    220   
    fn name(&self) -> &'static str {
  207    221   
        "UpdateTimeToLiveEndpointParamsInterceptor"
  208    222   
    }
  209    223   
  210    224   
    fn read_before_execution(
  211    225   
        &self,
  212    226   
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  213    227   
            '_,
  214    228   
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  215    229   
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  216    230   
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  217    231   
        >,
  218    232   
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  219    233   
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  220    234   
        let _input = context
  221    235   
            .input()
  222    236   
            .downcast_ref::<UpdateTimeToLiveInput>()
  223    237   
            .ok_or("failed to downcast to UpdateTimeToLiveInput")?;
  224    238   
  225    239   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  226    240   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  227    241   
        })?;
  228    242   
        cfg.interceptor_state()
  229    243   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  230    244   
        ::std::result::Result::Ok(())
  231    245   
    }
  232    246   
}
  233    247   
  234    248   
// The get_* functions below are generated from JMESPath expressions in the
  235    249   
// operationContextParams trait. They target the operation's input shape.
  236    250   
         251  +
/* OperationErrorGenerator.kt:79 */
  237    252   
/// Error type for the `UpdateTimeToLiveError` operation.
         253  +
/* RustType.kt:516 */
  238    254   
#[non_exhaustive]
         255  +
/* RustType.kt:516 */
  239    256   
#[derive(::std::fmt::Debug)]
  240         -
pub enum UpdateTimeToLiveError {
  241         -
    /// <p>An error occurred on the server side.</p>
         257  +
pub /* OperationErrorGenerator.kt:81 */ enum UpdateTimeToLiveError {
         258  +
    /// /* OperationErrorGenerator.kt:83 */<p>An error occurred on the server side.</p>
         259  +
    /* OperationErrorGenerator.kt:86 */
  242    260   
    InternalServerError(crate::types::error::InternalServerError),
         261  +
    /* OperationErrorGenerator.kt:83 */
  243    262   
    #[allow(missing_docs)] // documentation missing in model
         263  +
    /* OperationErrorGenerator.kt:86 */
  244    264   
    InvalidEndpointError(crate::types::error::InvalidEndpointError),
  245         -
    /// <p>There is no limit to the number of daily on-demand backups that can be taken.</p>
         265  +
    /// /* OperationErrorGenerator.kt:83 */<p>There is no limit to the number of daily on-demand backups that can be taken.</p>
  246    266   
    /// <p>Up to 50 simultaneous table operations are allowed per account. These operations include <code>CreateTable</code>, <code>UpdateTable</code>, <code>DeleteTable</code>,<code>UpdateTimeToLive</code>, <code>RestoreTableFromBackup</code>, and <code>RestoreTableToPointInTime</code>.</p>
  247    267   
    /// <p>The only exception is when you are creating a table with one or more secondary indexes. You can have up to 25 such requests running at a time; however, if the table or index specifications are complex, DynamoDB might temporarily reduce the number of concurrent operations.</p>
  248    268   
    /// <p>There is a soft account quota of 256 tables.</p>
         269  +
    /* OperationErrorGenerator.kt:86 */
  249    270   
    LimitExceededError(crate::types::error::LimitExceededError),
  250         -
    /// <p>The operation conflicts with the resource's availability. For example, you attempted to recreate an existing table, or tried to delete a table currently in the <code>CREATING</code> state.</p>
         271  +
    /// /* OperationErrorGenerator.kt:83 */<p>The operation conflicts with the resource's availability. For example, you attempted to recreate an existing table, or tried to delete a table currently in the <code>CREATING</code> state.</p>
         272  +
    /* OperationErrorGenerator.kt:86 */
  251    273   
    ResourceInUseError(crate::types::error::ResourceInUseError),
  252         -
    /// <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>
         274  +
    /// /* 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>
         275  +
    /* OperationErrorGenerator.kt:86 */
  253    276   
    ResourceNotFoundError(crate::types::error::ResourceNotFoundError),
         277  +
    /* OperationErrorGenerator.kt:88 */
  254    278   
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  255    279   
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  256    280   
    variable wildcard pattern and check `.code()`:
  257    281   
     \
  258    282   
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  259    283   
     \
  260    284   
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-UpdateTimeToLiveError) for what information is available for the error.")]
  261    285   
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         286  +
    /* OperationErrorGenerator.kt:81 */
  262    287   
}
         288  +
/* OperationErrorGenerator.kt:218 */
  263    289   
impl UpdateTimeToLiveError {
         290  +
    /* OperationErrorGenerator.kt:219 */
  264    291   
    /// Creates the `UpdateTimeToLiveError::Unhandled` variant from any error type.
  265    292   
    pub fn unhandled(
  266    293   
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  267    294   
    ) -> Self {
  268    295   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  269    296   
            source: err.into(),
  270    297   
            meta: ::std::default::Default::default(),
  271    298   
        })
  272    299   
    }
  273    300   
  274    301   
    /// Creates the `UpdateTimeToLiveError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  275    302   
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  276    303   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  277    304   
            source: err.clone().into(),
  278    305   
            meta: err,
  279    306   
        })
  280    307   
    }
  281         -
    ///
         308  +
    /// /* OperationErrorGenerator.kt:236 */
  282    309   
    /// Returns error metadata, which includes the error code, message,
  283    310   
    /// request ID, and potentially additional information.
  284    311   
    ///
         312  +
    /* OperationErrorGenerator.kt:242 */
  285    313   
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         314  +
        /* OperationErrorGenerator.kt:243 */
  286    315   
        match self {
         316  +
            /* OperationErrorGenerator.kt:246 */
  287    317   
            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         318  +
            /* OperationErrorGenerator.kt:246 */
  288    319   
            Self::InvalidEndpointError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         320  +
            /* OperationErrorGenerator.kt:246 */
  289    321   
            Self::LimitExceededError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         322  +
            /* OperationErrorGenerator.kt:246 */
  290    323   
            Self::ResourceInUseError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         324  +
            /* OperationErrorGenerator.kt:246 */
  291    325   
            Self::ResourceNotFoundError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
  292         -
            Self::Unhandled(e) => &e.meta,
         326  +
            /* OperationErrorGenerator.kt:251 */ Self::Unhandled(e) => &e.meta,
         327  +
            /* OperationErrorGenerator.kt:243 */
  293    328   
        }
         329  +
        /* OperationErrorGenerator.kt:242 */
  294    330   
    }
         331  +
    /* OperationErrorGenerator.kt:257 */
  295    332   
    /// Returns `true` if the error kind is `UpdateTimeToLiveError::InternalServerError`.
         333  +
    /* OperationErrorGenerator.kt:258 */
  296    334   
    pub fn is_internal_server_error(&self) -> bool {
         335  +
        /* OperationErrorGenerator.kt:259 */
  297    336   
        matches!(self, Self::InternalServerError(_))
         337  +
        /* OperationErrorGenerator.kt:258 */
  298    338   
    }
         339  +
    /* OperationErrorGenerator.kt:257 */
  299    340   
    /// Returns `true` if the error kind is `UpdateTimeToLiveError::InvalidEndpointError`.
         341  +
    /* OperationErrorGenerator.kt:258 */
  300    342   
    pub fn is_invalid_endpoint_error(&self) -> bool {
         343  +
        /* OperationErrorGenerator.kt:259 */
  301    344   
        matches!(self, Self::InvalidEndpointError(_))
         345  +
        /* OperationErrorGenerator.kt:258 */
  302    346   
    }
         347  +
    /* OperationErrorGenerator.kt:257 */
  303    348   
    /// Returns `true` if the error kind is `UpdateTimeToLiveError::LimitExceededError`.
         349  +
    /* OperationErrorGenerator.kt:258 */
  304    350   
    pub fn is_limit_exceeded_error(&self) -> bool {
         351  +
        /* OperationErrorGenerator.kt:259 */
  305    352   
        matches!(self, Self::LimitExceededError(_))
         353  +
        /* OperationErrorGenerator.kt:258 */
  306    354   
    }
         355  +
    /* OperationErrorGenerator.kt:257 */
  307    356   
    /// Returns `true` if the error kind is `UpdateTimeToLiveError::ResourceInUseError`.
         357  +
    /* OperationErrorGenerator.kt:258 */
  308    358   
    pub fn is_resource_in_use_error(&self) -> bool {
         359  +
        /* OperationErrorGenerator.kt:259 */
  309    360   
        matches!(self, Self::ResourceInUseError(_))
         361  +
        /* OperationErrorGenerator.kt:258 */
  310    362   
    }
         363  +
    /* OperationErrorGenerator.kt:257 */
  311    364   
    /// Returns `true` if the error kind is `UpdateTimeToLiveError::ResourceNotFoundError`.
         365  +
    /* OperationErrorGenerator.kt:258 */
  312    366   
    pub fn is_resource_not_found_error(&self) -> bool {
         367  +
        /* OperationErrorGenerator.kt:259 */
  313    368   
        matches!(self, Self::ResourceNotFoundError(_))
         369  +
        /* OperationErrorGenerator.kt:258 */
  314    370   
    }
         371  +
    /* OperationErrorGenerator.kt:218 */
  315    372   
}
         373  +
/* OperationErrorGenerator.kt:269 */
  316    374   
impl ::std::error::Error for UpdateTimeToLiveError {
         375  +
    /* OperationErrorGenerator.kt:270 */
  317    376   
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         377  +
        /* OperationErrorGenerator.kt:318 */
  318    378   
        match self {
  319         -
            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
  320         -
            Self::InvalidEndpointError(_inner) => ::std::option::Option::Some(_inner),
  321         -
            Self::LimitExceededError(_inner) => ::std::option::Option::Some(_inner),
  322         -
            Self::ResourceInUseError(_inner) => ::std::option::Option::Some(_inner),
  323         -
            Self::ResourceNotFoundError(_inner) => ::std::option::Option::Some(_inner),
  324         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         379  +
            /* OperationErrorGenerator.kt:321 */
         380  +
            Self::InternalServerError(_inner) =>
         381  +
            /* OperationErrorGenerator.kt:283 */
         382  +
            {
         383  +
                ::std::option::Option::Some(_inner)
         384  +
            }
         385  +
            ,
         386  +
            /* OperationErrorGenerator.kt:321 */
         387  +
            Self::InvalidEndpointError(_inner) =>
         388  +
            /* OperationErrorGenerator.kt:283 */
         389  +
            {
         390  +
                ::std::option::Option::Some(_inner)
         391  +
            }
         392  +
            ,
         393  +
            /* OperationErrorGenerator.kt:321 */
         394  +
            Self::LimitExceededError(_inner) =>
         395  +
            /* OperationErrorGenerator.kt:283 */
         396  +
            {
         397  +
                ::std::option::Option::Some(_inner)
         398  +
            }
         399  +
            ,
         400  +
            /* OperationErrorGenerator.kt:321 */
         401  +
            Self::ResourceInUseError(_inner) =>
         402  +
            /* OperationErrorGenerator.kt:283 */
         403  +
            {
         404  +
                ::std::option::Option::Some(_inner)
         405  +
            }
         406  +
            ,
         407  +
            /* OperationErrorGenerator.kt:321 */
         408  +
            Self::ResourceNotFoundError(_inner) =>
         409  +
            /* OperationErrorGenerator.kt:283 */
         410  +
            {
         411  +
                ::std::option::Option::Some(_inner)
         412  +
            }
         413  +
            ,
         414  +
            /* OperationErrorGenerator.kt:326 */
         415  +
            Self::Unhandled(_inner) => {
         416  +
                /* OperationErrorGenerator.kt:279 */
         417  +
                ::std::option::Option::Some(&*_inner.source)
         418  +
                /* OperationErrorGenerator.kt:326 */
         419  +
            } /* OperationErrorGenerator.kt:318 */
  325    420   
        }
         421  +
        /* OperationErrorGenerator.kt:270 */
  326    422   
    }
         423  +
    /* OperationErrorGenerator.kt:269 */
  327    424   
}
         425  +
/* OperationErrorGenerator.kt:133 */
  328    426   
impl ::std::fmt::Display for UpdateTimeToLiveError {
         427  +
    /* OperationErrorGenerator.kt:134 */
  329    428   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         429  +
        /* OperationErrorGenerator.kt:318 */
  330    430   
        match self {
  331         -
            Self::InternalServerError(_inner) => _inner.fmt(f),
  332         -
            Self::InvalidEndpointError(_inner) => _inner.fmt(f),
  333         -
            Self::LimitExceededError(_inner) => _inner.fmt(f),
  334         -
            Self::ResourceInUseError(_inner) => _inner.fmt(f),
  335         -
            Self::ResourceNotFoundError(_inner) => _inner.fmt(f),
         431  +
            /* OperationErrorGenerator.kt:321 */
         432  +
            Self::InternalServerError(_inner) =>
         433  +
            /* OperationErrorGenerator.kt:151 */
         434  +
            {
         435  +
                _inner.fmt(f)
         436  +
            }
         437  +
            ,
         438  +
            /* OperationErrorGenerator.kt:321 */
         439  +
            Self::InvalidEndpointError(_inner) =>
         440  +
            /* OperationErrorGenerator.kt:151 */
         441  +
            {
         442  +
                _inner.fmt(f)
         443  +
            }
         444  +
            ,
         445  +
            /* OperationErrorGenerator.kt:321 */
         446  +
            Self::LimitExceededError(_inner) =>
         447  +
            /* OperationErrorGenerator.kt:151 */
         448  +
            {
         449  +
                _inner.fmt(f)
         450  +
            }
         451  +
            ,
         452  +
            /* OperationErrorGenerator.kt:321 */
         453  +
            Self::ResourceInUseError(_inner) =>
         454  +
            /* OperationErrorGenerator.kt:151 */
         455  +
            {
         456  +
                _inner.fmt(f)
         457  +
            }
         458  +
            ,
         459  +
            /* OperationErrorGenerator.kt:321 */
         460  +
            Self::ResourceNotFoundError(_inner) =>
         461  +
            /* OperationErrorGenerator.kt:151 */
         462  +
            {
         463  +
                _inner.fmt(f)
         464  +
            }
         465  +
            ,
         466  +
            /* OperationErrorGenerator.kt:326 */
  336    467   
            Self::Unhandled(_inner) => {
         468  +
                /* OperationErrorGenerator.kt:139 */
  337    469   
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  338    470   
                    write!(f, "unhandled error ({code})")
  339    471   
                } else {
  340    472   
                    f.write_str("unhandled error")
  341    473   
                }
         474  +
                /* OperationErrorGenerator.kt:326 */
         475  +
            } /* OperationErrorGenerator.kt:318 */
  342    476   
        }
         477  +
        /* OperationErrorGenerator.kt:134 */
  343    478   
    }
  344         -
    }
         479  +
    /* OperationErrorGenerator.kt:133 */
  345    480   
}
         481  +
/* OperationErrorGenerator.kt:182 */
  346    482   
impl ::aws_smithy_types::retry::ProvideErrorKind for UpdateTimeToLiveError {
         483  +
    /* OperationErrorGenerator.kt:186 */
  347    484   
    fn code(&self) -> ::std::option::Option<&str> {
         485  +
        /* OperationErrorGenerator.kt:187 */
  348    486   
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         487  +
        /* OperationErrorGenerator.kt:186 */
  349    488   
    }
         489  +
    /* OperationErrorGenerator.kt:190 */
  350    490   
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         491  +
        /* OperationErrorGenerator.kt:197 */
  351    492   
        ::std::option::Option::None
         493  +
        /* OperationErrorGenerator.kt:190 */
  352    494   
    }
         495  +
    /* OperationErrorGenerator.kt:182 */
  353    496   
}
         497  +
/* OperationErrorGenerator.kt:163 */
  354    498   
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UpdateTimeToLiveError {
         499  +
    /* OperationErrorGenerator.kt:164 */
  355    500   
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         501  +
        /* OperationErrorGenerator.kt:318 */
  356    502   
        match self {
  357         -
            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  358         -
            Self::InvalidEndpointError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  359         -
            Self::LimitExceededError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  360         -
            Self::ResourceInUseError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  361         -
            Self::ResourceNotFoundError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  362         -
            Self::Unhandled(_inner) => &_inner.meta,
         503  +
            /* OperationErrorGenerator.kt:321 */
         504  +
            Self::InternalServerError(_inner) =>
         505  +
            /* OperationErrorGenerator.kt:169 */
         506  +
            {
         507  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         508  +
            }
         509  +
            ,
         510  +
            /* OperationErrorGenerator.kt:321 */
         511  +
            Self::InvalidEndpointError(_inner) =>
         512  +
            /* OperationErrorGenerator.kt:169 */
         513  +
            {
         514  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         515  +
            }
         516  +
            ,
         517  +
            /* OperationErrorGenerator.kt:321 */
         518  +
            Self::LimitExceededError(_inner) =>
         519  +
            /* OperationErrorGenerator.kt:169 */
         520  +
            {
         521  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         522  +
            }
         523  +
            ,
         524  +
            /* OperationErrorGenerator.kt:321 */
         525  +
            Self::ResourceInUseError(_inner) =>
         526  +
            /* OperationErrorGenerator.kt:169 */
         527  +
            {
         528  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         529  +
            }
         530  +
            ,
         531  +
            /* OperationErrorGenerator.kt:321 */
         532  +
            Self::ResourceNotFoundError(_inner) =>
         533  +
            /* OperationErrorGenerator.kt:169 */
         534  +
            {
         535  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         536  +
            }
         537  +
            ,
         538  +
            /* OperationErrorGenerator.kt:326 */
         539  +
            Self::Unhandled(_inner) => {
         540  +
                /* OperationErrorGenerator.kt:168 */
         541  +
                &_inner.meta
         542  +
                /* OperationErrorGenerator.kt:326 */
         543  +
            } /* OperationErrorGenerator.kt:318 */
  363    544   
        }
         545  +
        /* OperationErrorGenerator.kt:164 */
  364    546   
    }
         547  +
    /* OperationErrorGenerator.kt:163 */
  365    548   
}
         549  +
/* OperationErrorGenerator.kt:109 */
  366    550   
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UpdateTimeToLiveError {
         551  +
    /* OperationErrorGenerator.kt:110 */
  367    552   
    fn create_unhandled_error(
  368    553   
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  369    554   
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  370    555   
    ) -> Self {
         556  +
        /* OperationErrorGenerator.kt:121 */
  371    557   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  372    558   
            source,
  373    559   
            meta: meta.unwrap_or_default(),
  374    560   
        })
         561  +
        /* OperationErrorGenerator.kt:110 */
  375    562   
    }
         563  +
    /* OperationErrorGenerator.kt:109 */
  376    564   
}
  377    565   
         566  +
/* CodegenDelegator.kt:255 */
  378    567   
pub use crate::operation::update_time_to_live::_update_time_to_live_output::UpdateTimeToLiveOutput;
  379    568   
         569  +
/* CodegenDelegator.kt:255 */
  380    570   
pub use crate::operation::update_time_to_live::_update_time_to_live_input::UpdateTimeToLiveInput;
  381    571   
         572  +
/* RustModule.kt:172 */
  382    573   
mod _update_time_to_live_input;
  383    574   
         575  +
/* RustModule.kt:172 */
  384    576   
mod _update_time_to_live_output;
  385    577   
  386         -
/// Builders
         578  +
/// /* CodegenDelegator.kt:51 */Builders
  387    579   
pub mod builders;

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/update_time_to_live/_update_time_to_live_input.rs

@@ -1,1 +76,127 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the input of an <code>UpdateTimeToLive</code> operation.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the input of an <code>UpdateTimeToLive</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 UpdateTimeToLiveInput {
    7         -
    /// <p>The name of the table to be configured.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct UpdateTimeToLiveInput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table to be configured.</p>
    8     10   
    pub table_name: ::std::option::Option<::std::string::String>,
    9         -
    /// <p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
   10     12   
    pub time_to_live_specification: ::std::option::Option<crate::types::TimeToLiveSpecification>,
          13  +
    /* StructureGenerator.kt:201 */
   11     14   
}
          15  +
/* StructureGenerator.kt:135 */
   12     16   
impl UpdateTimeToLiveInput {
   13         -
    /// <p>The name of the table to be configured.</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table to be configured.</p>
          18  +
    /* StructureGenerator.kt:166 */
   14     19   
    pub fn table_name(&self) -> ::std::option::Option<&str> {
          20  +
        /* StructureGenerator.kt:169 */
   15     21   
        self.table_name.as_deref()
          22  +
        /* StructureGenerator.kt:166 */
   16     23   
    }
   17         -
    /// <p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
          25  +
    /* StructureGenerator.kt:166 */
   18     26   
    pub fn time_to_live_specification(&self) -> ::std::option::Option<&crate::types::TimeToLiveSpecification> {
          27  +
        /* StructureGenerator.kt:170 */
   19     28   
        self.time_to_live_specification.as_ref()
          29  +
        /* StructureGenerator.kt:166 */
   20     30   
    }
          31  +
    /* StructureGenerator.kt:135 */
   21     32   
}
          33  +
/* ClientCodegenVisitor.kt:237 */
   22     34   
impl UpdateTimeToLiveInput {
   23         -
    /// Creates a new builder-style object to manufacture [`UpdateTimeToLiveInput`](crate::operation::update_time_to_live::UpdateTimeToLiveInput).
          35  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`UpdateTimeToLiveInput`](crate::operation::update_time_to_live::UpdateTimeToLiveInput).
          36  +
    /* BuilderGenerator.kt:175 */
   24     37   
    pub fn builder() -> crate::operation::update_time_to_live::builders::UpdateTimeToLiveInputBuilder {
          38  +
        /* BuilderGenerator.kt:176 */
   25     39   
        crate::operation::update_time_to_live::builders::UpdateTimeToLiveInputBuilder::default()
          40  +
        /* BuilderGenerator.kt:175 */
   26     41   
    }
          42  +
    /* ClientCodegenVisitor.kt:237 */
   27     43   
}
   28     44   
   29         -
/// A builder for [`UpdateTimeToLiveInput`](crate::operation::update_time_to_live::UpdateTimeToLiveInput).
          45  +
/// /* BuilderGenerator.kt:342 */A builder for [`UpdateTimeToLiveInput`](crate::operation::update_time_to_live::UpdateTimeToLiveInput).
          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 UpdateTimeToLiveInputBuilder {
   33         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
          52  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_name: ::std::option::Option<::std::string::String>,
          53  +
    /* BuilderGenerator.kt:275 */
   34     54   
    pub(crate) time_to_live_specification: ::std::option::Option<crate::types::TimeToLiveSpecification>,
          55  +
    /* BuilderGenerator.kt:345 */
   35     56   
}
          57  +
/* BuilderGenerator.kt:355 */
   36     58   
impl UpdateTimeToLiveInputBuilder {
   37         -
    /// <p>The name of the table to be configured.</p>
   38         -
    /// This field is required.
          59  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the table to be configured.</p>
          60  +
    /// /* BuilderGenerator.kt:288 */This field is required.
          61  +
    /* BuilderGenerator.kt:291 */
   39     62   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          63  +
        /* BuilderGenerator.kt:292 */
   40     64   
        self.table_name = ::std::option::Option::Some(input.into());
          65  +
        /* BuilderGenerator.kt:293 */
   41     66   
        self
          67  +
        /* BuilderGenerator.kt:291 */
   42     68   
    }
   43         -
    /// <p>The name of the table to be configured.</p>
          69  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the table to be configured.</p>
          70  +
    /* BuilderGenerator.kt:314 */
   44     71   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          72  +
        /* BuilderGenerator.kt:315 */
   45     73   
        self.table_name = input;
   46     74   
        self
          75  +
        /* BuilderGenerator.kt:314 */
   47     76   
    }
   48         -
    /// <p>The name of the table to be configured.</p>
          77  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the table to be configured.</p>
          78  +
    /* BuilderGenerator.kt:336 */
   49     79   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
          80  +
        /* BuilderGenerator.kt:337 */
   50     81   
        &self.table_name
          82  +
        /* BuilderGenerator.kt:336 */
   51     83   
    }
   52         -
    /// <p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
   53         -
    /// This field is required.
          84  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
          85  +
    /// /* BuilderGenerator.kt:288 */This field is required.
          86  +
    /* BuilderGenerator.kt:291 */
   54     87   
    pub fn time_to_live_specification(mut self, input: crate::types::TimeToLiveSpecification) -> Self {
          88  +
        /* BuilderGenerator.kt:292 */
   55     89   
        self.time_to_live_specification = ::std::option::Option::Some(input);
          90  +
        /* BuilderGenerator.kt:293 */
   56     91   
        self
          92  +
        /* BuilderGenerator.kt:291 */
   57     93   
    }
   58         -
    /// <p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
          94  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
          95  +
    /* BuilderGenerator.kt:314 */
   59     96   
    pub fn set_time_to_live_specification(mut self, input: ::std::option::Option<crate::types::TimeToLiveSpecification>) -> Self {
          97  +
        /* BuilderGenerator.kt:315 */
   60     98   
        self.time_to_live_specification = input;
   61     99   
        self
         100  +
        /* BuilderGenerator.kt:314 */
   62    101   
    }
   63         -
    /// <p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
         102  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
         103  +
    /* BuilderGenerator.kt:336 */
   64    104   
    pub fn get_time_to_live_specification(&self) -> &::std::option::Option<crate::types::TimeToLiveSpecification> {
         105  +
        /* BuilderGenerator.kt:337 */
   65    106   
        &self.time_to_live_specification
         107  +
        /* BuilderGenerator.kt:336 */
   66    108   
    }
   67         -
    /// Consumes the builder and constructs a [`UpdateTimeToLiveInput`](crate::operation::update_time_to_live::UpdateTimeToLiveInput).
         109  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`UpdateTimeToLiveInput`](crate::operation::update_time_to_live::UpdateTimeToLiveInput).
         110  +
    /* BuilderGenerator.kt:253 */
   68    111   
    pub fn build(
   69    112   
        self,
   70    113   
    ) -> ::std::result::Result<crate::operation::update_time_to_live::UpdateTimeToLiveInput, ::aws_smithy_types::error::operation::BuildError> {
   71         -
        ::std::result::Result::Ok(crate::operation::update_time_to_live::UpdateTimeToLiveInput {
   72         -
            table_name: self.table_name,
         114  +
        /* BuilderGenerator.kt:254 */
         115  +
        ::std::result::Result::Ok(
         116  +
            /* BuilderGenerator.kt:477 */
         117  +
            crate::operation::update_time_to_live::UpdateTimeToLiveInput {
         118  +
                /* BuilderGenerator.kt:481 */ table_name: self.table_name,
         119  +
                /* BuilderGenerator.kt:481 */
   73    120   
                time_to_live_specification: self.time_to_live_specification,
   74         -
        })
         121  +
                /* BuilderGenerator.kt:477 */
         122  +
            }, /* BuilderGenerator.kt:254 */
         123  +
        )
         124  +
        /* BuilderGenerator.kt:253 */
   75    125   
    }
         126  +
    /* BuilderGenerator.kt:355 */
   76    127   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/update_time_to_live/_update_time_to_live_output.rs

@@ -1,1 +49,84 @@
    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 UpdateTimeToLiveOutput {
    6         -
    /// <p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct UpdateTimeToLiveOutput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
    7     10   
    pub time_to_live_specification: ::std::option::Option<crate::types::TimeToLiveSpecification>,
          11  +
    /* StructureGenerator.kt:201 */
    8     12   
}
          13  +
/* StructureGenerator.kt:135 */
    9     14   
impl UpdateTimeToLiveOutput {
   10         -
    /// <p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
          15  +
    /// /* StructureGenerator.kt:231 */<p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
          16  +
    /* StructureGenerator.kt:166 */
   11     17   
    pub fn time_to_live_specification(&self) -> ::std::option::Option<&crate::types::TimeToLiveSpecification> {
          18  +
        /* StructureGenerator.kt:170 */
   12     19   
        self.time_to_live_specification.as_ref()
          20  +
        /* StructureGenerator.kt:166 */
   13     21   
    }
          22  +
    /* StructureGenerator.kt:135 */
   14     23   
}
          24  +
/* ClientCodegenVisitor.kt:237 */
   15     25   
impl UpdateTimeToLiveOutput {
   16         -
    /// Creates a new builder-style object to manufacture [`UpdateTimeToLiveOutput`](crate::operation::update_time_to_live::UpdateTimeToLiveOutput).
          26  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`UpdateTimeToLiveOutput`](crate::operation::update_time_to_live::UpdateTimeToLiveOutput).
          27  +
    /* BuilderGenerator.kt:175 */
   17     28   
    pub fn builder() -> crate::operation::update_time_to_live::builders::UpdateTimeToLiveOutputBuilder {
          29  +
        /* BuilderGenerator.kt:176 */
   18     30   
        crate::operation::update_time_to_live::builders::UpdateTimeToLiveOutputBuilder::default()
          31  +
        /* BuilderGenerator.kt:175 */
   19     32   
    }
          33  +
    /* ClientCodegenVisitor.kt:237 */
   20     34   
}
   21     35   
   22         -
/// A builder for [`UpdateTimeToLiveOutput`](crate::operation::update_time_to_live::UpdateTimeToLiveOutput).
          36  +
/// /* BuilderGenerator.kt:342 */A builder for [`UpdateTimeToLiveOutput`](crate::operation::update_time_to_live::UpdateTimeToLiveOutput).
          37  +
/* RustType.kt:516 */
   23     38   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          39  +
/* RustType.kt:516 */
   24     40   
#[non_exhaustive]
          41  +
/* BuilderGenerator.kt:345 */
   25     42   
pub struct UpdateTimeToLiveOutputBuilder {
          43  +
    /* BuilderGenerator.kt:275 */
   26     44   
    pub(crate) time_to_live_specification: ::std::option::Option<crate::types::TimeToLiveSpecification>,
          45  +
    /* BuilderGenerator.kt:345 */
   27     46   
}
          47  +
/* BuilderGenerator.kt:355 */
   28     48   
impl UpdateTimeToLiveOutputBuilder {
   29         -
    /// <p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
          49  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
          50  +
    /* BuilderGenerator.kt:291 */
   30     51   
    pub fn time_to_live_specification(mut self, input: crate::types::TimeToLiveSpecification) -> Self {
          52  +
        /* BuilderGenerator.kt:292 */
   31     53   
        self.time_to_live_specification = ::std::option::Option::Some(input);
          54  +
        /* BuilderGenerator.kt:293 */
   32     55   
        self
          56  +
        /* BuilderGenerator.kt:291 */
   33     57   
    }
   34         -
    /// <p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
          58  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
          59  +
    /* BuilderGenerator.kt:314 */
   35     60   
    pub fn set_time_to_live_specification(mut self, input: ::std::option::Option<crate::types::TimeToLiveSpecification>) -> Self {
          61  +
        /* BuilderGenerator.kt:315 */
   36     62   
        self.time_to_live_specification = input;
   37     63   
        self
          64  +
        /* BuilderGenerator.kt:314 */
   38     65   
    }
   39         -
    /// <p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
          66  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the output of an <code>UpdateTimeToLive</code> operation.</p>
          67  +
    /* BuilderGenerator.kt:336 */
   40     68   
    pub fn get_time_to_live_specification(&self) -> &::std::option::Option<crate::types::TimeToLiveSpecification> {
          69  +
        /* BuilderGenerator.kt:337 */
   41     70   
        &self.time_to_live_specification
          71  +
        /* BuilderGenerator.kt:336 */
   42     72   
    }
   43         -
    /// Consumes the builder and constructs a [`UpdateTimeToLiveOutput`](crate::operation::update_time_to_live::UpdateTimeToLiveOutput).
          73  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`UpdateTimeToLiveOutput`](crate::operation::update_time_to_live::UpdateTimeToLiveOutput).
          74  +
    /* BuilderGenerator.kt:253 */
   44     75   
    pub fn build(self) -> crate::operation::update_time_to_live::UpdateTimeToLiveOutput {
          76  +
        /* BuilderGenerator.kt:477 */
   45     77   
        crate::operation::update_time_to_live::UpdateTimeToLiveOutput {
   46         -
            time_to_live_specification: self.time_to_live_specification,
          78  +
            /* BuilderGenerator.kt:481 */ time_to_live_specification: self.time_to_live_specification,
          79  +
            /* BuilderGenerator.kt:477 */
   47     80   
        }
          81  +
        /* BuilderGenerator.kt:253 */
   48     82   
    }
          83  +
    /* BuilderGenerator.kt:355 */
   49     84   
}

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

@@ -1,1 +147,165 @@
    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::update_time_to_live::_update_time_to_live_output::UpdateTimeToLiveOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::update_time_to_live::_update_time_to_live_input::UpdateTimeToLiveInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::update_time_to_live::builders::UpdateTimeToLiveInputBuilder {
    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::update_time_to_live::UpdateTimeToLiveOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::update_time_to_live::UpdateTimeToLiveError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.update_time_to_live();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `UpdateTimeToLive`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `UpdateTimeToLive`.
   24     27   
///
   25         -
/// <p>The <code>UpdateTimeToLive</code> method enables or disables Time to Live (TTL) for the specified table. A successful <code>UpdateTimeToLive</code> call returns the current <code>TimeToLiveSpecification</code>. It can take up to one hour for the change to fully process. Any additional <code>UpdateTimeToLive</code> calls for the same table during this one hour duration result in a <code>ValidationException</code>.</p>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>The <code>UpdateTimeToLive</code> method enables or disables Time to Live (TTL) for the specified table. A successful <code>UpdateTimeToLive</code> call returns the current <code>TimeToLiveSpecification</code>. It can take up to one hour for the change to fully process. Any additional <code>UpdateTimeToLive</code> calls for the same table during this one hour duration result in a <code>ValidationException</code>.</p>
   26     29   
/// <p>TTL compares the current time in epoch time format to the time stored in the TTL attribute of an item. If the epoch time value stored in the attribute is less than the current time, the item is marked as expired and subsequently deleted.</p><note>
   27     30   
/// <p>The epoch time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970 UTC.</p>
   28     31   
/// </note>
   29     32   
/// <p>DynamoDB deletes expired items on a best-effort basis to ensure availability of throughput for other data operations.</p><important>
   30     33   
/// <p>DynamoDB typically deletes expired items within two days of expiration. The exact duration within which an item gets deleted after expiration is specific to the nature of the workload. Items that have expired and not been deleted will still show up in reads, queries, and scans.</p>
   31     34   
/// </important>
   32     35   
/// <p>As items are deleted, they are removed from any local secondary index and global secondary index immediately in the same eventually consistent way as a standard delete operation.</p>
   33     36   
/// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html">Time To Live</a> in the Amazon DynamoDB Developer Guide.</p>
          37  +
/* RustType.kt:516 */
   34     38   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          39  +
/* FluentBuilderGenerator.kt:270 */
   35     40   
pub struct UpdateTimeToLiveFluentBuilder {
   36     41   
    handle: ::std::sync::Arc<crate::client::Handle>,
   37     42   
    inner: crate::operation::update_time_to_live::builders::UpdateTimeToLiveInputBuilder,
   38     43   
    config_override: ::std::option::Option<crate::config::Builder>,
   39     44   
}
          45  +
/* FluentBuilderGenerator.kt:381 */
   40     46   
impl
   41     47   
    crate::client::customize::internal::CustomizableSend<
   42     48   
        crate::operation::update_time_to_live::UpdateTimeToLiveOutput,
   43     49   
        crate::operation::update_time_to_live::UpdateTimeToLiveError,
   44     50   
    > for UpdateTimeToLiveFluentBuilder
   45     51   
{
   46     52   
    fn send(
   47     53   
        self,
   48     54   
        config_override: crate::config::Builder,
   49     55   
    ) -> crate::client::customize::internal::BoxFuture<
   50     56   
        crate::client::customize::internal::SendResult<
   51     57   
            crate::operation::update_time_to_live::UpdateTimeToLiveOutput,
   52     58   
            crate::operation::update_time_to_live::UpdateTimeToLiveError,
   53     59   
        >,
   54     60   
    > {
   55     61   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   56     62   
    }
   57     63   
}
          64  +
/* FluentBuilderGenerator.kt:282 */
   58     65   
impl UpdateTimeToLiveFluentBuilder {
          66  +
    /* FluentBuilderGenerator.kt:288 */
   59     67   
    /// Creates a new `UpdateTimeToLiveFluentBuilder`.
   60     68   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   61     69   
        Self {
   62     70   
            handle,
   63     71   
            inner: ::std::default::Default::default(),
   64     72   
            config_override: ::std::option::Option::None,
   65     73   
        }
   66     74   
    }
          75  +
    /* FluentBuilderGenerator.kt:301 */
   67     76   
    /// Access the UpdateTimeToLive as a reference.
   68     77   
    pub fn as_input(&self) -> &crate::operation::update_time_to_live::builders::UpdateTimeToLiveInputBuilder {
   69     78   
        &self.inner
   70     79   
    }
          80  +
    /* FluentBuilderGenerator.kt:145 */
   71     81   
    /// Sends the request and returns the response.
   72     82   
    ///
   73     83   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   74     84   
    /// can be matched against.
   75     85   
    ///
   76     86   
    /// By default, any retryable failures will be retried twice. Retry behavior
   77     87   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   78     88   
    /// set when configuring the client.
   79     89   
    pub async fn send(
   80     90   
        self,
   81     91   
    ) -> ::std::result::Result<
   82     92   
        crate::operation::update_time_to_live::UpdateTimeToLiveOutput,
   83     93   
        ::aws_smithy_runtime_api::client::result::SdkError<
   84     94   
            crate::operation::update_time_to_live::UpdateTimeToLiveError,
   85     95   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   86     96   
        >,
   87     97   
    > {
   88     98   
        let input = self
   89     99   
            .inner
   90    100   
            .build()
   91    101   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   92    102   
        let runtime_plugins = crate::operation::update_time_to_live::UpdateTimeToLive::operation_runtime_plugins(
   93    103   
            self.handle.runtime_plugins.clone(),
   94    104   
            &self.handle.conf,
   95    105   
            self.config_override,
   96    106   
        );
   97    107   
        crate::operation::update_time_to_live::UpdateTimeToLive::orchestrate(&runtime_plugins, input).await
   98    108   
    }
   99    109   
  100    110   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
  101    111   
    pub fn customize(
  102    112   
        self,
  103    113   
    ) -> crate::client::customize::CustomizableOperation<
  104    114   
        crate::operation::update_time_to_live::UpdateTimeToLiveOutput,
  105    115   
        crate::operation::update_time_to_live::UpdateTimeToLiveError,
  106    116   
        Self,
  107    117   
    > {
  108    118   
        crate::client::customize::CustomizableOperation::new(self)
  109    119   
    }
         120  +
    /* FluentBuilderGenerator.kt:315 */
  110    121   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  111    122   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  112    123   
        self
  113    124   
    }
  114    125   
  115    126   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  116    127   
        self.config_override = config_override;
  117    128   
        self
  118    129   
    }
  119         -
    /// <p>The name of the table to be configured.</p>
         130  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the table to be configured.</p>
         131  +
    /* FluentBuilderGenerator.kt:500 */
  120    132   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  121    133   
        self.inner = self.inner.table_name(input.into());
  122    134   
        self
  123    135   
    }
  124         -
    /// <p>The name of the table to be configured.</p>
         136  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the table to be configured.</p>
         137  +
    /* FluentBuilderGenerator.kt:500 */
  125    138   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  126    139   
        self.inner = self.inner.set_table_name(input);
  127    140   
        self
  128    141   
    }
  129         -
    /// <p>The name of the table to be configured.</p>
         142  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The name of the table to be configured.</p>
         143  +
    /* FluentBuilderGenerator.kt:520 */
  130    144   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
  131    145   
        self.inner.get_table_name()
  132    146   
    }
  133         -
    /// <p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
         147  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
         148  +
    /* FluentBuilderGenerator.kt:500 */
  134    149   
    pub fn time_to_live_specification(mut self, input: crate::types::TimeToLiveSpecification) -> Self {
  135    150   
        self.inner = self.inner.time_to_live_specification(input);
  136    151   
        self
  137    152   
    }
  138         -
    /// <p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
         153  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
         154  +
    /* FluentBuilderGenerator.kt:500 */
  139    155   
    pub fn set_time_to_live_specification(mut self, input: ::std::option::Option<crate::types::TimeToLiveSpecification>) -> Self {
  140    156   
        self.inner = self.inner.set_time_to_live_specification(input);
  141    157   
        self
  142    158   
    }
  143         -
    /// <p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
         159  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Represents the settings used to enable or disable Time to Live for the specified table.</p>
         160  +
    /* FluentBuilderGenerator.kt:520 */
  144    161   
    pub fn get_time_to_live_specification(&self) -> &::std::option::Option<crate::types::TimeToLiveSpecification> {
  145    162   
        self.inner.get_time_to_live_specification()
  146    163   
    }
         164  +
    /* FluentBuilderGenerator.kt:282 */
  147    165   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/primitives.rs

@@ -1,1 +9,10 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* SmithyTypesPubUseExtra.kt:66 */
    2      3   
pub use ::aws_smithy_types::date_time::Format as DateTimeFormat;
    3      4   
pub use ::aws_smithy_types::Blob;
    4         -
pub use ::aws_smithy_types::DateTime;
           5  +
/* SmithyTypesPubUseExtra.kt:69 */ pub use ::aws_smithy_types::DateTime;
    5      6   
    6         -
/// Event stream related primitives such as `Message` or `Header`.
           7  +
/// /* ClientRustModule.kt:121 */Event stream related primitives such as `Message` or `Header`.
    7      8   
pub mod event_stream;
    8      9   
    9     10   
pub(crate) mod sealed_enum_unknown;

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/primitives/sealed_enum_unknown.rs

@@ -1,1 +21,29 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// Opaque struct used as inner data for the `Unknown` variant defined in enums in
           2  +
/* ClientEnumGenerator.kt:189 */
           3  +
/// /* ClientEnumGenerator.kt:189 */Opaque struct used as inner data for the `Unknown` variant defined in enums in
    4      4   
/// the crate.
    5      5   
///
    6      6   
/// This is not intended to be used directly.
           7  +
/* RustType.kt:516 */
    7      8   
#[non_exhaustive]
           9  +
/* RustType.kt:516 */
    8     10   
#[derive(
    9     11   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   10     12   
)]
   11         -
pub struct UnknownVariantValue(pub(crate) ::std::string::String);
          13  +
pub /* ClientEnumGenerator.kt:203 */ struct UnknownVariantValue(pub(crate) ::std::string::String);
          14  +
/* ClientEnumGenerator.kt:204 */
   12     15   
impl UnknownVariantValue {
          16  +
    /* ClientEnumGenerator.kt:206 */
   13     17   
    pub(crate) fn as_str(&self) -> &str {
          18  +
        /* ClientEnumGenerator.kt:207 */
   14     19   
        &self.0
          20  +
        /* ClientEnumGenerator.kt:206 */
   15     21   
    }
          22  +
    /* ClientEnumGenerator.kt:204 */
   16     23   
}
          24  +
/* ClientEnumGenerator.kt:210 */
   17     25   
impl ::std::fmt::Display for UnknownVariantValue {
   18     26   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
   19     27   
        write!(f, "{}", self.0)
   20     28   
    }
   21     29   
}

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

@@ -1,1 +47,49 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ResponseDeserializerGenerator.kt:170 */
    2      3   
pub(crate) fn type_erase_result<O, E>(
    3      4   
    result: ::std::result::Result<O, E>,
    4      5   
) -> ::std::result::Result<
    5      6   
    ::aws_smithy_runtime_api::client::interceptors::context::Output,
    6      7   
    ::aws_smithy_runtime_api::client::orchestrator::OrchestratorError<::aws_smithy_runtime_api::client::interceptors::context::Error>,
    7      8   
>
    8      9   
where
    9     10   
    O: ::std::fmt::Debug + ::std::marker::Send + ::std::marker::Sync + 'static,
   10     11   
    E: ::std::error::Error + std::fmt::Debug + ::std::marker::Send + ::std::marker::Sync + 'static,
   11     12   
{
   12     13   
    result
   13     14   
        .map(|output| ::aws_smithy_runtime_api::client::interceptors::context::Output::erase(output))
   14     15   
        .map_err(|error| ::aws_smithy_runtime_api::client::interceptors::context::Error::erase(error))
   15     16   
        .map_err(::std::convert::Into::into)
   16     17   
}
   17     18   
          19  +
/* AwsJson.kt:203 */
   18     20   
pub fn parse_http_error_metadata(
   19     21   
    _response_status: u16,
   20     22   
    response_headers: &::aws_smithy_runtime_api::http::Headers,
   21     23   
    response_body: &[u8],
   22     24   
) -> ::std::result::Result<::aws_smithy_types::error::metadata::Builder, ::aws_smithy_json::deserialize::error::DeserializeError> {
   23     25   
    crate::json_errors::parse_error_metadata(response_body, response_headers)
   24     26   
}
   25     27   
   26     28   
pub(crate) mod shape_batch_execute_statement;
   27     29   
@@ -96,98 +155,158 @@
  116    118   
pub(crate) mod shape_update_global_table_settings;
  117    119   
  118    120   
pub(crate) mod shape_update_item;
  119    121   
  120    122   
pub(crate) mod shape_update_table;
  121    123   
  122    124   
pub(crate) mod shape_update_table_replica_auto_scaling;
  123    125   
  124    126   
pub(crate) mod shape_update_time_to_live;
  125    127   
         128  +
/* JsonParserGenerator.kt:227 */
  126    129   
pub(crate) fn or_empty_doc(data: &[u8]) -> &[u8] {
  127    130   
    if data.is_empty() {
  128    131   
        b"{}"
  129    132   
    } else {
  130    133   
        data
  131    134   
    }
  132    135   
}
  133    136   
  134    137   
pub(crate) mod shape_backup_in_use_exception;
  135    138   

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_archival_summary.rs

@@ -1,1 +53,94 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:516 */
    2      3   
pub(crate) fn de_archival_summary<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<crate::types::ArchivalSummary>, ::aws_smithy_json::deserialize::error::DeserializeError>
    5      6   
where
    6      7   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    7      8   
{
           9  +
    /* JsonParserGenerator.kt:712 */
    8     10   
    match tokens.next().transpose()? {
    9         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          11  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   10     12   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          13  +
            /* RustType.kt:516 */
   11     14   
            #[allow(unused_mut)]
          15  +
            /* JsonParserGenerator.kt:526 */
   12     16   
            let mut builder = crate::types::builders::ArchivalSummaryBuilder::default();
          17  +
            /* JsonParserGenerator.kt:684 */
   13     18   
            loop {
          19  +
                /* JsonParserGenerator.kt:685 */
   14     20   
                match tokens.next().transpose()? {
   15         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   16         -
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          21  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          22  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          23  +
                        /* JsonParserGenerator.kt:260 */
          24  +
                        match key.to_unescaped()?.as_ref() {
          25  +
                            /* JsonParserGenerator.kt:262 */
   17     26   
                            "ArchivalDateTime" => {
   18         -
                            builder = builder.set_archival_date_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
          27  +
                                /* JsonParserGenerator.kt:265 */
          28  +
                                builder = builder.set_archival_date_time(
          29  +
                                    /* JsonParserGenerator.kt:384 */
          30  +
                                    ::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   19     31   
                                        tokens.next(),
   20     32   
                                        ::aws_smithy_types::date_time::Format::EpochSeconds,
   21         -
                            )?);
          33  +
                                    )?, /* JsonParserGenerator.kt:265 */
          34  +
                                );
          35  +
                                /* JsonParserGenerator.kt:262 */
   22     36   
                            }
          37  +
                            /* JsonParserGenerator.kt:262 */
   23     38   
                            "ArchivalReason" => {
          39  +
                                /* JsonParserGenerator.kt:265 */
   24     40   
                                builder = builder.set_archival_reason(
          41  +
                                    /* JsonParserGenerator.kt:354 */
   25     42   
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   26         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   27         -
                                    .transpose()?,
          43  +
                                        .map(|s|
          44  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          45  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          46  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          47  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
   28     48   
                                );
          49  +
                                /* JsonParserGenerator.kt:262 */
   29     50   
                            }
          51  +
                            /* JsonParserGenerator.kt:262 */
   30     52   
                            "ArchivalBackupArn" => {
          53  +
                                /* JsonParserGenerator.kt:265 */
   31     54   
                                builder = builder.set_archival_backup_arn(
          55  +
                                    /* JsonParserGenerator.kt:354 */
   32     56   
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   33         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   34         -
                                    .transpose()?,
          57  +
                                        .map(|s|
          58  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          59  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          60  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          61  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
   35     62   
                                );
          63  +
                                /* JsonParserGenerator.kt:262 */
          64  +
                            }
          65  +
                            /* JsonParserGenerator.kt:290 */
          66  +
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
   36     67   
                        }
   37         -
                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   38         -
                    },
          68  +
                        /* JsonParserGenerator.kt:686 */
          69  +
                    }
          70  +
                    /* JsonParserGenerator.kt:695 */
   39     71   
                    other => {
   40     72   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   41     73   
                            "expected object key or end object, found: {:?}",
   42     74   
                            other
   43     75   
                        )))
          76  +
                    } /* JsonParserGenerator.kt:685 */
   44     77   
                }
          78  +
                /* JsonParserGenerator.kt:684 */
   45     79   
            }
   46         -
            }
          80  +
            /* JsonParserGenerator.kt:540 */
   47     81   
            Ok(Some(builder.build()))
          82  +
            /* JsonParserGenerator.kt:713 */
   48     83   
        }
   49         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          84  +
        /* JsonParserGenerator.kt:722 */
          85  +
        _ => {
          86  +
            /* JsonParserGenerator.kt:723 */
          87  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   50     88   
                "expected start object or null",
   51         -
        )),
          89  +
            ))
          90  +
            /* JsonParserGenerator.kt:722 */
          91  +
        } /* JsonParserGenerator.kt:712 */
   52     92   
    }
          93  +
    /* JsonParserGenerator.kt:516 */
   53     94   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_attribute_definition.rs

@@ -1,1 +62,106 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:358 */
    2      3   
pub fn ser_attribute_definition(
    3      4   
    object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::types::AttributeDefinition,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* SerializerUtil.kt:42 */
    6      8   
    {
           9  +
        /* JsonSerializerGenerator.kt:423 */
    7     10   
        object.key("AttributeName").string(input.attribute_name.as_str());
          11  +
        /* SerializerUtil.kt:42 */
    8     12   
    }
          13  +
    /* SerializerUtil.kt:42 */
    9     14   
    {
          15  +
        /* JsonSerializerGenerator.kt:423 */
   10     16   
        object.key("AttributeType").string(input.attribute_type.as_str());
          17  +
        /* SerializerUtil.kt:42 */
   11     18   
    }
          19  +
    /* JsonSerializerGenerator.kt:372 */
   12     20   
    Ok(())
          21  +
    /* JsonSerializerGenerator.kt:358 */
   13     22   
}
   14     23   
          24  +
/* JsonParserGenerator.kt:516 */
   15     25   
pub(crate) fn de_attribute_definition<'a, I>(
   16     26   
    tokens: &mut ::std::iter::Peekable<I>,
   17     27   
) -> ::std::result::Result<Option<crate::types::AttributeDefinition>, ::aws_smithy_json::deserialize::error::DeserializeError>
   18     28   
where
   19     29   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
   20     30   
{
          31  +
    /* JsonParserGenerator.kt:712 */
   21     32   
    match tokens.next().transpose()? {
   22         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          33  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   23     34   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          35  +
            /* RustType.kt:516 */
   24     36   
            #[allow(unused_mut)]
          37  +
            /* JsonParserGenerator.kt:526 */
   25     38   
            let mut builder = crate::types::builders::AttributeDefinitionBuilder::default();
          39  +
            /* JsonParserGenerator.kt:684 */
   26     40   
            loop {
          41  +
                /* JsonParserGenerator.kt:685 */
   27     42   
                match tokens.next().transpose()? {
   28         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   29         -
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
          43  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          44  +
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
          45  +
                        /* JsonParserGenerator.kt:260 */
          46  +
                        match key.to_unescaped()?.as_ref() {
          47  +
                            /* JsonParserGenerator.kt:262 */
   30     48   
                            "AttributeName" => {
          49  +
                                /* JsonParserGenerator.kt:265 */
   31     50   
                                builder = builder.set_attribute_name(
          51  +
                                    /* JsonParserGenerator.kt:354 */
   32     52   
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   33         -
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   34         -
                                    .transpose()?,
          53  +
                                        .map(|s|
          54  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          55  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
          56  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          57  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
   35     58   
                                );
          59  +
                                /* JsonParserGenerator.kt:262 */
   36     60   
                            }
          61  +
                            /* JsonParserGenerator.kt:262 */
   37     62   
                            "AttributeType" => {
          63  +
                                /* JsonParserGenerator.kt:265 */
   38     64   
                                builder = builder.set_attribute_type(
          65  +
                                    /* JsonParserGenerator.kt:354 */
   39     66   
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   40         -
                                    .map(|s| s.to_unescaped().map(|u| crate::types::ScalarAttributeType::from(u.as_ref())))
   41         -
                                    .transpose()?,
          67  +
                                        .map(|s|
          68  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          69  +
                                            /* JsonParserGenerator.kt:345 */crate::types::ScalarAttributeType::from(u.as_ref())
          70  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
          71  +
                                        .transpose()?, /* JsonParserGenerator.kt:265 */
   42     72   
                                );
          73  +
                                /* JsonParserGenerator.kt:262 */
   43     74   
                            }
   44         -
                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   45         -
                    },
          75  +
                            /* JsonParserGenerator.kt:290 */
          76  +
                            _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?, /* JsonParserGenerator.kt:260 */
          77  +
                        }
          78  +
                        /* JsonParserGenerator.kt:686 */
          79  +
                    }
          80  +
                    /* JsonParserGenerator.kt:695 */
   46     81   
                    other => {
   47     82   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   48     83   
                            "expected object key or end object, found: {:?}",
   49     84   
                            other
   50     85   
                        )))
          86  +
                    } /* JsonParserGenerator.kt:685 */
   51     87   
                }
          88  +
                /* JsonParserGenerator.kt:684 */
   52     89   
            }
   53         -
            }
          90  +
            /* JsonParserGenerator.kt:540 */
   54     91   
            Ok(Some(crate::serde_util::attribute_definition_correct_errors(builder).build().map_err(
   55     92   
                |err| ::aws_smithy_json::deserialize::error::DeserializeError::custom_source("Response was invalid", err),
   56     93   
            )?))
          94  +
            /* JsonParserGenerator.kt:713 */
   57     95   
        }
   58         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          96  +
        /* JsonParserGenerator.kt:722 */
          97  +
        _ => {
          98  +
            /* JsonParserGenerator.kt:723 */
          99  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   59    100   
                "expected start object or null",
   60         -
        )),
         101  +
            ))
         102  +
            /* JsonParserGenerator.kt:722 */
         103  +
        } /* JsonParserGenerator.kt:712 */
   61    104   
    }
         105  +
    /* JsonParserGenerator.kt:516 */
   62    106   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_attribute_definitions.rs

@@ -1,1 +32,55 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:398 */
    2      3   
pub(crate) fn de_attribute_definitions<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<::std::vec::Vec<crate::types::AttributeDefinition>>, ::aws_smithy_json::deserialize::error::DeserializeError>
    5      6   
where
    6      7   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    7      8   
{
           9  +
    /* JsonParserGenerator.kt:712 */
    8     10   
    match tokens.next().transpose()? {
    9         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          11  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   10     12   
        Some(::aws_smithy_json::deserialize::Token::StartArray { .. }) => {
          13  +
            /* JsonParserGenerator.kt:407 */
   11     14   
            let mut items = Vec::new();
          15  +
            /* JsonParserGenerator.kt:408 */
   12     16   
            loop {
          17  +
                /* JsonParserGenerator.kt:409 */
   13     18   
                match tokens.peek() {
          19  +
                    /* JsonParserGenerator.kt:410 */
   14     20   
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
          21  +
                        /* JsonParserGenerator.kt:411 */
   15     22   
                        tokens.next().transpose().unwrap();
   16     23   
                        break;
          24  +
                        /* JsonParserGenerator.kt:410 */
   17     25   
                    }
          26  +
                    /* JsonParserGenerator.kt:413 */
   18     27   
                    _ => {
   19         -
                        let value = crate::protocol_serde::shape_attribute_definition::de_attribute_definition(tokens)?;
          28  +
                        /* JsonParserGenerator.kt:419 */
          29  +
                        let value =
          30  +
                            /* JsonParserGenerator.kt:544 */crate::protocol_serde::shape_attribute_definition::de_attribute_definition(tokens)?
          31  +
                        /* JsonParserGenerator.kt:419 */;
          32  +
                        /* JsonParserGenerator.kt:422 */
   20     33   
                        if let Some(value) = value {
   21     34   
                            items.push(value);
   22     35   
                        }
          36  +
                        /* JsonParserGenerator.kt:413 */
          37  +
                    } /* JsonParserGenerator.kt:409 */
   23     38   
                }
          39  +
                /* JsonParserGenerator.kt:408 */
   24     40   
            }
   25         -
            }
          41  +
            /* JsonParserGenerator.kt:446 */
   26     42   
            Ok(Some(items))
          43  +
            /* JsonParserGenerator.kt:713 */
   27     44   
        }
   28         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          45  +
        /* JsonParserGenerator.kt:722 */
          46  +
        _ => {
          47  +
            /* JsonParserGenerator.kt:723 */
          48  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   29     49   
                "expected start array or null",
   30         -
        )),
          50  +
            ))
          51  +
            /* JsonParserGenerator.kt:722 */
          52  +
        } /* JsonParserGenerator.kt:712 */
   31     53   
    }
          54  +
    /* JsonParserGenerator.kt:398 */
   32     55   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_attribute_map.rs

@@ -1,1 +39,64 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:460 */
    2      3   
pub(crate) fn de_attribute_map<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<
    5      6   
    Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>>,
    6      7   
    ::aws_smithy_json::deserialize::error::DeserializeError,
    7      8   
>
    8      9   
where
    9     10   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
   10     11   
{
          12  +
    /* JsonParserGenerator.kt:712 */
   11     13   
    match tokens.next().transpose()? {
   12         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          14  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   13     15   
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
          16  +
            /* JsonParserGenerator.kt:469 */
   14     17   
            let mut map = ::std::collections::HashMap::new();
          18  +
            /* JsonParserGenerator.kt:684 */
   15     19   
            loop {
          20  +
                /* JsonParserGenerator.kt:685 */
   16     21   
                match tokens.next().transpose()? {
   17         -
                    Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
          22  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   18     23   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
   19         -
                        let key = key.to_unescaped().map(|u| u.into_owned())?;
   20         -
                        let value = crate::protocol_serde::shape_attribute_value::de_attribute_value(tokens)?;
          24  +
                        /* JsonParserGenerator.kt:471 */
          25  +
                        let key =
          26  +
                            /* JsonParserGenerator.kt:339 */key.to_unescaped().map(|u|
          27  +
                                /* JsonParserGenerator.kt:348 */u.into_owned()
          28  +
                            /* JsonParserGenerator.kt:339 */)
          29  +
                        /* JsonParserGenerator.kt:471 */?;
          30  +
                        /* JsonParserGenerator.kt:474 */
          31  +
                        let value =
          32  +
                            /* JsonParserGenerator.kt:660 */crate::protocol_serde::shape_attribute_value::de_attribute_value(tokens)?
          33  +
                        /* JsonParserGenerator.kt:474 */;
          34  +
                        /* JsonParserGenerator.kt:491 */
   21     35   
                        if let Some(value) = value {
   22     36   
                            map.insert(key, value);
   23     37   
                        }
          38  +
                        /* JsonParserGenerator.kt:686 */
   24     39   
                    }
          40  +
                    /* JsonParserGenerator.kt:695 */
   25     41   
                    other => {
   26     42   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   27     43   
                            "expected object key or end object, found: {:?}",
   28     44   
                            other
   29     45   
                        )))
          46  +
                    } /* JsonParserGenerator.kt:685 */
   30     47   
                }
          48  +
                /* JsonParserGenerator.kt:684 */
   31     49   
            }
   32         -
            }
          50  +
            /* JsonParserGenerator.kt:504 */
   33     51   
            Ok(Some(map))
          52  +
            /* JsonParserGenerator.kt:713 */
   34     53   
        }
   35         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          54  +
        /* JsonParserGenerator.kt:722 */
          55  +
        _ => {
          56  +
            /* JsonParserGenerator.kt:723 */
          57  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   36     58   
                "expected start object or null",
   37         -
        )),
          59  +
            ))
          60  +
            /* JsonParserGenerator.kt:722 */
          61  +
        } /* JsonParserGenerator.kt:712 */
   38     62   
    }
          63  +
    /* JsonParserGenerator.kt:460 */
   39     64   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_attribute_name_list.rs

@@ -1,1 +34,59 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonParserGenerator.kt:398 */
    2      3   
pub(crate) fn de_attribute_name_list<'a, I>(
    3      4   
    tokens: &mut ::std::iter::Peekable<I>,
    4      5   
) -> ::std::result::Result<Option<::std::vec::Vec<::std::string::String>>, ::aws_smithy_json::deserialize::error::DeserializeError>
    5      6   
where
    6      7   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    7      8   
{
           9  +
    /* JsonParserGenerator.kt:712 */
    8     10   
    match tokens.next().transpose()? {
    9         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
          11  +
        /* JsonParserGenerator.kt:713 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   10     12   
        Some(::aws_smithy_json::deserialize::Token::StartArray { .. }) => {
          13  +
            /* JsonParserGenerator.kt:407 */
   11     14   
            let mut items = Vec::new();
          15  +
            /* JsonParserGenerator.kt:408 */
   12     16   
            loop {
          17  +
                /* JsonParserGenerator.kt:409 */
   13     18   
                match tokens.peek() {
          19  +
                    /* JsonParserGenerator.kt:410 */
   14     20   
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
          21  +
                        /* JsonParserGenerator.kt:411 */
   15     22   
                        tokens.next().transpose().unwrap();
   16     23   
                        break;
          24  +
                        /* JsonParserGenerator.kt:410 */
   17     25   
                    }
          26  +
                    /* JsonParserGenerator.kt:413 */
   18     27   
                    _ => {
   19         -
                        let value = ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   20         -
                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   21         -
                            .transpose()?;
          28  +
                        /* JsonParserGenerator.kt:419 */
          29  +
                        let value =
          30  +
                            /* JsonParserGenerator.kt:354 */::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?.map(|s|
          31  +
                                /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
          32  +
                                    /* JsonParserGenerator.kt:348 */u.into_owned()
          33  +
                                /* JsonParserGenerator.kt:339 */)
          34  +
                            /* JsonParserGenerator.kt:354 */).transpose()?
          35  +
                        /* JsonParserGenerator.kt:419 */;
          36  +
                        /* JsonParserGenerator.kt:422 */
   22     37   
                        if let Some(value) = value {
   23     38   
                            items.push(value);
   24     39   
                        }
          40  +
                        /* JsonParserGenerator.kt:413 */
          41  +
                    } /* JsonParserGenerator.kt:409 */
   25     42   
                }
          43  +
                /* JsonParserGenerator.kt:408 */
   26     44   
            }
   27         -
            }
          45  +
            /* JsonParserGenerator.kt:446 */
   28     46   
            Ok(Some(items))
          47  +
            /* JsonParserGenerator.kt:713 */
   29     48   
        }
   30         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
          49  +
        /* JsonParserGenerator.kt:722 */
          50  +
        _ => {
          51  +
            /* JsonParserGenerator.kt:723 */
          52  +
            Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   31     53   
                "expected start array or null",
   32         -
        )),
          54  +
            ))
          55  +
            /* JsonParserGenerator.kt:722 */
          56  +
        } /* JsonParserGenerator.kt:712 */
   33     57   
    }
          58  +
    /* JsonParserGenerator.kt:398 */
   34     59   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_attribute_value.rs

@@ -1,1 +183,410 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* JsonSerializerGenerator.kt:547 */
    2      3   
pub fn ser_attribute_value(
    3      4   
    object_6: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
    4      5   
    input: &crate::types::AttributeValue,
    5      6   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           7  +
    /* JsonSerializerGenerator.kt:556 */
    6      8   
    match input {
           9  +
        /* JsonSerializerGenerator.kt:564 */
    7     10   
        crate::types::AttributeValue::S(inner) => {
          11  +
            /* SerializerUtil.kt:42 */
          12  +
            {
          13  +
                /* JsonSerializerGenerator.kt:423 */
    8     14   
                object_6.key("S").string(inner.as_str());
          15  +
                /* SerializerUtil.kt:42 */
          16  +
            }
          17  +
            /* JsonSerializerGenerator.kt:564 */
    9     18   
        }
          19  +
        /* JsonSerializerGenerator.kt:564 */
   10     20   
        crate::types::AttributeValue::N(inner) => {
          21  +
            /* SerializerUtil.kt:42 */
          22  +
            {
          23  +
                /* JsonSerializerGenerator.kt:423 */
   11     24   
                object_6.key("N").string(inner.as_str());
          25  +
                /* SerializerUtil.kt:42 */
   12     26   
            }
          27  +
            /* JsonSerializerGenerator.kt:564 */
          28  +
        }
          29  +
        /* JsonSerializerGenerator.kt:564 */
   13     30   
        crate::types::AttributeValue::B(inner) => {
          31  +
            /* SerializerUtil.kt:42 */
          32  +
            {
          33  +
                /* JsonSerializerGenerator.kt:439 */
   14     34   
                object_6.key("B").string_unchecked(&::aws_smithy_types::base64::encode(inner));
          35  +
                /* SerializerUtil.kt:42 */
          36  +
            }
          37  +
            /* JsonSerializerGenerator.kt:564 */
   15     38   
        }
          39  +
        /* JsonSerializerGenerator.kt:564 */
   16     40   
        crate::types::AttributeValue::Ss(inner) => {
          41  +
            /* SerializerUtil.kt:42 */
          42  +
            {
          43  +
                /* JsonSerializerGenerator.kt:484 */
   17     44   
                let mut array_1 = object_6.key("SS").start_array();
          45  +
                /* JsonSerializerGenerator.kt:524 */
   18     46   
                for item_2 in inner {
          47  +
                    /* SerializerUtil.kt:42 */
   19     48   
                    {
          49  +
                        /* JsonSerializerGenerator.kt:423 */
   20     50   
                        array_1.value().string(item_2.as_str());
          51  +
                        /* SerializerUtil.kt:42 */
   21     52   
                    }
          53  +
                    /* JsonSerializerGenerator.kt:524 */
   22     54   
                }
          55  +
                /* JsonSerializerGenerator.kt:486 */
   23     56   
                array_1.finish();
          57  +
                /* SerializerUtil.kt:42 */
          58  +
            }
          59  +
            /* JsonSerializerGenerator.kt:564 */
   24     60   
        }
          61  +
        /* JsonSerializerGenerator.kt:564 */
   25     62   
        crate::types::AttributeValue::Ns(inner) => {
          63  +
            /* SerializerUtil.kt:42 */
          64  +
            {
          65  +
                /* JsonSerializerGenerator.kt:484 */
   26     66   
                let mut array_3 = object_6.key("NS").start_array();
          67  +
                /* JsonSerializerGenerator.kt:524 */
   27     68   
                for item_4 in inner {
          69  +
                    /* SerializerUtil.kt:42 */
   28     70   
                    {
          71  +
                        /* JsonSerializerGenerator.kt:423 */
   29     72   
                        array_3.value().string(item_4.as_str());
          73  +
                        /* SerializerUtil.kt:42 */
   30     74   
                    }
          75  +
                    /* JsonSerializerGenerator.kt:524 */
   31     76   
                }
          77  +
                /* JsonSerializerGenerator.kt:486 */
   32     78   
                array_3.finish();
          79  +
                /* SerializerUtil.kt:42 */
   33     80   
            }
          81  +
            /* JsonSerializerGenerator.kt:564 */
          82  +
        }
          83  +
        /* JsonSerializerGenerator.kt:564 */
   34     84   
        crate::types::AttributeValue::Bs(inner) => {
          85  +
            /* SerializerUtil.kt:42 */
          86  +
            {
          87  +
                /* JsonSerializerGenerator.kt:484 */
   35     88   
                let mut array_5 = object_6.key("BS").start_array();
          89  +
                /* JsonSerializerGenerator.kt:524 */
   36     90   
                for item_6 in inner {
          91  +
                    /* SerializerUtil.kt:42 */
   37     92   
                    {
          93  +
                        /* JsonSerializerGenerator.kt:439 */
   38     94   
                        array_5.value().string_unchecked(&::aws_smithy_types::base64::encode(item_6));
          95  +
                        /* SerializerUtil.kt:42 */
   39     96   
                    }
          97  +
                    /* JsonSerializerGenerator.kt:524 */
   40     98   
                }
          99  +
                /* JsonSerializerGenerator.kt:486 */
   41    100   
                array_5.finish();
         101  +
                /* SerializerUtil.kt:42 */
   42    102   
            }
         103  +
            /* JsonSerializerGenerator.kt:564 */
         104  +
        }
         105  +
        /* JsonSerializerGenerator.kt:564 */
   43    106   
        crate::types::AttributeValue::M(inner) => {
         107  +
            /* SerializerUtil.kt:42 */
         108  +
            {
         109  +
                /* JsonSerializerGenerator.kt:495 */
   44    110   
                #[allow(unused_mut)]
         111  +
                /* JsonSerializerGenerator.kt:496 */
   45    112   
                let mut object_7 = object_6.key("M").start_object();
         113  +
                /* JsonSerializerGenerator.kt:537 */
   46    114   
                for (key_8, value_9) in inner {
         115  +
                    /* SerializerUtil.kt:42 */
   47    116   
                    {
         117  +
                        /* JsonSerializerGenerator.kt:495 */
   48    118   
                        #[allow(unused_mut)]
         119  +
                        /* JsonSerializerGenerator.kt:496 */
   49    120   
                        let mut object_10 = object_7.key(key_8.as_str()).start_object();
         121  +
                        /* JsonSerializerGenerator.kt:579 */
   50    122   
                        crate::protocol_serde::shape_attribute_value::ser_attribute_value(&mut object_10, value_9)?;
         123  +
                        /* JsonSerializerGenerator.kt:515 */
   51    124   
                        object_10.finish();
         125  +
                        /* SerializerUtil.kt:42 */
   52    126   
                    }
         127  +
                    /* JsonSerializerGenerator.kt:537 */
   53    128   
                }
         129  +
                /* JsonSerializerGenerator.kt:515 */
   54    130   
                object_7.finish();
         131  +
                /* SerializerUtil.kt:42 */
         132  +
            }
         133  +
            /* JsonSerializerGenerator.kt:564 */
   55    134   
        }
         135  +
        /* JsonSerializerGenerator.kt:564 */
   56    136   
        crate::types::AttributeValue::L(inner) => {
         137  +
            /* SerializerUtil.kt:42 */
         138  +
            {
         139  +
                /* JsonSerializerGenerator.kt:484 */
   57    140   
                let mut array_11 = object_6.key("L").start_array();
         141  +
                /* JsonSerializerGenerator.kt:524 */
   58    142   
                for item_12 in inner {
         143  +
                    /* SerializerUtil.kt:42 */
   59    144   
                    {
         145  +
                        /* JsonSerializerGenerator.kt:495 */
   60    146   
                        #[allow(unused_mut)]
         147  +
                        /* JsonSerializerGenerator.kt:496 */
   61    148   
                        let mut object_13 = array_11.value().start_object();
         149  +
                        /* JsonSerializerGenerator.kt:579 */
   62    150   
                        crate::protocol_serde::shape_attribute_value::ser_attribute_value(&mut object_13, item_12)?;
         151  +
                        /* JsonSerializerGenerator.kt:515 */
   63    152   
                        object_13.finish();
         153  +
                        /* SerializerUtil.kt:42 */
   64    154   
                    }
         155  +
                    /* JsonSerializerGenerator.kt:524 */
   65    156   
                }
         157  +
                /* JsonSerializerGenerator.kt:486 */
   66    158   
                array_11.finish();
         159  +
                /* SerializerUtil.kt:42 */
         160  +
            }
         161  +
            /* JsonSerializerGenerator.kt:564 */
   67    162   
        }
         163  +
        /* JsonSerializerGenerator.kt:564 */
   68    164   
        crate::types::AttributeValue::Null(inner) => {
         165  +
            /* SerializerUtil.kt:42 */
         166  +
            {
         167  +
                /* JsonSerializerGenerator.kt:424 */
   69    168   
                object_6.key("NULL").boolean(*inner);
         169  +
                /* SerializerUtil.kt:42 */
   70    170   
            }
         171  +
            /* JsonSerializerGenerator.kt:564 */
         172  +
        }
         173  +
        /* JsonSerializerGenerator.kt:564 */
   71    174   
        crate::types::AttributeValue::Bool(inner) => {
         175  +
            /* SerializerUtil.kt:42 */
         176  +
            {
         177  +
                /* JsonSerializerGenerator.kt:424 */
   72    178   
                object_6.key("BOOL").boolean(*inner);
         179  +
                /* SerializerUtil.kt:42 */
         180  +
            }
         181  +
            /* JsonSerializerGenerator.kt:564 */
   73    182   
        }
         183  +
        /* JsonSerializerGenerator.kt:569 */
   74    184   
        crate::types::AttributeValue::Unknown => {
   75    185   
            return Err(::aws_smithy_types::error::operation::SerializationError::unknown_variant(
   76    186   
                "AttributeValue",
   77    187   
            ))
         188  +
        } /* JsonSerializerGenerator.kt:556 */
   78    189   
    }
   79         -
    }
         190  +
    /* JsonSerializerGenerator.kt:576 */
   80    191   
    Ok(())
         192  +
    /* JsonSerializerGenerator.kt:547 */
   81    193   
}
   82    194   
         195  +
/* JsonParserGenerator.kt:551 */
   83    196   
pub(crate) fn de_attribute_value<'a, I>(
   84    197   
    tokens: &mut ::std::iter::Peekable<I>,
   85    198   
) -> ::std::result::Result<Option<crate::types::AttributeValue>, ::aws_smithy_json::deserialize::error::DeserializeError>
   86    199   
where
   87    200   
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
   88    201   
{
         202  +
    /* JsonParserGenerator.kt:565 */
   89    203   
    let mut variant = None;
         204  +
    /* JsonParserGenerator.kt:567 */
   90    205   
    match tokens.next().transpose()? {
   91         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
   92         -
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => loop {
         206  +
        /* JsonParserGenerator.kt:568 */ Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => return Ok(None),
         207  +
        Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
         208  +
            /* JsonParserGenerator.kt:684 */
         209  +
            loop {
         210  +
                /* JsonParserGenerator.kt:685 */
   93    211   
                match tokens.next().transpose()? {
   94         -
                Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
         212  +
                    /* JsonParserGenerator.kt:686 */ Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
   95    213   
                    Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => {
         214  +
                        /* JsonParserGenerator.kt:576 */
   96    215   
                        if let ::std::option::Option::Some(::std::result::Result::Ok(::aws_smithy_json::deserialize::Token::ValueNull { .. })) =
   97    216   
                            tokens.peek()
   98    217   
                        {
   99    218   
                            let _ = tokens.next().expect("peek returned a token")?;
  100    219   
                            continue;
  101    220   
                        }
         221  +
                        /* JsonParserGenerator.kt:585 */
  102    222   
                        let key = key.to_unescaped()?;
  103    223   
                        if key == "__type" {
  104    224   
                            ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
  105    225   
                            continue;
  106    226   
                        }
  107    227   
                        if variant.is_some() {
  108    228   
                            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  109    229   
                                "encountered mixed variants in union",
  110    230   
                            ));
  111    231   
                        }
         232  +
                        /* JsonParserGenerator.kt:598 */
  112    233   
                        variant = match key.as_ref() {
  113         -
                        "S" => Some(crate::types::AttributeValue::S(
         234  +
                            /* JsonParserGenerator.kt:601 */
         235  +
                            "S" => {
         236  +
                                /* JsonParserGenerator.kt:611 */
         237  +
                                Some(crate::types::AttributeValue::S(
         238  +
                                    /* JsonParserGenerator.kt:354 */
  114    239   
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  115         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
         240  +
                                        .map(|s|
         241  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         242  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
         243  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
  116    244   
                                        .transpose()?
  117         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'S' cannot be null"))?,
  118         -
                        )),
  119         -
                        "N" => Some(crate::types::AttributeValue::N(
         245  +
                                        /* JsonParserGenerator.kt:670 */
         246  +
                                        .ok_or_else(|| {
         247  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'S' cannot be null")
         248  +
                                        })?, /* JsonParserGenerator.kt:611 */
         249  +
                                ))
         250  +
                                /* JsonParserGenerator.kt:601 */
         251  +
                            }
         252  +
                            /* JsonParserGenerator.kt:601 */
         253  +
                            "N" => {
         254  +
                                /* JsonParserGenerator.kt:611 */
         255  +
                                Some(crate::types::AttributeValue::N(
         256  +
                                    /* JsonParserGenerator.kt:354 */
  120    257   
                                    ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
  121         -
                                .map(|s| s.to_unescaped().map(|u| u.into_owned()))
         258  +
                                        .map(|s|
         259  +
                                        /* JsonParserGenerator.kt:339 */s.to_unescaped().map(|u|
         260  +
                                            /* JsonParserGenerator.kt:348 */u.into_owned()
         261  +
                                        /* JsonParserGenerator.kt:339 */) /* JsonParserGenerator.kt:354 */)
  122    262   
                                        .transpose()?
  123         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'N' cannot be null"))?,
  124         -
                        )),
  125         -
                        "B" => Some(crate::types::AttributeValue::B(
         263  +
                                        /* JsonParserGenerator.kt:670 */
         264  +
                                        .ok_or_else(|| {
         265  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'N' cannot be null")
         266  +
                                        })?, /* JsonParserGenerator.kt:611 */
         267  +
                                ))
         268  +
                                /* JsonParserGenerator.kt:601 */
         269  +
                            }
         270  +
                            /* JsonParserGenerator.kt:601 */
         271  +
                            "B" => {
         272  +
                                /* JsonParserGenerator.kt:611 */
         273  +
                                Some(crate::types::AttributeValue::B(
         274  +
                                    /* JsonParserGenerator.kt:326 */
  126    275   
                                    ::aws_smithy_json::deserialize::token::expect_blob_or_null(tokens.next())?
  127         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'B' cannot be null"))?,
  128         -
                        )),
  129         -
                        "SS" => Some(crate::types::AttributeValue::Ss(
         276  +
                                        /* JsonParserGenerator.kt:670 */
         277  +
                                        .ok_or_else(|| {
         278  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'B' cannot be null")
         279  +
                                        })?, /* JsonParserGenerator.kt:611 */
         280  +
                                ))
         281  +
                                /* JsonParserGenerator.kt:601 */
         282  +
                            }
         283  +
                            /* JsonParserGenerator.kt:601 */
         284  +
                            "SS" => {
         285  +
                                /* JsonParserGenerator.kt:611 */
         286  +
                                Some(crate::types::AttributeValue::Ss(
         287  +
                                    /* JsonParserGenerator.kt:451 */
  130    288   
                                    crate::protocol_serde::shape_string_set_attribute_value::de_string_set_attribute_value(tokens)?
  131         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'SS' cannot be null"))?,
  132         -
                        )),
  133         -
                        "NS" => Some(crate::types::AttributeValue::Ns(
         289  +
                                        /* JsonParserGenerator.kt:670 */
         290  +
                                        .ok_or_else(|| {
         291  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'SS' cannot be null")
         292  +
                                        })?, /* JsonParserGenerator.kt:611 */
         293  +
                                ))
         294  +
                                /* JsonParserGenerator.kt:601 */
         295  +
                            }
         296  +
                            /* JsonParserGenerator.kt:601 */
         297  +
                            "NS" => {
         298  +
                                /* JsonParserGenerator.kt:611 */
         299  +
                                Some(crate::types::AttributeValue::Ns(
         300  +
                                    /* JsonParserGenerator.kt:451 */
  134    301   
                                    crate::protocol_serde::shape_number_set_attribute_value::de_number_set_attribute_value(tokens)?
  135         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NS' cannot be null"))?,
  136         -
                        )),
  137         -
                        "BS" => Some(crate::types::AttributeValue::Bs(
         302  +
                                        /* JsonParserGenerator.kt:670 */
         303  +
                                        .ok_or_else(|| {
         304  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NS' cannot be null")
         305  +
                                        })?, /* JsonParserGenerator.kt:611 */
         306  +
                                ))
         307  +
                                /* JsonParserGenerator.kt:601 */
         308  +
                            }
         309  +
                            /* JsonParserGenerator.kt:601 */
         310  +
                            "BS" => {
         311  +
                                /* JsonParserGenerator.kt:611 */
         312  +
                                Some(crate::types::AttributeValue::Bs(
         313  +
                                    /* JsonParserGenerator.kt:451 */
  138    314   
                                    crate::protocol_serde::shape_binary_set_attribute_value::de_binary_set_attribute_value(tokens)?
  139         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'BS' cannot be null"))?,
  140         -
                        )),
  141         -
                        "M" => Some(crate::types::AttributeValue::M(
         315  +
                                        /* JsonParserGenerator.kt:670 */
         316  +
                                        .ok_or_else(|| {
         317  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'BS' cannot be null")
         318  +
                                        })?, /* JsonParserGenerator.kt:611 */
         319  +
                                ))
         320  +
                                /* JsonParserGenerator.kt:601 */
         321  +
                            }
         322  +
                            /* JsonParserGenerator.kt:601 */
         323  +
                            "M" => {
         324  +
                                /* JsonParserGenerator.kt:611 */
         325  +
                                Some(crate::types::AttributeValue::M(
         326  +
                                    /* JsonParserGenerator.kt:509 */
  142    327   
                                    crate::protocol_serde::shape_map_attribute_value::de_map_attribute_value(tokens)?
  143         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'M' cannot be null"))?,
  144         -
                        )),
  145         -
                        "L" => Some(crate::types::AttributeValue::L(
         328  +
                                        /* JsonParserGenerator.kt:670 */
         329  +
                                        .ok_or_else(|| {
         330  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'M' cannot be null")
         331  +
                                        })?, /* JsonParserGenerator.kt:611 */
         332  +
                                ))
         333  +
                                /* JsonParserGenerator.kt:601 */
         334  +
                            }
         335  +
                            /* JsonParserGenerator.kt:601 */
         336  +
                            "L" => {
         337  +
                                /* JsonParserGenerator.kt:611 */
         338  +
                                Some(crate::types::AttributeValue::L(
         339  +
                                    /* JsonParserGenerator.kt:451 */
  146    340   
                                    crate::protocol_serde::shape_list_attribute_value::de_list_attribute_value(tokens)?
  147         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'L' cannot be null"))?,
  148         -
                        )),
  149         -
                        "NULL" => Some(crate::types::AttributeValue::Null(
         341  +
                                        /* JsonParserGenerator.kt:670 */
         342  +
                                        .ok_or_else(|| {
         343  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'L' cannot be null")
         344  +
                                        })?, /* JsonParserGenerator.kt:611 */
         345  +
                                ))
         346  +
                                /* JsonParserGenerator.kt:601 */
         347  +
                            }
         348  +
                            /* JsonParserGenerator.kt:601 */
         349  +
                            "NULL" => {
         350  +
                                /* JsonParserGenerator.kt:611 */
         351  +
                                Some(crate::types::AttributeValue::Null(
         352  +
                                    /* JsonParserGenerator.kt:298 */
  150    353   
                                    ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?
  151         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NULL' cannot be null"))?,
  152         -
                        )),
  153         -
                        "BOOL" => Some(crate::types::AttributeValue::Bool(
         354  +
                                        /* JsonParserGenerator.kt:670 */
         355  +
                                        .ok_or_else(|| {
         356  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'NULL' cannot be null")
         357  +
                                        })?, /* JsonParserGenerator.kt:611 */
         358  +
                                ))
         359  +
                                /* JsonParserGenerator.kt:601 */
         360  +
                            }
         361  +
                            /* JsonParserGenerator.kt:601 */
         362  +
                            "BOOL" => {
         363  +
                                /* JsonParserGenerator.kt:611 */
         364  +
                                Some(crate::types::AttributeValue::Bool(
         365  +
                                    /* JsonParserGenerator.kt:298 */
  154    366   
                                    ::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?
  155         -
                                .ok_or_else(|| ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'BOOL' cannot be null"))?,
  156         -
                        )),
         367  +
                                        /* JsonParserGenerator.kt:670 */
         368  +
                                        .ok_or_else(|| {
         369  +
                                            ::aws_smithy_json::deserialize::error::DeserializeError::custom("value for 'BOOL' cannot be null")
         370  +
                                        })?, /* JsonParserGenerator.kt:611 */
         371  +
                                ))
         372  +
                                /* JsonParserGenerator.kt:601 */
         373  +
                            }
         374  +
                            /* JsonParserGenerator.kt:621 */
  157    375   
                            _ => {
  158    376   
                                ::aws_smithy_json::deserialize::token::skip_value(tokens)?;
  159    377   
                                Some(crate::types::AttributeValue::Unknown)
  160         -
                        }
         378  +
                            } /* JsonParserGenerator.kt:598 */
  161    379   
                        };
         380  +
                        /* JsonParserGenerator.kt:686 */
  162    381   
                    }
         382  +
                    /* JsonParserGenerator.kt:695 */
  163    383   
                    other => {
  164    384   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
  165    385   
                            "expected object key or end object, found: {:?}",
  166    386   
                            other
  167    387   
                        )))
         388  +
                    } /* JsonParserGenerator.kt:685 */
  168    389   
                }
         390  +
                /* JsonParserGenerator.kt:684 */
  169    391   
            }
  170         -
        },
         392  +
            /* JsonParserGenerator.kt:568 */
         393  +
        }
         394  +
        /* JsonParserGenerator.kt:642 */
  171    395   
        _ => {
  172    396   
            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  173    397   
                "expected start object or null",
  174    398   
            ))
         399  +
        } /* JsonParserGenerator.kt:567 */
  175    400   
    }
  176         -
    }
         401  +
    /* JsonParserGenerator.kt:649 */
  177    402   
    if variant.is_none() {
  178    403   
        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
  179    404   
            "Union did not contain a valid variant.",
  180    405   
        ));
  181    406   
    }
         407  +
    /* JsonParserGenerator.kt:657 */
  182    408   
    Ok(variant)
         409  +
    /* JsonParserGenerator.kt:551 */
  183    410   
}