Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_export_format.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 `ExportFormat`, it is important to ensure
           2  +
/* ClientEnumGenerator.kt:234 */
           3  +
/// /* ClientEnumGenerator.kt:234 */When writing a match expression against `ExportFormat`, 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 exportformat = unimplemented!();
          15  +
/* ClientEnumGenerator.kt:249 */
   14     16   
/// match exportformat {
          17  +
/* ClientEnumGenerator.kt:251 */
   15     18   
///     ExportFormat::DynamodbJson => { /* ... */ },
          19  +
/* ClientEnumGenerator.kt:251 */
   16     20   
///     ExportFormat::Ion => { /* ... */ },
          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 `exportformat` represents
          27  +
/// /* ClientEnumGenerator.kt:256 */```
          28  +
/// /* ClientEnumGenerator.kt:257 */The above code demonstrates that when `exportformat` 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 `ExportFormat::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   
/// `ExportFormat::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 `ExportFormat::NewFeature` is defined.
   30     37   
/// Specifically, when `exportformat` 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 `ExportFormat::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 ExportFormat {
   45         -
    #[allow(missing_docs)] // documentation missing in model
          54  +
pub /* EnumGenerator.kt:267 */ enum ExportFormat {
          55  +
    /* EnumGenerator.kt:154 */ #[allow(missing_docs)] // documentation missing in model
          56  +
    /* EnumGenerator.kt:143 */
   46     57   
    DynamodbJson,
   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   
    Ion,
   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 ExportFormat {
   54     69   
    fn from(s: &str) -> Self {
   55     70   
        match s {
   56     71   
            "DYNAMODB_JSON" => ExportFormat::DynamodbJson,
   57     72   
            "ION" => ExportFormat::Ion,
   58     73   
            other => ExportFormat::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 ExportFormat {
   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(ExportFormat::from(s))
   67     83   
    }
   68     84   
}
          85  +
/* EnumGenerator.kt:274 */
   69     86   
impl ExportFormat {
   70     87   
    /// Returns the `&str` value of the enum member.
   71     88   
    pub fn as_str(&self) -> &str {
   72     89   
        match self {
   73     90   
            ExportFormat::DynamodbJson => "DYNAMODB_JSON",
   74     91   
            ExportFormat::Ion => "ION",
   75     92   
            ExportFormat::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   
        &["DYNAMODB_JSON", "ION"]
   81     98   
    }
   82     99   
}
         100  +
/* EnumGenerator.kt:223 */
   83    101   
impl ::std::convert::AsRef<str> for ExportFormat {
   84    102   
    fn as_ref(&self) -> &str {
   85    103   
        self.as_str()
   86    104   
    }
   87    105   
}
         106  +
/* ClientEnumGenerator.kt:117 */
   88    107   
impl ExportFormat {
   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 ExportFormat {
  101    121   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  102    122   
        match self {
  103    123   
            ExportFormat::DynamodbJson => write!(f, "DYNAMODB_JSON"),
  104    124   
            ExportFormat::Ion => write!(f, "ION"),
  105    125   
            ExportFormat::Unknown(value) => write!(f, "{}", value),
  106    126   
        }
  107    127   
    }
  108    128   
}

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

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

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

@@ -1,1 +72,120 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Summary information about an export task.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Summary information about an export task.</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 ExportSummary {
    7         -
    /// <p>The Amazon Resource Name (ARN) of the export.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct ExportSummary {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) of the export.</p>
    8     10   
    pub export_arn: ::std::option::Option<::std::string::String>,
    9         -
    /// <p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
   10     12   
    pub export_status: ::std::option::Option<crate::types::ExportStatus>,
          13  +
    /* StructureGenerator.kt:201 */
   11     14   
}
          15  +
/* StructureGenerator.kt:135 */
   12     16   
impl ExportSummary {
   13         -
    /// <p>The Amazon Resource Name (ARN) of the export.</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) of the export.</p>
          18  +
    /* StructureGenerator.kt:166 */
   14     19   
    pub fn export_arn(&self) -> ::std::option::Option<&str> {
          20  +
        /* StructureGenerator.kt:169 */
   15     21   
        self.export_arn.as_deref()
          22  +
        /* StructureGenerator.kt:166 */
   16     23   
    }
   17         -
    /// <p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
          25  +
    /* StructureGenerator.kt:166 */
   18     26   
    pub fn export_status(&self) -> ::std::option::Option<&crate::types::ExportStatus> {
          27  +
        /* StructureGenerator.kt:170 */
   19     28   
        self.export_status.as_ref()
          29  +
        /* StructureGenerator.kt:166 */
   20     30   
    }
          31  +
    /* StructureGenerator.kt:135 */
   21     32   
}
          33  +
/* ClientCodegenVisitor.kt:237 */
   22     34   
impl ExportSummary {
   23         -
    /// Creates a new builder-style object to manufacture [`ExportSummary`](crate::types::ExportSummary).
          35  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`ExportSummary`](crate::types::ExportSummary).
          36  +
    /* BuilderGenerator.kt:175 */
   24     37   
    pub fn builder() -> crate::types::builders::ExportSummaryBuilder {
          38  +
        /* BuilderGenerator.kt:176 */
   25     39   
        crate::types::builders::ExportSummaryBuilder::default()
          40  +
        /* BuilderGenerator.kt:175 */
   26     41   
    }
          42  +
    /* ClientCodegenVisitor.kt:237 */
   27     43   
}
   28     44   
   29         -
/// A builder for [`ExportSummary`](crate::types::ExportSummary).
          45  +
/// /* BuilderGenerator.kt:342 */A builder for [`ExportSummary`](crate::types::ExportSummary).
          46  +
/* RustType.kt:516 */
   30     47   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          48  +
/* RustType.kt:516 */
   31     49   
#[non_exhaustive]
          50  +
/* BuilderGenerator.kt:345 */
   32     51   
pub struct ExportSummaryBuilder {
   33         -
    pub(crate) export_arn: ::std::option::Option<::std::string::String>,
          52  +
    /* BuilderGenerator.kt:275 */ pub(crate) export_arn: ::std::option::Option<::std::string::String>,
          53  +
    /* BuilderGenerator.kt:275 */
   34     54   
    pub(crate) export_status: ::std::option::Option<crate::types::ExportStatus>,
          55  +
    /* BuilderGenerator.kt:345 */
   35     56   
}
          57  +
/* BuilderGenerator.kt:355 */
   36     58   
impl ExportSummaryBuilder {
   37         -
    /// <p>The Amazon Resource Name (ARN) of the export.</p>
          59  +
    /// /* BuilderGenerator.kt:286 */<p>The Amazon Resource Name (ARN) of the export.</p>
          60  +
    /* BuilderGenerator.kt:291 */
   38     61   
    pub fn export_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          62  +
        /* BuilderGenerator.kt:292 */
   39     63   
        self.export_arn = ::std::option::Option::Some(input.into());
          64  +
        /* BuilderGenerator.kt:293 */
   40     65   
        self
          66  +
        /* BuilderGenerator.kt:291 */
   41     67   
    }
   42         -
    /// <p>The Amazon Resource Name (ARN) of the export.</p>
          68  +
    /// /* BuilderGenerator.kt:312 */<p>The Amazon Resource Name (ARN) of the export.</p>
          69  +
    /* BuilderGenerator.kt:314 */
   43     70   
    pub fn set_export_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          71  +
        /* BuilderGenerator.kt:315 */
   44     72   
        self.export_arn = input;
   45     73   
        self
          74  +
        /* BuilderGenerator.kt:314 */
   46     75   
    }
   47         -
    /// <p>The Amazon Resource Name (ARN) of the export.</p>
          76  +
    /// /* BuilderGenerator.kt:334 */<p>The Amazon Resource Name (ARN) of the export.</p>
          77  +
    /* BuilderGenerator.kt:336 */
   48     78   
    pub fn get_export_arn(&self) -> &::std::option::Option<::std::string::String> {
          79  +
        /* BuilderGenerator.kt:337 */
   49     80   
        &self.export_arn
          81  +
        /* BuilderGenerator.kt:336 */
   50     82   
    }
   51         -
    /// <p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
          83  +
    /// /* BuilderGenerator.kt:286 */<p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
          84  +
    /* BuilderGenerator.kt:291 */
   52     85   
    pub fn export_status(mut self, input: crate::types::ExportStatus) -> Self {
          86  +
        /* BuilderGenerator.kt:292 */
   53     87   
        self.export_status = ::std::option::Option::Some(input);
          88  +
        /* BuilderGenerator.kt:293 */
   54     89   
        self
          90  +
        /* BuilderGenerator.kt:291 */
   55     91   
    }
   56         -
    /// <p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
          92  +
    /// /* BuilderGenerator.kt:312 */<p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
          93  +
    /* BuilderGenerator.kt:314 */
   57     94   
    pub fn set_export_status(mut self, input: ::std::option::Option<crate::types::ExportStatus>) -> Self {
          95  +
        /* BuilderGenerator.kt:315 */
   58     96   
        self.export_status = input;
   59     97   
        self
          98  +
        /* BuilderGenerator.kt:314 */
   60     99   
    }
   61         -
    /// <p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
         100  +
    /// /* BuilderGenerator.kt:334 */<p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or FAILED.</p>
         101  +
    /* BuilderGenerator.kt:336 */
   62    102   
    pub fn get_export_status(&self) -> &::std::option::Option<crate::types::ExportStatus> {
         103  +
        /* BuilderGenerator.kt:337 */
   63    104   
        &self.export_status
         105  +
        /* BuilderGenerator.kt:336 */
   64    106   
    }
   65         -
    /// Consumes the builder and constructs a [`ExportSummary`](crate::types::ExportSummary).
         107  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`ExportSummary`](crate::types::ExportSummary).
         108  +
    /* BuilderGenerator.kt:253 */
   66    109   
    pub fn build(self) -> crate::types::ExportSummary {
         110  +
        /* BuilderGenerator.kt:477 */
   67    111   
        crate::types::ExportSummary {
   68         -
            export_arn: self.export_arn,
         112  +
            /* BuilderGenerator.kt:481 */ export_arn: self.export_arn,
         113  +
            /* BuilderGenerator.kt:481 */
   69    114   
            export_status: self.export_status,
         115  +
            /* BuilderGenerator.kt:477 */
   70    116   
        }
         117  +
        /* BuilderGenerator.kt:253 */
   71    118   
    }
         119  +
    /* BuilderGenerator.kt:355 */
   72    120   
}

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

@@ -1,1 +72,120 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents a failure a contributor insights operation.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents a failure a contributor insights operation.</p>
           4  +
/* RustType.kt:516 */
    4      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    5      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct FailureException {
    7         -
    /// <p>Exception name.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct FailureException {
           9  +
    /// /* StructureGenerator.kt:231 */<p>Exception name.</p>
    8     10   
    pub exception_name: ::std::option::Option<::std::string::String>,
    9         -
    /// <p>Description of the failure.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>Description of the failure.</p>
   10     12   
    pub exception_description: ::std::option::Option<::std::string::String>,
          13  +
    /* StructureGenerator.kt:201 */
   11     14   
}
          15  +
