Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

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

@@ -1,1 +114,176 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the settings used to enable server-side encryption.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the settings used to enable server-side encryption.</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 SseSpecification {
    7         -
    /// <p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct SseSpecification {
           9  +
    /// /* StructureGenerator.kt:231 */<p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
    8     10   
    pub enabled: ::std::option::Option<bool>,
    9         -
    /// <p>Server-side encryption type. The only supported value is:</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>Server-side encryption type. The only supported value is:</p>
   10     12   
    /// <ul>
   11     13   
    /// <li>
   12     14   
    /// <p><code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply).</p></li>
   13     15   
    /// </ul>
   14     16   
    pub sse_type: ::std::option::Option<crate::types::SseType>,
   15         -
    /// <p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
   16     18   
    pub kms_master_key_id: ::std::option::Option<::std::string::String>,
          19  +
    /* StructureGenerator.kt:201 */
   17     20   
}
          21  +
/* StructureGenerator.kt:135 */
   18     22   
impl SseSpecification {
   19         -
    /// <p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
          23  +
    /// /* StructureGenerator.kt:231 */<p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
          24  +
    /* StructureGenerator.kt:166 */
   20     25   
    pub fn enabled(&self) -> ::std::option::Option<bool> {
          26  +
        /* StructureGenerator.kt:168 */
   21     27   
        self.enabled
          28  +
        /* StructureGenerator.kt:166 */
   22     29   
    }
   23         -
    /// <p>Server-side encryption type. The only supported value is:</p>
          30  +
    /// /* StructureGenerator.kt:231 */<p>Server-side encryption type. The only supported value is:</p>
   24     31   
    /// <ul>
   25     32   
    /// <li>
   26     33   
    /// <p><code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply).</p></li>
   27     34   
    /// </ul>
          35  +
    /* StructureGenerator.kt:166 */
   28     36   
    pub fn sse_type(&self) -> ::std::option::Option<&crate::types::SseType> {
          37  +
        /* StructureGenerator.kt:170 */
   29     38   
        self.sse_type.as_ref()
          39  +
        /* StructureGenerator.kt:166 */
   30     40   
    }
   31         -
    /// <p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
          41  +
    /// /* StructureGenerator.kt:231 */<p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
          42  +
    /* StructureGenerator.kt:166 */
   32     43   
    pub fn kms_master_key_id(&self) -> ::std::option::Option<&str> {
          44  +
        /* StructureGenerator.kt:169 */
   33     45   
        self.kms_master_key_id.as_deref()
          46  +
        /* StructureGenerator.kt:166 */
   34     47   
    }
          48  +
    /* StructureGenerator.kt:135 */
   35     49   
}
          50  +
/* ClientCodegenVisitor.kt:237 */
   36     51   
impl SseSpecification {
   37         -
    /// Creates a new builder-style object to manufacture [`SseSpecification`](crate::types::SseSpecification).
          52  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`SseSpecification`](crate::types::SseSpecification).
          53  +
    /* BuilderGenerator.kt:175 */
   38     54   
    pub fn builder() -> crate::types::builders::SseSpecificationBuilder {
          55  +
        /* BuilderGenerator.kt:176 */
   39     56   
        crate::types::builders::SseSpecificationBuilder::default()
          57  +
        /* BuilderGenerator.kt:175 */
   40     58   
    }
          59  +
    /* ClientCodegenVisitor.kt:237 */
   41     60   
}
   42     61   
   43         -
/// A builder for [`SseSpecification`](crate::types::SseSpecification).
          62  +
/// /* BuilderGenerator.kt:342 */A builder for [`SseSpecification`](crate::types::SseSpecification).
          63  +
/* RustType.kt:516 */
   44     64   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          65  +
/* RustType.kt:516 */
   45     66   
#[non_exhaustive]
          67  +
/* BuilderGenerator.kt:345 */
   46     68   
pub struct SseSpecificationBuilder {
   47         -
    pub(crate) enabled: ::std::option::Option<bool>,
   48         -
    pub(crate) sse_type: ::std::option::Option<crate::types::SseType>,
          69  +
    /* BuilderGenerator.kt:275 */ pub(crate) enabled: ::std::option::Option<bool>,
          70  +
    /* BuilderGenerator.kt:275 */ pub(crate) sse_type: ::std::option::Option<crate::types::SseType>,
          71  +
    /* BuilderGenerator.kt:275 */
   49     72   
    pub(crate) kms_master_key_id: ::std::option::Option<::std::string::String>,
          73  +
    /* BuilderGenerator.kt:345 */
   50     74   
}
          75  +
/* BuilderGenerator.kt:355 */
   51     76   
impl SseSpecificationBuilder {
   52         -
    /// <p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
          77  +
    /// /* BuilderGenerator.kt:286 */<p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
          78  +
    /* BuilderGenerator.kt:291 */
   53     79   
    pub fn enabled(mut self, input: bool) -> Self {
          80  +
        /* BuilderGenerator.kt:292 */
   54     81   
        self.enabled = ::std::option::Option::Some(input);
          82  +
        /* BuilderGenerator.kt:293 */
   55     83   
        self
          84  +
        /* BuilderGenerator.kt:291 */
   56     85   
    }
   57         -
    /// <p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
          86  +
    /// /* BuilderGenerator.kt:312 */<p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
          87  +
    /* BuilderGenerator.kt:314 */
   58     88   
    pub fn set_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
          89  +
        /* BuilderGenerator.kt:315 */
   59     90   
        self.enabled = input;
   60     91   
        self
          92  +
        /* BuilderGenerator.kt:314 */
   61     93   
    }
   62         -
    /// <p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
          94  +
    /// /* BuilderGenerator.kt:334 */<p>Indicates whether server-side encryption is done using an AWS managed CMK or an AWS owned CMK. If enabled (true), server-side encryption type is set to <code>KMS</code> and an AWS managed CMK is used (AWS KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned CMK.</p>
          95  +
    /* BuilderGenerator.kt:336 */
   63     96   
    pub fn get_enabled(&self) -> &::std::option::Option<bool> {
          97  +
        /* BuilderGenerator.kt:337 */
   64     98   
        &self.enabled
          99  +
        /* BuilderGenerator.kt:336 */
   65    100   
    }
   66         -
    /// <p>Server-side encryption type. The only supported value is:</p>
         101  +
    /// /* BuilderGenerator.kt:286 */<p>Server-side encryption type. The only supported value is:</p>
   67    102   
    /// <ul>
   68    103   
    /// <li>
   69    104   
    /// <p><code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply).</p></li>
   70    105   
    /// </ul>
         106  +
    /* BuilderGenerator.kt:291 */
   71    107   
    pub fn sse_type(mut self, input: crate::types::SseType) -> Self {
         108  +
        /* BuilderGenerator.kt:292 */
   72    109   
        self.sse_type = ::std::option::Option::Some(input);
         110  +
        /* BuilderGenerator.kt:293 */
   73    111   
        self
         112  +
        /* BuilderGenerator.kt:291 */
   74    113   
    }
   75         -
    /// <p>Server-side encryption type. The only supported value is:</p>
         114  +
    /// /* BuilderGenerator.kt:312 */<p>Server-side encryption type. The only supported value is:</p>
   76    115   
    /// <ul>
   77    116   
    /// <li>
   78    117   
    /// <p><code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply).</p></li>
   79    118   
    /// </ul>
         119  +
    /* BuilderGenerator.kt:314 */
   80    120   
    pub fn set_sse_type(mut self, input: ::std::option::Option<crate::types::SseType>) -> Self {
         121  +
        /* BuilderGenerator.kt:315 */
   81    122   
        self.sse_type = input;
   82    123   
        self
         124  +
        /* BuilderGenerator.kt:314 */
   83    125   
    }
   84         -
    /// <p>Server-side encryption type. The only supported value is:</p>
         126  +
    /// /* BuilderGenerator.kt:334 */<p>Server-side encryption type. The only supported value is:</p>
   85    127   
    /// <ul>
   86    128   
    /// <li>
   87    129   
    /// <p><code>KMS</code> - Server-side encryption that uses AWS Key Management Service. The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply).</p></li>
   88    130   
    /// </ul>
         131  +
    /* BuilderGenerator.kt:336 */
   89    132   
    pub fn get_sse_type(&self) -> &::std::option::Option<crate::types::SseType> {
         133  +
        /* BuilderGenerator.kt:337 */
   90    134   
        &self.sse_type
         135  +
        /* BuilderGenerator.kt:336 */
   91    136   
    }
   92         -
    /// <p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
         137  +
    /// /* BuilderGenerator.kt:286 */<p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
         138  +
    /* BuilderGenerator.kt:291 */
   93    139   
    pub fn kms_master_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         140  +
        /* BuilderGenerator.kt:292 */
   94    141   
        self.kms_master_key_id = ::std::option::Option::Some(input.into());
         142  +
        /* BuilderGenerator.kt:293 */
   95    143   
        self
         144  +
        /* BuilderGenerator.kt:291 */
   96    145   
    }
   97         -
    /// <p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
         146  +
    /// /* BuilderGenerator.kt:312 */<p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
         147  +
    /* BuilderGenerator.kt:314 */
   98    148   
    pub fn set_kms_master_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         149  +
        /* BuilderGenerator.kt:315 */
   99    150   
        self.kms_master_key_id = input;
  100    151   
        self
         152  +
        /* BuilderGenerator.kt:314 */
  101    153   
    }
  102         -
    /// <p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
         154  +
    /// /* BuilderGenerator.kt:334 */<p>The AWS KMS customer master key (CMK) that should be used for the AWS KMS encryption. To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB customer master key alias/aws/dynamodb.</p>
         155  +
    /* BuilderGenerator.kt:336 */
  103    156   
    pub fn get_kms_master_key_id(&self) -> &::std::option::Option<::std::string::String> {
         157  +
        /* BuilderGenerator.kt:337 */
  104    158   
        &self.kms_master_key_id
         159  +
        /* BuilderGenerator.kt:336 */
  105    160   
    }
  106         -
    /// Consumes the builder and constructs a [`SseSpecification`](crate::types::SseSpecification).
         161  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`SseSpecification`](crate::types::SseSpecification).
         162  +
    /* BuilderGenerator.kt:253 */
  107    163   
    pub fn build(self) -> crate::types::SseSpecification {
         164  +
        /* BuilderGenerator.kt:477 */
  108    165   
        crate::types::SseSpecification {
  109         -
            enabled: self.enabled,
         166  +
            /* BuilderGenerator.kt:481 */ enabled: self.enabled,
         167  +
            /* BuilderGenerator.kt:481 */
  110    168   
            sse_type: self.sse_type,
         169  +
            /* BuilderGenerator.kt:481 */
  111    170   
            kms_master_key_id: self.kms_master_key_id,
         171  +
            /* BuilderGenerator.kt:477 */
  112    172   
        }
         173  +
        /* BuilderGenerator.kt:253 */
  113    174   
    }
         175  +
    /* BuilderGenerator.kt:355 */
  114    176   
}

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

@@ -1,1 +126,152 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// When writing a match expression against `SseStatus`, it is important to ensure
           2  +
/* ClientEnumGenerator.kt:234 */
           3  +
/// /* ClientEnumGenerator.kt:234 */When writing a match expression against `SseStatus`, it is important to ensure
    4      4   
/// your code is forward-compatible. That is, if a match arm handles a case for a
    5      5   
/// feature that is supported by the service but has not been represented as an enum
    6      6   
/// variant in a current version of SDK, your code should continue to work when you
    7      7   
/// upgrade SDK to a future version in which the enum does include a variant for that
    8      8   
/// feature.
    9         -
///
   10         -
/// Here is an example of how you can make a match expression forward-compatible:
   11         -
///
   12         -
/// ```text
           9  +
/// /* ClientEnumGenerator.kt:244 */
          10  +
/// /* ClientEnumGenerator.kt:245 */Here is an example of how you can make a match expression forward-compatible:
          11  +
/// /* ClientEnumGenerator.kt:246 */
          12  +
/// /* ClientEnumGenerator.kt:247 */```text
          13  +
/* ClientEnumGenerator.kt:248 */
   13     14   
/// # let ssestatus = unimplemented!();
          15  +
/* ClientEnumGenerator.kt:249 */
   14     16   
/// match ssestatus {
          17  +
/* ClientEnumGenerator.kt:251 */
   15     18   
///     SseStatus::Disabled => { /* ... */ },
          19  +
/* ClientEnumGenerator.kt:251 */
   16     20   
///     SseStatus::Disabling => { /* ... */ },
          21  +
/* ClientEnumGenerator.kt:251 */
   17     22   
///     SseStatus::Enabled => { /* ... */ },
          23  +
/* ClientEnumGenerator.kt:251 */
   18     24   
///     SseStatus::Enabling => { /* ... */ },
          25  +
/* ClientEnumGenerator.kt:251 */
   19     26   
///     SseStatus::Updating => { /* ... */ },
          27  +
/* ClientEnumGenerator.kt:253 */
   20     28   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          29  +
/* ClientEnumGenerator.kt:254 */
   21     30   
///     _ => { /* ... */ },
          31  +
/* ClientEnumGenerator.kt:255 */
   22     32   
/// }
   23         -
/// ```
   24         -
/// The above code demonstrates that when `ssestatus` represents
          33  +
/// /* ClientEnumGenerator.kt:256 */```
          34  +
/// /* ClientEnumGenerator.kt:257 */The above code demonstrates that when `ssestatus` represents
   25     35   
/// `NewFeature`, the execution path will lead to the second last match arm,
   26     36   
/// even though the enum does not contain a variant `SseStatus::NewFeature`
   27     37   
/// in the current version of SDK. The reason is that the variable `other`,
   28     38   
/// created by the `@` operator, is bound to
   29     39   
/// `SseStatus::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
   30     40   
/// and calling `as_str` on it yields `"NewFeature"`.
   31     41   
/// This match expression is forward-compatible when executed with a newer
   32     42   
/// version of SDK where the variant `SseStatus::NewFeature` is defined.
   33     43   
/// Specifically, when `ssestatus` represents `NewFeature`,
   34     44   
/// the execution path will hit the second last match arm as before by virtue of
   35     45   
/// calling `as_str` on `SseStatus::NewFeature` also yielding `"NewFeature"`.
   36         -
///
   37         -
/// Explicitly matching on the `Unknown` variant should
          46  +
/// /* ClientEnumGenerator.kt:273 */
          47  +
/// /* ClientEnumGenerator.kt:274 */Explicitly matching on the `Unknown` variant should
   38     48   
/// be avoided for two reasons:
   39     49   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
   40     50   
/// - It might inadvertently shadow other intended match arms.
   41         -
///
          51  +
/// /* ClientEnumGenerator.kt:282 */
          52  +
/* EnumGenerator.kt:154 */
   42     53   
#[allow(missing_docs)] // documentation missing in model
          54  +
/* RustType.kt:516 */
   43     55   
#[non_exhaustive]
          56  +
/* RustType.kt:516 */
   44     57   
#[derive(
   45     58   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   46     59   
)]
   47         -
pub enum SseStatus {
   48         -
    #[allow(missing_docs)] // documentation missing in model
          60  +
pub /* EnumGenerator.kt:267 */ enum SseStatus {
          61  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          62  +
    /* EnumGenerator.kt:143 */
   49     63   
    Disabled,
   50         -
    #[allow(missing_docs)] // documentation missing in model
          64  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          65  +
    /* EnumGenerator.kt:143 */
   51     66   
    Disabling,
   52         -
    #[allow(missing_docs)] // documentation missing in model
          67  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          68  +
    /* EnumGenerator.kt:143 */
   53     69   
    Enabled,
   54         -
    #[allow(missing_docs)] // documentation missing in model
          70  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          71  +
    /* EnumGenerator.kt:143 */
   55     72   
    Enabling,
   56         -
    #[allow(missing_docs)] // documentation missing in model
          73  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          74  +
    /* EnumGenerator.kt:143 */
   57     75   
    Updating,
   58         -
    /// `Unknown` contains new variants that have been added since this code was generated.
          76  +
    /// /* ClientEnumGenerator.kt:175 */`Unknown` contains new variants that have been added since this code was generated.
          77  +
    /* ClientEnumGenerator.kt:176 */
   59     78   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
   60         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
          79  +
    /* ClientEnumGenerator.kt:179 */
          80  +
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue), /* EnumGenerator.kt:267 */
   61     81   
}
          82  +
