Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/update_item/_update_item_output.rs

@@ -1,1 +148,212 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the output of an <code>UpdateItem</code> operation.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the output of an <code>UpdateItem</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 UpdateItemOutput {
    7         -
    /// <p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct UpdateItemOutput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
    8     10   
    /// <p>The <code>Attributes</code> map is only present if <code>ReturnValues</code> was specified as something other than <code>NONE</code> in the request. Each element represents one attribute.</p>
    9     11   
    pub attributes: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>>,
   10         -
    /// <p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
          12  +
    /// /* StructureGenerator.kt:231 */<p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   11     13   
    pub consumed_capacity: ::std::option::Option<crate::types::ConsumedCapacity>,
   12         -
    /// <p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
          14  +
    /// /* StructureGenerator.kt:231 */<p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
   13     15   
    /// <p>Each <code>ItemCollectionMetrics</code> element consists of:</p>
   14     16   
    /// <ul>
   15     17   
    /// <li>
   16     18   
    /// <p><code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item itself.</p></li>
   17     19   
    /// <li>
   18     20   
    /// <p><code>SizeEstimateRangeGB</code> - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit.</p>
   19     21   
    /// <p>The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.</p></li>
   20     22   
    /// </ul>
   21     23   
    pub item_collection_metrics: ::std::option::Option<crate::types::ItemCollectionMetrics>,
          24  +
    /* StructureGenerator.kt:201 */
   22     25   
}
          26  +
/* StructureGenerator.kt:135 */
   23     27   
impl UpdateItemOutput {
   24         -
    /// <p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
          28  +
    /// /* StructureGenerator.kt:231 */<p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
   25     29   
    /// <p>The <code>Attributes</code> map is only present if <code>ReturnValues</code> was specified as something other than <code>NONE</code> in the request. Each element represents one attribute.</p>
          30  +
    /* StructureGenerator.kt:166 */
   26     31   
    pub fn attributes(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>> {
          32  +
        /* StructureGenerator.kt:170 */
   27     33   
        self.attributes.as_ref()
          34  +
        /* StructureGenerator.kt:166 */
   28     35   
    }
   29         -
    /// <p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
          36  +
    /// /* StructureGenerator.kt:231 */<p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
          37  +
    /* StructureGenerator.kt:166 */
   30     38   
    pub fn consumed_capacity(&self) -> ::std::option::Option<&crate::types::ConsumedCapacity> {
          39  +
        /* StructureGenerator.kt:170 */
   31     40   
        self.consumed_capacity.as_ref()
          41  +
        /* StructureGenerator.kt:166 */
   32     42   
    }
   33         -
    /// <p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
          43  +
    /// /* StructureGenerator.kt:231 */<p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
   34     44   
    /// <p>Each <code>ItemCollectionMetrics</code> element consists of:</p>
   35     45   
    /// <ul>
   36     46   
    /// <li>
   37     47   
    /// <p><code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item itself.</p></li>
   38     48   
    /// <li>
   39     49   
    /// <p><code>SizeEstimateRangeGB</code> - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit.</p>
   40     50   
    /// <p>The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.</p></li>
   41     51   
    /// </ul>
          52  +
    /* StructureGenerator.kt:166 */
   42     53   
    pub fn item_collection_metrics(&self) -> ::std::option::Option<&crate::types::ItemCollectionMetrics> {
          54  +
        /* StructureGenerator.kt:170 */
   43     55   
        self.item_collection_metrics.as_ref()
          56  +
        /* StructureGenerator.kt:166 */
   44     57   
    }
          58  +
    /* StructureGenerator.kt:135 */
   45     59   
}
          60  +
/* ClientCodegenVisitor.kt:237 */
   46     61   
impl UpdateItemOutput {
   47         -
    /// Creates a new builder-style object to manufacture [`UpdateItemOutput`](crate::operation::update_item::UpdateItemOutput).
          62  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`UpdateItemOutput`](crate::operation::update_item::UpdateItemOutput).
          63  +
    /* BuilderGenerator.kt:175 */
   48     64   
    pub fn builder() -> crate::operation::update_item::builders::UpdateItemOutputBuilder {
          65  +
        /* BuilderGenerator.kt:176 */
   49     66   
        crate::operation::update_item::builders::UpdateItemOutputBuilder::default()
          67  +
        /* BuilderGenerator.kt:175 */
   50     68   
    }
          69  +
    /* ClientCodegenVisitor.kt:237 */
   51     70   
}
   52     71   
   53         -
/// A builder for [`UpdateItemOutput`](crate::operation::update_item::UpdateItemOutput).
          72  +
/// /* BuilderGenerator.kt:342 */A builder for [`UpdateItemOutput`](crate::operation::update_item::UpdateItemOutput).
          73  +
/* RustType.kt:516 */
   54     74   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          75  +
/* RustType.kt:516 */
   55     76   
#[non_exhaustive]
          77  +
/* BuilderGenerator.kt:345 */
   56     78   
pub struct UpdateItemOutputBuilder {
          79  +
    /* BuilderGenerator.kt:275 */
   57     80   
    pub(crate) attributes: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>>,
   58         -
    pub(crate) consumed_capacity: ::std::option::Option<crate::types::ConsumedCapacity>,
          81  +
    /* BuilderGenerator.kt:275 */ pub(crate) consumed_capacity: ::std::option::Option<crate::types::ConsumedCapacity>,
          82  +
    /* BuilderGenerator.kt:275 */
   59     83   
    pub(crate) item_collection_metrics: ::std::option::Option<crate::types::ItemCollectionMetrics>,
          84  +
    /* BuilderGenerator.kt:345 */
   60     85   
}
          86  +
/* BuilderGenerator.kt:355 */
   61     87   
impl UpdateItemOutputBuilder {
   62         -
    /// Adds a key-value pair to `attributes`.
          88  +
    /// /* BuilderGenerator.kt:436 */Adds a key-value pair to `attributes`.
          89  +
    /* BuilderGenerator.kt:437 */
   63     90   
    ///
   64         -
    /// To override the contents of this collection use [`set_attributes`](Self::set_attributes).
          91  +
    /// /* BuilderGenerator.kt:438 */To override the contents of this collection use [`set_attributes`](Self::set_attributes).
          92  +
    /* BuilderGenerator.kt:439 */
   65     93   
    ///
   66         -
    /// <p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
          94  +
    /// /* BuilderGenerator.kt:440 */<p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
   67     95   
    /// <p>The <code>Attributes</code> map is only present if <code>ReturnValues</code> was specified as something other than <code>NONE</code> in the request. Each element represents one attribute.</p>
          96  +
    /* BuilderGenerator.kt:445 */
   68     97   
    pub fn attributes(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::AttributeValue) -> Self {
          98  +
        /* BuilderGenerator.kt:448 */
   69     99   
        let mut hash_map = self.attributes.unwrap_or_default();
   70    100   
        hash_map.insert(k.into(), v);
   71    101   
        self.attributes = ::std::option::Option::Some(hash_map);
   72    102   
        self
         103  +
        /* BuilderGenerator.kt:445 */
   73    104   
    }
   74         -
    /// <p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
         105  +
    /// /* BuilderGenerator.kt:312 */<p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
   75    106   
    /// <p>The <code>Attributes</code> map is only present if <code>ReturnValues</code> was specified as something other than <code>NONE</code> in the request. Each element represents one attribute.</p>
         107  +
    /* BuilderGenerator.kt:314 */
   76    108   
    pub fn set_attributes(
   77    109   
        mut self,
   78    110   
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>>,
   79    111   
    ) -> Self {
         112  +
        /* BuilderGenerator.kt:315 */
   80    113   
        self.attributes = input;
   81    114   
        self
         115  +
        /* BuilderGenerator.kt:314 */
   82    116   
    }
   83         -
    /// <p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
         117  +
    /// /* BuilderGenerator.kt:334 */<p>A map of attribute values as they appear before or after the <code>UpdateItem</code> operation, as determined by the <code>ReturnValues</code> parameter.</p>
   84    118   
    /// <p>The <code>Attributes</code> map is only present if <code>ReturnValues</code> was specified as something other than <code>NONE</code> in the request. Each element represents one attribute.</p>
         119  +
    /* BuilderGenerator.kt:336 */
   85    120   
    pub fn get_attributes(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>> {
         121  +
        /* BuilderGenerator.kt:337 */
   86    122   
        &self.attributes
         123  +
        /* BuilderGenerator.kt:336 */
   87    124   
    }
   88         -
    /// <p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         125  +
    /// /* BuilderGenerator.kt:286 */<p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         126  +
    /* BuilderGenerator.kt:291 */
   89    127   
    pub fn consumed_capacity(mut self, input: crate::types::ConsumedCapacity) -> Self {
         128  +
        /* BuilderGenerator.kt:292 */
   90    129   
        self.consumed_capacity = ::std::option::Option::Some(input);
         130  +
        /* BuilderGenerator.kt:293 */
   91    131   
        self
         132  +
        /* BuilderGenerator.kt:291 */
   92    133   
    }
   93         -
    /// <p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         134  +
    /// /* BuilderGenerator.kt:312 */<p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         135  +
    /* BuilderGenerator.kt:314 */
   94    136   
    pub fn set_consumed_capacity(mut self, input: ::std::option::Option<crate::types::ConsumedCapacity>) -> Self {
         137  +
        /* BuilderGenerator.kt:315 */
   95    138   
        self.consumed_capacity = input;
   96    139   
        self
         140  +
        /* BuilderGenerator.kt:314 */
   97    141   
    }
   98         -
    /// <p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         142  +
    /// /* BuilderGenerator.kt:334 */<p>The capacity units consumed by the <code>UpdateItem</code> operation. The data returned includes the total provisioned throughput consumed, along with statistics for the table and any indexes involved in the operation. <code>ConsumedCapacity</code> is only returned if the <code>ReturnConsumedCapacity</code> parameter was specified. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html">Provisioned Throughput</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         143  +
    /* BuilderGenerator.kt:336 */
   99    144   
    pub fn get_consumed_capacity(&self) -> &::std::option::Option<crate::types::ConsumedCapacity> {
         145  +
        /* BuilderGenerator.kt:337 */
  100    146   
        &self.consumed_capacity
         147  +
        /* BuilderGenerator.kt:336 */
  101    148   
    }
  102         -
    /// <p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
         149  +
    /// /* BuilderGenerator.kt:286 */<p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
  103    150   
    /// <p>Each <code>ItemCollectionMetrics</code> element consists of:</p>
  104    151   
    /// <ul>
  105    152   
    /// <li>
  106    153   
    /// <p><code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item itself.</p></li>
  107    154   
    /// <li>
  108    155   
    /// <p><code>SizeEstimateRangeGB</code> - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit.</p>
  109    156   
    /// <p>The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.</p></li>
  110    157   
    /// </ul>
         158  +
    /* BuilderGenerator.kt:291 */
  111    159   
    pub fn item_collection_metrics(mut self, input: crate::types::ItemCollectionMetrics) -> Self {
         160  +
        /* BuilderGenerator.kt:292 */
  112    161   
        self.item_collection_metrics = ::std::option::Option::Some(input);
         162  +
        /* BuilderGenerator.kt:293 */
  113    163   
        self
         164  +
        /* BuilderGenerator.kt:291 */
  114    165   
    }
  115         -
    /// <p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
         166  +
    /// /* BuilderGenerator.kt:312 */<p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
  116    167   
    /// <p>Each <code>ItemCollectionMetrics</code> element consists of:</p>
  117    168   
    /// <ul>
  118    169   
    /// <li>
  119    170   
    /// <p><code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item itself.</p></li>
  120    171   
    /// <li>
  121    172   
    /// <p><code>SizeEstimateRangeGB</code> - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit.</p>
  122    173   
    /// <p>The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.</p></li>
  123    174   
    /// </ul>
         175  +
    /* BuilderGenerator.kt:314 */
  124    176   
    pub fn set_item_collection_metrics(mut self, input: ::std::option::Option<crate::types::ItemCollectionMetrics>) -> Self {
         177  +
        /* BuilderGenerator.kt:315 */
  125    178   
        self.item_collection_metrics = input;
  126    179   
        self
         180  +
        /* BuilderGenerator.kt:314 */
  127    181   
    }
  128         -
    /// <p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
         182  +
    /// /* BuilderGenerator.kt:334 */<p>Information about item collections, if any, that were affected by the <code>UpdateItem</code> operation. <code>ItemCollectionMetrics</code> is only returned if the <code>ReturnItemCollectionMetrics</code> parameter was specified. If the table does not have any local secondary indexes, this information is not returned in the response.</p>
  129    183   
    /// <p>Each <code>ItemCollectionMetrics</code> element consists of:</p>
  130    184   
    /// <ul>
  131    185   
    /// <li>
  132    186   
    /// <p><code>ItemCollectionKey</code> - The partition key value of the item collection. This is the same as the partition key value of the item itself.</p></li>
  133    187   
    /// <li>
  134    188   
    /// <p><code>SizeEstimateRangeGB</code> - An estimate of item collection size, in gigabytes. This value is a two-element array containing a lower bound and an upper bound for the estimate. The estimate includes the size of all the items in the table, plus the size of all attributes projected into all of the local secondary indexes on that table. Use this estimate to measure whether a local secondary index is approaching its size limit.</p>
  135    189   
    /// <p>The estimate is subject to change over time; therefore, do not rely on the precision or accuracy of the estimate.</p></li>
  136    190   
    /// </ul>
         191  +
    /* BuilderGenerator.kt:336 */
  137    192   
    pub fn get_item_collection_metrics(&self) -> &::std::option::Option<crate::types::ItemCollectionMetrics> {
         193  +
        /* BuilderGenerator.kt:337 */
  138    194   
        &self.item_collection_metrics
         195  +
        /* BuilderGenerator.kt:336 */
  139    196   
    }
  140         -
    /// Consumes the builder and constructs a [`UpdateItemOutput`](crate::operation::update_item::UpdateItemOutput).
         197  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`UpdateItemOutput`](crate::operation::update_item::UpdateItemOutput).
         198  +
    /* BuilderGenerator.kt:253 */
  141    199   
    pub fn build(self) -> crate::operation::update_item::UpdateItemOutput {
         200  +
        /* BuilderGenerator.kt:477 */
  142    201   
        crate::operation::update_item::UpdateItemOutput {
  143         -
            attributes: self.attributes,
         202  +
            /* BuilderGenerator.kt:481 */ attributes: self.attributes,
         203  +
            /* BuilderGenerator.kt:481 */
  144    204   
            consumed_capacity: self.consumed_capacity,
         205  +
            /* BuilderGenerator.kt:481 */
  145    206   
            item_collection_metrics: self.item_collection_metrics,
         207  +
            /* BuilderGenerator.kt:477 */
  146    208   
        }
         209  +
        /* BuilderGenerator.kt:253 */
  147    210   
    }
         211  +
    /* BuilderGenerator.kt:355 */
  148    212   
}

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