/* StructureGenerator.kt:135 */
   12     16   
impl FailureException {
   13         -
    /// <p>Exception name.</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>Exception name.</p>
          18  +
    /* StructureGenerator.kt:166 */
   14     19   
    pub fn exception_name(&self) -> ::std::option::Option<&str> {
          20  +
        /* StructureGenerator.kt:169 */
   15     21   
        self.exception_name.as_deref()
          22  +
        /* StructureGenerator.kt:166 */
   16     23   
    }
   17         -
    /// <p>Description of the failure.</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>Description of the failure.</p>
          25  +
    /* StructureGenerator.kt:166 */
   18     26   
    pub fn exception_description(&self) -> ::std::option::Option<&str> {
          27  +
        /* StructureGenerator.kt:169 */
   19     28   
        self.exception_description.as_deref()
          29  +
        /* StructureGenerator.kt:166 */
   20     30   
    }
          31  +
    /* StructureGenerator.kt:135 */
   21     32   
}
          33  +
/* ClientCodegenVisitor.kt:237 */
   22     34   
impl FailureException {
   23         -
    /// Creates a new builder-style object to manufacture [`FailureException`](crate::types::FailureException).
          35  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`FailureException`](crate::types::FailureException).
          36  +
    /* BuilderGenerator.kt:175 */
   24     37   
    pub fn builder() -> crate::types::builders::FailureExceptionBuilder {
          38  +
        /* BuilderGenerator.kt:176 */
   25     39   
        crate::types::builders::FailureExceptionBuilder::default()
          40  +
        /* BuilderGenerator.kt:175 */
   26     41   
    }
          42  +
    /* ClientCodegenVisitor.kt:237 */
   27     43   
}
   28     44   
   29         -
/// A builder for [`FailureException`](crate::types::FailureException).
          45  +
/// /* BuilderGenerator.kt:342 */A builder for [`FailureException`](crate::types::FailureException).
          46  +
/* RustType.kt:516 */
   30     47   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          48  +
/* RustType.kt:516 */
   31     49   
#[non_exhaustive]
          50  +
/* BuilderGenerator.kt:345 */
   32     51   
pub struct FailureExceptionBuilder {
   33         -
    pub(crate) exception_name: ::std::option::Option<::std::string::String>,
          52  +
    /* BuilderGenerator.kt:275 */ pub(crate) exception_name: ::std::option::Option<::std::string::String>,
          53  +
    /* BuilderGenerator.kt:275 */
   34     54   
    pub(crate) exception_description: ::std::option::Option<::std::string::String>,
          55  +
    /* BuilderGenerator.kt:345 */
   35     56   
}
          57  +
/* BuilderGenerator.kt:355 */
   36     58   
impl FailureExceptionBuilder {
   37         -
    /// <p>Exception name.</p>
          59  +
    /// /* BuilderGenerator.kt:286 */<p>Exception name.</p>
          60  +
    /* BuilderGenerator.kt:291 */
   38     61   
    pub fn exception_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          62  +
        /* BuilderGenerator.kt:292 */
   39     63   
        self.exception_name = ::std::option::Option::Some(input.into());
          64  +
        /* BuilderGenerator.kt:293 */
   40     65   
        self
          66  +
        /* BuilderGenerator.kt:291 */
   41     67   
    }
   42         -
    /// <p>Exception name.</p>
          68  +
    /// /* BuilderGenerator.kt:312 */<p>Exception name.</p>
          69  +
    /* BuilderGenerator.kt:314 */
   43     70   
    pub fn set_exception_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          71  +
        /* BuilderGenerator.kt:315 */
   44     72   
        self.exception_name = input;
   45     73   
        self
          74  +
        /* BuilderGenerator.kt:314 */
   46     75   
    }
   47         -
    /// <p>Exception name.</p>
          76  +
    /// /* BuilderGenerator.kt:334 */<p>Exception name.</p>
          77  +
    /* BuilderGenerator.kt:336 */
   48     78   
    pub fn get_exception_name(&self) -> &::std::option::Option<::std::string::String> {
          79  +
        /* BuilderGenerator.kt:337 */
   49     80   
        &self.exception_name
          81  +
        /* BuilderGenerator.kt:336 */
   50     82   
    }
   51         -
    /// <p>Description of the failure.</p>
          83  +
    /// /* BuilderGenerator.kt:286 */<p>Description of the failure.</p>
          84  +
    /* BuilderGenerator.kt:291 */
   52     85   
    pub fn exception_description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          86  +
        /* BuilderGenerator.kt:292 */
   53     87   
        self.exception_description = ::std::option::Option::Some(input.into());
          88  +
        /* BuilderGenerator.kt:293 */
   54     89   
        self
          90  +
        /* BuilderGenerator.kt:291 */
   55     91   
    }
   56         -
    /// <p>Description of the failure.</p>
          92  +
    /// /* BuilderGenerator.kt:312 */<p>Description of the failure.</p>
          93  +
    /* BuilderGenerator.kt:314 */
   57     94   
    pub fn set_exception_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          95  +
        /* BuilderGenerator.kt:315 */
   58     96   
        self.exception_description = input;
   59     97   
        self
          98  +
        /* BuilderGenerator.kt:314 */
   60     99   
    }
   61         -
    /// <p>Description of the failure.</p>
         100  +
    /// /* BuilderGenerator.kt:334 */<p>Description of the failure.</p>
         101  +
    /* BuilderGenerator.kt:336 */
   62    102   
    pub fn get_exception_description(&self) -> &::std::option::Option<::std::string::String> {
         103  +
        /* BuilderGenerator.kt:337 */
   63    104   
        &self.exception_description
         105  +
        /* BuilderGenerator.kt:336 */
   64    106   
    }
   65         -
    /// Consumes the builder and constructs a [`FailureException`](crate::types::FailureException).
         107  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`FailureException`](crate::types::FailureException).
         108  +
    /* BuilderGenerator.kt:253 */
   66    109   
    pub fn build(self) -> crate::types::FailureException {
         110  +
        /* BuilderGenerator.kt:477 */
   67    111   
        crate::types::FailureException {
   68         -
            exception_name: self.exception_name,
         112  +
            /* BuilderGenerator.kt:481 */ exception_name: self.exception_name,
         113  +
            /* BuilderGenerator.kt:481 */
   69    114   
            exception_description: self.exception_description,
         115  +
            /* BuilderGenerator.kt:477 */
   70    116   
        }
         117  +
        /* BuilderGenerator.kt:253 */
   71    118   
    }
         119  +
    /* BuilderGenerator.kt:355 */
   72    120   
}

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

@@ -1,1 +149,229 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Specifies an item and related attribute values to retrieve in a <code>TransactGetItem</code> object.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Specifies an item and related attribute values to retrieve in a <code>TransactGetItem</code> object.</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 Get {
    7         -
    /// <p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct Get {
           9  +
    /// /* StructureGenerator.kt:231 */<p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
    8     10   
    pub key: ::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>,
    9         -
    /// <p>The name of the table from which to retrieve the specified item.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table from which to retrieve the specified item.</p>
   10     12   
    pub table_name: ::std::string::String,
   11         -
    /// <p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
          13  +
    /// /* StructureGenerator.kt:231 */<p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
   12     14   
    pub projection_expression: ::std::option::Option<::std::string::String>,
   13         -
    /// <p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
          15  +
    /// /* StructureGenerator.kt:231 */<p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
   14     16   
    pub expression_attribute_names: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
          17  +
    /* StructureGenerator.kt:201 */
   15     18   
}
          19  +
/* StructureGenerator.kt:135 */
   16     20   
impl Get {
   17         -
    /// <p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
          21  +
    /// /* StructureGenerator.kt:231 */<p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
          22  +
    /* StructureGenerator.kt:166 */
   18     23   
    pub fn key(&self) -> &::std::collections::HashMap<::std::string::String, crate::types::AttributeValue> {
          24  +
        /* StructureGenerator.kt:172 */
   19     25   
        &self.key
          26  +
        /* StructureGenerator.kt:166 */
   20     27   
    }
   21         -
    /// <p>The name of the table from which to retrieve the specified item.</p>
          28  +
    /// /* StructureGenerator.kt:231 */<p>The name of the table from which to retrieve the specified item.</p>
          29  +
    /* StructureGenerator.kt:166 */
   22     30   
    pub fn table_name(&self) -> &str {
          31  +
        /* StructureGenerator.kt:171 */
   23     32   
        use std::ops::Deref;
   24     33   
        self.table_name.deref()
          34  +
        /* StructureGenerator.kt:166 */
   25     35   
    }
   26         -
    /// <p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
          36  +
    /// /* StructureGenerator.kt:231 */<p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
          37  +
    /* StructureGenerator.kt:166 */
   27     38   
    pub fn projection_expression(&self) -> ::std::option::Option<&str> {
          39  +
        /* StructureGenerator.kt:169 */
   28     40   
        self.projection_expression.as_deref()
          41  +
        /* StructureGenerator.kt:166 */
   29     42   
    }
   30         -
    /// <p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
          43  +
    /// /* StructureGenerator.kt:231 */<p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
          44  +
    /* StructureGenerator.kt:166 */
   31     45   
    pub fn expression_attribute_names(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
          46  +
        /* StructureGenerator.kt:170 */
   32     47   
        self.expression_attribute_names.as_ref()
          48  +
        /* StructureGenerator.kt:166 */
   33     49   
    }
          50  +
    /* StructureGenerator.kt:135 */
   34     51   
}
          52  +
/* ClientCodegenVisitor.kt:237 */
   35     53   
impl Get {
   36         -
    /// Creates a new builder-style object to manufacture [`Get`](crate::types::Get).
          54  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`Get`](crate::types::Get).
          55  +
    /* BuilderGenerator.kt:175 */
   37     56   
    pub fn builder() -> crate::types::builders::GetBuilder {
          57  +
        /* BuilderGenerator.kt:176 */
   38     58   
        crate::types::builders::GetBuilder::default()
          59  +
        /* BuilderGenerator.kt:175 */
   39     60   
    }
          61  +
    /* ClientCodegenVisitor.kt:237 */
   40     62   
}
   41     63   
   42         -
/// A builder for [`Get`](crate::types::Get).
          64  +
/// /* BuilderGenerator.kt:342 */A builder for [`Get`](crate::types::Get).
          65  +
/* RustType.kt:516 */
   43     66   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          67  +
/* RustType.kt:516 */
   44     68   
#[non_exhaustive]
          69  +
/* BuilderGenerator.kt:345 */
   45     70   