/* ClientEnumGenerator.kt:42 */
   62     83   
impl ::std::convert::From<&str> for SseStatus {
   63     84   
    fn from(s: &str) -> Self {
   64     85   
        match s {
   65     86   
            "DISABLED" => SseStatus::Disabled,
   66     87   
            "DISABLING" => SseStatus::Disabling,
   67     88   
            "ENABLED" => SseStatus::Enabled,
   68     89   
            "ENABLING" => SseStatus::Enabling,
   69     90   
            "UPDATING" => SseStatus::Updating,
   70     91   
            other => SseStatus::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
   71     92   
        }
   72     93   
    }
   73     94   
}
          95  +
/* ClientEnumGenerator.kt:68 */
   74     96   
impl ::std::str::FromStr for SseStatus {
   75     97   
    type Err = ::std::convert::Infallible;
   76     98   
   77     99   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
   78    100   
        ::std::result::Result::Ok(SseStatus::from(s))
   79    101   
    }
   80    102   
}
         103  +
/* EnumGenerator.kt:274 */
   81    104   
impl SseStatus {
   82    105   
    /// Returns the `&str` value of the enum member.
   83    106   
    pub fn as_str(&self) -> &str {
   84    107   
        match self {
   85    108   
            SseStatus::Disabled => "DISABLED",
   86    109   
            SseStatus::Disabling => "DISABLING",
   87    110   
            SseStatus::Enabled => "ENABLED",
   88    111   
            SseStatus::Enabling => "ENABLING",
   89    112   
            SseStatus::Updating => "UPDATING",
   90    113   
            SseStatus::Unknown(value) => value.as_str(),
   91    114   
        }
   92    115   
    }
   93    116   
    /// Returns all the `&str` representations of the enum members.
   94    117   
    pub const fn values() -> &'static [&'static str] {
   95    118   
        &["DISABLED", "DISABLING", "ENABLED", "ENABLING", "UPDATING"]
   96    119   
    }
   97    120   
}
         121  +
/* EnumGenerator.kt:223 */
   98    122   
impl ::std::convert::AsRef<str> for SseStatus {
   99    123   
    fn as_ref(&self) -> &str {
  100    124   
        self.as_str()
  101    125   
    }
  102    126   
}
         127  +
/* ClientEnumGenerator.kt:117 */
  103    128   
impl SseStatus {
  104    129   
    /// Parses the enum value while disallowing unknown variants.
  105    130   
    ///
  106    131   
    /// Unknown variants will result in an error.
  107    132   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
  108    133   
        match Self::from(value) {
  109    134   
            #[allow(deprecated)]
  110    135   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
  111    136   
            known => Ok(known),
  112    137   
        }
  113    138   
    }
  114    139   
}
         140  +
/* ClientEnumGenerator.kt:136 */
  115    141   
impl ::std::fmt::Display for SseStatus {
  116    142   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  117    143   
        match self {
  118    144   
            SseStatus::Disabled => write!(f, "DISABLED"),
  119    145   
            SseStatus::Disabling => write!(f, "DISABLING"),
  120    146   
            SseStatus::Enabled => write!(f, "ENABLED"),
  121    147   
            SseStatus::Enabling => write!(f, "ENABLING"),
  122    148   
            SseStatus::Updating => write!(f, "UPDATING"),
  123    149   
            SseStatus::Unknown(value) => write!(f, "{}", value),
  124    150   
        }

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

@@ -1,1 +108,128 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// When writing a match expression against `SseType`, it is important to ensure
           2  +
/* ClientEnumGenerator.kt:234 */
           3  +
/// /* ClientEnumGenerator.kt:234 */When writing a match expression against `SseType`, it is important to ensure
    4      4   
/// your code is forward-compatible. That is, if a match arm handles a case for a
    5      5   
/// feature that is supported by the service but has not been represented as an enum
    6      6   
/// variant in a current version of SDK, your code should continue to work when you
    7      7   
/// upgrade SDK to a future version in which the enum does include a variant for that
    8      8   
/// feature.
    9         -
///
   10         -
/// Here is an example of how you can make a match expression forward-compatible:
   11         -
///
   12         -
/// ```text
           9  +
/// /* ClientEnumGenerator.kt:244 */
          10  +
/// /* ClientEnumGenerator.kt:245 */Here is an example of how you can make a match expression forward-compatible:
          11  +
/// /* ClientEnumGenerator.kt:246 */
          12  +
/// /* ClientEnumGenerator.kt:247 */```text
          13  +
/* ClientEnumGenerator.kt:248 */
   13     14   
/// # let ssetype = unimplemented!();
          15  +
/* ClientEnumGenerator.kt:249 */
   14     16   
/// match ssetype {
          17  +
/* ClientEnumGenerator.kt:251 */
   15     18   
///     SseType::Aes256 => { /* ... */ },
          19  +
/* ClientEnumGenerator.kt:251 */
   16     20   
///     SseType::Kms => { /* ... */ },
          21  +
/* ClientEnumGenerator.kt:253 */
   17     22   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          23  +
/* ClientEnumGenerator.kt:254 */
   18     24   
///     _ => { /* ... */ },
          25  +
/* ClientEnumGenerator.kt:255 */
   19     26   
/// }
   20         -
/// ```
   21         -
/// The above code demonstrates that when `ssetype` represents
          27  +
/// /* ClientEnumGenerator.kt:256 */```
          28  +
/// /* ClientEnumGenerator.kt:257 */The above code demonstrates that when `ssetype` represents
   22     29   
/// `NewFeature`, the execution path will lead to the second last match arm,
   23     30   
/// even though the enum does not contain a variant `SseType::NewFeature`
   24     31   
/// in the current version of SDK. The reason is that the variable `other`,
   25     32   
/// created by the `@` operator, is bound to
   26     33   
/// `SseType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
   27     34   
/// and calling `as_str` on it yields `"NewFeature"`.
   28     35   
/// This match expression is forward-compatible when executed with a newer
   29     36   
/// version of SDK where the variant `SseType::NewFeature` is defined.
   30     37   
/// Specifically, when `ssetype` represents `NewFeature`,
   31     38   
/// the execution path will hit the second last match arm as before by virtue of
   32     39   
/// calling `as_str` on `SseType::NewFeature` also yielding `"NewFeature"`.
   33         -
///
   34         -
/// Explicitly matching on the `Unknown` variant should
          40  +
/// /* ClientEnumGenerator.kt:273 */
          41  +
/// /* ClientEnumGenerator.kt:274 */Explicitly matching on the `Unknown` variant should
   35     42   
/// be avoided for two reasons:
   36     43   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
   37     44   
/// - It might inadvertently shadow other intended match arms.
   38         -
///
          45  +
/// /* ClientEnumGenerator.kt:282 */
          46  +
/* EnumGenerator.kt:154 */
   39     47   
#[allow(missing_docs)] // documentation missing in model
          48  +
/* RustType.kt:516 */
   40     49   
#[non_exhaustive]
          50  +
/* RustType.kt:516 */
   41     51   
#[derive(
   42     52   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   43     53   
)]
   44         -
pub enum SseType {
   45         -
    #[allow(missing_docs)] // documentation missing in model
          54  +
pub /* EnumGenerator.kt:267 */ enum SseType {
          55  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          56  +
    /* EnumGenerator.kt:143 */
   46     57   
    Aes256,
   47         -
    #[allow(missing_docs)] // documentation missing in model
          58  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          59  +
    /* EnumGenerator.kt:143 */
   48     60   
    Kms,
   49         -
    /// `Unknown` contains new variants that have been added since this code was generated.
          61  +
    /// /* ClientEnumGenerator.kt:175 */`Unknown` contains new variants that have been added since this code was generated.
          62  +
    /* ClientEnumGenerator.kt:176 */
   50     63   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
   51         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
          64  +
    /* ClientEnumGenerator.kt:179 */
          65  +
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue), /* EnumGenerator.kt:267 */
   52     66   
}
          67  +
/* ClientEnumGenerator.kt:42 */
   53     68   
impl ::std::convert::From<&str> for SseType {
   54     69   
    fn from(s: &str) -> Self {
   55     70   
        match s {
   56     71   
            "AES256" => SseType::Aes256,
   57     72   
            "KMS" => SseType::Kms,
   58     73   
            other => SseType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
   59     74   
        }
   60     75   
    }
   61     76   
}
          77  +
/* ClientEnumGenerator.kt:68 */
   62     78   
impl ::std::str::FromStr for SseType {
   63     79   
    type Err = ::std::convert::Infallible;
   64     80   
   65     81   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
   66     82   
        ::std::result::Result::Ok(SseType::from(s))
   67     83   
    }
   68     84   
}
          85  +
/* EnumGenerator.kt:274 */
   69     86   
impl SseType {
   70     87   
    /// Returns the `&str` value of the enum member.
   71     88   
    pub fn as_str(&self) -> &str {
   72     89   
        match self {
   73     90   
            SseType::Aes256 => "AES256",
   74     91   
            SseType::Kms => "KMS",
   75     92   
            SseType::Unknown(value) => value.as_str(),
   76     93   
        }
   77     94   
    }
   78     95   
    /// Returns all the `&str` representations of the enum members.
   79     96   
    pub const fn values() -> &'static [&'static str] {
   80     97   
        &["AES256", "KMS"]
   81     98   
    }
   82     99   
}
         100  +
/* EnumGenerator.kt:223 */
   83    101   
impl ::std::convert::AsRef<str> for SseType {
   84    102   
    fn as_ref(&self) -> &str {
   85    103   
        self.as_str()
   86    104   
    }
   87    105   
}
         106  +
/* ClientEnumGenerator.kt:117 */
   88    107   
impl SseType {
   89    108   
    /// Parses the enum value while disallowing unknown variants.
   90    109   
    ///
   91    110   
    /// Unknown variants will result in an error.
   92    111   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
   93    112   
        match Self::from(value) {
   94    113   
            #[allow(deprecated)]
   95    114   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
   96    115   
            known => Ok(known),
   97    116   
        }
   98    117   
    }
   99    118   
}
         119  +
/* ClientEnumGenerator.kt:136 */
  100    120   
impl ::std::fmt::Display for SseType {
  101    121   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  102    122   
        match self {
  103    123   
            SseType::Aes256 => write!(f, "AES256"),
  104    124   
            SseType::Kms => write!(f, "KMS"),
  105    125   
            SseType::Unknown(value) => write!(f, "{}", value),
  106    126   
        }
  107    127   
    }
  108    128   
}

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

@@ -1,1 +130,178 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the DynamoDB Streams configuration for a table in DynamoDB.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the DynamoDB Streams configuration for a table in DynamoDB.</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 StreamSpecification {
    7         -
    /// <p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct StreamSpecification {
           9  +
    /// /* StructureGenerator.kt:231 */<p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
    8     10   
    pub stream_enabled: bool,
    9         -
    /// <p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
   10     12   
    /// <ul>
   11     13   
    /// <li>
   12     14   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
   13     15   
    /// <li>
   14     16   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
   15     17   
    /// <li>
   16     18   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
   17     19   
    /// <li>
   18     20   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
   19     21   
    /// </ul>
   20     22   
    pub stream_view_type: ::std::option::Option<crate::types::StreamViewType>,
          23  +
    /* StructureGenerator.kt:201 */
   21     24   
}
          25  +
/* StructureGenerator.kt:135 */
   22     26   
impl StreamSpecification {
   23         -
    /// <p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
          27  +
    /// /* StructureGenerator.kt:231 */<p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
          28  +
    /* StructureGenerator.kt:166 */
   24     29   
    pub fn stream_enabled(&self) -> bool {
          30  +
        /* StructureGenerator.kt:168 */
   25     31   
        self.stream_enabled
          32  +
        /* StructureGenerator.kt:166 */
   26     33   
    }
   27         -
    /// <p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
          34  +
    /// /* StructureGenerator.kt:231 */<p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
   28     35   
    /// <ul>
   29     36   
    /// <li>
   30     37   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
   31     38   
    /// <li>
   32     39   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
   33     40   
    /// <li>
   34     41   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
   35     42   
    /// <li>
   36     43   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
   37     44   
    /// </ul>
          45  +
    /* StructureGenerator.kt:166 */
   38     46   
    pub fn stream_view_type(&self) -> ::std::option::Option<&crate::types::StreamViewType> {
          47  +
        /* StructureGenerator.kt:170 */
   39     48   
        self.stream_view_type.as_ref()
          49  +
        /* StructureGenerator.kt:166 */
   40     50   
    }
          51  +
    /* StructureGenerator.kt:135 */
   41     52   
}
          53  +
/* ClientCodegenVisitor.kt:237 */
   42     54   
impl StreamSpecification {
   43         -
    /// Creates a new builder-style object to manufacture [`StreamSpecification`](crate::types::StreamSpecification).
          55  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`StreamSpecification`](crate::types::StreamSpecification).
          56  +
    /* BuilderGenerator.kt:175 */
   44     57   
    pub fn builder() -> crate::types::builders::StreamSpecificationBuilder {
          58  +
        /* BuilderGenerator.kt:176 */
   45     59   
        crate::types::builders::StreamSpecificationBuilder::default()
          60  +
        /* BuilderGenerator.kt:175 */
   46     61   
    }
          62  +
    /* ClientCodegenVisitor.kt:237 */
   47     63   
}
   48     64   
   49         -
/// A builder for [`StreamSpecification`](crate::types::StreamSpecification).
          65  +
/// /* BuilderGenerator.kt:342 */A builder for [`StreamSpecification`](crate::types::StreamSpecification).
          66  +
/* RustType.kt:516 */
   50     67   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          68  +
/* RustType.kt:516 */
   51     69   
#[non_exhaustive]
          70  +
/* BuilderGenerator.kt:345 */
   52     71   
pub struct StreamSpecificationBuilder {
   53         -
    pub(crate) stream_enabled: ::std::option::Option<bool>,
          72  +
    /* BuilderGenerator.kt:275 */ pub(crate) stream_enabled: ::std::option::Option<bool>,
          73  +
    /* BuilderGenerator.kt:275 */
   54     74   
    pub(crate) stream_view_type: ::std::option::Option<crate::types::StreamViewType>,
          75  +
    /* BuilderGenerator.kt:345 */
   55     76   
}
          77  +
/* BuilderGenerator.kt:355 */
   56     78   