@@ -1,1 +639,687 @@
    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_item::_update_item_output::UpdateItemOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::update_item::_update_item_input::UpdateItemInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::update_item::builders::UpdateItemInputBuilder {
    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_item::UpdateItemOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::update_item::UpdateItemError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.update_item();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `UpdateItem`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `UpdateItem`.
   24     27   
///
   25         -
/// <p>Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values).</p>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>Edits an existing item's attributes, or adds a new item to the table if it does not already exist. You can put, delete, or add attribute values. You can also perform a conditional update on an existing item (insert a new attribute name-value pair if it doesn't exist, or replace an existing name-value pair if it has certain expected attribute values).</p>
   26     29   
/// <p>You can also return the item's attribute values in the same <code>UpdateItem</code> operation using the <code>ReturnValues</code> parameter.</p>
          30  +
/* RustType.kt:516 */
   27     31   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          32  +
/* FluentBuilderGenerator.kt:270 */
   28     33   
pub struct UpdateItemFluentBuilder {
   29     34   
    handle: ::std::sync::Arc<crate::client::Handle>,
   30     35   
    inner: crate::operation::update_item::builders::UpdateItemInputBuilder,
   31     36   
    config_override: ::std::option::Option<crate::config::Builder>,
   32     37   
}
          38  +
/* FluentBuilderGenerator.kt:381 */
   33     39   
impl
   34     40   
    crate::client::customize::internal::CustomizableSend<
   35     41   
        crate::operation::update_item::UpdateItemOutput,
   36     42   
        crate::operation::update_item::UpdateItemError,
   37     43   
    > for UpdateItemFluentBuilder
   38     44   
{
   39     45   
    fn send(
   40     46   
        self,
   41     47   
        config_override: crate::config::Builder,
   42     48   
    ) -> crate::client::customize::internal::BoxFuture<
   43     49   
        crate::client::customize::internal::SendResult<
   44     50   
            crate::operation::update_item::UpdateItemOutput,
   45     51   
            crate::operation::update_item::UpdateItemError,
   46     52   
        >,
   47     53   
    > {
   48     54   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   49     55   
    }
   50     56   
}
          57  +
/* FluentBuilderGenerator.kt:282 */
   51     58   
impl UpdateItemFluentBuilder {
          59  +
    /* FluentBuilderGenerator.kt:288 */
   52     60   
    /// Creates a new `UpdateItemFluentBuilder`.
   53     61   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   54     62   
        Self {
   55     63   
            handle,
   56     64   
            inner: ::std::default::Default::default(),
   57     65   
            config_override: ::std::option::Option::None,
   58     66   
        }
   59     67   
    }
          68  +
    /* FluentBuilderGenerator.kt:301 */
   60     69   
    /// Access the UpdateItem as a reference.
   61     70   
    pub fn as_input(&self) -> &crate::operation::update_item::builders::UpdateItemInputBuilder {
   62     71   
        &self.inner
   63     72   
    }
          73  +
    /* FluentBuilderGenerator.kt:145 */
   64     74   
    /// Sends the request and returns the response.
   65     75   
    ///
   66     76   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   67     77   
    /// can be matched against.
   68     78   
    ///
   69     79   
    /// By default, any retryable failures will be retried twice. Retry behavior
   70     80   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   71     81   
    /// set when configuring the client.
   72     82   
    pub async fn send(
   73     83   
        self,
   74     84   
    ) -> ::std::result::Result<
   75     85   
        crate::operation::update_item::UpdateItemOutput,
   76     86   
        ::aws_smithy_runtime_api::client::result::SdkError<
   77     87   
            crate::operation::update_item::UpdateItemError,
   78     88   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   79     89   
        >,
   80     90   
    > {
   81     91   
        let input = self
   82     92   
            .inner
   83     93   
            .build()
   84     94   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   85     95   
        let runtime_plugins = crate::operation::update_item::UpdateItem::operation_runtime_plugins(
   86     96   
            self.handle.runtime_plugins.clone(),
   87     97   
            &self.handle.conf,
   88     98   
            self.config_override,
   89     99   
        );
   90    100   
        crate::operation::update_item::UpdateItem::orchestrate(&runtime_plugins, input).await
   91    101   
    }
   92    102   
   93    103   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   94    104   
    pub fn customize(
   95    105   
        self,
   96    106   
    ) -> crate::client::customize::CustomizableOperation<
   97    107   
        crate::operation::update_item::UpdateItemOutput,
   98    108   
        crate::operation::update_item::UpdateItemError,
   99    109   
        Self,
  100    110   
    > {
  101    111   
        crate::client::customize::CustomizableOperation::new(self)
  102    112   
    }
         113  +
    /* FluentBuilderGenerator.kt:315 */
  103    114   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  104    115   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  105    116   
        self
  106    117   
    }
  107    118   
  108    119   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  109    120   
        self.config_override = config_override;
  110    121   
        self
  111    122   
    }
  112         -
    /// <p>The name of the table containing the item to update.</p>
         123  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the table containing the item to update.</p>
         124  +
    /* FluentBuilderGenerator.kt:500 */
  113    125   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  114    126   
        self.inner = self.inner.table_name(input.into());
  115    127   
        self
  116    128   
    }
  117         -
    /// <p>The name of the table containing the item to update.</p>
         129  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the table containing the item to update.</p>
         130  +
    /* FluentBuilderGenerator.kt:500 */
  118    131   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  119    132   
        self.inner = self.inner.set_table_name(input);
  120    133   
        self
  121    134   
    }
  122         -
    /// <p>The name of the table containing the item to update.</p>
         135  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The name of the table containing the item to update.</p>
         136  +
    /* FluentBuilderGenerator.kt:520 */
  123    137   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
  124    138   
        self.inner.get_table_name()
  125    139   
    }
  126         -
    ///
         140  +
    /// /* FluentBuilderGenerator.kt:466 */
  127    141   
    /// Adds a key-value pair to `Key`.
  128    142   
    ///
  129    143   
    /// To override the contents of this collection use [`set_key`](Self::set_key).
  130    144   
    ///
  131         -
    /// <p>The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute.</p>
         145  +
    /// /* FluentBuilderGenerator.kt:473 */<p>The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute.</p>
  132    146   
    /// <p>For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
         147  +
    /* FluentBuilderGenerator.kt:475 */
  133    148   
    pub fn key(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::AttributeValue) -> Self {
  134    149   
        self.inner = self.inner.key(k.into(), v);
  135    150   
        self
  136    151   
    }
  137         -
    /// <p>The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute.</p>
         152  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute.</p>
  138    153   
    /// <p>For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
         154  +
    /* FluentBuilderGenerator.kt:500 */
  139    155   
    pub fn set_key(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>>) -> Self {
  140    156   
        self.inner = self.inner.set_key(input);
  141    157   
        self
  142    158   
    }
  143         -
    /// <p>The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute.</p>
         159  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The primary key of the item to be updated. Each element consists of an attribute name and a value for that attribute.</p>
  144    160   
    /// <p>For the primary key, you must provide all of the attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
         161  +
    /* FluentBuilderGenerator.kt:520 */
  145    162   
    pub fn get_key(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>> {
  146    163   
        self.inner.get_key()
  147    164   
    }
  148         -
    ///
         165  +
    /// /* FluentBuilderGenerator.kt:466 */
  149    166   
    /// Adds a key-value pair to `AttributeUpdates`.
  150    167   
    ///
  151    168   
    /// To override the contents of this collection use [`set_attribute_updates`](Self::set_attribute_updates).
  152    169   
    ///
  153         -
    /// <p>This is a legacy parameter. Use <code>UpdateExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html">AttributeUpdates</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         170  +
    /// /* FluentBuilderGenerator.kt:473 */<p>This is a legacy parameter. Use <code>UpdateExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html">AttributeUpdates</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         171  +
    /* FluentBuilderGenerator.kt:475 */
  154    172   
    pub fn attribute_updates(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::AttributeValueUpdate) -> Self {
  155    173   
        self.inner = self.inner.attribute_updates(k.into(), v);
  156    174   
        self
  157    175   
    }
  158         -
    /// <p>This is a legacy parameter. Use <code>UpdateExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html">AttributeUpdates</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         176  +
    /// /* FluentBuilderGenerator.kt:498 */<p>This is a legacy parameter. Use <code>UpdateExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html">AttributeUpdates</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         177  +
    /* FluentBuilderGenerator.kt:500 */
  159    178   
    pub fn set_attribute_updates(
  160    179   
        mut self,
  161    180   
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValueUpdate>>,
  162    181   
    ) -> Self {
  163    182   
        self.inner = self.inner.set_attribute_updates(input);
  164    183   
        self
  165    184   
    }
  166         -
    /// <p>This is a legacy parameter. Use <code>UpdateExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html">AttributeUpdates</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         185  +
    /// /* FluentBuilderGenerator.kt:518 */<p>This is a legacy parameter. Use <code>UpdateExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.AttributeUpdates.html">AttributeUpdates</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         186  +
    /* FluentBuilderGenerator.kt:520 */
  167    187   
    pub fn get_attribute_updates(
  168    188   
        &self,
  169    189   
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValueUpdate>> {
  170    190   
        self.inner.get_attribute_updates()
  171    191   
    }
  172         -
    ///
         192  +
    /// /* FluentBuilderGenerator.kt:466 */
  173    193   
    /// Adds a key-value pair to `Expected`.
  174    194   
    ///
  175    195   
    /// To override the contents of this collection use [`set_expected`](Self::set_expected).
  176    196   
    ///
  177         -
    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         197  +
    /// /* FluentBuilderGenerator.kt:473 */<p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         198  +
    /* FluentBuilderGenerator.kt:475 */
  178    199   
    pub fn expected(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::ExpectedAttributeValue) -> Self {
  179    200   
        self.inner = self.inner.expected(k.into(), v);
  180    201   
        self
  181    202   
    }
  182         -
    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         203  +
    /// /* FluentBuilderGenerator.kt:498 */<p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         204  +
    /* FluentBuilderGenerator.kt:500 */
  183    205   
    pub fn set_expected(
  184    206   
        mut self,
  185    207   
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::ExpectedAttributeValue>>,
  186    208   
    ) -> Self {
  187    209   
        self.inner = self.inner.set_expected(input);
  188    210   
        self
  189    211   
    }
  190         -
    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         212  +
    /// /* FluentBuilderGenerator.kt:518 */<p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         213  +
    /* FluentBuilderGenerator.kt:520 */
  191    214   
    pub fn get_expected(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::ExpectedAttributeValue>> {
  192    215   
        self.inner.get_expected()
  193    216   
    }
  194         -
    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         217  +
    /// /* FluentBuilderGenerator.kt:498 */<p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         218  +
    /* FluentBuilderGenerator.kt:500 */
  195    219   
    pub fn conditional_operator(mut self, input: crate::types::ConditionalOperator) -> Self {
  196    220   
        self.inner = self.inner.conditional_operator(input);
  197    221   
        self
  198    222   
    }
  199         -
    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         223  +
    /// /* FluentBuilderGenerator.kt:498 */<p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         224  +
    /* FluentBuilderGenerator.kt:500 */
  200    225   
    pub fn set_conditional_operator(mut self, input: ::std::option::Option<crate::types::ConditionalOperator>) -> Self {
  201    226   
        self.inner = self.inner.set_conditional_operator(input);
  202    227   
        self
  203    228   
    }
  204         -
    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         229  +
    /// /* FluentBuilderGenerator.kt:518 */<p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         230  +
    /* FluentBuilderGenerator.kt:520 */
  205    231   
    pub fn get_conditional_operator(&self) -> &::std::option::Option<crate::types::ConditionalOperator> {
  206    232   
        self.inner.get_conditional_operator()
  207    233   
    }
  208         -
    /// <p>Use <code>ReturnValues</code> if you want to get the item attributes as they appear before or after they are updated. For <code>UpdateItem</code>, the valid values are:</p>
         234  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Use <code>ReturnValues</code> if you want to get the item attributes as they appear before or after they are updated. For <code>UpdateItem</code>, the valid values are:</p>
  209    235   
    /// <ul>
  210    236   
    /// <li>
  211    237   
    /// <p><code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.)</p></li>
  212    238   
    /// <li>
  213    239   
    /// <p><code>ALL_OLD</code> - Returns all of the attributes of the item, as they appeared before the UpdateItem operation.</p></li>
  214    240   
    /// <li>
  215    241   
    /// <p><code>UPDATED_OLD</code> - Returns only the updated attributes, as they appeared before the UpdateItem operation.</p></li>
  216    242   
    /// <li>
  217    243   
    /// <p><code>ALL_NEW</code> - Returns all of the attributes of the item, as they appear after the UpdateItem operation.</p></li>
  218    244   
    /// <li>
  219    245   
    /// <p><code>UPDATED_NEW</code> - Returns only the updated attributes, as they appear after the UpdateItem operation.</p></li>
  220    246   
    /// </ul>
  221    247   
    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p>
  222    248   
    /// <p>The values returned are strongly consistent.</p>
         249  +
    /* FluentBuilderGenerator.kt:500 */
  223    250   
    pub fn return_values(mut self, input: crate::types::ReturnValue) -> Self {
  224    251   
        self.inner = self.inner.return_values(input);
  225    252   
        self
  226    253   
    }
  227         -
    /// <p>Use <code>ReturnValues</code> if you want to get the item attributes as they appear before or after they are updated. For <code>UpdateItem</code>, the valid values are:</p>
         254  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Use <code>ReturnValues</code> if you want to get the item attributes as they appear before or after they are updated. For <code>UpdateItem</code>, the valid values are:</p>
  228    255   
    /// <ul>
  229    256   
    /// <li>
  230    257   
    /// <p><code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.)</p></li>
  231    258   
    /// <li>
  232    259   
    /// <p><code>ALL_OLD</code> - Returns all of the attributes of the item, as they appeared before the UpdateItem operation.</p></li>
  233    260   
    /// <li>
  234    261   
    /// <p><code>UPDATED_OLD</code> - Returns only the updated attributes, as they appeared before the UpdateItem operation.</p></li>
  235    262   
    /// <li>
  236    263   
    /// <p><code>ALL_NEW</code> - Returns all of the attributes of the item, as they appear after the UpdateItem operation.</p></li>
  237    264   
    /// <li>
  238    265   
    /// <p><code>UPDATED_NEW</code> - Returns only the updated attributes, as they appear after the UpdateItem operation.</p></li>
  239    266   
    /// </ul>
  240    267   
    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p>
  241    268   
    /// <p>The values returned are strongly consistent.</p>
         269  +
    /* FluentBuilderGenerator.kt:500 */
  242    270   
    pub fn set_return_values(mut self, input: ::std::option::Option<crate::types::ReturnValue>) -> Self {
  243    271   
        self.inner = self.inner.set_return_values(input);
  244    272   
        self
  245    273   
    }
  246         -
    /// <p>Use <code>ReturnValues</code> if you want to get the item attributes as they appear before or after they are updated. For <code>UpdateItem</code>, the valid values are:</p>
         274  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Use <code>ReturnValues</code> if you want to get the item attributes as they appear before or after they are updated. For <code>UpdateItem</code>, the valid values are:</p>
  247    275   
    /// <ul>
  248    276   
    /// <li>
  249    277   
    /// <p><code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.)</p></li>
  250    278   
    /// <li>
  251    279   
    /// <p><code>ALL_OLD</code> - Returns all of the attributes of the item, as they appeared before the UpdateItem operation.</p></li>
  252    280   
    /// <li>
  253    281   
    /// <p><code>UPDATED_OLD</code> - Returns only the updated attributes, as they appeared before the UpdateItem operation.</p></li>
  254    282   
    /// <li>
  255    283   
    /// <p><code>ALL_NEW</code> - Returns all of the attributes of the item, as they appear after the UpdateItem operation.</p></li>
  256    284   
    /// <li>
  257    285   
    /// <p><code>UPDATED_NEW</code> - Returns only the updated attributes, as they appear after the UpdateItem operation.</p></li>
  258    286   
    /// </ul>
  259    287   
    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p>
  260    288   
    /// <p>The values returned are strongly consistent.</p>
         289  +
    /* FluentBuilderGenerator.kt:520 */
  261    290   
    pub fn get_return_values(&self) -> &::std::option::Option<crate::types::ReturnValue> {
  262    291   
        self.inner.get_return_values()
  263    292   
    }
  264         -
    /// <p>Determines the level of detail about provisioned throughput consumption that is returned in the response:</p>
         293  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Determines the level of detail about provisioned throughput consumption that is returned in the response:</p>
  265    294   
    /// <ul>
  266    295   
    /// <li>
  267    296   
    /// <p><code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p>
  268    297   
    /// <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p></li>
  269    298   
    /// <li>
  270    299   
    /// <p><code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p></li>
  271    300   
    /// <li>
  272    301   
    /// <p><code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p></li>
  273    302   
    /// </ul>
         303  +
    /* FluentBuilderGenerator.kt:500 */
  274    304   
    pub fn return_consumed_capacity(mut self, input: crate::types::ReturnConsumedCapacity) -> Self {
  275    305   
        self.inner = self.inner.return_consumed_capacity(input);
  276    306   
        self
  277    307   
    }
  278         -
    /// <p>Determines the level of detail about provisioned throughput consumption that is returned in the response:</p>
         308  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Determines the level of detail about provisioned throughput consumption that is returned in the response:</p>
  279    309   
    /// <ul>
  280    310   
    /// <li>
  281    311   
    /// <p><code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p>
  282    312   
    /// <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p></li>
  283    313   
    /// <li>
  284    314   
    /// <p><code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p></li>
  285    315   
    /// <li>
  286    316   
    /// <p><code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p></li>
  287    317   
    /// </ul>
         318  +
    /* FluentBuilderGenerator.kt:500 */
  288    319   
    pub fn set_return_consumed_capacity(mut self, input: ::std::option::Option<crate::types::ReturnConsumedCapacity>) -> Self {
  289    320   
        self.inner = self.inner.set_return_consumed_capacity(input);
  290    321   
        self
  291    322   
    }
  292         -
    /// <p>Determines the level of detail about provisioned throughput consumption that is returned in the response:</p>
         323  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Determines the level of detail about provisioned throughput consumption that is returned in the response:</p>
  293    324   
    /// <ul>
  294    325   
    /// <li>
  295    326   
    /// <p><code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p>
  296    327   
    /// <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p></li>
  297    328   
    /// <li>
  298    329   
    /// <p><code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p></li>
  299    330   
    /// <li>
  300    331   
    /// <p><code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p></li>
  301    332   
    /// </ul>
         333  +
    /* FluentBuilderGenerator.kt:520 */
  302    334   
    pub fn get_return_consumed_capacity(&self) -> &::std::option::Option<crate::types::ReturnConsumedCapacity> {
  303    335   
        self.inner.get_return_consumed_capacity()
  304    336   
    }
  305         -
    /// <p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
         337  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
         338  +
    /* FluentBuilderGenerator.kt:500 */
  306    339   
    pub fn return_item_collection_metrics(mut self, input: crate::types::ReturnItemCollectionMetrics) -> Self {
  307    340   
        self.inner = self.inner.return_item_collection_metrics(input);
  308    341   
        self
  309    342   
    }
  310         -
    /// <p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
         343  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
         344  +
    /* FluentBuilderGenerator.kt:500 */
  311    345   
    pub fn set_return_item_collection_metrics(mut self, input: ::std::option::Option<crate::types::ReturnItemCollectionMetrics>) -> Self {
  312    346   
        self.inner = self.inner.set_return_item_collection_metrics(input);
  313    347   
        self
  314    348   
    }
  315         -
    /// <p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
         349  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
         350  +
    /* FluentBuilderGenerator.kt:520 */
  316    351   
    pub fn get_return_item_collection_metrics(&self) -> &::std::option::Option<crate::types::ReturnItemCollectionMetrics> {
  317    352   
        self.inner.get_return_item_collection_metrics()
  318    353   
    }
  319         -
    /// <p>An expression that defines one or more attributes to be updated, the action to be performed on them, and new values for them.</p>
         354  +
    /// /* FluentBuilderGenerator.kt:498 */<p>An expression that defines one or more attributes to be updated, the action to be performed on them, and new values for them.</p>
  320    355   
    /// <p>The following action values are available for <code>UpdateExpression</code>.</p>
  321    356   
    /// <ul>
  322    357   
    /// <li>
  323    358   
    /// <p><code>SET</code> - Adds one or more attributes and values to an item. If any of these attributes already exist, they are replaced by the new values. You can also use <code>SET</code> to add or subtract from an attribute that is of type Number. For example: <code>SET myNum = myNum + :val</code></p>
  324    359   
    /// <p><code>SET</code> supports the following functions:</p>
  325    360   
    /// <ul>
  326    361   
    /// <li>
  327    362   
    /// <p><code>if_not_exists (path, operand)</code> - if the item does not contain an attribute at the specified path, then <code>if_not_exists</code> evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute that may already be present in the item.</p></li>
  328    363   
    /// <li>
  329    364   
    /// <p><code>list_append (operand, operand)</code> - evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands.</p></li>
  330    365   
    /// </ul>
  331    366   
    /// <p>These function names are case-sensitive.</p></li>
  332    367   
    /// <li>
  333    368   
    /// <p><code>REMOVE</code> - Removes one or more attributes from an item.</p></li>
  334    369   
    /// <li>
  335    370   
    /// <p><code>ADD</code> - Adds the specified value to the item, if the attribute does not already exist. If the attribute does exist, then the behavior of <code>ADD</code> depends on the data type of the attribute:</p>
  336    371   
    /// <ul>
  337    372   
    /// <li>
  338    373   
    /// <p>If the existing attribute is a number, and if <code>Value</code> is also a number, then <code>Value</code> is mathematically added to the existing attribute. If <code>Value</code> is a negative number, then it is subtracted from the existing attribute.</p><note>
  339    374   
    /// <p>If you use <code>ADD</code> to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses <code>0</code> as the initial value.</p>
  340    375   
    /// <p>Similarly, if you use <code>ADD</code> for an existing item to increment or decrement an attribute value that doesn't exist before the update, DynamoDB uses <code>0</code> as the initial value. For example, suppose that the item you want to update doesn't have an attribute named <code>itemcount</code>, but you decide to <code>ADD</code> the number <code>3</code> to this attribute anyway. DynamoDB will create the <code>itemcount</code> attribute, set its initial value to <code>0</code>, and finally add <code>3</code> to it. The result will be a new <code>itemcount</code> attribute in the item, with a value of <code>3</code>.</p>
  341    376   
    /// </note></li>
  342    377   
    /// <li>
  343    378   
    /// <p>If the existing data type is a set and if <code>Value</code> is also a set, then <code>Value</code> is added to the existing set. For example, if the attribute value is the set <code>\[1,2\]</code>, and the <code>ADD</code> action specified <code>\[3\]</code>, then the final attribute value is <code>\[1,2,3\]</code>. An error occurs if an <code>ADD</code> action is specified for a set attribute and the attribute type specified does not match the existing set type.</p>
  344    379   
    /// <p>Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the <code>Value</code> must also be a set of strings.</p></li>
  345    380   
    /// </ul><important>
  346    381   
    /// <p>The <code>ADD</code> action only supports Number and set data types. In addition, <code>ADD</code> can only be used on top-level attributes, not nested attributes.</p>
  347    382   
    /// </important></li>
  348    383   
    /// <li>
  349    384   
    /// <p><code>DELETE</code> - Deletes an element from a set.</p>
  350    385   
    /// <p>If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set <code>\[a,b,c\]</code> and the <code>DELETE</code> action specifies <code>\[a,c\]</code>, then the final attribute value is <code>\[b\]</code>. Specifying an empty set is an error.</p><important>
  351    386   
    /// <p>The <code>DELETE</code> action only supports set data types. In addition, <code>DELETE</code> can only be used on top-level attributes, not nested attributes.</p>
  352    387   
    /// </important></li>
  353    388   
    /// </ul>
  354    389   
    /// <p>You can have many actions in a single expression, such as the following: <code>SET a=:value1, b=:value2 DELETE :value3, :value4, :value5</code></p>
  355    390   
    /// <p>For more information on update expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html">Modifying Items and Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         391  +
    /* FluentBuilderGenerator.kt:500 */
  356    392   
    pub fn update_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  357    393   
        self.inner = self.inner.update_expression(input.into());
  358    394   
        self
  359    395   
    }
  360         -
    /// <p>An expression that defines one or more attributes to be updated, the action to be performed on them, and new values for them.</p>
         396  +
    /// /* FluentBuilderGenerator.kt:498 */<p>An expression that defines one or more attributes to be updated, the action to be performed on them, and new values for them.</p>
  361    397   
    /// <p>The following action values are available for <code>UpdateExpression</code>.</p>
  362    398   
    /// <ul>
  363    399   
    /// <li>
  364    400   
    /// <p><code>SET</code> - Adds one or more attributes and values to an item. If any of these attributes already exist, they are replaced by the new values. You can also use <code>SET</code> to add or subtract from an attribute that is of type Number. For example: <code>SET myNum = myNum + :val</code></p>
  365    401   
    /// <p><code>SET</code> supports the following functions:</p>
  366    402   
    /// <ul>
  367    403   
    /// <li>
  368    404   
    /// <p><code>if_not_exists (path, operand)</code> - if the item does not contain an attribute at the specified path, then <code>if_not_exists</code> evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute that may already be present in the item.</p></li>
  369    405   
    /// <li>
  370    406   
    /// <p><code>list_append (operand, operand)</code> - evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands.</p></li>
  371    407   
    /// </ul>
  372    408   
    /// <p>These function names are case-sensitive.</p></li>
  373    409   
    /// <li>
  374    410   
    /// <p><code>REMOVE</code> - Removes one or more attributes from an item.</p></li>
  375    411   
    /// <li>
  376    412   
    /// <p><code>ADD</code> - Adds the specified value to the item, if the attribute does not already exist. If the attribute does exist, then the behavior of <code>ADD</code> depends on the data type of the attribute:</p>
  377    413   
    /// <ul>
  378    414   
    /// <li>
  379    415   
    /// <p>If the existing attribute is a number, and if <code>Value</code> is also a number, then <code>Value</code> is mathematically added to the existing attribute. If <code>Value</code> is a negative number, then it is subtracted from the existing attribute.</p><note>
  380    416   
    /// <p>If you use <code>ADD</code> to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses <code>0</code> as the initial value.</p>
  381    417   
    /// <p>Similarly, if you use <code>ADD</code> for an existing item to increment or decrement an attribute value that doesn't exist before the update, DynamoDB uses <code>0</code> as the initial value. For example, suppose that the item you want to update doesn't have an attribute named <code>itemcount</code>, but you decide to <code>ADD</code> the number <code>3</code> to this attribute anyway. DynamoDB will create the <code>itemcount</code> attribute, set its initial value to <code>0</code>, and finally add <code>3</code> to it. The result will be a new <code>itemcount</code> attribute in the item, with a value of <code>3</code>.</p>
  382    418   
    /// </note></li>
  383    419   
    /// <li>
  384    420   
    /// <p>If the existing data type is a set and if <code>Value</code> is also a set, then <code>Value</code> is added to the existing set. For example, if the attribute value is the set <code>\[1,2\]</code>, and the <code>ADD</code> action specified <code>\[3\]</code>, then the final attribute value is <code>\[1,2,3\]</code>. An error occurs if an <code>ADD</code> action is specified for a set attribute and the attribute type specified does not match the existing set type.</p>
  385    421   
    /// <p>Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the <code>Value</code> must also be a set of strings.</p></li>
  386    422   
    /// </ul><important>
  387    423   
    /// <p>The <code>ADD</code> action only supports Number and set data types. In addition, <code>ADD</code> can only be used on top-level attributes, not nested attributes.</p>
  388    424   
    /// </important></li>
  389    425   
    /// <li>
  390    426   
    /// <p><code>DELETE</code> - Deletes an element from a set.</p>
  391    427   
    /// <p>If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set <code>\[a,b,c\]</code> and the <code>DELETE</code> action specifies <code>\[a,c\]</code>, then the final attribute value is <code>\[b\]</code>. Specifying an empty set is an error.</p><important>
  392    428   
    /// <p>The <code>DELETE</code> action only supports set data types. In addition, <code>DELETE</code> can only be used on top-level attributes, not nested attributes.</p>
  393    429   
    /// </important></li>
  394    430   
    /// </ul>
  395    431   
    /// <p>You can have many actions in a single expression, such as the following: <code>SET a=:value1, b=:value2 DELETE :value3, :value4, :value5</code></p>
  396    432   
    /// <p>For more information on update expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html">Modifying Items and Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         433  +
    /* FluentBuilderGenerator.kt:500 */
  397    434   
    pub fn set_update_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  398    435   
        self.inner = self.inner.set_update_expression(input);
  399    436   
        self
  400    437   
    }
  401         -
    /// <p>An expression that defines one or more attributes to be updated, the action to be performed on them, and new values for them.</p>
         438  +
    /// /* FluentBuilderGenerator.kt:518 */<p>An expression that defines one or more attributes to be updated, the action to be performed on them, and new values for them.</p>
  402    439   
    /// <p>The following action values are available for <code>UpdateExpression</code>.</p>
  403    440   
    /// <ul>
  404    441   
    /// <li>
  405    442   
    /// <p><code>SET</code> - Adds one or more attributes and values to an item. If any of these attributes already exist, they are replaced by the new values. You can also use <code>SET</code> to add or subtract from an attribute that is of type Number. For example: <code>SET myNum = myNum + :val</code></p>
  406    443   
    /// <p><code>SET</code> supports the following functions:</p>
  407    444   
    /// <ul>
  408    445   
    /// <li>
  409    446   
    /// <p><code>if_not_exists (path, operand)</code> - if the item does not contain an attribute at the specified path, then <code>if_not_exists</code> evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute that may already be present in the item.</p></li>
  410    447   
    /// <li>
  411    448   
    /// <p><code>list_append (operand, operand)</code> - evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands.</p></li>
  412    449   
    /// </ul>
  413    450   
    /// <p>These function names are case-sensitive.</p></li>
  414    451   
    /// <li>
  415    452   
    /// <p><code>REMOVE</code> - Removes one or more attributes from an item.</p></li>
  416    453   
    /// <li>
  417    454   
    /// <p><code>ADD</code> - Adds the specified value to the item, if the attribute does not already exist. If the attribute does exist, then the behavior of <code>ADD</code> depends on the data type of the attribute:</p>
  418    455   
    /// <ul>
  419    456   
    /// <li>
  420    457   
    /// <p>If the existing attribute is a number, and if <code>Value</code> is also a number, then <code>Value</code> is mathematically added to the existing attribute. If <code>Value</code> is a negative number, then it is subtracted from the existing attribute.</p><note>
  421    458   
    /// <p>If you use <code>ADD</code> to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses <code>0</code> as the initial value.</p>
  422    459   
    /// <p>Similarly, if you use <code>ADD</code> for an existing item to increment or decrement an attribute value that doesn't exist before the update, DynamoDB uses <code>0</code> as the initial value. For example, suppose that the item you want to update doesn't have an attribute named <code>itemcount</code>, but you decide to <code>ADD</code> the number <code>3</code> to this attribute anyway. DynamoDB will create the <code>itemcount</code> attribute, set its initial value to <code>0</code>, and finally add <code>3</code> to it. The result will be a new <code>itemcount</code> attribute in the item, with a value of <code>3</code>.</p>
  423    460   
    /// </note></li>
  424    461   
    /// <li>
  425    462   
    /// <p>If the existing data type is a set and if <code>Value</code> is also a set, then <code>Value</code> is added to the existing set. For example, if the attribute value is the set <code>\[1,2\]</code>, and the <code>ADD</code> action specified <code>\[3\]</code>, then the final attribute value is <code>\[1,2,3\]</code>. An error occurs if an <code>ADD</code> action is specified for a set attribute and the attribute type specified does not match the existing set type.</p>
  426    463   
    /// <p>Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the <code>Value</code> must also be a set of strings.</p></li>
  427    464   
    /// </ul><important>
  428    465   
    /// <p>The <code>ADD</code> action only supports Number and set data types. In addition, <code>ADD</code> can only be used on top-level attributes, not nested attributes.</p>
  429    466   
    /// </important></li>
  430    467   
    /// <li>
  431    468   
    /// <p><code>DELETE</code> - Deletes an element from a set.</p>
  432    469   
    /// <p>If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set <code>\[a,b,c\]</code> and the <code>DELETE</code> action specifies <code>\[a,c\]</code>, then the final attribute value is <code>\[b\]</code>. Specifying an empty set is an error.</p><important>
  433    470   
    /// <p>The <code>DELETE</code> action only supports set data types. In addition, <code>DELETE</code> can only be used on top-level attributes, not nested attributes.</p>
  434    471   
    /// </important></li>
  435    472   
    /// </ul>
  436    473   
    /// <p>You can have many actions in a single expression, such as the following: <code>SET a=:value1, b=:value2 DELETE :value3, :value4, :value5</code></p>
  437    474   
    /// <p>For more information on update expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html">Modifying Items and Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         475  +
    /* FluentBuilderGenerator.kt:520 */
  438    476   
    pub fn get_update_expression(&self) -> &::std::option::Option<::std::string::String> {
  439    477   
        self.inner.get_update_expression()
  440    478   
    }
  441         -
    /// <p>A condition that must be satisfied in order for a conditional update to succeed.</p>
         479  +
    /// /* FluentBuilderGenerator.kt:498 */<p>A condition that must be satisfied in order for a conditional update to succeed.</p>
  442    480   
    /// <p>An expression can contain any of the following:</p>
  443    481   
    /// <ul>
  444    482   
    /// <li>
  445    483   
    /// <p>Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code></p>
  446    484   
    /// <p>These function names are case-sensitive.</p></li>
  447    485   
    /// <li>
  448    486   
    /// <p>Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code></p></li>
  449    487   
    /// <li>
  450    488   
    /// <p>Logical operators: <code>AND | OR | NOT</code></p></li>
  451    489   
    /// </ul>
  452    490   
    /// <p>For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Specifying Conditions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         491  +
    /* FluentBuilderGenerator.kt:500 */
  453    492   
    pub fn condition_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  454    493   
        self.inner = self.inner.condition_expression(input.into());
  455    494   
        self
  456    495   
    }
  457         -
    /// <p>A condition that must be satisfied in order for a conditional update to succeed.</p>
         496  +
    /// /* FluentBuilderGenerator.kt:498 */<p>A condition that must be satisfied in order for a conditional update to succeed.</p>
  458    497   
    /// <p>An expression can contain any of the following:</p>
  459    498   
    /// <ul>
  460    499   
    /// <li>
  461    500   
    /// <p>Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code></p>
  462    501   
    /// <p>These function names are case-sensitive.</p></li>
  463    502   
    /// <li>
  464    503   
    /// <p>Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code></p></li>
  465    504   
    /// <li>
  466    505   
    /// <p>Logical operators: <code>AND | OR | NOT</code></p></li>
  467    506   
    /// </ul>
  468    507   
    /// <p>For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Specifying Conditions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         508  +
    /* FluentBuilderGenerator.kt:500 */
  469    509   
    pub fn set_condition_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  470    510   
        self.inner = self.inner.set_condition_expression(input);
  471    511   
        self
  472    512   
    }
  473         -
    /// <p>A condition that must be satisfied in order for a conditional update to succeed.</p>
         513  +
    /// /* FluentBuilderGenerator.kt:518 */<p>A condition that must be satisfied in order for a conditional update to succeed.</p>
  474    514   
    /// <p>An expression can contain any of the following:</p>
  475    515   
    /// <ul>
  476    516   
    /// <li>
  477    517   
    /// <p>Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code></p>
  478    518   
    /// <p>These function names are case-sensitive.</p></li>
  479    519   
    /// <li>
  480    520   
    /// <p>Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code></p></li>
  481    521   
    /// <li>
  482    522   
    /// <p>Logical operators: <code>AND | OR | NOT</code></p></li>
  483    523   
    /// </ul>
  484    524   
    /// <p>For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Specifying Conditions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         525  +
    /* FluentBuilderGenerator.kt:520 */
  485    526   
    pub fn get_condition_expression(&self) -> &::std::option::Option<::std::string::String> {
  486    527   
        self.inner.get_condition_expression()
  487    528   
    }
  488         -
    ///
         529  +
    /// /* FluentBuilderGenerator.kt:466 */
  489    530   
    /// Adds a key-value pair to `ExpressionAttributeNames`.
  490    531   
    ///
  491    532   
    /// To override the contents of this collection use [`set_expression_attribute_names`](Self::set_expression_attribute_names).
  492    533   
    ///
  493         -
    /// <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
         534  +
    /// /* FluentBuilderGenerator.kt:473 */<p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
  494    535   
    /// <ul>
  495    536   
    /// <li>
  496    537   
    /// <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p></li>
  497    538   
    /// <li>
  498    539   
    /// <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p></li>
  499    540   
    /// <li>
  500    541   
    /// <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p></li>
  501    542   
    /// </ul>
  502    543   
    /// <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>
  503    544   
    /// <ul>
  504    545   
    /// <li>
  505    546   
    /// <p><code>Percentile</code></p></li>
  506    547   
    /// </ul>
  507    548   
    /// <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>.) To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>
  508    549   
    /// <ul>
  509    550   
    /// <li>
  510    551   
    /// <p><code>{"#P":"Percentile"}</code></p></li>
  511    552   
    /// </ul>
  512    553   
    /// <p>You could then use this substitution in an expression, as in this example:</p>
  513    554   
    /// <ul>
  514    555   
    /// <li>
  515    556   
    /// <p><code>#P = :val</code></p></li>
  516    557   
    /// </ul><note>
  517    558   
    /// <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>
  518    559   
    /// </note>
  519    560   
    /// <p>For more information about expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         561  +
    /* FluentBuilderGenerator.kt:475 */
  520    562   
    pub fn expression_attribute_names(
  521    563   
        mut self,
  522    564   
        k: impl ::std::convert::Into<::std::string::String>,
  523    565   
        v: impl ::std::convert::Into<::std::string::String>,
  524    566   
    ) -> Self {
  525    567   
        self.inner = self.inner.expression_attribute_names(k.into(), v.into());
  526    568   
        self
  527    569   
    }
  528         -
    /// <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
         570  +
    /// /* FluentBuilderGenerator.kt:498 */<p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
  529    571   
    /// <ul>
  530    572   
    /// <li>
  531    573   
    /// <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p></li>
  532    574   
    /// <li>
  533    575   
    /// <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p></li>
  534    576   
    /// <li>
  535    577   
    /// <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p></li>
  536    578   
    /// </ul>
  537    579   
    /// <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>
  538    580   
    /// <ul>
  539    581   
    /// <li>
  540    582   
    /// <p><code>Percentile</code></p></li>
  541    583   
    /// </ul>
  542    584   
    /// <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>.) To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>
  543    585   
    /// <ul>
  544    586   
    /// <li>
  545    587   
    /// <p><code>{"#P":"Percentile"}</code></p></li>
  546    588   
    /// </ul>
  547    589   
    /// <p>You could then use this substitution in an expression, as in this example:</p>
  548    590   
    /// <ul>
  549    591   
    /// <li>
  550    592   
    /// <p><code>#P = :val</code></p></li>
  551    593   
    /// </ul><note>
  552    594   
    /// <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>
  553    595   
    /// </note>
  554    596   
    /// <p>For more information about expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         597  +
    /* FluentBuilderGenerator.kt:500 */
  555    598   
    pub fn set_expression_attribute_names(
  556    599   
        mut self,
  557    600   
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
  558    601   
    ) -> Self {
  559    602   
        self.inner = self.inner.set_expression_attribute_names(input);
  560    603   
        self
  561    604   
    }
  562         -
    /// <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
         605  +
    /// /* FluentBuilderGenerator.kt:518 */<p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
  563    606   
    /// <ul>
  564    607   
    /// <li>
  565    608   
    /// <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p></li>
  566    609   
    /// <li>
  567    610   
    /// <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p></li>
  568    611   
    /// <li>
  569    612   
    /// <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p></li>
  570    613   
    /// </ul>
  571    614   
    /// <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>
  572    615   
    /// <ul>
  573    616   
    /// <li>
  574    617   
    /// <p><code>Percentile</code></p></li>
  575    618   
    /// </ul>
  576    619   
    /// <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>.) To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>
  577    620   
    /// <ul>
  578    621   
    /// <li>
  579    622   
    /// <p><code>{"#P":"Percentile"}</code></p></li>
  580    623   
    /// </ul>
  581    624   
    /// <p>You could then use this substitution in an expression, as in this example:</p>
  582    625   
    /// <ul>
  583    626   
    /// <li>
  584    627   
    /// <p><code>#P = :val</code></p></li>
  585    628   
    /// </ul><note>
  586    629   
    /// <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>
  587    630   
    /// </note>
  588    631   
    /// <p>For more information about expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         632  +
    /* FluentBuilderGenerator.kt:520 */
  589    633   
    pub fn get_expression_attribute_names(
  590    634   
        &self,
  591    635   
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
  592    636   
        self.inner.get_expression_attribute_names()
  593    637   
    }
  594         -
    ///
         638  +
    /// /* FluentBuilderGenerator.kt:466 */
  595    639   
    /// Adds a key-value pair to `ExpressionAttributeValues`.
  596    640   
    ///
  597    641   
    /// To override the contents of this collection use [`set_expression_attribute_values`](Self::set_expression_attribute_values).
  598    642   
    ///
  599         -
    /// <p>One or more values that can be substituted in an expression.</p>
         643  +
    /// /* FluentBuilderGenerator.kt:473 */<p>One or more values that can be substituted in an expression.</p>
  600    644   
    /// <p>Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <code>ProductStatus</code> attribute was one of the following:</p>
  601    645   
    /// <p><code>Available | Backordered | Discontinued</code></p>
  602    646   
    /// <p>You would first need to specify <code>ExpressionAttributeValues</code> as follows:</p>
  603    647   
    /// <p><code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code></p>
  604    648   
    /// <p>You could then use these values in an expression, such as this:</p>
  605    649   
    /// <p><code>ProductStatus IN (:avail, :back, :disc)</code></p>
  606    650   
    /// <p>For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         651  +
    /* FluentBuilderGenerator.kt:475 */
  607    652   
    pub fn expression_attribute_values(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::AttributeValue) -> Self {
  608    653   
        self.inner = self.inner.expression_attribute_values(k.into(), v);
  609    654   
        self
  610    655   
    }
  611         -
    /// <p>One or more values that can be substituted in an expression.</p>
         656  +
    /// /* FluentBuilderGenerator.kt:498 */<p>One or more values that can be substituted in an expression.</p>
  612    657   
    /// <p>Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <code>ProductStatus</code> attribute was one of the following:</p>
  613    658   
    /// <p><code>Available | Backordered | Discontinued</code></p>
  614    659   
    /// <p>You would first need to specify <code>ExpressionAttributeValues</code> as follows:</p>
  615    660   
    /// <p><code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code></p>
  616    661   
    /// <p>You could then use these values in an expression, such as this:</p>
  617    662   
    /// <p><code>ProductStatus IN (:avail, :back, :disc)</code></p>
  618    663   
    /// <p>For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         664  +
    /* FluentBuilderGenerator.kt:500 */
  619    665   
    pub fn set_expression_attribute_values(
  620    666   
        mut self,
  621    667   
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>>,
  622    668   
    ) -> Self {
  623    669   
        self.inner = self.inner.set_expression_attribute_values(input);
  624    670   
        self
  625    671   
    }
  626         -
    /// <p>One or more values that can be substituted in an expression.</p>
         672  +
    /// /* FluentBuilderGenerator.kt:518 */<p>One or more values that can be substituted in an expression.</p>
  627    673   
    /// <p>Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <code>ProductStatus</code> attribute was one of the following:</p>
  628    674   
    /// <p><code>Available | Backordered | Discontinued</code></p>
  629    675   
    /// <p>You would first need to specify <code>ExpressionAttributeValues</code> as follows:</p>
  630    676   
    /// <p><code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code></p>
  631    677   
    /// <p>You could then use these values in an expression, such as this:</p>
  632    678   
    /// <p><code>ProductStatus IN (:avail, :back, :disc)</code></p>
  633    679   
    /// <p>For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         680  +
    /* FluentBuilderGenerator.kt:520 */
  634    681   
    pub fn get_expression_attribute_values(
  635    682   
        &self,
  636    683   
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>> {
  637    684   
        self.inner.get_expression_attribute_values()
  638    685   
    }
         686  +
    /* FluentBuilderGenerator.kt:282 */
  639    687   
}

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/update_table/_update_table_input.rs