pub struct GetBuilder {
          71  +
    /* BuilderGenerator.kt:275 */
   46     72   
    pub(crate) key: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>>,
   47         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
   48         -
    pub(crate) projection_expression: ::std::option::Option<::std::string::String>,
          73  +
    /* BuilderGenerator.kt:275 */ pub(crate) table_name: ::std::option::Option<::std::string::String>,
          74  +
    /* BuilderGenerator.kt:275 */ pub(crate) projection_expression: ::std::option::Option<::std::string::String>,
          75  +
    /* BuilderGenerator.kt:275 */
   49     76   
    pub(crate) expression_attribute_names: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
          77  +
    /* BuilderGenerator.kt:345 */
   50     78   
}
          79  +
/* BuilderGenerator.kt:355 */
   51     80   
impl GetBuilder {
   52         -
    /// Adds a key-value pair to `key`.
          81  +
    /// /* BuilderGenerator.kt:436 */Adds a key-value pair to `key`.
          82  +
    /* BuilderGenerator.kt:437 */
   53     83   
    ///
   54         -
    /// To override the contents of this collection use [`set_key`](Self::set_key).
          84  +
    /// /* BuilderGenerator.kt:438 */To override the contents of this collection use [`set_key`](Self::set_key).
          85  +
    /* BuilderGenerator.kt:439 */
   55     86   
    ///
   56         -
    /// <p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
          87  +
    /// /* BuilderGenerator.kt:440 */<p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
          88  +
    /* BuilderGenerator.kt:445 */
   57     89   
    pub fn key(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::AttributeValue) -> Self {
          90  +
        /* BuilderGenerator.kt:448 */
   58     91   
        let mut hash_map = self.key.unwrap_or_default();
   59     92   
        hash_map.insert(k.into(), v);
   60     93   
        self.key = ::std::option::Option::Some(hash_map);
   61     94   
        self
          95  +
        /* BuilderGenerator.kt:445 */
   62     96   
    }
   63         -
    /// <p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
          97  +
    /// /* BuilderGenerator.kt:312 */<p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
          98  +
    /* BuilderGenerator.kt:314 */
   64     99   
    pub fn set_key(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>>) -> Self {
         100  +
        /* BuilderGenerator.kt:315 */
   65    101   
        self.key = input;
   66    102   
        self
         103  +
        /* BuilderGenerator.kt:314 */
   67    104   
    }
   68         -
    /// <p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
         105  +
    /// /* BuilderGenerator.kt:334 */<p>A map of attribute names to <code>AttributeValue</code> objects that specifies the primary key of the item to retrieve.</p>
         106  +
    /* BuilderGenerator.kt:336 */
   69    107   
    pub fn get_key(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, crate::types::AttributeValue>> {
         108  +
        /* BuilderGenerator.kt:337 */
   70    109   
        &self.key
         110  +
        /* BuilderGenerator.kt:336 */
   71    111   
    }
   72         -
    /// <p>The name of the table from which to retrieve the specified item.</p>
   73         -
    /// This field is required.
         112  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the table from which to retrieve the specified item.</p>
         113  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         114  +
    /* BuilderGenerator.kt:291 */
   74    115   
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         116  +
        /* BuilderGenerator.kt:292 */
   75    117   
        self.table_name = ::std::option::Option::Some(input.into());
         118  +
        /* BuilderGenerator.kt:293 */
   76    119   
        self
         120  +
        /* BuilderGenerator.kt:291 */
   77    121   
    }
   78         -
    /// <p>The name of the table from which to retrieve the specified item.</p>
         122  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the table from which to retrieve the specified item.</p>
         123  +
    /* BuilderGenerator.kt:314 */
   79    124   
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         125  +
        /* BuilderGenerator.kt:315 */
   80    126   
        self.table_name = input;
   81    127   
        self
         128  +
        /* BuilderGenerator.kt:314 */
   82    129   
    }
   83         -
    /// <p>The name of the table from which to retrieve the specified item.</p>
         130  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the table from which to retrieve the specified item.</p>
         131  +
    /* BuilderGenerator.kt:336 */
   84    132   
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
         133  +
        /* BuilderGenerator.kt:337 */
   85    134   
        &self.table_name
         135  +
        /* BuilderGenerator.kt:336 */
   86    136   
    }
   87         -
    /// <p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
         137  +
    /// /* BuilderGenerator.kt:286 */<p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
         138  +
    /* BuilderGenerator.kt:291 */
   88    139   
    pub fn projection_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         140  +
        /* BuilderGenerator.kt:292 */
   89    141   
        self.projection_expression = ::std::option::Option::Some(input.into());
         142  +
        /* BuilderGenerator.kt:293 */
   90    143   
        self
         144  +
        /* BuilderGenerator.kt:291 */
   91    145   
    }
   92         -
    /// <p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
         146  +
    /// /* BuilderGenerator.kt:312 */<p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
         147  +
    /* BuilderGenerator.kt:314 */
   93    148   
    pub fn set_projection_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         149  +
        /* BuilderGenerator.kt:315 */
   94    150   
        self.projection_expression = input;
   95    151   
        self
         152  +
        /* BuilderGenerator.kt:314 */
   96    153   
    }
   97         -
    /// <p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
         154  +
    /// /* BuilderGenerator.kt:334 */<p>A string that identifies one or more attributes of the specified item to retrieve from the table. The attributes in the expression must be separated by commas. If no attribute names are specified, then all attributes of the specified item are returned. If any of the requested attributes are not found, they do not appear in the result.</p>
         155  +
    /* BuilderGenerator.kt:336 */
   98    156   
    pub fn get_projection_expression(&self) -> &::std::option::Option<::std::string::String> {
         157  +
        /* BuilderGenerator.kt:337 */
   99    158   
        &self.projection_expression
         159  +
        /* BuilderGenerator.kt:336 */
  100    160   
    }
  101         -
    /// Adds a key-value pair to `expression_attribute_names`.
         161  +
    /// /* BuilderGenerator.kt:436 */Adds a key-value pair to `expression_attribute_names`.
         162  +
    /* BuilderGenerator.kt:437 */
  102    163   
    ///
  103         -
    /// To override the contents of this collection use [`set_expression_attribute_names`](Self::set_expression_attribute_names).
         164  +
    /// /* BuilderGenerator.kt:438 */To override the contents of this collection use [`set_expression_attribute_names`](Self::set_expression_attribute_names).
         165  +
    /* BuilderGenerator.kt:439 */
  104    166   
    ///
  105         -
    /// <p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
         167  +
    /// /* BuilderGenerator.kt:440 */<p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
         168  +
    /* BuilderGenerator.kt:445 */
  106    169   
    pub fn expression_attribute_names(
  107    170   
        mut self,
  108    171   
        k: impl ::std::convert::Into<::std::string::String>,
  109    172   
        v: impl ::std::convert::Into<::std::string::String>,
  110    173   
    ) -> Self {
         174  +
        /* BuilderGenerator.kt:448 */
  111    175   
        let mut hash_map = self.expression_attribute_names.unwrap_or_default();
  112    176   
        hash_map.insert(k.into(), v.into());
  113    177   
        self.expression_attribute_names = ::std::option::Option::Some(hash_map);
  114    178   
        self
         179  +
        /* BuilderGenerator.kt:445 */
  115    180   
    }
  116         -
    /// <p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
         181  +
    /// /* BuilderGenerator.kt:312 */<p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
         182  +
    /* BuilderGenerator.kt:314 */
  117    183   
    pub fn set_expression_attribute_names(
  118    184   
        mut self,
  119    185   
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
  120    186   
    ) -> Self {
         187  +
        /* BuilderGenerator.kt:315 */
  121    188   
        self.expression_attribute_names = input;
  122    189   
        self
         190  +
        /* BuilderGenerator.kt:314 */
  123    191   
    }
  124         -
    /// <p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
         192  +
    /// /* BuilderGenerator.kt:334 */<p>One or more substitution tokens for attribute names in the ProjectionExpression parameter.</p>
         193  +
    /* BuilderGenerator.kt:336 */
  125    194   
    pub fn get_expression_attribute_names(
  126    195   
        &self,
  127    196   
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
         197  +
        /* BuilderGenerator.kt:337 */
  128    198   
        &self.expression_attribute_names
         199  +
        /* BuilderGenerator.kt:336 */
  129    200   
    }
  130         -
    /// Consumes the builder and constructs a [`Get`](crate::types::Get).
  131         -
    /// This method will fail if any of the following fields are not set:
  132         -
    /// - [`key`](crate::types::builders::GetBuilder::key)
  133         -
    /// - [`table_name`](crate::types::builders::GetBuilder::table_name)
         201  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`Get`](crate::types::Get).
         202  +
    /// /* BuilderGenerator.kt:243 */This method will fail if any of the following fields are not set:
         203  +
    /// /* BuilderGenerator.kt:246 */- [`key`](crate::types::builders::GetBuilder::key)
         204  +
    /// /* BuilderGenerator.kt:246 */- [`table_name`](crate::types::builders::GetBuilder::table_name)
         205  +
    /* BuilderGenerator.kt:253 */
  134    206   
    pub fn build(self) -> ::std::result::Result<crate::types::Get, ::aws_smithy_types::error::operation::BuildError> {
  135         -
        ::std::result::Result::Ok(crate::types::Get {
  136         -
            key: self.key.ok_or_else(|| {
  137         -
                ::aws_smithy_types::error::operation::BuildError::missing_field("key", "key was not specified but it is required when building Get")
  138         -
            })?,
  139         -
            table_name: self.table_name.ok_or_else(|| {
  140         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  141         -
                    "table_name",
  142         -
                    "table_name was not specified but it is required when building Get",
  143         -
                )
  144         -
            })?,
  145         -
            projection_expression: self.projection_expression,
  146         -
            expression_attribute_names: self.expression_attribute_names,
  147         -
        })
  148         -
    }
         207  +
        /* BuilderGenerator.kt:254 */
         208  +
        ::std::result::Result::Ok(
         209  +
            /* BuilderGenerator.kt:477 */crate::types::Get {
         210  +
                /* BuilderGenerator.kt:481 */key: self.key
         211  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         212  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("key", "key was not specified but it is required when building Get")
         213  +
                    /* BuilderGenerator.kt:494 */)?
         214  +
                ,
         215  +
                /* BuilderGenerator.kt:481 */table_name: self.table_name
         216  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         217  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("table_name", "table_name was not specified but it is required when building Get")
         218  +
                    /* BuilderGenerator.kt:494 */)?
         219  +
                ,
         220  +
                /* BuilderGenerator.kt:481 */projection_expression: self.projection_expression
         221  +
                ,
         222  +
                /* BuilderGenerator.kt:481 */expression_attribute_names: self.expression_attribute_names
         223  +
                ,
         224  +
            /* BuilderGenerator.kt:477 */}
         225  +
        /* BuilderGenerator.kt:254 */)
         226  +
        /* BuilderGenerator.kt:253 */
         227  +
    }
         228  +
    /* BuilderGenerator.kt:355 */
  149    229   
}

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