impl StreamSpecificationBuilder {
   57         -
    /// <p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
   58         -
    /// This field is required.
          79  +
    /// /* BuilderGenerator.kt:286 */<p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
          80  +
    /// /* BuilderGenerator.kt:288 */This field is required.
          81  +
    /* BuilderGenerator.kt:291 */
   59     82   
    pub fn stream_enabled(mut self, input: bool) -> Self {
          83  +
        /* BuilderGenerator.kt:292 */
   60     84   
        self.stream_enabled = ::std::option::Option::Some(input);
          85  +
        /* BuilderGenerator.kt:293 */
   61     86   
        self
          87  +
        /* BuilderGenerator.kt:291 */
   62     88   
    }
   63         -
    /// <p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
          89  +
    /// /* BuilderGenerator.kt:312 */<p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
          90  +
    /* BuilderGenerator.kt:314 */
   64     91   
    pub fn set_stream_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
          92  +
        /* BuilderGenerator.kt:315 */
   65     93   
        self.stream_enabled = input;
   66     94   
        self
          95  +
        /* BuilderGenerator.kt:314 */
   67     96   
    }
   68         -
    /// <p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
          97  +
    /// /* BuilderGenerator.kt:334 */<p>Indicates whether DynamoDB Streams is enabled (true) or disabled (false) on the table.</p>
          98  +
    /* BuilderGenerator.kt:336 */
   69     99   
    pub fn get_stream_enabled(&self) -> &::std::option::Option<bool> {
         100  +
        /* BuilderGenerator.kt:337 */
   70    101   
        &self.stream_enabled
         102  +
        /* BuilderGenerator.kt:336 */
   71    103   
    }
   72         -
    /// <p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
         104  +
    /// /* BuilderGenerator.kt:286 */<p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
   73    105   
    /// <ul>
   74    106   
    /// <li>
   75    107   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
   76    108   
    /// <li>
   77    109   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
   78    110   
    /// <li>
   79    111   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
   80    112   
    /// <li>
   81    113   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
   82    114   
    /// </ul>
         115  +
    /* BuilderGenerator.kt:291 */
   83    116   
    pub fn stream_view_type(mut self, input: crate::types::StreamViewType) -> Self {
         117  +
        /* BuilderGenerator.kt:292 */
   84    118   
        self.stream_view_type = ::std::option::Option::Some(input);
         119  +
        /* BuilderGenerator.kt:293 */
   85    120   
        self
         121  +
        /* BuilderGenerator.kt:291 */
   86    122   
    }
   87         -
    /// <p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
         123  +
    /// /* BuilderGenerator.kt:312 */<p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
   88    124   
    /// <ul>
   89    125   
    /// <li>
   90    126   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
   91    127   
    /// <li>
   92    128   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
   93    129   
    /// <li>
   94    130   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
   95    131   
    /// <li>
   96    132   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
   97    133   
    /// </ul>
         134  +
    /* BuilderGenerator.kt:314 */
   98    135   
    pub fn set_stream_view_type(mut self, input: ::std::option::Option<crate::types::StreamViewType>) -> Self {
         136  +
        /* BuilderGenerator.kt:315 */
   99    137   
        self.stream_view_type = input;
  100    138   
        self
         139  +
        /* BuilderGenerator.kt:314 */
  101    140   
    }
  102         -
    /// <p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
         141  +
    /// /* BuilderGenerator.kt:334 */<p>When an item in the table is modified, <code>StreamViewType</code> determines what information is written to the stream for this table. Valid values for <code>StreamViewType</code> are:</p>
  103    142   
    /// <ul>
  104    143   
    /// <li>
  105    144   
    /// <p><code>KEYS_ONLY</code> - Only the key attributes of the modified item are written to the stream.</p></li>
  106    145   
    /// <li>
  107    146   
    /// <p><code>NEW_IMAGE</code> - The entire item, as it appears after it was modified, is written to the stream.</p></li>
  108    147   
    /// <li>
  109    148   
    /// <p><code>OLD_IMAGE</code> - The entire item, as it appeared before it was modified, is written to the stream.</p></li>
  110    149   
    /// <li>
  111    150   
    /// <p><code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the item are written to the stream.</p></li>
  112    151   
    /// </ul>
         152  +
    /* BuilderGenerator.kt:336 */
  113    153   
    pub fn get_stream_view_type(&self) -> &::std::option::Option<crate::types::StreamViewType> {
         154  +
        /* BuilderGenerator.kt:337 */
  114    155   
        &self.stream_view_type
         156  +
        /* BuilderGenerator.kt:336 */
  115    157   
    }
  116         -
    /// Consumes the builder and constructs a [`StreamSpecification`](crate::types::StreamSpecification).
  117         -
    /// This method will fail if any of the following fields are not set:
  118         -
    /// - [`stream_enabled`](crate::types::builders::StreamSpecificationBuilder::stream_enabled)
         158  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`StreamSpecification`](crate::types::StreamSpecification).
         159  +
    /// /* BuilderGenerator.kt:243 */This method will fail if any of the following fields are not set:
         160  +
    /// /* BuilderGenerator.kt:246 */- [`stream_enabled`](crate::types::builders::StreamSpecificationBuilder::stream_enabled)
         161  +
    /* BuilderGenerator.kt:253 */
  119    162   
    pub fn build(self) -> ::std::result::Result<crate::types::StreamSpecification, ::aws_smithy_types::error::operation::BuildError> {
  120         -
        ::std::result::Result::Ok(crate::types::StreamSpecification {
  121         -
            stream_enabled: self.stream_enabled.ok_or_else(|| {
  122         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  123         -
                    "stream_enabled",
  124         -
                    "stream_enabled was not specified but it is required when building StreamSpecification",
  125         -
                )
  126         -
            })?,
  127         -
            stream_view_type: self.stream_view_type,
  128         -
        })
         163  +
        /* BuilderGenerator.kt:254 */
         164  +
        ::std::result::Result::Ok(
         165  +
            /* BuilderGenerator.kt:477 */crate::types::StreamSpecification {
         166  +
                /* BuilderGenerator.kt:481 */stream_enabled: self.stream_enabled
         167  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         168  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("stream_enabled", "stream_enabled was not specified but it is required when building StreamSpecification")
         169  +
                    /* BuilderGenerator.kt:494 */)?
         170  +
                ,
         171  +
                /* BuilderGenerator.kt:481 */stream_view_type: self.stream_view_type
         172  +
                ,
         173  +
            /* BuilderGenerator.kt:477 */}
         174  +
        /* BuilderGenerator.kt:254 */)
         175  +
        /* BuilderGenerator.kt:253 */
  129    176   
    }
         177  +
    /* BuilderGenerator.kt:355 */
  130    178   
}

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

@@ -1,1 +120,144 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// When writing a match expression against `StreamViewType`, it is important to ensure
           2  +
/* ClientEnumGenerator.kt:234 */
           3  +
/// /* ClientEnumGenerator.kt:234 */When writing a match expression against `StreamViewType`, it is important to ensure
    4      4   
/// your code is forward-compatible. That is, if a match arm handles a case for a
    5      5   
/// feature that is supported by the service but has not been represented as an enum
    6      6   
/// variant in a current version of SDK, your code should continue to work when you
    7      7   
/// upgrade SDK to a future version in which the enum does include a variant for that
    8      8   
/// feature.
    9         -
///
   10         -
/// Here is an example of how you can make a match expression forward-compatible:
   11         -
///
   12         -
/// ```text
           9  +
/// /* ClientEnumGenerator.kt:244 */
          10  +
/// /* ClientEnumGenerator.kt:245 */Here is an example of how you can make a match expression forward-compatible:
          11  +
/// /* ClientEnumGenerator.kt:246 */
          12  +
/// /* ClientEnumGenerator.kt:247 */```text
          13  +
/* ClientEnumGenerator.kt:248 */
   13     14   
/// # let streamviewtype = unimplemented!();
          15  +
/* ClientEnumGenerator.kt:249 */
   14     16   
/// match streamviewtype {
          17  +
/* ClientEnumGenerator.kt:251 */
   15     18   
///     StreamViewType::KeysOnly => { /* ... */ },
          19  +
/* ClientEnumGenerator.kt:251 */
   16     20   
///     StreamViewType::NewAndOldImages => { /* ... */ },
          21  +
/* ClientEnumGenerator.kt:251 */
   17     22   
///     StreamViewType::NewImage => { /* ... */ },
          23  +
/* ClientEnumGenerator.kt:251 */
   18     24   
///     StreamViewType::OldImage => { /* ... */ },
          25  +
/* ClientEnumGenerator.kt:253 */
   19     26   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
          27  +
/* ClientEnumGenerator.kt:254 */
   20     28   
///     _ => { /* ... */ },
          29  +
/* ClientEnumGenerator.kt:255 */
   21     30   
/// }
   22         -
/// ```
   23         -
/// The above code demonstrates that when `streamviewtype` represents
          31  +
/// /* ClientEnumGenerator.kt:256 */```
          32  +
/// /* ClientEnumGenerator.kt:257 */The above code demonstrates that when `streamviewtype` represents
   24     33   
/// `NewFeature`, the execution path will lead to the second last match arm,
   25     34   
/// even though the enum does not contain a variant `StreamViewType::NewFeature`
   26     35   
/// in the current version of SDK. The reason is that the variable `other`,
   27     36   
/// created by the `@` operator, is bound to
   28     37   
/// `StreamViewType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
   29     38   
/// and calling `as_str` on it yields `"NewFeature"`.
   30     39   
/// This match expression is forward-compatible when executed with a newer
   31     40   
/// version of SDK where the variant `StreamViewType::NewFeature` is defined.
   32     41   
/// Specifically, when `streamviewtype` represents `NewFeature`,
   33     42   
/// the execution path will hit the second last match arm as before by virtue of
   34     43   
/// calling `as_str` on `StreamViewType::NewFeature` also yielding `"NewFeature"`.
   35         -
///
   36         -
/// Explicitly matching on the `Unknown` variant should
          44  +
/// /* ClientEnumGenerator.kt:273 */
          45  +
/// /* ClientEnumGenerator.kt:274 */Explicitly matching on the `Unknown` variant should
   37     46   
/// be avoided for two reasons:
   38     47   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
   39     48   
/// - It might inadvertently shadow other intended match arms.
   40         -
///
          49  +
/// /* ClientEnumGenerator.kt:282 */
          50  +
/* EnumGenerator.kt:154 */
   41     51   
#[allow(missing_docs)] // documentation missing in model
          52  +
/* RustType.kt:516 */
   42     53   
#[non_exhaustive]
          54  +
/* RustType.kt:516 */
   43     55   
#[derive(
   44     56   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   45     57   
)]
   46         -
pub enum StreamViewType {
   47         -
    #[allow(missing_docs)] // documentation missing in model
          58  +
pub /* EnumGenerator.kt:267 */ enum StreamViewType {
          59  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          60  +
    /* EnumGenerator.kt:143 */
   48     61   
    KeysOnly,
   49         -
    #[allow(missing_docs)] // documentation missing in model
          62  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          63  +
    /* EnumGenerator.kt:143 */
   50     64   
    NewAndOldImages,
   51         -
    #[allow(missing_docs)] // documentation missing in model
          65  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          66  +
    /* EnumGenerator.kt:143 */
   52     67   
    NewImage,
   53         -
    #[allow(missing_docs)] // documentation missing in model
          68  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          69  +
    /* EnumGenerator.kt:143 */
   54     70   
    OldImage,
   55         -
    /// `Unknown` contains new variants that have been added since this code was generated.
          71  +
    /// /* ClientEnumGenerator.kt:175 */`Unknown` contains new variants that have been added since this code was generated.
          72  +
    /* ClientEnumGenerator.kt:176 */
   56     73   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
   57         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
          74  +
    /* ClientEnumGenerator.kt:179 */
          75  +
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue), /* EnumGenerator.kt:267 */
   58     76   
}
          77  +
/* ClientEnumGenerator.kt:42 */
   59     78   
impl ::std::convert::From<&str> for StreamViewType {
   60     79   
    fn from(s: &str) -> Self {
   61     80   
        match s {
   62     81   
            "KEYS_ONLY" => StreamViewType::KeysOnly,
   63     82   
            "NEW_AND_OLD_IMAGES" => StreamViewType::NewAndOldImages,
   64     83   
            "NEW_IMAGE" => StreamViewType::NewImage,
   65     84   
            "OLD_IMAGE" => StreamViewType::OldImage,
   66     85   
            other => StreamViewType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
   67     86   
        }
   68     87   
    }
   69     88   
}
          89  +
/* ClientEnumGenerator.kt:68 */
   70     90   
impl ::std::str::FromStr for StreamViewType {
   71     91   
    type Err = ::std::convert::Infallible;
   72     92   
   73     93   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
   74     94   
        ::std::result::Result::Ok(StreamViewType::from(s))
   75     95   
    }
   76     96   
}
          97  +
/* EnumGenerator.kt:274 */
   77     98   
impl StreamViewType {
   78     99   
    /// Returns the `&str` value of the enum member.
   79    100   
    pub fn as_str(&self) -> &str {
   80    101   
        match self {
   81    102   
            StreamViewType::KeysOnly => "KEYS_ONLY",
   82    103   
            StreamViewType::NewAndOldImages => "NEW_AND_OLD_IMAGES",
   83    104   
            StreamViewType::NewImage => "NEW_IMAGE",
   84    105   
            StreamViewType::OldImage => "OLD_IMAGE",
   85    106   
            StreamViewType::Unknown(value) => value.as_str(),
   86    107   
        }
   87    108   
    }
   88    109   
    /// Returns all the `&str` representations of the enum members.
   89    110   
    pub const fn values() -> &'static [&'static str] {
   90    111   
        &["KEYS_ONLY", "NEW_AND_OLD_IMAGES", "NEW_IMAGE", "OLD_IMAGE"]
   91    112   
    }
   92    113   
}
         114  +
/* EnumGenerator.kt:223 */
   93    115   
impl ::std::convert::AsRef<str> for StreamViewType {
   94    116   
    fn as_ref(&self) -> &str {
   95    117   
        self.as_str()
   96    118   
    }
   97    119   
}
         120  +
/* ClientEnumGenerator.kt:117 */
   98    121   
impl StreamViewType {
   99    122   
    /// Parses the enum value while disallowing unknown variants.
  100    123   
    ///
  101    124   
    /// Unknown variants will result in an error.
  102    125   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
  103    126   
        match Self::from(value) {
  104    127   
            #[allow(deprecated)]
  105    128   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
  106    129   
            known => Ok(known),
  107    130   
        }
  108    131   
    }
  109    132   
}
         133  +
/* ClientEnumGenerator.kt:136 */
  110    134   
impl ::std::fmt::Display for StreamViewType {
  111    135   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  112    136   
        match self {
  113    137   
            StreamViewType::KeysOnly => write!(f, "KEYS_ONLY"),
  114    138   
            StreamViewType::NewAndOldImages => write!(f, "NEW_AND_OLD_IMAGES"),
  115    139   
            StreamViewType::NewImage => write!(f, "NEW_IMAGE"),
  116    140   
            StreamViewType::OldImage => write!(f, "OLD_IMAGE"),
  117    141   
            StreamViewType::Unknown(value) => write!(f, "{}", value),
  118    142   
        }
  119    143   
    }

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

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

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