@@ -1,1 +332,480 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the input of an <code>UpdateTable</code> operation.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the input of an <code>UpdateTable</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 UpdateTableInput {
    7         -
    /// <p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct UpdateTableInput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
    8     10   
    pub attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
    9         -
    /// <p>The name of the table to be updated.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table to be updated.</p>
   10     12   
    pub table_name: ::std::option::Option<::std::string::String>,
   11         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
          13  +
    /// /* StructureGenerator.kt:231 */<p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
   12     14   
    /// <ul>
   13     15   
    /// <li>
   14     16   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
   15     17   
    /// <li>
   16     18   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
   17     19   
    /// </ul>
   18     20   
    pub billing_mode: ::std::option::Option<crate::types::BillingMode>,
   19         -
    /// <p>The new provisioned throughput settings for the specified table or index.</p>
          21  +
    /// /* StructureGenerator.kt:231 */<p>The new provisioned throughput settings for the specified table or index.</p>
   20     22   
    pub provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
   21         -
    /// <p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
          23  +
    /// /* StructureGenerator.kt:231 */<p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
   22     24   
    /// <ul>
   23     25   
    /// <li>
   24     26   
    /// <p><code>Create</code> - add a new global secondary index to the table.</p></li>
   25     27   
    /// <li>
   26     28   
    /// <p><code>Update</code> - modify the provisioned throughput settings of an existing global secondary index.</p></li>
   27     29   
    /// <li>
   28     30   
    /// <p><code>Delete</code> - remove a global secondary index from the table.</p></li>
   29     31   
    /// </ul>
   30     32   
    /// <p>You can create or delete only one global secondary index per <code>UpdateTable</code> operation.</p>
   31     33   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   32     34   
    pub global_secondary_index_updates: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexUpdate>>,
   33         -
    /// <p>Represents the DynamoDB Streams configuration for the table.</p><note>
          35  +
    /// /* StructureGenerator.kt:231 */<p>Represents the DynamoDB Streams configuration for the table.</p><note>
   34     36   
    /// <p>You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.</p>
   35     37   
    /// </note>
   36     38   
    pub stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
   37         -
    /// <p>The new server-side encryption settings for the specified table.</p>
          39  +
    /// /* StructureGenerator.kt:231 */<p>The new server-side encryption settings for the specified table.</p>
   38     40   
    pub sse_specification: ::std::option::Option<crate::types::SseSpecification>,
   39         -
    /// <p>A list of replica update actions (create, delete, or update) for the table.</p><note>
          41  +
    /// /* StructureGenerator.kt:231 */<p>A list of replica update actions (create, delete, or update) for the table.</p><note>
   40     42   
    /// <p>This property 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>
   41     43   
    /// </note>
   42     44   
    pub replica_updates: ::std::option::Option<::std::vec::Vec<crate::types::ReplicationGroupUpdate>>,
          45  +
    /* StructureGenerator.kt:201 */
   43     46   
}
          47  +