@@ -1,1 +195,268 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the properties of a global secondary index.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the properties of a global secondary index.</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 GlobalSecondaryIndex {
    7         -
    /// <p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct GlobalSecondaryIndex {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
    8     10   
    pub index_name: ::std::string::String,
    9         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
   10     12   
    /// <ul>
   11     13   
    /// <li>
   12     14   
    /// <p><code>HASH</code> - partition key</p></li>
   13     15   
    /// <li>
   14     16   
    /// <p><code>RANGE</code> - sort key</p></li>
   15     17   
    /// </ul><note>
   16     18   
    /// <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>
   17     19   
    /// <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>
   18     20   
    /// </note>
   19     21   
    pub key_schema: ::std::vec::Vec<crate::types::KeySchemaElement>,
   20         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
          22  +
    /// /* StructureGenerator.kt:231 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
   21     23   
    pub projection: crate::types::Projection,
   22         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
   23     25   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   24     26   
    pub provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
          27  +
    /* StructureGenerator.kt:201 */
   25     28   
}
          29  +
/* StructureGenerator.kt:135 */
   26     30   
impl GlobalSecondaryIndex {
   27         -
    /// <p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
          31  +
    /// /* StructureGenerator.kt:231 */<p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
          32  +
    /* StructureGenerator.kt:166 */
   28     33   
    pub fn index_name(&self) -> &str {
          34  +
        /* StructureGenerator.kt:171 */
   29     35   
        use std::ops::Deref;
   30     36   
        self.index_name.deref()
          37  +
        /* StructureGenerator.kt:166 */
   31     38   
    }
   32         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
          39  +
    /// /* StructureGenerator.kt:231 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
   33     40   
    /// <ul>
   34     41   
    /// <li>
   35     42   
    /// <p><code>HASH</code> - partition key</p></li>
   36     43   
    /// <li>
   37     44   
    /// <p><code>RANGE</code> - sort key</p></li>
   38     45   
    /// </ul><note>
   39     46   
    /// <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>
   40     47   
    /// <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>
   41     48   
    /// </note>
          49  +
    /* StructureGenerator.kt:166 */
   42     50   
    pub fn key_schema(&self) -> &[crate::types::KeySchemaElement] {
          51  +
        /* StructureGenerator.kt:171 */
   43     52   
        use std::ops::Deref;
   44     53   
        self.key_schema.deref()
          54  +
        /* StructureGenerator.kt:166 */
   45     55   
    }
   46         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
          56  +
    /// /* StructureGenerator.kt:231 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
          57  +
    /* StructureGenerator.kt:166 */
   47     58   
    pub fn projection(&self) -> &crate::types::Projection {
          59  +
        /* StructureGenerator.kt:172 */
   48     60   
        &self.projection
          61  +
        /* StructureGenerator.kt:166 */
   49     62   
    }
   50         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
          63  +
    /// /* StructureGenerator.kt:231 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
   51     64   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
          65  +
    /* StructureGenerator.kt:166 */
   52     66   
    pub fn provisioned_throughput(&self) -> ::std::option::Option<&crate::types::ProvisionedThroughput> {
          67  +
        /* StructureGenerator.kt:170 */
   53     68   
        self.provisioned_throughput.as_ref()
          69  +
        /* StructureGenerator.kt:166 */
   54     70   
    }
          71  +
    /* StructureGenerator.kt:135 */
   55     72   
}
          73  +
/* ClientCodegenVisitor.kt:237 */
   56     74   
impl GlobalSecondaryIndex {
   57         -
    /// Creates a new builder-style object to manufacture [`GlobalSecondaryIndex`](crate::types::GlobalSecondaryIndex).
          75  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`GlobalSecondaryIndex`](crate::types::GlobalSecondaryIndex).
          76  +
    /* BuilderGenerator.kt:175 */
   58     77   
    pub fn builder() -> crate::types::builders::GlobalSecondaryIndexBuilder {
          78  +
        /* BuilderGenerator.kt:176 */
   59     79   
        crate::types::builders::GlobalSecondaryIndexBuilder::default()
          80  +
        /* BuilderGenerator.kt:175 */
   60     81   
    }
          82  +
    /* ClientCodegenVisitor.kt:237 */
   61     83   
}
   62     84   
   63         -
/// A builder for [`GlobalSecondaryIndex`](crate::types::GlobalSecondaryIndex).
          85  +
/// /* BuilderGenerator.kt:342 */A builder for [`GlobalSecondaryIndex`](crate::types::GlobalSecondaryIndex).
          86  +
/* RustType.kt:516 */
   64     87   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          88  +
/* RustType.kt:516 */
   65     89   
#[non_exhaustive]
          90  +
/* BuilderGenerator.kt:345 */
   66     91   
pub struct GlobalSecondaryIndexBuilder {
   67         -
    pub(crate) index_name: ::std::option::Option<::std::string::String>,
   68         -
    pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
   69         -
    pub(crate) projection: ::std::option::Option<crate::types::Projection>,
          92  +
    /* BuilderGenerator.kt:275 */ pub(crate) index_name: ::std::option::Option<::std::string::String>,
          93  +
    /* BuilderGenerator.kt:275 */ pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
          94  +
    /* BuilderGenerator.kt:275 */ pub(crate) projection: ::std::option::Option<crate::types::Projection>,
          95  +
    /* BuilderGenerator.kt:275 */
   70     96   
    pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
          97  +
    /* BuilderGenerator.kt:345 */
   71     98   
}
          99  +
/* BuilderGenerator.kt:355 */
   72    100   
impl GlobalSecondaryIndexBuilder {
   73         -
    /// <p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
   74         -
    /// This field is required.
         101  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
         102  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         103  +
    /* BuilderGenerator.kt:291 */
   75    104   
    pub fn index_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         105  +
        /* BuilderGenerator.kt:292 */
   76    106   
        self.index_name = ::std::option::Option::Some(input.into());
         107  +
        /* BuilderGenerator.kt:293 */
   77    108   
        self
         109  +
        /* BuilderGenerator.kt:291 */
   78    110   
    }
   79         -
    /// <p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
         111  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
         112  +
    /* BuilderGenerator.kt:314 */
   80    113   
    pub fn set_index_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         114  +
        /* BuilderGenerator.kt:315 */
   81    115   
        self.index_name = input;
   82    116   
        self
         117  +
        /* BuilderGenerator.kt:314 */
   83    118   
    }
   84         -
    /// <p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
         119  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the global secondary index. The name must be unique among all other indexes on this table.</p>
         120  +
    /* BuilderGenerator.kt:336 */
   85    121   
    pub fn get_index_name(&self) -> &::std::option::Option<::std::string::String> {
         122  +
        /* BuilderGenerator.kt:337 */
   86    123   
        &self.index_name
         124  +
        /* BuilderGenerator.kt:336 */
   87    125   
    }
   88         -
    /// Appends an item to `key_schema`.
         126  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `key_schema`.
         127  +
    /* BuilderGenerator.kt:411 */
   89    128   
    ///
   90         -
    /// To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
         129  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
         130  +
    /* BuilderGenerator.kt:413 */
   91    131   
    ///
   92         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
         132  +
    /// /* BuilderGenerator.kt:414 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
   93    133   
    /// <ul>
   94    134   
    /// <li>
   95    135   
    /// <p><code>HASH</code> - partition key</p></li>
   96    136   
    /// <li>
   97    137   
    /// <p><code>RANGE</code> - sort key</p></li>
   98    138   
    /// </ul><note>
   99    139   
    /// <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>
  100    140   
    /// <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>
  101    141   
    /// </note>
         142  +
    /* BuilderGenerator.kt:418 */
  102    143   
    pub fn key_schema(mut self, input: crate::types::KeySchemaElement) -> Self {
         144  +
        /* BuilderGenerator.kt:419 */
  103    145   
        let mut v = self.key_schema.unwrap_or_default();
  104    146   
        v.push(input);
  105    147   
        self.key_schema = ::std::option::Option::Some(v);
  106    148   
        self
         149  +
        /* BuilderGenerator.kt:418 */
  107    150   
    }
  108         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
         151  +
    /// /* BuilderGenerator.kt:312 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
  109    152   
    /// <ul>
  110    153   
    /// <li>
  111    154   
    /// <p><code>HASH</code> - partition key</p></li>
  112    155   
    /// <li>
  113    156   
    /// <p><code>RANGE</code> - sort key</p></li>
  114    157   
    /// </ul><note>
  115    158   
    /// <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>
  116    159   
    /// <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>
  117    160   
    /// </note>
         161  +
    /* BuilderGenerator.kt:314 */
  118    162   
    pub fn set_key_schema(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>) -> Self {
         163  +
        /* BuilderGenerator.kt:315 */
  119    164   
        self.key_schema = input;
  120    165   
        self
         166  +
        /* BuilderGenerator.kt:314 */
  121    167   
    }
  122         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
         168  +
    /// /* BuilderGenerator.kt:334 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
  123    169   
    /// <ul>
  124    170   
    /// <li>
  125    171   
    /// <p><code>HASH</code> - partition key</p></li>
  126    172   
    /// <li>
  127    173   
    /// <p><code>RANGE</code> - sort key</p></li>
  128    174   
    /// </ul><note>
  129    175   
    /// <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>
  130    176   
    /// <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>
  131    177   
    /// </note>
         178  +
    /* BuilderGenerator.kt:336 */
  132    179   
    pub fn get_key_schema(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>> {
         180  +
        /* BuilderGenerator.kt:337 */
  133    181   
        &self.key_schema
         182  +
        /* BuilderGenerator.kt:336 */
  134    183   
    }
  135         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
  136         -
    /// This field is required.
         184  +
    /// /* BuilderGenerator.kt:286 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         185  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         186  +
    /* BuilderGenerator.kt:291 */
  137    187   
    pub fn projection(mut self, input: crate::types::Projection) -> Self {
         188  +
        /* BuilderGenerator.kt:292 */
  138    189   
        self.projection = ::std::option::Option::Some(input);
         190  +
        /* BuilderGenerator.kt:293 */
  139    191   
        self
         192  +
        /* BuilderGenerator.kt:291 */
  140    193   
    }
  141         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         194  +
    /// /* BuilderGenerator.kt:312 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         195  +
    /* BuilderGenerator.kt:314 */
  142    196   
    pub fn set_projection(mut self, input: ::std::option::Option<crate::types::Projection>) -> Self {
         197  +
        /* BuilderGenerator.kt:315 */
  143    198   
        self.projection = input;
  144    199   
        self
         200  +
        /* BuilderGenerator.kt:314 */
  145    201   
    }
  146         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         202  +
    /// /* BuilderGenerator.kt:334 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         203  +
    /* BuilderGenerator.kt:336 */
  147    204   
    pub fn get_projection(&self) -> &::std::option::Option<crate::types::Projection> {
         205  +
        /* BuilderGenerator.kt:337 */
  148    206   
        &self.projection
         207  +
        /* BuilderGenerator.kt:336 */
  149    208   
    }
  150         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
         209  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
  151    210   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         211  +
    /* BuilderGenerator.kt:291 */
  152    212   
    pub fn provisioned_throughput(mut self, input: crate::types::ProvisionedThroughput) -> Self {
         213  +
        /* BuilderGenerator.kt:292 */
  153    214   
        self.provisioned_throughput = ::std::option::Option::Some(input);
         215  +
        /* BuilderGenerator.kt:293 */
  154    216   
        self
         217  +
        /* BuilderGenerator.kt:291 */
  155    218   
    }
  156         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
         219  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
  157    220   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         221  +
    /* BuilderGenerator.kt:314 */
  158    222   
    pub fn set_provisioned_throughput(mut self, input: ::std::option::Option<crate::types::ProvisionedThroughput>) -> Self {
         223  +
        /* BuilderGenerator.kt:315 */
  159    224   
        self.provisioned_throughput = input;
  160    225   
        self
         226  +
        /* BuilderGenerator.kt:314 */
  161    227   
    }
  162         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
         228  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
  163    229   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         230  +
    /* BuilderGenerator.kt:336 */
  164    231   
    pub fn get_provisioned_throughput(&self) -> &::std::option::Option<crate::types::ProvisionedThroughput> {
         232  +
        /* BuilderGenerator.kt:337 */
  165    233   
        &self.provisioned_throughput
         234  +
        /* BuilderGenerator.kt:336 */
  166    235   
    }
  167         -
    /// Consumes the builder and constructs a [`GlobalSecondaryIndex`](crate::types::GlobalSecondaryIndex).
  168         -
    /// This method will fail if any of the following fields are not set:
  169         -
    /// - [`index_name`](crate::types::builders::GlobalSecondaryIndexBuilder::index_name)
  170         -
    /// - [`key_schema`](crate::types::builders::GlobalSecondaryIndexBuilder::key_schema)
  171         -
    /// - [`projection`](crate::types::builders::GlobalSecondaryIndexBuilder::projection)
         236  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`GlobalSecondaryIndex`](crate::types::GlobalSecondaryIndex).
         237  +
    /// /* BuilderGenerator.kt:243 */This method will fail if any of the following fields are not set:
         238  +
    /// /* BuilderGenerator.kt:246 */- [`index_name`](crate::types::builders::GlobalSecondaryIndexBuilder::index_name)
         239  +
    /// /* BuilderGenerator.kt:246 */- [`key_schema`](crate::types::builders::GlobalSecondaryIndexBuilder::key_schema)
         240  +
    /// /* BuilderGenerator.kt:246 */- [`projection`](crate::types::builders::GlobalSecondaryIndexBuilder::projection)
         241  +
    /* BuilderGenerator.kt:253 */
  172    242   
    pub fn build(self) -> ::std::result::Result<crate::types::GlobalSecondaryIndex, ::aws_smithy_types::error::operation::BuildError> {
  173         -
        ::std::result::Result::Ok(crate::types::GlobalSecondaryIndex {
  174         -
            index_name: self.index_name.ok_or_else(|| {
  175         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  176         -
                    "index_name",
  177         -
                    "index_name was not specified but it is required when building GlobalSecondaryIndex",
  178         -
                )
  179         -
            })?,
  180         -
            key_schema: self.key_schema.ok_or_else(|| {
  181         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  182         -
                    "key_schema",
  183         -
                    "key_schema was not specified but it is required when building GlobalSecondaryIndex",
  184         -
                )
  185         -
            })?,
  186         -
            projection: self.projection.ok_or_else(|| {
  187         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  188         -
                    "projection",
  189         -
                    "projection was not specified but it is required when building GlobalSecondaryIndex",
  190         -
                )
  191         -
            })?,
  192         -
            provisioned_throughput: self.provisioned_throughput,
  193         -
        })
         243  +
        /* BuilderGenerator.kt:254 */
         244  +
        ::std::result::Result::Ok(
         245  +
            /* BuilderGenerator.kt:477 */crate::types::GlobalSecondaryIndex {
         246  +
                /* BuilderGenerator.kt:481 */index_name: self.index_name
         247  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         248  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("index_name", "index_name was not specified but it is required when building GlobalSecondaryIndex")
         249  +
                    /* BuilderGenerator.kt:494 */)?
         250  +
                ,
         251  +
                /* BuilderGenerator.kt:481 */key_schema: self.key_schema
         252  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         253  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("key_schema", "key_schema was not specified but it is required when building GlobalSecondaryIndex")
         254  +
                    /* BuilderGenerator.kt:494 */)?
         255  +
                ,
         256  +
                /* BuilderGenerator.kt:481 */projection: self.projection
         257  +
                    /* BuilderGenerator.kt:494 */.ok_or_else(||
         258  +
                        /* BuilderGenerator.kt:117 */::aws_smithy_types::error::operation::BuildError::missing_field("projection", "projection was not specified but it is required when building GlobalSecondaryIndex")
         259  +
                    /* BuilderGenerator.kt:494 */)?
         260  +
                ,
         261  +
                /* BuilderGenerator.kt:481 */provisioned_throughput: self.provisioned_throughput
         262  +
                ,
         263  +
            /* BuilderGenerator.kt:477 */}
         264  +
        /* BuilderGenerator.kt:254 */)
         265  +
        /* BuilderGenerator.kt:253 */
  194    266   
    }
         267  +
    /* BuilderGenerator.kt:355 */
  195    268   
}

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