@@ -1,1 +1131,1473 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the properties of a table.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the properties of a table.</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 TableDescription {
    7         -
    /// <p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct TableDescription {
           9  +
    /// /* StructureGenerator.kt:231 */<p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
    8     10   
    /// <p>Each <code>AttributeDefinition</code> object in this array is composed of:</p>
    9     11   
    /// <ul>
   10     12   
    /// <li>
   11     13   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
   12     14   
    /// <li>
   13     15   
    /// <p><code>AttributeType</code> - The data type for the attribute.</p></li>
   14     16   
    /// </ul>
   15     17   
    pub attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
   16         -
    /// <p>The name of the table.</p>
          18  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table.</p>
   17     19   
    pub table_name: ::std::option::Option<::std::string::String>,
   18         -
    /// <p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
          20  +
    /// /* StructureGenerator.kt:231 */<p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
   19     21   
    /// <ul>
   20     22   
    /// <li>
   21     23   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
   22     24   
    /// <li>
   23     25   
    /// <p><code>KeyType</code> - The role of the attribute:</p>
   24     26   
    /// <ul>
   25     27   
    /// <li>
   26     28   
    /// <p><code>HASH</code> - partition key</p></li>
   27     29   
    /// <li>
   28     30   
    /// <p><code>RANGE</code> - sort key</p></li>
   29     31   
    /// </ul><note>
   30     32   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
   31     33   
    /// <p>The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.</p>
   32     34   
    /// </note></li>
   33     35   
    /// </ul>
   34     36   
    /// <p>For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   35     37   
    pub key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
   36         -
    /// <p>The current state of the table:</p>
          38  +
    /// /* StructureGenerator.kt:231 */<p>The current state of the table:</p>
   37     39   
    /// <ul>
   38     40   
    /// <li>
   39     41   
    /// <p><code>CREATING</code> - The table is being created.</p></li>
   40     42   
    /// <li>
   41     43   
    /// <p><code>UPDATING</code> - The table is being updated.</p></li>
   42     44   
    /// <li>
   43     45   
    /// <p><code>DELETING</code> - The table is being deleted.</p></li>
   44     46   
    /// <li>
   45     47   
    /// <p><code>ACTIVE</code> - The table is ready for use.</p></li>
   46     48   
    /// <li>
   47     49   
    /// <p><code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.</p></li>
   48     50   
    /// <li>
   49     51   
    /// <p><code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.</p></li>
   50     52   
    /// <li>
   51     53   
    /// <p><code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.</p></li>
   52     54   
    /// </ul>
   53     55   
    pub table_status: ::std::option::Option<crate::types::TableStatus>,
   54         -
    /// <p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
          56  +
    /// /* StructureGenerator.kt:231 */<p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
   55     57   
    pub creation_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
   56         -
    /// <p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
          58  +
    /// /* StructureGenerator.kt:231 */<p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
   57     59   
    pub provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughputDescription>,
   58         -
    /// <p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
          60  +
    /// /* StructureGenerator.kt:231 */<p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
   59     61   
    pub table_size_bytes: i64,
   60         -
    /// <p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
          62  +
    /// /* StructureGenerator.kt:231 */<p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
   61     63   
    pub item_count: i64,
   62         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
          64  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
   63     65   
    pub table_arn: ::std::option::Option<::std::string::String>,
   64         -
    /// <p>Unique identifier for the table for which the backup was created.</p>
          66  +
    /// /* StructureGenerator.kt:231 */<p>Unique identifier for the table for which the backup was created.</p>
   65     67   
    pub table_id: ::std::option::Option<::std::string::String>,
   66         -
    /// <p>Contains the details for the read/write capacity mode.</p>
          68  +
    /// /* StructureGenerator.kt:231 */<p>Contains the details for the read/write capacity mode.</p>
   67     69   
    pub billing_mode_summary: ::std::option::Option<crate::types::BillingModeSummary>,
   68         -
    /// <p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
          70  +
    /// /* StructureGenerator.kt:231 */<p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
   69     71   
    /// <ul>
   70     72   
    /// <li>
   71     73   
    /// <p><code>IndexName</code> - The name of the local secondary index.</p></li>
   72     74   
    /// <li>
   73     75   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
   74     76   
    /// <li>
   75     77   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
   76     78   
    /// <ul>
   77     79   
    /// <li>
   78     80   
    /// <p><code>ProjectionType</code> - One of the following:</p>
   79     81   
    /// <ul>
   80     82   
    /// <li>
   81     83   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
   82     84   
    /// <li>
   83     85   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
   84     86   
    /// <li>
   85     87   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
   86     88   
    /// </ul></li>
   87     89   
    /// <li>
   88     90   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
   89     91   
    /// </ul></li>
   90     92   
    /// <li>
   91     93   
    /// <p><code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
   92     94   
    /// <li>
   93     95   
    /// <p><code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
   94     96   
    /// </ul>
   95     97   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
   96     98   
    pub local_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndexDescription>>,
   97         -
    /// <p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
          99  +
    /// /* StructureGenerator.kt:231 */<p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
   98    100   
    /// <ul>
   99    101   
    /// <li>
  100    102   
    /// <p><code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p>
  101    103   
    /// <p>You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p></li>
  102    104   
    /// <li>
  103    105   
    /// <p><code>IndexName</code> - The name of the global secondary index.</p></li>
  104    106   
    /// <li>
  105    107   
    /// <p><code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  106    108   
    /// <li>
  107    109   
    /// <p><code>IndexStatus</code> - The current status of the global secondary index:</p>
  108    110   
    /// <ul>
  109    111   
    /// <li>
  110    112   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
  111    113   
    /// <li>
  112    114   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
  113    115   
    /// <li>
  114    116   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
  115    117   
    /// <li>
  116    118   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
  117    119   
    /// </ul></li>
  118    120   
    /// <li>
  119    121   
    /// <p><code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  120    122   
    /// <li>
  121    123   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  122    124   
    /// <li>
  123    125   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  124    126   
    /// <ul>
  125    127   
    /// <li>
  126    128   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  127    129   
    /// <ul>
  128    130   
    /// <li>
  129    131   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  130    132   
    /// <li>
  131    133   
    /// <p><code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify.</p></li>
  132    134   
    /// <li>
  133    135   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  134    136   
    /// </ul></li>
  135    137   
    /// <li>
  136    138   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  137    139   
    /// </ul></li>
  138    140   
    /// <li>
  139    141   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.</p></li>
  140    142   
    /// </ul>
  141    143   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
  142    144   
    pub global_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexDescription>>,
  143         -
    /// <p>The current DynamoDB Streams configuration for the table.</p>
         145  +
    /// /* StructureGenerator.kt:231 */<p>The current DynamoDB Streams configuration for the table.</p>
  144    146   
    pub stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
  145         -
    /// <p>A timestamp, in ISO 8601 format, for this stream.</p>
         147  +
    /// /* StructureGenerator.kt:231 */<p>A timestamp, in ISO 8601 format, for this stream.</p>
  146    148   
    /// <p>Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:</p>
  147    149   
    /// <ul>
  148    150   
    /// <li>
  149    151   
    /// <p>AWS customer ID</p></li>
  150    152   
    /// <li>
  151    153   
    /// <p>Table name</p></li>
  152    154   
    /// <li>
  153    155   
    /// <p><code>StreamLabel</code></p></li>
  154    156   
    /// </ul>
  155    157   
    pub latest_stream_label: ::std::option::Option<::std::string::String>,
  156         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
         158  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
  157    159   
    pub latest_stream_arn: ::std::option::Option<::std::string::String>,
  158         -
    /// <p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
         160  +
    /// /* StructureGenerator.kt:231 */<p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
  159    161   
    pub global_table_version: ::std::option::Option<::std::string::String>,
  160         -
    /// <p>Represents replicas of the table.</p>
         162  +
    /// /* StructureGenerator.kt:231 */<p>Represents replicas of the table.</p>
  161    163   
    pub replicas: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaDescription>>,
  162         -
    /// <p>Contains details for the restore.</p>
         164  +
    /// /* StructureGenerator.kt:231 */<p>Contains details for the restore.</p>
  163    165   
    pub restore_summary: ::std::option::Option<crate::types::RestoreSummary>,
  164         -
    /// <p>The description of the server-side encryption status on the specified table.</p>
         166  +
    /// /* StructureGenerator.kt:231 */<p>The description of the server-side encryption status on the specified table.</p>
  165    167   
    pub sse_description: ::std::option::Option<crate::types::SseDescription>,
  166         -
    /// <p>Contains information about the table archive.</p>
         168  +
    /// /* StructureGenerator.kt:231 */<p>Contains information about the table archive.</p>
  167    169   
    pub archival_summary: ::std::option::Option<crate::types::ArchivalSummary>,
         170  +
    /* StructureGenerator.kt:201 */
  168    171   
}
         172  +
/* StructureGenerator.kt:135 */
  169    173   