/* StructureGenerator.kt:135 */
   44     48   
impl UpdateTableInput {
   45         -
    /// <p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
   46         -
    ///
   47         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.attribute_definitions.is_none()`.
          49  +
    /// /* StructureGenerator.kt:231 */<p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
          50  +
    /// /* StructureGenerator.kt:162 */
          51  +
    /// /* 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 `.attribute_definitions.is_none()`.
          52  +
    /* StructureGenerator.kt:166 */
   48     53   
    pub fn attribute_definitions(&self) -> &[crate::types::AttributeDefinition] {
   49         -
        self.attribute_definitions.as_deref().unwrap_or_default()
   50         -
    }
   51         -
    /// <p>The name of the table to be updated.</p>
          54  +
        /* StructureGenerator.kt:169 */
          55  +
        self.attribute_definitions
          56  +
            .as_deref()
          57  +
            /* StructureGenerator.kt:175 */
          58  +
            .unwrap_or_default()
          59  +
        /* StructureGenerator.kt:166 */
          60  +
    }
          61  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table to be updated.</p>
          62  +
    /* StructureGenerator.kt:166 */
   52     63   
    pub fn table_name(&self) -> ::std::option::Option<&str> {
          64  +
        /* StructureGenerator.kt:169 */
   53     65   
        self.table_name.as_deref()
          66  +
        /* StructureGenerator.kt:166 */
   54     67   
    }
   55         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
          68  +
    /// /* StructureGenerator.kt:231 */<p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
   56     69   
    /// <ul>
   57     70   
    /// <li>
   58     71   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
   59     72   
    /// <li>
   60     73   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
   61     74   
    /// </ul>
          75  +
    /* StructureGenerator.kt:166 */
   62     76   
    pub fn billing_mode(&self) -> ::std::option::Option<&crate::types::BillingMode> {
          77  +
        /* StructureGenerator.kt:170 */
   63     78   
        self.billing_mode.as_ref()
          79  +
        /* StructureGenerator.kt:166 */
   64     80   
    }
   65         -
    /// <p>The new provisioned throughput settings for the specified table or index.</p>
          81  +
    /// /* StructureGenerator.kt:231 */<p>The new provisioned throughput settings for the specified table or index.</p>
          82  +
    /* StructureGenerator.kt:166 */
   66     83   
    pub fn provisioned_throughput(&self) -> ::std::option::Option<&crate::types::ProvisionedThroughput> {
          84  +
        /* StructureGenerator.kt:170 */
   67     85   
        self.provisioned_throughput.as_ref()
          86  +
        /* StructureGenerator.kt:166 */
   68     87   
    }
   69         -
    /// <p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
          88  +
    /// /* StructureGenerator.kt:231 */<p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
   70     89   
    /// <ul>
   71     90   
    /// <li>
   72     91   
    /// <p><code>Create</code> - add a new global secondary index to the table.</p></li>
   73     92   
    /// <li>
   74     93   
    /// <p><code>Update</code> - modify the provisioned throughput settings of an existing global secondary index.</p></li>
   75     94   
    /// <li>
   76     95   
    /// <p><code>Delete</code> - remove a global secondary index from the table.</p></li>
   77     96   
    /// </ul>
   78     97   
    /// <p>You can create or delete only one global secondary index per <code>UpdateTable</code> operation.</p>
   79     98   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   80         -
    ///
   81         -
    /// 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()`.
          99  +
    /// /* StructureGenerator.kt:162 */
         100  +
    /// /* 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()`.
         101  +
    /* StructureGenerator.kt:166 */
   82    102   
    pub fn global_secondary_index_updates(&self) -> &[crate::types::GlobalSecondaryIndexUpdate] {
   83         -
        self.global_secondary_index_updates.as_deref().unwrap_or_default()
   84         -
    }
   85         -
    /// <p>Represents the DynamoDB Streams configuration for the table.</p><note>
         103  +
        /* StructureGenerator.kt:169 */
         104  +
        self.global_secondary_index_updates
         105  +
            .as_deref()
         106  +
            /* StructureGenerator.kt:175 */
         107  +
            .unwrap_or_default()
         108  +
        /* StructureGenerator.kt:166 */
         109  +
    }
         110  +
    /// /* StructureGenerator.kt:231 */<p>Represents the DynamoDB Streams configuration for the table.</p><note>
   86    111   
    /// <p>You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.</p>
   87    112   
    /// </note>
         113  +
    /* StructureGenerator.kt:166 */
   88    114   
    pub fn stream_specification(&self) -> ::std::option::Option<&crate::types::StreamSpecification> {
         115  +
        /* StructureGenerator.kt:170 */
   89    116   
        self.stream_specification.as_ref()
         117  +
        /* StructureGenerator.kt:166 */
   90    118   
    }
   91         -
    /// <p>The new server-side encryption settings for the specified table.</p>
         119  +
    /// /* StructureGenerator.kt:231 */<p>The new server-side encryption settings for the specified table.</p>
         120  +
    /* StructureGenerator.kt:166 */
   92    121   
    pub fn sse_specification(&self) -> ::std::option::Option<&crate::types::SseSpecification> {
         122  +
        /* StructureGenerator.kt:170 */
   93    123   
        self.sse_specification.as_ref()
         124  +
        /* StructureGenerator.kt:166 */
   94    125   
    }
   95         -
    /// <p>A list of replica update actions (create, delete, or update) for the table.</p><note>
         126  +
    /// /* StructureGenerator.kt:231 */<p>A list of replica update actions (create, delete, or update) for the table.</p><note>
   96    127   
    /// <p>This property 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>
   97    128   
    /// </note>
   98         -
    ///
   99         -
    /// 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()`.
         129  +
    /// /* StructureGenerator.kt:162 */
         130  +
    /// /* 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()`.
         131  +
    /* StructureGenerator.kt:166 */
  100    132   
    pub fn replica_updates(&self) -> &[crate::types::ReplicationGroupUpdate] {
  101         -
        self.replica_updates.as_deref().unwrap_or_default()
  102         -
    }
         133  +
        /* StructureGenerator.kt:169 */
         134  +
        self.replica_updates
         135  +
            .as_deref()
         136  +
            /* StructureGenerator.kt:175 */
         137  +
            .unwrap_or_default()
         138  +
        /* StructureGenerator.kt:166 */
         139  +
    }
         140  +
    /* StructureGenerator.kt:135 */
  103    141   
}
         142  +