@@ -1,1 +75,123 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the auto scaling settings of a global secondary index for a global table that will be modified.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the auto scaling settings of a global secondary index for a global table that will be modified.</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 GlobalSecondaryIndexAutoScalingUpdate {
    7         -
    /// <p>The name of the global secondary index.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct GlobalSecondaryIndexAutoScalingUpdate {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The name of the global secondary index.</p>
    8     10   
    pub index_name: ::std::option::Option<::std::string::String>,
    9         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
   10     12   
    pub provisioned_write_capacity_auto_scaling_update: ::std::option::Option<crate::types::AutoScalingSettingsUpdate>,
          13  +
    /* StructureGenerator.kt:201 */
   11     14   
}
          15  +
/* StructureGenerator.kt:135 */
   12     16   
impl GlobalSecondaryIndexAutoScalingUpdate {
   13         -
    /// <p>The name of the global secondary index.</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>The name of the global secondary index.</p>
          18  +
    /* StructureGenerator.kt:166 */
   14     19   
    pub fn index_name(&self) -> ::std::option::Option<&str> {
          20  +
        /* StructureGenerator.kt:169 */
   15     21   
        self.index_name.as_deref()
          22  +
        /* StructureGenerator.kt:166 */
   16     23   
    }
   17         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          25  +
    /* StructureGenerator.kt:166 */
   18     26   
    pub fn provisioned_write_capacity_auto_scaling_update(&self) -> ::std::option::Option<&crate::types::AutoScalingSettingsUpdate> {
          27  +
        /* StructureGenerator.kt:170 */
   19     28   
        self.provisioned_write_capacity_auto_scaling_update.as_ref()
          29  +
        /* StructureGenerator.kt:166 */
   20     30   
    }
          31  +
    /* StructureGenerator.kt:135 */
   21     32   
}
          33  +
/* ClientCodegenVisitor.kt:237 */
   22     34   
impl GlobalSecondaryIndexAutoScalingUpdate {
   23         -
    /// Creates a new builder-style object to manufacture [`GlobalSecondaryIndexAutoScalingUpdate`](crate::types::GlobalSecondaryIndexAutoScalingUpdate).
          35  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`GlobalSecondaryIndexAutoScalingUpdate`](crate::types::GlobalSecondaryIndexAutoScalingUpdate).
          36  +
    /* BuilderGenerator.kt:175 */
   24     37   
    pub fn builder() -> crate::types::builders::GlobalSecondaryIndexAutoScalingUpdateBuilder {
          38  +
        /* BuilderGenerator.kt:176 */
   25     39   
        crate::types::builders::GlobalSecondaryIndexAutoScalingUpdateBuilder::default()
          40  +
        /* BuilderGenerator.kt:175 */
   26     41   
    }
          42  +
    /* ClientCodegenVisitor.kt:237 */
   27     43   
}
   28     44   
   29         -
/// A builder for [`GlobalSecondaryIndexAutoScalingUpdate`](crate::types::GlobalSecondaryIndexAutoScalingUpdate).
          45  +
/// /* BuilderGenerator.kt:342 */A builder for [`GlobalSecondaryIndexAutoScalingUpdate`](crate::types::GlobalSecondaryIndexAutoScalingUpdate).
          46  +
/* RustType.kt:516 */
   30     47   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          48  +
/* RustType.kt:516 */
   31     49   
#[non_exhaustive]
          50  +
/* BuilderGenerator.kt:345 */
   32     51   
pub struct GlobalSecondaryIndexAutoScalingUpdateBuilder {
   33         -
    pub(crate) index_name: ::std::option::Option<::std::string::String>,
          52  +
    /* BuilderGenerator.kt:275 */ pub(crate) index_name: ::std::option::Option<::std::string::String>,
          53  +
    /* BuilderGenerator.kt:275 */
   34     54   
    pub(crate) provisioned_write_capacity_auto_scaling_update: ::std::option::Option<crate::types::AutoScalingSettingsUpdate>,
          55  +
    /* BuilderGenerator.kt:345 */
   35     56   
}
          57  +
/* BuilderGenerator.kt:355 */
   36     58   