impl TableDescription {
  170         -
    /// <p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
         174  +
    /// /* StructureGenerator.kt:231 */<p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
  171    175   
    /// <p>Each <code>AttributeDefinition</code> object in this array is composed of:</p>
  172    176   
    /// <ul>
  173    177   
    /// <li>
  174    178   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
  175    179   
    /// <li>
  176    180   
    /// <p><code>AttributeType</code> - The data type for the attribute.</p></li>
  177    181   
    /// </ul>
  178         -
    ///
  179         -
    /// 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()`.
         182  +
    /// /* StructureGenerator.kt:162 */
         183  +
    /// /* 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()`.
         184  +
    /* StructureGenerator.kt:166 */
  180    185   
    pub fn attribute_definitions(&self) -> &[crate::types::AttributeDefinition] {
  181         -
        self.attribute_definitions.as_deref().unwrap_or_default()
  182         -
    }
  183         -
    /// <p>The name of the table.</p>
         186  +
        /* StructureGenerator.kt:169 */
         187  +
        self.attribute_definitions
         188  +
            .as_deref()
         189  +
            /* StructureGenerator.kt:175 */
         190  +
            .unwrap_or_default()
         191  +
        /* StructureGenerator.kt:166 */
         192  +
    }
         193  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table.</p>
         194  +
    /* StructureGenerator.kt:166 */
  184    195   
    pub fn table_name(&self) -> ::std::option::Option<&str> {
         196  +
        /* StructureGenerator.kt:169 */
  185    197   
        self.table_name.as_deref()
         198  +
        /* StructureGenerator.kt:166 */
  186    199   
    }
  187         -
    /// <p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
         200  +
    /// /* StructureGenerator.kt:231 */<p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
  188    201   
    /// <ul>
  189    202   
    /// <li>
  190    203   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
  191    204   
    /// <li>
  192    205   
    /// <p><code>KeyType</code> - The role of the attribute:</p>
  193    206   
    /// <ul>
  194    207   
    /// <li>
  195    208   
    /// <p><code>HASH</code> - partition key</p></li>
  196    209   
    /// <li>
  197    210   
    /// <p><code>RANGE</code> - sort key</p></li>
  198    211   
    /// </ul><note>
  199    212   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  200    213   
    /// <p>The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.</p>
  201    214   
    /// </note></li>
  202    215   
    /// </ul>
  203    216   
    /// <p>For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
  204         -
    ///
  205         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.key_schema.is_none()`.
         217  +
    /// /* StructureGenerator.kt:162 */
         218  +
    /// /* 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 `.key_schema.is_none()`.
         219  +
    /* StructureGenerator.kt:166 */
  206    220   
    pub fn key_schema(&self) -> &[crate::types::KeySchemaElement] {
  207         -
        self.key_schema.as_deref().unwrap_or_default()
  208         -
    }
  209         -
    /// <p>The current state of the table:</p>
         221  +
        /* StructureGenerator.kt:169 */
         222  +
        self.key_schema
         223  +
            .as_deref()
         224  +
            /* StructureGenerator.kt:175 */
         225  +
            .unwrap_or_default()
         226  +
        /* StructureGenerator.kt:166 */
         227  +
    }
         228  +
    /// /* StructureGenerator.kt:231 */<p>The current state of the table:</p>
  210    229   
    /// <ul>
  211    230   
    /// <li>
  212    231   
    /// <p><code>CREATING</code> - The table is being created.</p></li>
  213    232   
    /// <li>
  214    233   
    /// <p><code>UPDATING</code> - The table is being updated.</p></li>
  215    234   
    /// <li>
  216    235   
    /// <p><code>DELETING</code> - The table is being deleted.</p></li>
  217    236   
    /// <li>
  218    237   
    /// <p><code>ACTIVE</code> - The table is ready for use.</p></li>
  219    238   
    /// <li>
  220    239   
    /// <p><code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.</p></li>
  221    240   
    /// <li>
  222    241   
    /// <p><code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.</p></li>
  223    242   
    /// <li>
  224    243   
    /// <p><code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.</p></li>
  225    244   
    /// </ul>
         245  +
    /* StructureGenerator.kt:166 */
  226    246   
    pub fn table_status(&self) -> ::std::option::Option<&crate::types::TableStatus> {
         247  +
        /* StructureGenerator.kt:170 */
  227    248   
        self.table_status.as_ref()
         249  +
        /* StructureGenerator.kt:166 */
  228    250   
    }
  229         -
    /// <p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
         251  +
    /// /* StructureGenerator.kt:231 */<p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
         252  +
    /* StructureGenerator.kt:166 */
  230    253   
    pub fn creation_date_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         254  +
        /* StructureGenerator.kt:170 */
  231    255   
        self.creation_date_time.as_ref()
         256  +
        /* StructureGenerator.kt:166 */
  232    257   
    }
  233         -
    /// <p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
         258  +
    /// /* StructureGenerator.kt:231 */<p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
         259  +
    /* StructureGenerator.kt:166 */
  234    260   
    pub fn provisioned_throughput(&self) -> ::std::option::Option<&crate::types::ProvisionedThroughputDescription> {
         261  +
        /* StructureGenerator.kt:170 */
  235    262   
        self.provisioned_throughput.as_ref()
         263  +
        /* StructureGenerator.kt:166 */
  236    264   
    }
  237         -
    /// <p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         265  +
    /// /* StructureGenerator.kt:231 */<p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         266  +
    /* StructureGenerator.kt:166 */
  238    267   
    pub fn table_size_bytes(&self) -> i64 {
         268  +
        /* StructureGenerator.kt:168 */
  239    269   
        self.table_size_bytes
         270  +
        /* StructureGenerator.kt:166 */
  240    271   
    }
  241         -
    /// <p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         272  +
    /// /* StructureGenerator.kt:231 */<p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         273  +
    /* StructureGenerator.kt:166 */
  242    274   
    pub fn item_count(&self) -> i64 {
         275  +
        /* StructureGenerator.kt:168 */
  243    276   
        self.item_count
         277  +
        /* StructureGenerator.kt:166 */
  244    278   
    }
  245         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
         279  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
         280  +
    /* StructureGenerator.kt:166 */
  246    281   
    pub fn table_arn(&self) -> ::std::option::Option<&str> {
         282  +
        /* StructureGenerator.kt:169 */
  247    283   
        self.table_arn.as_deref()
         284  +
        /* StructureGenerator.kt:166 */
  248    285   
    }
  249         -
    /// <p>Unique identifier for the table for which the backup was created.</p>
         286  +
    /// /* StructureGenerator.kt:231 */<p>Unique identifier for the table for which the backup was created.</p>
         287  +
    /* StructureGenerator.kt:166 */
  250    288   
    pub fn table_id(&self) -> ::std::option::Option<&str> {
         289  +
        /* StructureGenerator.kt:169 */
  251    290   
        self.table_id.as_deref()
         291  +
        /* StructureGenerator.kt:166 */
  252    292   
    }
  253         -
    /// <p>Contains the details for the read/write capacity mode.</p>
         293  +
    /// /* StructureGenerator.kt:231 */<p>Contains the details for the read/write capacity mode.</p>
         294  +
    /* StructureGenerator.kt:166 */
  254    295   
    pub fn billing_mode_summary(&self) -> ::std::option::Option<&crate::types::BillingModeSummary> {
         296  +
        /* StructureGenerator.kt:170 */
  255    297   
        self.billing_mode_summary.as_ref()
         298  +
        /* StructureGenerator.kt:166 */
  256    299   
    }
  257         -
    /// <p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
         300  +
    /// /* StructureGenerator.kt:231 */<p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
  258    301   
    /// <ul>
  259    302   
    /// <li>
  260    303   
    /// <p><code>IndexName</code> - The name of the local secondary index.</p></li>
  261    304   
    /// <li>
  262    305   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  263    306   
    /// <li>
  264    307   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  265    308   
    /// <ul>
  266    309   
    /// <li>
  267    310   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  268    311   
    /// <ul>
  269    312   
    /// <li>
  270    313   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  271    314   
    /// <li>
  272    315   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  273    316   
    /// <li>
  274    317   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  275    318   
    /// </ul></li>
  276    319   
    /// <li>
  277    320   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  278    321   
    /// </ul></li>
  279    322   
    /// <li>
  280    323   
    /// <p><code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  281    324   
    /// <li>
  282    325   
    /// <p><code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  283    326   
    /// </ul>
  284    327   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
  285         -
    ///
  286         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.local_secondary_indexes.is_none()`.
         328  +
    /// /* StructureGenerator.kt:162 */
         329  +
    /// /* 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 `.local_secondary_indexes.is_none()`.
         330  +
    /* StructureGenerator.kt:166 */
  287    331   
    pub fn local_secondary_indexes(&self) -> &[crate::types::LocalSecondaryIndexDescription] {
  288         -
        self.local_secondary_indexes.as_deref().unwrap_or_default()
  289         -
    }
  290         -
    /// <p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
         332  +
        /* StructureGenerator.kt:169 */
         333  +
        self.local_secondary_indexes
         334  +
            .as_deref()
         335  +
            /* StructureGenerator.kt:175 */
         336  +
            .unwrap_or_default()
         337  +
        /* StructureGenerator.kt:166 */
         338  +
    }
         339  +
    /// /* StructureGenerator.kt:231 */<p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
  291    340   
    /// <ul>
  292    341   
    /// <li>
  293    342   
    /// <p><code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p>
  294    343   
    /// <p>You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p></li>
  295    344   
    /// <li>
  296    345   
    /// <p><code>IndexName</code> - The name of the global secondary index.</p></li>
  297    346   
    /// <li>
  298    347   
    /// <p><code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  299    348   
    /// <li>
  300    349   
    /// <p><code>IndexStatus</code> - The current status of the global secondary index:</p>
  301    350   
    /// <ul>
  302    351   
    /// <li>
  303    352   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
  304    353   
    /// <li>
  305    354   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
  306    355   
    /// <li>
  307    356   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
  308    357   
    /// <li>
  309    358   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
  310    359   
    /// </ul></li>
  311    360   
    /// <li>
  312    361   
    /// <p><code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  313    362   
    /// <li>
  314    363   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  315    364   
    /// <li>
  316    365   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  317    366   
    /// <ul>
  318    367   
    /// <li>
  319    368   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  320    369   
    /// <ul>
  321    370   
    /// <li>
  322    371   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  323    372   
    /// <li>
  324    373   
    /// <p><code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify.</p></li>
  325    374   
    /// <li>
  326    375   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  327    376   
    /// </ul></li>
  328    377   
    /// <li>
  329    378   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  330    379   
    /// </ul></li>
  331    380   
    /// <li>
  332    381   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.</p></li>
  333    382   
    /// </ul>
  334    383   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
  335         -
    ///
  336         -
    /// 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_indexes.is_none()`.
         384  +
    /// /* StructureGenerator.kt:162 */
         385  +
    /// /* 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_indexes.is_none()`.
         386  +
    /* StructureGenerator.kt:166 */
  337    387   
    pub fn global_secondary_indexes(&self) -> &[crate::types::GlobalSecondaryIndexDescription] {
  338         -
        self.global_secondary_indexes.as_deref().unwrap_or_default()
  339         -
    }
  340         -
    /// <p>The current DynamoDB Streams configuration for the table.</p>
         388  +
        /* StructureGenerator.kt:169 */
         389  +
        self.global_secondary_indexes
         390  +
            .as_deref()
         391  +
            /* StructureGenerator.kt:175 */
         392  +
            .unwrap_or_default()
         393  +
        /* StructureGenerator.kt:166 */
         394  +
    }
         395  +
    /// /* StructureGenerator.kt:231 */<p>The current DynamoDB Streams configuration for the table.</p>
         396  +
    /* StructureGenerator.kt:166 */
  341    397   
    pub fn stream_specification(&self) -> ::std::option::Option<&crate::types::StreamSpecification> {
         398  +
        /* StructureGenerator.kt:170 */
  342    399   
        self.stream_specification.as_ref()
         400  +
        /* StructureGenerator.kt:166 */
  343    401   
    }
  344         -
    /// <p>A timestamp, in ISO 8601 format, for this stream.</p>
         402  +
    /// /* StructureGenerator.kt:231 */<p>A timestamp, in ISO 8601 format, for this stream.</p>
  345    403   
    /// <p>Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:</p>
  346    404   
    /// <ul>
  347    405   
    /// <li>
  348    406   
    /// <p>AWS customer ID</p></li>
  349    407   
    /// <li>
  350    408   
    /// <p>Table name</p></li>
  351    409   
    /// <li>
  352    410   
    /// <p><code>StreamLabel</code></p></li>
  353    411   
    /// </ul>
         412  +
    /* StructureGenerator.kt:166 */
  354    413   
    pub fn latest_stream_label(&self) -> ::std::option::Option<&str> {
         414  +
        /* StructureGenerator.kt:169 */
  355    415   
        self.latest_stream_label.as_deref()
         416  +
        /* StructureGenerator.kt:166 */
  356    417   
    }
  357         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
         418  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
         419  +
    /* StructureGenerator.kt:166 */
  358    420   
    pub fn latest_stream_arn(&self) -> ::std::option::Option<&str> {
         421  +
        /* StructureGenerator.kt:169 */
  359    422   
        self.latest_stream_arn.as_deref()
         423  +
        /* StructureGenerator.kt:166 */
  360    424   
    }
  361         -
    /// <p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
         425  +
    /// /* StructureGenerator.kt:231 */<p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
         426  +
    /* StructureGenerator.kt:166 */
  362    427   
    pub fn global_table_version(&self) -> ::std::option::Option<&str> {
         428  +
        /* StructureGenerator.kt:169 */
  363    429   
        self.global_table_version.as_deref()
         430  +
        /* StructureGenerator.kt:166 */
  364    431   
    }
  365         -
    /// <p>Represents replicas of the table.</p>
  366         -
    ///
  367         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.replicas.is_none()`.
         432  +
    /// /* StructureGenerator.kt:231 */<p>Represents replicas of the table.</p>
         433  +
    /// /* StructureGenerator.kt:162 */
         434  +
    /// /* 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 `.replicas.is_none()`.
         435  +
    /* StructureGenerator.kt:166 */
  368    436   
    pub fn replicas(&self) -> &[crate::types::ReplicaDescription] {
  369         -
        self.replicas.as_deref().unwrap_or_default()
  370         -
    }
  371         -
    /// <p>Contains details for the restore.</p>
         437  +
        /* StructureGenerator.kt:169 */
         438  +
        self.replicas
         439  +
            .as_deref()
         440  +
            /* StructureGenerator.kt:175 */
         441  +
            .unwrap_or_default()
         442  +
        /* StructureGenerator.kt:166 */
         443  +
    }
         444  +
    /// /* StructureGenerator.kt:231 */<p>Contains details for the restore.</p>
         445  +
    /* StructureGenerator.kt:166 */
  372    446   
    pub fn restore_summary(&self) -> ::std::option::Option<&crate::types::RestoreSummary> {
         447  +
        /* StructureGenerator.kt:170 */
  373    448   
        self.restore_summary.as_ref()
         449  +
        /* StructureGenerator.kt:166 */
  374    450   
    }
  375         -
    /// <p>The description of the server-side encryption status on the specified table.</p>
         451  +
    /// /* StructureGenerator.kt:231 */<p>The description of the server-side encryption status on the specified table.</p>
         452  +
    /* StructureGenerator.kt:166 */
  376    453   
    pub fn sse_description(&self) -> ::std::option::Option<&crate::types::SseDescription> {
         454  +
        /* StructureGenerator.kt:170 */
  377    455   
        self.sse_description.as_ref()
         456  +
        /* StructureGenerator.kt:166 */
  378    457   
    }
  379         -
    /// <p>Contains information about the table archive.</p>
         458  +
    /// /* StructureGenerator.kt:231 */<p>Contains information about the table archive.</p>
         459  +
    /* StructureGenerator.kt:166 */
  380    460   
    pub fn archival_summary(&self) -> ::std::option::Option<&crate::types::ArchivalSummary> {
         461  +
        /* StructureGenerator.kt:170 */
  381    462   
        self.archival_summary.as_ref()
         463  +
        /* StructureGenerator.kt:166 */
  382    464   
    }
         465  +
    /* StructureGenerator.kt:135 */
  383    466   
}
         467  +
/* ClientCodegenVisitor.kt:237 */
  384    468   
impl TableDescription {
  385         -
    /// Creates a new builder-style object to manufacture [`TableDescription`](crate::types::TableDescription).
         469  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`TableDescription`](crate::types::TableDescription).
         470  +
    /* BuilderGenerator.kt:175 */
  386    471   
    pub fn builder() -> crate::types::builders::TableDescriptionBuilder {
         472  +
        /* BuilderGenerator.kt:176 */
  387    473   
        crate::types::builders::TableDescriptionBuilder::default()
         474  +
        /* BuilderGenerator.kt:175 */
  388    475   
    }
         476  +
    /* ClientCodegenVisitor.kt:237 */
  389    477   
}
  390    478   
  391         -
/// A builder for [`TableDescription`](crate::types::TableDescription).
         479  +
/// /* BuilderGenerator.kt:342 */A builder for [`TableDescription`](crate::types::TableDescription).
         480  +
/* RustType.kt:516 */
  392    481   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         482  +
/* RustType.kt:516 */
  393    483   
#[non_exhaustive]
         484  +
/* BuilderGenerator.kt:345 */
  394    485   
pub struct TableDescriptionBuilder {
  395         -
    pub(crate) attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
  396         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
  397         -
    pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
  398         -
    pub(crate) table_status: ::std::option::Option<crate::types::TableStatus>,
  399         -
    pub(crate) creation_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
  400         -
    pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughputDescription>,
  401         -
    pub(crate) table_size_bytes: ::std::option::Option<i64>,
  402         -
    pub(crate) item_count: ::std::option::Option<i64>,
  403         -
    pub(crate) table_arn: ::std::option::Option<::std::string::String>,
  404         -
    pub(crate) table_id: ::std::option::Option<::std::string::String>,
  405         -
    pub(crate) billing_mode_summary: ::std::option::Option<crate::types::BillingModeSummary>,
         486  +
    /* BuilderGenerator.kt:275 */ pub(crate) attribute_definitions: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>,
         487  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_name: ::std::option::Option<::std::string::String>,
         488  +
    /* BuilderGenerator.kt:275 */ pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
         489  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_status: ::std::option::Option<crate::types::TableStatus>,
         490  +
    /* BuilderGenerator.kt:275 */ pub(crate) creation_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         491  +
    /* BuilderGenerator.kt:275 */ pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughputDescription>,
         492  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_size_bytes: ::std::option::Option<i64>,
         493  +
    /* BuilderGenerator.kt:275 */ pub(crate) item_count: ::std::option::Option<i64>,
         494  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_arn: ::std::option::Option<::std::string::String>,
         495  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_id: ::std::option::Option<::std::string::String>,
         496  +
    /* BuilderGenerator.kt:275 */ pub(crate) billing_mode_summary: ::std::option::Option<crate::types::BillingModeSummary>,
         497  +
    /* BuilderGenerator.kt:275 */
  406    498   
    pub(crate) local_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndexDescription>>,
         499  +
    /* BuilderGenerator.kt:275 */
  407    500   
    pub(crate) global_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexDescription>>,
  408         -
    pub(crate) stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
  409         -
    pub(crate) latest_stream_label: ::std::option::Option<::std::string::String>,
  410         -
    pub(crate) latest_stream_arn: ::std::option::Option<::std::string::String>,
  411         -
    pub(crate) global_table_version: ::std::option::Option<::std::string::String>,
  412         -
    pub(crate) replicas: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaDescription>>,
  413         -
    pub(crate) restore_summary: ::std::option::Option<crate::types::RestoreSummary>,
  414         -
    pub(crate) sse_description: ::std::option::Option<crate::types::SseDescription>,
         501  +
    /* BuilderGenerator.kt:275 */ pub(crate) stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
         502  +
    /* BuilderGenerator.kt:275 */ pub(crate) latest_stream_label: ::std::option::Option<::std::string::String>,
         503  +
    /* BuilderGenerator.kt:275 */ pub(crate) latest_stream_arn: ::std::option::Option<::std::string::String>,
         504  +
    /* BuilderGenerator.kt:275 */ pub(crate) global_table_version: ::std::option::Option<::std::string::String>,
         505  +
    /* BuilderGenerator.kt:275 */ pub(crate) replicas: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaDescription>>,
         506  +
    /* BuilderGenerator.kt:275 */ pub(crate) restore_summary: ::std::option::Option<crate::types::RestoreSummary>,
         507  +
    /* BuilderGenerator.kt:275 */ pub(crate) sse_description: ::std::option::Option<crate::types::SseDescription>,
         508  +
    /* BuilderGenerator.kt:275 */
  415    509   
    pub(crate) archival_summary: ::std::option::Option<crate::types::ArchivalSummary>,
         510  +
    /* BuilderGenerator.kt:345 */
  416    511   
}
         512  +
/* BuilderGenerator.kt:355 */
  417    513   
impl TableDescriptionBuilder {
  418         -
    /// Appends an item to `attribute_definitions`.
         514  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `attribute_definitions`.
         515  +
    /* BuilderGenerator.kt:411 */
  419    516   
    ///
  420         -
    /// To override the contents of this collection use [`set_attribute_definitions`](Self::set_attribute_definitions).
         517  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_attribute_definitions`](Self::set_attribute_definitions).
         518  +
    /* BuilderGenerator.kt:413 */
  421    519   
    ///
  422         -
    /// <p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
         520  +
    /// /* BuilderGenerator.kt:414 */<p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
  423    521   
    /// <p>Each <code>AttributeDefinition</code> object in this array is composed of:</p>
  424    522   
    /// <ul>
  425    523   
    /// <li>
  426    524   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
  427    525   
    /// <li>
  428    526   
    /// <p><code>AttributeType</code> - The data type for the attribute.</p></li>
  429    527   
    /// </ul>
         528  +
    /* BuilderGenerator.kt:418 */
  430    529   
    pub fn attribute_definitions(mut self, input: crate::types::AttributeDefinition) -> Self {
         530  +
        /* BuilderGenerator.kt:419 */
  431    531   
        let mut v = self.attribute_definitions.unwrap_or_default();
  432    532   
        v.push(input);
  433    533   
        self.attribute_definitions = ::std::option::Option::Some(v);
  434    534   
        self
         535  +
        /* BuilderGenerator.kt:418 */
  435    536   
    }
  436         -
    /// <p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
         537  +
    /// /* BuilderGenerator.kt:312 */<p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
  437    538   
    /// <p>Each <code>AttributeDefinition</code> object in this array is composed of:</p>
  438    539   
    /// <ul>
  439    540   
    /// <li>
  440    541   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
  441    542   
    /// <li>
  442    543   
    /// <p><code>AttributeType</code> - The data type for the attribute.</p></li>
  443    544   
    /// </ul>
         545  +
    /* BuilderGenerator.kt:314 */
  444    546   
    pub fn set_attribute_definitions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>>) -> Self {
         547  +
        /* BuilderGenerator.kt:315 */
  445    548   
        self.attribute_definitions = input;
  446    549   
        self
         550  +
        /* BuilderGenerator.kt:314 */
  447    551   
    }
  448         -
    /// <p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
         552  +
    /// /* BuilderGenerator.kt:334 */<p>An array of <code>AttributeDefinition</code> objects. Each of these objects describes one attribute in the table and index key schema.</p>
  449    553   
    /// <p>Each <code>AttributeDefinition</code> object in this array is composed of:</p>
  450    554   
    /// <ul>
  451    555   
    /// <li>
  452    556   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
  453    557   
    /// <li>
  454    558   
    /// <p><code>AttributeType</code> - The data type for the attribute.</p></li>
  455    559   
    /// </ul>
         560  +
    /* BuilderGenerator.kt:336 */
  456    561   
    pub fn get_attribute_definitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AttributeDefinition>> {
         562  +
        /* BuilderGenerator.kt:337 */
  457    563   
        &self.attribute_definitions
         564  +
        /* BuilderGenerator.kt:336 */
  458    565   
    }
  459         -
    /// <p>The name of the table.</p>
         566  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the table.</p>
         567  +
    /* BuilderGenerator.kt:291 */
  460    568   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         569  +
        /* BuilderGenerator.kt:292 */
  461    570   
        self.table_name = ::std::option::Option::Some(input.into());
         571  +
        /* BuilderGenerator.kt:293 */
  462    572   
        self
         573  +
        /* BuilderGenerator.kt:291 */
  463    574   
    }
  464         -
    /// <p>The name of the table.</p>
         575  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the table.</p>
         576  +
    /* BuilderGenerator.kt:314 */
  465    577   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         578  +
        /* BuilderGenerator.kt:315 */
  466    579   
        self.table_name = input;
  467    580   
        self
         581  +
        /* BuilderGenerator.kt:314 */
  468    582   
    }
  469         -
    /// <p>The name of the table.</p>
         583  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the table.</p>
         584  +
    /* BuilderGenerator.kt:336 */
  470    585   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
         586  +
        /* BuilderGenerator.kt:337 */
  471    587   
        &self.table_name
         588  +
        /* BuilderGenerator.kt:336 */
  472    589   
    }
  473         -
    /// Appends an item to `key_schema`.
         590  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `key_schema`.
         591  +
    /* BuilderGenerator.kt:411 */
  474    592   
    ///
  475         -
    /// To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
         593  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
         594  +
    /* BuilderGenerator.kt:413 */
  476    595   
    ///
  477         -
    /// <p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
         596  +
    /// /* BuilderGenerator.kt:414 */<p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
  478    597   
    /// <ul>
  479    598   
    /// <li>
  480    599   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
  481    600   
    /// <li>
  482    601   
    /// <p><code>KeyType</code> - The role of the attribute:</p>
  483    602   
    /// <ul>
  484    603   
    /// <li>
  485    604   
    /// <p><code>HASH</code> - partition key</p></li>
  486    605   
    /// <li>
  487    606   
    /// <p><code>RANGE</code> - sort key</p></li>
  488    607   
    /// </ul><note>
  489    608   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  490    609   
    /// <p>The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.</p>
  491    610   
    /// </note></li>
  492    611   
    /// </ul>
  493    612   
    /// <p>For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         613  +
    /* BuilderGenerator.kt:418 */
  494    614   
    pub fn key_schema(mut self, input: crate::types::KeySchemaElement) -> Self {
         615  +
        /* BuilderGenerator.kt:419 */
  495    616   
        let mut v = self.key_schema.unwrap_or_default();
  496    617   
        v.push(input);
  497    618   
        self.key_schema = ::std::option::Option::Some(v);
  498    619   
        self
         620  +
        /* BuilderGenerator.kt:418 */
  499    621   
    }
  500         -
    /// <p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
         622  +
    /// /* BuilderGenerator.kt:312 */<p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
  501    623   
    /// <ul>
  502    624   
    /// <li>
  503    625   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
  504    626   
    /// <li>
  505    627   
    /// <p><code>KeyType</code> - The role of the attribute:</p>
  506    628   
    /// <ul>
  507    629   
    /// <li>
  508    630   
    /// <p><code>HASH</code> - partition key</p></li>
  509    631   
    /// <li>
  510    632   
    /// <p><code>RANGE</code> - sort key</p></li>
  511    633   
    /// </ul><note>
  512    634   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  513    635   
    /// <p>The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.</p>
  514    636   
    /// </note></li>
  515    637   
    /// </ul>
  516    638   
    /// <p>For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         639  +
    /* BuilderGenerator.kt:314 */
  517    640   
    pub fn set_key_schema(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>) -> Self {
         641  +
        /* BuilderGenerator.kt:315 */
  518    642   
        self.key_schema = input;
  519    643   
        self
         644  +
        /* BuilderGenerator.kt:314 */
  520    645   
    }
  521         -
    /// <p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
         646  +
    /// /* BuilderGenerator.kt:334 */<p>The primary key structure for the table. Each <code>KeySchemaElement</code> consists of:</p>
  522    647   
    /// <ul>
  523    648   
    /// <li>
  524    649   
    /// <p><code>AttributeName</code> - The name of the attribute.</p></li>
  525    650   
    /// <li>
  526    651   
    /// <p><code>KeyType</code> - The role of the attribute:</p>
  527    652   
    /// <ul>
  528    653   
    /// <li>
  529    654   
    /// <p><code>HASH</code> - partition key</p></li>
  530    655   
    /// <li>
  531    656   
    /// <p><code>RANGE</code> - sort key</p></li>
  532    657   
    /// </ul><note>
  533    658   
    /// <p>The partition key of an item is also known as its <i>hash attribute</i>. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.</p>
  534    659   
    /// <p>The sort key of an item is also known as its <i>range attribute</i>. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.</p>
  535    660   
    /// </note></li>
  536    661   
    /// </ul>
  537    662   
    /// <p>For more information about primary keys, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModelPrimaryKey">Primary Key</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         663  +
    /* BuilderGenerator.kt:336 */
  538    664   
    pub fn get_key_schema(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>> {
         665  +
        /* BuilderGenerator.kt:337 */
  539    666   
        &self.key_schema
         667  +
        /* BuilderGenerator.kt:336 */
  540    668   
    }
  541         -
    /// <p>The current state of the table:</p>
         669  +
    /// /* BuilderGenerator.kt:286 */<p>The current state of the table:</p>
  542    670   
    /// <ul>
  543    671   
    /// <li>
  544    672   
    /// <p><code>CREATING</code> - The table is being created.</p></li>
  545    673   
    /// <li>
  546    674   
    /// <p><code>UPDATING</code> - The table is being updated.</p></li>
  547    675   
    /// <li>
  548    676   
    /// <p><code>DELETING</code> - The table is being deleted.</p></li>
  549    677   
    /// <li>
  550    678   
    /// <p><code>ACTIVE</code> - The table is ready for use.</p></li>
  551    679   
    /// <li>
  552    680   
    /// <p><code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.</p></li>
  553    681   
    /// <li>
  554    682   
    /// <p><code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.</p></li>
  555    683   
    /// <li>
  556    684   
    /// <p><code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.</p></li>
  557    685   
    /// </ul>
         686  +
    /* BuilderGenerator.kt:291 */
  558    687   
    pub fn table_status(mut self, input: crate::types::TableStatus) -> Self {
         688  +
        /* BuilderGenerator.kt:292 */
  559    689   
        self.table_status = ::std::option::Option::Some(input);
         690  +
        /* BuilderGenerator.kt:293 */
  560    691   
        self
         692  +
        /* BuilderGenerator.kt:291 */
  561    693   
    }
  562         -
    /// <p>The current state of the table:</p>
         694  +
    /// /* BuilderGenerator.kt:312 */<p>The current state of the table:</p>
  563    695   
    /// <ul>
  564    696   
    /// <li>
  565    697   
    /// <p><code>CREATING</code> - The table is being created.</p></li>
  566    698   
    /// <li>
  567    699   
    /// <p><code>UPDATING</code> - The table is being updated.</p></li>
  568    700   
    /// <li>
  569    701   
    /// <p><code>DELETING</code> - The table is being deleted.</p></li>
  570    702   
    /// <li>
  571    703   
    /// <p><code>ACTIVE</code> - The table is ready for use.</p></li>
  572    704   
    /// <li>
  573    705   
    /// <p><code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.</p></li>
  574    706   
    /// <li>
  575    707   
    /// <p><code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.</p></li>
  576    708   
    /// <li>
  577    709   
    /// <p><code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.</p></li>
  578    710   
    /// </ul>
         711  +
    /* BuilderGenerator.kt:314 */
  579    712   
    pub fn set_table_status(mut self, input: ::std::option::Option<crate::types::TableStatus>) -> Self {
         713  +
        /* BuilderGenerator.kt:315 */
  580    714   
        self.table_status = input;
  581    715   
        self
         716  +
        /* BuilderGenerator.kt:314 */
  582    717   
    }
  583         -
    /// <p>The current state of the table:</p>
         718  +
    /// /* BuilderGenerator.kt:334 */<p>The current state of the table:</p>
  584    719   
    /// <ul>
  585    720   
    /// <li>
  586    721   
    /// <p><code>CREATING</code> - The table is being created.</p></li>
  587    722   
    /// <li>
  588    723   
    /// <p><code>UPDATING</code> - The table is being updated.</p></li>
  589    724   
    /// <li>
  590    725   
    /// <p><code>DELETING</code> - The table is being deleted.</p></li>
  591    726   
    /// <li>
  592    727   
    /// <p><code>ACTIVE</code> - The table is ready for use.</p></li>
  593    728   
    /// <li>
  594    729   
    /// <p><code>INACCESSIBLE_ENCRYPTION_CREDENTIALS</code> - The AWS KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the AWS KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS key remains inaccessible for more than seven days.</p></li>
  595    730   
    /// <li>
  596    731   
    /// <p><code>ARCHIVING</code> - The table is being archived. Operations are not allowed until archival is complete.</p></li>
  597    732   
    /// <li>
  598    733   
    /// <p><code>ARCHIVED</code> - The table has been archived. See the ArchivalReason for more information.</p></li>
  599    734   
    /// </ul>
         735  +
    /* BuilderGenerator.kt:336 */
  600    736   
    pub fn get_table_status(&self) -> &::std::option::Option<crate::types::TableStatus> {
         737  +
        /* BuilderGenerator.kt:337 */
  601    738   
        &self.table_status
         739  +
        /* BuilderGenerator.kt:336 */
  602    740   
    }
  603         -
    /// <p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
         741  +
    /// /* BuilderGenerator.kt:286 */<p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
         742  +
    /* BuilderGenerator.kt:291 */
  604    743   
    pub fn creation_date_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         744  +
        /* BuilderGenerator.kt:292 */
  605    745   
        self.creation_date_time = ::std::option::Option::Some(input);
         746  +
        /* BuilderGenerator.kt:293 */
  606    747   
        self
         748  +
        /* BuilderGenerator.kt:291 */
  607    749   
    }
  608         -
    /// <p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
         750  +
    /// /* BuilderGenerator.kt:312 */<p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
         751  +
    /* BuilderGenerator.kt:314 */
  609    752   
    pub fn set_creation_date_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         753  +
        /* BuilderGenerator.kt:315 */
  610    754   
        self.creation_date_time = input;
  611    755   
        self
         756  +
        /* BuilderGenerator.kt:314 */
  612    757   
    }
  613         -
    /// <p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
         758  +
    /// /* BuilderGenerator.kt:334 */<p>The date and time when the table was created, in <a href="http://www.epochconverter.com/">UNIX epoch time</a> format.</p>
         759  +
    /* BuilderGenerator.kt:336 */
  614    760   
    pub fn get_creation_date_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         761  +
        /* BuilderGenerator.kt:337 */
  615    762   
        &self.creation_date_time
         763  +
        /* BuilderGenerator.kt:336 */
  616    764   
    }
  617         -
    /// <p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
         765  +
    /// /* BuilderGenerator.kt:286 */<p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
         766  +
    /* BuilderGenerator.kt:291 */
  618    767   
    pub fn provisioned_throughput(mut self, input: crate::types::ProvisionedThroughputDescription) -> Self {
         768  +
        /* BuilderGenerator.kt:292 */
  619    769   
        self.provisioned_throughput = ::std::option::Option::Some(input);
         770  +
        /* BuilderGenerator.kt:293 */
  620    771   
        self
         772  +
        /* BuilderGenerator.kt:291 */
  621    773   
    }
  622         -
    /// <p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
         774  +
    /// /* BuilderGenerator.kt:312 */<p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
         775  +
    /* BuilderGenerator.kt:314 */
  623    776   
    pub fn set_provisioned_throughput(mut self, input: ::std::option::Option<crate::types::ProvisionedThroughputDescription>) -> Self {
         777  +
        /* BuilderGenerator.kt:315 */
  624    778   
        self.provisioned_throughput = input;
  625    779   
        self
         780  +
        /* BuilderGenerator.kt:314 */
  626    781   
    }
  627         -
    /// <p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
         782  +
    /// /* BuilderGenerator.kt:334 */<p>The provisioned throughput settings for the table, consisting of read and write capacity units, along with data about increases and decreases.</p>
         783  +
    /* BuilderGenerator.kt:336 */
  628    784   
    pub fn get_provisioned_throughput(&self) -> &::std::option::Option<crate::types::ProvisionedThroughputDescription> {
         785  +
        /* BuilderGenerator.kt:337 */
  629    786   
        &self.provisioned_throughput
         787  +
        /* BuilderGenerator.kt:336 */
  630    788   
    }
  631         -
    /// <p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         789  +
    /// /* BuilderGenerator.kt:286 */<p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         790  +
    /* BuilderGenerator.kt:291 */
  632    791   
    pub fn table_size_bytes(mut self, input: i64) -> Self {
         792  +
        /* BuilderGenerator.kt:292 */
  633    793   
        self.table_size_bytes = ::std::option::Option::Some(input);
         794  +
        /* BuilderGenerator.kt:293 */
  634    795   
        self
         796  +
        /* BuilderGenerator.kt:291 */
  635    797   
    }
  636         -
    /// <p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         798  +
    /// /* BuilderGenerator.kt:312 */<p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         799  +
    /* BuilderGenerator.kt:314 */
  637    800   
    pub fn set_table_size_bytes(mut self, input: ::std::option::Option<i64>) -> Self {
         801  +
        /* BuilderGenerator.kt:315 */
  638    802   
        self.table_size_bytes = input;
  639    803   
        self
         804  +
        /* BuilderGenerator.kt:314 */
  640    805   
    }
  641         -
    /// <p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         806  +
    /// /* BuilderGenerator.kt:334 */<p>The total size of the specified table, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         807  +
    /* BuilderGenerator.kt:336 */
  642    808   
    pub fn get_table_size_bytes(&self) -> &::std::option::Option<i64> {
         809  +
        /* BuilderGenerator.kt:337 */
  643    810   
        &self.table_size_bytes
         811  +
        /* BuilderGenerator.kt:336 */
  644    812   
    }
  645         -
    /// <p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         813  +
    /// /* BuilderGenerator.kt:286 */<p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         814  +
    /* BuilderGenerator.kt:291 */
  646    815   
    pub fn item_count(mut self, input: i64) -> Self {
         816  +
        /* BuilderGenerator.kt:292 */
  647    817   
        self.item_count = ::std::option::Option::Some(input);
         818  +
        /* BuilderGenerator.kt:293 */
  648    819   
        self
         820  +
        /* BuilderGenerator.kt:291 */
  649    821   
    }
  650         -
    /// <p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         822  +
    /// /* BuilderGenerator.kt:312 */<p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         823  +
    /* BuilderGenerator.kt:314 */
  651    824   
    pub fn set_item_count(mut self, input: ::std::option::Option<i64>) -> Self {
         825  +
        /* BuilderGenerator.kt:315 */
  652    826   
        self.item_count = input;
  653    827   
        self
         828  +
        /* BuilderGenerator.kt:314 */
  654    829   
    }
  655         -
    /// <p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         830  +
    /// /* BuilderGenerator.kt:334 */<p>The number of items in the specified table. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         831  +
    /* BuilderGenerator.kt:336 */
  656    832   
    pub fn get_item_count(&self) -> &::std::option::Option<i64> {
         833  +
        /* BuilderGenerator.kt:337 */
  657    834   
        &self.item_count
         835  +
        /* BuilderGenerator.kt:336 */
  658    836   
    }
  659         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
         837  +
    /// /* BuilderGenerator.kt:286 */<p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
         838  +
    /* BuilderGenerator.kt:291 */
  660    839   
    pub fn table_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         840  +
        /* BuilderGenerator.kt:292 */
  661    841   
        self.table_arn = ::std::option::Option::Some(input.into());
         842  +
        /* BuilderGenerator.kt:293 */
  662    843   
        self
         844  +
        /* BuilderGenerator.kt:291 */
  663    845   
    }
  664         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
         846  +
    /// /* BuilderGenerator.kt:312 */<p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
         847  +
    /* BuilderGenerator.kt:314 */
  665    848   
    pub fn set_table_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         849  +
        /* BuilderGenerator.kt:315 */
  666    850   
        self.table_arn = input;
  667    851   
        self
         852  +
        /* BuilderGenerator.kt:314 */
  668    853   
    }
  669         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
         854  +
    /// /* BuilderGenerator.kt:334 */<p>The Amazon Resource Name (ARN) that uniquely identifies the table.</p>
         855  +
    /* BuilderGenerator.kt:336 */
  670    856   
    pub fn get_table_arn(&self) -> &::std::option::Option<::std::string::String> {
         857  +
        /* BuilderGenerator.kt:337 */
  671    858   
        &self.table_arn
         859  +
        /* BuilderGenerator.kt:336 */
  672    860   
    }
  673         -
    /// <p>Unique identifier for the table for which the backup was created.</p>
         861  +
    /// /* BuilderGenerator.kt:286 */<p>Unique identifier for the table for which the backup was created.</p>
         862  +
    /* BuilderGenerator.kt:291 */
  674    863   
    pub fn table_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         864  +
        /* BuilderGenerator.kt:292 */
  675    865   
        self.table_id = ::std::option::Option::Some(input.into());
         866  +
        /* BuilderGenerator.kt:293 */
  676    867   
        self
         868  +
        /* BuilderGenerator.kt:291 */
  677    869   
    }
  678         -
    /// <p>Unique identifier for the table for which the backup was created.</p>
         870  +
    /// /* BuilderGenerator.kt:312 */<p>Unique identifier for the table for which the backup was created.</p>
         871  +
    /* BuilderGenerator.kt:314 */
  679    872   
    pub fn set_table_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         873  +
        /* BuilderGenerator.kt:315 */
  680    874   
        self.table_id = input;
  681    875   
        self
         876  +
        /* BuilderGenerator.kt:314 */
  682    877   
    }
  683         -
    /// <p>Unique identifier for the table for which the backup was created.</p>
         878  +
    /// /* BuilderGenerator.kt:334 */<p>Unique identifier for the table for which the backup was created.</p>
         879  +
    /* BuilderGenerator.kt:336 */
  684    880   
    pub fn get_table_id(&self) -> &::std::option::Option<::std::string::String> {
         881  +
        /* BuilderGenerator.kt:337 */
  685    882   
        &self.table_id
         883  +
        /* BuilderGenerator.kt:336 */
  686    884   
    }
  687         -
    /// <p>Contains the details for the read/write capacity mode.</p>
         885  +
    /// /* BuilderGenerator.kt:286 */<p>Contains the details for the read/write capacity mode.</p>
         886  +
    /* BuilderGenerator.kt:291 */
  688    887   
    pub fn billing_mode_summary(mut self, input: crate::types::BillingModeSummary) -> Self {
         888  +
        /* BuilderGenerator.kt:292 */
  689    889   
        self.billing_mode_summary = ::std::option::Option::Some(input);
         890  +
        /* BuilderGenerator.kt:293 */
  690    891   
        self
         892  +
        /* BuilderGenerator.kt:291 */
  691    893   
    }
  692         -
    /// <p>Contains the details for the read/write capacity mode.</p>
         894  +
    /// /* BuilderGenerator.kt:312 */<p>Contains the details for the read/write capacity mode.</p>
         895  +
    /* BuilderGenerator.kt:314 */
  693    896   
    pub fn set_billing_mode_summary(mut self, input: ::std::option::Option<crate::types::BillingModeSummary>) -> Self {
         897  +
        /* BuilderGenerator.kt:315 */
  694    898   
        self.billing_mode_summary = input;
  695    899   
        self
         900  +
        /* BuilderGenerator.kt:314 */
  696    901   
    }
  697         -
    /// <p>Contains the details for the read/write capacity mode.</p>
         902  +
    /// /* BuilderGenerator.kt:334 */<p>Contains the details for the read/write capacity mode.</p>
         903  +
    /* BuilderGenerator.kt:336 */
  698    904   
    pub fn get_billing_mode_summary(&self) -> &::std::option::Option<crate::types::BillingModeSummary> {
         905  +
        /* BuilderGenerator.kt:337 */
  699    906   
        &self.billing_mode_summary
         907  +
        /* BuilderGenerator.kt:336 */
  700    908   
    }
  701         -
    /// Appends an item to `local_secondary_indexes`.
         909  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `local_secondary_indexes`.
         910  +
    /* BuilderGenerator.kt:411 */
  702    911   
    ///
  703         -
    /// To override the contents of this collection use [`set_local_secondary_indexes`](Self::set_local_secondary_indexes).
         912  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_local_secondary_indexes`](Self::set_local_secondary_indexes).
         913  +
    /* BuilderGenerator.kt:413 */
  704    914   
    ///
  705         -
    /// <p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
         915  +
    /// /* BuilderGenerator.kt:414 */<p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
  706    916   
    /// <ul>
  707    917   
    /// <li>
  708    918   
    /// <p><code>IndexName</code> - The name of the local secondary index.</p></li>
  709    919   
    /// <li>
  710    920   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  711    921   
    /// <li>
  712    922   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  713    923   
    /// <ul>
  714    924   
    /// <li>
  715    925   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  716    926   
    /// <ul>
  717    927   
    /// <li>
  718    928   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  719    929   
    /// <li>
  720    930   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  721    931   
    /// <li>
  722    932   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  723    933   
    /// </ul></li>
  724    934   
    /// <li>
  725    935   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  726    936   
    /// </ul></li>
  727    937   
    /// <li>
  728    938   
    /// <p><code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  729    939   
    /// <li>
  730    940   
    /// <p><code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  731    941   
    /// </ul>
  732    942   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
         943  +
    /* BuilderGenerator.kt:418 */
  733    944   
    pub fn local_secondary_indexes(mut self, input: crate::types::LocalSecondaryIndexDescription) -> Self {
         945  +
        /* BuilderGenerator.kt:419 */
  734    946   
        let mut v = self.local_secondary_indexes.unwrap_or_default();
  735    947   
        v.push(input);
  736    948   
        self.local_secondary_indexes = ::std::option::Option::Some(v);
  737    949   
        self
         950  +
        /* BuilderGenerator.kt:418 */
  738    951   
    }
  739         -
    /// <p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
         952  +
    /// /* BuilderGenerator.kt:312 */<p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
  740    953   
    /// <ul>
  741    954   
    /// <li>
  742    955   
    /// <p><code>IndexName</code> - The name of the local secondary index.</p></li>
  743    956   
    /// <li>
  744    957   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  745    958   
    /// <li>
  746    959   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  747    960   
    /// <ul>
  748    961   
    /// <li>
  749    962   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  750    963   
    /// <ul>
  751    964   
    /// <li>
  752    965   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  753    966   
    /// <li>
  754    967   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  755    968   
    /// <li>
  756    969   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  757    970   
    /// </ul></li>
  758    971   
    /// <li>
  759    972   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  760    973   
    /// </ul></li>
  761    974   
    /// <li>
  762    975   
    /// <p><code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  763    976   
    /// <li>
  764    977   
    /// <p><code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  765    978   
    /// </ul>
  766    979   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
         980  +
    /* BuilderGenerator.kt:314 */
  767    981   
    pub fn set_local_secondary_indexes(
  768    982   
        mut self,
  769    983   
        input: ::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndexDescription>>,
  770    984   
    ) -> Self {
         985  +
        /* BuilderGenerator.kt:315 */
  771    986   
        self.local_secondary_indexes = input;
  772    987   
        self
         988  +
        /* BuilderGenerator.kt:314 */
  773    989   
    }
  774         -
    /// <p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
         990  +
    /// /* BuilderGenerator.kt:334 */<p>Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:</p>
  775    991   
    /// <ul>
  776    992   
    /// <li>
  777    993   
    /// <p><code>IndexName</code> - The name of the local secondary index.</p></li>
  778    994   
    /// <li>
  779    995   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  780    996   
    /// <li>
  781    997   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  782    998   
    /// <ul>
  783    999   
    /// <li>
  784   1000   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  785   1001   
    /// <ul>
  786   1002   
    /// <li>
  787   1003   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  788   1004   
    /// <li>
  789   1005   
    /// <p><code>INCLUDE</code> - Only the specified table attributes are projected into the index. The list of projected attributes is in <code>NonKeyAttributes</code>.</p></li>
  790   1006   
    /// <li>
  791   1007   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  792   1008   
    /// </ul></li>
  793   1009   
    /// <li>
  794   1010   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  795   1011   
    /// </ul></li>
  796   1012   
    /// <li>
  797   1013   
    /// <p><code>IndexSizeBytes</code> - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  798   1014   
    /// <li>
  799   1015   
    /// <p><code>ItemCount</code> - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  800   1016   
    /// </ul>
  801   1017   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
        1018  +
    /* BuilderGenerator.kt:336 */
  802   1019   
    pub fn get_local_secondary_indexes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndexDescription>> {
        1020  +
        /* BuilderGenerator.kt:337 */
  803   1021   
        &self.local_secondary_indexes
        1022  +
        /* BuilderGenerator.kt:336 */
  804   1023   
    }
  805         -
    /// Appends an item to `global_secondary_indexes`.
        1024  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `global_secondary_indexes`.
        1025  +
    /* BuilderGenerator.kt:411 */
  806   1026   
    ///
  807         -
    /// To override the contents of this collection use [`set_global_secondary_indexes`](Self::set_global_secondary_indexes).
        1027  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_global_secondary_indexes`](Self::set_global_secondary_indexes).
        1028  +
    /* BuilderGenerator.kt:413 */
  808   1029   
    ///
  809         -
    /// <p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
        1030  +
    /// /* BuilderGenerator.kt:414 */<p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
  810   1031   
    /// <ul>
  811   1032   
    /// <li>
  812   1033   
    /// <p><code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p>
  813   1034   
    /// <p>You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p></li>
  814   1035   
    /// <li>
  815   1036   
    /// <p><code>IndexName</code> - The name of the global secondary index.</p></li>
  816   1037   
    /// <li>
  817   1038   
    /// <p><code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  818   1039   
    /// <li>
  819   1040   
    /// <p><code>IndexStatus</code> - The current status of the global secondary index:</p>
  820   1041   
    /// <ul>
  821   1042   
    /// <li>
  822   1043   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
  823   1044   
    /// <li>
  824   1045   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
  825   1046   
    /// <li>
  826   1047   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
  827   1048   
    /// <li>
  828   1049   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
  829   1050   
    /// </ul></li>
  830   1051   
    /// <li>
  831   1052   
    /// <p><code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  832   1053   
    /// <li>
  833   1054   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  834   1055   
    /// <li>
  835   1056   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  836   1057   
    /// <ul>
  837   1058   
    /// <li>
  838   1059   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  839   1060   
    /// <ul>
  840   1061   
    /// <li>
  841   1062   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  842   1063   
    /// <li>
  843   1064   
    /// <p><code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify.</p></li>
  844   1065   
    /// <li>
  845   1066   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  846   1067   
    /// </ul></li>
  847   1068   
    /// <li>
  848   1069   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  849   1070   
    /// </ul></li>
  850   1071   
    /// <li>
  851   1072   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.</p></li>
  852   1073   
    /// </ul>
  853   1074   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
        1075  +
    /* BuilderGenerator.kt:418 */
  854   1076   
    pub fn global_secondary_indexes(mut self, input: crate::types::GlobalSecondaryIndexDescription) -> Self {
        1077  +
        /* BuilderGenerator.kt:419 */
  855   1078   
        let mut v = self.global_secondary_indexes.unwrap_or_default();
  856   1079   
        v.push(input);
  857   1080   
        self.global_secondary_indexes = ::std::option::Option::Some(v);
  858   1081   
        self
        1082  +
        /* BuilderGenerator.kt:418 */
  859   1083   
    }
  860         -
    /// <p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
        1084  +
    /// /* BuilderGenerator.kt:312 */<p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
  861   1085   
    /// <ul>
  862   1086   
    /// <li>
  863   1087   
    /// <p><code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p>
  864   1088   
    /// <p>You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p></li>
  865   1089   
    /// <li>
  866   1090   
    /// <p><code>IndexName</code> - The name of the global secondary index.</p></li>
  867   1091   
    /// <li>
  868   1092   
    /// <p><code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  869   1093   
    /// <li>
  870   1094   
    /// <p><code>IndexStatus</code> - The current status of the global secondary index:</p>
  871   1095   
    /// <ul>
  872   1096   
    /// <li>
  873   1097   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
  874   1098   
    /// <li>
  875   1099   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
  876   1100   
    /// <li>
  877   1101   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
  878   1102   
    /// <li>
  879   1103   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
  880   1104   
    /// </ul></li>
  881   1105   
    /// <li>
  882   1106   
    /// <p><code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  883   1107   
    /// <li>
  884   1108   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  885   1109   
    /// <li>
  886   1110   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  887   1111   
    /// <ul>
  888   1112   
    /// <li>
  889   1113   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  890   1114   
    /// <ul>
  891   1115   
    /// <li>
  892   1116   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  893   1117   
    /// <li>
  894   1118   
    /// <p><code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify.</p></li>
  895   1119   
    /// <li>
  896   1120   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  897   1121   
    /// </ul></li>
  898   1122   
    /// <li>
  899   1123   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  900   1124   
    /// </ul></li>
  901   1125   
    /// <li>
  902   1126   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.</p></li>
  903   1127   
    /// </ul>
  904   1128   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
        1129  +
    /* BuilderGenerator.kt:314 */
  905   1130   
    pub fn set_global_secondary_indexes(
  906   1131   
        mut self,
  907   1132   
        input: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexDescription>>,
  908   1133   
    ) -> Self {
        1134  +
        /* BuilderGenerator.kt:315 */
  909   1135   
        self.global_secondary_indexes = input;
  910   1136   
        self
        1137  +
        /* BuilderGenerator.kt:314 */
  911   1138   
    }
  912         -
    /// <p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
        1139  +
    /// /* BuilderGenerator.kt:334 */<p>The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:</p>
  913   1140   
    /// <ul>
  914   1141   
    /// <li>
  915   1142   
    /// <p><code>Backfilling</code> - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p>
  916   1143   
    /// <p>You can delete an index that is being created during the <code>Backfilling</code> phase when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is true. You can't delete the index that is being created when <code>IndexStatus</code> is set to CREATING and <code>Backfilling</code> is false. (This attribute does not appear for indexes that were created during a <code>CreateTable</code> operation.)</p></li>
  917   1144   
    /// <li>
  918   1145   
    /// <p><code>IndexName</code> - The name of the global secondary index.</p></li>
  919   1146   
    /// <li>
  920   1147   
    /// <p><code>IndexSizeBytes</code> - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  921   1148   
    /// <li>
  922   1149   
    /// <p><code>IndexStatus</code> - The current status of the global secondary index:</p>
  923   1150   
    /// <ul>
  924   1151   
    /// <li>
  925   1152   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
  926   1153   
    /// <li>
  927   1154   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
  928   1155   
    /// <li>
  929   1156   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
  930   1157   
    /// <li>
  931   1158   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
  932   1159   
    /// </ul></li>
  933   1160   
    /// <li>
  934   1161   
    /// <p><code>ItemCount</code> - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p></li>
  935   1162   
    /// <li>
  936   1163   
    /// <p><code>KeySchema</code> - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.</p></li>
  937   1164   
    /// <li>
  938   1165   
    /// <p><code>Projection</code> - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:</p>
  939   1166   
    /// <ul>
  940   1167   
    /// <li>
  941   1168   
    /// <p><code>ProjectionType</code> - One of the following:</p>
  942   1169   
    /// <ul>
  943   1170   
    /// <li>
  944   1171   
    /// <p><code>KEYS_ONLY</code> - Only the index and primary keys are projected into the index.</p></li>
  945   1172   
    /// <li>
  946   1173   
    /// <p><code>INCLUDE</code> - In addition to the attributes described in <code>KEYS_ONLY</code>, the secondary index will include other non-key attributes that you specify.</p></li>
  947   1174   
    /// <li>
  948   1175   
    /// <p><code>ALL</code> - All of the table attributes are projected into the index.</p></li>
  949   1176   
    /// </ul></li>
  950   1177   
    /// <li>
  951   1178   
    /// <p><code>NonKeyAttributes</code> - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in <code>NonKeyAttributes</code>, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.</p></li>
  952   1179   
    /// </ul></li>
  953   1180   
    /// <li>
  954   1181   
    /// <p><code>ProvisionedThroughput</code> - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.</p></li>
  955   1182   
    /// </ul>
  956   1183   
    /// <p>If the table is in the <code>DELETING</code> state, no information about indexes will be returned.</p>
        1184  +
    /* BuilderGenerator.kt:336 */
  957   1185   
    pub fn get_global_secondary_indexes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexDescription>> {
        1186  +
        /* BuilderGenerator.kt:337 */
  958   1187   
        &self.global_secondary_indexes
        1188  +
        /* BuilderGenerator.kt:336 */
  959   1189   
    }
  960         -
    /// <p>The current DynamoDB Streams configuration for the table.</p>
        1190  +
    /// /* BuilderGenerator.kt:286 */<p>The current DynamoDB Streams configuration for the table.</p>
        1191  +
    /* BuilderGenerator.kt:291 */
  961   1192   
    pub fn stream_specification(mut self, input: crate::types::StreamSpecification) -> Self {
        1193  +
        /* BuilderGenerator.kt:292 */
  962   1194   
        self.stream_specification = ::std::option::Option::Some(input);
        1195  +
        /* BuilderGenerator.kt:293 */
  963   1196   
        self
        1197  +
        /* BuilderGenerator.kt:291 */
  964   1198   
    }
  965         -
    /// <p>The current DynamoDB Streams configuration for the table.</p>
        1199  +
    /// /* BuilderGenerator.kt:312 */<p>The current DynamoDB Streams configuration for the table.</p>
        1200  +
    /* BuilderGenerator.kt:314 */
  966   1201   
    pub fn set_stream_specification(mut self, input: ::std::option::Option<crate::types::StreamSpecification>) -> Self {
        1202  +
        /* BuilderGenerator.kt:315 */
  967   1203   
        self.stream_specification = input;
  968   1204   
        self
        1205  +
        /* BuilderGenerator.kt:314 */
  969   1206   
    }
  970         -
    /// <p>The current DynamoDB Streams configuration for the table.</p>
        1207  +
    /// /* BuilderGenerator.kt:334 */<p>The current DynamoDB Streams configuration for the table.</p>
        1208  +
    /* BuilderGenerator.kt:336 */
  971   1209   
    pub fn get_stream_specification(&self) -> &::std::option::Option<crate::types::StreamSpecification> {
        1210  +
        /* BuilderGenerator.kt:337 */
  972   1211   
        &self.stream_specification
        1212  +
        /* BuilderGenerator.kt:336 */
  973   1213   
    }
  974         -
    /// <p>A timestamp, in ISO 8601 format, for this stream.</p>
        1214  +
    /// /* BuilderGenerator.kt:286 */<p>A timestamp, in ISO 8601 format, for this stream.</p>
  975   1215   
    /// <p>Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:</p>
  976   1216   
    /// <ul>
  977   1217   
    /// <li>
  978   1218   
    /// <p>AWS customer ID</p></li>
  979   1219   
    /// <li>
  980   1220   
    /// <p>Table name</p></li>
  981   1221   
    /// <li>
  982   1222   
    /// <p><code>StreamLabel</code></p></li>
  983   1223   
    /// </ul>
        1224  +
    /* BuilderGenerator.kt:291 */
  984   1225   
    pub fn latest_stream_label(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1226  +
        /* BuilderGenerator.kt:292 */
  985   1227   
        self.latest_stream_label = ::std::option::Option::Some(input.into());
        1228  +
        /* BuilderGenerator.kt:293 */
  986   1229   
        self
        1230  +
        /* BuilderGenerator.kt:291 */
  987   1231   
    }
  988         -
    /// <p>A timestamp, in ISO 8601 format, for this stream.</p>
        1232  +
    /// /* BuilderGenerator.kt:312 */<p>A timestamp, in ISO 8601 format, for this stream.</p>
  989   1233   
    /// <p>Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:</p>
  990   1234   
    /// <ul>
  991   1235   
    /// <li>
  992   1236   
    /// <p>AWS customer ID</p></li>
  993   1237   
    /// <li>
  994   1238   
    /// <p>Table name</p></li>
  995   1239   
    /// <li>
  996   1240   
    /// <p><code>StreamLabel</code></p></li>
  997   1241   
    /// </ul>
        1242  +
    /* BuilderGenerator.kt:314 */
  998   1243   
    pub fn set_latest_stream_label(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1244  +
        /* BuilderGenerator.kt:315 */
  999   1245   
        self.latest_stream_label = input;
 1000   1246   
        self
        1247  +
        /* BuilderGenerator.kt:314 */
 1001   1248   
    }
 1002         -
    /// <p>A timestamp, in ISO 8601 format, for this stream.</p>
        1249  +
    /// /* BuilderGenerator.kt:334 */<p>A timestamp, in ISO 8601 format, for this stream.</p>
 1003   1250   
    /// <p>Note that <code>LatestStreamLabel</code> is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:</p>
 1004   1251   
    /// <ul>
 1005   1252   
    /// <li>
 1006   1253   
    /// <p>AWS customer ID</p></li>
 1007   1254   
    /// <li>
 1008   1255   
    /// <p>Table name</p></li>
 1009   1256   
    /// <li>
 1010   1257   
    /// <p><code>StreamLabel</code></p></li>
 1011   1258   
    /// </ul>
        1259  +
    /* BuilderGenerator.kt:336 */
 1012   1260   
    pub fn get_latest_stream_label(&self) -> &::std::option::Option<::std::string::String> {
        1261  +
        /* BuilderGenerator.kt:337 */
 1013   1262   
        &self.latest_stream_label
        1263  +
        /* BuilderGenerator.kt:336 */
 1014   1264   
    }
 1015         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
        1265  +
    /// /* BuilderGenerator.kt:286 */<p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
        1266  +
    /* BuilderGenerator.kt:291 */
 1016   1267   
    pub fn latest_stream_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1268  +
        /* BuilderGenerator.kt:292 */
 1017   1269   
        self.latest_stream_arn = ::std::option::Option::Some(input.into());
        1270  +
        /* BuilderGenerator.kt:293 */
 1018   1271   
        self
        1272  +
        /* BuilderGenerator.kt:291 */
 1019   1273   
    }
 1020         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
        1274  +
    /// /* BuilderGenerator.kt:312 */<p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
        1275  +
    /* BuilderGenerator.kt:314 */
 1021   1276   
    pub fn set_latest_stream_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1277  +
        /* BuilderGenerator.kt:315 */
 1022   1278   
        self.latest_stream_arn = input;
 1023   1279   
        self
        1280  +
        /* BuilderGenerator.kt:314 */
 1024   1281   
    }
 1025         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
        1282  +
    /// /* BuilderGenerator.kt:334 */<p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
        1283  +
    /* BuilderGenerator.kt:336 */
 1026   1284   
    pub fn get_latest_stream_arn(&self) -> &::std::option::Option<::std::string::String> {
        1285  +
        /* BuilderGenerator.kt:337 */
 1027   1286   
        &self.latest_stream_arn
        1287  +
        /* BuilderGenerator.kt:336 */
 1028   1288   
    }
 1029         -
    /// <p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
        1289  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
        1290  +
    /* BuilderGenerator.kt:291 */
 1030   1291   
    pub fn global_table_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        1292  +
        /* BuilderGenerator.kt:292 */
 1031   1293   
        self.global_table_version = ::std::option::Option::Some(input.into());
        1294  +
        /* BuilderGenerator.kt:293 */
 1032   1295   
        self
        1296  +
        /* BuilderGenerator.kt:291 */
 1033   1297   
    }
 1034         -
    /// <p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
        1298  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
        1299  +
    /* BuilderGenerator.kt:314 */
 1035   1300   
    pub fn set_global_table_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1301  +
        /* BuilderGenerator.kt:315 */
 1036   1302   
        self.global_table_version = input;
 1037   1303   
        self
        1304  +
        /* BuilderGenerator.kt:314 */
 1038   1305   
    }
 1039         -
    /// <p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
        1306  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across AWS Regions.</p>
        1307  +
    /* BuilderGenerator.kt:336 */
 1040   1308   
    pub fn get_global_table_version(&self) -> &::std::option::Option<::std::string::String> {
        1309  +
        /* BuilderGenerator.kt:337 */
 1041   1310   
        &self.global_table_version
        1311  +
        /* BuilderGenerator.kt:336 */
 1042   1312   
    }
 1043         -
    /// Appends an item to `replicas`.
        1313  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `replicas`.
        1314  +
    /* BuilderGenerator.kt:411 */
 1044   1315   
    ///
 1045         -
    /// To override the contents of this collection use [`set_replicas`](Self::set_replicas).
        1316  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_replicas`](Self::set_replicas).
        1317  +
    /* BuilderGenerator.kt:413 */
 1046   1318   
    ///
 1047         -
    /// <p>Represents replicas of the table.</p>
        1319  +
    /// /* BuilderGenerator.kt:414 */<p>Represents replicas of the table.</p>
        1320  +
    /* BuilderGenerator.kt:418 */
 1048   1321   
    pub fn replicas(mut self, input: crate::types::ReplicaDescription) -> Self {
        1322  +
        /* BuilderGenerator.kt:419 */
 1049   1323   
        let mut v = self.replicas.unwrap_or_default();
 1050   1324   
        v.push(input);
 1051   1325   
        self.replicas = ::std::option::Option::Some(v);
 1052   1326   
        self
        1327  +
        /* BuilderGenerator.kt:418 */
 1053   1328   
    }
 1054         -
    /// <p>Represents replicas of the table.</p>
        1329  +
    /// /* BuilderGenerator.kt:312 */<p>Represents replicas of the table.</p>
        1330  +
    /* BuilderGenerator.kt:314 */
 1055   1331   
    pub fn set_replicas(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaDescription>>) -> Self {
        1332  +
        /* BuilderGenerator.kt:315 */
 1056   1333   
        self.replicas = input;
 1057   1334   
        self
        1335  +
        /* BuilderGenerator.kt:314 */
 1058   1336   
    }
 1059         -
    /// <p>Represents replicas of the table.</p>
        1337  +
    /// /* BuilderGenerator.kt:334 */<p>Represents replicas of the table.</p>
        1338  +
    /* BuilderGenerator.kt:336 */
 1060   1339   
    pub fn get_replicas(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicaDescription>> {
        1340  +
        /* BuilderGenerator.kt:337 */
 1061   1341   
        &self.replicas
        1342  +
        /* BuilderGenerator.kt:336 */
 1062   1343   
    }
 1063         -
    /// <p>Contains details for the restore.</p>
        1344  +
    /// /* BuilderGenerator.kt:286 */<p>Contains details for the restore.</p>
        1345  +
    /* BuilderGenerator.kt:291 */
 1064   1346   
    pub fn restore_summary(mut self, input: crate::types::RestoreSummary) -> Self {
        1347  +
        /* BuilderGenerator.kt:292 */
 1065   1348   
        self.restore_summary = ::std::option::Option::Some(input);
        1349  +
        /* BuilderGenerator.kt:293 */
 1066   1350   
        self
        1351  +
        /* BuilderGenerator.kt:291 */
 1067   1352   
    }
 1068         -
    /// <p>Contains details for the restore.</p>
        1353  +
    /// /* BuilderGenerator.kt:312 */<p>Contains details for the restore.</p>
        1354  +
    /* BuilderGenerator.kt:314 */
 1069   1355   
    pub fn set_restore_summary(mut self, input: ::std::option::Option<crate::types::RestoreSummary>) -> Self {
        1356  +
        /* BuilderGenerator.kt:315 */
 1070   1357   
        self.restore_summary = input;
 1071   1358   
        self
        1359  +
        /* BuilderGenerator.kt:314 */
 1072   1360   
    }
 1073         -
    /// <p>Contains details for the restore.</p>
        1361  +
    /// /* BuilderGenerator.kt:334 */<p>Contains details for the restore.</p>
        1362  +
    /* BuilderGenerator.kt:336 */
 1074   1363   
    pub fn get_restore_summary(&self) -> &::std::option::Option<crate::types::RestoreSummary> {
        1364  +
        /* BuilderGenerator.kt:337 */
 1075   1365   
        &self.restore_summary
        1366  +
        /* BuilderGenerator.kt:336 */
 1076   1367   
    }
 1077         -
    /// <p>The description of the server-side encryption status on the specified table.</p>
        1368  +
    /// /* BuilderGenerator.kt:286 */<p>The description of the server-side encryption status on the specified table.</p>
        1369  +
    /* BuilderGenerator.kt:291 */
 1078   1370   
    pub fn sse_description(mut self, input: crate::types::SseDescription) -> Self {
        1371  +
        /* BuilderGenerator.kt:292 */
 1079   1372   
        self.sse_description = ::std::option::Option::Some(input);
        1373  +
        /* BuilderGenerator.kt:293 */
 1080   1374   
        self
        1375  +
        /* BuilderGenerator.kt:291 */
 1081   1376   
    }
 1082         -
    /// <p>The description of the server-side encryption status on the specified table.</p>
        1377  +
    /// /* BuilderGenerator.kt:312 */<p>The description of the server-side encryption status on the specified table.</p>
        1378  +
    /* BuilderGenerator.kt:314 */
 1083   1379   
    pub fn set_sse_description(mut self, input: ::std::option::Option<crate::types::SseDescription>) -> Self {
        1380  +
        /* BuilderGenerator.kt:315 */
 1084   1381   
        self.sse_description = input;
 1085   1382   
        self
        1383  +
        /* BuilderGenerator.kt:314 */
 1086   1384   
    }
 1087         -
    /// <p>The description of the server-side encryption status on the specified table.</p>
        1385  +
    /// /* BuilderGenerator.kt:334 */<p>The description of the server-side encryption status on the specified table.</p>
        1386  +
    /* BuilderGenerator.kt:336 */
 1088   1387   
    pub fn get_sse_description(&self) -> &::std::option::Option<crate::types::SseDescription> {
        1388  +
        /* BuilderGenerator.kt:337 */
 1089   1389   
        &self.sse_description
        1390  +
        /* BuilderGenerator.kt:336 */
 1090   1391   
    }
 1091         -
    /// <p>Contains information about the table archive.</p>
        1392  +
    /// /* BuilderGenerator.kt:286 */<p>Contains information about the table archive.</p>
        1393  +
    /* BuilderGenerator.kt:291 */
 1092   1394   
    pub fn archival_summary(mut self, input: crate::types::ArchivalSummary) -> Self {
        1395  +
        /* BuilderGenerator.kt:292 */
 1093   1396   
        self.archival_summary = ::std::option::Option::Some(input);
        1397  +
        /* BuilderGenerator.kt:293 */
 1094   1398   
        self
        1399  +
        /* BuilderGenerator.kt:291 */
 1095   1400   
    }
 1096         -
    /// <p>Contains information about the table archive.</p>
        1401  +
    /// /* BuilderGenerator.kt:312 */<p>Contains information about the table archive.</p>
        1402  +
    /* BuilderGenerator.kt:314 */
 1097   1403   
    pub fn set_archival_summary(mut self, input: ::std::option::Option<crate::types::ArchivalSummary>) -> Self {
        1404  +
        /* BuilderGenerator.kt:315 */
 1098   1405   
        self.archival_summary = input;
 1099   1406   
        self
        1407  +
        /* BuilderGenerator.kt:314 */
 1100   1408   
    }
 1101         -
    /// <p>Contains information about the table archive.</p>
        1409  +
    /// /* BuilderGenerator.kt:334 */<p>Contains information about the table archive.</p>
        1410  +
    /* BuilderGenerator.kt:336 */
 1102   1411   
    pub fn get_archival_summary(&self) -> &::std::option::Option<crate::types::ArchivalSummary> {
        1412  +
        /* BuilderGenerator.kt:337 */
 1103   1413   
        &self.archival_summary
        1414  +
        /* BuilderGenerator.kt:336 */
 1104   1415   
    }
 1105         -
    /// Consumes the builder and constructs a [`TableDescription`](crate::types::TableDescription).
        1416  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`TableDescription`](crate::types::TableDescription).
        1417  +
    /* BuilderGenerator.kt:253 */
 1106   1418   
    pub fn build(self) -> crate::types::TableDescription {
        1419  +
        /* BuilderGenerator.kt:477 */
 1107   1420   
        crate::types::TableDescription {
 1108         -
            attribute_definitions: self.attribute_definitions,
        1421  +
            /* BuilderGenerator.kt:481 */ attribute_definitions: self.attribute_definitions,
        1422  +
            /* BuilderGenerator.kt:481 */
 1109   1423   
            table_name: self.table_name,
        1424  +
            /* BuilderGenerator.kt:481 */
 1110   1425   
            key_schema: self.key_schema,
        1426  +
            /* BuilderGenerator.kt:481 */
 1111   1427   
            table_status: self.table_status,
        1428  +
            /* BuilderGenerator.kt:481 */
 1112   1429   
            creation_date_time: self.creation_date_time,
        1430  +
            /* BuilderGenerator.kt:481 */
 1113   1431   
            provisioned_throughput: self.provisioned_throughput,
 1114         -
            table_size_bytes: self.table_size_bytes.unwrap_or_default(),
 1115         -
            item_count: self.item_count.unwrap_or_default(),
        1432  +
            /* BuilderGenerator.kt:481 */
        1433  +
            table_size_bytes: self
        1434  +
                .table_size_bytes
        1435  +
                /* BuilderGenerator.kt:487 */
        1436  +
                .unwrap_or_default(),
        1437  +
            /* BuilderGenerator.kt:481 */
        1438  +
            item_count: self
        1439  +
                .item_count
        1440  +
                /* BuilderGenerator.kt:487 */
        1441  +
                .unwrap_or_default(),
        1442  +
            /* BuilderGenerator.kt:481 */
 1116   1443   
            table_arn: self.table_arn,
        1444  +
            /* BuilderGenerator.kt:481 */
 1117   1445   
            table_id: self.table_id,
        1446  +
            /* BuilderGenerator.kt:481 */
 1118   1447   
            billing_mode_summary: self.billing_mode_summary,
        1448  +
            /* BuilderGenerator.kt:481 */
 1119   1449   
            local_secondary_indexes: self.local_secondary_indexes,
        1450  +
            /* BuilderGenerator.kt:481 */
 1120   1451   
            global_secondary_indexes: self.global_secondary_indexes,
        1452  +
            /* BuilderGenerator.kt:481 */
 1121   1453   
            stream_specification: self.stream_specification,
        1454  +
            /* BuilderGenerator.kt:481 */
 1122   1455   
            latest_stream_label: self.latest_stream_label,
        1456  +
            /* BuilderGenerator.kt:481 */
 1123   1457   
            latest_stream_arn: self.latest_stream_arn,
        1458  +
            /* BuilderGenerator.kt:481 */
 1124   1459   
            global_table_version: self.global_table_version,
        1460  +
            /* BuilderGenerator.kt:481 */
 1125   1461   
            replicas: self.replicas,
        1462  +
            /* BuilderGenerator.kt:481 */
 1126   1463   
            restore_summary: self.restore_summary,
        1464  +
            /* BuilderGenerator.kt:481 */
 1127   1465   
            sse_description: self.sse_description,
        1466  +
            /* BuilderGenerator.kt:481 */
 1128   1467   
            archival_summary: self.archival_summary,
        1468  +
            /* BuilderGenerator.kt:477 */
 1129   1469   
        }
        1470  +
        /* BuilderGenerator.kt:253 */
 1130   1471   
    }
        1472  +
    /* BuilderGenerator.kt:355 */
 1131   1473   
}