/* ClientCodegenVisitor.kt:237 */
  104    143   
impl UpdateTableInput {
  105         -
    /// Creates a new builder-style object to manufacture [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
         144  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
         145  +
    /* BuilderGenerator.kt:175 */
  106    146   
    pub fn builder() -> crate::operation::update_table::builders::UpdateTableInputBuilder {
         147  +
        /* BuilderGenerator.kt:176 */
  107    148   
        crate::operation::update_table::builders::UpdateTableInputBuilder::default()
         149  +
        /* BuilderGenerator.kt:175 */
  108    150   
    }
         151  +
    /* ClientCodegenVisitor.kt:237 */
  109    152   
}
  110    153   
  111         -
/// A builder for [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
         154  +
/// /* BuilderGenerator.kt:342 */A builder for [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
         155  +
/* RustType.kt:516 */
  112    156   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         157  +
/* RustType.kt:516 */
  113    158   
#[non_exhaustive]
         159  +
/* BuilderGenerator.kt:345 */
  114    160   
pub struct UpdateTableInputBuilder {
  115         -
    pub(crate) attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
  116         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
  117         -
    pub(crate) billing_mode: ::std::option::Option<crate::types::BillingMode>,
  118         -
    pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
         161  +
    /* BuilderGenerator.kt:275 */ pub(crate) attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
         162  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_name: ::std::option::Option<::std::string::String>,
         163  +
    /* BuilderGenerator.kt:275 */ pub(crate) billing_mode: ::std::option::Option<crate::types::BillingMode>,
         164  +
    /* BuilderGenerator.kt:275 */ pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
         165  +
    /* BuilderGenerator.kt:275 */
  119    166   
    pub(crate) global_secondary_index_updates: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexUpdate>>,
  120         -
    pub(crate) stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
  121         -
    pub(crate) sse_specification: ::std::option::Option<crate::types::SseSpecification>,
         167  +
    /* BuilderGenerator.kt:275 */ pub(crate) stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
         168  +
    /* BuilderGenerator.kt:275 */ pub(crate) sse_specification: ::std::option::Option<crate::types::SseSpecification>,
         169  +
    /* BuilderGenerator.kt:275 */
  122    170   
    pub(crate) replica_updates: ::std::option::Option<::std::vec::Vec<crate::types::ReplicationGroupUpdate>>,
         171  +
    /* BuilderGenerator.kt:345 */
  123    172   
}
         173  +