impl GlobalSecondaryIndexAutoScalingUpdateBuilder {
   37         -
    /// <p>The name of the global secondary index.</p>
          59  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the global secondary index.</p>
          60  +
    /* BuilderGenerator.kt:291 */
   38     61   
    pub fn index_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          62  +
        /* BuilderGenerator.kt:292 */
   39     63   
        self.index_name = ::std::option::Option::Some(input.into());
          64  +
        /* BuilderGenerator.kt:293 */
   40     65   
        self
          66  +
        /* BuilderGenerator.kt:291 */
   41     67   
    }
   42         -
    /// <p>The name of the global secondary index.</p>
          68  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the global secondary index.</p>
          69  +
    /* BuilderGenerator.kt:314 */
   43     70   
    pub fn set_index_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          71  +
        /* BuilderGenerator.kt:315 */
   44     72   
        self.index_name = input;
   45     73   
        self
          74  +
        /* BuilderGenerator.kt:314 */
   46     75   
    }
   47         -
    /// <p>The name of the global secondary index.</p>
          76  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the global secondary index.</p>
          77  +
    /* BuilderGenerator.kt:336 */
   48     78   
    pub fn get_index_name(&self) -> &::std::option::Option<::std::string::String> {
          79  +
        /* BuilderGenerator.kt:337 */
   49     80   
        &self.index_name
          81  +
        /* BuilderGenerator.kt:336 */
   50     82   
    }
   51         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          83  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          84  +
    /* BuilderGenerator.kt:291 */
   52     85   
    pub fn provisioned_write_capacity_auto_scaling_update(mut self, input: crate::types::AutoScalingSettingsUpdate) -> Self {
          86  +
        /* BuilderGenerator.kt:292 */
   53     87   
        self.provisioned_write_capacity_auto_scaling_update = ::std::option::Option::Some(input);
          88  +
        /* BuilderGenerator.kt:293 */
   54     89   
        self
          90  +
        /* BuilderGenerator.kt:291 */
   55     91   
    }
   56         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          92  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
          93  +
    /* BuilderGenerator.kt:314 */
   57     94   
    pub fn set_provisioned_write_capacity_auto_scaling_update(
   58     95   
        mut self,
   59     96   
        input: ::std::option::Option<crate::types::AutoScalingSettingsUpdate>,
   60     97   
    ) -> Self {
          98  +
        /* BuilderGenerator.kt:315 */
   61     99   
        self.provisioned_write_capacity_auto_scaling_update = input;
   62    100   
        self
         101  +
        /* BuilderGenerator.kt:314 */
   63    102   
    }
   64         -
    /// <p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         103  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the auto scaling settings to be modified for a global table or global secondary index.</p>
         104  +
    /* BuilderGenerator.kt:336 */
   65    105   
    pub fn get_provisioned_write_capacity_auto_scaling_update(&self) -> &::std::option::Option<crate::types::AutoScalingSettingsUpdate> {
         106  +
        /* BuilderGenerator.kt:337 */
   66    107   
        &self.provisioned_write_capacity_auto_scaling_update
         108  +
        /* BuilderGenerator.kt:336 */
   67    109   
    }
   68         -
    /// Consumes the builder and constructs a [`GlobalSecondaryIndexAutoScalingUpdate`](crate::types::GlobalSecondaryIndexAutoScalingUpdate).
         110  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`GlobalSecondaryIndexAutoScalingUpdate`](crate::types::GlobalSecondaryIndexAutoScalingUpdate).
         111  +
    /* BuilderGenerator.kt:253 */
   69    112   
    pub fn build(self) -> crate::types::GlobalSecondaryIndexAutoScalingUpdate {
         113  +
        /* BuilderGenerator.kt:477 */
   70    114   
        crate::types::GlobalSecondaryIndexAutoScalingUpdate {
   71         -
            index_name: self.index_name,
         115  +
            /* BuilderGenerator.kt:481 */ index_name: self.index_name,
         116  +
            /* BuilderGenerator.kt:481 */
   72    117   
            provisioned_write_capacity_auto_scaling_update: self.provisioned_write_capacity_auto_scaling_update,
         118  +
            /* BuilderGenerator.kt:477 */
   73    119   
        }
         120  +
        /* BuilderGenerator.kt:253 */
   74    121   
    }
         122  +
    /* BuilderGenerator.kt:355 */
   75    123   
}

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

@@ -1,1 +349,504 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Represents the properties of a global secondary index.</p>
           2  +
/* StructureGenerator.kt:197 */
           3  +
/// /* StructureGenerator.kt:197 */<p>Represents the properties of a global secondary index.</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 GlobalSecondaryIndexDescription {
    7         -
    /// <p>The name of the global secondary index.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct GlobalSecondaryIndexDescription {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The name of the global secondary index.</p>
    8     10   
    pub index_name: ::std::option::Option<::std::string::String>,
    9         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
   10     12   
    /// <ul>
   11     13   
    /// <li>
   12     14   
    /// <p><code>HASH</code> - partition key</p></li>
   13     15   
    /// <li>
   14     16   
    /// <p><code>RANGE</code> - sort key</p></li>
   15     17   
    /// </ul><note>
   16     18   
    /// <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>
   17     19   
    /// <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>
   18     20   
    /// </note>
   19     21   
    pub key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
   20         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
          22  +
    /// /* StructureGenerator.kt:231 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
   21     23   
    pub projection: ::std::option::Option<crate::types::Projection>,
   22         -
    /// <p>The current state of the global secondary index:</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>The current state of the global secondary index:</p>
   23     25   
    /// <ul>
   24     26   
    /// <li>
   25     27   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
   26     28   
    /// <li>
   27     29   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
   28     30   
    /// <li>
   29     31   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
   30     32   
    /// <li>
   31     33   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
   32     34   
    /// </ul>
   33     35   
    pub index_status: ::std::option::Option<crate::types::IndexStatus>,
   34         -
    /// <p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
          36  +
    /// /* StructureGenerator.kt:231 */<p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
   35     37   
    /// <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.</p><note>
   36     38   
    /// <p>For indexes that were created during a <code>CreateTable</code> operation, the <code>Backfilling</code> attribute does not appear in the <code>DescribeTable</code> output.</p>
   37     39   
    /// </note>
   38     40   
    pub backfilling: ::std::option::Option<bool>,
   39         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
          41  +
    /// /* StructureGenerator.kt:231 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
   40     42   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   41     43   
    pub provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughputDescription>,
   42         -
    /// <p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
          44  +
    /// /* StructureGenerator.kt:231 */<p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
   43     45   
    pub index_size_bytes: i64,
   44         -
    /// <p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
          46  +
    /// /* StructureGenerator.kt:231 */<p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
   45     47   
    pub item_count: i64,
   46         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
          48  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
   47     49   
    pub index_arn: ::std::option::Option<::std::string::String>,
          50  +
    /* StructureGenerator.kt:201 */
   48     51   
}
          52  +
/* StructureGenerator.kt:135 */
   49     53   
impl GlobalSecondaryIndexDescription {
   50         -
    /// <p>The name of the global secondary index.</p>
          54  +
    /// /* StructureGenerator.kt:231 */<p>The name of the global secondary index.</p>
          55  +
    /* StructureGenerator.kt:166 */
   51     56   
    pub fn index_name(&self) -> ::std::option::Option<&str> {
          57  +
        /* StructureGenerator.kt:169 */
   52     58   
        self.index_name.as_deref()
          59  +
        /* StructureGenerator.kt:166 */
   53     60   
    }
   54         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
          61  +
    /// /* StructureGenerator.kt:231 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
   55     62   
    /// <ul>
   56     63   
    /// <li>
   57     64   
    /// <p><code>HASH</code> - partition key</p></li>
   58     65   
    /// <li>
   59     66   
    /// <p><code>RANGE</code> - sort key</p></li>
   60     67   
    /// </ul><note>
   61     68   
    /// <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>
   62     69   
    /// <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>
   63     70   
    /// </note>
   64         -
    ///
   65         -
    /// 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()`.
          71  +
    /// /* StructureGenerator.kt:162 */
          72  +
    /// /* 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()`.
          73  +
    /* StructureGenerator.kt:166 */
   66     74   
    pub fn key_schema(&self) -> &[crate::types::KeySchemaElement] {
   67         -
        self.key_schema.as_deref().unwrap_or_default()
   68         -
    }
   69         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
          75  +
        /* StructureGenerator.kt:169 */
          76  +
        self.key_schema
          77  +
            .as_deref()
          78  +
            /* StructureGenerator.kt:175 */
          79  +
            .unwrap_or_default()
          80  +
        /* StructureGenerator.kt:166 */
          81  +
    }
          82  +
    /// /* StructureGenerator.kt:231 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
          83  +
    /* StructureGenerator.kt:166 */
   70     84   
    pub fn projection(&self) -> ::std::option::Option<&crate::types::Projection> {
          85  +
        /* StructureGenerator.kt:170 */
   71     86   
        self.projection.as_ref()
          87  +
        /* StructureGenerator.kt:166 */
   72     88   
    }
   73         -
    /// <p>The current state of the global secondary index:</p>
          89  +
    /// /* StructureGenerator.kt:231 */<p>The current state of the global secondary index:</p>
   74     90   
    /// <ul>
   75     91   
    /// <li>
   76     92   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
   77     93   
    /// <li>
   78     94   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
   79     95   
    /// <li>
   80     96   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
   81     97   
    /// <li>
   82     98   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
   83     99   
    /// </ul>
         100  +
    /* StructureGenerator.kt:166 */
   84    101   
    pub fn index_status(&self) -> ::std::option::Option<&crate::types::IndexStatus> {
         102  +
        /* StructureGenerator.kt:170 */
   85    103   
        self.index_status.as_ref()
         104  +
        /* StructureGenerator.kt:166 */
   86    105   
    }
   87         -
    /// <p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
         106  +
    /// /* StructureGenerator.kt:231 */<p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
   88    107   
    /// <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.</p><note>
   89    108   
    /// <p>For indexes that were created during a <code>CreateTable</code> operation, the <code>Backfilling</code> attribute does not appear in the <code>DescribeTable</code> output.</p>
   90    109   
    /// </note>
         110  +
    /* StructureGenerator.kt:166 */
   91    111   
    pub fn backfilling(&self) -> ::std::option::Option<bool> {
         112  +
        /* StructureGenerator.kt:168 */
   92    113   
        self.backfilling
         114  +
        /* StructureGenerator.kt:166 */
   93    115   
    }
   94         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
         116  +
    /// /* StructureGenerator.kt:231 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
   95    117   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         118  +
    /* StructureGenerator.kt:166 */
   96    119   
    pub fn provisioned_throughput(&self) -> ::std::option::Option<&crate::types::ProvisionedThroughputDescription> {
         120  +
        /* StructureGenerator.kt:170 */
   97    121   
        self.provisioned_throughput.as_ref()
         122  +
        /* StructureGenerator.kt:166 */
   98    123   
    }
   99         -
    /// <p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         124  +
    /// /* StructureGenerator.kt:231 */<p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         125  +
    /* StructureGenerator.kt:166 */
  100    126   
    pub fn index_size_bytes(&self) -> i64 {
         127  +
        /* StructureGenerator.kt:168 */
  101    128   
        self.index_size_bytes
         129  +
        /* StructureGenerator.kt:166 */
  102    130   
    }
  103         -
    /// <p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         131  +
    /// /* StructureGenerator.kt:231 */<p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         132  +
    /* StructureGenerator.kt:166 */
  104    133   
    pub fn item_count(&self) -> i64 {
         134  +
        /* StructureGenerator.kt:168 */
  105    135   
        self.item_count
         136  +
        /* StructureGenerator.kt:166 */
  106    137   
    }
  107         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
         138  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
         139  +
    /* StructureGenerator.kt:166 */
  108    140   
    pub fn index_arn(&self) -> ::std::option::Option<&str> {
         141  +
        /* StructureGenerator.kt:169 */
  109    142   
        self.index_arn.as_deref()
         143  +
        /* StructureGenerator.kt:166 */
  110    144   
    }
         145  +
    /* StructureGenerator.kt:135 */
  111    146   
}
         147  +
/* ClientCodegenVisitor.kt:237 */
  112    148   
impl GlobalSecondaryIndexDescription {
  113         -
    /// Creates a new builder-style object to manufacture [`GlobalSecondaryIndexDescription`](crate::types::GlobalSecondaryIndexDescription).
         149  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`GlobalSecondaryIndexDescription`](crate::types::GlobalSecondaryIndexDescription).
         150  +
    /* BuilderGenerator.kt:175 */
  114    151   
    pub fn builder() -> crate::types::builders::GlobalSecondaryIndexDescriptionBuilder {
         152  +
        /* BuilderGenerator.kt:176 */
  115    153   
        crate::types::builders::GlobalSecondaryIndexDescriptionBuilder::default()
         154  +
        /* BuilderGenerator.kt:175 */
  116    155   
    }
         156  +
    /* ClientCodegenVisitor.kt:237 */
  117    157   
}
  118    158   
  119         -