/* BuilderGenerator.kt:355 */
  124    174   
impl UpdateTableInputBuilder {
  125         -
    /// Appends an item to `attribute_definitions`.
         175  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `attribute_definitions`.
         176  +
    /* BuilderGenerator.kt:411 */
  126    177   
    ///
  127         -
    /// To override the contents of this collection use [`set_attribute_definitions`](Self::set_attribute_definitions).
         178  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_attribute_definitions`](Self::set_attribute_definitions).
         179  +
    /* BuilderGenerator.kt:413 */
  128    180   
    ///
  129         -
    /// <p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         181  +
    /// /* BuilderGenerator.kt:414 */<p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         182  +
    /* BuilderGenerator.kt:418 */
  130    183   
    pub fn attribute_definitions(mut self, input: crate::types::AttributeDefinition) -> Self {
         184  +
        /* BuilderGenerator.kt:419 */
  131    185   
        let mut v = self.attribute_definitions.unwrap_or_default();
  132    186   
        v.push(input);
  133    187   
        self.attribute_definitions = ::std::option::Option::Some(v);
  134    188   
        self
         189  +
        /* BuilderGenerator.kt:418 */
  135    190   
    }
  136         -
    /// <p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         191  +
    /// /* BuilderGenerator.kt:312 */<p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         192  +
    /* BuilderGenerator.kt:314 */
  137    193   
    pub fn set_attribute_definitions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>) -> Self {
         194  +
        /* BuilderGenerator.kt:315 */
  138    195   
        self.attribute_definitions = input;
  139    196   
        self
         197  +
        /* BuilderGenerator.kt:314 */
  140    198   
    }
  141         -
    /// <p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         199  +
    /// /* BuilderGenerator.kt:334 */<p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         200  +
    /* BuilderGenerator.kt:336 */
  142    201   
    pub fn get_attribute_definitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>> {
         202  +
        /* BuilderGenerator.kt:337 */
  143    203   
        &self.attribute_definitions
         204  +
        /* BuilderGenerator.kt:336 */
  144    205   
    }
  145         -
    /// <p>The name of the table to be updated.</p>
  146         -
    /// This field is required.
         206  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the table to be updated.</p>
         207  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         208  +
    /* BuilderGenerator.kt:291 */
  147    209   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         210  +
        /* BuilderGenerator.kt:292 */
  148    211   
        self.table_name = ::std::option::Option::Some(input.into());
         212  +
        /* BuilderGenerator.kt:293 */
  149    213   
        self
         214  +
        /* BuilderGenerator.kt:291 */
  150    215   
    }
  151         -
    /// <p>The name of the table to be updated.</p>
         216  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the table to be updated.</p>
         217  +
    /* BuilderGenerator.kt:314 */
  152    218   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         219  +
        /* BuilderGenerator.kt:315 */
  153    220   
        self.table_name = input;
  154    221   
        self
         222  +
        /* BuilderGenerator.kt:314 */
  155    223   
    }
  156         -
    /// <p>The name of the table to be updated.</p>
         224  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the table to be updated.</p>
         225  +
    /* BuilderGenerator.kt:336 */
  157    226   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
         227  +
        /* BuilderGenerator.kt:337 */
  158    228   
        &self.table_name
         229  +
        /* BuilderGenerator.kt:336 */
  159    230   
    }
  160         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
         231  +
    /// /* BuilderGenerator.kt:286 */<p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
  161    232   
    /// <ul>
  162    233   
    /// <li>
  163    234   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  164    235   
    /// <li>
  165    236   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  166    237   
    /// </ul>
         238  +
    /* BuilderGenerator.kt:291 */
  167    239   
    pub fn billing_mode(mut self, input: crate::types::BillingMode) -> Self {
         240  +
        /* BuilderGenerator.kt:292 */
  168    241   
        self.billing_mode = ::std::option::Option::Some(input);
         242  +
        /* BuilderGenerator.kt:293 */
  169    243   
        self
         244  +
        /* BuilderGenerator.kt:291 */
  170    245   
    }
  171         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
         246  +
    /// /* BuilderGenerator.kt:312 */<p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
  172    247   
    /// <ul>
  173    248   
    /// <li>
  174    249   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  175    250   
    /// <li>
  176    251   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  177    252   
    /// </ul>
         253  +
    /* BuilderGenerator.kt:314 */
  178    254   
    pub fn set_billing_mode(mut self, input: ::std::option::Option<crate::types::BillingMode>) -> Self {
         255  +
        /* BuilderGenerator.kt:315 */
  179    256   
        self.billing_mode = input;
  180    257   
        self
         258  +
        /* BuilderGenerator.kt:314 */
  181    259   
    }
  182         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
         260  +
    /// /* BuilderGenerator.kt:334 */<p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
  183    261   
    /// <ul>
  184    262   
    /// <li>
  185    263   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  186    264   
    /// <li>
  187    265   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  188    266   
    /// </ul>
         267  +
    /* BuilderGenerator.kt:336 */
  189    268   
    pub fn get_billing_mode(&self) -> &::std::option::Option<crate::types::BillingMode> {
         269  +
        /* BuilderGenerator.kt:337 */
  190    270   
        &self.billing_mode
         271  +
        /* BuilderGenerator.kt:336 */
  191    272   
    }
  192         -
    /// <p>The new provisioned throughput settings for the specified table or index.</p>
         273  +
    /// /* BuilderGenerator.kt:286 */<p>The new provisioned throughput settings for the specified table or index.</p>
         274  +
    /* BuilderGenerator.kt:291 */
  193    275   
    pub fn provisioned_throughput(mut self, input: crate::types::ProvisionedThroughput) -> Self {
         276  +
        /* BuilderGenerator.kt:292 */
  194    277   
        self.provisioned_throughput = ::std::option::Option::Some(input);
         278  +
        /* BuilderGenerator.kt:293 */
  195    279   
        self
         280  +
        /* BuilderGenerator.kt:291 */
  196    281   
    }
  197         -
    /// <p>The new provisioned throughput settings for the specified table or index.</p>
         282  +
    /// /* BuilderGenerator.kt:312 */<p>The new provisioned throughput settings for the specified table or index.</p>
         283  +
    /* BuilderGenerator.kt:314 */
  198    284   
    pub fn set_provisioned_throughput(mut self, input: ::std::option::Option<crate::types::ProvisionedThroughput>) -> Self {
         285  +
        /* BuilderGenerator.kt:315 */
  199    286   
        self.provisioned_throughput = input;
  200    287   
        self
         288  +
        /* BuilderGenerator.kt:314 */
  201    289   
    }
  202         -
    /// <p>The new provisioned throughput settings for the specified table or index.</p>
         290  +
    /// /* BuilderGenerator.kt:334 */<p>The new provisioned throughput settings for the specified table or index.</p>
         291  +
    /* BuilderGenerator.kt:336 */
  203    292   
    pub fn get_provisioned_throughput(&self) -> &::std::option::Option<crate::types::ProvisionedThroughput> {
         293  +
        /* BuilderGenerator.kt:337 */
  204    294   
        &self.provisioned_throughput
         295  +
        /* BuilderGenerator.kt:336 */
  205    296   
    }
  206         -
    /// Appends an item to `global_secondary_index_updates`.
         297  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `global_secondary_index_updates`.
         298  +
    /* BuilderGenerator.kt:411 */
  207    299   
    ///
  208         -
    /// To override the contents of this collection use [`set_global_secondary_index_updates`](Self::set_global_secondary_index_updates).
         300  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_global_secondary_index_updates`](Self::set_global_secondary_index_updates).
         301  +
    /* BuilderGenerator.kt:413 */
  209    302   
    ///
  210         -
    /// <p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
         303  +
    /// /* BuilderGenerator.kt:414 */<p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
  211    304   
    /// <ul>
  212    305   
    /// <li>
  213    306   
    /// <p><code>Create</code> - add a new global secondary index to the table.</p></li>
  214    307   
    /// <li>
  215    308   
    /// <p><code>Update</code> - modify the provisioned throughput settings of an existing global secondary index.</p></li>
  216    309   
    /// <li>
  217    310   
    /// <p><code>Delete</code> - remove a global secondary index from the table.</p></li>
  218    311   
    /// </ul>
  219    312   
    /// <p>You can create or delete only one global secondary index per <code>UpdateTable</code> operation.</p>
  220    313   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         314  +
    /* BuilderGenerator.kt:418 */
  221    315   
    pub fn global_secondary_index_updates(mut self, input: crate::types::GlobalSecondaryIndexUpdate) -> Self {
         316  +
        /* BuilderGenerator.kt:419 */
  222    317   
        let mut v = self.global_secondary_index_updates.unwrap_or_default();
  223    318   
        v.push(input);
  224    319   
        self.global_secondary_index_updates = ::std::option::Option::Some(v);
  225    320   
        self
         321  +
        /* BuilderGenerator.kt:418 */
  226    322   
    }
  227         -
    /// <p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
         323  +
    /// /* BuilderGenerator.kt:312 */<p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
  228    324   
    /// <ul>
  229    325   
    /// <li>
  230    326   
    /// <p><code>Create</code> - add a new global secondary index to the table.</p></li>
  231    327   
    /// <li>
  232    328   
    /// <p><code>Update</code> - modify the provisioned throughput settings of an existing global secondary index.</p></li>
  233    329   
    /// <li>
  234    330   
    /// <p><code>Delete</code> - remove a global secondary index from the table.</p></li>
  235    331   
    /// </ul>
  236    332   
    /// <p>You can create or delete only one global secondary index per <code>UpdateTable</code> operation.</p>
  237    333   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         334  +
    /* BuilderGenerator.kt:314 */
  238    335   
    pub fn set_global_secondary_index_updates(
  239    336   
        mut self,
  240    337   
        input: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexUpdate>>,
  241    338   
    ) -> Self {
         339  +
        /* BuilderGenerator.kt:315 */
  242    340   
        self.global_secondary_index_updates = input;
  243    341   
        self
         342  +
        /* BuilderGenerator.kt:314 */
  244    343   
    }
  245         -
    /// <p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
         344  +
    /// /* BuilderGenerator.kt:334 */<p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
  246    345   
    /// <ul>
  247    346   
    /// <li>
  248    347   
    /// <p><code>Create</code> - add a new global secondary index to the table.</p></li>
  249    348   
    /// <li>
  250    349   
    /// <p><code>Update</code> - modify the provisioned throughput settings of an existing global secondary index.</p></li>
  251    350   
    /// <li>
  252    351   
    /// <p><code>Delete</code> - remove a global secondary index from the table.</p></li>
  253    352   
    /// </ul>
  254    353   
    /// <p>You can create or delete only one global secondary index per <code>UpdateTable</code> operation.</p>
  255    354   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         355  +
    /* BuilderGenerator.kt:336 */
  256    356   
    pub fn get_global_secondary_index_updates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexUpdate>> {
         357  +
        /* BuilderGenerator.kt:337 */
  257    358   
        &self.global_secondary_index_updates
         359  +
        /* BuilderGenerator.kt:336 */
  258    360   
    }
  259         -
    /// <p>Represents the DynamoDB Streams configuration for the table.</p><note>
         361  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the DynamoDB Streams configuration for the table.</p><note>
  260    362   
    /// <p>You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.</p>
  261    363   
    /// </note>
         364  +
    /* BuilderGenerator.kt:291 */
  262    365   
    pub fn stream_specification(mut self, input: crate::types::StreamSpecification) -> Self {
         366  +
        /* BuilderGenerator.kt:292 */
  263    367   
        self.stream_specification = ::std::option::Option::Some(input);
         368  +
        /* BuilderGenerator.kt:293 */
  264    369   
        self
         370  +
        /* BuilderGenerator.kt:291 */
  265    371   
    }
  266         -
    /// <p>Represents the DynamoDB Streams configuration for the table.</p><note>
         372  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the DynamoDB Streams configuration for the table.</p><note>
  267    373   
    /// <p>You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.</p>
  268    374   
    /// </note>
         375  +
    /* BuilderGenerator.kt:314 */
  269    376   
    pub fn set_stream_specification(mut self, input: ::std::option::Option<crate::types::StreamSpecification>) -> Self {
         377  +
        /* BuilderGenerator.kt:315 */
  270    378   
        self.stream_specification = input;
  271    379   
        self
         380  +
        /* BuilderGenerator.kt:314 */
  272    381   
    }
  273         -
    /// <p>Represents the DynamoDB Streams configuration for the table.</p><note>
         382  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the DynamoDB Streams configuration for the table.</p><note>
  274    383   
    /// <p>You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.</p>
  275    384   
    /// </note>
         385  +
    /* BuilderGenerator.kt:336 */
  276    386   
    pub fn get_stream_specification(&self) -> &::std::option::Option<crate::types::StreamSpecification> {
         387  +
        /* BuilderGenerator.kt:337 */
  277    388   
        &self.stream_specification
         389  +
        /* BuilderGenerator.kt:336 */
  278    390   
    }
  279         -
    /// <p>The new server-side encryption settings for the specified table.</p>
         391  +
    /// /* BuilderGenerator.kt:286 */<p>The new server-side encryption settings for the specified table.</p>
         392  +
    /* BuilderGenerator.kt:291 */
  280    393   
    pub fn sse_specification(mut self, input: crate::types::SseSpecification) -> Self {
         394  +
        /* BuilderGenerator.kt:292 */
  281    395   
        self.sse_specification = ::std::option::Option::Some(input);
         396  +
        /* BuilderGenerator.kt:293 */
  282    397   
        self
         398  +
        /* BuilderGenerator.kt:291 */
  283    399   
    }
  284         -
    /// <p>The new server-side encryption settings for the specified table.</p>
         400  +
    /// /* BuilderGenerator.kt:312 */<p>The new server-side encryption settings for the specified table.</p>
         401  +
    /* BuilderGenerator.kt:314 */
  285    402   
    pub fn set_sse_specification(mut self, input: ::std::option::Option<crate::types::SseSpecification>) -> Self {
         403  +
        /* BuilderGenerator.kt:315 */
  286    404   
        self.sse_specification = input;
  287    405   
        self
         406  +
        /* BuilderGenerator.kt:314 */
  288    407   
    }
  289         -
    /// <p>The new server-side encryption settings for the specified table.</p>
         408  +
    /// /* BuilderGenerator.kt:334 */<p>The new server-side encryption settings for the specified table.</p>
         409  +
    /* BuilderGenerator.kt:336 */
  290    410   
    pub fn get_sse_specification(&self) -> &::std::option::Option<crate::types::SseSpecification> {
         411  +
        /* BuilderGenerator.kt:337 */
  291    412   
        &self.sse_specification
         413  +
        /* BuilderGenerator.kt:336 */
  292    414   
    }
  293         -
    /// Appends an item to `replica_updates`.
         415  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `replica_updates`.
         416  +
    /* BuilderGenerator.kt:411 */
  294    417   
    ///
  295         -
    /// To override the contents of this collection use [`set_replica_updates`](Self::set_replica_updates).
         418  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_replica_updates`](Self::set_replica_updates).
         419  +
    /* BuilderGenerator.kt:413 */
  296    420   
    ///
  297         -
    /// <p>A list of replica update actions (create, delete, or update) for the table.</p><note>
         421  +
    /// /* BuilderGenerator.kt:414 */<p>A list of replica update actions (create, delete, or update) for the table.</p><note>
  298    422   
    /// <p>This property 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>
  299    423   
    /// </note>
         424  +
    /* BuilderGenerator.kt:418 */
  300    425   
    pub fn replica_updates(mut self, input: crate::types::ReplicationGroupUpdate) -> Self {
         426  +
        /* BuilderGenerator.kt:419 */
  301    427   
        let mut v = self.replica_updates.unwrap_or_default();
  302    428   
        v.push(input);
  303    429   
        self.replica_updates = ::std::option::Option::Some(v);
  304    430   
        self
         431  +
        /* BuilderGenerator.kt:418 */
  305    432   
    }
  306         -
    /// <p>A list of replica update actions (create, delete, or update) for the table.</p><note>
         433  +
    /// /* BuilderGenerator.kt:312 */<p>A list of replica update actions (create, delete, or update) for the table.</p><note>
  307    434   
    /// <p>This property 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>
  308    435   
    /// </note>
         436  +
    /* BuilderGenerator.kt:314 */
  309    437   
    pub fn set_replica_updates(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicationGroupUpdate>>) -> Self {
         438  +
        /* BuilderGenerator.kt:315 */
  310    439   
        self.replica_updates = input;
  311    440   
        self
         441  +
        /* BuilderGenerator.kt:314 */
  312    442   
    }
  313         -
    /// <p>A list of replica update actions (create, delete, or update) for the table.</p><note>
         443  +
    /// /* BuilderGenerator.kt:334 */<p>A list of replica update actions (create, delete, or update) for the table.</p><note>
  314    444   
    /// <p>This property 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>
  315    445   
    /// </note>
         446  +
    /* BuilderGenerator.kt:336 */
  316    447   
    pub fn get_replica_updates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicationGroupUpdate>> {
         448  +
        /* BuilderGenerator.kt:337 */
  317    449   
        &self.replica_updates
         450  +
        /* BuilderGenerator.kt:336 */
  318    451   
    }
  319         -
    /// Consumes the builder and constructs a [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
         452  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`UpdateTableInput`](crate::operation::update_table::UpdateTableInput).
         453  +
    /* BuilderGenerator.kt:253 */
  320    454   
    pub fn build(self) -> ::std::result::Result<crate::operation::update_table::UpdateTableInput, ::aws_smithy_types::error::operation::BuildError> {
  321         -
        ::std::result::Result::Ok(crate::operation::update_table::UpdateTableInput {
  322         -
            attribute_definitions: self.attribute_definitions,
         455  +
        /* BuilderGenerator.kt:254 */
         456  +
        ::std::result::Result::Ok(
         457  +
            /* BuilderGenerator.kt:477 */
         458  +
            crate::operation::update_table::UpdateTableInput {
         459  +
                /* BuilderGenerator.kt:481 */ attribute_definitions: self.attribute_definitions,
         460  +
                /* BuilderGenerator.kt:481 */
  323    461   
                table_name: self.table_name,
         462  +
                /* BuilderGenerator.kt:481 */
  324    463   
                billing_mode: self.billing_mode,
         464  +
                /* BuilderGenerator.kt:481 */
  325    465   
                provisioned_throughput: self.provisioned_throughput,
         466  +
                /* BuilderGenerator.kt:481 */
  326    467   
                global_secondary_index_updates: self.global_secondary_index_updates,
         468  +
                /* BuilderGenerator.kt:481 */
  327    469   
                stream_specification: self.stream_specification,
         470  +
                /* BuilderGenerator.kt:481 */
  328    471   
                sse_specification: self.sse_specification,
         472  +
                /* BuilderGenerator.kt:481 */
  329    473   
                replica_updates: self.replica_updates,
  330         -
        })
         474  +
                /* BuilderGenerator.kt:477 */
         475  +
            }, /* BuilderGenerator.kt:254 */
         476  +
        )
         477  +
        /* BuilderGenerator.kt:253 */
  331    478   
    }
         479  +
    /* BuilderGenerator.kt:355 */
  332    480   
}

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/operation/update_table/_update_table_output.rs

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

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

@@ -1,1 +313,349 @@
    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::_update_table_output::UpdateTableOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::update_table::_update_table_input::UpdateTableInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::update_table::builders::UpdateTableInputBuilder {
    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::UpdateTableOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::update_table::UpdateTableError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.update_table();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `UpdateTable`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `UpdateTable`.
   24     27   
///
   25         -
/// <p>Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.</p>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.</p>
   26     29   
/// <p>You can only perform one of the following operations at once:</p>
   27     30   
/// <ul>
   28     31   
/// <li>
   29     32   
/// <p>Modify the provisioned throughput settings of the table.</p></li>
   30     33   
/// <li>
   31     34   
/// <p>Enable or disable DynamoDB Streams on the table.</p></li>
   32     35   
/// <li>
   33     36   
/// <p>Remove a global secondary index from the table.</p></li>
   34     37   
/// <li>
   35     38   
/// <p>Create a new global secondary index on the table. After the index begins backfilling, you can use <code>UpdateTable</code> to perform other operations.</p></li>
   36     39   
/// </ul>
   37     40   
/// <p><code>UpdateTable</code> is an asynchronous operation; while it is executing, the table status changes from <code>ACTIVE</code> to <code>UPDATING</code>. While it is <code>UPDATING</code>, you cannot issue another <code>UpdateTable</code> request. When the table returns to the <code>ACTIVE</code> state, the <code>UpdateTable</code> operation is complete.</p>
          41  +
/* RustType.kt:516 */
   38     42   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          43  +
/* FluentBuilderGenerator.kt:270 */
   39     44   
pub struct UpdateTableFluentBuilder {
   40     45   
    handle: ::std::sync::Arc<crate::client::Handle>,
   41     46   
    inner: crate::operation::update_table::builders::UpdateTableInputBuilder,
   42     47   
    config_override: ::std::option::Option<crate::config::Builder>,
   43     48   
}
          49  +
/* FluentBuilderGenerator.kt:381 */
   44     50   
impl
   45     51   
    crate::client::customize::internal::CustomizableSend<
   46     52   
        crate::operation::update_table::UpdateTableOutput,
   47     53   
        crate::operation::update_table::UpdateTableError,
   48     54   
    > for UpdateTableFluentBuilder
   49     55   
{
   50     56   
    fn send(
   51     57   
        self,
   52     58   
        config_override: crate::config::Builder,
   53     59   
    ) -> crate::client::customize::internal::BoxFuture<
   54     60   
        crate::client::customize::internal::SendResult<
   55     61   
            crate::operation::update_table::UpdateTableOutput,
   56     62   
            crate::operation::update_table::UpdateTableError,
   57     63   
        >,
   58     64   
    > {
   59     65   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   60     66   
    }
   61     67   
}
          68  +
/* FluentBuilderGenerator.kt:282 */
   62     69   
impl UpdateTableFluentBuilder {
          70  +
    /* FluentBuilderGenerator.kt:288 */
   63     71   
    /// Creates a new `UpdateTableFluentBuilder`.
   64     72   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   65     73   
        Self {
   66     74   
            handle,
   67     75   
            inner: ::std::default::Default::default(),
   68     76   
            config_override: ::std::option::Option::None,
   69     77   
        }
   70     78   
    }
          79  +
    /* FluentBuilderGenerator.kt:301 */
   71     80   
    /// Access the UpdateTable as a reference.
   72     81   
    pub fn as_input(&self) -> &crate::operation::update_table::builders::UpdateTableInputBuilder {
   73     82   
        &self.inner
   74     83   
    }
          84  +
    /* FluentBuilderGenerator.kt:145 */
   75     85   
    /// Sends the request and returns the response.
   76     86   
    ///
   77     87   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   78     88   
    /// can be matched against.
   79     89   
    ///
   80     90   
    /// By default, any retryable failures will be retried twice. Retry behavior
   81     91   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   82     92   
    /// set when configuring the client.
   83     93   
    pub async fn send(
   84     94   
        self,
   85     95   
    ) -> ::std::result::Result<
   86     96   
        crate::operation::update_table::UpdateTableOutput,
   87     97   
        ::aws_smithy_runtime_api::client::result::SdkError<
   88     98   
            crate::operation::update_table::UpdateTableError,
   89     99   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   90    100   
        >,
   91    101   
    > {
   92    102   
        let input = self
   93    103   
            .inner
   94    104   
            .build()
   95    105   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   96    106   
        let runtime_plugins = crate::operation::update_table::UpdateTable::operation_runtime_plugins(
   97    107   
            self.handle.runtime_plugins.clone(),
   98    108   
            &self.handle.conf,
   99    109   
            self.config_override,
  100    110   
        );
  101    111   
        crate::operation::update_table::UpdateTable::orchestrate(&runtime_plugins, input).await
  102    112   
    }
  103    113   
  104    114   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
  105    115   
    pub fn customize(
  106    116   
        self,
  107    117   
    ) -> crate::client::customize::CustomizableOperation<
  108    118   
        crate::operation::update_table::UpdateTableOutput,
  109    119   
        crate::operation::update_table::UpdateTableError,
  110    120   
        Self,
  111    121   
    > {
  112    122   
        crate::client::customize::CustomizableOperation::new(self)
  113    123   
    }
         124  +
    /* FluentBuilderGenerator.kt:315 */
  114    125   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  115    126   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  116    127   
        self
  117    128   
    }
  118    129   
  119    130   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  120    131   
        self.config_override = config_override;
  121    132   
        self
  122    133   
    }
  123         -
    ///
         134  +
    /// /* FluentBuilderGenerator.kt:436 */
  124    135   
    /// Appends an item to `AttributeDefinitions`.
  125    136   
    ///
  126    137   
    /// To override the contents of this collection use [`set_attribute_definitions`](Self::set_attribute_definitions).
  127    138   
    ///
  128         -
    /// <p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         139  +
    /// /* FluentBuilderGenerator.kt:443 */<p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         140  +
    /* FluentBuilderGenerator.kt:446 */
  129    141   
    pub fn attribute_definitions(mut self, input: crate::types::AttributeDefinition) -> Self {
  130    142   
        self.inner = self.inner.attribute_definitions(input);
  131    143   
        self
  132    144   
    }
  133         -
    /// <p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         145  +
    /// /* FluentBuilderGenerator.kt:498 */<p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         146  +
    /* FluentBuilderGenerator.kt:500 */
  134    147   
    pub fn set_attribute_definitions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>) -> Self {
  135    148   
        self.inner = self.inner.set_attribute_definitions(input);
  136    149   
        self
  137    150   
    }
  138         -
    /// <p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         151  +
    /// /* FluentBuilderGenerator.kt:518 */<p>An array of attributes that describe the key schema for the table and indexes. If you are adding a new global secondary index to the table, <code>AttributeDefinitions</code> must include the key element(s) of the new index.</p>
         152  +
    /* FluentBuilderGenerator.kt:520 */
  139    153   
    pub fn get_attribute_definitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>> {
  140    154   
        self.inner.get_attribute_definitions()
  141    155   
    }
  142         -
    /// <p>The name of the table to be updated.</p>
         156  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the table to be updated.</p>
         157  +
    /* FluentBuilderGenerator.kt:500 */
  143    158   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  144    159   
        self.inner = self.inner.table_name(input.into());
  145    160   
        self
  146    161   
    }
  147         -
    /// <p>The name of the table to be updated.</p>
         162  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The name of the table to be updated.</p>
         163  +
    /* FluentBuilderGenerator.kt:500 */
  148    164   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  149    165   
        self.inner = self.inner.set_table_name(input);
  150    166   
        self
  151    167   
    }
  152         -
    /// <p>The name of the table to be updated.</p>
         168  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The name of the table to be updated.</p>
         169  +
    /* FluentBuilderGenerator.kt:520 */
  153    170   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
  154    171   
        self.inner.get_table_name()
  155    172   
    }
  156         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
         173  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
  157    174   
    /// <ul>
  158    175   
    /// <li>
  159    176   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  160    177   
    /// <li>
  161    178   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  162    179   
    /// </ul>
         180  +
    /* FluentBuilderGenerator.kt:500 */
  163    181   
    pub fn billing_mode(mut self, input: crate::types::BillingMode) -> Self {
  164    182   
        self.inner = self.inner.billing_mode(input);
  165    183   
        self
  166    184   
    }
  167         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
         185  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
  168    186   
    /// <ul>
  169    187   
    /// <li>
  170    188   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  171    189   
    /// <li>
  172    190   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  173    191   
    /// </ul>
         192  +
    /* FluentBuilderGenerator.kt:500 */
  174    193   
    pub fn set_billing_mode(mut self, input: ::std::option::Option<crate::types::BillingMode>) -> Self {
  175    194   
        self.inner = self.inner.set_billing_mode(input);
  176    195   
        self
  177    196   
    }
  178         -
    /// <p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
         197  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Controls how you are charged for read and write throughput and how you manage capacity. When switching from pay-per-request to provisioned capacity, initial provisioned capacity values must be set. The initial provisioned capacity values are estimated based on the consumed read and write capacity of your table and global secondary indexes over the past 30 minutes.</p>
  179    198   
    /// <ul>
  180    199   
    /// <li>
  181    200   
    /// <p><code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned Mode</a>.</p></li>
  182    201   
    /// <li>
  183    202   
    /// <p><code>PAY_PER_REQUEST</code> - We recommend using <code>PAY_PER_REQUEST</code> for unpredictable workloads. <code>PAY_PER_REQUEST</code> sets the billing mode to <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand Mode</a>.</p></li>
  184    203   
    /// </ul>
         204  +
    /* FluentBuilderGenerator.kt:520 */
  185    205   
    pub fn get_billing_mode(&self) -> &::std::option::Option<crate::types::BillingMode> {
  186    206   
        self.inner.get_billing_mode()
  187    207   
    }
  188         -
    /// <p>The new provisioned throughput settings for the specified table or index.</p>
         208  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The new provisioned throughput settings for the specified table or index.</p>
         209  +
    /* FluentBuilderGenerator.kt:500 */
  189    210   
    pub fn provisioned_throughput(mut self, input: crate::types::ProvisionedThroughput) -> Self {
  190    211   
        self.inner = self.inner.provisioned_throughput(input);
  191    212   
        self
  192    213   
    }
  193         -
    /// <p>The new provisioned throughput settings for the specified table or index.</p>
         214  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The new provisioned throughput settings for the specified table or index.</p>
         215  +
    /* FluentBuilderGenerator.kt:500 */
  194    216   
    pub fn set_provisioned_throughput(mut self, input: ::std::option::Option<crate::types::ProvisionedThroughput>) -> Self {
  195    217   
        self.inner = self.inner.set_provisioned_throughput(input);
  196    218   
        self
  197    219   
    }
  198         -
    /// <p>The new provisioned throughput settings for the specified table or index.</p>
         220  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The new provisioned throughput settings for the specified table or index.</p>
         221  +
    /* FluentBuilderGenerator.kt:520 */
  199    222   
    pub fn get_provisioned_throughput(&self) -> &::std::option::Option<crate::types::ProvisionedThroughput> {
  200    223   
        self.inner.get_provisioned_throughput()
  201    224   
    }
  202         -
    ///
         225  +
    /// /* FluentBuilderGenerator.kt:436 */
  203    226   
    /// Appends an item to `GlobalSecondaryIndexUpdates`.
  204    227   
    ///
  205    228   
    /// To override the contents of this collection use [`set_global_secondary_index_updates`](Self::set_global_secondary_index_updates).
  206    229   
    ///
  207         -
    /// <p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
         230  +
    /// /* FluentBuilderGenerator.kt:443 */<p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
  208    231   
    /// <ul>
  209    232   
    /// <li>
  210    233   
    /// <p><code>Create</code> - add a new global secondary index to the table.</p></li>
  211    234   
    /// <li>
  212    235   
    /// <p><code>Update</code> - modify the provisioned throughput settings of an existing global secondary index.</p></li>
  213    236   
    /// <li>
  214    237   
    /// <p><code>Delete</code> - remove a global secondary index from the table.</p></li>
  215    238   
    /// </ul>
  216    239   
    /// <p>You can create or delete only one global secondary index per <code>UpdateTable</code> operation.</p>
  217    240   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         241  +
    /* FluentBuilderGenerator.kt:446 */
  218    242   
    pub fn global_secondary_index_updates(mut self, input: crate::types::GlobalSecondaryIndexUpdate) -> Self {
  219    243   
        self.inner = self.inner.global_secondary_index_updates(input);
  220    244   
        self
  221    245   
    }
  222         -
    /// <p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
         246  +
    /// /* FluentBuilderGenerator.kt:498 */<p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
  223    247   
    /// <ul>
  224    248   
    /// <li>
  225    249   
    /// <p><code>Create</code> - add a new global secondary index to the table.</p></li>
  226    250   
    /// <li>
  227    251   
    /// <p><code>Update</code> - modify the provisioned throughput settings of an existing global secondary index.</p></li>
  228    252   
    /// <li>
  229    253   
    /// <p><code>Delete</code> - remove a global secondary index from the table.</p></li>
  230    254   
    /// </ul>
  231    255   
    /// <p>You can create or delete only one global secondary index per <code>UpdateTable</code> operation.</p>
  232    256   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         257  +
    /* FluentBuilderGenerator.kt:500 */
  233    258   
    pub fn set_global_secondary_index_updates(
  234    259   
        mut self,
  235    260   
        input: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexUpdate>>,
  236    261   
    ) -> Self {
  237    262   
        self.inner = self.inner.set_global_secondary_index_updates(input);
  238    263   
        self
  239    264   
    }
  240         -
    /// <p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
         265  +
    /// /* FluentBuilderGenerator.kt:518 */<p>An array of one or more global secondary indexes for the table. For each index in the array, you can request one action:</p>
  241    266   
    /// <ul>
  242    267   
    /// <li>
  243    268   
    /// <p><code>Create</code> - add a new global secondary index to the table.</p></li>
  244    269   
    /// <li>
  245    270   
    /// <p><code>Update</code> - modify the provisioned throughput settings of an existing global secondary index.</p></li>
  246    271   
    /// <li>
  247    272   
    /// <p><code>Delete</code> - remove a global secondary index from the table.</p></li>
  248    273   
    /// </ul>
  249    274   
    /// <p>You can create or delete only one global secondary index per <code>UpdateTable</code> operation.</p>
  250    275   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         276  +
    /* FluentBuilderGenerator.kt:520 */
  251    277   
    pub fn get_global_secondary_index_updates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexUpdate>> {
  252    278   
        self.inner.get_global_secondary_index_updates()
  253    279   
    }
  254         -
    /// <p>Represents the DynamoDB Streams configuration for the table.</p><note>
         280  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the DynamoDB Streams configuration for the table.</p><note>
  255    281   
    /// <p>You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.</p>
  256    282   
    /// </note>
         283  +
    /* FluentBuilderGenerator.kt:500 */
  257    284   
    pub fn stream_specification(mut self, input: crate::types::StreamSpecification) -> Self {
  258    285   
        self.inner = self.inner.stream_specification(input);
  259    286   
        self
  260    287   
    }
  261         -
    /// <p>Represents the DynamoDB Streams configuration for the table.</p><note>
         288  +
    /// /* FluentBuilderGenerator.kt:498 */<p>Represents the DynamoDB Streams configuration for the table.</p><note>
  262    289   
    /// <p>You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.</p>
  263    290   
    /// </note>
         291  +
    /* FluentBuilderGenerator.kt:500 */
  264    292   
    pub fn set_stream_specification(mut self, input: ::std::option::Option<crate::types::StreamSpecification>) -> Self {
  265    293   
        self.inner = self.inner.set_stream_specification(input);
  266    294   
        self
  267    295   
    }
  268         -
    /// <p>Represents the DynamoDB Streams configuration for the table.</p><note>
         296  +
    /// /* FluentBuilderGenerator.kt:518 */<p>Represents the DynamoDB Streams configuration for the table.</p><note>
  269    297   
    /// <p>You receive a <code>ResourceInUseException</code> if you try to enable a stream on a table that already has a stream, or if you try to disable a stream on a table that doesn't have a stream.</p>
  270    298   
    /// </note>
         299  +
    /* FluentBuilderGenerator.kt:520 */
  271    300   
    pub fn get_stream_specification(&self) -> &::std::option::Option<crate::types::StreamSpecification> {
  272    301   
        self.inner.get_stream_specification()
  273    302   
    }
  274         -
    /// <p>The new server-side encryption settings for the specified table.</p>
         303  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The new server-side encryption settings for the specified table.</p>
         304  +
    /* FluentBuilderGenerator.kt:500 */
  275    305   
    pub fn sse_specification(mut self, input: crate::types::SseSpecification) -> Self {
  276    306   
        self.inner = self.inner.sse_specification(input);
  277    307   
        self
  278    308   
    }
  279         -
    /// <p>The new server-side encryption settings for the specified table.</p>
         309  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The new server-side encryption settings for the specified table.</p>
         310  +
    /* FluentBuilderGenerator.kt:500 */
  280    311   
    pub fn set_sse_specification(mut self, input: ::std::option::Option<crate::types::SseSpecification>) -> Self {
  281    312   
        self.inner = self.inner.set_sse_specification(input);
  282    313   
        self
  283    314   
    }
  284         -
    /// <p>The new server-side encryption settings for the specified table.</p>
         315  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The new server-side encryption settings for the specified table.</p>
         316  +
    /* FluentBuilderGenerator.kt:520 */
  285    317   
    pub fn get_sse_specification(&self) -> &::std::option::Option<crate::types::SseSpecification> {
  286    318   
        self.inner.get_sse_specification()
  287    319   
    }
  288         -
    ///
         320  +
    /// /* FluentBuilderGenerator.kt:436 */
  289    321   
    /// Appends an item to `ReplicaUpdates`.
  290    322   
    ///
  291    323   
    /// To override the contents of this collection use [`set_replica_updates`](Self::set_replica_updates).
  292    324   
    ///
  293         -
    /// <p>A list of replica update actions (create, delete, or update) for the table.</p><note>
         325  +
    /// /* FluentBuilderGenerator.kt:443 */<p>A list of replica update actions (create, delete, or update) for the table.</p><note>
  294    326   
    /// <p>This property 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>
  295    327   
    /// </note>
         328  +
    /* FluentBuilderGenerator.kt:446 */
  296    329   
    pub fn replica_updates(mut self, input: crate::types::ReplicationGroupUpdate) -> Self {
  297    330   
        self.inner = self.inner.replica_updates(input);
  298    331   
        self
  299    332   
    }
  300         -
    /// <p>A list of replica update actions (create, delete, or update) for the table.</p><note>
         333  +
    /// /* FluentBuilderGenerator.kt:498 */<p>A list of replica update actions (create, delete, or update) for the table.</p><note>
  301    334   
    /// <p>This property 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>
  302    335   
    /// </note>
         336  +
    /* FluentBuilderGenerator.kt:500 */
  303    337   
    pub fn set_replica_updates(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicationGroupUpdate>>) -> Self {
  304    338   
        self.inner = self.inner.set_replica_updates(input);
  305    339   
        self
  306    340   
    }
  307         -
    /// <p>A list of replica update actions (create, delete, or update) for the table.</p><note>
         341  +
    /// /* FluentBuilderGenerator.kt:518 */<p>A list of replica update actions (create, delete, or update) for the table.</p><note>
  308    342   
    /// <p>This property 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>
  309    343   
    /// </note>
         344  +
    /* FluentBuilderGenerator.kt:520 */
  310    345   
    pub fn get_replica_updates(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicationGroupUpdate>> {
  311    346   
        self.inner.get_replica_updates()
  312    347   
    }
         348  +
    /* FluentBuilderGenerator.kt:282 */
  313    349   
}

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