/// A builder for [`GlobalSecondaryIndexDescription`](crate::types::GlobalSecondaryIndexDescription).
         159  +
/// /* BuilderGenerator.kt:342 */A builder for [`GlobalSecondaryIndexDescription`](crate::types::GlobalSecondaryIndexDescription).
         160  +
/* RustType.kt:516 */
  120    161   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         162  +
/* RustType.kt:516 */
  121    163   
#[non_exhaustive]
         164  +
/* BuilderGenerator.kt:345 */
  122    165   
pub struct GlobalSecondaryIndexDescriptionBuilder {
  123         -
    pub(crate) index_name: ::std::option::Option<::std::string::String>,
  124         -
    pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
  125         -
    pub(crate) projection: ::std::option::Option<crate::types::Projection>,
  126         -
    pub(crate) index_status: ::std::option::Option<crate::types::IndexStatus>,
  127         -
    pub(crate) backfilling: ::std::option::Option<bool>,
  128         -
    pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughputDescription>,
  129         -
    pub(crate) index_size_bytes: ::std::option::Option<i64>,
  130         -
    pub(crate) item_count: ::std::option::Option<i64>,
  131         -
    pub(crate) index_arn: ::std::option::Option<::std::string::String>,
         166  +
    /* BuilderGenerator.kt:275 */ pub(crate) index_name: ::std::option::Option<::std::string::String>,
         167  +
    /* BuilderGenerator.kt:275 */ pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
         168  +
    /* BuilderGenerator.kt:275 */ pub(crate) projection: ::std::option::Option<crate::types::Projection>,
         169  +
    /* BuilderGenerator.kt:275 */ pub(crate) index_status: ::std::option::Option<crate::types::IndexStatus>,
         170  +
    /* BuilderGenerator.kt:275 */ pub(crate) backfilling: ::std::option::Option<bool>,
         171  +
    /* BuilderGenerator.kt:275 */ pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughputDescription>,
         172  +
    /* BuilderGenerator.kt:275 */ pub(crate) index_size_bytes: ::std::option::Option<i64>,
         173  +
    /* BuilderGenerator.kt:275 */ pub(crate) item_count: ::std::option::Option<i64>,
         174  +
    /* BuilderGenerator.kt:275 */ pub(crate) index_arn: ::std::option::Option<::std::string::String>,
         175  +
    /* BuilderGenerator.kt:345 */
  132    176   
}
         177  +
/* BuilderGenerator.kt:355 */
  133    178   
impl GlobalSecondaryIndexDescriptionBuilder {
  134         -
    /// <p>The name of the global secondary index.</p>
         179  +
    /// /* BuilderGenerator.kt:286 */<p>The name of the global secondary index.</p>
         180  +
    /* BuilderGenerator.kt:291 */
  135    181   
    pub fn index_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         182  +
        /* BuilderGenerator.kt:292 */
  136    183   
        self.index_name = ::std::option::Option::Some(input.into());
         184  +
        /* BuilderGenerator.kt:293 */
  137    185   
        self
         186  +
        /* BuilderGenerator.kt:291 */
  138    187   
    }
  139         -
    /// <p>The name of the global secondary index.</p>
         188  +
    /// /* BuilderGenerator.kt:312 */<p>The name of the global secondary index.</p>
         189  +
    /* BuilderGenerator.kt:314 */
  140    190   
    pub fn set_index_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         191  +
        /* BuilderGenerator.kt:315 */
  141    192   
        self.index_name = input;
  142    193   
        self
         194  +
        /* BuilderGenerator.kt:314 */
  143    195   
    }
  144         -
    /// <p>The name of the global secondary index.</p>
         196  +
    /// /* BuilderGenerator.kt:334 */<p>The name of the global secondary index.</p>
         197  +
    /* BuilderGenerator.kt:336 */
  145    198   
    pub fn get_index_name(&self) -> &::std::option::Option<::std::string::String> {
         199  +
        /* BuilderGenerator.kt:337 */
  146    200   
        &self.index_name
         201  +
        /* BuilderGenerator.kt:336 */
  147    202   
    }
  148         -
    /// Appends an item to `key_schema`.
         203  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `key_schema`.
         204  +
    /* BuilderGenerator.kt:411 */
  149    205   
    ///
  150         -
    /// To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
         206  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
         207  +
    /* BuilderGenerator.kt:413 */
  151    208   
    ///
  152         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
         209  +
    /// /* BuilderGenerator.kt:414 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
  153    210   
    /// <ul>
  154    211   
    /// <li>
  155    212   
    /// <p><code>HASH</code> - partition key</p></li>
  156    213   
    /// <li>
  157    214   
    /// <p><code>RANGE</code> - sort key</p></li>
  158    215   
    /// </ul><note>
  159    216   
    /// <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>
  160    217   
    /// <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>
  161    218   
    /// </note>
         219  +
    /* BuilderGenerator.kt:418 */
  162    220   
    pub fn key_schema(mut self, input: crate::types::KeySchemaElement) -> Self {
         221  +
        /* BuilderGenerator.kt:419 */
  163    222   
        let mut v = self.key_schema.unwrap_or_default();
  164    223   
        v.push(input);
  165    224   
        self.key_schema = ::std::option::Option::Some(v);
  166    225   
        self
         226  +
        /* BuilderGenerator.kt:418 */
  167    227   
    }
  168         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
         228  +
    /// /* BuilderGenerator.kt:312 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
  169    229   
    /// <ul>
  170    230   
    /// <li>
  171    231   
    /// <p><code>HASH</code> - partition key</p></li>
  172    232   
    /// <li>
  173    233   
    /// <p><code>RANGE</code> - sort key</p></li>
  174    234   
    /// </ul><note>
  175    235   
    /// <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>
  176    236   
    /// <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>
  177    237   
    /// </note>
         238  +
    /* BuilderGenerator.kt:314 */
  178    239   
    pub fn set_key_schema(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>) -> Self {
         240  +
        /* BuilderGenerator.kt:315 */
  179    241   
        self.key_schema = input;
  180    242   
        self
         243  +
        /* BuilderGenerator.kt:314 */
  181    244   
    }
  182         -
    /// <p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
         245  +
    /// /* BuilderGenerator.kt:334 */<p>The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types:</p>
  183    246   
    /// <ul>
  184    247   
    /// <li>
  185    248   
    /// <p><code>HASH</code> - partition key</p></li>
  186    249   
    /// <li>
  187    250   
    /// <p><code>RANGE</code> - sort key</p></li>
  188    251   
    /// </ul><note>
  189    252   
    /// <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>
  190    253   
    /// <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>
  191    254   
    /// </note>
         255  +
    /* BuilderGenerator.kt:336 */
  192    256   
    pub fn get_key_schema(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>> {
         257  +
        /* BuilderGenerator.kt:337 */
  193    258   
        &self.key_schema
         259  +
        /* BuilderGenerator.kt:336 */
  194    260   
    }
  195         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         261  +
    /// /* BuilderGenerator.kt:286 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         262  +
    /* BuilderGenerator.kt:291 */
  196    263   
    pub fn projection(mut self, input: crate::types::Projection) -> Self {
         264  +
        /* BuilderGenerator.kt:292 */
  197    265   
        self.projection = ::std::option::Option::Some(input);
         266  +
        /* BuilderGenerator.kt:293 */
  198    267   
        self
         268  +
        /* BuilderGenerator.kt:291 */
  199    269   
    }
  200         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         270  +
    /// /* BuilderGenerator.kt:312 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         271  +
    /* BuilderGenerator.kt:314 */
  201    272   
    pub fn set_projection(mut self, input: ::std::option::Option<crate::types::Projection>) -> Self {
         273  +
        /* BuilderGenerator.kt:315 */
  202    274   
        self.projection = input;
  203    275   
        self
         276  +
        /* BuilderGenerator.kt:314 */
  204    277   
    }
  205         -
    /// <p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         278  +
    /// /* BuilderGenerator.kt:334 */<p>Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
         279  +
    /* BuilderGenerator.kt:336 */
  206    280   
    pub fn get_projection(&self) -> &::std::option::Option<crate::types::Projection> {
         281  +
        /* BuilderGenerator.kt:337 */
  207    282   
        &self.projection
         283  +
        /* BuilderGenerator.kt:336 */
  208    284   
    }
  209         -
    /// <p>The current state of the global secondary index:</p>
         285  +
    /// /* BuilderGenerator.kt:286 */<p>The current state of the global secondary index:</p>
  210    286   
    /// <ul>
  211    287   
    /// <li>
  212    288   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
  213    289   
    /// <li>
  214    290   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
  215    291   
    /// <li>
  216    292   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
  217    293   
    /// <li>
  218    294   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
  219    295   
    /// </ul>
         296  +
    /* BuilderGenerator.kt:291 */
  220    297   
    pub fn index_status(mut self, input: crate::types::IndexStatus) -> Self {
         298  +
        /* BuilderGenerator.kt:292 */
  221    299   
        self.index_status = ::std::option::Option::Some(input);
         300  +
        /* BuilderGenerator.kt:293 */
  222    301   
        self
         302  +
        /* BuilderGenerator.kt:291 */
  223    303   
    }
  224         -
    /// <p>The current state of the global secondary index:</p>
         304  +
    /// /* BuilderGenerator.kt:312 */<p>The current state of the global secondary index:</p>
  225    305   
    /// <ul>
  226    306   
    /// <li>
  227    307   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
  228    308   
    /// <li>
  229    309   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
  230    310   
    /// <li>
  231    311   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
  232    312   
    /// <li>
  233    313   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
  234    314   
    /// </ul>
         315  +
    /* BuilderGenerator.kt:314 */
  235    316   
    pub fn set_index_status(mut self, input: ::std::option::Option<crate::types::IndexStatus>) -> Self {
         317  +
        /* BuilderGenerator.kt:315 */
  236    318   
        self.index_status = input;
  237    319   
        self
         320  +
        /* BuilderGenerator.kt:314 */
  238    321   
    }
  239         -
    /// <p>The current state of the global secondary index:</p>
         322  +
    /// /* BuilderGenerator.kt:334 */<p>The current state of the global secondary index:</p>
  240    323   
    /// <ul>
  241    324   
    /// <li>
  242    325   
    /// <p><code>CREATING</code> - The index is being created.</p></li>
  243    326   
    /// <li>
  244    327   
    /// <p><code>UPDATING</code> - The index is being updated.</p></li>
  245    328   
    /// <li>
  246    329   
    /// <p><code>DELETING</code> - The index is being deleted.</p></li>
  247    330   
    /// <li>
  248    331   
    /// <p><code>ACTIVE</code> - The index is ready for use.</p></li>
  249    332   
    /// </ul>
         333  +
    /* BuilderGenerator.kt:336 */
  250    334   
    pub fn get_index_status(&self) -> &::std::option::Option<crate::types::IndexStatus> {
         335  +
        /* BuilderGenerator.kt:337 */
  251    336   
        &self.index_status
         337  +
        /* BuilderGenerator.kt:336 */
  252    338   
    }
  253         -
    /// <p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
         339  +
    /// /* BuilderGenerator.kt:286 */<p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
  254    340   
    /// <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.</p><note>
  255    341   
    /// <p>For indexes that were created during a <code>CreateTable</code> operation, the <code>Backfilling</code> attribute does not appear in the <code>DescribeTable</code> output.</p>
  256    342   
    /// </note>
         343  +
    /* BuilderGenerator.kt:291 */
  257    344   
    pub fn backfilling(mut self, input: bool) -> Self {
         345  +
        /* BuilderGenerator.kt:292 */
  258    346   
        self.backfilling = ::std::option::Option::Some(input);
         347  +
        /* BuilderGenerator.kt:293 */
  259    348   
        self
         349  +
        /* BuilderGenerator.kt:291 */
  260    350   
    }
  261         -
    /// <p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
         351  +
    /// /* BuilderGenerator.kt:312 */<p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
  262    352   
    /// <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.</p><note>
  263    353   
    /// <p>For indexes that were created during a <code>CreateTable</code> operation, the <code>Backfilling</code> attribute does not appear in the <code>DescribeTable</code> output.</p>
  264    354   
    /// </note>
         355  +
    /* BuilderGenerator.kt:314 */
  265    356   
    pub fn set_backfilling(mut self, input: ::std::option::Option<bool>) -> Self {
         357  +
        /* BuilderGenerator.kt:315 */
  266    358   
        self.backfilling = input;
  267    359   
        self
         360  +
        /* BuilderGenerator.kt:314 */
  268    361   
    }
  269         -
    /// <p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
         362  +
    /// /* BuilderGenerator.kt:334 */<p>Indicates whether the index is currently backfilling. <i>Backfilling</i> is the process of reading items from the table and determining whether they can be added to the index. (Not all items will qualify: For example, a partition key cannot have any duplicate values.) If an item can be added to the index, DynamoDB will do so. After all items have been processed, the backfilling operation is complete and <code>Backfilling</code> is false.</p>
  270    363   
    /// <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.</p><note>
  271    364   
    /// <p>For indexes that were created during a <code>CreateTable</code> operation, the <code>Backfilling</code> attribute does not appear in the <code>DescribeTable</code> output.</p>
  272    365   
    /// </note>
         366  +
    /* BuilderGenerator.kt:336 */
  273    367   
    pub fn get_backfilling(&self) -> &::std::option::Option<bool> {
         368  +
        /* BuilderGenerator.kt:337 */
  274    369   
        &self.backfilling
         370  +
        /* BuilderGenerator.kt:336 */
  275    371   
    }
  276         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
         372  +
    /// /* BuilderGenerator.kt:286 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
  277    373   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         374  +
    /* BuilderGenerator.kt:291 */
  278    375   
    pub fn provisioned_throughput(mut self, input: crate::types::ProvisionedThroughputDescription) -> Self {
         376  +
        /* BuilderGenerator.kt:292 */
  279    377   
        self.provisioned_throughput = ::std::option::Option::Some(input);
         378  +
        /* BuilderGenerator.kt:293 */
  280    379   
        self
         380  +
        /* BuilderGenerator.kt:291 */
  281    381   
    }
  282         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
         382  +
    /// /* BuilderGenerator.kt:312 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
  283    383   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         384  +
    /* BuilderGenerator.kt:314 */
  284    385   
    pub fn set_provisioned_throughput(mut self, input: ::std::option::Option<crate::types::ProvisionedThroughputDescription>) -> Self {
         386  +
        /* BuilderGenerator.kt:315 */
  285    387   
        self.provisioned_throughput = input;
  286    388   
        self
         389  +
        /* BuilderGenerator.kt:314 */
  287    390   
    }
  288         -
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
         391  +
    /// /* BuilderGenerator.kt:334 */<p>Represents the provisioned throughput settings for the specified global secondary index.</p>
  289    392   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
         393  +
    /* BuilderGenerator.kt:336 */
  290    394   
    pub fn get_provisioned_throughput(&self) -> &::std::option::Option<crate::types::ProvisionedThroughputDescription> {
         395  +
        /* BuilderGenerator.kt:337 */
  291    396   
        &self.provisioned_throughput
         397  +
        /* BuilderGenerator.kt:336 */
  292    398   
    }
  293         -
    /// <p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         399  +
    /// /* BuilderGenerator.kt:286 */<p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         400  +
    /* BuilderGenerator.kt:291 */
  294    401   
    pub fn index_size_bytes(mut self, input: i64) -> Self {
         402  +
        /* BuilderGenerator.kt:292 */
  295    403   
        self.index_size_bytes = ::std::option::Option::Some(input);
         404  +
        /* BuilderGenerator.kt:293 */
  296    405   
        self
         406  +
        /* BuilderGenerator.kt:291 */
  297    407   
    }
  298         -
    /// <p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         408  +
    /// /* BuilderGenerator.kt:312 */<p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         409  +
    /* BuilderGenerator.kt:314 */
  299    410   
    pub fn set_index_size_bytes(mut self, input: ::std::option::Option<i64>) -> Self {
         411  +
        /* BuilderGenerator.kt:315 */
  300    412   
        self.index_size_bytes = input;
  301    413   
        self
         414  +
        /* BuilderGenerator.kt:314 */
  302    415   
    }
  303         -
    /// <p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         416  +
    /// /* BuilderGenerator.kt:334 */<p>The total size of the specified index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         417  +
    /* BuilderGenerator.kt:336 */
  304    418   
    pub fn get_index_size_bytes(&self) -> &::std::option::Option<i64> {
         419  +
        /* BuilderGenerator.kt:337 */
  305    420   
        &self.index_size_bytes
         421  +
        /* BuilderGenerator.kt:336 */
  306    422   
    }
  307         -
    /// <p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         423  +
    /// /* BuilderGenerator.kt:286 */<p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         424  +
    /* BuilderGenerator.kt:291 */
  308    425   
    pub fn item_count(mut self, input: i64) -> Self {
         426  +
        /* BuilderGenerator.kt:292 */
  309    427   
        self.item_count = ::std::option::Option::Some(input);
         428  +
        /* BuilderGenerator.kt:293 */
  310    429   
        self
         430  +
        /* BuilderGenerator.kt:291 */
  311    431   
    }
  312         -
    /// <p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         432  +
    /// /* BuilderGenerator.kt:312 */<p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         433  +
    /* BuilderGenerator.kt:314 */
  313    434   
    pub fn set_item_count(mut self, input: ::std::option::Option<i64>) -> Self {
         435  +
        /* BuilderGenerator.kt:315 */
  314    436   
        self.item_count = input;
  315    437   
        self
         438  +
        /* BuilderGenerator.kt:314 */
  316    439   
    }
  317         -
    /// <p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         440  +
    /// /* BuilderGenerator.kt:334 */<p>The number of items in the specified index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.</p>
         441  +
    /* BuilderGenerator.kt:336 */
  318    442   
    pub fn get_item_count(&self) -> &::std::option::Option<i64> {
         443  +
        /* BuilderGenerator.kt:337 */
  319    444   
        &self.item_count
         445  +
        /* BuilderGenerator.kt:336 */
  320    446   
    }
  321         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
         447  +
    /// /* BuilderGenerator.kt:286 */<p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
         448  +
    /* BuilderGenerator.kt:291 */
  322    449   
    pub fn index_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         450  +
        /* BuilderGenerator.kt:292 */
  323    451   
        self.index_arn = ::std::option::Option::Some(input.into());
         452  +
        /* BuilderGenerator.kt:293 */
  324    453   
        self
         454  +
        /* BuilderGenerator.kt:291 */
  325    455   
    }
  326         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
         456  +
    /// /* BuilderGenerator.kt:312 */<p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
         457  +
    /* BuilderGenerator.kt:314 */
  327    458   
    pub fn set_index_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         459  +
        /* BuilderGenerator.kt:315 */
  328    460   
        self.index_arn = input;
  329    461   
        self
         462  +
        /* BuilderGenerator.kt:314 */
  330    463   
    }
  331         -
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
         464  +
    /// /* BuilderGenerator.kt:334 */<p>The Amazon Resource Name (ARN) that uniquely identifies the index.</p>
         465  +
    /* BuilderGenerator.kt:336 */
  332    466   
    pub fn get_index_arn(&self) -> &::std::option::Option<::std::string::String> {
         467  +
        /* BuilderGenerator.kt:337 */
  333    468   
        &self.index_arn
         469  +
        /* BuilderGenerator.kt:336 */
  334    470   
    }
  335         -
    /// Consumes the builder and constructs a [`GlobalSecondaryIndexDescription`](crate::types::GlobalSecondaryIndexDescription).
         471  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`GlobalSecondaryIndexDescription`](crate::types::GlobalSecondaryIndexDescription).
         472  +
    /* BuilderGenerator.kt:253 */
  336    473   
    pub fn build(self) -> crate::types::GlobalSecondaryIndexDescription {
         474  +
        /* BuilderGenerator.kt:477 */
  337    475   
        crate::types::GlobalSecondaryIndexDescription {
  338         -
            index_name: self.index_name,
         476  +
            /* BuilderGenerator.kt:481 */ index_name: self.index_name,
         477  +
            /* BuilderGenerator.kt:481 */
  339    478   
            key_schema: self.key_schema,
         479  +
            /* BuilderGenerator.kt:481 */
  340    480   
            projection: self.projection,
         481  +
            /* BuilderGenerator.kt:481 */
  341    482   
            index_status: self.index_status,
         483  +
            /* BuilderGenerator.kt:481 */
  342    484   
            backfilling: self.backfilling,
         485  +
            /* BuilderGenerator.kt:481 */
  343    486   
            provisioned_throughput: self.provisioned_throughput,
  344         -
            index_size_bytes: self.index_size_bytes.unwrap_or_default(),
  345         -
            item_count: self.item_count.unwrap_or_default(),
         487  +
            /* BuilderGenerator.kt:481 */
         488  +
            index_size_bytes: self
         489  +
                .index_size_bytes
         490  +
                /* BuilderGenerator.kt:487 */
         491  +
                .unwrap_or_default(),
         492  +
            /* BuilderGenerator.kt:481 */
         493  +
            item_count: self
         494  +
                .item_count
         495  +
                /* BuilderGenerator.kt:487 */
         496  +
                .unwrap_or_default(),
         497  +
            /* BuilderGenerator.kt:481 */
  346    498   
            index_arn: self.index_arn,
         499  +
            /* BuilderGenerator.kt:477 */
  347    500   
        }
         501  +
        /* BuilderGenerator.kt:253 */
  348    502   
    }
         503  +
    /* BuilderGenerator.kt:355 */
  349    504   
}